diff --git a/include/wx/bitmap.h b/include/wx/bitmap.h index f861b3354a..754eabc631 100644 --- a/include/wx/bitmap.h +++ b/include/wx/bitmap.h @@ -19,11 +19,11 @@ #include "wx/string.h" #include "wx/gdicmn.h" // for wxBitmapType #include "wx/colour.h" +#include "wx/image.h" class WXDLLIMPEXP_FWD_CORE wxBitmap; class WXDLLIMPEXP_FWD_CORE wxBitmapHandler; class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxImage; class WXDLLIMPEXP_FWD_CORE wxMask; class WXDLLIMPEXP_FWD_CORE wxPalette; @@ -168,6 +168,9 @@ public: #if wxUSE_IMAGE virtual wxImage ConvertToImage() const = 0; + + // Convert to disabled (dimmed) bitmap. + wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; #endif // wxUSE_IMAGE virtual wxMask *GetMask() const = 0; @@ -175,9 +178,6 @@ public: virtual wxBitmap GetSubBitmap(const wxRect& rect) const = 0; - // Convert to disabled (dimmed) bitmap. - wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; - virtual bool SaveFile(const wxString &name, wxBitmapType type, const wxPalette *palette = NULL) const = 0; virtual bool LoadFile(const wxString &name, wxBitmapType type) = 0; @@ -272,6 +272,20 @@ protected: #include "wx/os2/bitmap.h" #endif +#if wxUSE_IMAGE +inline +wxBitmap +#if wxUSE_BITMAP_BASE +wxBitmapBase:: +#else +wxBitmap:: +#endif +ConvertToDisabled(unsigned char brightness) const +{ + return ConvertToImage().ConvertToDisabled(brightness); +} +#endif // wxUSE_IMAGE + // we must include generic mask.h after wxBitmap definition #if defined(__WXMGL__) || defined(__WXDFB__) #define wxUSE_GENERIC_MASK 1 diff --git a/include/wx/msw/bitmap.h b/include/wx/msw/bitmap.h index 205370f459..ce3e841aee 100644 --- a/include/wx/msw/bitmap.h +++ b/include/wx/msw/bitmap.h @@ -25,7 +25,6 @@ class WXDLLIMPEXP_FWD_CORE wxDC; class WXDLLIMPEXP_FWD_CORE wxDIB; #endif class WXDLLIMPEXP_FWD_CORE wxIcon; -class WXDLLIMPEXP_FWD_CORE wxImage; class WXDLLIMPEXP_FWD_CORE wxMask; class WXDLLIMPEXP_FWD_CORE wxPalette; class WXDLLIMPEXP_FWD_CORE wxPixelDataBase; @@ -115,6 +114,7 @@ public: #if wxUSE_IMAGE wxImage ConvertToImage() const; + wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; #endif // wxUSE_IMAGE // get the given part of bitmap diff --git a/include/wx/os2/bitmap.h b/include/wx/os2/bitmap.h index 818bb49071..653dd9635a 100644 --- a/include/wx/os2/bitmap.h +++ b/include/wx/os2/bitmap.h @@ -25,7 +25,6 @@ class WXDLLIMPEXP_FWD_CORE wxIcon; class WXDLLIMPEXP_FWD_CORE wxMask; class WXDLLIMPEXP_FWD_CORE wxCursor; class WXDLLIMPEXP_FWD_CORE wxControl; -class WXDLLIMPEXP_FWD_CORE wxImage; class WXDLLIMPEXP_FWD_CORE wxPixelDataBase; // ---------------------------------------------------------------------------- @@ -149,6 +148,7 @@ public: virtual ~wxBitmap(); wxImage ConvertToImage() const; + wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; // get the given part of bitmap wxBitmap GetSubBitmap(const wxRect& rRect) const; diff --git a/include/wx/palmos/bitmap.h b/include/wx/palmos/bitmap.h index e31cf24ce0..4ef6b5dd56 100644 --- a/include/wx/palmos/bitmap.h +++ b/include/wx/palmos/bitmap.h @@ -96,6 +96,7 @@ public: #if wxUSE_IMAGE && wxUSE_WXDIB wxImage ConvertToImage() const; + wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; #endif // wxUSE_IMAGE // get the given part of bitmap diff --git a/interface/wx/bitmap.h b/interface/wx/bitmap.h index 2a2d6b5cb8..94b8843668 100644 --- a/interface/wx/bitmap.h +++ b/interface/wx/bitmap.h @@ -508,6 +508,9 @@ public: /** Returns disabled (dimmed) version of the bitmap. + + This method is not available when wxUSE_IMAGE == 0. + @since 2.9.0 */ wxBitmap ConvertToDisabled(unsigned char brightness = 255) const; diff --git a/src/common/bmpbase.cpp b/src/common/bmpbase.cpp index eebf56e5f9..e80091dada 100644 --- a/src/common/bmpbase.cpp +++ b/src/common/bmpbase.cpp @@ -135,16 +135,6 @@ public: void OnExit() { wxBitmap::CleanUpHandlers(); } }; -wxBitmap wxBitmapBase::ConvertToDisabled(unsigned char brightness) const -{ - wxBitmap bmp; -#if wxUSE_IMAGE - wxImage image = ConvertToImage(); - bmp = wxBitmap(image.ConvertToDisabled(brightness)); -#endif - return bmp; -} - IMPLEMENT_DYNAMIC_CLASS(wxBitmapBaseModule, wxModule) #endif // wxUSE_BITMAP_BASE