]> git.saurik.com Git - wxWidgets.git/commitdiff
Add a separate wxControlRenderer::DrawButtonLabel() too.
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 22 Sep 2009 00:23:03 +0000 (00:23 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 22 Sep 2009 00:23:03 +0000 (00:23 +0000)
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

include/wx/univ/renderer.h
src/univ/button.cpp
src/univ/ctrlrend.cpp

index cec9197297d695f5fa1e5a234d61316e75b165f4..c03a245dc31d6912c65fbaa0b9183143b5ff7221 100644 (file)
@@ -870,8 +870,9 @@ public:
     wxControlRenderer(wxWindow *control, wxDC& dc, wxRenderer *renderer);
 
     // operations
-    void DrawLabel(const wxBitmap& bitmap = wxNullBitmap,
-                   wxCoord marginX = 0, wxCoord marginY = 0);
+    void DrawLabel();
+    void DrawButtonLabel(const wxBitmap& bitmap = wxNullBitmap,
+                         wxCoord marginX = 0, wxCoord marginY = 0);
 #if wxUSE_LISTBOX
     void DrawItems(const wxListBox *listbox,
                    size_t itemFirst, size_t itemLast);
index 05f3c3373f8b22b72f964b9846375aea19bb5e3e..4d9a8430841021021d97992a0d9e705f587ad03c 100644 (file)
@@ -213,7 +213,7 @@ void wxButton::DoDraw(wxControlRenderer *renderer)
         renderer->DrawButtonBorder();
     }
 
-    renderer->DrawLabel(m_bitmap, m_marginBmpX, m_marginBmpY);
+    renderer->DrawButtonLabel(m_bitmap, m_marginBmpX, m_marginBmpY);
 }
 
 bool wxButton::DoDrawBackground(wxDC& dc)
index 60d561ea2463bbc08eadb62a787b84c4d13a8e92..1a55bb9576f6f60a5e8218d639ef7e08dfa5ca07 100644 (file)
@@ -67,8 +67,28 @@ wxControlRenderer::wxControlRenderer(wxWindow *window,
     m_rect.height = size.y;
 }
 
-void wxControlRenderer::DrawLabel(const wxBitmap& bitmap,
-                                  wxCoord marginX, wxCoord marginY)
+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)
 {
     m_dc.SetBackgroundMode(wxTRANSPARENT);
     m_dc.SetFont(m_window->GetFont());