X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3755cfa64d2f5182ec88d9d0bf934769e0269d10..fc5d9e38ee002c024be3019e37b63f1a1d88e7c2:/src/html/helpfrm.cpp diff --git a/src/html/helpfrm.cpp b/src/html/helpfrm.cpp index d01182f17f..e8990b8d23 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,9 @@ #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" IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpFrame, wxFrame) @@ -70,10 +69,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) @@ -84,25 +84,36 @@ void wxHtmlHelpFrame::Init(wxHtmlHelpData* data) m_helpController = (wxHtmlHelpController*) NULL; } +void wxHtmlHelpFrame::SetController(wxHtmlHelpController* controller) +{ + m_helpController = controller; + if ( m_HtmlHelpWin ) + m_HtmlHelpWin->SetController(controller); +} + // 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"), + m_HtmlHelpWin->SetController(m_helpController); + 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); - SetIcon(wxArtProvider::GetIcon(wxART_HELP, wxART_HELP_BROWSER)); + SetIcon(wxArtProvider::GetIcon(wxART_HELP, wxART_FRAME_ICON)); // On the Mac, each modeless frame must have a menubar. // TODO: add more menu items, and perhaps add a style to show @@ -194,19 +205,19 @@ 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::Node * node = wxTopLevelWindows.GetFirst(); - node; - node = node->GetNext() ) + for ( wxWindowList::iterator it = wxTopLevelWindows.begin(); + it != wxTopLevelWindows.end(); + ++it ) { - wxWindow *win = node->GetData(); + wxWindow *win = *it; wxDialog *dialog = wxDynamicCast(win, wxDialog); if (dialog && dialog->IsModal()) - needGrab = TRUE; + needGrab = true; } if (needGrab) @@ -222,12 +233,12 @@ void wxHtmlHelpFrame::UseConfig(wxConfigBase *config, const wxString& rootPath) } #ifdef __WXMAC__ -void wxHtmlHelpFrame::OnClose(wxCommandEvent& event) +void wxHtmlHelpFrame::OnClose(wxCommandEvent& WXUNUSED(event)) { Close(true); } -void wxHtmlHelpFrame::OnAbout(wxCommandEvent& event) +void wxHtmlHelpFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) { wxMessageBox(wxT("wxWidgets HTML Help Viewer (c) 1998-2006, Vaclav Slavik et al"), wxT("HelpView"), wxICON_INFORMATION|wxOK, this);