Add a separate wxControlRenderer::DrawButtonLabel() too.
wxControlRenderer::DrawLabel() was used by both wxStaticText and wxButton but their labels may need to be drawn differently and wxRenderer does have different DrawLabel() and DrawButtonLabel() to do it. Now also add a separate method for the buttons to wxControlRenderer. See #11220. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62004 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -870,7 +870,8 @@ public:
|
|||||||
wxControlRenderer(wxWindow *control, wxDC& dc, wxRenderer *renderer);
|
wxControlRenderer(wxWindow *control, wxDC& dc, wxRenderer *renderer);
|
||||||
|
|
||||||
// operations
|
// operations
|
||||||
void DrawLabel(const wxBitmap& bitmap = wxNullBitmap,
|
void DrawLabel();
|
||||||
|
void DrawButtonLabel(const wxBitmap& bitmap = wxNullBitmap,
|
||||||
wxCoord marginX = 0, wxCoord marginY = 0);
|
wxCoord marginX = 0, wxCoord marginY = 0);
|
||||||
#if wxUSE_LISTBOX
|
#if wxUSE_LISTBOX
|
||||||
void DrawItems(const wxListBox *listbox,
|
void DrawItems(const wxListBox *listbox,
|
||||||
|
@@ -213,7 +213,7 @@ void wxButton::DoDraw(wxControlRenderer *renderer)
|
|||||||
renderer->DrawButtonBorder();
|
renderer->DrawButtonBorder();
|
||||||
}
|
}
|
||||||
|
|
||||||
renderer->DrawLabel(m_bitmap, m_marginBmpX, m_marginBmpY);
|
renderer->DrawButtonLabel(m_bitmap, m_marginBmpX, m_marginBmpY);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxButton::DoDrawBackground(wxDC& dc)
|
bool wxButton::DoDrawBackground(wxDC& dc)
|
||||||
|
@@ -67,7 +67,27 @@ wxControlRenderer::wxControlRenderer(wxWindow *window,
|
|||||||
m_rect.height = size.y;
|
m_rect.height = size.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxControlRenderer::DrawLabel(const wxBitmap& bitmap,
|
void wxControlRenderer::DrawLabel()
|
||||||
|
{
|
||||||
|
m_dc.SetBackgroundMode(wxTRANSPARENT);
|
||||||
|
m_dc.SetFont(m_window->GetFont());
|
||||||
|
m_dc.SetTextForeground(m_window->GetForegroundColour());
|
||||||
|
|
||||||
|
wxString label = m_window->GetLabel();
|
||||||
|
if ( !label.empty() )
|
||||||
|
{
|
||||||
|
wxControl *ctrl = wxStaticCast(m_window, wxControl);
|
||||||
|
|
||||||
|
m_renderer->DrawLabel(m_dc,
|
||||||
|
label,
|
||||||
|
m_rect,
|
||||||
|
m_window->GetStateFlags(),
|
||||||
|
ctrl->GetAlignment(),
|
||||||
|
ctrl->GetAccelIndex());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void wxControlRenderer::DrawButtonLabel(const wxBitmap& bitmap,
|
||||||
wxCoord marginX, wxCoord marginY)
|
wxCoord marginX, wxCoord marginY)
|
||||||
{
|
{
|
||||||
m_dc.SetBackgroundMode(wxTRANSPARENT);
|
m_dc.SetBackgroundMode(wxTRANSPARENT);
|
||||||
|
Reference in New Issue
Block a user