]> git.saurik.com Git - wxWidgets.git/commitdiff
Allow wxStaticText to have a custom fg without a custom bg
authorRobin Dunn <robin@alldunn.com>
Sat, 12 Mar 2005 20:25:19 +0000 (20:25 +0000)
committerRobin Dunn <robin@alldunn.com>
Sat, 12 Mar 2005 20:25:19 +0000 (20:25 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32780 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/control.h
include/wx/msw/stattext.h
src/msw/stattext.cpp

index d00396b335ccd6f165c7e7d8be8572934acb10c5..ab32c80c7638b161319e97ba7cb5b9dcc710fe4e 100644 (file)
@@ -133,7 +133,7 @@ protected:
     // common part of the 3 functions above: pass wxNullColour to use the
     // appropriate background colour (meaning ours or our parents) or a fixed
     // one
-    WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg);
+    virtual WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg);
 
     // another WM_CTLCOLOR-related function: override this to return the brush
     // which should be used to paint the control background by default
index 0ceef4c977a417ba06fc1e6a90e8e7ddb1b1b7b6..6f6016f11c225b4e03457b2fcda7847ff8b9b633 100644 (file)
@@ -51,6 +51,7 @@ protected:
                            int sizeFlags = wxSIZE_AUTO);
     virtual wxSize DoGetBestSize() const;
     virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
+    virtual WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg);
 
     DECLARE_DYNAMIC_CLASS_NO_COPY(wxStaticText)
 };
index 124d9e471d935eddd112a910b0a6849d9f7c6360..518a7677fd302eca867ac1419f708a332f5a8119 100644 (file)
@@ -126,6 +126,19 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
     return msStyle;
 }
 
+WXHBRUSH wxStaticText::DoMSWControlColor(WXHDC pDC, wxColour colBg)
+{
+    // If this control has a non-standard fg colour but still has the standard
+    // bg then we need to also give it a non-standard bg otherwise the fg
+    // setting has no effect.
+    WXHBRUSH hbr = wxControl::DoMSWControlColor(pDC, colBg);
+    if (!hbr && m_hasFgCol)
+    {
+        hbr = MSWGetBgBrushForChild(pDC, this);
+    }
+    return hbr;
+}
+
 wxSize wxStaticText::DoGetBestSize() const
 {
     wxClientDC dc(wx_const_cast(wxStaticText *, this));