1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/generic/combo.h 3 // Purpose: Generic wxComboCtrl 4 // Author: Jaakko Salli 5 // Modified by: 6 // Created: Apr-30-2006 7 // RCS-ID: $Id: combo.h 61872 2009-09-09 22:37:05Z VZ $ 8 // Copyright: (c) Jaakko Salli 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_GENERIC_COMBOCTRL_H_ 13 #define _WX_GENERIC_COMBOCTRL_H_ 14 15 #if wxUSE_COMBOCTRL 16 17 // Only define generic if native doesn't have all the features 18 #if !defined(wxCOMBOCONTROL_FULLY_FEATURED) 19 20 // ---------------------------------------------------------------------------- 21 // Generic wxComboCtrl 22 // ---------------------------------------------------------------------------- 23 24 #if defined(__WXUNIVERSAL__) 25 26 // all actions of single line text controls are supported 27 28 // popup/dismiss the choice window 29 #define wxACTION_COMBOBOX_POPUP wxT("popup") 30 #define wxACTION_COMBOBOX_DISMISS wxT("dismiss") 31 32 #endif 33 34 extern WXDLLIMPEXP_DATA_CORE(const wxChar) wxComboBoxNameStr[]; 35 36 class WXDLLEXPORT wxGenericComboCtrl : public wxComboCtrlBase 37 { 38 public: 39 // ctors and such wxGenericComboCtrl()40 wxGenericComboCtrl() : wxComboCtrlBase() { Init(); } 41 42 wxGenericComboCtrl(wxWindow *parent, 43 wxWindowID id = wxID_ANY, 44 const wxString& value = wxEmptyString, 45 const wxPoint& pos = wxDefaultPosition, 46 const wxSize& size = wxDefaultSize, 47 long style = 0, 48 const wxValidator& validator = wxDefaultValidator, 49 const wxString& name = wxComboBoxNameStr) wxComboCtrlBase()50 : wxComboCtrlBase() 51 { 52 Init(); 53 54 (void)Create(parent, id, value, pos, size, style, validator, name); 55 } 56 57 bool Create(wxWindow *parent, 58 wxWindowID id = wxID_ANY, 59 const wxString& value = wxEmptyString, 60 const wxPoint& pos = wxDefaultPosition, 61 const wxSize& size = wxDefaultSize, 62 long style = 0, 63 const wxValidator& validator = wxDefaultValidator, 64 const wxString& name = wxComboBoxNameStr); 65 66 virtual ~wxGenericComboCtrl(); 67 68 void SetCustomPaintWidth( int width ); 69 70 virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const; 71 GetFeatures()72 static int GetFeatures() { return wxComboCtrlFeatures::All; } 73 74 #if defined(__WXUNIVERSAL__) 75 // we have our own input handler and our own actions 76 virtual bool PerformAction(const wxControlAction& action, 77 long numArg = 0l, 78 const wxString& strArg = wxEmptyString); 79 #endif 80 81 protected: 82 83 // Mandatory virtuals 84 virtual void OnResize(); 85 86 // Event handlers 87 void OnPaintEvent( wxPaintEvent& event ); 88 void OnMouseEvent( wxMouseEvent& event ); 89 90 private: 91 void Init(); 92 93 DECLARE_EVENT_TABLE() 94 95 DECLARE_DYNAMIC_CLASS(wxGenericComboCtrl) 96 }; 97 98 99 #ifndef _WX_COMBOCONTROL_H_ 100 101 // If native wxComboCtrl was not defined, then prepare a simple 102 // front-end so that wxRTTI works as expected. 103 104 class WXDLLEXPORT wxComboCtrl : public wxGenericComboCtrl 105 { 106 public: wxComboCtrl()107 wxComboCtrl() : wxGenericComboCtrl() {} 108 109 wxComboCtrl(wxWindow *parent, 110 wxWindowID id = wxID_ANY, 111 const wxString& value = wxEmptyString, 112 const wxPoint& pos = wxDefaultPosition, 113 const wxSize& size = wxDefaultSize, 114 long style = 0, 115 const wxValidator& validator = wxDefaultValidator, 116 const wxString& name = wxComboBoxNameStr) wxGenericComboCtrl()117 : wxGenericComboCtrl() 118 { 119 (void)Create(parent, id, value, pos, size, style, validator, name); 120 } 121 ~wxComboCtrl()122 virtual ~wxComboCtrl() {} 123 124 protected: 125 126 private: 127 DECLARE_DYNAMIC_CLASS(wxComboCtrl) 128 }; 129 130 #endif // _WX_COMBOCONTROL_H_ 131 132 #else 133 134 #define wxGenericComboCtrl wxComboCtrl 135 136 #endif // !defined(wxCOMBOCONTROL_FULLY_FEATURED) 137 138 #endif // wxUSE_COMBOCTRL 139 #endif 140 // _WX_GENERIC_COMBOCTRL_H_ 141