1. more proper fix for wxChoice/wxComboBox height problems than in 2,2 branch
[wxWidgets.git] / include / wx / msw / combobox.h
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$
8 // Copyright: (c) Julian Smart
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_COMBOBOX_H_
13 #define _WX_COMBOBOX_H_
14
15 #ifdef __GNUG__
16 #pragma interface "combobox.h"
17 #endif
18
19 #include "wx/choice.h"
20
21 #if wxUSE_COMBOBOX
22
23 WXDLLEXPORT_DATA(extern const wxChar*) wxComboBoxNameStr;
24 WXDLLEXPORT_DATA(extern const wxChar*) wxEmptyString;
25
26 // ----------------------------------------------------------------------------
27 // Combobox control
28 // ----------------------------------------------------------------------------
29
30 class WXDLLEXPORT wxComboBox: public wxChoice
31 {
32 DECLARE_DYNAMIC_CLASS(wxComboBox)
33
34 public:
35 wxComboBox() { }
36
37 wxComboBox(wxWindow *parent, wxWindowID id,
38 const wxString& value = wxEmptyString,
39 const wxPoint& pos = wxDefaultPosition,
40 const wxSize& size = wxDefaultSize,
41 int n = 0, const wxString choices[] = NULL,
42 long style = 0,
43 const wxValidator& validator = wxDefaultValidator,
44 const wxString& name = wxComboBoxNameStr)
45 {
46 Create(parent, id, value, pos, size, n, choices, style, validator, name);
47 }
48
49 bool Create(wxWindow *parent,
50 wxWindowID id,
51 const wxString& value = wxEmptyString,
52 const wxPoint& pos = wxDefaultPosition,
53 const wxSize& size = wxDefaultSize,
54 int n = 0,
55 const wxString choices[] = NULL,
56 long style = 0,
57 const wxValidator& validator = wxDefaultValidator,
58 const wxString& name = wxComboBoxNameStr);
59
60 // List functions: see wxChoice
61
62 // Text field functions
63 wxString GetValue() const { return GetLabel(); }
64 virtual void SetValue(const wxString& value);
65
66 // Clipboard operations
67 virtual void Copy();
68 virtual void Cut();
69 virtual void Paste();
70 virtual void SetInsertionPoint(long pos);
71 virtual void SetInsertionPointEnd();
72 virtual long GetInsertionPoint() const;
73 virtual long GetLastPosition() const;
74 virtual void Replace(long from, long to, const wxString& value);
75 virtual void Remove(long from, long to);
76 virtual void SetSelection(int n) { wxChoice::SetSelection(n); }
77 virtual void SetSelection(long from, long to);
78 virtual void SetEditable(bool editable);
79
80 // implementation only from now on
81 virtual bool MSWCommand(WXUINT param, WXWORD id);
82 bool MSWProcessEditMsg(WXUINT msg, WXWPARAM wParam, WXLPARAM lParam);
83 virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
84 WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
85
86 WXHWND GetEditHWND() const;
87
88 protected:
89 virtual wxSize DoGetBestSize() const;
90 };
91
92 #endif // wxUSE_COMBOBOX
93 #endif
94 // _WX_COMBOBOX_H_