]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/helpchm.h
no real changes, just refactor/simplify the code to remove duplication and unnecessar...
[wxWidgets.git] / include / wx / msw / helpchm.h
index 4a172009be9a464ed4aaeb1aa3e0933a7b882772..8702c276a26926c6121767cb8d185bd06cf43ed3 100644 (file)
@@ -6,33 +6,25 @@
 // Created:     16/04/2000
 // RCS-ID:      $Id$
 // Copyright:   (c) Julian Smart
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_HELPCHM_H_
-#define _WX_HELPCHM_H_
+#ifndef _WX_MSW_HELPCHM_H_
+#define _WX_MSW_HELPCHM_H_
 
-#ifdef __GNUG__
-#pragma interface "helpchm.h"
-#endif
-
-#include "wx/wx.h"
-
-#if wxUSE_HELP
+#if wxUSE_MS_HTML_HELP
 
 #include "wx/helpbase.h"
 
-class WXDLLEXPORT wxCHMHelpController: public wxHelpControllerBase
+class WXDLLEXPORT wxCHMHelpController : public wxHelpControllerBase
 {
-    DECLARE_CLASS(wxCHMHelpController)
-        
 public:
-    wxCHMHelpController() {}
-    ~wxCHMHelpController() {}
-    
+    wxCHMHelpController(wxWindow* parentWindow = NULL): wxHelpControllerBase(parentWindow) { }
+
     // Must call this to set the filename
     virtual bool Initialize(const wxString& file);
-    
+    virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize( file ); }
+
     // If file is "", reloads file given in Initialize
     virtual bool LoadFile(const wxString& file = wxEmptyString);
     virtual bool DisplayContents();
@@ -41,19 +33,58 @@ public:
     virtual bool DisplayBlock(long blockNo);
     virtual bool DisplayContextPopup(int contextId);
     virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos);
-    virtual bool KeywordSearch(const wxString& k);
+    virtual bool KeywordSearch(const wxString& k,
+                               wxHelpSearchMode mode = wxHELP_SEARCH_ALL);
     virtual bool Quit();
 
-    inline wxString GetHelpFile() const { return m_helpFile; }
-    
-protected:
-    // Append extension if necessary.
-    wxString GetValidFilename(const wxString& file) const;
-    
+    wxString GetHelpFile() const { return m_helpFile; }
+
+    // helper of DisplayTextPopup(), also used in wxSimpleHelpProvider::ShowHelp
+    static bool ShowContextHelpPopup(const wxString& text,
+                                     const wxPoint& pos,
+                                     wxWindow *window);
+
 protected:
+    // get the name of the CHM file we use from our m_helpFile
+    wxString GetValidFilename() const;
+
+    // Call HtmlHelp() with the provided parameters (both overloads do the same
+    // thing but allow to avoid casts in the calling code) and return false
+    // (but don't crash) if HTML help is unavailable
+    static bool CallHtmlHelp(wxWindow *win, const wxChar *str,
+                             unsigned cmd, WXWPARAM param);
+    static bool CallHtmlHelp(wxWindow *win, const wxChar *str,
+                             unsigned cmd, const void *param = NULL)
+    {
+        return CallHtmlHelp(win, str, cmd, wx_reinterpret_cast(WPARAM, param));
+    }
+
+    // even simpler wrappers using GetParentWindow() and GetValidFilename() as
+    // the first 2 HtmlHelp() parameters
+    bool CallHtmlHelp(unsigned cmd, WXWPARAM param)
+    {
+        return CallHtmlHelp(GetParentWindow(), GetValidFilename().wx_str(),
+                            cmd, param);
+    }
+
+    bool CallHtmlHelp(unsigned cmd, const void *param = NULL)
+    {
+        return CallHtmlHelp(cmd, wx_reinterpret_cast(WXWPARAM, param));
+    }
+
+    // wrapper around CallHtmlHelp(HH_DISPLAY_TEXT_POPUP): only one of text and
+    // contextId parameters can be non-NULL/non-zero
+    static bool DoDisplayTextPopup(const wxChar *text,
+                                   const wxPoint& pos,
+                                   int contextId,
+                                   wxWindow *window);
+
+
     wxString m_helpFile;
+
+    DECLARE_CLASS(wxCHMHelpController)
 };
 
-#endif // wxUSE_HELP
-#endif
-// _WX_HELPCHM_H_
+#endif // wxUSE_MS_HTML_HELP
+
+#endif // _WX_MSW_HELPCHM_H_