1///////////////////////////////////////////////////////////////////////////// 2// Name: wx/motif/listbox.h 3// Purpose: wxListBox class 4// Author: Julian Smart 5// Modified by: 6// Created: 17/09/98 7// RCS-ID: $Id: listbox.h 41020 2006-09-05 20:47:48Z VZ $ 8// Copyright: (c) Julian Smart 9// Licence: wxWindows licence 10///////////////////////////////////////////////////////////////////////////// 11 12#ifndef _WX_LISTBOX_H_ 13#define _WX_LISTBOX_H_ 14 15#include "wx/ctrlsub.h" 16#include "wx/clntdata.h" 17 18// forward decl for GetSelections() 19class WXDLLEXPORT wxArrayInt; 20 21// List box item 22class WXDLLEXPORT wxListBox: public wxListBoxBase 23{ 24 DECLARE_DYNAMIC_CLASS(wxListBox) 25 26public: 27 wxListBox(); 28 wxListBox(wxWindow *parent, wxWindowID id, 29 const wxPoint& pos = wxDefaultPosition, 30 const wxSize& size = wxDefaultSize, 31 int n = 0, const wxString choices[] = NULL, 32 long style = 0, 33 const wxValidator& validator = wxDefaultValidator, 34 const wxString& name = wxListBoxNameStr) 35 { 36 Create(parent, id, pos, size, n, choices, style, validator, name); 37 } 38 39 wxListBox(wxWindow *parent, wxWindowID id, 40 const wxPoint& pos, 41 const wxSize& size, 42 const wxArrayString& choices, 43 long style = 0, 44 const wxValidator& validator = wxDefaultValidator, 45 const wxString& name = wxListBoxNameStr) 46 { 47 Create(parent, id, pos, size, choices, style, validator, name); 48 } 49 50 bool Create(wxWindow *parent, wxWindowID id, 51 const wxPoint& pos = wxDefaultPosition, 52 const wxSize& size = wxDefaultSize, 53 int n = 0, const wxString choices[] = NULL, 54 long style = 0, 55 const wxValidator& validator = wxDefaultValidator, 56 const wxString& name = wxListBoxNameStr); 57 58 bool Create(wxWindow *parent, wxWindowID id, 59 const wxPoint& pos, 60 const wxSize& size, 61 const wxArrayString& choices, 62 long style = 0, 63 const wxValidator& validator = wxDefaultValidator, 64 const wxString& name = wxListBoxNameStr); 65 66 virtual ~wxListBox(); 67 68 // implementation of wxControlWithItems 69 virtual unsigned int GetCount() const; 70 virtual int DoAppend(const wxString& item); 71 virtual void DoSetItemClientData(unsigned int n, void* clientData); 72 virtual void* DoGetItemClientData(unsigned int n) const; 73 virtual void DoSetItemClientObject(unsigned int n, wxClientData* clientData); 74 virtual wxClientData* DoGetItemClientObject(unsigned int n) const; 75 virtual int GetSelection() const; 76 virtual void Delete(unsigned int n); 77 virtual int FindString(const wxString& s, bool bCase = false) const; 78 virtual void Clear(); 79 virtual void SetString(unsigned int n, const wxString& s); 80 virtual wxString GetString(unsigned int n) const; 81 82 // implementation of wxListBoxbase 83 virtual void DoSetSelection(int n, bool select); 84 virtual void DoInsertItems(const wxArrayString& items, unsigned int pos); 85 virtual void DoSetItems(const wxArrayString& items, void **clientData); 86 virtual void DoSetFirstItem(int n); 87 virtual int GetSelections(wxArrayInt& aSelections) const; 88 virtual bool IsSelected(int n) const; 89 90 // For single or multiple choice list item 91 void Command(wxCommandEvent& event); 92 93 // Implementation 94 virtual void ChangeBackgroundColour(); 95 virtual void ChangeForegroundColour(); 96 WXWidget GetTopWidget() const; 97 98#if wxUSE_CHECKLISTBOX 99 virtual void DoToggleItem(int WXUNUSED(item), int WXUNUSED(x)) {}; 100#endif 101protected: 102 virtual wxSize DoGetBestSize() const; 103 104 unsigned int m_noItems; 105 106 // List mapping positions->client data 107 wxClientDataDictionary m_clientDataDict; 108private: 109 void SetSelectionPolicy(); 110}; 111 112#endif 113// _WX_LISTBOX_H_ 114