From f94693fbc4e4cd2b58208fe3f244d200762e9840 Mon Sep 17 00:00:00 2001 From: Jaakko Salli Date: Fri, 29 May 2009 16:04:22 +0000 Subject: [PATCH] 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 --- include/wx/propgrid/advprops.h | 4 +- include/wx/propgrid/editors.h | 12 -- include/wx/propgrid/manager.h | 42 +---- include/wx/propgrid/property.h | 32 +--- include/wx/propgrid/propgrid.h | 24 +-- include/wx/propgrid/propgridiface.h | 241 ---------------------------- include/wx/propgrid/props.h | 6 - src/propgrid/property.cpp | 6 + 8 files changed, 17 insertions(+), 350 deletions(-) diff --git a/include/wx/propgrid/advprops.h b/include/wx/propgrid/advprops.h index 9326cc40b9..bc8bd3e49c 100644 --- a/include/wx/propgrid/advprops.h +++ b/include/wx/propgrid/advprops.h @@ -156,7 +156,7 @@ DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID) // ----------------------------------------------------------------------- // Declare part of custom colour property macro pairs. -#if wxUSE_IMAGE || defined(SWIG) +#if wxUSE_IMAGE #include "wx/image.h" #endif @@ -356,7 +356,7 @@ protected: #endif -#if wxUSE_CHOICEDLG || defined(SWIG) +#if wxUSE_CHOICEDLG /** @class wxMultiChoiceProperty @ingroup classes diff --git a/include/wx/propgrid/editors.h b/include/wx/propgrid/editors.h index dcc66671e5..cf81fcee2b 100644 --- a/include/wx/propgrid/editors.h +++ b/include/wx/propgrid/editors.h @@ -75,9 +75,7 @@ public: */ class WXDLLIMPEXP_PROPGRID wxPGEditor : public wxObject { -#ifndef SWIG DECLARE_ABSTRACT_CLASS(wxPGEditor) -#endif public: /** Constructor. */ @@ -223,9 +221,7 @@ wxPGEditor* wxPGEditor_##EDITOR = NULL; class WXDLLIMPEXP_PROPGRID wxPGTextCtrlEditor : public wxPGEditor { -#ifndef SWIG DECLARE_DYNAMIC_CLASS(wxPGTextCtrlEditor) -#endif public: wxPGTextCtrlEditor() {} virtual ~wxPGTextCtrlEditor(); @@ -270,9 +266,7 @@ public: class WXDLLIMPEXP_PROPGRID wxPGChoiceEditor : public wxPGEditor { -#ifndef SWIG DECLARE_DYNAMIC_CLASS(wxPGChoiceEditor) -#endif public: wxPGChoiceEditor() {} virtual ~wxPGChoiceEditor(); @@ -319,9 +313,7 @@ public: class WXDLLIMPEXP_PROPGRID wxPGComboBoxEditor : public wxPGChoiceEditor { -#ifndef SWIG DECLARE_DYNAMIC_CLASS(wxPGComboBoxEditor) -#endif public: wxPGComboBoxEditor() {} virtual ~wxPGComboBoxEditor(); @@ -392,9 +384,7 @@ public: // class WXDLLIMPEXP_PROPGRID wxPGCheckBoxEditor : public wxPGEditor { -#ifndef SWIG DECLARE_DYNAMIC_CLASS(wxPGCheckBoxEditor) -#endif public: wxPGCheckBoxEditor() {} virtual ~wxPGCheckBoxEditor(); @@ -456,9 +446,7 @@ public: */ class WXDLLIMPEXP_PROPGRID wxPGEditorDialogAdapter : public wxObject { -#ifndef SWIG DECLARE_ABSTRACT_CLASS(wxPGEditorDialogAdapter) -#endif public: wxPGEditorDialogAdapter() : wxObject() diff --git a/include/wx/propgrid/manager.h b/include/wx/propgrid/manager.h index f0addd43ed..5ee8fa0dcb 100644 --- a/include/wx/propgrid/manager.h +++ b/include/wx/propgrid/manager.h @@ -212,39 +212,18 @@ private: class WXDLLIMPEXP_PROPGRID wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface { -#ifndef SWIG DECLARE_CLASS(wxPropertyGridManager) -#endif friend class wxPropertyGridPage; public: -#ifdef 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 - +#ifndef SWIG /** Two step constructor. Call Create when this constructor is called to build up the wxPropertyGridManager. - */ + */ wxPropertyGridManager(); +#endif /** The default constructor. The styles to be used are styles valid for the wxWindow. @@ -259,8 +238,6 @@ public: /** Destructor */ virtual ~wxPropertyGridManager(); -#endif - /** Creates new property page. Note that the first page is not created automatically. @param label @@ -588,19 +565,6 @@ public: */ 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: // diff --git a/include/wx/propgrid/property.h b/include/wx/propgrid/property.h index 334ec1351f..41d04db5e5 100644 --- a/include/wx/propgrid/property.h +++ b/include/wx/propgrid/property.h @@ -2124,42 +2124,18 @@ public: wxPropertyGridPageState* GetParentState() const { return m_parentState; } #endif +#ifndef SWIG wxPGProperty* GetItemAtY( unsigned int y, unsigned int lh, unsigned int* nextItemY ) const; +#endif + + wxPGProperty* GetItemAtY( unsigned int y ) const; /** Returns (direct) child property with given name (or NULL if not found). */ 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 // Returns various display-related information for given column diff --git a/include/wx/propgrid/propgrid.h b/include/wx/propgrid/propgrid.h index 6001261918..93385a47d1 100644 --- a/include/wx/propgrid/propgrid.h +++ b/include/wx/propgrid/propgrid.h @@ -579,30 +579,10 @@ class WXDLLIMPEXP_PROPGRID friend class wxPropertyGridManager; friend class wxPGCanvas; -#ifndef SWIG DECLARE_DYNAMIC_CLASS(wxPropertyGrid) -#endif public: -#ifdef 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 - +#ifndef SWIG /** Two step constructor. @@ -610,6 +590,7 @@ public: wxPropertyGrid */ wxPropertyGrid(); +#endif /** The default constructor. The styles to be used are styles valid for the wxWindow and wxScrolledWindow. @@ -624,7 +605,6 @@ public: /** Destructor */ virtual ~wxPropertyGrid(); -#endif /** Adds given key combination to trigger given action. diff --git a/include/wx/propgrid/propgridiface.h b/include/wx/propgrid/propgridiface.h index 7694e80027..21a7d2c6ff 100644 --- a/include/wx/propgrid/propgridiface.h +++ b/include/wx/propgrid/propgridiface.h @@ -1260,246 +1260,6 @@ public: 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 @@." - "" - "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 @@." - "" - - 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. wxPGProperty* GetPropertyByNameA( const wxString& name ) const; @@ -1508,7 +1268,6 @@ public: virtual void RefreshProperty( wxPGProperty* p ) = 0; protected: - /** In derived class, implement to set editable state component with given name to given value. diff --git a/include/wx/propgrid/props.h b/include/wx/propgrid/props.h index ae426977ed..f4618041b3 100644 --- a/include/wx/propgrid/props.h +++ b/include/wx/propgrid/props.h @@ -695,9 +695,7 @@ protected: */ class WXDLLIMPEXP_PROPGRID wxDirProperty : public wxLongStringProperty { -#ifndef SWIG DECLARE_DYNAMIC_CLASS(wxDirProperty) -#endif public: wxDirProperty( const wxString& name = wxPG_LABEL, const wxString& label = wxPG_LABEL, @@ -953,10 +951,8 @@ protected: virtual void ArraySwap( size_t first, size_t second ) = 0; private: -#ifndef SWIG DECLARE_DYNAMIC_CLASS_NO_COPY(wxArrayEditorDialog) DECLARE_EVENT_TABLE() -#endif }; // ----------------------------------------------------------------------- @@ -1003,10 +999,8 @@ protected: virtual void ArraySwap( size_t first, size_t second ); private: -#ifndef SWIG DECLARE_DYNAMIC_CLASS_NO_COPY(wxPGArrayStringEditorDialog) DECLARE_EVENT_TABLE() -#endif }; // ----------------------------------------------------------------------- diff --git a/src/propgrid/property.cpp b/src/propgrid/property.cpp index dcda1ef198..b78ab0697a 100644 --- a/src/propgrid/property.cpp +++ b/src/propgrid/property.cpp @@ -2335,6 +2335,12 @@ wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y, unsigned int lh, unsigne return (wxPGProperty*) result; } +wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y ) const +{ + unsigned int nextItemY; + return GetItemAtY(y, GetGrid()->GetRowHeight(), &nextItemY); +} + void wxPGProperty::Empty() { size_t i;