]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/configtool/src/mainframe.cpp
Removed rules for copying the Mac resource file since they are no
[wxWidgets.git] / utils / configtool / src / mainframe.cpp
index e0d9d7978866f0c908f7a5758f651b7fb594e145..43247a405cb24aeca080c13d632d306799401611 100644 (file)
@@ -9,22 +9,29 @@
 // Licence:
 /////////////////////////////////////////////////////////////////////////////
 
 // Licence:
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma implementation "mainframe.h"
 #endif
 
 #pragma implementation "mainframe.h"
 #endif
 
-#include "wx/wx.h"
+// For compilers that support precompilation, includes "wx/wx.h".
+#include "wx/wxprec.h"
 
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
 
 #ifdef __BORLANDC__
 #pragma hdrstop
 #endif
 
+#ifndef WX_PRECOMP
+
+#include "wx/splitter.h"
+
+#endif
+
+#include "wx/cshelp.h"
 #include "wx/html/htmlwin.h"
 #include "wx/notebook.h"
 #include "wx/html/htmlwin.h"
 #include "wx/notebook.h"
-#include "wx/splitter.h"
+#include "wx/dataobj.h"
 #include "wx/clipbrd.h"
 #include "wx/clipbrd.h"
-#include "wx/cshelp.h"
-
+#include "wx/stockitem.h"
 #include "wxconfigtool.h"
 #include "mainframe.h"
 #include "appsettings.h"
 #include "wxconfigtool.h"
 #include "mainframe.h"
 #include "appsettings.h"
@@ -33,6 +40,7 @@
 #include "propeditor.h"
 #include "configtooldoc.h"
 #include "configtoolview.h"
 #include "propeditor.h"
 #include "configtooldoc.h"
 #include "configtoolview.h"
+#include "configbrowser.h"
 
 #include "bitmaps/wxconfigtool.xpm"
 
 
 #include "bitmaps/wxconfigtool.xpm"
 
@@ -46,6 +54,7 @@
 #include "bitmaps/undo.xpm"
 #include "bitmaps/redo.xpm"
 #include "bitmaps/helpcs.xpm"
 #include "bitmaps/undo.xpm"
 #include "bitmaps/redo.xpm"
 #include "bitmaps/helpcs.xpm"
+#include "bitmaps/go.xpm"
 
 IMPLEMENT_CLASS(ctMainFrame, wxDocParentFrame)
 
 
 IMPLEMENT_CLASS(ctMainFrame, wxDocParentFrame)
 
@@ -80,34 +89,51 @@ BEGIN_EVENT_TABLE(ctMainFrame, wxDocParentFrame)
 
     EVT_UPDATE_UI(ctID_SAVE_SETUP_FILE, ctMainFrame::OnUpdateDisable)
     EVT_UPDATE_UI(ctID_SAVE_CONFIGURE_COMMAND, ctMainFrame::OnUpdateDisable)
 
     EVT_UPDATE_UI(ctID_SAVE_SETUP_FILE, ctMainFrame::OnUpdateDisable)
     EVT_UPDATE_UI(ctID_SAVE_CONFIGURE_COMMAND, ctMainFrame::OnUpdateDisable)
+
+    EVT_UPDATE_UI(wxID_FIND, ctMainFrame::OnUpdateDisable)
+
+    EVT_UPDATE_UI(ctID_GO, ctMainFrame::OnUpdateDisable)
 END_EVENT_TABLE()
 
 // Define my frame constructor
 END_EVENT_TABLE()
 
 // Define my frame constructor
-ctMainFrame::ctMainFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size,
-       long style):
+ctMainFrame::ctMainFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
   wxDocParentFrame(manager, parent, id, title, pos, size, style)
 {
     m_document = NULL;
     m_editMenu = NULL;
     m_configurePage = NULL;
     m_setupPage = NULL;
   wxDocParentFrame(manager, parent, id, title, pos, size, style)
 {
     m_document = NULL;
     m_editMenu = NULL;
     m_configurePage = NULL;
     m_setupPage = NULL;
+#ifdef USE_CONFIG_BROWSER_PAGE
+    m_configBrowserPage = NULL;
+#endif
     m_mainNotebook = NULL;
     m_mainNotebook = NULL;
+    m_findDialog = NULL;
 
 
-    m_treeSplitterWindow = new wxSplitterWindow(this, -1, wxDefaultPosition, wxSize(400, 300),
-        wxSP_3DSASH|wxSP_3DBORDER);
+    m_treeSplitterWindow = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxSize(400, 300),
+        wxSP_3DSASH|wxSP_3DBORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
 
 
-    m_configTreeCtrl = new ctConfigTreeCtrl(m_treeSplitterWindow, -1, wxDefaultPosition, wxDefaultSize,
-        wxTR_HAS_BUTTONS|wxNO_BORDER);
+    m_configTreeCtrl = new ctConfigTreeCtrl(m_treeSplitterWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize,
+        wxTR_HAS_BUTTONS|wxNO_BORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
 
 
-    m_mainNotebook = new wxNotebook(m_treeSplitterWindow, -1, wxDefaultPosition, wxSize(300, 300));
+    m_mainNotebook = new wxNotebook(m_treeSplitterWindow, wxID_ANY, wxDefaultPosition, wxSize(300, 300),
+        wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
+
+    m_propertyEditor = new ctPropertyEditor(m_mainNotebook, wxID_ANY, wxDefaultPosition, wxSize(300, 200),
+        wxNO_BORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
+    m_setupPage = new ctOutputWindow(m_mainNotebook, wxID_ANY, wxDefaultPosition, wxSize(300, 200),
+        wxNO_BORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
+    m_configurePage = new ctOutputWindow(m_mainNotebook, wxID_ANY, wxDefaultPosition, wxSize(300, 200),
+        wxNO_BORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
+
+#ifdef USE_CONFIG_BROWSER_PAGE
+    m_configBrowserPage = new ctConfigurationBrowserWindow(m_mainNotebook, wxID_ANY, wxDefaultPosition, wxSize(300, 200),
+        wxNO_BORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
+#endif
 
 
-    m_propertyEditor = new ctPropertyEditor(m_mainNotebook, -1, wxDefaultPosition, wxSize(300, 200),
-        wxNO_BORDER);
-    m_setupPage = new ctOutputWindow(m_mainNotebook, -1, wxDefaultPosition, wxSize(300, 200),
-        wxNO_BORDER);
-    m_configurePage = new ctOutputWindow(m_mainNotebook, -1, wxDefaultPosition, wxSize(300, 200),
-        wxNO_BORDER);
     m_mainNotebook->AddPage(m_propertyEditor, _T("Properties"));
     m_mainNotebook->AddPage(m_propertyEditor, _T("Properties"));
+#ifdef USE_CONFIG_BROWSER_PAGE
+    m_mainNotebook->AddPage(m_configBrowserPage, _T("Configuration Browser"));
+#endif
     m_mainNotebook->AddPage(m_setupPage, _T("setup.h"));
     m_mainNotebook->AddPage(m_configurePage, _T("configure"));
 
     m_mainNotebook->AddPage(m_setupPage, _T("setup.h"));
     m_mainNotebook->AddPage(m_configurePage, _T("configure"));
 
@@ -120,22 +146,24 @@ ctMainFrame::ctMainFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id,
 
     SetIcon(wxIcon(wxconfigtool_xpm));
 
 
     SetIcon(wxIcon(wxconfigtool_xpm));
 
+#if wxUSE_STATUSBAR
     CreateStatusBar(2);
     CreateStatusBar(2);
+#endif // wxUSE_STATUSBAR
 
     wxMenuBar* menuBar = CreateMenuBar();
     SetMenuBar(menuBar);
 
 
     wxMenuBar* menuBar = CreateMenuBar();
     SetMenuBar(menuBar);
 
-    CreateToolBar(wxNO_BORDER|wxTB_FLAT|wxTB_HORIZONTAL);
+    CreateToolBar(wxNO_BORDER|wxTB_FLAT|wxTB_HORIZONTAL|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN);
     InitToolBar(GetToolBar());
 
     if (wxGetApp().GetSettings().m_showToolBar)
     {
     InitToolBar(GetToolBar());
 
     if (wxGetApp().GetSettings().m_showToolBar)
     {
-        menuBar->Check(ctID_SHOW_TOOLBAR, TRUE);
+        menuBar->Check(ctID_SHOW_TOOLBAR, true);
     }
     else
     {
     }
     else
     {
-        menuBar->Check(ctID_SHOW_TOOLBAR, FALSE);
-        GetToolBar()->Show(FALSE);
+        menuBar->Check(ctID_SHOW_TOOLBAR, false);
+        GetToolBar()->Show(false);
         ResizeFrame();
     }
 }
         ResizeFrame();
     }
 }
@@ -151,7 +179,13 @@ void ctMainFrame::OnCloseWindow(wxCloseEvent& event)
         }
     }
 
         }
     }
 
-    Show(FALSE);
+    if (m_findDialog)
+    {
+        m_findDialog->Destroy();
+        m_findDialog = NULL;
+    }
+
+    Show(false);
 
     if (IsMaximized())
         wxGetApp().GetSettings().m_frameStatus = ctSHOW_STATUS_MAXIMIZED ;
 
     if (IsMaximized())
         wxGetApp().GetSettings().m_frameStatus = ctSHOW_STATUS_MAXIMIZED ;
@@ -159,11 +193,11 @@ void ctMainFrame::OnCloseWindow(wxCloseEvent& event)
         wxGetApp().GetSettings().m_frameStatus = ctSHOW_STATUS_MINIMIZED ;
     else
         wxGetApp().GetSettings().m_frameStatus = ctSHOW_STATUS_NORMAL ;
         wxGetApp().GetSettings().m_frameStatus = ctSHOW_STATUS_MINIMIZED ;
     else
         wxGetApp().GetSettings().m_frameStatus = ctSHOW_STATUS_NORMAL ;
-    
+
     // Must delete this now since the DLL loading library will be
     // uninitialised by the time the app object is deleted
     wxGetApp().ClearHelpControllers();
     // Must delete this now since the DLL loading library will be
     // uninitialised by the time the app object is deleted
     wxGetApp().ClearHelpControllers();
-    
+
     if (!IsMaximized() && !IsIconized())
     {
         wxGetApp().GetSettings().m_frameSize = GetRect();
     if (!IsMaximized() && !IsIconized())
     {
         wxGetApp().GetSettings().m_frameSize = GetRect();
@@ -173,11 +207,11 @@ void ctMainFrame::OnCloseWindow(wxCloseEvent& event)
     Destroy();
 }
 
     Destroy();
 }
 
-void ctMainFrame::OnAbout(wxCommandEvent& event)
+void ctMainFrame::OnAbout(wxCommandEvent& WXUNUSED(event))
 {
     wxString msg = wxGetApp().GetSettings().GetAppName() + wxT(" (c) Julian Smart");
     wxString caption = wxT("About ") + wxGetApp().GetSettings().GetAppName();
 {
     wxString msg = wxGetApp().GetSettings().GetAppName() + wxT(" (c) Julian Smart");
     wxString caption = wxT("About ") + wxGetApp().GetSettings().GetAppName();
-    wxMessageBox(msg, caption, wxID_OK|wxICON_INFORMATION);
+    wxMessageBox(msg, caption, wxOK|wxICON_INFORMATION);
 }
 
 void ctMainFrame::OnOpen(wxCommandEvent& event)
 }
 
 void ctMainFrame::OnOpen(wxCommandEvent& event)
@@ -190,12 +224,12 @@ void ctMainFrame::OnNew(wxCommandEvent& event)
     wxGetApp().GetDocManager()->OnFileNew(event);
 }
 
     wxGetApp().GetDocManager()->OnFileNew(event);
 }
 
-void ctMainFrame::OnExit(wxCommandEvent& event)
+void ctMainFrame::OnExit(wxCommandEvent& WXUNUSED(event))
 {
     Close();
 }
 
 {
     Close();
 }
 
-void ctMainFrame::OnSettings(wxCommandEvent& event)
+void ctMainFrame::OnSettings(wxCommandEvent& WXUNUSED(event))
 {
     wxGetApp().GetSettings().ShowSettingsDialog();
 }
 {
     wxGetApp().GetSettings().ShowSettingsDialog();
 }
@@ -213,27 +247,29 @@ void ctMainFrame::InitToolBar(wxToolBar* toolBar)
     toolBarBitmaps[3] = wxBitmap(copy_xpm);
     toolBarBitmaps[4] = wxBitmap(cut_xpm);
     toolBarBitmaps[5] = wxBitmap(paste_xpm);
     toolBarBitmaps[3] = wxBitmap(copy_xpm);
     toolBarBitmaps[4] = wxBitmap(cut_xpm);
     toolBarBitmaps[5] = wxBitmap(paste_xpm);
-//    toolBarBitmaps[6] = wxBitmap(print_xpm);
+    toolBarBitmaps[6] = wxBitmap(go_xpm);
     toolBarBitmaps[7] = wxBitmap(help_xpm);
     toolBarBitmaps[10] = wxBitmap(undo_xpm);
     toolBarBitmaps[11] = wxBitmap(redo_xpm);
     toolBarBitmaps[12] = wxBitmap(help_xpm);
     toolBarBitmaps[13] = wxBitmap(helpcs_xpm);
 
     toolBarBitmaps[7] = wxBitmap(help_xpm);
     toolBarBitmaps[10] = wxBitmap(undo_xpm);
     toolBarBitmaps[11] = wxBitmap(redo_xpm);
     toolBarBitmaps[12] = wxBitmap(help_xpm);
     toolBarBitmaps[13] = wxBitmap(helpcs_xpm);
 
-    toolBar->AddTool(wxID_NEW, toolBarBitmaps[0], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("New project"));
-    toolBar->AddTool(wxID_OPEN, toolBarBitmaps[1], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Open project"));
-    toolBar->AddTool(wxID_SAVE, toolBarBitmaps[2], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Save project"));
+    toolBar->AddTool(wxID_NEW, toolBarBitmaps[0], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxT("New project"));
+    toolBar->AddTool(wxID_OPEN, toolBarBitmaps[1], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxT("Open project"));
+    toolBar->AddTool(wxID_SAVE, toolBarBitmaps[2], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxT("Save project"));
 
     toolBar->AddSeparator();
 
     toolBar->AddSeparator();
-    toolBar->AddTool(wxID_CUT, toolBarBitmaps[4], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Cut"));
-    toolBar->AddTool(wxID_COPY, toolBarBitmaps[3], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Copy"));
-    toolBar->AddTool(wxID_PASTE, toolBarBitmaps[5], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Paste"));
+    toolBar->AddTool(wxID_CUT, toolBarBitmaps[4], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxGetStockLabel(wxID_CUT, false));
+    toolBar->AddTool(wxID_COPY, toolBarBitmaps[3], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxGetStockLabel(wxID_COPY, false));
+    toolBar->AddTool(wxID_PASTE, toolBarBitmaps[5], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxGetStockLabel(wxID_PASTE, false));
     toolBar->AddSeparator();
     toolBar->AddSeparator();
-    toolBar->AddTool(wxID_UNDO, toolBarBitmaps[10], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Undo"));
-    toolBar->AddTool(wxID_REDO, toolBarBitmaps[11], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Redo"));
+    toolBar->AddTool(wxID_UNDO, toolBarBitmaps[10], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxGetStockLabel(wxID_UNDO, false));
+    toolBar->AddTool(wxID_REDO, toolBarBitmaps[11], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxGetStockLabel(wxID_REDO, false));
     toolBar->AddSeparator();
     toolBar->AddSeparator();
-    toolBar->AddTool(ctID_ITEM_HELP, toolBarBitmaps[12], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Show help for this option"));
-    toolBar->AddTool(wxID_HELP_CONTEXT, toolBarBitmaps[13], wxNullBitmap, FALSE, -1, -1, (wxObject *) NULL, wxT("Show help on the clicked item"));
+    toolBar->AddTool(ctID_GO, toolBarBitmaps[6], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxT("Save setup.h or configurewx.sh"));
+    toolBar->AddSeparator();
+    toolBar->AddTool(ctID_ITEM_HELP, toolBarBitmaps[12], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxT("Show help for this option"));
+    toolBar->AddTool(wxID_HELP_CONTEXT, toolBarBitmaps[13], wxNullBitmap, false, wxDefaultCoord, wxDefaultCoord, (wxObject *) NULL, wxT("Show help on the clicked item"));
 
     // after adding the buttons to the toolbar, must call Realize() to reflect
     // the changes
 
     // after adding the buttons to the toolbar, must call Realize() to reflect
     // the changes
@@ -244,31 +280,33 @@ wxMenuBar* ctMainFrame::CreateMenuBar()
 {
     // Make a menubar
     wxMenu *fileMenu = new wxMenu;
 {
     // Make a menubar
     wxMenu *fileMenu = new wxMenu;
-    
+
     wxGetApp().GetFileHistory().UseMenu(fileMenu);
     wxGetApp().GetFileHistory().UseMenu(fileMenu);
-    
-    fileMenu->Append(wxID_NEW, wxT("&New...\tCtrl+N"), wxT("Create a new settings document"));
-    fileMenu->Append(wxID_OPEN, wxT("&Open...\tCtrl+O"), wxT("Open a settings document"));
-    fileMenu->Append(wxID_CLOSE, wxT("&Close\tCtrl+W"), wxT("Close the current settings document"));
+
+    fileMenu->Append(wxID_NEW, wxGetStockLabel(wxID_NEW, true, wxT("Ctrl+N")), wxT("Create a new settings document"));
+    fileMenu->Append(wxID_OPEN, wxGetStockLabel(wxID_OPEN, true, wxT("Ctrl+O")), wxT("Open a settings document"));
+    fileMenu->Append(wxID_CLOSE, wxGetStockLabel(wxID_CLOSE, true, wxT("Ctrl+W")), wxT("Close the current settings document"));
     fileMenu->AppendSeparator();
     fileMenu->AppendSeparator();
-    fileMenu->Append(wxID_SAVE, wxT("&Save\tCtrl+S"), wxT("Save the settings document"));
-    fileMenu->Append(wxID_SAVEAS, wxT("&Save As..."), wxT("Save the settings document under a new filename"));
+    fileMenu->Append(wxID_SAVE, wxGetStockLabel(wxID_SAVE, true, wxT("Ctrl+S")), wxT("Save the settings document"));
+    fileMenu->Append(wxID_SAVEAS, wxGetStockLabel(wxID_SAVEAS), wxT("Save the settings document under a new filename"));
     fileMenu->AppendSeparator();
     fileMenu->Append(ctID_SAVE_SETUP_FILE, wxT("Save Setup.&h...\tCtrl+H"), wxT("Save the setup.h file"));
     fileMenu->Append(ctID_SAVE_CONFIGURE_COMMAND, wxT("Save Configure Script...\tCtrl+G"), wxT("Save the configure script file"));
     fileMenu->AppendSeparator();
     fileMenu->AppendSeparator();
     fileMenu->Append(ctID_SAVE_SETUP_FILE, wxT("Save Setup.&h...\tCtrl+H"), wxT("Save the setup.h file"));
     fileMenu->Append(ctID_SAVE_CONFIGURE_COMMAND, wxT("Save Configure Script...\tCtrl+G"), wxT("Save the configure script file"));
     fileMenu->AppendSeparator();
-    fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt+F4"), wxT("Exit the application"));
+    fileMenu->Append(ctID_GO, wxT("&Go\tF5"), wxT("Quick-save the setup.h or configure.sh file"));
+    fileMenu->AppendSeparator();
+    fileMenu->Append(wxID_EXIT, wxGetStockLabel(wxID_EXIT, true, wxT("Alt+F4")), wxT("Exit the application"));
 
     wxGetApp().GetDocManager()->FileHistoryUseMenu(fileMenu);
 
     wxGetApp().GetDocManager()->FileHistoryUseMenu(fileMenu);
-    
+
     wxMenu *editMenu = new wxMenu;
 
     wxMenu *editMenu = new wxMenu;
 
-    editMenu->Append(wxID_UNDO, _("&Undo\tCtrl+Z"));
-    editMenu->Append(wxID_REDO, _("&Redo\tCtrl+Y"));
+    editMenu->Append(wxID_UNDO, wxGetStockLabel(wxID_UNDO, true, wxT("Ctrl+Z")));
+    editMenu->Append(wxID_REDO, wxGetStockLabel(wxID_REDO, true, wxT("Ctrl+Y")));
     editMenu->AppendSeparator();
     editMenu->AppendSeparator();
-    editMenu->Append(wxID_COPY, _("&Copy\tCtrl+C"));
-    editMenu->Append(wxID_CUT, _("Cu&t\tCtrl+X"));
-    editMenu->Append(wxID_PASTE, _("&Paste\tCtrl+V"));
+    editMenu->Append(wxID_COPY, wxGetStockLabel(wxID_CLOSE, true, wxT("Ctrl+C")));
+    editMenu->Append(wxID_CUT, wxGetStockLabel(wxID_CUT, true, wxT("Ctrl+X")));
+    editMenu->Append(wxID_PASTE, wxGetStockLabel(wxID_PASTE, true, wxT("Ctrl+V")));
     editMenu->AppendSeparator();
 
     wxMenu* itemMenu = new wxMenu;
     editMenu->AppendSeparator();
 
     wxMenu* itemMenu = new wxMenu;
@@ -293,6 +331,8 @@ wxMenuBar* ctMainFrame::CreateMenuBar()
     editMenu->AppendSeparator();
     editMenu->Append(ctID_DELETE_ITEM, _("&Delete Option"), _("Delete a configuration option"));
     editMenu->Append(ctID_RENAME_ITEM, _("&Rename Option"), _("Rename a configuration option"));
     editMenu->AppendSeparator();
     editMenu->Append(ctID_DELETE_ITEM, _("&Delete Option"), _("Delete a configuration option"));
     editMenu->Append(ctID_RENAME_ITEM, _("&Rename Option"), _("Rename a configuration option"));
+    editMenu->AppendSeparator();
+    editMenu->Append(wxID_FIND, wxGetStockLabel(wxID_FIND, true, wxT("Ctrl+F")), _("Search for a string in the settings document"));
 
     // Save for the command processor.
     m_editMenu = editMenu;
 
     // Save for the command processor.
     m_editMenu = editMenu;
@@ -304,31 +344,31 @@ wxMenuBar* ctMainFrame::CreateMenuBar()
 
     wxMenu *helpMenu = new wxMenu;
     helpMenu->Append(wxID_HELP, wxT("&Help Contents"), wxT("Show Configuration Tool help"));
 
     wxMenu *helpMenu = new wxMenu;
     helpMenu->Append(wxID_HELP, wxT("&Help Contents"), wxT("Show Configuration Tool help"));
-    helpMenu->Append(ctID_REFERENCE_CONTENTS, wxT("&wxWindows Help Contents"), wxT("Show wxWindows reference"));
+    helpMenu->Append(ctID_REFERENCE_CONTENTS, wxT("&wxWidgets Help Contents"), wxT("Show wxWidgets reference"));
     helpMenu->AppendSeparator();
     helpMenu->Append(ctID_ITEM_HELP, wxT("&Configuration Option Help\tF1"), wxT("Show help for the selected option"));
     helpMenu->Append(wxID_HELP_CONTEXT, wxT("&What's this?"), wxT("Show help on the clicked item"));
     helpMenu->AppendSeparator();
     helpMenu->Append(wxID_ABOUT, wxT("&About..."), wxT("Show details about this application"));
     helpMenu->AppendSeparator();
     helpMenu->Append(ctID_ITEM_HELP, wxT("&Configuration Option Help\tF1"), wxT("Show help for the selected option"));
     helpMenu->Append(wxID_HELP_CONTEXT, wxT("&What's this?"), wxT("Show help on the clicked item"));
     helpMenu->AppendSeparator();
     helpMenu->Append(wxID_ABOUT, wxT("&About..."), wxT("Show details about this application"));
-    
+
     wxMenuBar *menuBar = new wxMenuBar;
     wxMenuBar *menuBar = new wxMenuBar;
-    
+
     menuBar->Append(fileMenu, wxT("&File"));
     menuBar->Append(editMenu, wxT("&Edit"));
     menuBar->Append(viewMenu, wxT("&View"));
     menuBar->Append(helpMenu, wxT("&Help"));
 
     {
     menuBar->Append(fileMenu, wxT("&File"));
     menuBar->Append(editMenu, wxT("&Edit"));
     menuBar->Append(viewMenu, wxT("&View"));
     menuBar->Append(helpMenu, wxT("&Help"));
 
     {
-        wxConfig config(wxGetApp().GetSettings().GetAppName(), wxT("wxWindows"));
+        wxConfig config(wxGetApp().GetSettings().GetAppName(), wxT("wxWidgets"));
         config.SetPath(wxT("FileHistory/"));
         wxGetApp().GetDocManager()->FileHistoryLoad(config);
         config.SetPath(wxT("FileHistory/"));
         wxGetApp().GetDocManager()->FileHistoryLoad(config);
-    }    
+    }
 
     return menuBar;
 }
 
 /// Handles the Show Toolbar menu event.
 
     return menuBar;
 }
 
 /// Handles the Show Toolbar menu event.
-void ctMainFrame::OnShowToolbar(wxCommandEvent& event)
+void ctMainFrame::OnShowToolbar(wxCommandEvent& WXUNUSED(event))
 {
     wxGetApp().GetSettings().m_showToolBar = !wxGetApp().GetSettings().m_showToolBar;
     GetToolBar()->Show(wxGetApp().GetSettings().m_showToolBar);
 {
     wxGetApp().GetSettings().m_showToolBar = !wxGetApp().GetSettings().m_showToolBar;
     GetToolBar()->Show(wxGetApp().GetSettings().m_showToolBar);
@@ -336,19 +376,19 @@ void ctMainFrame::OnShowToolbar(wxCommandEvent& event)
 }
 
 /// Handles the Help Contents menu event.
 }
 
 /// Handles the Help Contents menu event.
-void ctMainFrame::OnHelp(wxCommandEvent& event)
+void ctMainFrame::OnHelp(wxCommandEvent& WXUNUSED(event))
 {
     wxGetApp().GetHelpController().DisplayContents();
 }
 
 /// Handles context help
 {
     wxGetApp().GetHelpController().DisplayContents();
 }
 
 /// Handles context help
-void ctMainFrame::OnContextHelp(wxCommandEvent& event)
+void ctMainFrame::OnContextHelp(wxCommandEvent& WXUNUSED(event))
 {
     wxContextHelp contextHelp;
 }
 
 /// Handles the Help Contents menu event for the reference manual.
 {
     wxContextHelp contextHelp;
 }
 
 /// Handles the Help Contents menu event for the reference manual.
-void ctMainFrame::OnReferenceHelp(wxCommandEvent& event)
+void ctMainFrame::OnReferenceHelp(wxCommandEvent& WXUNUSED(event))
 {
     wxGetApp().GetReferenceHelpController().DisplayContents();
 }
 {
     wxGetApp().GetReferenceHelpController().DisplayContents();
 }
@@ -371,7 +411,7 @@ void ctMainFrame::UpdateFrameTitle()
 // General disabler
 void ctMainFrame::OnUpdateDisable(wxUpdateUIEvent& event)
 {
 // General disabler
 void ctMainFrame::OnUpdateDisable(wxUpdateUIEvent& event)
 {
-    event.Enable( FALSE );
+    event.Enable( false );
 }
 
 /*!
 }
 
 /*!
@@ -399,10 +439,6 @@ ctOutputWindow::ctOutputWindow(wxWindow* parent, wxWindowID id,
     CreateWindows();
 }
 
     CreateWindows();
 }
 
-ctOutputWindow::~ctOutputWindow()
-{
-}
-
 /// Initialise the windows.
 void ctOutputWindow::CreateWindows()
 {
 /// Initialise the windows.
 void ctOutputWindow::CreateWindows()
 {
@@ -420,7 +456,7 @@ void ctOutputWindow::CreateWindows()
     item5->SetHelpText(_("Regenerates the code."));
 
 #if 0
     item5->SetHelpText(_("Regenerates the code."));
 
 #if 0
-    m_filenameCtrl = new wxTextCtrl(this, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTE_READONLY);
+    m_filenameCtrl = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxTE_READONLY);
     item2->Add( m_filenameCtrl, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
     m_filenameCtrl->SetHelpText(_("Shows the filename where the code is being saved."));
 #else
     item2->Add( m_filenameCtrl, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP|wxBOTTOM|wxRIGHT, 5 );
     m_filenameCtrl->SetHelpText(_("Shows the filename where the code is being saved."));
 #else
@@ -428,15 +464,15 @@ void ctOutputWindow::CreateWindows()
 #endif
 
     // The code editor
 #endif
 
     // The code editor
-    m_codeCtrl = new wxTextCtrl(this, -1, wxEmptyString, wxDefaultPosition, wxSize(100, 100), wxTE_RICH|wxTE_MULTILINE|wxSUNKEN_BORDER);
+    m_codeCtrl = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(100, 100), wxTE_RICH|wxTE_MULTILINE|wxSUNKEN_BORDER);
     item0->Add( m_codeCtrl, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );
 
     item0->Add( m_codeCtrl, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 );
 
-    SetAutoLayout( TRUE );
+    SetAutoLayout( true );
     SetSizer( item0 );
 }
 
 /// Copies the text to the clipboard.
     SetSizer( item0 );
 }
 
 /// Copies the text to the clipboard.
-void ctOutputWindow::OnCopyToClipboard(wxCommandEvent& event)
+void ctOutputWindow::OnCopyToClipboard(wxCommandEvent& WXUNUSED(event))
 {
     // Try to copy the selection first
     long int selFrom, selTo;
 {
     // Try to copy the selection first
     long int selFrom, selTo;
@@ -453,13 +489,13 @@ void ctOutputWindow::OnCopyToClipboard(wxCommandEvent& event)
         wxMessageBox(_("Sorry, could not open the clipboard."), _("Clipboard problem"), wxICON_EXCLAMATION|wxOK);
         return;
     }
         wxMessageBox(_("Sorry, could not open the clipboard."), _("Clipboard problem"), wxICON_EXCLAMATION|wxOK);
         return;
     }
-    
+
     wxString value(m_codeCtrl->GetValue());
 #ifdef __WXMSW__
     value.Replace(_T("\n"), _T("\r\n"));
 #endif
     wxTextDataObject *data = new wxTextDataObject( value );
     wxString value(m_codeCtrl->GetValue());
 #ifdef __WXMSW__
     value.Replace(_T("\n"), _T("\r\n"));
 #endif
     wxTextDataObject *data = new wxTextDataObject( value );
-    
+
     if (!wxTheClipboard->SetData( data ))
     {
         wxTheClipboard->Close();
     if (!wxTheClipboard->SetData( data ))
     {
         wxTheClipboard->Close();
@@ -486,12 +522,12 @@ void ctOutputWindow::SetFilename(const wxString& filename)
 }
 
 /// Saves the file.
 }
 
 /// Saves the file.
-void ctOutputWindow::OnSaveText(wxCommandEvent& event)
+void ctOutputWindow::OnSaveText(wxCommandEvent& WXUNUSED(event))
 {
     if (m_codeCtrl->IsModified())
     {
         wxString filename(m_filenameCtrl->GetValue());
 {
     if (m_codeCtrl->IsModified())
     {
         wxString filename(m_filenameCtrl->GetValue());
-        if (!filename.IsEmpty())
+        if (!filename.empty())
         {
             m_codeCtrl->SaveFile(filename);
             m_codeCtrl->DiscardEdits();
         {
             m_codeCtrl->SaveFile(filename);
             m_codeCtrl->DiscardEdits();
@@ -504,7 +540,7 @@ void ctOutputWindow::OnUpdateSaveText(wxUpdateUIEvent& event)
     event.Enable(m_doc && m_codeCtrl && m_codeCtrl->IsModified());
 }
 
     event.Enable(m_doc && m_codeCtrl && m_codeCtrl->IsModified());
 }
 
-void ctOutputWindow::OnRegenerate(wxCommandEvent& event)
+void ctOutputWindow::OnRegenerate(wxCommandEvent& WXUNUSED(event))
 {
     if (m_doc)
     {
 {
     if (m_doc)
     {