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
183 lines
6.2 KiB
OpenEdge ABL
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;
|
|
};
|
|
|
|
//---------------------------------------------------------------------------
|