1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/control.h 3 // Purpose: wxControl common interface 4 // Author: Vadim Zeitlin 5 // Modified by: 6 // Created: 26.07.99 7 // RCS-ID: $Id: control.h 42816 2006-10-31 08:50:17Z RD $ 8 // Copyright: (c) wxWidgets team 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_CONTROL_H_BASE_ 13 #define _WX_CONTROL_H_BASE_ 14 15 // ---------------------------------------------------------------------------- 16 // headers 17 // ---------------------------------------------------------------------------- 18 19 #include "wx/defs.h" 20 21 #if wxUSE_CONTROLS 22 23 #include "wx/window.h" // base class 24 25 extern WXDLLEXPORT_DATA(const wxChar) wxControlNameStr[]; 26 27 // ---------------------------------------------------------------------------- 28 // wxControl is the base class for all controls 29 // ---------------------------------------------------------------------------- 30 31 class WXDLLEXPORT wxControlBase : public wxWindow 32 { 33 public: wxControlBase()34 wxControlBase() { } 35 36 virtual ~wxControlBase(); 37 38 // Create() function adds the validator parameter 39 bool Create(wxWindow *parent, wxWindowID id, 40 const wxPoint& pos = wxDefaultPosition, 41 const wxSize& size = wxDefaultSize, 42 long style = 0, 43 const wxValidator& validator = wxDefaultValidator, 44 const wxString& name = wxControlNameStr); 45 46 // get the control alignment (left/right/centre, top/bottom/centre) GetAlignment()47 int GetAlignment() const { return m_windowStyle & wxALIGN_MASK; } 48 49 // get the string without mnemonic characters ('&') 50 static wxString GetLabelText(const wxString& label); 51 52 // get just the text of the label, without mnemonic characters ('&') GetLabelText()53 wxString GetLabelText() const { return GetLabelText(GetLabel()); } 54 55 // controls by default inherit the colours of their parents, if a 56 // particular control class doesn't want to do it, it can override 57 // ShouldInheritColours() to return false ShouldInheritColours()58 virtual bool ShouldInheritColours() const { return true; } 59 60 61 // WARNING: this doesn't work for all controls nor all platforms! 62 // 63 // simulates the event of given type (i.e. wxButton::Command() is just as 64 // if the button was clicked) 65 virtual void Command(wxCommandEvent &event); 66 67 virtual void SetLabel( const wxString &label ); 68 virtual bool SetFont(const wxFont& font); 69 70 // wxControl-specific processing after processing the update event 71 virtual void DoUpdateWindowUI(wxUpdateUIEvent& event); 72 73 protected: 74 // creates the control (calls wxWindowBase::CreateBase inside) and adds it 75 // to the list of parents children 76 bool CreateControl(wxWindowBase *parent, 77 wxWindowID id, 78 const wxPoint& pos, 79 const wxSize& size, 80 long style, 81 const wxValidator& validator, 82 const wxString& name); 83 84 // initialize the common fields of wxCommandEvent 85 void InitCommandEvent(wxCommandEvent& event) const; 86 87 DECLARE_NO_COPY_CLASS(wxControlBase) 88 }; 89 90 // ---------------------------------------------------------------------------- 91 // include platform-dependent wxControl declarations 92 // ---------------------------------------------------------------------------- 93 94 #if defined(__WXUNIVERSAL__) 95 #include "wx/univ/control.h" 96 #elif defined(__WXPALMOS__) 97 #include "wx/palmos/control.h" 98 #elif defined(__WXMSW__) 99 #include "wx/msw/control.h" 100 #elif defined(__WXMOTIF__) 101 #include "wx/motif/control.h" 102 #elif defined(__WXGTK20__) 103 #include "wx/gtk/control.h" 104 #elif defined(__WXGTK__) 105 #include "wx/gtk1/control.h" 106 #elif defined(__WXMAC__) 107 #include "wx/mac/control.h" 108 #elif defined(__WXCOCOA__) 109 #include "wx/cocoa/control.h" 110 #elif defined(__WXPM__) 111 #include "wx/os2/control.h" 112 #endif 113 114 #endif // wxUSE_CONTROLS 115 116 #endif 117 // _WX_CONTROL_H_BASE_ 118