public:
MyRenderer() : wxDelegateRendererNative(wxRendererNative::GetDefault()) { }
- virtual void DrawHeaderButton(wxWindow * WXUNUSED(win),
+ virtual int DrawHeaderButton(wxWindow *WXUNUSED(win),
wxDC& dc,
const wxRect& rect,
- int WXUNUSED(flags) = 0)
+ int WXUNUSED(flags) = 0,
+ wxHeaderSortIconType WXUNUSED(sortArrow) = wxHDR_SORT_ICON_NONE,
+ wxHeaderButtonParams* WXUNUSED(params) = NULL)
{
dc.SetBrush(*wxBLUE_BRUSH);
dc.SetTextForeground(*wxWHITE);
dc.DrawRoundedRectangle(rect, 5);
dc.DrawLabel(_T("MyRenderer"), wxNullBitmap, rect, wxALIGN_CENTER);
+ return rect.width;
}
};
virtual ~MyFrame();
// event handlers (these functions should _not_ be virtual)
+#if wxUSE_DYNLIB_CLASS
void OnLoad(wxCommandEvent& event);
void OnUnload(wxCommandEvent& event);
+#endif // wxUSE_DYNLIB_CLASS
void OnQuit(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
dc.DrawText(_T("Below is the standard header button drawn"), 10, 10);
dc.DrawText(_T("using the current renderer:"), 10, 40);
- wxRendererNative::Get().DrawHeaderButton(this, dc,
- wxRect(20, 70, 100, 60));
+ wxRendererNative& renderer = wxRendererNative::Get();
+ const wxCoord height = renderer.GetHeaderButtonHeight(this);
+
+ renderer.DrawHeaderButton(this, dc, wxRect(20, 70, 100, height));
}
DECLARE_EVENT_TABLE()
enum
{
// our menu items
+#if wxUSE_DYNLIB_CLASS
Render_Load = 100,
Render_Unload,
+#endif // wxUSE_DYNLIB_CLASS
// standard menu items
Render_Quit = wxID_EXIT,
// handlers) which process them. It can be also done at run-time, but for the
// simple menu events like this the static method is much simpler.
BEGIN_EVENT_TABLE(MyFrame, wxFrame)
+#if wxUSE_DYNLIB_CLASS
EVT_MENU(Render_Load, MyFrame::OnLoad)
EVT_MENU(Render_Unload,MyFrame::OnUnload)
+#endif // wxUSE_DYNLIB_CLASS
EVT_MENU(Render_Quit, MyFrame::OnQuit)
EVT_MENU(Render_About, MyFrame::OnAbout)
// 'Main program' equivalent: the program execution "starts" here
bool MyApp::OnInit()
{
+ if ( !wxApp::OnInit() )
+ return false;
+
// create the main application window
new MyFrame;
// frame constructor
MyFrame::MyFrame()
: wxFrame(NULL,
- -1,
+ wxID_ANY,
_T("Render wxWidgets Sample"),
wxPoint(50, 50),
wxSize(450, 340))
#if wxUSE_MENUS
// create a menu bar
wxMenu *menuFile = new wxMenu;
+#if wxUSE_DYNLIB_CLASS
menuFile->Append(Render_Load, _T("&Load renderer...\tCtrl-L"));
menuFile->Append(Render_Unload, _T("&Unload renderer\tCtrl-U"));
+#endif // wxUSE_DYNLIB_CLASS
menuFile->Append(Render_Quit, _T("E&xit\tCtrl-Q"), _T("Quit this program"));
// the "About" item should be in the help menu
// event handlers
+#if wxUSE_DYNLIB_CLASS
+
void MyFrame::OnLoad(wxCommandEvent& WXUNUSED(event))
{
static wxString s_name = _T("renddll");
}
}
+#endif // wxUSE_DYNLIB_CLASS
+
void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event))
{
// true is to force the frame to close