X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d7463f75f9c170c29b4965d27dccf535ac32cfde..86a9144fd0a042f0ecb6ebd0c748b5a33341159a:/utils/configtool/src/mainframe.cpp diff --git a/utils/configtool/src/mainframe.cpp b/utils/configtool/src/mainframe.cpp index ea3bfbd32b..cb090e8cca 100644 --- a/utils/configtool/src/mainframe.cpp +++ b/utils/configtool/src/mainframe.cpp @@ -9,6 +9,10 @@ // Licence: ///////////////////////////////////////////////////////////////////////////// +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) +#pragma implementation "mainframe.h" +#endif + #include "wx/wx.h" #ifdef __BORLANDC__ @@ -19,6 +23,7 @@ #include "wx/notebook.h" #include "wx/splitter.h" #include "wx/clipbrd.h" +#include "wx/dataobj.h" #include "wx/cshelp.h" #include "wxconfigtool.h" @@ -29,6 +34,7 @@ #include "propeditor.h" #include "configtooldoc.h" #include "configtoolview.h" +#include "configbrowser.h" #include "bitmaps/wxconfigtool.xpm" @@ -37,12 +43,12 @@ #include "bitmaps/paste.xpm" #include "bitmaps/open.xpm" #include "bitmaps/save.xpm" -#include "bitmaps/print.xpm" #include "bitmaps/new.xpm" #include "bitmaps/help.xpm" #include "bitmaps/undo.xpm" #include "bitmaps/redo.xpm" #include "bitmaps/helpcs.xpm" +#include "bitmaps/go.xpm" IMPLEMENT_CLASS(ctMainFrame, wxDocParentFrame) @@ -77,34 +83,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(wxID_FIND, ctMainFrame::OnUpdateDisable) + + EVT_UPDATE_UI(ctID_GO, ctMainFrame::OnUpdateDisable) 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; +#ifdef USE_CONFIG_BROWSER_PAGE + m_configBrowserPage = NULL; +#endif m_mainNotebook = NULL; + m_findDialog = NULL; + + m_treeSplitterWindow = new wxSplitterWindow(this, wxID_ANY, wxDefaultPosition, wxSize(400, 300), + wxSP_3DSASH|wxSP_3DBORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN); - m_treeSplitterWindow = new wxSplitterWindow(this, -1, wxDefaultPosition, wxSize(400, 300), - wxSP_3DSASH|wxSP_3DBORDER); + m_configTreeCtrl = new ctConfigTreeCtrl(m_treeSplitterWindow, wxID_ANY, wxDefaultPosition, wxDefaultSize, + wxTR_HAS_BUTTONS|wxNO_BORDER|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN); - m_configTreeCtrl = new ctConfigTreeCtrl(m_treeSplitterWindow, -1, wxDefaultPosition, wxDefaultSize, - wxTR_HAS_BUTTONS|wxNO_BORDER); + m_mainNotebook = new wxNotebook(m_treeSplitterWindow, wxID_ANY, wxDefaultPosition, wxSize(300, 300), + wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN); - m_mainNotebook = new wxNotebook(m_treeSplitterWindow, -1, wxDefaultPosition, wxSize(300, 300)); + 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")); +#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")); @@ -122,17 +145,17 @@ ctMainFrame::ctMainFrame(wxDocManager *manager, wxFrame *parent, wxWindowID id, 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) { - menuBar->Check(ctID_SHOW_TOOLBAR, TRUE); + menuBar->Check(ctID_SHOW_TOOLBAR, true); } else { - menuBar->Check(ctID_SHOW_TOOLBAR, FALSE); - GetToolBar()->Show(FALSE); + menuBar->Check(ctID_SHOW_TOOLBAR, false); + GetToolBar()->Show(false); ResizeFrame(); } } @@ -148,7 +171,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 ; @@ -170,11 +199,11 @@ void ctMainFrame::OnCloseWindow(wxCloseEvent& event) 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(); - wxMessageBox(msg, caption, wxID_OK|wxICON_INFORMATION); + wxMessageBox(msg, caption, wxOK|wxICON_INFORMATION); } void ctMainFrame::OnOpen(wxCommandEvent& event) @@ -187,12 +216,12 @@ void ctMainFrame::OnNew(wxCommandEvent& event) wxGetApp().GetDocManager()->OnFileNew(event); } -void ctMainFrame::OnExit(wxCommandEvent& event) +void ctMainFrame::OnExit(wxCommandEvent& WXUNUSED(event)) { Close(); } -void ctMainFrame::OnSettings(wxCommandEvent& event) +void ctMainFrame::OnSettings(wxCommandEvent& WXUNUSED(event)) { wxGetApp().GetSettings().ShowSettingsDialog(); } @@ -210,27 +239,29 @@ void ctMainFrame::InitToolBar(wxToolBar* toolBar) 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); - 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, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("New project")); + toolBar->AddTool(wxID_OPEN, toolBarBitmaps[1], wxNullBitmap, false, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Open project")); + toolBar->AddTool(wxID_SAVE, toolBarBitmaps[2], wxNullBitmap, false, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Save project")); 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, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Cut")); + toolBar->AddTool(wxID_COPY, toolBarBitmaps[3], wxNullBitmap, false, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Copy")); + toolBar->AddTool(wxID_PASTE, toolBarBitmaps[5], wxNullBitmap, false, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Paste")); 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, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Undo")); + toolBar->AddTool(wxID_REDO, toolBarBitmaps[11], wxNullBitmap, false, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Redo")); 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, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Save setup.h or configurewx.sh")); + toolBar->AddSeparator(); + toolBar->AddTool(ctID_ITEM_HELP, toolBarBitmaps[12], wxNullBitmap, false, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Show help for this option")); + toolBar->AddTool(wxID_HELP_CONTEXT, toolBarBitmaps[13], wxNullBitmap, false, wxDefaultPosition.x, wxDefaultPosition.y, (wxObject *) NULL, wxT("Show help on the clicked item")); // after adding the buttons to the toolbar, must call Realize() to reflect // the changes @@ -254,6 +285,8 @@ wxMenuBar* ctMainFrame::CreateMenuBar() 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(ctID_GO, wxT("&Go\tF5"), wxT("Quick-save the setup.h or configure.sh file")); + fileMenu->AppendSeparator(); fileMenu->Append(wxID_EXIT, wxT("E&xit\tAlt+F4"), wxT("Exit the application")); wxGetApp().GetDocManager()->FileHistoryUseMenu(fileMenu); @@ -290,6 +323,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(wxID_FIND, _("&Find...\tCtrl+F"), _("Search for a string in the settings document")); // Save for the command processor. m_editMenu = editMenu; @@ -301,7 +336,7 @@ wxMenuBar* ctMainFrame::CreateMenuBar() 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")); @@ -316,7 +351,7 @@ wxMenuBar* ctMainFrame::CreateMenuBar() 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); } @@ -325,7 +360,7 @@ wxMenuBar* ctMainFrame::CreateMenuBar() } /// 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); @@ -333,19 +368,19 @@ void ctMainFrame::OnShowToolbar(wxCommandEvent& event) } /// Handles the Help Contents menu event. -void ctMainFrame::OnHelp(wxCommandEvent& event) +void ctMainFrame::OnHelp(wxCommandEvent& WXUNUSED(event)) { 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. -void ctMainFrame::OnReferenceHelp(wxCommandEvent& event) +void ctMainFrame::OnReferenceHelp(wxCommandEvent& WXUNUSED(event)) { wxGetApp().GetReferenceHelpController().DisplayContents(); } @@ -368,7 +403,7 @@ void ctMainFrame::UpdateFrameTitle() // General disabler void ctMainFrame::OnUpdateDisable(wxUpdateUIEvent& event) { - event.Enable( FALSE ); + event.Enable( false ); } /*! @@ -417,7 +452,7 @@ void ctOutputWindow::CreateWindows() 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 @@ -425,15 +460,15 @@ void ctOutputWindow::CreateWindows() #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 ); - SetAutoLayout( TRUE ); + SetAutoLayout( true ); 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; @@ -483,7 +518,7 @@ void ctOutputWindow::SetFilename(const wxString& filename) } /// Saves the file. -void ctOutputWindow::OnSaveText(wxCommandEvent& event) +void ctOutputWindow::OnSaveText(wxCommandEvent& WXUNUSED(event)) { if (m_codeCtrl->IsModified()) { @@ -501,7 +536,7 @@ void ctOutputWindow::OnUpdateSaveText(wxUpdateUIEvent& event) event.Enable(m_doc && m_codeCtrl && m_codeCtrl->IsModified()); } -void ctOutputWindow::OnRegenerate(wxCommandEvent& event) +void ctOutputWindow::OnRegenerate(wxCommandEvent& WXUNUSED(event)) { if (m_doc) {