]> git.saurik.com Git - wxWidgets.git/blob - include/wx/os2/listbox.h
Sorting fixes to wxUniv wxCombo/ListBox [part of bug #1040593].
[wxWidgets.git] / include / wx / os2 / listbox.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: listbox.h
3 // Purpose: wxListBox class
4 // Author: David Webster
5 // Modified by:
6 // Created: 10/09/99
7 // RCS-ID: $Id$
8 // Copyright: (c) David Webster
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_LISTBOX_H_
13 #define _WX_LISTBOX_H_
14
15 // ----------------------------------------------------------------------------
16 // simple types
17 // ----------------------------------------------------------------------------
18
19 #if wxUSE_OWNER_DRAWN
20 class WXDLLEXPORT wxOwnerDrawn;
21
22 // define the array of list box items
23 #include <wx/dynarray.h>
24
25 WX_DEFINE_EXPORTED_ARRAY(wxOwnerDrawn *, wxListBoxItemsArray);
26 #endif // wxUSE_OWNER_DRAWN
27
28 // forward decl for GetSelections()
29 class wxArrayInt;
30
31 // ----------------------------------------------------------------------------
32 // List box control
33 // ----------------------------------------------------------------------------
34
35 class WXDLLEXPORT wxListBox : public wxListBoxBase
36 {
37 public:
38 // ctors and such
39 wxListBox();
40 wxListBox( wxWindow* pParent
41 ,wxWindowID vId
42 ,const wxPoint& rPos = wxDefaultPosition
43 ,const wxSize& rSize = wxDefaultSize
44 ,int n = 0
45 ,const wxString asChoices[] = NULL
46 ,long lStyle = 0
47 ,const wxValidator& rValidator = wxDefaultValidator
48 ,const wxString& rsName = wxListBoxNameStr)
49 {
50 Create( pParent
51 ,vId
52 ,rPos
53 ,rSize
54 ,n
55 ,asChoices
56 ,lStyle
57 ,rValidator
58 ,rsName
59 );
60 }
61 wxListBox( wxWindow* pParent
62 ,wxWindowID vId
63 ,const wxPoint& rPos
64 ,const wxSize& rSize
65 ,const wxArrayString& asChoices
66 ,long lStyle = 0
67 ,const wxValidator& rValidator = wxDefaultValidator
68 ,const wxString& rsName = wxListBoxNameStr)
69 {
70 Create( pParent
71 ,vId
72 ,rPos
73 ,rSize
74 ,asChoices
75 ,lStyle
76 ,rValidator
77 ,rsName
78 );
79 }
80
81 bool Create( wxWindow* pParent
82 ,wxWindowID vId
83 ,const wxPoint& rPos = wxDefaultPosition
84 ,const wxSize& rSize = wxDefaultSize
85 ,int n = 0
86 ,const wxString asChoices[] = NULL
87 ,long lStyle = 0
88 ,const wxValidator& rValidator = wxDefaultValidator
89 ,const wxString& rsName = wxListBoxNameStr
90 );
91 bool Create( wxWindow* pParent
92 ,wxWindowID vId
93 ,const wxPoint& rPos
94 ,const wxSize& rSize
95 ,const wxArrayString& asChoices
96 ,long lStyle = 0
97 ,const wxValidator& rValidator = wxDefaultValidator
98 ,const wxString& rsName = wxListBoxNameStr
99 );
100
101 virtual ~wxListBox();
102
103 //
104 // Implement base class pure virtuals
105 //
106 virtual void Clear(void);
107 virtual void Delete(int n);
108
109 virtual int GetCount(void) const;
110 virtual wxString GetString(int n) const;
111 virtual void SetString( int n
112 ,const wxString& rsString
113 );
114 virtual int FindString(const wxString& rsString) const;
115
116 virtual bool IsSelected(int n) const;
117 virtual void SetSelection( int n
118 ,bool bSelect = TRUE
119 );
120 virtual int GetSelection(void) const;
121 virtual int GetSelections(wxArrayInt& raSelections) const;
122
123 virtual int DoAppend(const wxString& rsItem);
124 virtual void DoInsertItems( const wxArrayString& raItems
125 ,int rPos
126 );
127 virtual void DoSetItems( const wxArrayString& raItems
128 ,void ** ppClientData
129 );
130
131 virtual void DoSetFirstItem(int n);
132
133 virtual void DoSetItemClientData( int n
134 ,void* pClientData
135 );
136 virtual void* DoGetItemClientData(int n) const;
137 virtual void DoSetItemClientObject( int n
138 ,wxClientData* pClientData
139 );
140 virtual wxClientData* DoGetItemClientObject(int n) const;
141
142 //
143 // wxCheckListBox support
144 //
145 #if wxUSE_OWNER_DRAWN
146 long OS2OnMeasure(WXMEASUREITEMSTRUCT *item);
147 bool OS2OnDraw(WXDRAWITEMSTRUCT *item);
148
149 virtual wxOwnerDrawn* CreateItem(size_t n);
150 wxOwnerDrawn* GetItem(size_t n) const { return m_aItems[n]; }
151 int GetItemIndex(wxOwnerDrawn *item) const { return m_aItems.Index(item); }
152 #endif // wxUSE_OWNER_DRAWN
153
154 bool OS2Command( WXUINT uParam
155 ,WXWORD wId
156 );
157 virtual void SetupColours(void);
158
159 protected:
160
161 bool HasMultipleSelection(void) const;
162 virtual wxSize DoGetBestSize(void) const;
163
164 int m_nNumItems;
165 int m_nSelected;
166
167
168 #if wxUSE_OWNER_DRAWN
169 //
170 // Control items
171 //
172 wxListBoxItemsArray m_aItems;
173 #endif
174
175 private:
176 DECLARE_DYNAMIC_CLASS(wxListBox)
177 }; // end of wxListBox
178
179 #endif
180 // _WX_LISTBOX_H_