1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/bmpbuttn.h
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_
15 #include "wx/button.h"
16 #include "wx/bitmap.h"
19 class WXDLLIMPEXP_CORE wxBitmapButton
: public wxBitmapButtonBase
22 wxBitmapButton() { Init(); }
24 wxBitmapButton(wxWindow
*parent
,
26 const wxBitmap
& bitmap
,
27 const wxPoint
& pos
= wxDefaultPosition
,
28 const wxSize
& size
= wxDefaultSize
,
29 long style
= wxBU_AUTODRAW
,
30 const wxValidator
& validator
= wxDefaultValidator
,
31 const wxString
& name
= wxButtonNameStr
)
35 Create(parent
, id
, bitmap
, pos
, size
, style
, validator
, name
);
38 bool Create(wxWindow
*parent
,
40 const wxBitmap
& bitmap
,
41 const wxPoint
& pos
= wxDefaultPosition
,
42 const wxSize
& size
= wxDefaultSize
,
43 long style
= wxBU_AUTODRAW
,
44 const wxValidator
& validator
= wxDefaultValidator
,
45 const wxString
& name
= wxButtonNameStr
);
47 // override some base class methods to automatically synthesize the
48 // disabled bitmap if it wasn't set by the user
49 virtual void SetBitmapLabel(const wxBitmap
& bitmap
);
50 virtual void SetBitmapFocus(const wxBitmap
& focus
);
51 virtual void SetBitmapDisabled(const wxBitmap
& disabled
);
52 virtual void SetBitmapHover(const wxBitmap
& hover
);
55 virtual bool SetBackgroundColour(const wxColour
& colour
);
56 virtual bool MSWOnDraw(WXDRAWITEMSTRUCT
*item
);
57 virtual void DrawFace( WXHDC dc
, int left
, int top
, int right
, int bottom
, bool sel
);
58 virtual void DrawButtonFocus( WXHDC dc
, int left
, int top
, int right
, int bottom
, bool sel
);
59 virtual void DrawButtonDisable( WXHDC dc
, int left
, int top
, int right
, int bottom
, bool with_marg
);
62 // common part of all ctors
66 m_hoverSetByUser
= false;
69 // reimplement some base class virtuals
70 virtual wxSize
DoGetBestSize() const;
71 virtual WXDWORD
MSWGetStyle(long style
, WXDWORD
*exstyle
) const;
74 // invalidate m_brushDisabled when system colours change
75 void OnSysColourChanged(wxSysColourChangedEvent
& event
);
77 // change the currently bitmap if we have a hover one
78 void OnMouseEnterOrLeave(wxMouseEvent
& event
);
81 // the brush we use to draw disabled buttons
82 wxBrush m_brushDisabled
;
84 // true if m_bmpDisabled was set by user, false if we created it ourselves
86 bool m_disabledSetByUser
;
88 // true if m_bmpHover was set by user, false if it was set from m_bmpFocus
89 bool m_hoverSetByUser
;
93 DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton
)
96 #endif // _WX_BMPBUTTN_H_