]> git.saurik.com Git - wxWidgets.git/blob - utils/wxPython/modules/html/htmlhelp.i
more tweaks for release
[wxWidgets.git] / utils / wxPython / modules / html / htmlhelp.i
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: htmlhelp.i
3 // Purpose: SWIG definitions of html classes
4 //
5 // Author: Robin Dunn
6 //
7 // Created: 25-nov-1998
8 // RCS-ID: $Id$
9 // Copyright: (c) 1998 by Total Control Software
10 // Licence: wxWindows license
11 /////////////////////////////////////////////////////////////////////////////
12
13
14 %module htmlhelp
15
16 %{
17 #include "helpers.h"
18 #include <wx/html/htmlwin.h>
19 #include <wx/html/helpctrl.h>
20 #include <wx/image.h>
21 #include <wx/fs_zip.h>
22 #include <wx/fs_inet.h>
23 #include <wx/wfstream.h>
24 %}
25
26 //---------------------------------------------------------------------------
27
28 %include typemaps.i
29 %include my_typemaps.i
30
31 %extern wx.i
32 %extern windows.i
33 %extern frames.i
34 %extern _defs.i
35 %extern events.i
36 %extern controls.i
37 %extern controls2.i
38
39 %extern utils.i
40
41 %extern html.i
42
43 //---------------------------------------------------------------------------
44
45 enum {
46 wxID_HTML_PANEL,
47 wxID_HTML_BACK,
48 wxID_HTML_FORWARD,
49 wxID_HTML_TREECTRL,
50 wxID_HTML_INDEXPAGE,
51 wxID_HTML_INDEXLIST,
52 wxID_HTML_NOTEBOOK,
53 wxID_HTML_SEARCHPAGE,
54 wxID_HTML_SEARCHTEXT,
55 wxID_HTML_SEARCHLIST,
56 wxID_HTML_SEARCHBUTTON,
57 wxID_HTML_SEARCHCHOICE,
58 wxID_HTML_HELPFRAME
59
60 };
61
62 //---------------------------------------------------------------------------
63
64 class wxHtmlHelpFrameCfg
65 {
66 public:
67 wxHtmlHelpFrameCfg();
68
69 long x, y, w, h;
70 long sashpos;
71 bool navig_on;
72 };
73
74
75 //---------------------------------------------------------------------------
76
77 class wxHtmlBookRecord {
78 public:
79 wxHtmlBookRecord(const wxString& basepath, const wxString& title,
80 const wxString& start);
81
82 wxString GetTitle();
83 wxString GetStart();
84 wxString GetBasePath();
85
86 void SetContentsRange(int start, int end);
87 int GetContentsStart();
88 int GetContentsEnd();
89 };
90
91 //---------------------------------------------------------------------------
92
93 typedef struct
94 {
95 short int m_Level;
96 int m_ID;
97 char* m_Name;
98 char* m_Page;
99 wxHtmlBookRecord *m_Book;
100 } wxHtmlContentsItem;
101
102 //---------------------------------------------------------------------------
103
104 class wxHtmlSearchStatus
105 {
106 public:
107 //wxHtmlSearchStatus(wxHtmlHelpData* base, const wxString& keyword,
108 // const wxString& book = wxEmptyString);
109 bool Search();
110 bool IsActive();
111 int GetCurIndex();
112 int GetMaxIndex();
113 const wxString& GetName();
114 wxHtmlContentsItem* GetContentsItem();
115 };
116
117 //---------------------------------------------------------------------------
118
119 class wxHtmlHelpData {
120 public:
121 wxHtmlHelpData();
122 ~wxHtmlHelpData();
123
124 void SetTempDir(const wxString& path);
125 bool AddBook(const wxString& book);
126 bool AddBookParam(const wxString& title, const wxString& contfile,
127 const wxString& indexfile=wxEmptyString,
128 const wxString& deftopic=wxEmptyString,
129 const wxString& path=wxEmptyString);
130
131 wxString FindPageByName(const wxString& page);
132 wxString FindPageById(int id);
133
134 // **** this one needs fixed...
135 const wxHtmlBookRecArray& GetBookRecArray();
136
137 wxHtmlContentsItem* GetContents();
138 int GetContentsCnt();
139 wxHtmlContentsItem* GetIndex();
140 int GetIndexCnt();
141 };
142
143 //---------------------------------------------------------------------------
144
145 class wxHtmlHelpFrame : public wxFrame {
146 public:
147 wxHtmlHelpFrame(wxWindow* parent, int wxWindowID,
148 const wxString& title = wxEmptyString,
149 int style = wxHF_DEFAULTSTYLE, wxHtmlHelpData* data = NULL);
150
151 wxHtmlHelpData* GetData();
152 void SetTitleFormat(const wxString& format);
153 void Display(const wxString& x);
154 %name(DisplayID) void Display(int id);
155 void DisplayContents();
156 void DisplayIndex();
157 bool KeywordSearch(const wxString& keyword);
158 void RefreshLists(int show_progress = FALSE);
159 void CreateContents(int show_progress = FALSE);
160 void CreateIndex(int show_progress = FALSE);
161 void CreateSearch();
162 void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString);
163 void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
164 void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
165 };
166
167
168 //---------------------------------------------------------------------------
169
170 class wxHtmlHelpController : public wxEvtHandler {
171 public:
172 wxHtmlHelpController();
173 ~wxHtmlHelpController();
174
175 void SetTitleFormat(const wxString& format);
176 void SetTempDir(const wxString& path);
177 bool AddBook(const wxString& book, int show_wait_msg = FALSE);
178 void Display(const wxString& x);
179 %name(DisplayID) void Display(int id);
180 void DisplayContents();
181 void DisplayIndex();
182 bool KeywordSearch(const wxString& keyword);
183 void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString);
184 void ReadCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
185 void WriteCustomization(wxConfigBase *cfg, wxString path = wxEmptyString);
186 wxHtmlHelpFrame* GetFrame();
187 void CreateHelpWindow(int show_progress = FALSE);
188 };
189
190 //---------------------------------------------------------------------------
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206 #ifdef DO_WE_NEED_TO_KEEP_THIS
207 class wxHtmlHelpSystem : public wxHtmlHelpController {
208 public:
209 wxHtmlHelpSystem() {};
210 ~wxHtmlHelpSystem() {};
211
212 bool AddBookParam(const wxString& title, const wxString& contfile,
213 const wxString& indexfile=wxEmptyString, const wxString& deftopic=wxEmptyString,
214 const wxString& path=wxEmptyString, bool show_wait_msg=FALSE);
215 // Alternative to AddBook(wxString& hhpfile)
216 wxToolBar* CreateToolBar(wxFrame* frame);
217 // creates a dockable toolbar for the frame, containing hide/show, back and forward buttons
218 wxTreeCtrl* CreateContentsTree(wxWindow* parent);
219 // creates a treecontrol with imagelist for books, folders etc and id wxID_HTML_TREECTRL
220 wxListBox* CreateIndexList(wxWindow* parent);
221 // creates a listbox with the right id
222 virtual void CreateHelpWindow();
223 // Slightly different version than in wxHtmlHelpController; uses helpers above
224 // Do nothing if the window already exists
225 void SetControls(wxFrame* frame, wxHtmlWindow* htmlwin,
226 wxTreeCtrl* contents=NULL, wxListBox* index=NULL,
227 wxListBox* searchlist=NULL);
228 // alternative for CreateHelpWindow(), sets frame, htmlwindow, contents tree, index
229 // listbox and searchlist listbox. If null, their functionality won't be used
230
231 // Some extra accessor functions
232 wxFrame* GetFrame() { return m_Frame; }
233 wxHtmlWindow* GetHtmlWindow() { return m_HtmlWin; }
234 wxTreeCtrl* GetContentsTree() { return m_ContentsBox; }
235 wxListBox* GetIndexList() { return m_IndexBox; }
236 wxListBox* GetSearchList() { return m_SearchList; }
237 wxImageList* GetContentsImageList() { return m_ContentsImageList; }
238 // public interface for wxHtmlHelpControllers handlers, so wxPython can call them
239 void OnToolbar(wxCommandEvent& event);
240 void OnContentsSel(wxTreeEvent& event) {wxHtmlHelpController::OnContentsSel(event);}
241 void OnIndexSel(wxCommandEvent& event) {wxHtmlHelpController::OnIndexSel(event);}
242 void OnSearchSel(wxCommandEvent& event) {wxHtmlHelpController::OnSearchSel(event);}
243 void OnSearch(wxCommandEvent& event) {wxHtmlHelpController::OnSearch(event);}
244 void OnCloseWindow(wxCloseEvent& event);
245
246 // some more protected functions that should be accessible from wxPython
247 void RefreshLists();
248 void CreateContents() { if (!m_IndexBox) return; wxHtmlHelpController::CreateContents(); }
249 // Adds items to m_Contents tree control
250 void CreateIndex() { if (! m_ContentsBox) return; wxHtmlHelpController::CreateIndex(); }
251 // Adds items to m_IndexList
252 };
253
254 // just for fun, an Altavista-like search engine (the gems that Vaclav has hidden in wxHtml...)
255 // but not for wxMSW because it's not DLL exported
256 //#ifndef __WXMSW__
257 #ifdef THIS_IS_NOT_DEFINED_OKAY
258 class wxSearchEngine
259 {
260 public:
261 wxSearchEngine() : wxObject() {m_Keyword = NULL;}
262 ~wxSearchEngine() {if (m_Keyword) free(m_Keyword);}
263
264 void LookFor(const wxString& keyword);
265 // Sets the keyword we will be searching for
266
267 bool Scan(wxInputStream *stream);
268 // Scans the stream for the keyword.
269 // Returns TRUE if the stream contains keyword, fALSE otherwise
270 %addmethods {
271 bool ScanFile(const wxString& filename) {
272 if (filename.IsEmpty())
273 return false;
274 wxFileInputStream istr(filename);
275 return self->Scan(&istr);
276 }
277 }
278 };
279 #endif
280 #endif
281 //---------------------------------------------------------------------------