]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/helpbase.h
added template wxScopedArray<> too
[wxWidgets.git] / include / wx / helpbase.h
index d6a9b0d989d5462922ae1af678cd79eda7411414..47af76dd34dd8757a9ae30afd91be0387e791334 100644 (file)
 // Modified by:
 // Created:     04/01/98
 // RCS-ID:      $Id$
-// Copyright:   (c) Julian Smart and Markus Holzem
-// Licence:    wxWindows license
+// Copyright:   (c) Julian Smart
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_HELPBASEH__
 #define _WX_HELPBASEH__
 
-#ifdef __GNUG__
-#pragma interface "helpbase.h"
-#endif
-
 #include "wx/defs.h"
+
+#if wxUSE_HELP
+
 #include "wx/object.h"
 #include "wx/string.h"
 #include "wx/gdicmn.h"
-
-#if wxUSE_HELP
+#include "wx/frame.h"
 
 // Flags for SetViewer
 #define wxHELP_NETSCAPE     1
 
-// Defines the API for help controllers
-class WXDLLEXPORT wxHelpControllerBase: public wxObject
+// Search modes:
+enum wxHelpSearchMode
 {
-  DECLARE_CLASS(wxHelpControllerBase)
-
- public:
-  inline wxHelpControllerBase() {}
-  inline ~wxHelpControllerBase() {};
-
-  // Must call this to set the filename and server name.
-  // server is only required when implementing TCP/IP-based
-  // help controllers.
-  virtual bool Initialize(const wxString& WXUNUSED(file), int WXUNUSED(server) ) { return FALSE; };
-  virtual bool Initialize(const wxString& file) = 0;
-
-  // Set viewer: only relevant to some kinds of controller
-  virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
-
-  // If file is "", reloads file given  in Initialize
-  virtual bool LoadFile(const wxString& file = "") = 0;
-  virtual bool DisplayContents(void) = 0;
-  virtual bool DisplaySection(int sectionNo) = 0;
-  virtual bool DisplayBlock(long blockNo) = 0;
-  virtual bool KeywordSearch(const wxString& k) = 0;
-  /// Allows one to override the default settings for the help frame.
-  virtual void SetFrameParameters(const wxString &title,
-                                   const wxSize &size,
-                                   const wxPoint &pos = wxDefaultPosition,
-                                   bool newFrameEachTime = FALSE)
-      {
-         // does nothing by default
-      }
-   /// Obtains the latest settings used by the help frame and the help 
-   /// frame.
-   virtual wxFrame *GetFrameParameters(wxSize *size = NULL,
-                                   wxPoint *pos = NULL,
-                                   bool *newFrameEachTime = NULL)
-      {
-         return (wxFrame*) NULL;// does nothing by default
-      }
-
-  virtual bool Quit(void) = 0;
-  virtual void OnQuit(void) {};
+    wxHELP_SEARCH_INDEX,
+    wxHELP_SEARCH_ALL
 };
 
+// Defines the API for help controllers
+class WXDLLIMPEXP_CORE wxHelpControllerBase: public wxObject
+{
+public:
+    inline wxHelpControllerBase(wxWindow* parentWindow = NULL) { m_parentWindow = parentWindow; }
+    inline ~wxHelpControllerBase() {}
+
+    // Must call this to set the filename and server name.
+    // server is only required when implementing TCP/IP-based
+    // help controllers.
+    virtual bool Initialize(const wxString& WXUNUSED(file), int WXUNUSED(server) ) { return false; }
+    virtual bool Initialize(const wxString& WXUNUSED(file)) { return false; }
 
-/* By default, if wxHTML is compiled in, use the
-   wxHelpControllerHtml. If not, use the external help controller.
-   (of course, we shouldn't do it for wxMSW)
-*/
-#ifndef __WXMSW__
-#if wxUSE_HTML
-#   include "wx/generic/helpwxht.h"
-#   define wxHelpController wxHelpControllerHtml
-#   define sm_classwxHelpController sm_classwxHelpControllerHtml
-#else
-#   include "wx/generic/helpext.h"
-#   define wxHelpController wxExtHelpController
-#   define sm_classwxHelpController sm_classwxExtHelpController
-#endif
-#endif // wxMSW
+    // Set viewer: only relevant to some kinds of controller
+    virtual void SetViewer(const wxString& WXUNUSED(viewer), long WXUNUSED(flags) = 0) {}
+
+    // If file is "", reloads file given  in Initialize
+    virtual bool LoadFile(const wxString& file = wxEmptyString) = 0;
+
+    // Displays the contents
+    virtual bool DisplayContents(void) = 0;
+
+    // Display the given section
+    virtual bool DisplaySection(int sectionNo) = 0;
+
+    // Display the section using a context id
+    virtual bool DisplayContextPopup(int WXUNUSED(contextId)) { return false; }
+
+    // Display the text in a popup, if possible
+    virtual bool DisplayTextPopup(const wxString& WXUNUSED(text), const wxPoint& WXUNUSED(pos)) { return false; }
+
+    // By default, uses KeywordSection to display a topic. Implementations
+    // may override this for more specific behaviour.
+    virtual bool DisplaySection(const wxString& section) { return KeywordSearch(section); }
+    virtual bool DisplayBlock(long blockNo) = 0;
+    virtual bool KeywordSearch(const wxString& k,
+                               wxHelpSearchMode mode = wxHELP_SEARCH_ALL) = 0;
+    /// Allows one to override the default settings for the help frame.
+    virtual void SetFrameParameters(const wxString& WXUNUSED(title),
+        const wxSize& WXUNUSED(size),
+        const wxPoint& WXUNUSED(pos) = wxDefaultPosition,
+        bool WXUNUSED(newFrameEachTime) = false)
+    {
+        // does nothing by default
+    }
+    /// Obtains the latest settings used by the help frame and the help
+    /// frame.
+    virtual wxFrame *GetFrameParameters(wxSize *WXUNUSED(size) = NULL,
+        wxPoint *WXUNUSED(pos) = NULL,
+        bool *WXUNUSED(newFrameEachTime) = NULL)
+    {
+        return NULL; // does nothing by default
+    }
+
+    virtual bool Quit() = 0;
+    virtual void OnQuit() {}
+
+    /// Set the window that can optionally be used for the help window's parent.
+    virtual void SetParentWindow(wxWindow* win) { m_parentWindow = win; }
+
+    /// Get the window that can optionally be used for the help window's parent.
+    virtual wxWindow* GetParentWindow() const { return m_parentWindow; }
+
+protected:
+    wxWindow* m_parentWindow;
+private:
+    DECLARE_CLASS(wxHelpControllerBase)
+};
 
 #endif // wxUSE_HELP
+
 #endif
-    // _WX_HELPBASEH__
+// _WX_HELPBASEH__