simplifications and corrections to background drawing:
1. removed ApplyParentThemeBackground() not used any longer 2. removed ProvidesBackground() which is synonymous with !HasTransparentBackground() 3. removed a whole bunch of unused MSWXXX() methods 4. moved MSWControlColor() from wxWindow up to wxControl results: 1. the gradient is still shown properly for static/radio boxes in notebooks 2. correct background colour is used for the static boxes 3. code is shorter and better commented git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33474 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -340,8 +340,19 @@ WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg)
|
||||
::SetTextColor(hdc, wxColourToRGB(GetForegroundColour()));
|
||||
}
|
||||
|
||||
WXHBRUSH hbr = 0;
|
||||
if ( !colBg.Ok() )
|
||||
{
|
||||
hbr = MSWGetBgBrush(pDC);
|
||||
|
||||
// if the control doesn't have any bg colour, foreground colour will be
|
||||
// ignored as the return value would be 0 -- so forcefully give it a
|
||||
// non default background brush in this case
|
||||
if ( !hbr && m_hasFgCol )
|
||||
colBg = GetBackgroundColour();
|
||||
}
|
||||
|
||||
// use the background colour override if a valid colour is given
|
||||
WXHBRUSH hbr;
|
||||
if ( colBg.Ok() )
|
||||
{
|
||||
::SetBkColor(hdc, wxColourToRGB(colBg));
|
||||
@@ -351,22 +362,20 @@ WXHBRUSH wxControl::DoMSWControlColor(WXHDC pDC, wxColour colBg)
|
||||
|
||||
hbr = (WXHBRUSH)brush->GetResourceHandle();
|
||||
}
|
||||
else // use our own background colour and recurse upwards if necessary
|
||||
{
|
||||
hbr = MSWGetBgBrush(pDC);
|
||||
}
|
||||
|
||||
return hbr;
|
||||
}
|
||||
|
||||
WXHBRUSH wxControl::MSWControlColor(WXHDC pDC)
|
||||
{
|
||||
// by default consider that the controls text shouldn't erase the
|
||||
// background under it (this is true for all static controls, check boxes,
|
||||
// radio buttons, ...)
|
||||
::SetBkMode((HDC)pDC, TRANSPARENT);
|
||||
wxColour colBg;
|
||||
|
||||
return DoMSWControlColor(pDC, wxNullColour);
|
||||
if ( HasTransparentBackground() )
|
||||
::SetBkMode((HDC)pDC, TRANSPARENT);
|
||||
else // if the control is opaque it shouldn't use the parents background
|
||||
colBg = GetBackgroundColour();
|
||||
|
||||
return DoMSWControlColor(pDC, colBg);
|
||||
}
|
||||
|
||||
WXHBRUSH wxControl::MSWControlColorDisabled(WXHDC pDC)
|
||||
|
Reference in New Issue
Block a user