%{
#include <wx/checklst.h>
-
- DECLARE_DEF_STRING(ListBoxNameStr);
%}
+MAKE_CONST_WXSTRING(ListBoxNameStr);
+
+
//---------------------------------------------------------------------------
%newgroup
+MustHaveApp(wxListBox);
+
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);
+ %pythonAppend wxListBox "self._setOORInfo(self)"
+ %pythonAppend wxListBox() ""
+
+ wxListBox(wxWindow* parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ const wxArrayString& choices = wxPyEmptyStringArray,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxPyListBoxNameStr);
+
+// wxListBox(wxWindow* parent,
+// wxWindowID id = -1,
+// const wxPoint& pos = wxDefaultPosition,
+// const wxSize& size = wxDefaultSize,
+// int n = 0,
+// const wxString choices[] = NULL,
+// long style = 0,
+// const wxValidator& validator = wxDefaultValidator,
+// const wxString& name = wxPyListBoxNameStr);
+ %RenameCtor(PreListBox, wxListBox());
+
+ bool Create(wxWindow* parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ const wxArrayString& choices = wxPyEmptyStringArray,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxPyListBoxNameStr);
+
+// bool Create(wxWindow *parent,
+// wxWindowID id = -1,
+// const wxPoint& pos = wxDefaultPosition,
+// const wxSize& size = wxDefaultSize,
+// int n = 0,
+// const wxString choices[] = 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) {
+ %extend
+ {
+ void Insert(const wxString& item, int pos, PyObject* clientData = NULL)
+ {
+ if (clientData)
+ {
wxPyClientData* data = new wxPyClientData(clientData);
self->Insert(item, pos, data);
- } else
+ }
+ else
self->Insert(item, pos);
}
}
- void InsertItems(const wxArrayString& items, int pos);
+ void InsertItems(const wxArrayString& items, unsigned 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 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);
+ 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<lst.GetCount(); i++) {
- PyTuple_SetItem(tup, i, PyInt_FromLong(lst[i]));
- }
- return tup;
- }
+ PyObject* GetSelections() {
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
+ wxArrayInt lst;
+ self->GetSelections(lst);
+ PyObject *tup = PyTuple_New(lst.GetCount());
+ for (size_t i=0; i<lst.GetCount(); i++)
+ {
+ PyTuple_SetItem(tup, i, PyInt_FromLong(lst[i]));
+ }
+ wxPyEndBlockThreads(blocked);
+ return tup;
+ }
}
// set the specified item at the first visible item or scroll to max
// range.
void SetFirstItem(int n);
- %name(SetFirstItemStr) void SetFirstItem(const wxString& s);
+ %Rename(SetFirstItemStr, void, SetFirstItem(const wxString& s));
- // ensures that the given item is visible scrolling the listbox if
- // necessary
+ // ensures that the given item is visible scrolling the listbox
+ // if necessary
virtual void EnsureVisible(int n);
// a combination of Append() and EnsureVisible(): appends the item to the
// return True if this listbox is sorted
bool IsSorted() const;
+
+ // return the index of the item at this position or wxNOT_FOUND
+ int HitTest(const wxPoint& pt) const;
+
+ %extend
+ {
+ void SetItemForegroundColour(int item, const wxColour& c)
+ {
+ %#ifdef __WXMSW__
+ if (self->GetWindowStyle() & wxLB_OWNERDRAW)
+ self->GetItem(item)->SetTextColour(c);
+ %#endif
+ }
+ void SetItemBackgroundColour(int item, const wxColour& c)
+ {
+ %#ifdef __WXMSW__
+ if (self->GetWindowStyle() & wxLB_OWNERDRAW)
+ self->GetItem(item)->SetBackgroundColour(c);
+ %#endif
+ }
+ void SetItemFont(int item, const wxFont& f)
+ {
+ %#ifdef __WXMSW__
+ if (self->GetWindowStyle() & wxLB_OWNERDRAW)
+ self->GetItem(item)->SetFont(f);
+ %#endif
+ }
+ }
+
+ static wxVisualAttributes
+ GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+
+ %property(Selections, GetSelections, doc="See `GetSelections`");
};
%newgroup
+MustHaveApp(wxCheckListBox);
+
// wxCheckListBox: a listbox whose items may be checked
class wxCheckListBox : public wxListBox
{
public:
- %addtofunc wxListBox "self._setOORInfo(self)"
- %addtofunc wxListBox() ""
-
- wxCheckListBox(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(PreCheckListBox)wxCheckListBox();
-
- 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);
-
- bool IsChecked(int index);
- void Check(int index, int check = True);
-
-#ifndef __WXMAC__
+ %pythonAppend wxCheckListBox "self._setOORInfo(self)"
+ %pythonAppend wxCheckListBox() ""
+
+ wxCheckListBox(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ const wxArrayString& choices = wxPyEmptyStringArray,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxPyListBoxNameStr);
+ %RenameCtor(PreCheckListBox, wxCheckListBox());
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = -1,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ const wxArrayString& choices = wxPyEmptyStringArray,
+ long style = 0,
+ const wxValidator& validator = wxDefaultValidator,
+ const wxString& name = wxPyListBoxNameStr);
+
+ bool IsChecked(unsigned int index);
+ void Check(unsigned int index, int check = true);
+
+#if defined(__WXMSW__) || defined(__WXGTK__)
int GetItemHeight();
+#else
+ %pythoncode {
+ def GetItemHeight(self):
+ raise NotImplementedError
+ }
#endif
- // return the index of the item at this position or wxNOT_FOUND
- int HitTest(const wxPoint& pt) const;
- %name(HitTestXY)int HitTest(wxCoord x, wxCoord y) const;
+ %property(ItemHeight, GetItemHeight, doc="See `GetItemHeight`");
};
//---------------------------------------------------------------------------