1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/msw/button.h
3 // Purpose: wxButton class
4 // Author: Julian Smart
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
15 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
16 #pragma interface "button.h"
19 // ----------------------------------------------------------------------------
21 // ----------------------------------------------------------------------------
23 class WXDLLEXPORT wxButton
: public wxButtonBase
27 wxButton(wxWindow
*parent
,
29 const wxString
& label
= wxEmptyString
,
30 const wxPoint
& pos
= wxDefaultPosition
,
31 const wxSize
& size
= wxDefaultSize
,
33 const wxValidator
& validator
= wxDefaultValidator
,
34 const wxString
& name
= wxButtonNameStr
)
36 Create(parent
, id
, label
, pos
, size
, style
, validator
, name
);
39 bool Create(wxWindow
*parent
,
41 const wxString
& label
= wxEmptyString
,
42 const wxPoint
& pos
= wxDefaultPosition
,
43 const wxSize
& size
= wxDefaultSize
,
45 const wxValidator
& validator
= wxDefaultValidator
,
46 const wxString
& name
= wxButtonNameStr
);
50 virtual void SetDefault();
52 // implementation from now on
53 virtual void Command(wxCommandEvent
& event
);
54 virtual WXLRESULT
MSWWindowProc(WXUINT nMsg
, WXWPARAM wParam
, WXLPARAM lParam
);
55 virtual bool MSWCommand(WXUINT param
, WXWORD id
);
57 virtual void ApplyParentThemeBackground(const wxColour
& bg
)
59 // avoide switching into owner-drawn mode
60 wxControl::SetBackgroundColour(bg
);
64 // coloured buttons support
65 virtual bool SetBackgroundColour(const wxColour
&colour
);
66 virtual bool SetForegroundColour(const wxColour
&colour
);
68 virtual bool MSWOnDraw(WXDRAWITEMSTRUCT
*item
);
71 void MakeOwnerDrawn();
75 // send a notification event, return true if processed
76 bool SendClickEvent();
78 // default button handling
80 void UnsetTmpDefault();
82 // set or unset BS_DEFPUSHBUTTON style
83 static void SetDefaultStyle(wxButton
*btn
, bool on
);
85 // usually overridden base class virtuals
86 virtual wxSize
DoGetBestSize() const;
87 virtual WXDWORD
MSWGetStyle(long style
, WXDWORD
*exstyle
) const ;
90 DECLARE_DYNAMIC_CLASS_NO_COPY(wxButton
)