Added wxRendererNative::DrawTitleBarBitmap().
This is currently only implemented for wxMSW as there is no advantage to use a generic implementation compared to using wxArtProvider directly under the other ports. But for MSW this allows to have perfectly natively looking titlebar-like buttons. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62295 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -41,6 +41,11 @@ class WXDLLIMPEXP_FWD_CORE wxWindow;
|
||||
#undef wxHAS_NATIVE_RENDERER
|
||||
#endif
|
||||
|
||||
// only MSW currently provides DrawTitleBarBitmap() method
|
||||
#if defined(__WXMSW__)
|
||||
#define wxHAS_DRAW_TITLE_BAR_BITMAP
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// constants
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -70,6 +75,19 @@ enum
|
||||
wxCONTROL_DIRTY = 0x80000000
|
||||
};
|
||||
|
||||
// title bar buttons supported by DrawTitleBarBitmap()
|
||||
//
|
||||
// NB: they have the same values as wxTOPLEVEL_BUTTON_XXX constants in
|
||||
// wx/univ/toplevel.h as they really represent the same things
|
||||
enum wxTitleBarButton
|
||||
{
|
||||
wxTITLEBAR_BUTTON_CLOSE = 0x01000000,
|
||||
wxTITLEBAR_BUTTON_MAXIMIZE = 0x02000000,
|
||||
wxTITLEBAR_BUTTON_ICONIZE = 0x04000000,
|
||||
wxTITLEBAR_BUTTON_RESTORE = 0x08000000,
|
||||
wxTITLEBAR_BUTTON_HELP = 0x10000000
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// helper structs
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -283,6 +301,21 @@ public:
|
||||
const wxRect& rect,
|
||||
int flags = 0) = 0;
|
||||
|
||||
#ifdef wxHAS_DRAW_TITLE_BAR_BITMAP
|
||||
// Draw one of the standard title bar buttons
|
||||
//
|
||||
// This is currently implemented only for MSW because there is no way to
|
||||
// render standard title bar buttons under the other platforms, the best
|
||||
// can be done is to use normal (only) images which wxArtProvider provides
|
||||
// for wxART_HELP and wxART_CLOSE (but not any other title bar buttons)
|
||||
virtual void DrawTitleBarBitmap(wxWindow *win,
|
||||
wxDC& dc,
|
||||
const wxRect& rect,
|
||||
wxTitleBarButton button,
|
||||
int flags = 0) = 0;
|
||||
#endif // wxHAS_DRAW_TITLE_BAR_BITMAP
|
||||
|
||||
|
||||
// geometry functions
|
||||
// ------------------
|
||||
|
||||
@@ -449,6 +482,15 @@ public:
|
||||
int flags = 0)
|
||||
{ m_rendererNative.DrawRadioBitmap(win, dc, rect, flags); }
|
||||
|
||||
#ifdef wxHAS_DRAW_TITLE_BAR_BITMAP
|
||||
virtual void DrawTitleBarBitmap(wxWindow *win,
|
||||
wxDC& dc,
|
||||
const wxRect& rect,
|
||||
wxTitleBarButton button,
|
||||
int flags = 0)
|
||||
{ m_rendererNative.DrawTitleBarBitmap(win, dc, rect, button, flags); }
|
||||
#endif // wxHAS_DRAW_TITLE_BAR_BITMAP
|
||||
|
||||
virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win)
|
||||
{ return m_rendererNative.GetSplitterParams(win); }
|
||||
|
||||
|
Reference in New Issue
Block a user