Index: outputwin.cpp
===================================================================
RCS file: /cvs/ecos/ecos/host/tools/configtool/standalone/wxwin/outputwin.cpp,v
retrieving revision 1.2
diff -u -r1.2 outputwin.cpp
--- outputwin.cpp	9 Dec 2008 19:05:35 -0000	1.2
+++ outputwin.cpp	10 Dec 2008 10:22:07 -0000
@@ -77,6 +77,7 @@
     EVT_MENU(wxID_SELECTALL, ecOutputWindow::OnSelectAll)
     EVT_MENU(wxID_SAVE, ecOutputWindow::OnSave)
     EVT_UPDATE_UI(wxID_CLEAR, ecOutputWindow::OnUpdateClear)
+    EVT_UPDATE_UI(wxID_SAVE, ecOutputWindow::OnUpdateSave)
 END_EVENT_TABLE()
 
 ecOutputWindow::ecOutputWindow(wxWindow* parent, wxWindowID id, const wxPoint& pt,
@@ -129,6 +130,16 @@
 
 void ecOutputWindow::OnSave(wxCommandEvent& event)
 {
+    wxFileDialog dialog(this, _("Choose a file for saving the output window contents"),
+        wxT(""), wxT("output.txt"), wxT("*.txt"), wxSAVE|wxOVERWRITE_PROMPT);
+    if (dialog.ShowModal() == wxID_OK)
+    {
+        if (!SaveFile(dialog.GetPath()))
+        {
+            wxMessageBox(_("Sorry, there was a problem saving the file."), wxGetApp().GetSettings().GetAppName(),
+                wxICON_EXCLAMATION|wxID_OK);
+        }
+    }
 }
 
 void ecOutputWindow::OnUpdateClear(wxUpdateUIEvent& event)
@@ -136,3 +147,8 @@
     event.Enable(!IsEmpty());
 }
 
+void ecOutputWindow::OnUpdateSave(wxUpdateUIEvent& event)
+{
+    event.Enable(!IsEmpty());
+}
+
Index: outputwin.h
===================================================================
RCS file: /cvs/ecos/ecos/host/tools/configtool/standalone/wxwin/outputwin.h,v
retrieving revision 1.2
diff -u -r1.2 outputwin.h
--- outputwin.h	9 Dec 2008 19:05:35 -0000	1.2
+++ outputwin.h	10 Dec 2008 10:19:23 -0000
@@ -66,6 +66,7 @@
     void OnSelectAll(wxCommandEvent& event);
     void OnSave(wxCommandEvent& event);
     void OnUpdateClear(wxUpdateUIEvent& event);
+    void OnUpdateSave(wxUpdateUIEvent& event);
 
 //// Operations
 

