]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/helpctrl.cpp
Add ClearSelection for msw ie and gtk webkit, with a stub for osx webkit. Document...
[wxWidgets.git] / src / html / helpctrl.cpp
index 28e07592b7b2fa1bad8fafcfbc2db1be91cd1372..66c903a364520b7f73162340cbdb998d80d4eaa9 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        helpctrl.cpp
+// Name:        src/html/helpctrl.cpp
 // Purpose:     wxHtmlHelpController
 // Notes:       Based on htmlhelp.cpp, implementing a monolithic
 //              HTML Help controller class,  by Vaclav Slavik
@@ -46,16 +46,21 @@ wxHtmlHelpController::wxHtmlHelpController(int style, wxWindow* parentWindow):
     m_helpWindow = NULL;
     m_helpFrame = NULL;
     m_helpDialog = NULL;
+#if wxUSE_CONFIG
     m_Config = NULL;
     m_ConfigRoot = wxEmptyString;
+#endif // wxUSE_CONFIG
     m_titleFormat = _("Help: %s");
     m_FrameStyle = style;
+    m_shouldPreventAppExit = false;
 }
 
 wxHtmlHelpController::~wxHtmlHelpController()
 {
+#if wxUSE_CONFIG
     if (m_Config)
         WriteCustomization(m_Config, m_ConfigRoot);
+#endif // wxUSE_CONFIG
     if (m_helpWindow)
         DestroyHelpWindow();
 }
@@ -85,8 +90,10 @@ void wxHtmlHelpController::DestroyHelpWindow()
 
 void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
 {
+#if wxUSE_CONFIG
     if (m_Config)
         WriteCustomization(m_Config, m_ConfigRoot);
+#endif // wxUSE_CONFIG
 
     evt.Skip();
 
@@ -99,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;
@@ -115,12 +129,7 @@ void wxHtmlHelpController::SetTitleFormat(const wxString& title)
 // Find the top-most parent window
 wxWindow* wxHtmlHelpController::FindTopLevelWindow()
 {
-    wxWindow* parent = m_helpWindow;
-    while (parent && !parent->IsTopLevel())
-    {
-        parent = parent->GetParent();
-    }
-    return parent;
+    return wxGetTopLevelParent(m_helpWindow);
 }
 
 bool wxHtmlHelpController::AddBook(const wxFileName& book_file, bool show_wait_msg)
@@ -156,8 +165,13 @@ wxHtmlHelpFrame* wxHtmlHelpController::CreateHelpFrame(wxHtmlHelpData *data)
 {
     wxHtmlHelpFrame* frame = new wxHtmlHelpFrame(data);
     frame->SetController(this);
-    frame->Create(m_parentWindow, -1, wxEmptyString, m_FrameStyle, m_Config, m_ConfigRoot);
+    frame->Create(m_parentWindow, -1, wxEmptyString, m_FrameStyle
+#if wxUSE_CONFIG
+        , m_Config, m_ConfigRoot
+#endif // wxUSE_CONFIG
+        );
     frame->SetTitleFormat(m_titleFormat);
+    frame->SetShouldPreventAppExit(m_shouldPreventAppExit);
     m_helpFrame = frame;
     return frame;
 }
@@ -185,12 +199,14 @@ wxWindow* wxHtmlHelpController::CreateHelpWindow()
         return m_helpWindow;
     }
 
+#if wxUSE_CONFIG
     if (m_Config == NULL)
     {
         m_Config = wxConfigBase::Get(false);
         if (m_Config != NULL)
-            m_ConfigRoot = _T("wxWindows/wxHtmlHelpController");
+            m_ConfigRoot = wxT("wxWindows/wxHtmlHelpController");
     }
+#endif // wxUSE_CONFIG
 
     if (m_FrameStyle & wxHF_DIALOG)
     {
@@ -212,6 +228,7 @@ wxWindow* wxHtmlHelpController::CreateHelpWindow()
     return m_helpWindow;
 }
 
+#if wxUSE_CONFIG
 void wxHtmlHelpController::ReadCustomization(wxConfigBase* cfg, const wxString& path)
 {
     /* should not be called by the user; call UseConfig, and the controller
@@ -234,6 +251,7 @@ void wxHtmlHelpController::UseConfig(wxConfigBase *config, const wxString& rootp
     if (m_helpWindow) m_helpWindow->UseConfig(config, rootpath);
     ReadCustomization(config, rootpath);
 }
+#endif // wxUSE_CONFIG
 
 //// Backward compatibility with wxHelpController API