1 ///////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/html/helpfrm.h 
   3 // Purpose:     wxHtmlHelpFrame 
   4 // Notes:       Based on htmlhelp.cpp, implementing a monolithic 
   5 //              HTML Help controller class,  by Vaclav Slavik 
   6 // Author:      Harm van der Heijden and Vaclav Slavik 
   8 // Copyright:   (c) Harm van der Heijden and Vaclav Slavik 
   9 // Licence:     wxWindows licence 
  10 ///////////////////////////////////////////////////////////////////////////// 
  12 #ifndef _WX_HELPFRM_H_ 
  13 #define _WX_HELPFRM_H_ 
  19 #include "wx/helpbase.h" 
  20 #include "wx/html/helpdata.h" 
  21 #include "wx/window.h" 
  23 #include "wx/config.h" 
  24 #include "wx/splitter.h" 
  25 #include "wx/notebook.h" 
  26 #include "wx/listbox.h" 
  27 #include "wx/choice.h" 
  28 #include "wx/combobox.h" 
  29 #include "wx/checkbox.h" 
  30 #include "wx/stattext.h" 
  31 #include "wx/html/htmlwin.h" 
  32 #include "wx/html/helpwnd.h" 
  33 #include "wx/html/htmprint.h" 
  35 class WXDLLIMPEXP_FWD_CORE wxButton
; 
  36 class WXDLLIMPEXP_FWD_CORE wxTextCtrl
; 
  37 class WXDLLIMPEXP_FWD_CORE wxTreeEvent
; 
  38 class WXDLLIMPEXP_FWD_CORE wxTreeCtrl
; 
  41 // style flags for the Help Frame 
  42 #define wxHF_TOOLBAR                0x0001 
  43 #define wxHF_CONTENTS               0x0002 
  44 #define wxHF_INDEX                  0x0004 
  45 #define wxHF_SEARCH                 0x0008 
  46 #define wxHF_BOOKMARKS              0x0010 
  47 #define wxHF_OPEN_FILES             0x0020 
  48 #define wxHF_PRINT                  0x0040 
  49 #define wxHF_FLAT_TOOLBAR           0x0080 
  50 #define wxHF_MERGE_BOOKS            0x0100 
  51 #define wxHF_ICONS_BOOK             0x0200 
  52 #define wxHF_ICONS_BOOK_CHAPTER     0x0400 
  53 #define wxHF_ICONS_FOLDER           0x0000 // this is 0 since it is default 
  54 #define wxHF_DEFAULT_STYLE          (wxHF_TOOLBAR | wxHF_CONTENTS | \ 
  55                                      wxHF_INDEX | wxHF_SEARCH | \ 
  56                                      wxHF_BOOKMARKS | wxHF_PRINT) 
  58 #define wxHF_OPENFILES               wxHF_OPEN_FILES 
  59 #define wxHF_FLATTOOLBAR             wxHF_FLAT_TOOLBAR 
  60 #define wxHF_DEFAULTSTYLE            wxHF_DEFAULT_STYLE 
  62 struct wxHtmlHelpMergedIndexItem
; 
  63 class wxHtmlHelpMergedIndex
; 
  65 class WXDLLIMPEXP_FWD_CORE wxHelpControllerBase
; 
  66 class WXDLLIMPEXP_FWD_HTML wxHtmlHelpController
; 
  67 class WXDLLIMPEXP_FWD_HTML wxHtmlHelpWindow
; 
  69 class WXDLLIMPEXP_HTML wxHtmlHelpFrame 
: public wxFrame
 
  71     DECLARE_DYNAMIC_CLASS(wxHtmlHelpFrame
) 
  74     wxHtmlHelpFrame(wxHtmlHelpData
* data 
= NULL
) { Init(data
); } 
  75     wxHtmlHelpFrame(wxWindow
* parent
, wxWindowID wxWindowID
, 
  76                     const wxString
& title 
= wxEmptyString
, 
  77                     int style 
= wxHF_DEFAULT_STYLE
, wxHtmlHelpData
* data 
= NULL
 
  79                     , wxConfigBase 
*config
=NULL
, const wxString
& rootpath 
= wxEmptyString
 
  80 #endif // wxUSE_CONFIG 
  82     bool Create(wxWindow
* parent
, wxWindowID id
, const wxString
& title 
= wxEmptyString
, 
  83                 int style 
= wxHF_DEFAULT_STYLE
 
  85                 , wxConfigBase 
*config
=NULL
, const wxString
& rootpath 
= wxEmptyString
 
  86 #endif // wxUSE_CONFIG 
  88     virtual ~wxHtmlHelpFrame(); 
  90     /// Returns the data associated with the window. 
  91     wxHtmlHelpData
* GetData() { return m_Data
; } 
  93     /// Returns the help controller associated with the window. 
  94     wxHtmlHelpController
* GetController() const { return m_helpController
; } 
  96     /// Sets the help controller associated with the window. 
  97     void SetController(wxHtmlHelpController
* controller
); 
  99     /// Returns the help window. 
 100     wxHtmlHelpWindow
* GetHelpWindow() const { return m_HtmlHelpWin
; } 
 102     // Sets format of title of the frame. Must contain exactly one "%s" 
 103     // (for title of displayed HTML page) 
 104     void SetTitleFormat(const wxString
& format
); 
 108     void UseConfig(wxConfigBase 
*config
, const wxString
& rootpath 
= wxEmptyString
); 
 109 #endif // wxUSE_CONFIG 
 111     // Make the help controller's frame 'modal' if 
 113     void AddGrabIfNeeded(); 
 115     // Override to add custom buttons to the toolbar 
 116     virtual void AddToolbarButtons(wxToolBar
* WXUNUSED(toolBar
), int WXUNUSED(style
)) {} 
 118     void SetShouldPreventAppExit(bool enable
); 
 120     // we don't want to prevent the app from closing just because a help window 
 122     virtual bool ShouldPreventAppExit() const { return m_shouldPreventAppExit
; } 
 125     void Init(wxHtmlHelpData
* data 
= NULL
); 
 127     void OnCloseWindow(wxCloseEvent
& event
); 
 128     void OnActivate(wxActivateEvent
& event
); 
 131     void OnClose(wxCommandEvent
& event
); 
 132     void OnAbout(wxCommandEvent
& event
); 
 143     wxHtmlHelpData
* m_Data
; 
 144     bool m_DataCreated
;  // m_Data created by frame, or supplied? 
 145     wxString m_TitleFormat
;  // title of the help frame 
 146     wxHtmlHelpWindow 
*m_HtmlHelpWin
; 
 147     wxHtmlHelpController
* m_helpController
; 
 148     bool m_shouldPreventAppExit
; 
 152     DECLARE_EVENT_TABLE() 
 153     wxDECLARE_NO_COPY_CLASS(wxHtmlHelpFrame
); 
 156 #endif // wxUSE_WXHTML_HELP