X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3e63c3158d155f845b893d73315daa6adcd8d3d0..c17b2e31516424a77fd54b8fc192eac133269ce4:/src/html/helpfrm.cpp diff --git a/src/html/helpfrm.cpp b/src/html/helpfrm.cpp index 11ac77f2f9..61009bfb6f 100644 --- a/src/html/helpfrm.cpp +++ b/src/html/helpfrm.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: helpfrm.cpp +// Name: src/html/helpfrm.cpp // Purpose: wxHtmlHelpFrame // Notes: Based on htmlhelp.cpp, implementing a monolithic // HTML Help controller class, by Vaclav Slavik @@ -14,31 +14,36 @@ #include "wx/wxprec.h" #ifdef __BORLANDC__ -#pragma hdrstop + #pragma hdrstop #endif #if wxUSE_WXHTML_HELP -#ifndef WXPRECOMP +#ifndef WX_PRECOMP + #include "wx/object.h" + #include "wx/dynarray.h" #include "wx/intl.h" #include "wx/log.h" + #if wxUSE_STREAMS + #include "wx/stream.h" + #endif - #include "wx/object.h" #include "wx/sizer.h" #include "wx/bmpbuttn.h" #include "wx/statbox.h" #include "wx/radiobox.h" -#endif // WXPRECOMP - -#ifdef __WXMAC__ #include "wx/menu.h" + #include "wx/settings.h" #include "wx/msgdlg.h" -#endif + #include "wx/textctrl.h" + #include "wx/toolbar.h" + #include "wx/choicdlg.h" + #include "wx/filedlg.h" +#endif // WX_PRECOMP #include "wx/html/helpfrm.h" #include "wx/html/helpctrl.h" -#include "wx/textctrl.h" #include "wx/notebook.h" #include "wx/imaglist.h" #include "wx/treectrl.h" @@ -47,15 +52,10 @@ #include "wx/html/htmlwin.h" #include "wx/busyinfo.h" #include "wx/progdlg.h" -#include "wx/toolbar.h" #include "wx/fontenum.h" -#include "wx/stream.h" -#include "wx/filedlg.h" #include "wx/artprov.h" #include "wx/spinctrl.h" -#include "wx/dynarray.h" -#include "wx/choicdlg.h" -#include "wx/settings.h" +#include "wx/app.h" IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpFrame, wxFrame) @@ -70,10 +70,11 @@ BEGIN_EVENT_TABLE(wxHtmlHelpFrame, wxFrame) END_EVENT_TABLE() wxHtmlHelpFrame::wxHtmlHelpFrame(wxWindow* parent, wxWindowID id, const wxString& title, - int style, wxHtmlHelpData* data) + int style, wxHtmlHelpData* data, + wxConfigBase *config, const wxString& rootpath) { Init(data); - Create(parent, id, title, style); + Create(parent, id, title, style, config, rootpath); } void wxHtmlHelpFrame::Init(wxHtmlHelpData* data) @@ -86,18 +87,21 @@ void wxHtmlHelpFrame::Init(wxHtmlHelpData* data) // Create: builds the GUI components. bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, - const wxString& WXUNUSED(title), int style) + const wxString& WXUNUSED(title), int style, + wxConfigBase *config, const wxString& rootpath) { m_HtmlHelpWin = new wxHtmlHelpWindow(m_Data); - - wxFrame::Create(parent, id, _("Help"), + if ( config) + m_HtmlHelpWin->UseConfig(config, rootpath); + + wxFrame::Create(parent, id, _("Help"), wxPoint(m_HtmlHelpWin->GetCfgData().x, m_HtmlHelpWin->GetCfgData().y), - wxSize(m_HtmlHelpWin->GetCfgData().w, m_HtmlHelpWin->GetCfgData().h), + wxSize(m_HtmlHelpWin->GetCfgData().w, m_HtmlHelpWin->GetCfgData().h), wxDEFAULT_FRAME_STYLE, wxT("wxHtmlHelp")); #if wxUSE_STATUSBAR CreateStatusBar(); #endif - m_HtmlHelpWin->Create(this, -1, wxDefaultPosition, wxDefaultSize, + m_HtmlHelpWin->Create(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxNO_BORDER, style); GetPosition(& (m_HtmlHelpWin->GetCfgData().x), & (m_HtmlHelpWin->GetCfgData()).y); @@ -194,8 +198,8 @@ void wxHtmlHelpFrame::AddGrabIfNeeded() { // So far, wxGTK only #ifdef __WXGTK__ - bool needGrab = FALSE; - + bool needGrab = false; + // Check if there are any modal windows present, // in which case we need to add a grab. for ( wxWindowList::iterator it = wxTopLevelWindows.begin(); @@ -206,7 +210,7 @@ void wxHtmlHelpFrame::AddGrabIfNeeded() wxDialog *dialog = wxDynamicCast(win, wxDialog); if (dialog && dialog->IsModal()) - needGrab = TRUE; + needGrab = true; } if (needGrab) @@ -234,4 +238,11 @@ void wxHtmlHelpFrame::OnAbout(wxCommandEvent& event) } #endif +// we don't want to prevent the app from closing just because a help window +// remains opened +bool wxHtmlHelpFrame::ShouldPreventAppExit() const +{ + return (wx_const_cast(wxHtmlHelpFrame*, this) == wxTheApp->GetTopWindow()); +} + #endif // wxUSE_WXHTML_HELP