Applied patch [ 1389709 ] XP theme support for DrawHeaderButton, DrawTreeItemButton

By Chris Mellon


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2006-01-17 15:41:26 +00:00
parent 88a01064f0
commit a9d9e2f262

View File

@ -45,6 +45,17 @@
#define CBXS_HOT 2
#define CBXS_PRESSED 3
#define CBXS_DISABLED 4
#define TVP_GLYPH 2
#define GLPS_CLOSED 1
#define GLPS_OPENED 2
#define HP_HEADERITEM 1
#define HIS_NORMAL 1
#define HIS_HOT 2
#define HIS_PRESSED 3
#endif
// ----------------------------------------------------------------------------
@ -97,6 +108,14 @@ public:
wxDC& dc,
const wxRect& rect,
int flags = 0);
virtual void DrawTreeItemButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,
int flags = 0);
virtual void DrawHeaderButton(wxWindow *win,
wxDC& dc,
const wxRect &rect,
int flags=0);
private:
DECLARE_NO_COPY_CLASS(wxRendererXP)
};
@ -262,5 +281,59 @@ wxRendererXP::DrawSplitterSash(wxWindow *win,
m_rendererNative.DrawSplitterSash(win, dc, size, position, orient, flags);
}
void
wxRendererXP::DrawTreeItemButton(wxWindow *win,
wxDC &dc,
const wxRect &rect,
int flags)
{
wxUxThemeHandle hTheme(win, L"TREEVIEW");
RECT r;
r.left = rect.x;
r.top = rect.y;
r.right = rect.x + rect.width;
r.bottom = rect.y + rect.height;
int state = (flags & wxCONTROL_EXPANDED) ? GLPS_OPENED : GLPS_CLOSED;
wxUxThemeEngine::Get()->DrawThemeBackground
(
hTheme,
(HDC) dc.GetHDC(),
TVP_GLYPH,
state,
&r,
NULL
);
}
void
wxRendererXP::DrawHeaderButton(wxWindow *win,
wxDC &dc,
const wxRect &rect,
int flags)
{
wxUxThemeHandle hTheme(win, L"HEADER");
RECT r;
r.left = rect.x;
r.top = rect.y;
r.right = rect.x + rect.width;
r.bottom = rect.y + rect.height;
int state;
if ( flags & wxCONTROL_PRESSED )
state = HIS_PRESSED;
else if ( flags & wxCONTROL_CURRENT )
state = HIS_HOT;
else
state = HIS_NORMAL;
wxUxThemeEngine::Get()->DrawThemeBackground
(
hTheme,
(HDC) dc.GetHDC(),
HP_HEADERITEM,
state,
&r,
NULL
);
}
#endif // wxUSE_UXTHEME