wxPython 2.9.0 bindings related cleanup (should not have broken anything, really...)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_9_0_BRANCH@60793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -156,7 +156,7 @@ DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID)
|
|||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
// Declare part of custom colour property macro pairs.
|
// Declare part of custom colour property macro pairs.
|
||||||
|
|
||||||
#if wxUSE_IMAGE || defined(SWIG)
|
#if wxUSE_IMAGE
|
||||||
#include "wx/image.h"
|
#include "wx/image.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -356,7 +356,7 @@ protected:
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if wxUSE_CHOICEDLG || defined(SWIG)
|
#if wxUSE_CHOICEDLG
|
||||||
|
|
||||||
/** @class wxMultiChoiceProperty
|
/** @class wxMultiChoiceProperty
|
||||||
@ingroup classes
|
@ingroup classes
|
||||||
|
@@ -75,9 +75,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGEditor : public wxObject
|
class WXDLLIMPEXP_PROPGRID wxPGEditor : public wxObject
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxPGEditor)
|
DECLARE_ABSTRACT_CLASS(wxPGEditor)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
/** Constructor. */
|
/** Constructor. */
|
||||||
@@ -223,9 +221,7 @@ wxPGEditor* wxPGEditor_##EDITOR = NULL;
|
|||||||
|
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGTextCtrlEditor : public wxPGEditor
|
class WXDLLIMPEXP_PROPGRID wxPGTextCtrlEditor : public wxPGEditor
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPGTextCtrlEditor)
|
DECLARE_DYNAMIC_CLASS(wxPGTextCtrlEditor)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
wxPGTextCtrlEditor() {}
|
wxPGTextCtrlEditor() {}
|
||||||
virtual ~wxPGTextCtrlEditor();
|
virtual ~wxPGTextCtrlEditor();
|
||||||
@@ -270,9 +266,7 @@ public:
|
|||||||
|
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGChoiceEditor : public wxPGEditor
|
class WXDLLIMPEXP_PROPGRID wxPGChoiceEditor : public wxPGEditor
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPGChoiceEditor)
|
DECLARE_DYNAMIC_CLASS(wxPGChoiceEditor)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
wxPGChoiceEditor() {}
|
wxPGChoiceEditor() {}
|
||||||
virtual ~wxPGChoiceEditor();
|
virtual ~wxPGChoiceEditor();
|
||||||
@@ -319,9 +313,7 @@ public:
|
|||||||
|
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGComboBoxEditor : public wxPGChoiceEditor
|
class WXDLLIMPEXP_PROPGRID wxPGComboBoxEditor : public wxPGChoiceEditor
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPGComboBoxEditor)
|
DECLARE_DYNAMIC_CLASS(wxPGComboBoxEditor)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
wxPGComboBoxEditor() {}
|
wxPGComboBoxEditor() {}
|
||||||
virtual ~wxPGComboBoxEditor();
|
virtual ~wxPGComboBoxEditor();
|
||||||
@@ -392,9 +384,7 @@ public:
|
|||||||
//
|
//
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGCheckBoxEditor : public wxPGEditor
|
class WXDLLIMPEXP_PROPGRID wxPGCheckBoxEditor : public wxPGEditor
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPGCheckBoxEditor)
|
DECLARE_DYNAMIC_CLASS(wxPGCheckBoxEditor)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
wxPGCheckBoxEditor() {}
|
wxPGCheckBoxEditor() {}
|
||||||
virtual ~wxPGCheckBoxEditor();
|
virtual ~wxPGCheckBoxEditor();
|
||||||
@@ -456,9 +446,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
class WXDLLIMPEXP_PROPGRID wxPGEditorDialogAdapter : public wxObject
|
class WXDLLIMPEXP_PROPGRID wxPGEditorDialogAdapter : public wxObject
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_ABSTRACT_CLASS(wxPGEditorDialogAdapter)
|
DECLARE_ABSTRACT_CLASS(wxPGEditorDialogAdapter)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
wxPGEditorDialogAdapter()
|
wxPGEditorDialogAdapter()
|
||||||
: wxObject()
|
: wxObject()
|
||||||
|
@@ -212,39 +212,18 @@ private:
|
|||||||
class WXDLLIMPEXP_PROPGRID
|
class WXDLLIMPEXP_PROPGRID
|
||||||
wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface
|
wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_CLASS(wxPropertyGridManager)
|
DECLARE_CLASS(wxPropertyGridManager)
|
||||||
#endif
|
|
||||||
friend class wxPropertyGridPage;
|
friend class wxPropertyGridPage;
|
||||||
public:
|
public:
|
||||||
|
|
||||||
#ifdef SWIG
|
#ifndef SWIG
|
||||||
%pythonAppend wxPropertyGridManager {
|
|
||||||
self._setOORInfo(self)
|
|
||||||
self.DoDefaultTypeMappings()
|
|
||||||
self.edited_objects = {}
|
|
||||||
self.DoDefaultValueTypeMappings()
|
|
||||||
if not hasattr(self.__class__,'_vt2setter'):
|
|
||||||
self.__class__._vt2setter = {}
|
|
||||||
}
|
|
||||||
%pythonAppend wxPropertyGridManager() ""
|
|
||||||
|
|
||||||
wxPropertyGridManager( wxWindow *parent, wxWindowID id = wxID_ANY,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
|
||||||
const wxSize& size = wxDefaultSize,
|
|
||||||
long style = wxPGMAN_DEFAULT_STYLE,
|
|
||||||
const wxChar* name =
|
|
||||||
wxPyPropertyGridManagerNameStr );
|
|
||||||
%RenameCtor(PrePropertyGridManager, wxPropertyGridManager());
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Two step constructor.
|
Two step constructor.
|
||||||
Call Create when this constructor is called to build up the
|
Call Create when this constructor is called to build up the
|
||||||
wxPropertyGridManager.
|
wxPropertyGridManager.
|
||||||
*/
|
*/
|
||||||
wxPropertyGridManager();
|
wxPropertyGridManager();
|
||||||
|
#endif
|
||||||
|
|
||||||
/** The default constructor. The styles to be used are styles valid for
|
/** The default constructor. The styles to be used are styles valid for
|
||||||
the wxWindow.
|
the wxWindow.
|
||||||
@@ -259,8 +238,6 @@ public:
|
|||||||
/** Destructor */
|
/** Destructor */
|
||||||
virtual ~wxPropertyGridManager();
|
virtual ~wxPropertyGridManager();
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Creates new property page. Note that the first page is not created
|
/** Creates new property page. Note that the first page is not created
|
||||||
automatically.
|
automatically.
|
||||||
@param label
|
@param label
|
||||||
@@ -588,19 +565,6 @@ public:
|
|||||||
*/
|
*/
|
||||||
void SetSplitterPosition( int pos, int column = 0 );
|
void SetSplitterPosition( int pos, int column = 0 );
|
||||||
|
|
||||||
#ifdef SWIG
|
|
||||||
%pythoncode {
|
|
||||||
def GetValuesFromPage(self,
|
|
||||||
page,
|
|
||||||
dict_=None,
|
|
||||||
as_strings=False,
|
|
||||||
inc_attributes=False):
|
|
||||||
"Same as GetValues, but returns values from specific page only."
|
|
||||||
"For argument descriptions, see GetValues."
|
|
||||||
return page.GetPropertyValues(dict_, as_strings, inc_attributes)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@@ -2124,42 +2124,18 @@ public:
|
|||||||
wxPropertyGridPageState* GetParentState() const { return m_parentState; }
|
wxPropertyGridPageState* GetParentState() const { return m_parentState; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef SWIG
|
||||||
wxPGProperty* GetItemAtY( unsigned int y,
|
wxPGProperty* GetItemAtY( unsigned int y,
|
||||||
unsigned int lh,
|
unsigned int lh,
|
||||||
unsigned int* nextItemY ) const;
|
unsigned int* nextItemY ) const;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
wxPGProperty* GetItemAtY( unsigned int y ) const;
|
||||||
|
|
||||||
/** Returns (direct) child property with given name (or NULL if not found).
|
/** Returns (direct) child property with given name (or NULL if not found).
|
||||||
*/
|
*/
|
||||||
wxPGProperty* GetPropertyByName( const wxString& name ) const;
|
wxPGProperty* GetPropertyByName( const wxString& name ) const;
|
||||||
|
|
||||||
#ifdef SWIG
|
|
||||||
%extend {
|
|
||||||
DocStr(GetClientData,
|
|
||||||
"Returns the client data object for a property", "");
|
|
||||||
PyObject* GetClientData() {
|
|
||||||
wxPyClientData* data = (wxPyClientData*)self->GetClientObject();
|
|
||||||
if (data) {
|
|
||||||
Py_INCREF(data->m_obj);
|
|
||||||
return data->m_obj;
|
|
||||||
} else {
|
|
||||||
Py_INCREF(Py_None);
|
|
||||||
return Py_None;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DocStr(SetClientData,
|
|
||||||
"Associate the given client data.", "");
|
|
||||||
void SetClientData(PyObject* clientData) {
|
|
||||||
wxPyClientData* data = new wxPyClientData(clientData);
|
|
||||||
self->SetClientObject(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
%pythoncode {
|
|
||||||
GetClientObject = GetClientData
|
|
||||||
SetClientObject = SetClientData
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SWIG
|
#ifndef SWIG
|
||||||
|
|
||||||
// Returns various display-related information for given column
|
// Returns various display-related information for given column
|
||||||
|
@@ -579,30 +579,10 @@ class WXDLLIMPEXP_PROPGRID
|
|||||||
friend class wxPropertyGridManager;
|
friend class wxPropertyGridManager;
|
||||||
friend class wxPGCanvas;
|
friend class wxPGCanvas;
|
||||||
|
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxPropertyGrid)
|
DECLARE_DYNAMIC_CLASS(wxPropertyGrid)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
#ifdef SWIG
|
#ifndef SWIG
|
||||||
%pythonAppend wxPropertyGrid {
|
|
||||||
self._setOORInfo(self)
|
|
||||||
self.DoDefaultTypeMappings()
|
|
||||||
self.edited_objects = {}
|
|
||||||
self.DoDefaultValueTypeMappings()
|
|
||||||
if not hasattr(self.__class__,'_vt2setter'):
|
|
||||||
self.__class__._vt2setter = {}
|
|
||||||
}
|
|
||||||
%pythonAppend wxPropertyGrid() ""
|
|
||||||
|
|
||||||
wxPropertyGrid( wxWindow *parent, wxWindowID id = wxID_ANY,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
|
||||||
const wxSize& size = wxDefaultSize,
|
|
||||||
long style = wxPG_DEFAULT_STYLE,
|
|
||||||
const wxChar* name = wxPyPropertyGridNameStr );
|
|
||||||
%RenameCtor(PrePropertyGrid, wxPropertyGrid());
|
|
||||||
#else
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Two step constructor.
|
Two step constructor.
|
||||||
|
|
||||||
@@ -610,6 +590,7 @@ public:
|
|||||||
wxPropertyGrid
|
wxPropertyGrid
|
||||||
*/
|
*/
|
||||||
wxPropertyGrid();
|
wxPropertyGrid();
|
||||||
|
#endif
|
||||||
|
|
||||||
/** The default constructor. The styles to be used are styles valid for
|
/** The default constructor. The styles to be used are styles valid for
|
||||||
the wxWindow and wxScrolledWindow.
|
the wxWindow and wxScrolledWindow.
|
||||||
@@ -624,7 +605,6 @@ public:
|
|||||||
|
|
||||||
/** Destructor */
|
/** Destructor */
|
||||||
virtual ~wxPropertyGrid();
|
virtual ~wxPropertyGrid();
|
||||||
#endif
|
|
||||||
|
|
||||||
/** Adds given key combination to trigger given action.
|
/** Adds given key combination to trigger given action.
|
||||||
|
|
||||||
|
@@ -1260,246 +1260,6 @@ public:
|
|||||||
m_pState->DoSortChildren(p, flags);
|
m_pState->DoSortChildren(p, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SWIG
|
|
||||||
%pythoncode {
|
|
||||||
def MapType(class_,factory):
|
|
||||||
"Registers Python type/class to property mapping.\n\nfactory: Property builder function/class."
|
|
||||||
global _type2property
|
|
||||||
try:
|
|
||||||
mappings = _type2property
|
|
||||||
except NameError:
|
|
||||||
raise AssertionError("call only after a propertygrid or manager instance constructed")
|
|
||||||
|
|
||||||
mappings[class_] = factory
|
|
||||||
|
|
||||||
|
|
||||||
def DoDefaultTypeMappings(self):
|
|
||||||
"Map built-in properties."
|
|
||||||
global _type2property
|
|
||||||
try:
|
|
||||||
mappings = _type2property
|
|
||||||
|
|
||||||
return
|
|
||||||
except NameError:
|
|
||||||
mappings = {}
|
|
||||||
_type2property = mappings
|
|
||||||
|
|
||||||
mappings[str] = StringProperty
|
|
||||||
mappings[unicode] = StringProperty
|
|
||||||
mappings[int] = IntProperty
|
|
||||||
mappings[float] = FloatProperty
|
|
||||||
mappings[bool] = BoolProperty
|
|
||||||
mappings[list] = ArrayStringProperty
|
|
||||||
mappings[tuple] = ArrayStringProperty
|
|
||||||
mappings[wx.Font] = FontProperty
|
|
||||||
mappings[wx.Colour] = ColourProperty
|
|
||||||
"mappings[wx.Size] = SizeProperty"
|
|
||||||
"mappings[wx.Point] = PointProperty"
|
|
||||||
"mappings[wx.FontData] = FontDataProperty"
|
|
||||||
|
|
||||||
def DoDefaultValueTypeMappings(self):
|
|
||||||
"Map pg value type ids to getter methods."
|
|
||||||
global _vt2getter
|
|
||||||
try:
|
|
||||||
vt2getter = _vt2getter
|
|
||||||
|
|
||||||
return
|
|
||||||
except NameError:
|
|
||||||
vt2getter = {}
|
|
||||||
_vt2getter = vt2getter
|
|
||||||
|
|
||||||
def GetPropertyValues(self,dict_=None, as_strings=False, inc_attributes=False):
|
|
||||||
"Returns values in the grid."
|
|
||||||
""
|
|
||||||
"dict_: if not given, then a new one is created. dict_ can be"
|
|
||||||
" object as well, in which case it's __dict__ is used."
|
|
||||||
"as_strings: if True, then string representations of values"
|
|
||||||
" are fetched instead of native types. Useful for config and such."
|
|
||||||
"inc_attributes: if True, then property attributes are added"
|
|
||||||
" as @<propname>@<attr>."
|
|
||||||
""
|
|
||||||
"Return value: dictionary with values. It is always a dictionary,"
|
|
||||||
"so if dict_ was object with __dict__ attribute, then that attribute"
|
|
||||||
"is returned."
|
|
||||||
|
|
||||||
if dict_ is None:
|
|
||||||
dict_ = {}
|
|
||||||
elif hasattr(dict_,'__dict__'):
|
|
||||||
dict_ = dict_.__dict__
|
|
||||||
|
|
||||||
if not as_strings:
|
|
||||||
getter = self.GetPropertyValue
|
|
||||||
else:
|
|
||||||
getter = self.GetPropertyValueAsString
|
|
||||||
|
|
||||||
it = self.GetVIterator(PG_ITERATE_PROPERTIES)
|
|
||||||
while not it.AtEnd():
|
|
||||||
p = it.GetProperty()
|
|
||||||
name = p.GetName()
|
|
||||||
|
|
||||||
dict_[name] = getter(p)
|
|
||||||
|
|
||||||
if inc_attributes:
|
|
||||||
attrs = p.GetAttributes()
|
|
||||||
if attrs and len(attrs):
|
|
||||||
dict_['@%s@attr'%name] = attrs
|
|
||||||
|
|
||||||
it.Next()
|
|
||||||
|
|
||||||
return dict_
|
|
||||||
|
|
||||||
GetValues = GetPropertyValues
|
|
||||||
|
|
||||||
|
|
||||||
def SetPropertyValues(self,dict_):
|
|
||||||
"Sets property values from dict_, which can be either\ndictionary or an object with __dict__ attribute."
|
|
||||||
""
|
|
||||||
"autofill: If true, keys with not relevant properties"
|
|
||||||
" are auto-created. For more info, see AutoFill."
|
|
||||||
""
|
|
||||||
"Notes:"
|
|
||||||
" * Keys starting with underscore are ignored."
|
|
||||||
" * Attributes can be set with entries named @<propname>@<attr>."
|
|
||||||
""
|
|
||||||
|
|
||||||
autofill = False
|
|
||||||
|
|
||||||
if dict_ is None:
|
|
||||||
dict_ = {}
|
|
||||||
elif hasattr(dict_,'__dict__'):
|
|
||||||
dict_ = dict_.__dict__
|
|
||||||
|
|
||||||
attr_dicts = []
|
|
||||||
|
|
||||||
def set_sub_obj(k0,dict_):
|
|
||||||
for k,v in dict_.iteritems():
|
|
||||||
if k[0] != '_':
|
|
||||||
if k.endswith('@attr'):
|
|
||||||
attr_dicts.append((k[1:-5],v))
|
|
||||||
else:
|
|
||||||
try:
|
|
||||||
self.SetPropertyValue(k,v)
|
|
||||||
except:
|
|
||||||
try:
|
|
||||||
if autofill:
|
|
||||||
self._AutoFillOne(k0,k,v)
|
|
||||||
continue
|
|
||||||
except:
|
|
||||||
if isinstance(v,dict):
|
|
||||||
set_sub_obj(k,v)
|
|
||||||
elif hasattr(v,'__dict__'):
|
|
||||||
set_sub_obj(k,v.__dict__)
|
|
||||||
|
|
||||||
|
|
||||||
for k,v in attr_dicts:
|
|
||||||
p = GetPropertyByName(k)
|
|
||||||
if not p:
|
|
||||||
raise AssertionError("No such property: '%s'"%k)
|
|
||||||
for an,av in v.iteritems():
|
|
||||||
p.SetAttribute(an, av)
|
|
||||||
|
|
||||||
|
|
||||||
cur_page = False
|
|
||||||
is_manager = isinstance(self,PropertyGridManager)
|
|
||||||
|
|
||||||
try:
|
|
||||||
set_sub_obj(self.GetGrid().GetRoot(),dict_)
|
|
||||||
except:
|
|
||||||
import traceback
|
|
||||||
traceback.print_exc()
|
|
||||||
|
|
||||||
self.Refresh()
|
|
||||||
|
|
||||||
SetValues = SetPropertyValues
|
|
||||||
|
|
||||||
def _AutoFillMany(self,cat,dict_):
|
|
||||||
for k,v in dict_.iteritems():
|
|
||||||
self._AutoFillOne(cat,k,v)
|
|
||||||
|
|
||||||
|
|
||||||
def _AutoFillOne(self,cat,k,v):
|
|
||||||
global _type2property
|
|
||||||
|
|
||||||
factory = _type2property.get(v.__class__,None)
|
|
||||||
|
|
||||||
if factory:
|
|
||||||
self.AppendIn( cat, factory(k,k,v) )
|
|
||||||
elif hasattr(v,'__dict__'):
|
|
||||||
cat2 = self.AppendIn( cat, PropertyCategory(k) )
|
|
||||||
self._AutoFillMany(cat2,v.__dict__)
|
|
||||||
elif isinstance(v,dict):
|
|
||||||
cat2 = self.AppendIn( cat, PropertyCategory(k) )
|
|
||||||
self._AutoFillMany(cat2,v)
|
|
||||||
elif not k.startswith('_'):
|
|
||||||
raise AssertionError("member '%s' is of unregisted type/class '%s'"%(k,v.__class__))
|
|
||||||
|
|
||||||
|
|
||||||
def AutoFill(self,obj,parent=None):
|
|
||||||
"Clears properties and re-fills to match members and\nvalues of given object or dictionary obj."
|
|
||||||
|
|
||||||
self.edited_objects[parent] = obj
|
|
||||||
|
|
||||||
cur_page = False
|
|
||||||
is_manager = isinstance(self,PropertyGridManager)
|
|
||||||
|
|
||||||
if not parent:
|
|
||||||
if is_manager:
|
|
||||||
page = self.GetCurrentPage()
|
|
||||||
page.Clear()
|
|
||||||
parent = page.GetRoot()
|
|
||||||
else:
|
|
||||||
self.Clear()
|
|
||||||
parent = self.GetGrid().GetRoot()
|
|
||||||
else:
|
|
||||||
it = self.GetIterator(PG_ITERATE_PROPERTIES, parent)
|
|
||||||
it.Next() # Skip the parent
|
|
||||||
while not it.AtEnd():
|
|
||||||
p = it.GetProperty()
|
|
||||||
if not p.IsSomeParent(parent):
|
|
||||||
break
|
|
||||||
|
|
||||||
self.DeleteProperty(p)
|
|
||||||
|
|
||||||
name = p.GetName()
|
|
||||||
it.Next()
|
|
||||||
|
|
||||||
if not is_manager or page == self.GetCurrentPage():
|
|
||||||
self.Freeze()
|
|
||||||
cur_page = True
|
|
||||||
|
|
||||||
try:
|
|
||||||
self._AutoFillMany(parent,obj.__dict__)
|
|
||||||
except:
|
|
||||||
import traceback
|
|
||||||
traceback.print_exc()
|
|
||||||
|
|
||||||
if cur_page:
|
|
||||||
self.Thaw()
|
|
||||||
|
|
||||||
def RegisterEditor(self, editor, editorName=None):
|
|
||||||
"Transform class into instance, if necessary."
|
|
||||||
if not isinstance(editor, PGEditor):
|
|
||||||
editor = editor()
|
|
||||||
if not editorName:
|
|
||||||
editorName = editor.__class__.__name__
|
|
||||||
try:
|
|
||||||
self._editor_instances.append(editor)
|
|
||||||
except:
|
|
||||||
self._editor_instances = [editor]
|
|
||||||
RegisterEditor(editor, editorName)
|
|
||||||
|
|
||||||
def GetPropertyClientData(self, p):
|
|
||||||
if isinstance(p, basestring):
|
|
||||||
p = self.GetPropertyByName(p)
|
|
||||||
return p.GetClientData()
|
|
||||||
|
|
||||||
def SetPropertyClientData(self, p, data):
|
|
||||||
if isinstance(p, basestring):
|
|
||||||
p = self.GetPropertyByName(p)
|
|
||||||
return p.SetClientData(data)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// GetPropertyByName With nice assertion error message.
|
// GetPropertyByName With nice assertion error message.
|
||||||
wxPGProperty* GetPropertyByNameA( const wxString& name ) const;
|
wxPGProperty* GetPropertyByNameA( const wxString& name ) const;
|
||||||
|
|
||||||
@@ -1508,7 +1268,6 @@ public:
|
|||||||
virtual void RefreshProperty( wxPGProperty* p ) = 0;
|
virtual void RefreshProperty( wxPGProperty* p ) = 0;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
/**
|
/**
|
||||||
In derived class, implement to set editable state component with
|
In derived class, implement to set editable state component with
|
||||||
given name to given value.
|
given name to given value.
|
||||||
|
@@ -695,9 +695,7 @@ protected:
|
|||||||
*/
|
*/
|
||||||
class WXDLLIMPEXP_PROPGRID wxDirProperty : public wxLongStringProperty
|
class WXDLLIMPEXP_PROPGRID wxDirProperty : public wxLongStringProperty
|
||||||
{
|
{
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxDirProperty)
|
DECLARE_DYNAMIC_CLASS(wxDirProperty)
|
||||||
#endif
|
|
||||||
public:
|
public:
|
||||||
wxDirProperty( const wxString& name = wxPG_LABEL,
|
wxDirProperty( const wxString& name = wxPG_LABEL,
|
||||||
const wxString& label = wxPG_LABEL,
|
const wxString& label = wxPG_LABEL,
|
||||||
@@ -953,10 +951,8 @@ protected:
|
|||||||
virtual void ArraySwap( size_t first, size_t second ) = 0;
|
virtual void ArraySwap( size_t first, size_t second ) = 0;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxArrayEditorDialog)
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxArrayEditorDialog)
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
@@ -1003,10 +999,8 @@ protected:
|
|||||||
virtual void ArraySwap( size_t first, size_t second );
|
virtual void ArraySwap( size_t first, size_t second );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
#ifndef SWIG
|
|
||||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxPGArrayStringEditorDialog)
|
DECLARE_DYNAMIC_CLASS_NO_COPY(wxPGArrayStringEditorDialog)
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// -----------------------------------------------------------------------
|
||||||
|
@@ -2335,6 +2335,12 @@ wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y, unsigned int lh, unsigne
|
|||||||
return (wxPGProperty*) result;
|
return (wxPGProperty*) result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y ) const
|
||||||
|
{
|
||||||
|
unsigned int nextItemY;
|
||||||
|
return GetItemAtY(y, GetGrid()->GetRowHeight(), &nextItemY);
|
||||||
|
}
|
||||||
|
|
||||||
void wxPGProperty::Empty()
|
void wxPGProperty::Empty()
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
|
Reference in New Issue
Block a user