diff --git a/src/calchartapp.cpp b/src/calchartapp.cpp index 36cf40cd..938300e6 100644 --- a/src/calchartapp.cpp +++ b/src/calchartapp.cpp @@ -37,13 +37,6 @@ wxPrintDialogData *gPrintDialogData; -wxHtmlHelpController& -GetGlobalHelpController() -{ - static wxHtmlHelpController sHelpController; - return sHelpController; -} - void CC_continuity_UnitTests(); void CC_point_UnitTests(); void CC_coord_UnitTests(); @@ -63,6 +56,7 @@ bool CalChartApp::OnInit() CLASSINFO(CalChartDoc), CLASSINFO(FieldView)); gPrintDialogData = new wxPrintDialogData(); + mHelpController = std::unique_ptr(new wxHtmlHelpController()); // setup the configuration. ReadConfig(); @@ -107,6 +101,12 @@ bool CalChartApp::OnInit() return true; } +wxHtmlHelpController& +CalChartApp::GetGlobalHelpController() +{ + return *mHelpController; +} + void CalChartApp::MacOpenFile(const wxString &fileName) { mDocManager->CreateDocument(fileName, wxDOC_SILENT); @@ -125,6 +125,8 @@ int CalChartApp::OnExit() // delete the doc manager delete wxDocManager::GetDocumentManager(); + mHelpController.reset(); + return wxApp::OnExit(); } diff --git a/src/calchartapp.h b/src/calchartapp.h index 9a72ea94..c26304b6 100644 --- a/src/calchartapp.h +++ b/src/calchartapp.h @@ -27,14 +27,12 @@ #include #include +#include class CalChartApp; class ShowMode; class wxHtmlHelpController; -// the global help system: -wxHtmlHelpController& GetGlobalHelpController(); - DECLARE_APP(CalChartApp) // Define a new application @@ -46,10 +44,15 @@ class CalChartApp : public wxApp int OnExit(); ShowModeList& GetModeList() { return mModeList; } + + // the global help system: + wxHtmlHelpController& GetGlobalHelpController(); + private: ShowModeList mModeList; wxDocManager* mDocManager; + std::unique_ptr mHelpController; }; #endif // _CALCHARTAPP_H_ diff --git a/src/cont_ui.cpp b/src/cont_ui.cpp index 5c842453..3856081d 100644 --- a/src/cont_ui.cpp +++ b/src/cont_ui.cpp @@ -224,8 +224,8 @@ void ContinuityEditor::OnCloseWindow(wxCommandEvent& event) void ContinuityEditor::OnCmdHelp(wxCommandEvent& event) { - GetGlobalHelpController().LoadFile(); - GetGlobalHelpController().KeywordSearch(wxT("Animation Commands")); + wxGetApp().GetGlobalHelpController().LoadFile(); + wxGetApp().GetGlobalHelpController().KeywordSearch(wxT("Animation Commands")); } diff --git a/src/print_cont_ui.cpp b/src/print_cont_ui.cpp index 2614353f..3cf5d7be 100644 --- a/src/print_cont_ui.cpp +++ b/src/print_cont_ui.cpp @@ -253,8 +253,8 @@ void PrintContinuityEditor::OnCloseWindow(wxCommandEvent& event) void PrintContinuityEditor::OnCmdHelp(wxCommandEvent& event) { - GetGlobalHelpController().LoadFile(); - GetGlobalHelpController().KeywordSearch(wxT("Animation Commands")); + wxGetApp().GetGlobalHelpController().LoadFile(); + wxGetApp().GetGlobalHelpController().KeywordSearch(wxT("Animation Commands")); } diff --git a/src/top_frame.cpp b/src/top_frame.cpp index 40593ed8..d7977255 100644 --- a/src/top_frame.cpp +++ b/src/top_frame.cpp @@ -139,8 +139,8 @@ TopFrame::About() void TopFrame::Help() { - GetGlobalHelpController().LoadFile(); - GetGlobalHelpController().DisplayContents(); + wxGetApp().GetGlobalHelpController().LoadFile(); + wxGetApp().GetGlobalHelpController().DisplayContents(); }