added sample showing how to use custom renderers and load them from DLL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
83
samples/render/renddll.cpp
Normal file
83
samples/render/renddll.cpp
Normal file
@@ -0,0 +1,83 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// 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"
|
||||
|
||||
#include "wx/renderer.h"
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
#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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user