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 34extern WXDLLIMPEXP_DATA_CORE(const wxChar) wxComboBoxNameStr[]; 35 36class WXDLLEXPORT wxGenericComboCtrl : public wxComboCtrlBase 37{ 38public: 39 // ctors and such 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) 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 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 81protected: 82 83 // Mandatory virtuals 84 virtual void OnResize(); 85 86 // Event handlers 87 void OnPaintEvent( wxPaintEvent& event ); 88 void OnMouseEvent( wxMouseEvent& event ); 89 90private: 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 104class WXDLLEXPORT wxComboCtrl : public wxGenericComboCtrl 105{ 106public: 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) 117 : wxGenericComboCtrl() 118 { 119 (void)Create(parent, id, value, pos, size, style, validator, name); 120 } 121 122 virtual ~wxComboCtrl() {} 123 124protected: 125 126private: 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