- : m_bmpNormal(), m_bmpSelected(), m_bmpFocus(), m_bmpDisabled()
- , m_marginX(0), m_marginY(0)
- { }
-
- // set the bitmaps
- void SetBitmapLabel(const wxBitmap& bitmap)
- { m_bmpNormal = bitmap; OnSetBitmap(); }
- void SetBitmapSelected(const wxBitmap& sel)
- { m_bmpSelected = sel; OnSetBitmap(); };
- void SetBitmapFocus(const wxBitmap& focus)
- { m_bmpFocus = focus; OnSetBitmap(); };
- void SetBitmapDisabled(const wxBitmap& disabled)
- { m_bmpDisabled = disabled; OnSetBitmap(); };
- void SetLabel(const wxBitmap& bitmap)
- { SetBitmapLabel(bitmap); }
-
- // retrieve the bitmaps
- const wxBitmap& GetBitmapLabel() const { return m_bmpNormal; }
- const wxBitmap& GetBitmapSelected() const { return m_bmpSelected; }
- const wxBitmap& GetBitmapFocus() const { return m_bmpFocus; }
- const wxBitmap& GetBitmapDisabled() const { return m_bmpDisabled; }
- wxBitmap& GetBitmapLabel() { return m_bmpNormal; }
- wxBitmap& GetBitmapSelected() { return m_bmpSelected; }
- wxBitmap& GetBitmapFocus() { return m_bmpFocus; }
- wxBitmap& GetBitmapDisabled() { return m_bmpDisabled; }
+ {
+#ifndef wxHAS_BUTTON_BITMAP
+ m_marginX =
+ m_marginY = 0;
+#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);
+