1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxBitmapButton class
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_BMPBUTTN_H_
13 #define _WX_BMPBUTTN_H_
16 #pragma interface "bmpbuttn.h"
19 #include "wx/button.h"
20 #include "wx/bitmap.h"
22 WXDLLEXPORT_DATA(extern const char*) wxButtonNameStr
;
24 #define wxDEFAULT_BUTTON_MARGIN 4
26 class WXDLLEXPORT wxBitmapButton
: public wxButton
28 DECLARE_DYNAMIC_CLASS(wxBitmapButton
)
32 inline wxBitmapButton(wxWindow
*parent
, wxWindowID id
, const wxBitmap
& bitmap
,
33 const wxPoint
& pos
= wxDefaultPosition
,
34 const wxSize
& size
= wxDefaultSize
, long style
= wxBU_AUTODRAW
,
35 const wxValidator
& validator
= wxDefaultValidator
,
36 const wxString
& name
= wxButtonNameStr
)
38 Create(parent
, id
, bitmap
, pos
, size
, style
, validator
, name
);
41 bool Create(wxWindow
*parent
, wxWindowID id
, const wxBitmap
& bitmap
,
42 const wxPoint
& pos
= wxDefaultPosition
,
43 const wxSize
& size
= wxDefaultSize
, long style
= wxBU_AUTODRAW
,
44 const wxValidator
& validator
= wxDefaultValidator
,
45 const wxString
& name
= wxButtonNameStr
);
47 virtual void SetLabel(const wxBitmap
& bitmap
)
49 SetBitmapLabel(bitmap
);
51 virtual void SetLabel(const wxString
& label
)
53 wxControl::SetLabel(label
);
56 virtual void SetBitmapLabel(const wxBitmap
& bitmap
);
58 inline wxBitmap
& GetBitmapLabel() const { return (wxBitmap
&) m_buttonBitmap
; }
59 inline wxBitmap
& GetBitmapSelected() const { return (wxBitmap
&) m_buttonBitmapSelected
; }
60 inline wxBitmap
& GetBitmapFocus() const { return (wxBitmap
&) m_buttonBitmapFocus
; }
61 inline wxBitmap
& GetBitmapDisabled() const { return (wxBitmap
&) m_buttonBitmapDisabled
; }
63 void SetBitmapSelected(const wxBitmap
& sel
);
64 void SetBitmapFocus(const wxBitmap
& focus
);
65 void SetBitmapDisabled(const wxBitmap
& disabled
);
67 inline void SetMargins(int x
, int y
) { m_marginX
= x
; m_marginY
= y
; }
68 inline int GetMarginX() { return m_marginX
; }
69 inline int GetMarginY() { return m_marginY
; }
73 virtual void ChangeBackgroundColour();
74 virtual wxSize
DoGetBestSize() const;
77 wxBitmap m_buttonBitmapFocus
;
78 wxBitmap m_buttonBitmap
;
79 wxBitmap m_buttonBitmapOriginal
; // May be different from m_buttonBitmap
80 // if m_buttonBitmap has been changed
81 // to reflect button background colour
82 wxBitmap m_buttonBitmapSelected
;
83 wxBitmap m_buttonBitmapSelectedOriginal
;
85 wxBitmap m_buttonBitmapDisabled
;
86 wxBitmap m_buttonBitmapDisabledOriginal
;
91 WXPixmap m_insensPixmap
;