]> git.saurik.com Git - wxWidgets.git/blob - src/palmos/listctrl.cpp
in DoSetSize, only call GetPosition if necessary
[wxWidgets.git] / src / palmos / listctrl.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: src/palmos/listctrl.cpp
3 // Purpose: wxListCtrl
4 // Author: William Osborne - minimal working wxPalmOS port
5 // Modified by:
6 // Created: 10/13/04
7 // RCS-ID: $Id$
8 // Copyright: (c) William Osborne
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 // ============================================================================
13 // declarations
14 // ============================================================================
15
16 // ----------------------------------------------------------------------------
17 // headers
18 // ----------------------------------------------------------------------------
19
20 // For compilers that support precompilation, includes "wx.h".
21 #include "wx/wxprec.h"
22
23 #ifdef __BORLANDC__
24 #pragma hdrstop
25 #endif
26
27 #if wxUSE_LISTCTRL
28
29 #ifndef WX_PRECOMP
30 #include "wx/app.h"
31 #include "wx/intl.h"
32 #include "wx/log.h"
33 #include "wx/settings.h"
34 #include "wx/dcclient.h"
35 #include "wx/textctrl.h"
36 #endif
37
38 #include "wx/imaglist.h"
39 #include "wx/listctrl.h"
40
41 BEGIN_EVENT_TABLE(wxListCtrl, wxControl)
42 EVT_PAINT(wxListCtrl::OnPaint)
43 END_EVENT_TABLE()
44
45 // ============================================================================
46 // implementation
47 // ============================================================================
48
49 // ----------------------------------------------------------------------------
50 // wxListCtrl construction
51 // ----------------------------------------------------------------------------
52
53 void wxListCtrl::Init()
54 {
55 }
56
57 bool wxListCtrl::Create(wxWindow *parent,
58 wxWindowID id,
59 const wxPoint& pos,
60 const wxSize& size,
61 long style,
62 const wxValidator& validator,
63 const wxString& name)
64 {
65 return false;
66 }
67
68 void wxListCtrl::UpdateStyle()
69 {
70 }
71
72 void wxListCtrl::FreeAllInternalData()
73 {
74 }
75
76 wxListCtrl::~wxListCtrl()
77 {
78 }
79
80 // ----------------------------------------------------------------------------
81 // set/get/change style
82 // ----------------------------------------------------------------------------
83
84 // Add or remove a single window style
85 void wxListCtrl::SetSingleStyle(long style, bool add)
86 {
87 }
88
89 // ----------------------------------------------------------------------------
90 // accessors
91 // ----------------------------------------------------------------------------
92
93 /* static */ wxVisualAttributes wxListCtrl::GetClassDefaultAttributes(wxWindowVariant variant)
94 {
95 wxVisualAttributes attrs;
96
97 return attrs;
98 }
99
100 // Sets the foreground, i.e. text, colour
101 bool wxListCtrl::SetForegroundColour(const wxColour& col)
102 {
103 return false;
104 }
105
106 // Sets the background colour
107 bool wxListCtrl::SetBackgroundColour(const wxColour& col)
108 {
109 return false;
110 }
111
112 // Gets information about this column
113 bool wxListCtrl::GetColumn(int col, wxListItem& item) const
114 {
115 return false;
116 }
117
118 // Sets information about this column
119 bool wxListCtrl::SetColumn(int col, wxListItem& item)
120 {
121 return false;
122 }
123
124 // Gets the column width
125 int wxListCtrl::GetColumnWidth(int col) const
126 {
127 return 0;
128 }
129
130 // Sets the column width
131 bool wxListCtrl::SetColumnWidth(int col, int width)
132 {
133 return false;
134 }
135
136 // Gets the number of items that can fit vertically in the
137 // visible area of the list control (list or report view)
138 // or the total number of items in the list control (icon
139 // or small icon view)
140 int wxListCtrl::GetCountPerPage() const
141 {
142 return 0;
143 }
144
145 // Gets the edit control for editing labels.
146 wxTextCtrl* wxListCtrl::GetEditControl() const
147 {
148 return NULL;
149 }
150
151 // Gets information about the item
152 bool wxListCtrl::GetItem(wxListItem& info) const
153 {
154 return false;
155 }
156
157 // Sets information about the item
158 bool wxListCtrl::SetItem(wxListItem& info)
159 {
160 return false;
161 }
162
163 long wxListCtrl::SetItem(long index, int col, const wxString& label, int imageId)
164 {
165 return 0;
166 }
167
168
169 // Gets the item state
170 int wxListCtrl::GetItemState(long item, long stateMask) const
171 {
172 return 0;
173 }
174
175 // Sets the item state
176 bool wxListCtrl::SetItemState(long item, long state, long stateMask)
177 {
178 return false;
179 }
180
181 // Sets the item image
182 bool wxListCtrl::SetItemImage(long item, int image, int WXUNUSED(selImage))
183 {
184 return false;
185 }
186
187 // Sets the item image
188 bool wxListCtrl::SetItemColumnImage(long item, long column, int image)
189 {
190 return false;
191 }
192
193 // Gets the item text
194 wxString wxListCtrl::GetItemText(long item) const
195 {
196 wxListItem info;
197
198 return info.m_text;
199 }
200
201 // Sets the item text
202 void wxListCtrl::SetItemText(long item, const wxString& str)
203 {
204 }
205
206 // Gets the item data
207 long wxListCtrl::GetItemData(long item) const
208 {
209 return 0;
210 }
211
212 // Sets the item data
213 bool wxListCtrl::SetItemPtrData(long item, wxUIntPtr data)
214 {
215 return false;
216 }
217
218 wxRect wxListCtrl::GetViewRect() const
219 {
220 wxRect rect;
221
222 return rect;
223 }
224
225 // Gets the item rectangle
226 bool wxListCtrl::GetItemRect(long item, wxRect& rect, int code) const
227 {
228 return false;
229 }
230
231 // Gets the item position
232 bool wxListCtrl::GetItemPosition(long item, wxPoint& pos) const
233 {
234 return false;
235 }
236
237 // Sets the item position.
238 bool wxListCtrl::SetItemPosition(long item, const wxPoint& pos)
239 {
240 return false;
241 }
242
243 // Gets the number of items in the list control
244 int wxListCtrl::GetItemCount() const
245 {
246 return 0;
247 }
248
249 wxSize wxListCtrl::GetItemSpacing() const
250 {
251 return wxSize(0,0);
252 }
253
254 int wxListCtrl::GetItemSpacing(bool isSmall) const
255 {
256 return 0;
257 }
258
259 void wxListCtrl::SetItemTextColour( long item, const wxColour &col )
260 {
261 }
262
263 wxColour wxListCtrl::GetItemTextColour( long item ) const
264 {
265 wxColour col;
266
267 return col;
268 }
269
270 void wxListCtrl::SetItemBackgroundColour( long item, const wxColour &col )
271 {
272 }
273
274 wxColour wxListCtrl::GetItemBackgroundColour( long item ) const
275 {
276 wxColour col;
277
278 return col;
279 }
280
281 // Gets the number of selected items in the list control
282 int wxListCtrl::GetSelectedItemCount() const
283 {
284 return 0;
285 }
286
287 // Gets the text colour of the listview
288 wxColour wxListCtrl::GetTextColour() const
289 {
290 wxColour col;
291 return col;
292 }
293
294 // Sets the text colour of the listview
295 void wxListCtrl::SetTextColour(const wxColour& col)
296 {
297 }
298
299 // Gets the index of the topmost visible item when in
300 // list or report view
301 long wxListCtrl::GetTopItem() const
302 {
303 return 0;
304 }
305
306 // Searches for an item, starting from 'item'.
307 // 'geometry' is one of
308 // wxLIST_NEXT_ABOVE/ALL/BELOW/LEFT/RIGHT.
309 // 'state' is a state bit flag, one or more of
310 // wxLIST_STATE_DROPHILITED/FOCUSED/SELECTED/CUT.
311 // item can be -1 to find the first item that matches the
312 // specified flags.
313 // Returns the item or -1 if unsuccessful.
314 long wxListCtrl::GetNextItem(long item, int geom, int state) const
315 {
316 return 0;
317 }
318
319
320 wxImageList *wxListCtrl::GetImageList(int which) const
321 {
322 return NULL;
323 }
324
325 void wxListCtrl::SetImageList(wxImageList *imageList, int which)
326 {
327 }
328
329 void wxListCtrl::AssignImageList(wxImageList *imageList, int which)
330 {
331 }
332
333 // ----------------------------------------------------------------------------
334 // Operations
335 // ----------------------------------------------------------------------------
336
337 // Arranges the items
338 bool wxListCtrl::Arrange(int flag)
339 {
340 return false;
341 }
342
343 // Deletes an item
344 bool wxListCtrl::DeleteItem(long item)
345 {
346 return false;
347 }
348
349 // Deletes all items
350 bool wxListCtrl::DeleteAllItems()
351 {
352 return false;
353 }
354
355 // Deletes all items
356 bool wxListCtrl::DeleteAllColumns()
357 {
358 return false;
359 }
360
361 // Deletes a column
362 bool wxListCtrl::DeleteColumn(int col)
363 {
364 return false;
365 }
366
367 // Clears items, and columns if there are any.
368 void wxListCtrl::ClearAll()
369 {
370 }
371
372 wxTextCtrl* wxListCtrl::EditLabel(long item, wxClassInfo* textControlClass)
373 {
374 return NULL;
375 }
376
377 // End label editing, optionally cancelling the edit
378 bool wxListCtrl::EndEditLabel(bool WXUNUSED(cancel))
379 {
380 return false;
381 }
382
383 // Ensures this item is visible
384 bool wxListCtrl::EnsureVisible(long item)
385 {
386 return false;
387 }
388
389 // Find an item whose label matches this string, starting from the item after 'start'
390 // or the beginning if 'start' is -1.
391 long wxListCtrl::FindItem(long start, const wxString& str, bool partial)
392 {
393 return 0;
394 }
395
396 // Find an item whose data matches this data, starting from the item after 'start'
397 // or the beginning if 'start' is -1.
398 // NOTE : Lindsay Mathieson - 14-July-2002
399 // No longer use ListView_FindItem as the data attribute is now stored
400 // in a wxListItemInternalData structure refernced by the actual lParam
401 long wxListCtrl::FindItem(long start, long data)
402 {
403 return wxNOT_FOUND;
404 }
405
406 // Find an item nearest this position in the specified direction, starting from
407 // the item after 'start' or the beginning if 'start' is -1.
408 long wxListCtrl::FindItem(long start, const wxPoint& pt, int direction)
409 {
410 return wxNOT_FOUND;
411 }
412
413 // Determines which item (if any) is at the specified point,
414 // giving details in 'flags' (see wxLIST_HITTEST_... flags above)
415 long wxListCtrl::HitTest(const wxPoint& point, int& flags)
416 {
417 return 0;
418 }
419
420 // Inserts an item, returning the index of the new item if successful,
421 // -1 otherwise.
422 long wxListCtrl::InsertItem(wxListItem& info)
423 {
424 return 0;
425 }
426
427 long wxListCtrl::InsertItem(long index, const wxString& label)
428 {
429 return 0;
430 }
431
432 // Inserts an image item
433 long wxListCtrl::InsertItem(long index, int imageIndex)
434 {
435 return 0;
436 }
437
438 // Inserts an image/string item
439 long wxListCtrl::InsertItem(long index, const wxString& label, int imageIndex)
440 {
441 return 0;
442 }
443
444 // For list view mode (only), inserts a column.
445 long wxListCtrl::InsertColumn(long col, wxListItem& item)
446 {
447 return 0;
448 }
449
450 long wxListCtrl::InsertColumn(long col,
451 const wxString& heading,
452 int format,
453 int width)
454 {
455 return 0;
456 }
457
458 // scroll the control by the given number of pixels (exception: in list view,
459 // dx is interpreted as number of columns)
460 bool wxListCtrl::ScrollList(int dx, int dy)
461 {
462 return false;
463 }
464
465 // Sort items.
466
467 // fn is a function which takes 3 long arguments: item1, item2, data.
468 // item1 is the long data associated with a first item (NOT the index).
469 // item2 is the long data associated with a second item (NOT the index).
470 // data is the same value as passed to SortItems.
471 // The return value is a negative number if the first item should precede the second
472 // item, a positive number of the second item should precede the first,
473 // or zero if the two items are equivalent.
474
475 // data is arbitrary data to be passed to the sort function.
476
477 // Internal structures for proxying the user compare function
478 // so that we can pass it the *real* user data
479
480 // translate lParam data and call user func
481 struct wxInternalDataSort
482 {
483 wxListCtrlCompare user_fn;
484 long data;
485 };
486
487 int CALLBACK wxInternalDataCompareFunc(LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)
488 {
489 struct wxInternalDataSort *internalData = (struct wxInternalDataSort *) lParamSort;
490
491 wxListItemInternalData *data1 = (wxListItemInternalData *) lParam1;
492 wxListItemInternalData *data2 = (wxListItemInternalData *) lParam2;
493
494 long d1 = (data1 == NULL ? 0 : data1->lParam);
495 long d2 = (data2 == NULL ? 0 : data2->lParam);
496
497 return internalData->user_fn(d1, d2, internalData->data);
498
499 };
500
501 bool wxListCtrl::SortItems(wxListCtrlCompare fn, long data)
502 {
503 return false;
504 }
505
506
507
508 // ----------------------------------------------------------------------------
509 // message processing
510 // ----------------------------------------------------------------------------
511
512 // Necessary for drawing hrules and vrules, if specified
513 void wxListCtrl::OnPaint(wxPaintEvent& event)
514 {
515 }
516
517 // ----------------------------------------------------------------------------
518 // virtual list controls
519 // ----------------------------------------------------------------------------
520
521 wxString wxListCtrl::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
522 {
523 return wxEmptyString;
524 }
525
526 int wxListCtrl::OnGetItemImage(long WXUNUSED(item)) const
527 {
528 return -1;
529 }
530
531 int wxListCtrl::OnGetItemColumnImage(long item, long column) const
532 {
533 if (!column)
534 return OnGetItemImage(item);
535
536 return -1;
537 }
538
539 wxListItemAttr *wxListCtrl::OnGetItemAttr(long WXUNUSED_UNLESS_DEBUG(item)) const
540 {
541 // no attributes by default
542 return NULL;
543 }
544
545 void wxListCtrl::SetItemCount(long count)
546 {
547 }
548
549 void wxListCtrl::RefreshItem(long item)
550 {
551 }
552
553 void wxListCtrl::RefreshItems(long itemFrom, long itemTo)
554 {
555 }
556
557 // ----------------------------------------------------------------------------
558 // internal data stuff
559 // ----------------------------------------------------------------------------
560
561 static wxListItemInternalData *wxGetInternalData(HWND hwnd, long itemId)
562 {
563 return NULL;
564 };
565
566 static wxListItemInternalData *wxGetInternalData(const wxListCtrl *ctl, long itemId)
567 {
568 return wxGetInternalData(GetHwndOf(ctl), itemId);
569 };
570
571 static wxListItemAttr *wxGetInternalDataAttr(wxListCtrl *ctl, long itemId)
572 {
573 return NULL;
574 };
575
576 static void wxDeleteInternalData(wxListCtrl* ctl, long itemId)
577 {
578 }
579
580 #endif // wxUSE_LISTCTRL