]> git.saurik.com Git - wxWidgets.git/blob - include/wx/msw/bmpbuttn.h
added missing parentheses in a couple of GetHxxxOf() macros
[wxWidgets.git] / include / wx / msw / bmpbuttn.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/bmpbuttn.h
3 // Purpose: wxBitmapButton class
4 // Author: Julian Smart
5 // Modified by:
6 // Created: 01/02/97
7 // RCS-ID: $Id$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_BMPBUTTN_H_
13 #define _WX_BMPBUTTN_H_
14
15 #include "wx/button.h"
16 #include "wx/bitmap.h"
17 #include "wx/brush.h"
18
19 class WXDLLIMPEXP_CORE wxBitmapButton : public wxBitmapButtonBase
20 {
21 public:
22 wxBitmapButton() { Init(); }
23
24 wxBitmapButton(wxWindow *parent,
25 wxWindowID id,
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)
32 {
33 Init();
34
35 Create(parent, id, bitmap, pos, size, style, validator, name);
36 }
37
38 bool Create(wxWindow *parent,
39 wxWindowID id,
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);
46
47 // Implementation
48 virtual bool SetBackgroundColour(const wxColour& colour);
49 virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item);
50 virtual void DrawFace( WXHDC dc, int left, int top, int right, int bottom, bool sel );
51 virtual void DrawButtonFocus( WXHDC dc, int left, int top, int right, int bottom, bool sel );
52 virtual void DrawButtonDisable( WXHDC dc, int left, int top, int right, int bottom, bool with_marg );
53
54 protected:
55 // common part of all ctors
56 void Init()
57 {
58 m_disabledSetByUser =
59 m_hoverSetByUser = false;
60 }
61
62 // reimplement some base class virtuals
63 virtual wxSize DoGetBestSize() const;
64 virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
65
66 virtual void DoSetBitmap(const wxBitmap& bitmap, State which);
67
68
69 // invalidate m_brushDisabled when system colours change
70 void OnSysColourChanged(wxSysColourChangedEvent& event);
71
72 // change the currently bitmap if we have a hover one
73 void OnMouseEnterOrLeave(wxMouseEvent& event);
74
75
76 // the brush we use to draw disabled buttons
77 wxBrush m_brushDisabled;
78
79 // true if disabled bitmap was set by user, false if we created it
80 // ourselves from the normal one
81 bool m_disabledSetByUser;
82
83 // true if hover bitmap was set by user, false if it was set from focused
84 // one
85 bool m_hoverSetByUser;
86
87
88 DECLARE_EVENT_TABLE()
89 DECLARE_DYNAMIC_CLASS_NO_COPY(wxBitmapButton)
90 };
91
92 #endif // _WX_BMPBUTTN_H_