oops, removed duplicate SetIcons[s]() added in last commit
[wxWidgets.git] / include / wx / html / helpfrm.h
index d8c4e83b1330e2d865b98d19210b0ad1b1b882a9..255739841bd3a660296dc983b31637045f5033c0 100644 (file)
 #ifndef _WX_HELPFRM_H_
 #define _WX_HELPFRM_H_
 
 #ifndef _WX_HELPFRM_H_
 #define _WX_HELPFRM_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface "helpfrm.h"
 #endif
 
 #include "wx/defs.h"
 
 #pragma interface "helpfrm.h"
 #endif
 
 #include "wx/defs.h"
 
-#if wxUSE_HTML
+#if wxUSE_WXHTML_HELP
 
 
+#include "wx/helpbase.h"
 #include "wx/html/helpdata.h"
 #include "wx/window.h"
 #include "wx/frame.h"
 #include "wx/html/helpdata.h"
 #include "wx/window.h"
 #include "wx/frame.h"
 #include "wx/html/htmlwin.h"
 #include "wx/html/htmprint.h"
 
 #include "wx/html/htmlwin.h"
 #include "wx/html/htmprint.h"
 
+class WXDLLIMPEXP_CORE wxButton;
+class WXDLLIMPEXP_CORE wxTextCtrl;
+class WXDLLIMPEXP_CORE wxTreeEvent;
+class WXDLLIMPEXP_CORE wxTreeCtrl;
+
 
 // style flags for the Help Frame
 #define wxHF_TOOLBAR                0x0001
 
 // style flags for the Help Frame
 #define wxHF_TOOLBAR                0x0001
@@ -64,10 +70,12 @@ struct wxHtmlHelpFrameCfg
     bool navig_on;
 };
 
     bool navig_on;
 };
 
+struct wxHtmlHelpMergedIndexItem;
+class wxHtmlHelpMergedIndex;
 
 
-class WXDLLEXPORT wxHelpControllerBase;
+class WXDLLIMPEXP_CORE wxHelpControllerBase;
 
 
-class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
+class WXDLLIMPEXP_HTML wxHtmlHelpFrame : public wxFrame
 {
     DECLARE_DYNAMIC_CLASS(wxHtmlHelpFrame)
 
 {
     DECLARE_DYNAMIC_CLASS(wxHtmlHelpFrame)
 
@@ -107,15 +115,16 @@ public:
     // Displays help window and focuses index.
     bool DisplayIndex();
 
     // Displays help window and focuses index.
     bool DisplayIndex();
 
-    // Searches for keyword. Returns TRUE and display page if found, return
-    // FALSE otherwise
+    // Searches for keyword. Returns true and display page if found, return
+    // false otherwise
     // Syntax of keyword is Altavista-like:
     // * words are separated by spaces
     //   (but "\"hello world\"" is only one world "hello world")
     // * word may be pretended by + or -
     //   (+ : page must contain the word ; - : page can't contain the word)
     // * if there is no + or - before the word, + is default
     // Syntax of keyword is Altavista-like:
     // * words are separated by spaces
     //   (but "\"hello world\"" is only one world "hello world")
     // * word may be pretended by + or -
     //   (+ : page must contain the word ; - : page can't contain the word)
     // * if there is no + or - before the word, + is default
-    bool KeywordSearch(const wxString& keyword);
+    bool KeywordSearch(const wxString& keyword,
+                       wxHelpSearchMode mode = wxHELP_SEARCH_ALL);
 
     void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString)
         {
 
     void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString)
         {
@@ -133,12 +142,12 @@ public:
     // call this to let wxHtmlHelpFrame know page changed
     void NotifyPageChanged();
 
     // call this to let wxHtmlHelpFrame know page changed
     void NotifyPageChanged();
 
-protected:
-    void Init(wxHtmlHelpData* data = NULL);
-
     // Refreshes Contents and Index tabs
     void RefreshLists();
 
     // Refreshes Contents and Index tabs
     void RefreshLists();
 
+protected:
+    void Init(wxHtmlHelpData* data = NULL);
+
     // Adds items to m_Contents tree control
     void CreateContents();
 
     // Adds items to m_Contents tree control
     void CreateContents();
 
@@ -148,6 +157,10 @@ protected:
     // Add books to search choice panel
     void CreateSearch();
 
     // Add books to search choice panel
     void CreateSearch();
 
+    // Updates "merged index" structure that combines indexes of all books
+    // into better searchable structure
+    void UpdateMergedIndex();
+
     // Add custom buttons to toolbar
     virtual void AddToolbarButtons(wxToolBar *toolBar, int style);
 
     // Add custom buttons to toolbar
     virtual void AddToolbarButtons(wxToolBar *toolBar, int style);
 
@@ -163,13 +176,18 @@ protected:
     void OnSearch(wxCommandEvent& event);
     void OnBookmarksSel(wxCommandEvent& event);
     void OnCloseWindow(wxCloseEvent& event);
     void OnSearch(wxCommandEvent& event);
     void OnBookmarksSel(wxCommandEvent& event);
     void OnCloseWindow(wxCloseEvent& event);
+    void OnActivate(wxActivateEvent& event);
+
+#ifdef __WXMAC__
+    void OnClose(wxCommandEvent& event);
+    void OnAbout(wxCommandEvent& event);
+#endif
 
     // Images:
     enum {
         IMG_Book = 0,
         IMG_Folder,
 
     // Images:
     enum {
         IMG_Book = 0,
         IMG_Folder,
-        IMG_Page,
-        IMG_RootFolder
+        IMG_Page
     };
 
 protected:
     };
 
 protected:
@@ -179,7 +197,8 @@ protected:
     // below are various pointers to GUI components
     wxHtmlWindow *m_HtmlWin;
     wxSplitterWindow *m_Splitter;
     // below are various pointers to GUI components
     wxHtmlWindow *m_HtmlWin;
     wxSplitterWindow *m_Splitter;
-    wxNotebook *m_NavigPan;
+    wxPanel *m_NavigPan;
+    wxNotebook *m_NavigNotebook;
     wxTreeCtrl *m_ContentsBox;
     wxTextCtrl *m_IndexText;
     wxButton *m_IndexButton;
     wxTreeCtrl *m_ContentsBox;
     wxTextCtrl *m_IndexText;
     wxButton *m_IndexButton;
@@ -218,12 +237,17 @@ protected:
 #endif
     wxHashTable *m_PagesHash;
     wxHelpControllerBase* m_helpController;
 #endif
     wxHashTable *m_PagesHash;
     wxHelpControllerBase* m_helpController;
-    
+
     int m_hfStyle;
 
     int m_hfStyle;
 
+private:
+    void DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it);
+    wxHtmlHelpMergedIndex *m_mergedIndex;
+
     DECLARE_EVENT_TABLE()
     DECLARE_EVENT_TABLE()
+    DECLARE_NO_COPY_CLASS(wxHtmlHelpFrame)
 };
 
 };
 
-#endif // wxUSE_HTML
+#endif // wxUSE_WXHTML_HELP
 
 #endif
 
 #endif