///////////////////////////////////////////////////////////////////////////// // Name: _listbox.i // Purpose: SWIG interface defs for wxListBox and wxCheckListBox // // Author: Robin Dunn // // Created: 10-June-1998 // RCS-ID: $Id$ // Copyright: (c) 2003 by Total Control Software // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// // Not a %module //--------------------------------------------------------------------------- %{ #include DECLARE_DEF_STRING(ListBoxNameStr); %} //--------------------------------------------------------------------------- %newgroup class wxListBox : public wxControlWithItems { public: %addtofunc wxListBox "self._setOORInfo(self)" %addtofunc wxListBox() "" wxListBox(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int choices=0, wxString* choices_array = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyListBoxNameStr); %name(PreListBox)wxListBox(); bool Create(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, int choices=0, wxString* choices_array = NULL, long style = 0, const wxValidator& validator = wxDefaultValidator, const wxString& name = wxPyListBoxNameStr); // all generic methods are in wxControlWithItems... %extend { void Insert(const wxString& item, int pos, PyObject* clientData=NULL) { if (clientData) { wxPyClientData* data = new wxPyClientData(clientData); self->Insert(item, pos, data); } else self->Insert(item, pos); } } void InsertItems(const wxArrayString& items, int pos); void Set(const wxArrayString& items/*, void **clientData = NULL */); // multiple selection logic virtual bool IsSelected(int n) const; virtual void SetSelection(int n, bool select = True); virtual void Select(int n); void Deselect(int n); void DeselectAll(int itemToLeaveSelected = -1); virtual bool SetStringSelection(const wxString& s, bool select = True); // works for single as well as multiple selection listboxes (unlike // GetSelection which only works for listboxes with single selection) //virtual int GetSelections(wxArrayInt& aSelections) const; %extend { PyObject* GetSelections() { wxArrayInt lst; self->GetSelections(lst); PyObject *tup = PyTuple_New(lst.GetCount()); for(size_t i=0; i