Add wxHtmlHelpController::SetShouldPreventAppExit().
Add a method which can be used to indicate that the help window should prevent the application from exiting and use it in the help sample to prevent it from closing prematurely. Closes #13046. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@67228 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -48,6 +48,8 @@ public:
|
||||
wxHtmlHelpController(int style = wxHF_DEFAULT_STYLE, wxWindow* parentWindow = NULL);
|
||||
virtual ~wxHtmlHelpController();
|
||||
|
||||
void SetShouldPreventAppExit(bool enable);
|
||||
|
||||
void SetTitleFormat(const wxString& format);
|
||||
void SetTempDir(const wxString& path) { m_helpData.SetTempDir(path); }
|
||||
bool AddBook(const wxString& book_url, bool show_wait_msg = false);
|
||||
@@ -129,6 +131,8 @@ protected:
|
||||
wxHtmlHelpFrame* m_helpFrame;
|
||||
wxHtmlHelpDialog* m_helpDialog;
|
||||
|
||||
bool m_shouldPreventAppExit;
|
||||
|
||||
wxDECLARE_NO_COPY_CLASS(wxHtmlHelpController);
|
||||
};
|
||||
|
||||
|
@@ -115,9 +115,11 @@ public:
|
||||
// Override to add custom buttons to the toolbar
|
||||
virtual void AddToolbarButtons(wxToolBar* WXUNUSED(toolBar), int WXUNUSED(style)) {}
|
||||
|
||||
void SetShouldPreventAppExit(bool enable);
|
||||
|
||||
// we don't want to prevent the app from closing just because a help window
|
||||
// remains opened
|
||||
virtual bool ShouldPreventAppExit() const { return false; }
|
||||
virtual bool ShouldPreventAppExit() const { return m_shouldPreventAppExit; }
|
||||
|
||||
protected:
|
||||
void Init(wxHtmlHelpData* data = NULL);
|
||||
@@ -143,6 +145,7 @@ protected:
|
||||
wxString m_TitleFormat; // title of the help frame
|
||||
wxHtmlHelpWindow *m_HtmlHelpWin;
|
||||
wxHtmlHelpController* m_helpController;
|
||||
bool m_shouldPreventAppExit;
|
||||
|
||||
private:
|
||||
|
||||
|
@@ -171,6 +171,21 @@ public:
|
||||
virtual void ReadCustomization(wxConfigBase* cfg,
|
||||
const wxString& path = wxEmptyString);
|
||||
|
||||
/**
|
||||
Sets whether the help frame should prevent application from exiting
|
||||
if it's the only remaining top level window.
|
||||
|
||||
@enable
|
||||
If @true, the application will not quit unless the help frame is
|
||||
closed. Default is @false, i.e. the application does exit if only
|
||||
the help window remains opened.
|
||||
|
||||
@see wxApp::SetExitOnFrameDelete()
|
||||
|
||||
@since 2.9.2
|
||||
*/
|
||||
void SetShouldPreventAppExit(bool enable);
|
||||
|
||||
/**
|
||||
Sets the path for storing temporary files - cached binary versions of index and
|
||||
contents files.
|
||||
|
@@ -86,6 +86,8 @@ bool MyApp::OnInit()
|
||||
delete wxLog::SetActiveTarget(new wxLogGui);
|
||||
#endif
|
||||
|
||||
help->SetShouldPreventAppExit(true);
|
||||
|
||||
help -> DisplayContents();
|
||||
|
||||
return true;
|
||||
|
@@ -52,6 +52,7 @@ wxHtmlHelpController::wxHtmlHelpController(int style, wxWindow* parentWindow):
|
||||
#endif // wxUSE_CONFIG
|
||||
m_titleFormat = _("Help: %s");
|
||||
m_FrameStyle = style;
|
||||
m_shouldPreventAppExit = false;
|
||||
}
|
||||
|
||||
wxHtmlHelpController::~wxHtmlHelpController()
|
||||
@@ -105,6 +106,13 @@ void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
|
||||
m_helpFrame = NULL;
|
||||
}
|
||||
|
||||
void wxHtmlHelpController::SetShouldPreventAppExit(bool enable)
|
||||
{
|
||||
m_shouldPreventAppExit = enable;
|
||||
if ( m_helpFrame )
|
||||
m_helpFrame->SetShouldPreventAppExit(enable);
|
||||
}
|
||||
|
||||
void wxHtmlHelpController::SetTitleFormat(const wxString& title)
|
||||
{
|
||||
m_titleFormat = title;
|
||||
@@ -163,6 +171,7 @@ wxHtmlHelpFrame* wxHtmlHelpController::CreateHelpFrame(wxHtmlHelpData *data)
|
||||
#endif // wxUSE_CONFIG
|
||||
);
|
||||
frame->SetTitleFormat(m_titleFormat);
|
||||
frame->SetShouldPreventAppExit(m_shouldPreventAppExit);
|
||||
m_helpFrame = frame;
|
||||
return frame;
|
||||
}
|
||||
|
@@ -89,6 +89,7 @@ void wxHtmlHelpFrame::Init(wxHtmlHelpData* data)
|
||||
m_Data = data;
|
||||
m_HtmlHelpWin = NULL;
|
||||
m_helpController = NULL;
|
||||
m_shouldPreventAppExit = false;
|
||||
}
|
||||
|
||||
void wxHtmlHelpFrame::SetController(wxHtmlHelpController* controller)
|
||||
@@ -246,6 +247,11 @@ void wxHtmlHelpFrame::UseConfig(wxConfigBase *config, const wxString& rootPath)
|
||||
}
|
||||
#endif // wxUSE_CONFIG
|
||||
|
||||
void wxHtmlHelpFrame::SetShouldPreventAppExit(bool enable)
|
||||
{
|
||||
m_shouldPreventAppExit = enable;
|
||||
}
|
||||
|
||||
#ifdef __WXMAC__
|
||||
void wxHtmlHelpFrame::OnClose(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
|
Reference in New Issue
Block a user