2003-11-12 21:34:20 +00:00
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
// Name: _control.i
|
|
|
|
// Purpose: SWIG interface defs for wxControl and other base classes
|
|
|
|
//
|
|
|
|
// Author: Robin Dunn
|
|
|
|
//
|
|
|
|
// Created: 10-June-1998
|
|
|
|
// RCS-ID: $Id$
|
|
|
|
// Copyright: (c) 2003 by Total Control Software
|
|
|
|
// Licence: wxWindows license
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
// Not a %module
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|
2003-12-20 01:01:49 +00:00
|
|
|
MAKE_CONST_WXSTRING(ControlNameStr);
|
2003-11-12 21:34:20 +00:00
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
%newgroup;
|
|
|
|
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocStr(wxControl,
|
|
|
|
"This is the base class for a control or 'widget'.
|
|
|
|
|
2004-05-12 00:17:48 +00:00
|
|
|
A control is generally a small window which processes user input
|
|
|
|
and/or displays one or more item of data.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2004-06-01 21:38:05 +00:00
|
|
|
MustHaveApp(wxControl);
|
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
class wxControl : public wxWindow
|
|
|
|
{
|
|
|
|
public:
|
2004-01-31 01:18:37 +00:00
|
|
|
%pythonAppend wxControl "self._setOORInfo(self)"
|
|
|
|
%pythonAppend wxControl() ""
|
2003-11-12 21:34:20 +00:00
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocCtorStr(
|
|
|
|
wxControl(wxWindow *parent,
|
2003-11-12 21:34:20 +00:00
|
|
|
wxWindowID id,
|
|
|
|
const wxPoint& pos=wxDefaultPosition,
|
|
|
|
const wxSize& size=wxDefaultSize,
|
|
|
|
long style=0,
|
|
|
|
const wxValidator& validator=wxDefaultValidator,
|
2004-02-24 02:09:17 +00:00
|
|
|
const wxString& name=wxPyControlNameStr),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Create a Control. Normally you should only call this from a subclass'
|
|
|
|
__init__ as a plain old wx.Control is not very useful.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocCtorStrName(
|
|
|
|
wxControl(),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Precreate a Control control for 2-phase creation", "",
|
2004-02-24 02:09:17 +00:00
|
|
|
PreControl);
|
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
bool , Create(wxWindow *parent,
|
|
|
|
wxWindowID id,
|
|
|
|
const wxPoint& pos=wxDefaultPosition,
|
|
|
|
const wxSize& size=wxDefaultSize,
|
|
|
|
long style=0,
|
|
|
|
const wxValidator& validator=wxDefaultValidator,
|
|
|
|
const wxString& name=wxPyControlNameStr),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Do the 2nd phase and create the GUI control.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocDeclStr(
|
|
|
|
void , Command(wxCommandEvent& event),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Simulates the effect of the user issuing a command to the item.
|
|
|
|
|
|
|
|
:see: `wx.CommandEvent`
|
|
|
|
", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
wxString , GetLabel(),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Return a control's text.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
void , SetLabel(const wxString& label),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Sets the item's text.", "");
|
2004-04-05 18:23:01 +00:00
|
|
|
|
|
|
|
|
|
|
|
static wxVisualAttributes
|
|
|
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
2003-11-12 21:34:20 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
%newgroup;
|
|
|
|
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocStr(wxItemContainer,
|
|
|
|
"wx.ItemContainer defines an interface which is implemented by all
|
2004-05-12 00:17:48 +00:00
|
|
|
controls which have string subitems, each of which may be selected,
|
|
|
|
such as `wx.ListBox`, `wx.CheckListBox`, `wx.Choice` as well as
|
|
|
|
`wx.ComboBox` which implements an extended interface deriving from
|
|
|
|
this one.
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2004-05-12 00:17:48 +00:00
|
|
|
It defines the methods for accessing the control's items and although
|
|
|
|
each of the derived classes implements them differently, they still
|
|
|
|
all conform to the same interface.
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2004-05-12 00:17:48 +00:00
|
|
|
The items in a wx.ItemContainer have (non empty) string labels and,
|
|
|
|
optionally, client data associated with them.
|
|
|
|
", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
class wxItemContainer
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
// wxItemContainer() { m_clientDataItemsType = wxClientData_None; } ** It's an ABC
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
|
|
|
|
%extend {
|
2004-02-24 02:09:17 +00:00
|
|
|
DocStr(Append,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Adds the item to the control, associating the given data with the item
|
|
|
|
if not None. The return value is the index of the newly added item
|
|
|
|
which may be different from the last one if the control is sorted (e.g.
|
|
|
|
has wx.LB_SORT or wx.CB_SORT style).", "");
|
2003-11-12 21:34:20 +00:00
|
|
|
int Append(const wxString& item, PyObject* clientData=NULL) {
|
|
|
|
if (clientData) {
|
|
|
|
wxPyClientData* data = new wxPyClientData(clientData);
|
|
|
|
return self->Append(item, data);
|
|
|
|
} else
|
|
|
|
return self->Append(item);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocDeclStrName(
|
|
|
|
void , Append(const wxArrayString& strings),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Apend several items at once to the control. Notice that calling this
|
|
|
|
method may be much faster than appending the items one by one if you
|
|
|
|
need to add a lot of items.", "",
|
2004-02-24 02:09:17 +00:00
|
|
|
AppendItems);
|
2003-11-12 21:34:20 +00:00
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
%extend {
|
2004-02-24 02:09:17 +00:00
|
|
|
DocStr(Insert,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Insert an item into the control before the item at the ``pos`` index,
|
|
|
|
optionally associating some data object with the item.", "");
|
2003-11-12 21:34:20 +00:00
|
|
|
int Insert(const wxString& item, int pos, PyObject* clientData=NULL) {
|
|
|
|
if (clientData) {
|
|
|
|
wxPyClientData* data = new wxPyClientData(clientData);
|
|
|
|
return self->Insert(item, pos, data);
|
|
|
|
} else
|
|
|
|
return self->Insert(item, pos);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocDeclStr(
|
|
|
|
virtual void , Clear(),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Removes all items from the control.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
virtual void , Delete(int n),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Deletes the item at the zero-based index 'n' from the control. Note
|
|
|
|
that it is an error (signalled by a `wx.PyAssertionError` exception if
|
|
|
|
enabled) to remove an item with the index negative or greater or equal
|
|
|
|
than the number of items in the control.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocDeclStr(
|
|
|
|
virtual int , GetCount() const,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Returns the number of items in the control.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
bool , IsEmpty() const,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Returns True if the control is empty or False if it has some items.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
virtual wxString , GetString(int n) const,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Returns the label of the item with the given index.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
wxArrayString , GetStrings() const,
|
2004-05-12 00:17:48 +00:00
|
|
|
"", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
virtual void , SetString(int n, const wxString& s),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Sets the label for the given item.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
virtual int , FindString(const wxString& s) const,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Finds an item whose label matches the given string. Returns the
|
|
|
|
zero-based position of the item, or ``wx.NOT_FOUND`` if the string was not
|
|
|
|
found.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocDeclStr(
|
|
|
|
virtual void , Select(int n),
|
2004-05-12 00:17:48 +00:00
|
|
|
"Sets the item at index 'n' to be the selected item.", "");
|
2003-11-12 21:34:20 +00:00
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
%pythoncode { SetSelection = Select }
|
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
virtual int , GetSelection() const,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Returns the index of the selected item or ``wx.NOT_FOUND`` if no item
|
|
|
|
is selected.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
DocDeclStr(
|
|
|
|
wxString , GetStringSelection() const,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Returns the label of the selected item or an empty string if no item
|
|
|
|
is selected.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
|
|
|
|
|
|
|
|
%extend {
|
2004-02-24 02:09:17 +00:00
|
|
|
DocStr(GetClientData,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Returns the client data associated with the given item, (if any.)", "");
|
2003-11-12 21:34:20 +00:00
|
|
|
PyObject* GetClientData(int n) {
|
|
|
|
wxPyClientData* data = (wxPyClientData*)self->GetClientObject(n);
|
|
|
|
if (data) {
|
|
|
|
Py_INCREF(data->m_obj);
|
|
|
|
return data->m_obj;
|
|
|
|
} else {
|
|
|
|
Py_INCREF(Py_None);
|
|
|
|
return Py_None;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocStr(SetClientData,
|
2004-05-12 00:17:48 +00:00
|
|
|
"Associate the given client data with the item at position n.", "");
|
2003-11-12 21:34:20 +00:00
|
|
|
void SetClientData(int n, PyObject* clientData) {
|
|
|
|
wxPyClientData* data = new wxPyClientData(clientData);
|
|
|
|
self->SetClientObject(n, data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
%newgroup;
|
|
|
|
|
2004-02-24 02:09:17 +00:00
|
|
|
DocStr(wxControlWithItems,
|
2004-05-12 00:17:48 +00:00
|
|
|
"wx.ControlWithItems combines the ``wx.ItemContainer`` class with the
|
|
|
|
wx.Control class, and is used for the base class of various controls
|
|
|
|
that have items.", "");
|
2004-02-24 02:09:17 +00:00
|
|
|
|
2003-11-12 21:34:20 +00:00
|
|
|
class wxControlWithItems : public wxControl, public wxItemContainer
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
};
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
|