Files
wxWidgets/wxPython/src/_listbox.i
Robin Dunn d55734102e Added more default args as needed to allow most window types to be
constructed with only the parent window arg.  In some cases other args
may be required for normal operation, but they can usually be set
after construction.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27592 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2004-06-02 20:53:05 +00:00

183 lines
6.2 KiB
OpenEdge ABL

/////////////////////////////////////////////////////////////////////////////
// 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 <wx/checklst.h>
%}
MAKE_CONST_WXSTRING(ListBoxNameStr);
//---------------------------------------------------------------------------
%newgroup
MustHaveApp(wxListBox);
class wxListBox : public wxControlWithItems
{
public:
%pythonAppend wxListBox "self._setOORInfo(self)"
%pythonAppend wxListBox() ""
wxListBox(wxWindow* parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
//int choices=0, wxString* choices_array = NULL,
const wxArrayString& choices = wxPyEmptyStringArray,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyListBoxNameStr);
%name(PreListBox)wxListBox();
bool Create(wxWindow* parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
//int choices=0, wxString* choices_array = NULL,
const wxArrayString& choices = wxPyEmptyStringArray,
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<lst.GetCount(); i++) {
PyTuple_SetItem(tup, i, PyInt_FromLong(lst[i]));
}
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);
// 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
// listbox and ensures that it is visible i.e. not scrolled out of view
void AppendAndEnsureVisible(const wxString& s);
// return True if this listbox is sorted
bool IsSorted() 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);
};
//---------------------------------------------------------------------------
%newgroup
MustHaveApp(wxCheckListBox);
// wxCheckListBox: a listbox whose items may be checked
class wxCheckListBox : public wxListBox
{
public:
%pythonAppend wxCheckListBox "self._setOORInfo(self)"
%pythonAppend wxCheckListBox() ""
wxCheckListBox(wxWindow *parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
//int choices = 0, wxString* choices_array = NULL,
const wxArrayString& choices = wxPyEmptyStringArray,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyListBoxNameStr);
%name(PreCheckListBox)wxCheckListBox();
bool Create(wxWindow *parent, wxWindowID id=-1,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
//int choices = 0, wxString* choices_array = NULL,
const wxArrayString& choices = wxPyEmptyStringArray,
long style = 0,
const wxValidator& validator = wxDefaultValidator,
const wxString& name = wxPyListBoxNameStr);
bool IsChecked(int index);
void Check(int index, int check = True);
#if defined(__WXMSW__) || defined(__WXGTK__)
int GetItemHeight();
#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;
};
//---------------------------------------------------------------------------