]> git.saurik.com Git - wxWidgets.git/blob - src/qt/listbox.cpp
Improved selection mode handling in wxGrid::SelectBlock
[wxWidgets.git] / src / qt / listbox.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: listbox.cpp
3 // Purpose: wxListBox
4 // Author: AUTHOR
5 // Modified by:
6 // Created: ??/??/98
7 // RCS-ID: $Id$
8 // Copyright: (c) AUTHOR
9 // Licence: wxWindows licence
10 ///////////////////////////////////////////////////////////////////////////////
11
12 #ifdef __GNUG__
13 #pragma implementation "listbox.h"
14 #endif
15
16 #include "wx/listbox.h"
17
18 #include "wx/dynarray.h"
19 #include "wx/log.h"
20
21 IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl)
22
23 // ============================================================================
24 // list box control implementation
25 // ============================================================================
26
27 // Listbox item
28 wxListBox::wxListBox()
29 {
30 m_noItems = 0;
31 m_selected = 0;
32 }
33
34 bool wxListBox::Create(wxWindow *parent, wxWindowID id,
35 const wxPoint& pos,
36 const wxSize& size,
37 int n, const wxString choices[],
38 long style,
39 const wxValidator& validator,
40 const wxString& name)
41 {
42 m_noItems = n;
43 m_selected = 0;
44
45 SetName(name);
46 SetValidator(validator);
47
48 if (parent) parent->AddChild(this);
49
50 wxSystemSettings settings;
51 SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
52
53 m_windowId = ( id == -1 ) ? (int)NewControlId() : id;
54
55 // TODO create listbox
56
57 return FALSE;
58 }
59
60 wxListBox::~wxListBox()
61 {
62 }
63
64 void wxListBox::SetupColours()
65 {
66 SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOW));
67 }
68
69 void wxListBox::SetFirstItem(int N)
70 {
71 // TODO
72 }
73
74 void wxListBox::SetFirstItem(const wxString& s)
75 {
76 // TODO
77 }
78
79 void wxListBox::Delete(int N)
80 {
81 m_noItems --;
82 // TODO
83 }
84
85 void wxListBox::Append(const wxString& item)
86 {
87 m_noItems ++;
88
89 // TODO
90 }
91
92 void wxListBox::Append(const wxString& item, char *Client_data)
93 {
94 m_noItems ++;
95
96 // TODO
97 }
98
99 void wxListBox::Set(int n, const wxString *choices, char** clientData)
100 {
101 m_noItems = n;
102
103 // TODO
104 }
105
106 int wxListBox::FindString(const wxString& s) const
107 {
108 // TODO
109 return -1;
110 }
111
112 void wxListBox::Clear()
113 {
114 m_noItems = 0;
115 // TODO
116 }
117
118 void wxListBox::SetSelection(int N, bool select)
119 {
120 // TODO
121 }
122
123 bool wxListBox::Selected(int N) const
124 {
125 // TODO
126 return FALSE;
127 }
128
129 void wxListBox::Deselect(int N)
130 {
131 // TODO
132 }
133
134 char *wxListBox::GetClientData(int N) const
135 {
136 // TODO
137 return (char *)NULL;
138 }
139
140 void wxListBox::SetClientData(int N, char *Client_data)
141 {
142 // TODO
143 }
144
145 // Return number of selections and an array of selected integers
146 int wxListBox::GetSelections(wxArrayInt& aSelections) const
147 {
148 aSelections.Empty();
149
150 /* TODO
151 if ((m_windowStyle & wxLB_MULTIPLE) || (m_windowStyle & wxLB_EXTENDED))
152 {
153 int no_sel = ??
154 for ( int n = 0; n < no_sel; n++ )
155 aSelections.Add(??);
156
157 return no_sel;
158 }
159 else // single-selection listbox
160 {
161 aSelections.Add(??);
162
163 return 1;
164 }
165 */
166 return 0;
167 }
168
169 // Get single selection, for single choice list items
170 int wxListBox::GetSelection() const
171 {
172 // TODO
173 return -1;
174 }
175
176 // Find string for position
177 wxString wxListBox::GetString(int N) const
178 {
179 // TODO
180 return wxString("");
181 }
182
183 void wxListBox::SetSize(int x, int y, int width, int height, int sizeFlags)
184 {
185 // TODO
186 }
187
188 void wxListBox::InsertItems(int nItems, const wxString items[], int pos)
189 {
190 m_noItems += nItems;
191
192 // TODO
193 }
194
195 void wxListBox::SetString(int N, const wxString& s)
196 {
197 // TODO
198 }
199
200 int wxListBox::Number () const
201 {
202 return m_noItems;
203 }
204
205 // For single selection items only
206 wxString wxListBox::GetStringSelection () const
207 {
208 int sel = GetSelection ();
209 if (sel > -1)
210 return this->GetString (sel);
211 else
212 return wxString("");
213 }
214
215 bool wxListBox::SetStringSelection (const wxString& s, bool flag)
216 {
217 int sel = FindString (s);
218 if (sel > -1)
219 {
220 SetSelection (sel, flag);
221 return TRUE;
222 }
223 else
224 return FALSE;
225 }
226
227 void wxListBox::Command (wxCommandEvent & event)
228 {
229 if (event.m_extraLong)
230 SetSelection (event.m_commandInt);
231 else
232 {
233 Deselect (event.m_commandInt);
234 return;
235 }
236 ProcessCommand (event);
237 }
238