]> git.saurik.com Git - wxWidgets.git/blob - include/wx/html/m_templ.h
7dc0e162276408f895d967a95201f6db893ac8c7
[wxWidgets.git] / include / wx / html / m_templ.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: m_templ.h
3 // Purpose: Modules template file
4 // Author: Vaclav Slavik
5 // RCS-ID: $Id$
6 // Copyright: (c) Vaclav Slavik
7 // Licence: wxWindows licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 /*
11
12 DESCRIPTION:
13 This is set of macros for easier writing of tag handlers. How to use it?
14 See mod_fonts.cpp for example...
15
16 Attention! This is quite strange C++ bastard. Before using it,
17 I STRONGLY recommend reading and understanding these macros!!
18
19 */
20
21
22 #ifndef _WX_M_TEMPL_H_
23 #define _WX_M_TEMPL_H_
24
25 #include "wx/defs.h"
26
27 #if wxUSE_HTML
28
29 #include "wx/html/winpars.h"
30
31 #define TAG_HANDLER_BEGIN(name,tags) \
32 class HTML_Handler_##name : public wxHtmlWinTagHandler \
33 { \
34 public: \
35 wxString GetSupportedTags() {return wxT(tags);}
36
37
38
39 #define TAG_HANDLER_VARS \
40 private:
41
42 #define TAG_HANDLER_CONSTR(name) \
43 public: \
44 HTML_Handler_##name () : wxHtmlWinTagHandler()
45
46
47 #define TAG_HANDLER_PROC(varib) \
48 public: \
49 bool HandleTag(const wxHtmlTag& varib)
50
51
52
53 #define TAG_HANDLER_END(name) \
54 };
55
56
57
58
59 #define TAGS_MODULE_BEGIN(name) \
60 class HTML_Module##name : public wxHtmlTagsModule \
61 { \
62 DECLARE_DYNAMIC_CLASS(HTML_Module##name ) \
63 public: \
64 void FillHandlersTable(wxHtmlWinParser *parser) \
65 {
66
67
68
69
70 #define TAGS_MODULE_ADD(handler) \
71 parser->AddTagHandler(new HTML_Handler_##handler);
72
73
74
75
76 #define TAGS_MODULE_END(name) \
77 } \
78 }; \
79 IMPLEMENT_DYNAMIC_CLASS(HTML_Module##name , wxHtmlTagsModule)
80
81
82
83 #endif
84 #endif