X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b4414c1f3778c54fb0ddfd2eea63f940bbee6d0f..9cf99fc093f9c45b6b5d8d8b357699d826c9916a:/src/html/helpctrl.cpp?ds=sidebyside diff --git a/src/html/helpctrl.cpp b/src/html/helpctrl.cpp index 6d6583db50..e513a50f63 100644 --- a/src/html/helpctrl.cpp +++ b/src/html/helpctrl.cpp @@ -20,22 +20,22 @@ #pragma hdrstop #endif -#include "wx/defs.h" +#if wxUSE_WXHTML_HELP -#if wxUSE_HTML +#ifndef WX_PRECOMP + #include "wx/app.h" + #include "wx/intl.h" +#endif // WX_PRECOMP #include "wx/html/helpctrl.h" -#include "wx/wx.h" #include "wx/busyinfo.h" -IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase) - -#if 0 -BEGIN_EVENT_TABLE(wxHtmlHelpController, wxEvtHandler) -EVT_CLOSE(wxHtmlHelpController::OnCloseFrame) -END_EVENT_TABLE() +#if wxUSE_HELP +#include "wx/tipwin.h" #endif +IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase) + wxHtmlHelpController::wxHtmlHelpController(int style) { m_helpFrame = NULL; @@ -47,7 +47,8 @@ wxHtmlHelpController::wxHtmlHelpController(int style) wxHtmlHelpController::~wxHtmlHelpController() { - WriteCustomization(m_Config, m_ConfigRoot); + if (m_Config) + WriteCustomization(m_Config, m_ConfigRoot); if (m_helpFrame) DestroyHelpWindow(); } @@ -84,7 +85,8 @@ bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) #if wxUSE_BUSYINFO wxBusyInfo* busy = NULL; wxString info; - if (show_wait_msg) { + if (show_wait_msg) + { info.Printf(_("Adding book %s"), book.c_str()); busy = new wxBusyInfo(info); } @@ -93,7 +95,7 @@ bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg) #if wxUSE_BUSYINFO if (show_wait_msg) delete busy; -#endif +#endif return retval; } @@ -107,12 +109,13 @@ wxHtmlHelpFrame *wxHtmlHelpController::CreateHelpFrame(wxHtmlHelpData *data) void wxHtmlHelpController::CreateHelpWindow() { - if (m_helpFrame) { + if (m_helpFrame) + { m_helpFrame->Raise(); return ; } - if (m_Config == NULL) + if (m_Config == NULL) { m_Config = wxConfigBase::Get(FALSE); if (m_Config != NULL) @@ -121,7 +124,6 @@ void wxHtmlHelpController::CreateHelpWindow() m_helpFrame = CreateHelpFrame(&m_helpData); m_helpFrame->SetController(this); -// m_helpFrame->PushEventHandler(this); if (m_Config) m_helpFrame->UseConfig(m_Config, m_ConfigRoot); @@ -135,14 +137,14 @@ void wxHtmlHelpController::ReadCustomization(wxConfigBase* cfg, const wxString& { /* should not be called by the user; call UseConfig, and the controller * will do the rest */ - if (m_helpFrame) + if (m_helpFrame && cfg) m_helpFrame->ReadCustomization(cfg, path); } void wxHtmlHelpController::WriteCustomization(wxConfigBase* cfg, const wxString& path) { /* typically called by the controllers OnCloseFrame handler */ - if (m_helpFrame) + if (m_helpFrame && cfg) m_helpFrame->WriteCustomization(cfg, path); } @@ -150,7 +152,7 @@ void wxHtmlHelpController::UseConfig(wxConfigBase *config, const wxString& rootp { m_Config = config; m_ConfigRoot = rootpath; - if (m_helpFrame) m_helpFrame -> UseConfig(config, rootpath); + if (m_helpFrame) m_helpFrame->UseConfig(config, rootpath); ReadCustomization(config, rootpath); } @@ -162,16 +164,16 @@ bool wxHtmlHelpController::Initialize(const wxString& file) wxSplitPath(file, & dir, & filename, & ext); if (!dir.IsEmpty()) - dir = dir + wxString(_("/")); + dir = dir + wxString(wxT("/")); // Try to find a suitable file - wxString actualFilename = dir + filename + wxString(_(".zip")); + wxString actualFilename = dir + filename + wxString(wxT(".zip")); if (!wxFileExists(actualFilename)) { - actualFilename = dir + filename + wxString(_(".htb")); + actualFilename = dir + filename + wxString(wxT(".htb")); if (!wxFileExists(actualFilename)) { - actualFilename = dir + filename + wxString(_(".hhp")); + actualFilename = dir + filename + wxString(wxT(".hhp")); if (!wxFileExists(actualFilename)) return FALSE; } @@ -191,6 +193,30 @@ bool wxHtmlHelpController::DisplaySection(int sectionNo) return Display(sectionNo); } +bool wxHtmlHelpController::DisplayTextPopup(const wxString& text, const wxPoint& WXUNUSED(pos)) +{ +#if wxUSE_HELP + static wxTipWindow* s_tipWindow = NULL; + + if (s_tipWindow) + { + // Prevent s_tipWindow being nulled in OnIdle, + // thereby removing the chance for the window to be closed by ShowHelp + s_tipWindow->SetTipWindowPtr(NULL); + s_tipWindow->Close(); + } + s_tipWindow = NULL; + + if ( !text.empty() ) + { + s_tipWindow = new wxTipWindow(wxTheApp->GetTopWindow(), text, 100, & s_tipWindow); + + return TRUE; + } +#endif + return FALSE; +} + void wxHtmlHelpController::SetFrameParameters(const wxString& title, const wxSize& size, const wxPoint& pos, @@ -222,5 +248,5 @@ bool wxHtmlHelpController::Quit() return TRUE; } +#endif // wxUSE_WXHTML_HELP -#endif