+// Uses the theme to draw the border and fill for something like a wxTextCtrl
+void wxRendererMSW::DrawTextCtrl(wxWindow* win, wxDC& dc, const wxRect& rect, int flags)
+{
+ wxColour fill;
+ wxColour bdr;
+ COLORREF cref;
+
+#if wxUSE_UXTHEME
+ wxUxThemeHandle hTheme(win, L"EDIT");
+ if (hTheme)
+ {
+ wxUxThemeEngine::Get()->GetThemeColor(hTheme, EP_EDITTEXT,
+ ETS_NORMAL, TMT_FILLCOLOR, &cref);
+ fill = wxRGBToColour(cref);
+
+ int etsState;
+ if ( flags & wxCONTROL_DISABLED )
+ etsState = ETS_DISABLED;
+ else
+ etsState = ETS_NORMAL;
+
+ wxUxThemeEngine::Get()->GetThemeColor(hTheme, EP_EDITTEXT,
+ etsState, TMT_BORDERCOLOR, &cref);
+ bdr = wxRGBToColour(cref);
+ }
+ else
+#endif
+ {
+ fill = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
+ bdr = *wxBLACK;
+ }
+
+ dc.SetPen( bdr );
+ dc.SetBrush( fill );
+ dc.DrawRectangle(rect);
+}
+
+
+// Draw the equivalent of a wxComboBox
+void wxRendererMSW::DrawComboBox(wxWindow* win, wxDC& dc, const wxRect& rect, int flags)
+{
+ // Draw the main part of the control same as TextCtrl
+ DrawTextCtrl(win, dc, rect, flags);
+
+ // Draw the button inside the border, on the right side
+ wxRect br(rect);
+ br.height -= 2;
+ br.x += br.width - br.height - 1;
+ br.width = br.height;
+ br.y += 1;
+
+ DrawComboBoxDropButton(win, dc, br, flags);
+}
+
+
+void wxRendererMSW::DrawChoice(wxWindow* win, wxDC& dc,
+ const wxRect& rect, int flags)
+{
+ DrawComboBox(win, dc, rect, flags);
+}
+