X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f91f3a333110fd08795ac3c0551725dd61956a1..b3cec67186d678d2c3985923bdb8c787455cf369:/src/generic/renderg.cpp diff --git a/src/generic/renderg.cpp b/src/generic/renderg.cpp index 4aa00c7aea..77dabb8f0b 100644 --- a/src/generic/renderg.cpp +++ b/src/generic/renderg.cpp @@ -118,7 +118,7 @@ public: virtual void DrawTextCtrl(wxWindow* win, wxDC& dc, const wxRect& rect, int flags=0); - virtual void DrawRadioButton(wxWindow* win, wxDC& dc, const wxRect& rect, int flags=0); + virtual void DrawRadioBitmap(wxWindow* win, wxDC& dc, const wxRect& rect, int flags=0); virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win); @@ -324,13 +324,42 @@ wxRendererGeneric::DrawHeaderButtonContents(wxWindow *win, const int margin = 5; // number of pixels to reserve on either side of the label int bmpWidth = 0; - int txtEnd = 0; if ( params && params->m_labelBitmap.Ok() ) bmpWidth = params->m_labelBitmap.GetWidth() + 2; labelWidth += bmpWidth + 2*margin; + // draw the bitmap if there is one + if ( params && params->m_labelBitmap.Ok() ) + { + int w, h, x, y; + w = params->m_labelBitmap.GetWidth(); + h = params->m_labelBitmap.GetHeight(); + + x = margin + rect.x; + y = rect.y + wxMax(1, (rect.height - h) / 2); + + if (params->m_labelText.empty()) + { + // use the alignment flags + switch (params->m_labelAlignment) + { + default: + case wxALIGN_LEFT: + x = rect.x + margin; + break; + case wxALIGN_CENTER: + x = rect.x + wxMax(1, (rect.width - arrowSpace - w)/2); + break; + case wxALIGN_RIGHT: + x = rect.x + wxMax(1, rect.width - arrowSpace - margin - w); + break; + } + } + dc.DrawBitmap(params->m_labelBitmap, x, y, true); + } + // Draw a label if one is given if ( params && !params->m_labelText.empty() ) { @@ -381,42 +410,7 @@ wxRendererGeneric::DrawHeaderButtonContents(wxWindow *win, break; } - dc.DrawText(label, x, y); - txtEnd = x + tw + 2; - } - - // draw the bitmap if there is one - if ( params && params->m_labelBitmap.Ok() ) - { - int w, h, x, y; - w = params->m_labelBitmap.GetWidth(); - h = params->m_labelBitmap.GetHeight(); - - y = rect.y + wxMax(1, (rect.height - h) / 2); - - // if there is a text label, then put the bitmap at the end of the label - if ( txtEnd != 0 ) - { - x = txtEnd; - } - // otherwise use the alignment flags - else - { - switch (params->m_labelAlignment) - { - default: - case wxALIGN_LEFT: - x = rect.x + margin; - break; - case wxALIGN_CENTER: - x = rect.x + wxMax(1, (rect.width - arrowSpace - w)/2); - break; - case wxALIGN_RIGHT: - x = rect.x + wxMax(1, rect.width - arrowSpace - margin - w); - break; - } - } - dc.DrawBitmap(params->m_labelBitmap, x, y, true); + dc.DrawText(label, x + bmpWidth, y); } return labelWidth; } @@ -653,17 +647,10 @@ wxRendererGeneric::DrawPushButton(wxWindow *win, } void -#ifdef __WXMAC__ wxRendererGeneric::DrawItemSelectionRect(wxWindow * win, wxDC& dc, const wxRect& rect, int flags) -#else -wxRendererGeneric::DrawItemSelectionRect(wxWindow * WXUNUSED(win), - wxDC& dc, - const wxRect& rect, - int flags) -#endif { wxBrush brush; if ( flags & wxCONTROL_SELECTED ) @@ -693,6 +680,9 @@ wxRendererGeneric::DrawItemSelectionRect(wxWindow * WXUNUSED(win), dc.SetPen( *wxTRANSPARENT_PEN ); dc.DrawRectangle( rect ); + + // it's unused everywhere except in wxOSX/Carbon + wxUnusedVar(win); } void @@ -740,25 +730,25 @@ wxRendererGeneric::DrawFocusRect(wxWindow* WXUNUSED(win), wxDC& dc, const wxRect void wxRendererGeneric::DrawChoice(wxWindow* WXUNUSED(win), wxDC& WXUNUSED(dc), const wxRect& WXUNUSED(rect), int WXUNUSED(flags)) { - // FIXME: Implement + wxFAIL_MSG("UNIMPLEMENTED: wxRendererGeneric::DrawChoice"); } void wxRendererGeneric::DrawComboBox(wxWindow* WXUNUSED(win), wxDC& WXUNUSED(dc), const wxRect& WXUNUSED(rect), int WXUNUSED(flags)) { - // FIXME: Implement + wxFAIL_MSG("UNIMPLEMENTED: wxRendererGeneric::DrawComboBox"); } -void wxRendererGeneric::DrawRadioButton(wxWindow* WXUNUSED(win), wxDC& WXUNUSED(dc), +void wxRendererGeneric::DrawRadioBitmap(wxWindow* WXUNUSED(win), wxDC& WXUNUSED(dc), const wxRect& WXUNUSED(rect), int WXUNUSED(flags)) { - // FIXME: Implement + wxFAIL_MSG("UNIMPLEMENTED: wxRendererGeneric::DrawRadioBitmap"); } void wxRendererGeneric::DrawTextCtrl(wxWindow* WXUNUSED(win), wxDC& WXUNUSED(dc), const wxRect& WXUNUSED(rect), int WXUNUSED(flags)) { - // FIXME: Implement + wxFAIL_MSG("UNIMPLEMENTED: wxRendererGeneric::DrawTextCtrl"); }