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:
Vadim Zeitlin
2005-04-10 15:23:08 +00:00
parent 47561b0dc5
commit c3732409ac
32 changed files with 340 additions and 496 deletions

View File

@@ -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)