// ----------------------------------------------------------------------------
void
-wxStdRenderer::DrawFocusRect(wxDC& dc, const wxRect& rect, int WXUNUSED(flags))
+wxStdRenderer::DrawFocusRect(wxWindow* WXUNUSED(win), wxDC& dc, const wxRect& rect, int WXUNUSED(flags))
{
// draw the pixels manually because the "dots" in wxPen with wxDOT style
// may be short traits and not really dots
int indexAccel,
wxRect *rectBounds)
{
+ wxDCTextColourChanger clrChanger(dc);
+
wxRect rectLabel = rect;
if ( !label.empty() && (flags & wxCONTROL_DISABLED) )
{
}
// draw shadow of the text
- dc.SetTextForeground(m_penHighlight.GetColour());
+ clrChanger.Set(m_penHighlight.GetColour());
wxRect rectShadow = rect;
rectShadow.Offset(1, 1);
dc.DrawLabel(label, rectShadow, alignment, indexAccel);
// make the main label text grey
- dc.SetTextForeground(m_penDarkGrey.GetColour());
+ clrChanger.Set(m_penDarkGrey.GetColour());
if ( flags & wxCONTROL_FOCUSED )
{
{
rectLabel.Inflate(-1);
- DrawFocusRect(dc, rectLabel);
+ DrawFocusRect(NULL, dc, rectLabel);
}
}
switch ( border )
{
case wxBORDER_SUNKEN:
+ case wxBORDER_THEME:
DrawSunkenBorder(dc, &rect);
break;
+ // wxBORDER_DOUBLE and wxBORDER_THEME are currently the same value.
+#if 0
case wxBORDER_DOUBLE:
DrawAntiSunkenBorder(dc, &rect);
DrawExtraBorder(dc, &rect);
break;
+#endif
case wxBORDER_STATIC:
DrawStaticBorder(dc, &rect);
case wxBORDER_RAISED:
case wxBORDER_SUNKEN:
+ case wxBORDER_THEME:
width = 2;
break;
-
+#if 0
case wxBORDER_DOUBLE:
width = 3;
break;
-
+#endif
default:
wxFAIL_MSG(_T("unknown border type"));
// fall through
if ( flags & wxCONTROL_FOCUSED )
{
- DrawFocusRect(dc, rect, flags);
+ DrawFocusRect(NULL, dc, rect, flags);
}
}
wxAlignment align,
int indexAccel)
{
- wxBitmap bmp(bitmap.Ok() ? bitmap : GetCheckBitmap(flags));
-
- DrawCheckOrRadioButton(dc, label, bmp, rect, flags, align, indexAccel);
+ if (bitmap.Ok())
+ DrawCheckOrRadioButton(dc, label, bitmap, rect, flags, align, indexAccel);
+ else
+ DrawCheckOrRadioButton(dc, label, GetCheckBitmap(flags), rect, flags, align, indexAccel);
}
void wxStdRenderer::DrawRadioButton(wxDC& dc,
wxAlignment align,
int indexAccel)
{
- wxBitmap bmp(bitmap.Ok() ? bitmap : GetRadioBitmap(flags));
+ if (bitmap.Ok())
+ DrawCheckOrRadioButton(dc, label, bitmap, rect, flags, align, indexAccel);
+ else
+ DrawCheckOrRadioButton(dc, label, GetRadioBitmap(flags), rect, flags, align, indexAccel);
- DrawCheckOrRadioButton(dc, label, bmp, rect, flags, align, indexAccel);
}
void wxStdRenderer::DrawCheckOrRadioButton(wxDC& dc,