]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/html/helpfrm.h
added wxArrayString::RemoveAt()
[wxWidgets.git] / include / wx / html / helpfrm.h
index 79fc39960db3f4ef80736964c572f2f2838e1fa5..9bcf7574a4cf13df3f02e5855bcbb053a8ab3040 100644 (file)
 #include "wx/notebook.h"
 #include "wx/listbox.h"
 #include "wx/choice.h"
+#include "wx/combobox.h"
+#include "wx/checkbox.h"
+#include "wx/stattext.h"
 #include "wx/html/htmlwin.h"
+#include "wx/html/htmprint.h"
 
 
 // style flags for the Help Frame
 #define wxHF_CONTENTS     0x0002
 #define wxHF_INDEX        0x0004
 #define wxHF_SEARCH       0x0008
-#define wxHF_DEFAULTSTYLE (wxHF_TOOLBAR | wxHF_CONTENTS | wxHF_INDEX | wxHF_SEARCH)
+#define wxHF_BOOKMARKS    0x0010
+#define wxHF_OPENFILES    0x0020
+#define wxHF_PRINT        0x0040
+#define wxHF_FLATTOOLBAR  0x0080
+#define wxHF_DEFAULTSTYLE (wxHF_TOOLBAR | wxHF_CONTENTS | wxHF_INDEX | \
+                           wxHF_SEARCH | wxHF_BOOKMARKS | wxHF_PRINT)
 
 
 // Command IDs :
@@ -45,15 +54,28 @@ enum
     wxID_HTML_PANEL = wxID_HIGHEST + 1,
     wxID_HTML_BACK,
     wxID_HTML_FORWARD,
+    wxID_HTML_UPNODE,
+    wxID_HTML_UP,
+    wxID_HTML_DOWN,
+    wxID_HTML_PRINT,
+    wxID_HTML_OPENFILE,
+    wxID_HTML_OPTIONS,
+    wxID_HTML_BOOKMARKSLIST,
+    wxID_HTML_BOOKMARKSADD,
+    wxID_HTML_BOOKMARKSREMOVE,
     wxID_HTML_TREECTRL,
     wxID_HTML_INDEXPAGE,
     wxID_HTML_INDEXLIST,
+    wxID_HTML_INDEXTEXT,
+    wxID_HTML_INDEXBUTTON,
+    wxID_HTML_INDEXBUTTONALL,
     wxID_HTML_NOTEBOOK,
     wxID_HTML_SEARCHPAGE,
     wxID_HTML_SEARCHTEXT,
     wxID_HTML_SEARCHLIST,
     wxID_HTML_SEARCHBUTTON,
     wxID_HTML_SEARCHCHOICE,
+    wxID_HTML_COUNTINFO,
     wxID_HTML_HELPFRAME // the id of wxHtmlHelpController's helpframe
 }
 ;
@@ -68,6 +90,7 @@ typedef struct
 wxHtmlHelpFrameCfg;
 
 
+class WXDLLEXPORT wxHelpControllerBase;
 
 class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
 {
@@ -75,7 +98,7 @@ class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
 
     public:
         wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); }
-        wxHtmlHelpFrame(wxWindow* parent, int wxWindowID,
+        wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID,
                         const wxString& title = wxEmptyString,
                         int style = wxHF_DEFAULTSTYLE, wxHtmlHelpData* data = NULL);
         bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString,
@@ -83,13 +106,10 @@ class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
         ~wxHtmlHelpFrame();
 
         wxHtmlHelpData* GetData() { return m_Data; }
+        wxHelpControllerBase* GetController() const { return m_helpController; }
+        void SetController(wxHelpControllerBase* controller) { m_helpController = controller; }
 
-        void SetTitleFormat(const wxString& format)
-        {
-            if (m_HtmlWin)
-                m_HtmlWin->SetRelatedFrame(this, format);
-            m_TitleFormat = format;
-        }
+        void SetTitleFormat(const wxString& format);
         // Sets format of title of the frame. Must contain exactly one "%s"
         // (for title of displayed HTML page)
 
@@ -120,31 +140,53 @@ class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
         // * 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
-        void RefreshLists(bool show_progress = FALSE);
-        // Refreshes Contents and Index tabs
-        void CreateContents(bool show_progress = FALSE);
-        // Adds items to m_Contents tree control
-        void CreateIndex(bool show_progress = FALSE);
-        // Adds items to m_IndexList
-        void CreateSearch();
-        // Add books to search choice panel
+
         void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString)
-        {
-            m_Config = config;
-            m_ConfigRoot = rootpath;
-            ReadCustomization(config, rootpath);
-        }
+            {
+                m_Config = config;
+                m_ConfigRoot = rootpath;
+                ReadCustomization(config, rootpath);
+            }
+
         void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
         // saves custom settings into cfg config. it will use the path 'path'
         // if given, otherwise it will save info into currently selected path.
         // saved values : things set by SetFonts, SetBorders.
         void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
         // ...
+        
+        void NotifyPageChanged();
+        // call this to let wxHtmlHelpFrame know page changed
+
+    protected:
+        void Init(wxHtmlHelpData* data = NULL);
+
+        void RefreshLists();
+        // Refreshes Contents and Index tabs
+
+        void CreateContents();
+        // Adds items to m_Contents tree control
+
+        void CreateIndex();
+        // Adds items to m_IndexList
+
+        void CreateSearch();
+        // Add books to search choice panel
+
+        virtual void AddToolbarButtons(wxToolBar *toolBar, int style);
+        // Add custom buttons to toolbar
+
+        virtual void OptionsDialog();
+        // Displays options dialog (fonts etc.)
+
         void OnToolbar(wxCommandEvent& event);
         void OnContentsSel(wxTreeEvent& event);
         void OnIndexSel(wxCommandEvent& event);
+        void OnIndexFind(wxCommandEvent& event);
+        void OnIndexAll(wxCommandEvent& event);
         void OnSearchSel(wxCommandEvent& event);
         void OnSearch(wxCommandEvent& event);
+        void OnBookmarksSel(wxCommandEvent& event);
         void OnCloseWindow(wxCloseEvent& event);
 
         // Images:
@@ -164,12 +206,20 @@ class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
         wxSplitterWindow *m_Splitter;
         wxNotebook *m_NavigPan;
         wxTreeCtrl *m_ContentsBox;
-        wxImageList *m_ContentsImageList;
-        wxListBox *m_IndexBox;
+        wxTextCtrl *m_IndexText;
+        wxButton *m_IndexButton;
+        wxButton *m_IndexButtonAll;
+        wxListBox *m_IndexList;
         wxTextCtrl *m_SearchText;
         wxButton *m_SearchButton;
         wxListBox *m_SearchList;
         wxChoice *m_SearchChoice;
+        wxStaticText *m_IndexCountInfo;
+        wxCheckBox *m_SearchCaseSensitive;
+        wxCheckBox *m_SearchWholeWords;
+
+        wxComboBox *m_Bookmarks;
+        wxArrayString m_BookmarksNames, m_BookmarksPages;
 
         wxHtmlHelpFrameCfg m_Cfg;
 
@@ -180,13 +230,23 @@ class WXDLLEXPORT wxHtmlHelpFrame : public wxFrame
         int m_ContentsPage;
         int m_IndexPage;
         int m_SearchPage;
-
-    protected:
-        void Init(wxHtmlHelpData* data = NULL);
+        
+        // lists of available fonts (used in options dialog)
+        wxArrayString *m_NormalFonts, *m_FixedFonts;
+        int m_FontSize; // 0,1,2 = small,medium,big
+        wxString m_NormalFace, m_FixedFace;
+        
+        bool m_UpdateContents;
+
+#if wxUSE_PRINTING_ARCHITECTURE
+        wxHtmlEasyPrinting *m_Printer;
+#endif
+        wxHashTable *m_PagesHash;
+        wxHelpControllerBase* m_helpController;
 
         DECLARE_EVENT_TABLE()
 };
 
-#endif
+#endif // wxUSE_HTML
 
 #endif