]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/helpbest.h
extract (and expand and clean up and document) the header window implementation used...
[wxWidgets.git] / include / wx / msw / helpbest.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/helpbest.h
3 // Purpose: Tries to load MS HTML Help, falls back to wxHTML upon failure
4 // Author: Mattia Barbon
5 // Modified by:
6 // Created: 02/04/2001
7 // RCS-ID: $Id$
8 // Copyright: (c) Mattia Barbon
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_HELPBEST_H_
13 #define _WX_HELPBEST_H_
14
15 #if wxUSE_HELP && wxUSE_MS_HTML_HELP \
16 && wxUSE_WXHTML_HELP && !defined(__WXUNIVERSAL__)
17
18 #include "wx/helpbase.h"
19 #include "wx/html/helpfrm.h" // for wxHF_DEFAULT_STYLE
20
21 class WXDLLIMPEXP_HTML wxBestHelpController: public wxHelpControllerBase
22 {
23 public:
24 wxBestHelpController(wxWindow* parentWindow = NULL,
25 int style = wxHF_DEFAULT_STYLE)
26 : wxHelpControllerBase(parentWindow),
27 m_helpControllerType(wxUseNone),
28 m_helpController(NULL),
29 m_style(style)
30 {
31 }
32
33 virtual ~wxBestHelpController() { delete m_helpController; }
34
35 // Must call this to set the filename
36 virtual bool Initialize(const wxString& file);
37 virtual bool Initialize(const wxString& file, int WXUNUSED(server) ) { return Initialize( file ); }
38
39 // If file is "", reloads file given in Initialize
40 virtual bool LoadFile(const wxString& file = wxEmptyString)
41 {
42 return m_helpController->LoadFile( GetValidFilename( file ) );
43 }
44
45 virtual bool DisplayContents()
46 {
47 return m_helpController->DisplayContents();
48 }
49
50 virtual bool DisplaySection(int sectionNo)
51 {
52 return m_helpController->DisplaySection( sectionNo );
53 }
54
55 virtual bool DisplaySection(const wxString& section)
56 {
57 return m_helpController->DisplaySection( section );
58 }
59
60 virtual bool DisplayBlock(long blockNo)
61 {
62 return m_helpController->DisplayBlock( blockNo );
63 }
64
65 virtual bool DisplayContextPopup(int contextId)
66 {
67 return m_helpController->DisplayContextPopup( contextId );
68 }
69
70 virtual bool DisplayTextPopup(const wxString& text, const wxPoint& pos)
71 {
72 return m_helpController->DisplayTextPopup( text, pos );
73 }
74
75 virtual bool KeywordSearch(const wxString& k,
76 wxHelpSearchMode mode = wxHELP_SEARCH_ALL)
77 {
78 return m_helpController->KeywordSearch( k, mode );
79 }
80
81 virtual bool Quit()
82 {
83 return m_helpController->Quit();
84 }
85
86 // Allows one to override the default settings for the help frame.
87 virtual void SetFrameParameters(const wxString& title,
88 const wxSize& size,
89 const wxPoint& pos = wxDefaultPosition,
90 bool newFrameEachTime = false)
91 {
92 m_helpController->SetFrameParameters( title, size, pos,
93 newFrameEachTime );
94 }
95
96 // Obtains the latest settings used by the help frame and the help frame.
97 virtual wxFrame *GetFrameParameters(wxSize *size = NULL,
98 wxPoint *pos = NULL,
99 bool *newFrameEachTime = NULL)
100 {
101 return m_helpController->GetFrameParameters( size, pos,
102 newFrameEachTime );
103 }
104
105 /// Set the window that can optionally be used for the help window's parent.
106 virtual void SetParentWindow(wxWindow* win) { m_helpController->SetParentWindow(win); }
107
108 /// Get the window that can optionally be used for the help window's parent.
109 virtual wxWindow* GetParentWindow() const { return m_helpController->GetParentWindow(); }
110
111 protected:
112 // Append/change extension if necessary.
113 wxString GetValidFilename(const wxString& file) const;
114
115 protected:
116 enum HelpControllerType { wxUseNone, wxUseHtmlHelp, wxUseChmHelp };
117
118 HelpControllerType m_helpControllerType;
119 wxHelpControllerBase* m_helpController;
120 int m_style;
121
122 DECLARE_DYNAMIC_CLASS(wxBestHelpController)
123 DECLARE_NO_COPY_CLASS(wxBestHelpController)
124 };
125
126 #endif // wxUSE_HELP && wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP
127
128 #endif
129 // _WX_HELPBEST_H_