renddll.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name: renddll.cpp
  3. // Purpose: Example of a renderer implemented in a DLL
  4. // Author: Vadim Zeitlin
  5. // Modified by:
  6. // Created: 04.08.03
  7. // Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
  8. // Licence: wxWindows licence
  9. ///////////////////////////////////////////////////////////////////////////////
  10. #include "wx/wxprec.h"
  11. #ifdef __BORLANDC__
  12. #pragma hdrstop
  13. #endif
  14. #include "wx/renderer.h"
  15. #ifndef WX_PRECOMP
  16. #include "wx/dc.h"
  17. #endif
  18. // derive from wxDelegateRendererNative and not wxRendererNative itself to be
  19. // able to only reimplement the methods we want to show and not all of them
  20. class MyDllRenderer : public wxDelegateRendererNative
  21. {
  22. public:
  23. // draw the header control button (used by wxListCtrl)
  24. virtual int DrawHeaderButton(wxWindow * WXUNUSED(win),
  25. wxDC& dc,
  26. const wxRect& rect,
  27. int WXUNUSED(flags) = 0,
  28. wxHeaderSortIconType WXUNUSED(sortArrow) = wxHDR_SORT_ICON_NONE,
  29. wxHeaderButtonParams* WXUNUSED(params) = NULL)
  30. {
  31. dc.SetBrush(*wxCYAN_BRUSH);
  32. dc.SetTextForeground(*wxRED);
  33. dc.DrawRoundedRectangle(rect, 10);
  34. dc.DrawLabel("MyDllRenderer", wxNullBitmap, rect, wxALIGN_CENTER);
  35. return dc.GetTextExtent("MyDllRenderer").x;
  36. }
  37. virtual wxRendererVersion GetVersion() const
  38. {
  39. return wxRendererVersion(wxRendererVersion::Current_Version,
  40. wxRendererVersion::Current_Age);
  41. }
  42. #if 0 // just for debugging
  43. MyDllRenderer()
  44. {
  45. wxMessageBox(wxT("Creating MyDllRenderer"), wxT("Renderer Sample"));
  46. }
  47. virtual ~MyDllRenderer()
  48. {
  49. wxMessageBox(wxT("Deleting MyDllRenderer"), wxT("Renderer Sample"));
  50. }
  51. #endif // 0
  52. };
  53. extern "C"
  54. WXEXPORT wxRendererNative *wxCreateRenderer()
  55. {
  56. return new MyDllRenderer;
  57. }