X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5152b0e59aa09d885deeaa018642e0e96aff92d9..7dbe942aaaa9a8f32c9f901bdcf83d7941362b71:/src/html/helpctrl.cpp?ds=sidebyside diff --git a/src/html/helpctrl.cpp b/src/html/helpctrl.cpp index 21a80600ec..c52512ab36 100644 --- a/src/html/helpctrl.cpp +++ b/src/html/helpctrl.cpp @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "helpctrl.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -30,13 +26,25 @@ #include "wx/html/helpctrl.h" #include "wx/busyinfo.h" +#ifdef __WXGTK__ + // for the hack in AddGrabIfNeeded() + #include "wx/dialog.h" +#endif // __WXGTK__ + #if wxUSE_HELP -#include "wx/tipwin.h" + #include "wx/tipwin.h" +#endif + + +#if wxUSE_LIBMSPACK +#include "wx/html/forcelnk.h" +FORCE_LINK(wxhtml_chm_support) #endif IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase) -wxHtmlHelpController::wxHtmlHelpController(int style) +wxHtmlHelpController::wxHtmlHelpController(int style, wxWindow* parentWindow): + wxHelpControllerBase(parentWindow) { m_helpFrame = NULL; m_Config = NULL; @@ -79,6 +87,11 @@ void wxHtmlHelpController::SetTitleFormat(const wxString& title) } +bool wxHtmlHelpController::AddBook(const wxFileName& book_file, bool show_wait_msg) +{ + return AddBook(wxFileSystem::FileNameToURL(book_file), show_wait_msg); +} + bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) { wxBusyCursor cur; @@ -95,8 +108,10 @@ bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) #if wxUSE_BUSYINFO if (show_wait_msg) delete busy; +#else + wxUnusedVar(show_wait_msg); #endif - if (m_helpFrame) + if (m_helpFrame) m_helpFrame->RefreshLists(); return retval; } @@ -119,7 +134,7 @@ void wxHtmlHelpController::CreateHelpWindow() if (m_Config == NULL) { - m_Config = wxConfigBase::Get(FALSE); + m_Config = wxConfigBase::Get(false); if (m_Config != NULL) m_ConfigRoot = _T("wxWindows/wxHtmlHelpController"); } @@ -130,9 +145,10 @@ void wxHtmlHelpController::CreateHelpWindow() if (m_Config) m_helpFrame->UseConfig(m_Config, m_ConfigRoot); - m_helpFrame->Create(NULL, wxID_HTML_HELPFRAME, wxEmptyString, m_FrameStyle); + m_helpFrame->Create(GetParentWindow(), wxID_HTML_HELPFRAME, wxEmptyString, m_FrameStyle); m_helpFrame->SetTitleFormat(m_titleFormat); - m_helpFrame->Show(TRUE); + + m_helpFrame->Show(true); } void wxHtmlHelpController::ReadCustomization(wxConfigBase* cfg, const wxString& path) @@ -165,8 +181,8 @@ bool wxHtmlHelpController::Initialize(const wxString& file) wxString dir, filename, ext; wxSplitPath(file, & dir, & filename, & ext); - if (!dir.IsEmpty()) - dir = dir + wxString(wxT("/")); + if (!dir.empty()) + dir = dir + wxFILE_SEP_PATH; // Try to find a suitable file wxString actualFilename = dir + filename + wxString(wxT(".zip")); @@ -177,17 +193,22 @@ bool wxHtmlHelpController::Initialize(const wxString& file) { actualFilename = dir + filename + wxString(wxT(".hhp")); if (!wxFileExists(actualFilename)) - return FALSE; + { +#if wxUSE_LIBMSPACK + actualFilename = dir + filename + wxString(wxT(".chm")); + if (!wxFileExists(actualFilename)) +#endif + return false; + } } } - - return AddBook(actualFilename); + return AddBook(wxFileName(actualFilename)); } bool wxHtmlHelpController::LoadFile(const wxString& WXUNUSED(file)) { // Don't reload the file or we'll have it appear again, presumably. - return TRUE; + return true; } bool wxHtmlHelpController::DisplaySection(int sectionNo) @@ -213,11 +234,13 @@ bool wxHtmlHelpController::DisplayTextPopup(const wxString& text, const wxPoint& { s_tipWindow = new wxTipWindow(wxTheApp->GetTopWindow(), text, 100, & s_tipWindow); - return TRUE; + return true; } +#else + wxUnusedVar(text); #endif // wxUSE_TIPWINDOW - return FALSE; + return false; } void wxHtmlHelpController::SetFrameParameters(const wxString& title, @@ -237,7 +260,7 @@ wxFrame* wxHtmlHelpController::GetFrameParameters(wxSize *size, bool *newFrameEachTime) { if (newFrameEachTime) - (* newFrameEachTime) = FALSE; + (* newFrameEachTime) = false; if (size && m_helpFrame) (* size) = m_helpFrame->GetSize(); if (pos && m_helpFrame) @@ -248,7 +271,7 @@ wxFrame* wxHtmlHelpController::GetFrameParameters(wxSize *size, bool wxHtmlHelpController::Quit() { DestroyHelpWindow(); - return TRUE; + return true; } // Make the help controller's frame 'modal' if @@ -257,11 +280,11 @@ void wxHtmlHelpController::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(); + for ( wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst(); node; node = node->GetNext() ) { @@ -269,12 +292,12 @@ void wxHtmlHelpController::AddGrabIfNeeded() wxDialog *dialog = wxDynamicCast(win, wxDialog); if (dialog && dialog->IsModal()) - needGrab = TRUE; + needGrab = true; } if (needGrab && m_helpFrame) m_helpFrame->AddGrab(); -#endif +#endif // __WXGTK__ } bool wxHtmlHelpController::Display(const wxString& x) @@ -282,7 +305,7 @@ bool wxHtmlHelpController::Display(const wxString& x) CreateHelpWindow(); bool success = m_helpFrame->Display(x); AddGrabIfNeeded(); - return success; + return success; } bool wxHtmlHelpController::Display(int id) @@ -309,10 +332,11 @@ bool wxHtmlHelpController::DisplayIndex() return success; } -bool wxHtmlHelpController::KeywordSearch(const wxString& keyword) +bool wxHtmlHelpController::KeywordSearch(const wxString& keyword, + wxHelpSearchMode mode) { CreateHelpWindow(); - bool success = m_helpFrame->KeywordSearch(keyword); + bool success = m_helpFrame->KeywordSearch(keyword, mode); AddGrabIfNeeded(); return success; }