From 0e27ef576eafbddaf337ca059c299184080bd5cb Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 9 Jul 2011 23:36:44 +0000 Subject: [PATCH] Don't duplicate wxImage::ConvertToDisabled() in wxAUI code. Just reuse the existing function. Also add an example of showing a disabled bitmap to the aui sample. Closes #13303. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@68210 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/aui/auidemo.cpp | 3 ++- src/aui/auibar.cpp | 40 +--------------------------------------- 2 files changed, 3 insertions(+), 40 deletions(-) diff --git a/samples/aui/auidemo.cpp b/samples/aui/auidemo.cpp index b6bb96102f..08d5d136d9 100644 --- a/samples/aui/auidemo.cpp +++ b/samples/aui/auidemo.cpp @@ -798,7 +798,7 @@ MyFrame::MyFrame(wxWindow* parent, tb2->SetToolBitmapSize(wxSize(16,16)); wxBitmap tb2_bmp1 = wxArtProvider::GetBitmap(wxART_QUESTION, wxART_OTHER, wxSize(16,16)); - tb2->AddTool(ID_SampleItem+6, wxT("Test"), tb2_bmp1); + tb2->AddTool(ID_SampleItem+6, wxT("Disabled"), tb2_bmp1); tb2->AddTool(ID_SampleItem+7, wxT("Test"), tb2_bmp1); tb2->AddTool(ID_SampleItem+8, wxT("Test"), tb2_bmp1); tb2->AddTool(ID_SampleItem+9, wxT("Test"), tb2_bmp1); @@ -811,6 +811,7 @@ MyFrame::MyFrame(wxWindow* parent, tb2->AddTool(ID_SampleItem+14, wxT("Test"), tb2_bmp1); tb2->AddTool(ID_SampleItem+15, wxT("Test"), tb2_bmp1); tb2->SetCustomOverflowItems(prepend_items, append_items); + tb2->EnableTool(ID_SampleItem+6, false); tb2->Realize(); diff --git a/src/aui/auibar.cpp b/src/aui/auibar.cpp index 9d86d69a0c..a64ed0cce5 100644 --- a/src/aui/auibar.cpp +++ b/src/aui/auibar.cpp @@ -69,41 +69,6 @@ const int BUTTON_DROPDOWN_WIDTH = 10; wxBitmap wxAuiBitmapFromBits(const unsigned char bits[], int w, int h, const wxColour& color); -static wxBitmap MakeDisabledBitmap(wxBitmap& bmp) -{ - wxImage image = bmp.ConvertToImage(); - - int mr, mg, mb; - mr = image.GetMaskRed(); - mg = image.GetMaskGreen(); - mb = image.GetMaskBlue(); - - unsigned char* data = image.GetData(); - int width = image.GetWidth(); - int height = image.GetHeight(); - bool has_mask = image.HasMask(); - - for (int y = height-1; y >= 0; --y) - { - for (int x = width-1; x >= 0; --x) - { - data = image.GetData() + (y*(width*3))+(x*3); - unsigned char* r = data; - unsigned char* g = data+1; - unsigned char* b = data+2; - - if (has_mask && *r == mr && *g == mg && *b == mb) - continue; - - *r = wxColour::AlphaBlend(*r, 255, 0.4); - *g = wxColour::AlphaBlend(*g, 255, 0.4); - *b = wxColour::AlphaBlend(*b, 255, 0.4); - } - } - - return wxBitmap(image); -} - static wxColor GetBaseColor() { @@ -996,10 +961,7 @@ wxAuiToolBarItem* wxAuiToolBar::AddTool(int tool_id, // no disabled bitmap specified, we need to make one if (item.bitmap.IsOk()) { - //wxImage img = item.bitmap.ConvertToImage(); - //wxImage grey_version = img.ConvertToGreyscale(); - //item.disabled_bitmap = wxBitmap(grey_version); - item.disabled_bitmap = MakeDisabledBitmap(item.bitmap); + item.disabled_bitmap = item.bitmap.ConvertToDisabled(); } } m_items.Add(item); -- 2.45.2