m_templ.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name: wx/html/m_templ.h
  3. // Purpose: Modules template file
  4. // Author: Vaclav Slavik
  5. // Copyright: (c) Vaclav Slavik
  6. // Licence: wxWindows licence
  7. /////////////////////////////////////////////////////////////////////////////
  8. /*
  9. DESCRIPTION:
  10. This is set of macros for easier writing of tag handlers. How to use it?
  11. See mod_fonts.cpp for example...
  12. Attention! This is quite strange C++ bastard. Before using it,
  13. I STRONGLY recommend reading and understanding these macros!!
  14. */
  15. #ifndef _WX_M_TEMPL_H_
  16. #define _WX_M_TEMPL_H_
  17. #include "wx/defs.h"
  18. #if wxUSE_HTML
  19. #include "wx/html/winpars.h"
  20. #define TAG_HANDLER_BEGIN(name,tags) \
  21. class wxHTML_Handler_##name : public wxHtmlWinTagHandler \
  22. { \
  23. public: \
  24. wxString GetSupportedTags() {return wxT(tags);}
  25. #define TAG_HANDLER_VARS \
  26. private:
  27. #define TAG_HANDLER_CONSTR(name) \
  28. public: \
  29. wxHTML_Handler_##name () : wxHtmlWinTagHandler()
  30. #define TAG_HANDLER_PROC(varib) \
  31. public: \
  32. bool HandleTag(const wxHtmlTag& varib)
  33. #define TAG_HANDLER_END(name) \
  34. };
  35. #define TAGS_MODULE_BEGIN(name) \
  36. class wxHTML_Module##name : public wxHtmlTagsModule \
  37. { \
  38. DECLARE_DYNAMIC_CLASS(wxHTML_Module##name ) \
  39. public: \
  40. void FillHandlersTable(wxHtmlWinParser *parser) \
  41. {
  42. #define TAGS_MODULE_ADD(handler) \
  43. parser->AddTagHandler(new wxHTML_Handler_##handler);
  44. #define TAGS_MODULE_END(name) \
  45. } \
  46. }; \
  47. IMPLEMENT_DYNAMIC_CLASS(wxHTML_Module##name , wxHtmlTagsModule)
  48. #endif
  49. #endif