fixed background colour of the automatically created disabled button bitmaps (makes patch 1116702 work)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33285 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2005-04-02 21:33:40 +00:00
parent 21dc4be5d2
commit ba700b5c1a

View File

@@ -659,12 +659,17 @@ bool wxToolBar::Realize()
if ( tool->IsButton() ) if ( tool->IsButton() )
{ {
const wxBitmap& bmp = tool->GetNormalBitmap(); const wxBitmap& bmp = tool->GetNormalBitmap();
const int w = bmp.GetWidth();
const int h = bmp.GetHeight();
if ( bmp.Ok() ) if ( bmp.Ok() )
{ {
int xOffset = wxMax(0, (m_defaultWidth - bmp.GetWidth())/2); int xOffset = wxMax(0, (m_defaultWidth - w)/2);
int yOffset = wxMax(0, (m_defaultHeight - bmp.GetHeight())/2); int yOffset = wxMax(0, (m_defaultHeight - h)/2);
// notice the last parameter: do use mask // notice the last parameter: do use mask
dcAllButtons.DrawBitmap(bmp, x+xOffset, yOffset, true); dcAllButtons.DrawBitmap(bmp, x + xOffset, yOffset, true);
} }
else else
{ {
@@ -675,31 +680,34 @@ bool wxToolBar::Realize()
if ( m_disabledImgList ) if ( m_disabledImgList )
{ {
wxBitmap bmpDisabled = tool->GetDisabledBitmap(); wxBitmap bmpDisabled = tool->GetDisabledBitmap();
#if wxUSE_IMAGE
if ( !bmpDisabled.Ok() ) if ( !bmpDisabled.Ok() )
{ {
#if wxUSE_IMAGE
// no disabled bitmap specified but we still need to // no disabled bitmap specified but we still need to
// fill the space in the image list with something, so // fill the space in the image list with something, so
// we grey out the normal bitmap // we grey out the normal bitmap
wxImage img = bmp.ConvertToImage();
#if 0
img.SetMaskColour(wxLIGHT_GREY->Red(),
wxLIGHT_GREY->Green(),
wxLIGHT_GREY->Blue());
#endif
wxImage imgGreyed; wxImage imgGreyed;
wxCreateGreyedImage(img, imgGreyed); wxCreateGreyedImage(bmp.ConvertToImage(), imgGreyed);
// we need to have light grey background colour for
// MapBitmap() to work correctly
for ( int y = 0; y < h; y++ )
{
for ( int x = 0; x < w; x++ )
{
if ( imgGreyed.IsTransparent(x, y) )
imgGreyed.SetRGB(x, y,
wxLIGHT_GREY->Red(),
wxLIGHT_GREY->Green(),
wxLIGHT_GREY->Blue());
}
}
bmpDisabled = wxBitmap(imgGreyed); bmpDisabled = wxBitmap(imgGreyed);
#if 0
bmpDisabled.SetMask(new wxMask(bmpDisabled, *wxLIGHT_GREY));
MapBitmap(bmpDisabled.GetHBITMAP(),
bmpDisabled.GetWidth(),
bmpDisabled.GetHeight());
#endif // 0
#endif // wxUSE_IMAGE
} }
#endif // wxUSE_IMAGE
MapBitmap(bmpDisabled.GetHBITMAP(), w, h);
m_disabledImgList->Add(bmpDisabled); m_disabledImgList->Add(bmpDisabled);
} }