git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22736 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| ///////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        renddll.cpp
 | |
| // Purpose:     Example of a renderer implemented in a DLL
 | |
| // Author:      Vadim Zeitlin
 | |
| // Modified by:
 | |
| // Created:     04.08.03
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
 | |
| // Licence:     wxWindows licence
 | |
| ///////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #include "wx/wxprec.h"
 | |
| 
 | |
| #ifdef __BORLANDC__
 | |
|     #pragma hdrstop
 | |
| #endif
 | |
| 
 | |
| #include "wx/renderer.h"
 | |
| 
 | |
| #ifndef WX_PRECOMP
 | |
|     #include "wx/dc.h"
 | |
| #endif
 | |
| 
 | |
| class MyDllRenderer : public wxRendererNative
 | |
| {
 | |
| public:
 | |
|     // draw the header control button (used by wxListCtrl)
 | |
|     virtual void DrawHeaderButton(wxWindow *win,
 | |
|                                   wxDC& dc,
 | |
|                                   const wxRect& rect,
 | |
|                                   int flags = 0)
 | |
|     {
 | |
|         dc.SetBrush(*wxCYAN_BRUSH);
 | |
|         dc.SetTextForeground(*wxRED);
 | |
|         dc.DrawRoundedRectangle(rect, 10);
 | |
|         dc.DrawLabel(_T("MyDllRenderer"), wxNullBitmap, rect, wxALIGN_CENTER);
 | |
|     }
 | |
| 
 | |
|     // draw the expanded/collapsed icon for a tree control item
 | |
|     virtual void DrawTreeItemButton(wxWindow *win,
 | |
|                                     wxDC& dc,
 | |
|                                     const wxRect& rect,
 | |
|                                     int flags = 0)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     // draw the border for sash window: this border must be such that the sash
 | |
|     // drawn by DrawSash() blends into it well
 | |
|     virtual void DrawSplitterBorder(wxWindow *win,
 | |
|                                     wxDC& dc,
 | |
|                                     const wxRect& rect,
 | |
|                                     int flags = 0)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     // draw a (vertical) sash
 | |
|     virtual void DrawSplitterSash(wxWindow *win,
 | |
|                                   wxDC& dc,
 | |
|                                   const wxSize& size,
 | |
|                                   wxCoord position,
 | |
|                                   wxOrientation orient,
 | |
|                                   int flags = 0)
 | |
|     {
 | |
|     }
 | |
| 
 | |
|     // get the splitter parameters: the x field of the returned point is the
 | |
|     // sash width and the y field is the border width
 | |
|     virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win)
 | |
|     {
 | |
|         return wxSplitterRenderParams(0, 0, 0);
 | |
|     }
 | |
| 
 | |
|     virtual wxRendererVersion GetVersion() const
 | |
|     {
 | |
|         return wxRendererVersion(wxRendererVersion::Current_Version,
 | |
|                                  wxRendererVersion::Current_Age);
 | |
|     }
 | |
| 
 | |
| #if 0 // just for debugging
 | |
|     MyDllRenderer()
 | |
|     {
 | |
|         wxMessageBox(_T("Creating MyDllRenderer"), _T("Renderer Sample"));
 | |
|     }
 | |
| 
 | |
|     virtual ~MyDllRenderer()
 | |
|     {
 | |
|         wxMessageBox(_T("Deleting MyDllRenderer"), _T("Renderer Sample"));
 | |
|     }
 | |
| #endif // 0
 | |
| };
 | |
| 
 | |
| extern "C"
 | |
| WXEXPORT wxRendererNative *wxCreateRenderer()
 | |
| {
 | |
|     return new MyDllRenderer;
 | |
| }
 | |
| 
 |