]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/helpctrl.cpp
Add missing WXK constants for the control keys
[wxWidgets.git] / src / html / helpctrl.cpp
index bc026182ee947ce4c2094b9ce303a3929b060e7b..af46650fa42fd4fd9eb014790dd0a49e0d67998e 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
 // Purpose:     wxHtmlHelpController
 // Notes:       Based on htmlhelp.cpp, implementing a monolithic
 //              HTML Help controller class,  by Vaclav Slavik
@@ -42,20 +42,37 @@ IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase)
 
 wxHtmlHelpController::wxHtmlHelpController(int style, wxWindow* parentWindow):
     wxHelpControllerBase(parentWindow)
 
 wxHtmlHelpController::wxHtmlHelpController(int style, wxWindow* parentWindow):
     wxHelpControllerBase(parentWindow)
+{
+    Init(style);
+}
+
+wxHtmlHelpController::wxHtmlHelpController(wxWindow* parentWindow, int style):
+    wxHelpControllerBase(parentWindow)
+{
+    Init(style);
+}
+
+void wxHtmlHelpController::Init(int style)
 {
     m_helpWindow = NULL;
     m_helpFrame = NULL;
     m_helpDialog = NULL;
 {
     m_helpWindow = NULL;
     m_helpFrame = NULL;
     m_helpDialog = NULL;
+#if wxUSE_CONFIG
     m_Config = NULL;
     m_ConfigRoot = wxEmptyString;
     m_Config = NULL;
     m_ConfigRoot = wxEmptyString;
+#endif // wxUSE_CONFIG
     m_titleFormat = _("Help: %s");
     m_FrameStyle = style;
     m_titleFormat = _("Help: %s");
     m_FrameStyle = style;
+    m_shouldPreventAppExit = false;
 }
 
 }
 
+
 wxHtmlHelpController::~wxHtmlHelpController()
 {
 wxHtmlHelpController::~wxHtmlHelpController()
 {
+#if wxUSE_CONFIG
     if (m_Config)
         WriteCustomization(m_Config, m_ConfigRoot);
     if (m_Config)
         WriteCustomization(m_Config, m_ConfigRoot);
+#endif // wxUSE_CONFIG
     if (m_helpWindow)
         DestroyHelpWindow();
 }
     if (m_helpWindow)
         DestroyHelpWindow();
 }
@@ -85,19 +102,29 @@ void wxHtmlHelpController::DestroyHelpWindow()
 
 void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
 {
 
 void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
 {
+#if wxUSE_CONFIG
     if (m_Config)
         WriteCustomization(m_Config, m_ConfigRoot);
     if (m_Config)
         WriteCustomization(m_Config, m_ConfigRoot);
-    
+#endif // wxUSE_CONFIG
+
     evt.Skip();
 
     OnQuit();
 
     evt.Skip();
 
     OnQuit();
 
-    m_helpWindow->SetController(NULL);
+    if ( m_helpWindow )
+        m_helpWindow->SetController(NULL);
     m_helpWindow = NULL;
     m_helpDialog = NULL;
     m_helpFrame = NULL;
 }
 
     m_helpWindow = NULL;
     m_helpDialog = NULL;
     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;
 void wxHtmlHelpController::SetTitleFormat(const wxString& title)
 {
     m_titleFormat = title;
@@ -114,12 +141,7 @@ void wxHtmlHelpController::SetTitleFormat(const wxString& title)
 // Find the top-most parent window
 wxWindow* wxHtmlHelpController::FindTopLevelWindow()
 {
 // 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)
 }
 
 bool wxHtmlHelpController::AddBook(const wxFileName& book_file, bool show_wait_msg)
@@ -155,8 +177,13 @@ wxHtmlHelpFrame* wxHtmlHelpController::CreateHelpFrame(wxHtmlHelpData *data)
 {
     wxHtmlHelpFrame* frame = new wxHtmlHelpFrame(data);
     frame->SetController(this);
 {
     wxHtmlHelpFrame* frame = new wxHtmlHelpFrame(data);
     frame->SetController(this);
-    frame->SetTitleFormat(m_titleFormat);    
-    frame->Create(m_parentWindow, -1, wxEmptyString, m_FrameStyle);
+    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;
 }
     m_helpFrame = frame;
     return frame;
 }
@@ -165,7 +192,7 @@ wxHtmlHelpDialog* wxHtmlHelpController::CreateHelpDialog(wxHtmlHelpData *data)
 {
     wxHtmlHelpDialog* dialog = new wxHtmlHelpDialog(data);
     dialog->SetController(this);
 {
     wxHtmlHelpDialog* dialog = new wxHtmlHelpDialog(data);
     dialog->SetController(this);
-    dialog->SetTitleFormat(m_titleFormat);    
+    dialog->SetTitleFormat(m_titleFormat);
     dialog->Create(m_parentWindow, -1, wxEmptyString, m_FrameStyle);
     m_helpDialog = dialog;
     return dialog;
     dialog->Create(m_parentWindow, -1, wxEmptyString, m_FrameStyle);
     m_helpDialog = dialog;
     return dialog;
@@ -184,12 +211,14 @@ wxWindow* wxHtmlHelpController::CreateHelpWindow()
         return m_helpWindow;
     }
 
         return m_helpWindow;
     }
 
+#if wxUSE_CONFIG
     if (m_Config == NULL)
     {
         m_Config = wxConfigBase::Get(false);
         if (m_Config != NULL)
     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)
     {
 
     if (m_FrameStyle & wxHF_DIALOG)
     {
@@ -211,6 +240,7 @@ wxWindow* wxHtmlHelpController::CreateHelpWindow()
     return m_helpWindow;
 }
 
     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
 void wxHtmlHelpController::ReadCustomization(wxConfigBase* cfg, const wxString& path)
 {
     /* should not be called by the user; call UseConfig, and the controller
@@ -233,13 +263,14 @@ void wxHtmlHelpController::UseConfig(wxConfigBase *config, const wxString& rootp
     if (m_helpWindow) m_helpWindow->UseConfig(config, rootpath);
     ReadCustomization(config, rootpath);
 }
     if (m_helpWindow) m_helpWindow->UseConfig(config, rootpath);
     ReadCustomization(config, rootpath);
 }
+#endif // wxUSE_CONFIG
 
 //// Backward compatibility with wxHelpController API
 
 bool wxHtmlHelpController::Initialize(const wxString& file)
 {
     wxString dir, filename, ext;
 
 //// Backward compatibility with wxHelpController API
 
 bool wxHtmlHelpController::Initialize(const wxString& file)
 {
     wxString dir, filename, ext;
-    wxSplitPath(file, & dir, & filename, & ext);
+    wxFileName::SplitPath(file, & dir, & filename, & ext);
 
     if (!dir.empty())
         dir = dir + wxFILE_SEP_PATH;
 
     if (!dir.empty())
         dir = dir + wxFILE_SEP_PATH;
@@ -310,12 +341,12 @@ void wxHtmlHelpController::SetHelpWindow(wxHtmlHelpWindow* helpWindow)
         helpWindow->SetController(this);
 }
 
         helpWindow->SetController(this);
 }
 
-void wxHtmlHelpController::SetFrameParameters(const wxString& title,
+void wxHtmlHelpController::SetFrameParameters(const wxString& titleFormat,
                                    const wxSize& size,
                                    const wxPoint& pos,
                                    bool WXUNUSED(newFrameEachTime))
 {
                                    const wxSize& size,
                                    const wxPoint& pos,
                                    bool WXUNUSED(newFrameEachTime))
 {
-    SetTitleFormat(title);
+    SetTitleFormat(titleFormat);
     wxHtmlHelpFrame* frame = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpFrame);
     wxHtmlHelpDialog* dialog = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpDialog);
     if (frame)
     wxHtmlHelpFrame* frame = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpFrame);
     wxHtmlHelpDialog* dialog = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpDialog);
     if (frame)