1///////////////////////////////////////////////////////////////////////////// 2// Name: m_templ.h 3// Purpose: Modules template file 4// Author: Vaclav Slavik 5// RCS-ID: $Id: m_templ.h 30098 2004-10-26 10:32:38Z VS $ 6// Copyright: (c) Vaclav Slavik 7// Licence: wxWindows licence 8///////////////////////////////////////////////////////////////////////////// 9 10/* 11 12DESCRIPTION: 13This is set of macros for easier writing of tag handlers. How to use it? 14See mod_fonts.cpp for example... 15 16Attention! This is quite strange C++ bastard. Before using it, 17I 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 wxHTML_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 wxHTML_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 wxHTML_Module##name : public wxHtmlTagsModule \ 61 { \ 62 DECLARE_DYNAMIC_CLASS(wxHTML_Module##name ) \ 63 public: \ 64 void FillHandlersTable(wxHtmlWinParser *parser) \ 65 { 66 67 68 69 70#define TAGS_MODULE_ADD(handler) \ 71 parser->AddTagHandler(new wxHTML_Handler_##handler); 72 73 74 75 76#define TAGS_MODULE_END(name) \ 77 } \ 78 }; \ 79 IMPLEMENT_DYNAMIC_CLASS(wxHTML_Module##name , wxHtmlTagsModule) 80 81 82 83#endif 84#endif 85