]>
git.saurik.com Git - wxWidgets.git/blob - interface/wx/html/winpars.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: html/winpars.h
3 // Purpose: interface of wxHtmlTagsModule
4 // Author: wxWidgets team
6 // Licence: wxWindows licence
7 /////////////////////////////////////////////////////////////////////////////
10 @class wxHtmlTagsModule
12 This class provides easy way of filling wxHtmlWinParser's table of
13 tag handlers. It is used almost exclusively together with the set of
14 @ref overview_html_handlers "TAGS_MODULE_* macros"
19 @see @ref overview_html_handlers, wxHtmlTagHandler, wxHtmlWinTagHandler
21 class wxHtmlTagsModule
: public wxModule
25 You must override this method. In most common case its body consists
26 only of lines of the following type:
28 parser -> AddTagHandler(new MyHandler);
31 It's recommended to use the @b TAGS_MODULE_* macros.
34 Pointer to the parser that requested tables filling.
36 virtual void FillHandlersTable(wxHtmlWinParser
* parser
);
42 @class wxHtmlWinTagHandler
44 This is basically wxHtmlTagHandler except that it is extended with protected
45 member m_WParser pointing to the wxHtmlWinParser object (value of this member
46 is identical to wxHtmlParser's m_Parser).
51 class wxHtmlWinTagHandler
: public wxHtmlTagHandler
57 wxHtmlWinTagHandler();
60 Assigns @a parser to this handler. Each @b instance of handler
61 is guaranteed to be called only from the one parser.
63 virtual void SetParser(wxHtmlWinParser
* parser
);
67 Value of this attribute is identical to value of m_Parser.
68 The only difference is that m_WParser points to wxHtmlWinParser object
69 while m_Parser points to wxHtmlParser object. (The same object, but overcast.)
71 wxHtmlWinParser
* m_WParser
;
77 @class wxHtmlWinParser
79 This class is derived from wxHtmlParser and its main goal is to parse HTML
80 input so that it can be displayed in wxHtmlWindow.
81 It uses a special wxHtmlWinTagHandler.
83 @note The product of parsing is a wxHtmlCell (resp. wxHtmlContainer) object.
88 @see @ref overview_html_handlers
90 class wxHtmlWinParser
: public wxHtmlParser
96 Don't use the default one, use the constructor with @a wndIface parameter
97 (@a wndIface is a pointer to interface object for the associated wxHtmlWindow
98 or other HTML rendering window such as wxHtmlListBox).
100 wxHtmlWinParser(wxHtmlWindowInterface
* wndIface
= NULL
);
103 Adds module() to the list of wxHtmlWinParser tag handler.
105 static void AddModule(wxHtmlTagsModule
* module);
108 Closes the container, sets actual container to the parent one
109 and returns pointer to it (see @ref overview_html_cells).
111 wxHtmlContainerCell
* CloseContainer();
114 Creates font based on current setting (see SetFontSize(), SetFontBold(),
115 SetFontItalic(), SetFontFixed(), wxHtmlWinParser::SetFontUnderlined)
116 and returns pointer to it.
118 If the font was already created only a pointer is returned.
120 virtual wxFont
* CreateCurrentFont();
123 Returns actual text colour.
125 const wxColour
& GetActualColor() const;
128 Returns default horizontal alignment.
130 int GetAlign() const;
133 Returns (average) char height in standard font.
134 It is used as DC-independent metrics.
136 @note This function doesn't return the @e actual height. If you want to
137 know the height of the current font, call @c GetDC->GetCharHeight().
139 int GetCharHeight() const;
142 Returns average char width in standard font.
143 It is used as DC-independent metrics.
145 @note This function doesn't return the @e actual width. If you want to
146 know the height of the current font, call @c GetDC->GetCharWidth().
148 int GetCharWidth() const;
151 Returns pointer to the currently opened container (see @ref overview_html_cells).
154 m_WParser -> GetContainer() -> InsertCell(new ...);
157 wxHtmlContainerCell
* GetContainer() const;
160 Returns pointer to the DC used during parsing.
165 Returns wxEncodingConverter class used to do conversion between the
166 @ref GetInputEncoding() "input encoding" and the
167 @ref GetOutputEncoding() "output encoding".
169 wxEncodingConverter
* GetEncodingConverter() const;
172 Returns @true if actual font is bold, @false otherwise.
174 int GetFontBold() const;
177 Returns actual font face name.
179 wxString
GetFontFace() const;
182 Returns @true if actual font is fixed face, @false otherwise.
184 int GetFontFixed() const;
187 Returns @true if actual font is italic, @false otherwise.
189 int GetFontItalic() const;
192 Returns actual font size (HTML size varies from -2 to +4)
194 int GetFontSize() const;
197 Returns @true if actual font is underlined, @false otherwise.
199 int GetFontUnderlined() const;
202 Returns input encoding.
204 wxFontEncoding
GetInputEncoding() const;
207 Returns actual hypertext link.
208 (This value has a non-empty @ref wxHtmlLinkInfo::GetHref Href string
209 if the parser is between \<A\> and \</A\> tags, wxEmptyString otherwise.)
211 const wxHtmlLinkInfo
& GetLink() const;
214 Returns the colour of hypertext link text.
216 const wxColour
& GetLinkColor() const;
219 Returns output encoding, i.e. closest match to document's input encoding
220 that is supported by operating system.
222 wxFontEncoding
GetOutputEncoding() const;
225 Returns associated window (wxHtmlWindow). This may be @NULL!
226 (You should always test if it is non-@NULL.
227 For example @c TITLE handler sets window title only if some window is
228 associated, otherwise it does nothing.
230 wxHtmlWindowInterface
* GetWindowInterface();
233 Opens new container and returns pointer to it (see @ref overview_html_cells).
235 wxHtmlContainerCell
* OpenContainer();
238 Sets actual text colour. Note: this DOESN'T change the colour!
239 You must create wxHtmlColourCell yourself.
241 void SetActualColor(const wxColour
& clr
);
244 Sets default horizontal alignment (see wxHtmlContainerCell::SetAlignHor).
245 Alignment of newly opened container is set to this value.
247 void SetAlign(int a
);
250 Allows you to directly set opened container.
251 This is not recommended - you should use OpenContainer() wherever possible.
253 wxHtmlContainerCell
* SetContainer(wxHtmlContainerCell
* c
);
256 Sets the DC. This must be called before wxHtmlParser::Parse!
258 @a pixel_scale can be used when rendering to high-resolution
259 DCs (e.g. printer) to adjust size of pixel metrics. (Many dimensions in
260 HTML are given in pixels -- e.g. image sizes. 300x300 image would be only one
261 inch wide on typical printer. With pixel_scale = 3.0 it would be 3 inches.)
263 virtual void SetDC(wxDC
* dc
, double pixel_scale
= 1.0e+0);
266 Sets bold flag of actualfont. @a x is either @true of @false.
268 void SetFontBold(int x
);
271 Sets current font face to @a face. This affects either fixed size
272 font or proportional, depending on context (whether the parser is
273 inside @c \<TT\> tag or not).
275 void SetFontFace(const wxString
& face
);
278 Sets fixed face flag of actualfont. @a x is either @true of @false.
280 void SetFontFixed(int x
);
283 Sets italic flag of actualfont. @a x is either @true of @false.
285 void SetFontItalic(int x
);
288 Sets actual font size (HTML size varies from 1 to 7).
290 void SetFontSize(int s
);
293 Sets underlined flag of actualfont. @a x is either @true of @false.
295 void SetFontUnderlined(int x
);
298 Sets fonts. See wxHtmlWindow::SetFonts for detailed description.
300 void SetFonts(const wxString
& normal_face
, const wxString
& fixed_face
,
301 const int* sizes
= 0);
304 Sets input encoding. The parser uses this information to build conversion
305 tables from document's encoding to some encoding supported by operating system.
307 void SetInputEncoding(wxFontEncoding enc
);
310 Sets actual hypertext link.
311 Empty link is represented by wxHtmlLinkInfo with @e Href equal
314 void SetLink(const wxHtmlLinkInfo
& link
);
317 Sets colour of hypertext link.
319 void SetLinkColor(const wxColour
& clr
);