1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/msw/combobox.h 3 // Purpose: wxComboBox class 4 // Author: Julian Smart 5 // Modified by: 6 // Created: 01/02/97 7 // RCS-ID: $Id: combobox.h 45818 2007-05-05 13:15:47Z RR $ 8 // Copyright: (c) Julian Smart 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_COMBOBOX_H_ 13 #define _WX_COMBOBOX_H_ 14 15 #include "wx/choice.h" 16 17 #if wxUSE_COMBOBOX 18 19 // ---------------------------------------------------------------------------- 20 // Combobox control 21 // ---------------------------------------------------------------------------- 22 23 class WXDLLEXPORT wxComboBox: public wxChoice 24 { 25 public: wxComboBox()26 wxComboBox() { } 27 28 wxComboBox(wxWindow *parent, wxWindowID id, 29 const wxString& value = wxEmptyString, 30 const wxPoint& pos = wxDefaultPosition, 31 const wxSize& size = wxDefaultSize, 32 int n = 0, const wxString choices[] = NULL, 33 long style = 0, 34 const wxValidator& validator = wxDefaultValidator, 35 const wxString& name = wxComboBoxNameStr) 36 { 37 Create(parent, id, value, pos, size, n, choices, style, validator, name); 38 } 39 wxComboBox(wxWindow *parent, wxWindowID id, 40 const wxString& value, 41 const wxPoint& pos, 42 const wxSize& size, 43 const wxArrayString& choices, 44 long style = 0, 45 const wxValidator& validator = wxDefaultValidator, 46 const wxString& name = wxComboBoxNameStr) 47 { 48 Create(parent, id, value, pos, size, choices, style, validator, name); 49 } 50 51 bool Create(wxWindow *parent, 52 wxWindowID id, 53 const wxString& value = wxEmptyString, 54 const wxPoint& pos = wxDefaultPosition, 55 const wxSize& size = wxDefaultSize, 56 int n = 0, 57 const wxString choices[] = NULL, 58 long style = 0, 59 const wxValidator& validator = wxDefaultValidator, 60 const wxString& name = wxComboBoxNameStr); 61 bool Create(wxWindow *parent, 62 wxWindowID id, 63 const wxString& value, 64 const wxPoint& pos, 65 const wxSize& size, 66 const wxArrayString& choices, 67 long style = 0, 68 const wxValidator& validator = wxDefaultValidator, 69 const wxString& name = wxComboBoxNameStr); 70 71 // List functions: see wxChoice 72 73 // Text field functions 74 virtual wxString GetValue() const; 75 virtual void SetValue(const wxString& value); 76 77 // Clipboard operations 78 virtual void Copy(); 79 virtual void Cut(); 80 virtual void Paste(); 81 virtual bool CanCopy() const; 82 virtual bool CanCut() const; 83 virtual bool CanPaste() const; 84 virtual void SetInsertionPoint(long pos); 85 virtual void SetInsertionPointEnd(); 86 virtual long GetInsertionPoint() const; 87 virtual wxTextPos GetLastPosition() const; 88 virtual void Replace(long from, long to, const wxString& value); 89 virtual void Remove(long from, long to); SetSelection(int n)90 virtual void SetSelection(int n) { wxChoice::SetSelection(n); } 91 virtual void SetSelection(long from, long to); GetSelection()92 virtual int GetSelection() const { return wxChoice::GetSelection(); } 93 virtual void GetSelection(long* from, long* to) const; 94 virtual void SetEditable(bool editable); 95 96 virtual void Undo(); 97 virtual void Redo(); 98 virtual bool CanUndo() const; 99 virtual bool CanRedo() const; 100 virtual void SelectAll(); 101 virtual bool IsEditable() const; 102 virtual bool HasSelection() const; 103 104 // implementation only from now on 105 virtual bool MSWCommand(WXUINT param, WXWORD id); 106 bool MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam); 107 virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); 108 bool MSWShouldPreProcessMessage(WXMSG *pMsg); 109 110 WXHWND GetEditHWND() const; 111 112 // Standard event handling 113 void OnCut(wxCommandEvent& event); 114 void OnCopy(wxCommandEvent& event); 115 void OnPaste(wxCommandEvent& event); 116 void OnUndo(wxCommandEvent& event); 117 void OnRedo(wxCommandEvent& event); 118 void OnDelete(wxCommandEvent& event); 119 void OnSelectAll(wxCommandEvent& event); 120 121 void OnUpdateCut(wxUpdateUIEvent& event); 122 void OnUpdateCopy(wxUpdateUIEvent& event); 123 void OnUpdatePaste(wxUpdateUIEvent& event); 124 void OnUpdateUndo(wxUpdateUIEvent& event); 125 void OnUpdateRedo(wxUpdateUIEvent& event); 126 void OnUpdateDelete(wxUpdateUIEvent& event); 127 void OnUpdateSelectAll(wxUpdateUIEvent& event); 128 129 virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const; 130 131 private: 132 DECLARE_DYNAMIC_CLASS_NO_COPY(wxComboBox) 133 DECLARE_EVENT_TABLE() 134 }; 135 136 #endif // wxUSE_COMBOBOX 137 #endif 138 // _WX_COMBOBOX_H_ 139