wxWin32Theme();
virtual ~wxWin32Theme();
- virtual wxRenderer *GetRenderer() { return m_renderer; }
+ virtual wxRenderer *GetRenderer();
virtual wxInputHandler *GetInputHandler(const wxString& control);
virtual wxColourScheme *GetColourScheme();
wxWin32Theme::wxWin32Theme()
{
- m_scheme = new wxWin32ColourScheme;
- m_renderer = new wxWin32Renderer(m_scheme);
+ m_scheme = NULL;
+ m_renderer = NULL;
m_handlerDefault = NULL;
}
delete m_scheme;
}
+wxRenderer *wxWin32Theme::GetRenderer()
+{
+ if ( !m_renderer )
+ {
+ m_renderer = new wxWin32Renderer(GetColourScheme());
+ }
+
+ return m_renderer;
+}
+
wxInputHandler *wxWin32Theme::GetDefaultInputHandler()
{
if ( !m_handlerDefault )
wxColourScheme *wxWin32Theme::GetColourScheme()
{
+ if ( !m_scheme )
+ {
+ m_scheme = new wxWin32ColourScheme;
+ }
return m_scheme;
}
// the colour set by the user should be used for the normal state
// and for the states for which we don't have any specific colours
- if ( !col.Ok() || (flags != 0) )
+ if ( !col.Ok() || (flags & wxCONTROL_PRESSED) != 0 )
{
if ( wxDynamicCast(win, wxScrollBar) )
col = Get(flags & wxCONTROL_PRESSED ? SCROLLBAR_PRESSED
m_colHighlight = wxSCHEME_COLOUR(scheme, SHADOW_HIGHLIGHT);
m_penHighlight = wxPen(m_colHighlight, 0, wxSOLID);
- m_titlebarFont = wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT);
+ m_titlebarFont = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
m_titlebarFont.SetWeight(wxFONTWEIGHT_BOLD);
// init the arrow bitmaps
: IndicatorStatus_Unchecked;
const char **xpm = bmpIndicators[indType][indState][indStatus];
- return xpm ? wxBitmap(xpm) : wxNullBitmap;
+ if (xpm)
+ {
+ wxBitmap bmp(xpm);
+ return bmp;
+ }
+ else
+ return wxNullBitmap;
}
void wxWin32Renderer::DrawCheckOrRadioButton(wxDC& dc,
wxAlignment align,
int indexAccel)
{
- DrawCheckOrRadioButton(dc, label,
- bitmap.Ok() ? bitmap : GetRadioBitmap(flags),
+ if (bitmap.Ok())
+ DrawCheckOrRadioButton(dc, label,
+ bitmap,
rect, flags, align, indexAccel,
- FOCUS_RECT_OFFSET_Y); // default focus rect offset
+ FOCUS_RECT_OFFSET_Y); // default focus rect offset
+ else
+ {
+ wxBitmap rbitmap(GetRadioBitmap(flags));
+ DrawCheckOrRadioButton(dc, label,
+ rbitmap,
+ rect, flags, align, indexAccel,
+ FOCUS_RECT_OFFSET_Y); // default focus rect offset
+ }
}
void wxWin32Renderer::DrawCheckButton(wxDC& dc,
wxAlignment align,
int indexAccel)
{
- DrawCheckOrRadioButton(dc, label,
- bitmap.Ok() ? bitmap : GetCheckBitmap(flags),
- rect, flags, align, indexAccel,
- 0); // no focus rect offset for checkboxes
+ if (bitmap.Ok())
+ DrawCheckOrRadioButton(dc, label,
+ bitmap,
+ rect, flags, align, indexAccel,
+ 0); // no focus rect offset for checkboxes
+ else
+ {
+ wxBitmap cbitmap(GetCheckBitmap(flags));
+ DrawCheckOrRadioButton(dc, label,
+ cbitmap,
+ rect, flags, align, indexAccel,
+ 0); // no focus rect offset for checkboxes
+ }
}
// ----------------------------------------------------------------------------
{
// prepare the dc: for now we draw all the items with the system font
wxClientDC dc(win);
- dc.SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
+ dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
// the height of a normal item
wxCoord heightText = dc.GetCharHeight();
{
wxSize sizeSbar = statbar->GetSize();
- return (sizeSbar.x - pt.x) < STATUSBAR_GRIP_SIZE &&
- (sizeSbar.y - pt.y) < STATUSBAR_GRIP_SIZE;
+ return (sizeSbar.x - pt.x) < (wxCoord)STATUSBAR_GRIP_SIZE &&
+ (sizeSbar.y - pt.y) < (wxCoord)STATUSBAR_GRIP_SIZE;
}
return FALSE;