#ifndef _WX_BMPBUTTN_H_
#define _WX_BMPBUTTN_H_
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "bmpbuttn.h"
#endif
-#include "wx/button.h"
-
-WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr;
+#include "wx/motif/bmpmotif.h"
#define wxDEFAULT_BUTTON_MARGIN 4
-class WXDLLEXPORT wxBitmapButton: public wxButton
+class WXDLLEXPORT wxBitmapButton: public wxBitmapButtonBase
{
- DECLARE_DYNAMIC_CLASS(wxBitmapButton)
- public:
- wxBitmapButton();
- ~wxBitmapButton();
- inline wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxButtonNameStr)
- {
- Create(parent, id, bitmap, pos, size, style, validator, name);
- }
-
- bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
- const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxButtonNameStr);
-
- virtual void SetLabel(const wxBitmap& bitmap)
- {
- SetBitmapLabel(bitmap);
- }
-
- virtual void SetBitmapLabel(const wxBitmap& bitmap);
-
- inline wxBitmap& GetBitmapLabel() const { return (wxBitmap&) m_buttonBitmap; }
- inline wxBitmap& GetBitmapSelected() const { return (wxBitmap&) m_buttonBitmapSelected; }
- inline wxBitmap& GetBitmapFocus() const { return (wxBitmap&) m_buttonBitmapFocus; }
- inline wxBitmap& GetBitmapDisabled() const { return (wxBitmap&) m_buttonBitmapDisabled; }
-
- void SetBitmapSelected(const wxBitmap& sel);
- void SetBitmapFocus(const wxBitmap& focus);
- void SetBitmapDisabled(const wxBitmap& disabled);
-
- inline void SetMargins(int x, int y) { m_marginX = x; m_marginY = y; }
- inline int GetMarginX() { return m_marginX; }
- inline int GetMarginY() { return m_marginY; }
-
- protected:
- wxBitmap m_buttonBitmap;
- wxBitmap m_buttonBitmapSelected;
- wxBitmap m_buttonBitmapFocus;
- wxBitmap m_buttonBitmapDisabled;
-
- int m_marginX;
- int m_marginY;
-
- WXPixmap m_insensPixmap;
+ DECLARE_DYNAMIC_CLASS(wxBitmapButton)
+public:
+ wxBitmapButton();
+ ~wxBitmapButton();
+ wxBitmapButton(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxButtonNameStr)
+ {
+ Create(parent, id, bitmap, pos, size, style, validator, name);
+ }
+
+ bool Create(wxWindow *parent, wxWindowID id, const wxBitmap& bitmap,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize, long style = wxBU_AUTODRAW,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxButtonNameStr);
+
+ virtual void SetLabel(const wxBitmap& bitmap)
+ {
+ SetBitmapLabel(bitmap);
+ }
+ virtual void SetLabel(const wxString& label)
+ {
+ wxControl::SetLabel(label);
+ }
+
+ virtual void SetBitmapLabel(const wxBitmap& bitmap);
+
+ void SetBitmapSelected(const wxBitmap& sel);
+ void SetBitmapFocus(const wxBitmap& focus);
+ void SetBitmapDisabled(const wxBitmap& disabled);
+
+ // Implementation
+ void DoSetBitmap();
+ virtual void ChangeBackgroundColour();
+ virtual wxSize DoGetBestSize() const;
+
+protected:
+ wxBitmap m_bmpNormalOriginal; // May be different from m_buttonBitmap
+ // if m_buttonBitmap has been changed
+ // to reflect button background colour
+ wxBitmap m_bmpSelectedOriginal;
+ wxBitmap m_bmpDisabledOriginal;
+
+ wxBitmapCache m_bitmapCache;
+
+ WXPixmap m_insensPixmap;
};
#endif
- // _WX_BMPBUTTN_H_
+// _WX_BMPBUTTN_H_