X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a6fd73d33ac80632981dee1c0be669f20ba765b5..8e77fd8bca165aab9709649d79a7cbc6a172d4e1:/include/wx/bmpbuttn.h?ds=inline diff --git a/include/wx/bmpbuttn.h b/include/wx/bmpbuttn.h index d9a1b3a727..fb1ed6f603 100644 --- a/include/wx/bmpbuttn.h +++ b/include/wx/bmpbuttn.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: wx/bmpbutton.h +// Name: wx/bmpbuttn.h // Purpose: wxBitmapButton class interface // Author: Vadim Zeitlin // Modified by: @@ -18,13 +18,15 @@ #include "wx/button.h" -// FIXME: right now only wxMSW implements bitmap support in wxButton +// FIXME: right now only wxMSW, wxGTK and wxOSX implement bitmap support in wxButton // itself, this shouldn't be used for the other platforms neither // when all of them do it -#ifdef __WXMSW__ +#if (defined(__WXMSW__) || defined(__WXGTK20__) || defined(__WXOSX__)) && !defined(__WXUNIVERSAL__) #define wxHAS_BUTTON_BITMAP #endif +class WXDLLIMPEXP_FWD_CORE wxBitmapButton; + // ---------------------------------------------------------------------------- // wxBitmapButton: a button which shows bitmaps instead of the usual string. // It has different bitmaps for different states (focused/disabled/pressed) @@ -41,6 +43,35 @@ public: #endif // wxHAS_BUTTON_BITMAP } + bool Create(wxWindow *parent, + wxWindowID winid, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& validator, + const wxString& name) + { + // We use wxBU_NOTEXT to let the base class Create() know that we are + // not going to show the label: this is a hack needed for wxGTK where + // we can show both label and bitmap only with GTK 2.6+ but we always + // can show just one of them and this style allows us to choose which + // one we need. + // + // And we also use wxBU_EXACTFIT to avoid being resized up to the + // standard button size as this doesn't make sense for bitmap buttons + // which are not standard anyhow and should fit their bitmap size. + return wxButton::Create(parent, winid, "", + pos, size, + style | wxBU_NOTEXT | wxBU_EXACTFIT, + validator, name); + } + + // Special creation function for a standard "Close" bitmap. It allows to + // simply create a close button with the image appropriate for the common + // platform. + static wxBitmapButton* NewCloseButton(wxWindow* parent, wxWindowID winid); + + // set/get the margins around the button virtual void SetMargins(int x, int y) { @@ -52,8 +83,8 @@ public: // deprecated synonym for SetBitmapLabel() #if WXWIN_COMPATIBILITY_2_6 - wxDEPRECATED_INLINE( void SetLabel(const wxBitmap& bitmap). - SetBitmapLabel(bitmap); ); + wxDEPRECATED_INLINE( void SetLabel(const wxBitmap& bitmap), + SetBitmapLabel(bitmap); ) // prevent virtual function hiding virtual void SetLabel(const wxString& label) @@ -107,8 +138,6 @@ protected: #include "wx/cocoa/bmpbuttn.h" #elif defined(__WXPM__) #include "wx/os2/bmpbuttn.h" -#elif defined(__WXPALMOS__) - #include "wx/palmos/bmpbuttn.h" #endif #endif // wxUSE_BMPBUTTON