X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e776786754b4a54f90873b0f1801ba50f79c2d90..9ad7392b6a1bcd63cce8ad7899348f49d3e82a88:/utils/configtool/src/configtoolview.cpp diff --git a/utils/configtool/src/configtoolview.cpp b/utils/configtool/src/configtoolview.cpp index 5f62dcb51a..59668482b3 100644 --- a/utils/configtool/src/configtoolview.cpp +++ b/utils/configtool/src/configtoolview.cpp @@ -9,19 +9,19 @@ // Licence: ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "configtoolview.h" #endif -// Includes other headers for precompiled compilation -#include "wx/wx.h" +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" #ifdef __BORLANDC__ - #pragma hdrstop +#pragma hdrstop #endif #include "wx/wfstream.h" - +#include "wx/txtstrm.h" #include "configtoolview.h" #include "configtooldoc.h" #include "configtree.h" @@ -81,7 +81,7 @@ BEGIN_EVENT_TABLE(ctConfigToolView, wxView) EVT_UPDATE_UI(ctID_EDIT_CUSTOM_PROPERTY, ctConfigToolView::OnUpdateEditCustomProperty) EVT_UPDATE_UI(ctID_DELETE_CUSTOM_PROPERTY, ctConfigToolView::OnUpdateDeleteCustomProperty) - EVT_NOTEBOOK_PAGE_CHANGED(-1, ctConfigToolView::OnTabSelect) + EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, ctConfigToolView::OnTabSelect) EVT_MENU(ctID_SAVE_SETUP_FILE, ctConfigToolView::OnSaveSetupFile) EVT_MENU(ctID_SAVE_CONFIGURE_COMMAND, ctConfigToolView::OnSaveConfigureCommand) @@ -91,25 +91,24 @@ BEGIN_EVENT_TABLE(ctConfigToolView, wxView) EVT_MENU(wxID_FIND, ctConfigToolView::OnFind) EVT_UPDATE_UI(wxID_FIND, ctConfigToolView::OnUpdateFind) -END_EVENT_TABLE() + EVT_MENU(ctID_GO, ctConfigToolView::OnGo) + EVT_UPDATE_UI(ctID_GO, ctConfigToolView::OnUpdateGo) -ctConfigToolView::ctConfigToolView() -{ -} +END_EVENT_TABLE() // What to do when a view is created. Creates actual // windows for displaying the view. bool ctConfigToolView::OnCreate(wxDocument *doc, long WXUNUSED(flags) ) { - wxGetApp().GetDocManager()->ActivateView(this, TRUE); + wxGetApp().GetDocManager()->ActivateView(this, true); wxGetApp().GetMainFrame()->SetDocument((ctConfigToolDoc*) doc); wxGetApp().GetMainFrame()->GetSetupPage()->SetDocument((ctConfigToolDoc*) doc) ; wxGetApp().GetMainFrame()->GetConfigurePage()->SetDocument((ctConfigToolDoc*) doc) ; - return TRUE; + return true; } -void ctConfigToolView::OnDraw(wxDC *dc) +void ctConfigToolView::OnDraw(wxDC *WXUNUSED(dc)) { } @@ -119,11 +118,11 @@ void ctConfigToolView::OnUpdate(wxView *WXUNUSED(sender), wxObject *hintObj) ctConfigTreeCtrl* treeCtrl = wxGetApp().GetMainFrame()->GetConfigTreeCtrl(); if (!treeCtrl) return; - + wxASSERT (doc != NULL); - + ctConfigItem* selItem = NULL; - + wxTreeItemId sel = treeCtrl->GetSelection(); if (sel.IsOk()) { @@ -131,12 +130,12 @@ void ctConfigToolView::OnUpdate(wxView *WXUNUSED(sender), wxObject *hintObj) if (data) selItem = data->GetConfigItem() ; } - + ctConfigToolHint* hint = (ctConfigToolHint*) hintObj; int hintOp = ctNoHint; if (hint) hintOp = hint->m_op; - + switch (hintOp) { case ctInitialUpdate: @@ -149,12 +148,12 @@ void ctConfigToolView::OnUpdate(wxView *WXUNUSED(sender), wxObject *hintObj) } } break; - case ctSelChanged: + case ctSelChanged: { if (selItem) { wxGetApp().GetMainFrame()->GetPropertyEditor()->ShowItem(selItem); - } + } } break; case ctAllSaved: @@ -173,37 +172,37 @@ void ctConfigToolView::OnUpdate(wxView *WXUNUSED(sender), wxObject *hintObj) treeCtrl->DeleteAllItems(); wxGetApp().GetMainFrame()->GetPropertyEditor()->ShowItem(NULL); break; - } + } case ctValueChanged: { // ctConfigItem& ti = *(ctConfigItem *)hint->m_item; wxGetApp().GetMainFrame()->GetPropertyEditor()->ShowItem(selItem); - } + } break; - + default: break; } } // Clean up windows used for displaying the view. -bool ctConfigToolView::OnClose(bool deleteWindow) +bool ctConfigToolView::OnClose(bool WXUNUSED(deleteWindow)) { if (!GetDocument()->Close()) - return FALSE; + return false; ctConfigToolHint hint(NULL, ctClear); GetDocument()->UpdateAllViews (NULL, & hint); - wxGetApp().GetDocManager()->ActivateView(this, FALSE); + wxGetApp().GetDocManager()->ActivateView(this, false); + + Activate(false); - Activate(FALSE); - wxGetApp().GetMainFrame()->SetDocument(NULL); wxGetApp().GetMainFrame()->GetSetupPage()->SetDocument(NULL) ; wxGetApp().GetMainFrame()->GetConfigurePage()->SetDocument(NULL) ; - return TRUE; + return true; } void ctConfigToolView::OnChangeFilename() @@ -232,12 +231,12 @@ void ctConfigToolView::OnChangeFilename() // General disabler void ctConfigToolView::OnUpdateDisable(wxUpdateUIEvent& event) { - event.Enable( FALSE ); + event.Enable( false ); } void ctConfigToolView::OnUpdateAddItem(wxUpdateUIEvent& event) { - event.Enable( TRUE ); + event.Enable( true ); } /// Add item and its children to the tree @@ -261,7 +260,7 @@ void ctConfigToolView::SyncItem(ctConfigTreeCtrl* treeControl, ctConfigItem* ite { if (!item->GetParent()) { - item->SetTreeItem(treeControl->AddRoot(_(""), -1, -1, new ctTreeItemData(item))); + item->SetTreeItem(treeControl->AddRoot(wxEmptyString, -1, -1, new ctTreeItemData(item))); } else { @@ -346,17 +345,23 @@ void ctConfigToolView::OnIconLeftDown(ctConfigTreeCtrl* treeControl, ctConfigIte item->Enable(!item->IsEnabled()); - GetDocument()->Modify(TRUE); + GetDocument()->Modify(true); OnChangeFilename(); SyncItem(treeControl, item); wxList considered; - item->PropagateChange(considered); if ((item->GetType() == ctTypeBoolRadio || item->GetType() == ctTypeRadioGroup) && item->IsEnabled()) { item->PropagateRadioButton(considered); } + item->PropagateChange(considered); + + // Update the setup.h and configure text + if (wxGetApp().GetMainFrame()->GetMainNotebook()->GetSelection() > 0) + { + RegenerateSetup(); + } } } @@ -378,37 +383,37 @@ ctConfigItem* ctConfigToolView::GetSelection() } /// Add a checkbox item -void ctConfigToolView::OnAddCheckBoxItem(wxCommandEvent& event) +void ctConfigToolView::OnAddCheckBoxItem(wxCommandEvent& WXUNUSED(event)) { AddItem(ctTypeBoolCheck, _("New checkbox item")); } /// Add a radiobutton item -void ctConfigToolView::OnAddRadioButtonItem(wxCommandEvent& event) +void ctConfigToolView::OnAddRadioButtonItem(wxCommandEvent& WXUNUSED(event)) { AddItem(ctTypeBoolRadio, _("New radio button item")); } /// Add a group item -void ctConfigToolView::OnAddGroupItem(wxCommandEvent& event) +void ctConfigToolView::OnAddGroupItem(wxCommandEvent& WXUNUSED(event)) { AddItem(ctTypeGroup, _("New group item")); } /// Add a group option item -void ctConfigToolView::OnAddCheckGroupItem(wxCommandEvent& event) +void ctConfigToolView::OnAddCheckGroupItem(wxCommandEvent& WXUNUSED(event)) { AddItem(ctTypeCheckGroup, _("New check group item")); } /// Add a group option item -void ctConfigToolView::OnAddRadioGroupItem(wxCommandEvent& event) +void ctConfigToolView::OnAddRadioGroupItem(wxCommandEvent& WXUNUSED(event)) { AddItem(ctTypeRadioGroup, _("New radio group item")); } /// Add a string item -void ctConfigToolView::OnAddStringItem(wxCommandEvent& event) +void ctConfigToolView::OnAddStringItem(wxCommandEvent& WXUNUSED(event)) { AddItem(ctTypeString, _("New string item")); } @@ -419,9 +424,8 @@ void ctConfigToolView::AddItem(ctConfigType type, const wxString& msg) ctConfigItem* sel = GetSelection(); if (sel) { - wxString name = wxGetTextFromUser(_("Please enter a name for the new item."), - msg, wxT("")); - if (!name.IsEmpty()) + wxString name = wxGetTextFromUser(_("Please enter a name for the new item."), msg); + if (!name.empty()) { ctConfigItem* parent ; ctConfigItem* insertBefore ; @@ -435,7 +439,7 @@ void ctConfigToolView::AddItem(ctConfigType type, const wxString& msg) parent = sel->GetParent(); insertBefore = sel->FindNextSibling(); } - + ctConfigItem* newItem = new ctConfigItem(NULL, type, name); newItem->InitProperties(); @@ -447,7 +451,7 @@ void ctConfigToolView::AddItem(ctConfigType type, const wxString& msg) } /// Delete an item -void ctConfigToolView::OnDeleteItem(wxCommandEvent& event) +void ctConfigToolView::OnDeleteItem(wxCommandEvent& WXUNUSED(event)) { ctConfigItem* sel = GetSelection(); if (sel) @@ -463,14 +467,14 @@ void ctConfigToolView::OnDeleteItem(wxCommandEvent& event) } /// Rename an item -void ctConfigToolView::OnRenameItem(wxCommandEvent& event) +void ctConfigToolView::OnRenameItem(wxCommandEvent& WXUNUSED(event)) { ctConfigItem* sel = GetSelection(); if (sel) { wxString name = wxGetTextFromUser(_("Please enter a new name for the item."), _("Rename item"), sel->GetName()); - if (!name.IsEmpty()) + if (!name.empty()) { sel->SetName(name); SyncItem(wxGetApp().GetMainFrame()->GetConfigTreeCtrl(), sel); @@ -482,7 +486,7 @@ void ctConfigToolView::OnRenameItem(wxCommandEvent& event) } /// Copy an item to the clipboard -void ctConfigToolView::OnCopy(wxCommandEvent& event) +void ctConfigToolView::OnCopy(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = GetSelection(); @@ -493,7 +497,7 @@ void ctConfigToolView::OnCopy(wxCommandEvent& event) } /// Copy an item to the clipboard and cut the item -void ctConfigToolView::OnCut(wxCommandEvent& event) +void ctConfigToolView::OnCut(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = GetSelection(); @@ -508,7 +512,7 @@ void ctConfigToolView::OnCut(wxCommandEvent& event) } /// Paste an item from the clipboard to the tree -void ctConfigToolView::OnPaste(wxCommandEvent& event) +void ctConfigToolView::OnPaste(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = GetSelection(); @@ -556,7 +560,7 @@ void ctConfigToolView::OnUpdatePaste(wxUpdateUIEvent& event) } /// Copy an item to the clipboard -void ctConfigToolView::OnContextCopy(wxCommandEvent& event) +void ctConfigToolView::OnContextCopy(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = wxGetApp().GetMainFrame()->GetConfigTreeCtrl()->GetContextItem(); @@ -567,7 +571,7 @@ void ctConfigToolView::OnContextCopy(wxCommandEvent& event) } /// Copy an item to the clipboard and cut the item -void ctConfigToolView::OnContextCut(wxCommandEvent& event) +void ctConfigToolView::OnContextCut(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = wxGetApp().GetMainFrame()->GetConfigTreeCtrl()->GetContextItem(); @@ -582,7 +586,7 @@ void ctConfigToolView::OnContextCut(wxCommandEvent& event) } /// Paste an item from the clipboard to the tree -void ctConfigToolView::OnContextPasteBefore(wxCommandEvent& event) +void ctConfigToolView::OnContextPasteBefore(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = wxGetApp().GetMainFrame()->GetConfigTreeCtrl()->GetContextItem(); @@ -599,7 +603,7 @@ void ctConfigToolView::OnContextPasteBefore(wxCommandEvent& event) } /// Paste an item from the clipboard to the tree -void ctConfigToolView::OnContextPasteAfter(wxCommandEvent& event) +void ctConfigToolView::OnContextPasteAfter(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = wxGetApp().GetMainFrame()->GetConfigTreeCtrl()->GetContextItem(); @@ -616,7 +620,7 @@ void ctConfigToolView::OnContextPasteAfter(wxCommandEvent& event) } /// Paste an item from the clipboard to the tree -void ctConfigToolView::OnContextPasteAsChild(wxCommandEvent& event) +void ctConfigToolView::OnContextPasteAsChild(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = wxGetApp().GetMainFrame()->GetConfigTreeCtrl()->GetContextItem(); @@ -626,7 +630,7 @@ void ctConfigToolView::OnContextPasteAsChild(wxCommandEvent& event) { ctConfigItem* parent = sel; ctConfigItem* insertBefore = NULL; - + ctConfigItem* newItem = doc->GetClipboardItem()->DeepClone(); ctConfigCommand* cmd = new ctConfigCommand(wxT("Paste Config Item"), ctCMD_PASTE, NULL, newItem, parent, insertBefore); @@ -676,13 +680,13 @@ void ctConfigToolView::OnUpdateContextPasteAsChild(wxUpdateUIEvent& event) } /// Item help -void ctConfigToolView::OnItemHelp(wxCommandEvent& event) +void ctConfigToolView::OnItemHelp(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); if ( doc && GetSelection() ) { wxString helpTopic = GetSelection()->GetPropertyString(wxT("help-topic")); - if (!helpTopic.IsEmpty()) + if (!helpTopic.empty()) { wxGetApp().GetReferenceHelpController().DisplaySection(helpTopic); } @@ -697,7 +701,7 @@ void ctConfigToolView::OnUpdateItemHelp(wxUpdateUIEvent& event) } /// Add a custom property -void ctConfigToolView::OnAddCustomProperty(wxCommandEvent& event) +void ctConfigToolView::OnAddCustomProperty(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = GetSelection(); @@ -705,7 +709,7 @@ void ctConfigToolView::OnAddCustomProperty(wxCommandEvent& event) if (doc && sel && editor) { ctCustomPropertyDialog dialog(wxGetApp().GetMainFrame(), - -1, _("Add a custom property")); + wxID_ANY, _("Add a custom property")); if (dialog.ShowModal() == wxID_OK) { wxString name = dialog.GetPropertyName(); @@ -722,14 +726,14 @@ void ctConfigToolView::OnAddCustomProperty(wxCommandEvent& event) } ctProperty* property = new ctProperty; if (type == wxT("bool")) - property->GetVariant() = wxVariant((bool) FALSE, name); + property->GetVariant() = wxVariant(false, name); else if (type == wxT("double")) property->GetVariant() = wxVariant((double) 0.0, name); else if (type == wxT("long")) property->GetVariant() = wxVariant((long) 0, name); else - property->GetVariant() = wxVariant(wxT(""), name); - property->SetCustom(TRUE); + property->GetVariant() = wxVariant(wxEmptyString, name); + property->SetCustom(true); property->SetDescription(descr); property->SetChoices(choices); property->SetEditorType(editorType); @@ -742,7 +746,7 @@ void ctConfigToolView::OnAddCustomProperty(wxCommandEvent& event) } /// Edit a custom property -void ctConfigToolView::OnEditCustomProperty(wxCommandEvent& event) +void ctConfigToolView::OnEditCustomProperty(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = GetSelection(); @@ -758,9 +762,9 @@ void ctConfigToolView::OnEditCustomProperty(wxCommandEvent& event) wxString oldType = property->GetVariant().GetType(); wxString oldEditorType = property->GetEditorType(); wxArrayString oldChoices = property->GetChoices(); - + ctCustomPropertyDialog dialog(wxGetApp().GetMainFrame(), - -1, _("Edit custom property")); + wxID_ANY, _("Edit custom property")); dialog.SetPropertyName(oldName); dialog.SetPropertyType(oldType); dialog.SetPropertyDescription(oldDescription); @@ -771,7 +775,7 @@ void ctConfigToolView::OnEditCustomProperty(wxCommandEvent& event) wxString editorType = dialog.GetEditorType(); wxArrayString choices = dialog.GetChoices(); wxString descr = dialog.GetPropertyDescription(); - + if (name != oldName && sel->GetProperties().FindProperty(name)) { wxMessageBox(_("Sorry, this name already exists."), _T("Add custom property"), @@ -781,13 +785,13 @@ void ctConfigToolView::OnEditCustomProperty(wxCommandEvent& event) if (type != oldType) { if (type == wxT("bool")) - property->GetVariant() = wxVariant((bool) FALSE, name); + property->GetVariant() = wxVariant(false, name); else if (type == wxT("double")) property->GetVariant() = wxVariant((double) 0.0, name); else if (type == wxT("long")) property->GetVariant() = wxVariant((long) 0, name); else - property->GetVariant() = wxVariant(wxT(""), name); + property->GetVariant() = wxVariant(wxEmptyString, name); } if (name != oldName) property->GetVariant().SetName(name); @@ -801,11 +805,11 @@ void ctConfigToolView::OnEditCustomProperty(wxCommandEvent& event) if (name != oldName) property->GetVariant().SetName(name); - property->SetCustom(TRUE); + property->SetCustom(true); if (descr != oldDescription) property->SetDescription(descr); - + editor->ShowItem(sel); OnChangeFilename(); } @@ -814,7 +818,7 @@ void ctConfigToolView::OnEditCustomProperty(wxCommandEvent& event) } /// Delete a custom property -void ctConfigToolView::OnDeleteCustomProperty(wxCommandEvent& event) +void ctConfigToolView::OnDeleteCustomProperty(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); ctConfigItem* sel = GetSelection(); @@ -899,80 +903,84 @@ void ctConfigToolView::OnTabSelect(wxNotebookEvent& event) } } -void ctConfigToolView::OnSaveSetupFile(wxCommandEvent& event) +void ctConfigToolView::OnSaveSetupFile(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); wxString setupStr = doc->GenerateSetup(); wxString filename = _T("setup.h"); - wxString path = doc->GetFrameworkDir(FALSE); + wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir; + if (path.empty()) + path = doc->GetFrameworkDir(false); wxString wildcard = _T("Header files (*.h)|*.h|All files (*.*)|*.*"); - + wxFileDialog dialog(wxTheApp->GetTopWindow(), _("Save Setup File As"), path, filename , wildcard, wxSAVE|wxOVERWRITE_PROMPT); - + if (dialog.ShowModal() == wxID_OK) { wxString fullPath = dialog.GetPath(); + wxGetApp().GetSettings().m_lastSetupSaveDir = wxPathOnly(fullPath); - // TODO: save last saved path in settings. - - wxFileOutputStream stream(fullPath); - if (!stream.Ok()) + wxFileOutputStream osFile(fullPath); + if (!osFile.Ok()) { wxMessageBox(_("Sorry, could not save this file."), _("Save Setup File"), wxICON_EXCLAMATION|wxOK); return; } + wxTextOutputStream stream(osFile); stream << setupStr; - } + } } -void ctConfigToolView::OnSaveConfigureCommand(wxCommandEvent& event) +void ctConfigToolView::OnSaveConfigureCommand(wxCommandEvent& WXUNUSED(event)) { ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); wxString configureStr = doc->GenerateConfigureCommand(); wxString filename = _T("configurewx.sh"); - wxString path = doc->GetFrameworkDir(FALSE); + wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir; + if (path.empty()) + path = doc->GetFrameworkDir(false); wxString wildcard = _T("Shell script files (*.sh)|*.sh|All files (*.*)|*.*"); - + wxFileDialog dialog(wxTheApp->GetTopWindow(), _("Save Configure Command File As"), path, filename , wildcard, wxSAVE|wxOVERWRITE_PROMPT); - + if (dialog.ShowModal() == wxID_OK) { wxString fullPath = dialog.GetPath(); + wxGetApp().GetSettings().m_lastSetupSaveDir = wxPathOnly(fullPath); - // TODO: save last saved path in settings. - - wxFileOutputStream stream(fullPath); - if (!stream.Ok()) + wxFileOutputStream osFile(fullPath); + if (!osFile.Ok()) { wxMessageBox(_("Sorry, could not save this file."), _("Save Configure Command File"), wxICON_EXCLAMATION|wxOK); return; } + wxTextOutputStream stream(osFile); stream << configureStr; - } + } } void ctConfigToolView::OnUpdateSaveSetupFile(wxUpdateUIEvent& event) { - event.Enable(TRUE); + event.Enable(true); } void ctConfigToolView::OnUpdateSaveConfigureCommand(wxUpdateUIEvent& event) { - event.Enable(TRUE); + event.Enable(true); } /// Find text -void ctConfigToolView::OnFind(wxCommandEvent& event) +void ctConfigToolView::OnFind(wxCommandEvent& WXUNUSED(event)) { ctFindReplaceDialog* dialog = wxGetApp().GetMainFrame()->GetFindDialog(); if (dialog) @@ -993,14 +1001,83 @@ void ctConfigToolView::OnFind(wxCommandEvent& event) ctFindReplaceDialog::sm_findData.SetFlags(flags); dialog = new ctFindReplaceDialog(wxGetApp().GetMainFrame(), caption, style); - dialog->Show(TRUE); + dialog->Show(true); } } /// Update find text void ctConfigToolView::OnUpdateFind(wxUpdateUIEvent& event) { - event.Enable(TRUE); + event.Enable(true); +} + +/// Save default file type +void ctConfigToolView::OnGo(wxCommandEvent& WXUNUSED(event)) +{ + ctConfigToolDoc* doc = (ctConfigToolDoc*) GetDocument(); + wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir; + if (!path.empty()) + { + if (wxGetApp().GetSettings().m_defaultFileKind == wxT("Setup file")) + { + // setup.h + wxString setupStr = doc->GenerateSetup(); + + wxString fullPath = path + wxFILE_SEP_PATH + wxT("setup.h"); + if (wxFileExists(fullPath)) + { + wxString msg; + msg.Printf(wxT("Overwrite existing file %s?"), (const wxChar*) fullPath); + int ans = wxMessageBox(msg, _("Save Setup File"), wxICON_QUESTION|wxYES_NO|wxCANCEL); + if (ans == wxCANCEL) + return; + if (ans == wxNO) + return; + } + wxFileOutputStream stream(fullPath); + if (!stream.Ok()) + { + wxMessageBox(_("Sorry, could not save this file."), _("Save Setup File"), wxICON_EXCLAMATION|wxOK); + return; + } + stream << setupStr; + } + else if (wxGetApp().GetSettings().m_defaultFileKind == wxT("Configure script")) + { + // configurewx.sh + wxString configureStr = doc->GenerateConfigureCommand(); + + wxString fullPath = path + wxFILE_SEP_PATH + wxT("configurewx.sh"); + if (wxFileExists(fullPath)) + { + wxString msg; + msg.Printf(wxT("Overwrite existing file %s?"), (const wxChar*) fullPath); + int ans = wxMessageBox(msg, _("Save Configure Script"), wxICON_QUESTION|wxYES_NO|wxCANCEL); + if (ans == wxCANCEL) + return; + if (ans == wxNO) + return; + } + wxFileOutputStream stream(fullPath); + if (!stream.Ok()) + { + wxMessageBox(_("Sorry, could not save this file."), _("Save Configure Script"), wxICON_EXCLAMATION|wxOK); + return; + } + stream << configureStr; + } + else + { + wxMessageBox(wxT("Unrecognised default file type.")); + } + } +} + +/// Update +void ctConfigToolView::OnUpdateGo(wxUpdateUIEvent& event) +{ + wxString path = wxGetApp().GetSettings().m_lastSetupSaveDir; + event.Enable(!path.empty()); } //---------------------------------------------------------------------------- @@ -1008,9 +1085,9 @@ void ctConfigToolView::OnUpdateFind(wxUpdateUIEvent& event) //---------------------------------------------------------------------------- BEGIN_EVENT_TABLE(ctFindReplaceDialog, wxFindReplaceDialog) - EVT_FIND(-1, ctFindReplaceDialog::OnFind) - EVT_FIND_NEXT(-1, ctFindReplaceDialog::OnFind) - EVT_FIND_CLOSE(-1, ctFindReplaceDialog::OnClose) + EVT_FIND(wxID_ANY, ctFindReplaceDialog::OnFind) + EVT_FIND_NEXT(wxID_ANY, ctFindReplaceDialog::OnFind) + EVT_FIND_CLOSE(wxID_ANY, ctFindReplaceDialog::OnClose) END_EVENT_TABLE() wxFindReplaceData ctFindReplaceDialog::sm_findData; @@ -1045,7 +1122,7 @@ bool ctFindReplaceDialog::DoFind(const wxString& textToFind, bool matchCase, boo { ctConfigToolDoc* doc = wxGetApp().GetMainFrame()->GetDocument(); if (!doc) - return FALSE; + return false; ctConfigToolView* view = (ctConfigToolView*) doc->GetFirstView(); ctConfigItem* currentItem = NULL; @@ -1054,10 +1131,10 @@ bool ctFindReplaceDialog::DoFind(const wxString& textToFind, bool matchCase, boo { focusItem = doc->GetTopItem(); if (!focusItem) - return FALSE; + return false; } - if (!sm_currentItem.IsEmpty()) + if (!sm_currentItem.empty()) { currentItem = doc->GetTopItem()->FindItem(sm_currentItem); } @@ -1071,14 +1148,14 @@ bool ctFindReplaceDialog::DoFind(const wxString& textToFind, bool matchCase, boo { sm_currentItem = currentItem->GetName(); wxGetApp().GetMainFrame()->GetConfigTreeCtrl()->SelectItem(currentItem->GetTreeItemId()); - return TRUE; + return true; } else { sm_currentItem = wxEmptyString; } - return FALSE; + return false; } ctConfigItem* ctFindReplaceDialog::FindNextItem(ctConfigToolDoc* doc,