Merged the wxPy_newswig branch into the HEAD branch (main trunk)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24541 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
169
wxPython/src/_control.i
Normal file
169
wxPython/src/_control.i
Normal file
@@ -0,0 +1,169 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
%{
|
||||
DECLARE_DEF_STRING(ControlNameStr);
|
||||
%}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
%newgroup;
|
||||
|
||||
|
||||
// This is the base class for a control or 'widget'.
|
||||
//
|
||||
// A control is generally a small window which processes user input and/or
|
||||
// displays one or more item of data.
|
||||
class wxControl : public wxWindow
|
||||
{
|
||||
public:
|
||||
%addtofunc wxControl "self._setOORInfo(self)"
|
||||
%addtofunc wxControl() ""
|
||||
|
||||
wxControl(wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxPoint& pos=wxDefaultPosition,
|
||||
const wxSize& size=wxDefaultSize,
|
||||
long style=0,
|
||||
const wxValidator& validator=wxDefaultValidator,
|
||||
const wxString& name=wxPyControlNameStr);
|
||||
|
||||
%name(PreControl)wxControl();
|
||||
|
||||
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);
|
||||
|
||||
|
||||
// Simulates the effect of the user issuing a command to the item. See
|
||||
// wxCommandEvent.
|
||||
void Command(wxCommandEvent& event);
|
||||
|
||||
// Return a control's text.
|
||||
wxString GetLabel();
|
||||
|
||||
// Sets the item's text.
|
||||
void SetLabel(const wxString& label);
|
||||
|
||||
};
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
%newgroup;
|
||||
|
||||
|
||||
// wxItemContainer defines an interface which is implemented by all controls
|
||||
// which have string subitems each of which may be selected.
|
||||
//
|
||||
// Examples: wxListBox, wxCheckListBox, wxChoice and wxComboBox (which
|
||||
// implements an extended interface deriving from this one)
|
||||
class wxItemContainer
|
||||
{
|
||||
public:
|
||||
// wxItemContainer() { m_clientDataItemsType = wxClientData_None; } ** It's an ABC
|
||||
|
||||
|
||||
// int Append(const wxString& item)
|
||||
// int Append(const wxString& item, void *clientData)
|
||||
// int Append(const wxString& item, wxClientData *clientData)
|
||||
%extend {
|
||||
// Adds the item to the control, associating the given data with the
|
||||
// item if not None.
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
// append several items at once to the control
|
||||
%name(AppendItems) void Append(const wxArrayString& strings);
|
||||
|
||||
// int Insert(const wxString& item, int pos)
|
||||
// int Insert(const wxString& item, int pos, void *clientData);
|
||||
// int Insert(const wxString& item, int pos, wxClientData *clientData);
|
||||
%extend {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// deleting items
|
||||
virtual void Clear();
|
||||
virtual void Delete(int n);
|
||||
|
||||
|
||||
// accessing strings
|
||||
virtual int GetCount() const;
|
||||
bool IsEmpty() const;
|
||||
virtual wxString GetString(int n) const;
|
||||
wxArrayString GetStrings() const;
|
||||
virtual void SetString(int n, const wxString& s);
|
||||
virtual int FindString(const wxString& s) const;
|
||||
|
||||
|
||||
// selection
|
||||
virtual void Select(int n);
|
||||
virtual int GetSelection() const;
|
||||
|
||||
wxString GetStringSelection() const;
|
||||
|
||||
|
||||
// client data stuff
|
||||
%extend {
|
||||
// Returns the client data associated with the given item, (if any.)
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
// Associate the given client data with the item at position n.
|
||||
void SetClientData(int n, PyObject* clientData) {
|
||||
wxPyClientData* data = new wxPyClientData(clientData);
|
||||
self->SetClientObject(n, data);
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
%newgroup;
|
||||
|
||||
class wxControlWithItems : public wxControl, public wxItemContainer
|
||||
{
|
||||
public:
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
|
Reference in New Issue
Block a user