1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/msw/button.h 3// Purpose: wxButton class 4// Author: Julian Smart 5// Modified by: 6// Created: 01/02/97 7// RCS-ID: $Id: button.h 37393 2006-02-08 21:47:09Z VZ $ 8// Copyright: (c) Julian Smart 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_BUTTON_H_ 13#define _WX_BUTTON_H_ 14 15// ---------------------------------------------------------------------------- 16// Pushbutton 17// ---------------------------------------------------------------------------- 18 19class WXDLLEXPORT wxButton : public wxButtonBase 20{ 21public: 22 wxButton() { } 23 wxButton(wxWindow *parent, 24 wxWindowID id, 25 const wxString& label = wxEmptyString, 26 const wxPoint& pos = wxDefaultPosition, 27 const wxSize& size = wxDefaultSize, 28 long style = 0, 29 const wxValidator& validator = wxDefaultValidator, 30 const wxString& name = wxButtonNameStr) 31 { 32 Create(parent, id, label, pos, size, style, validator, name); 33 } 34 35 bool Create(wxWindow *parent, 36 wxWindowID id, 37 const wxString& label = wxEmptyString, 38 const wxPoint& pos = wxDefaultPosition, 39 const wxSize& size = wxDefaultSize, 40 long style = 0, 41 const wxValidator& validator = wxDefaultValidator, 42 const wxString& name = wxButtonNameStr); 43 44 virtual ~wxButton(); 45 46 virtual void SetDefault(); 47 48 // implementation from now on 49 virtual void Command(wxCommandEvent& event); 50 virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); 51 virtual bool MSWCommand(WXUINT param, WXWORD id); 52 53 // coloured buttons support 54 virtual bool SetBackgroundColour(const wxColour &colour); 55 virtual bool SetForegroundColour(const wxColour &colour); 56 57 virtual bool MSWOnDraw(WXDRAWITEMSTRUCT *item); 58 virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; 59 60private: 61 void MakeOwnerDrawn(); 62 63protected: 64 // send a notification event, return true if processed 65 bool SendClickEvent(); 66 67 // default button handling 68 void SetTmpDefault(); 69 void UnsetTmpDefault(); 70 71 // set or unset BS_DEFPUSHBUTTON style 72 static void SetDefaultStyle(wxButton *btn, bool on); 73 74 // usually overridden base class virtuals 75 virtual wxSize DoGetBestSize() const; 76 77private: 78 DECLARE_DYNAMIC_CLASS_NO_COPY(wxButton) 79}; 80 81#endif 82 // _WX_BUTTON_H_ 83