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:
Robin Dunn
2003-11-12 21:34:20 +00:00
parent eb6a4098a0
commit d14a1e2856
987 changed files with 671143 additions and 783083 deletions

169
wxPython/src/_control.i Normal file
View 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:
};
//---------------------------------------------------------------------------