]> git.saurik.com Git - wxWidgets.git/commitdiff
More forward-ported wxPython-bindings related cleanup from 2.9.0 branch, also documen...
authorJaakko Salli <jaakko.salli@dnainternet.net>
Sat, 30 May 2009 11:20:35 +0000 (11:20 +0000)
committerJaakko Salli <jaakko.salli@dnainternet.net>
Sat, 30 May 2009 11:20:35 +0000 (11:20 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60817 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/propgrid/manager.h
include/wx/propgrid/property.h
include/wx/propgrid/propgrid.h
include/wx/propgrid/propgridiface.h
interface/wx/propgrid/property.h
src/propgrid/property.cpp

index f0addd43ed8672d1d2a05a39590a6c3ba89f2998..fa45ef7b0c29cd23a7851b60b1d348dba3317221 100644 (file)
@@ -65,9 +65,7 @@ class WXDLLIMPEXP_PROPGRID wxPropertyGridPage : public wxEvtHandler,
                                                 public wxPropertyGridPageState
 {
     friend class wxPropertyGridManager;
                                                 public wxPropertyGridPageState
 {
     friend class wxPropertyGridManager;
-#ifndef SWIG
     DECLARE_CLASS(wxPropertyGridPage)
     DECLARE_CLASS(wxPropertyGridPage)
-#endif
 public:
 
     wxPropertyGridPage();
 public:
 
     wxPropertyGridPage();
@@ -212,39 +210,18 @@ private:
 class WXDLLIMPEXP_PROPGRID
     wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface
 {
 class WXDLLIMPEXP_PROPGRID
     wxPropertyGridManager : public wxPanel, public wxPropertyGridInterface
 {
-#ifndef SWIG
     DECLARE_CLASS(wxPropertyGridManager)
     DECLARE_CLASS(wxPropertyGridManager)
-#endif
     friend class wxPropertyGridPage;
 public:
 
     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();
     /**
         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.
 
     /** The default constructor. The styles to be used are styles valid for
         the wxWindow.
@@ -259,8 +236,6 @@ public:
     /** Destructor */
     virtual ~wxPropertyGridManager();
 
     /** Destructor */
     virtual ~wxPropertyGridManager();
 
-#endif
-
     /** Creates new property page. Note that the first page is not created
         automatically.
         @param label
     /** Creates new property page. Note that the first page is not created
         automatically.
         @param label
@@ -588,19 +563,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:
 
     //
index e84a602e38ce8af58e8d90d0b2b919d598d85a88..8f2da0c73022c5f9477137429d7d024cb1db959a 100644 (file)
@@ -1058,9 +1058,8 @@ class WXDLLIMPEXP_PROPGRID wxPGProperty : public wxObject
     friend class wxPropertyGridPageState;
     friend class wxPropertyGridPopulator;
     friend class wxStringProperty;  // Proper "<composed>" support requires this
     friend class wxPropertyGridPageState;
     friend class wxPropertyGridPopulator;
     friend class wxStringProperty;  // Proper "<composed>" support requires this
-#ifndef SWIG
+
     DECLARE_ABSTRACT_CLASS(wxPGProperty)
     DECLARE_ABSTRACT_CLASS(wxPGProperty)
-#endif
 public:
     typedef wxUint32 FlagType;
 
 public:
     typedef wxUint32 FlagType;
 
@@ -2148,9 +2147,15 @@ public:
     wxPropertyGridPageState* GetParentState() const { return m_parentState; }
 #endif
 
     wxPropertyGridPageState* GetParentState() const { return m_parentState; }
 #endif
 
+#ifndef SWIG
     wxPGProperty* GetItemAtY( unsigned int y,
                               unsigned int lh,
                               unsigned int* nextItemY ) const;
     wxPGProperty* GetItemAtY( unsigned int y,
                               unsigned int lh,
                               unsigned int* nextItemY ) const;
+#endif
+
+    /** Returns property at given virtual y coordinate.
+    */
+    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).
     */
index 8c49a819e13f89c61b95cf1b6f6e4b3a9ed42788..3c6c604055d14197df56c40f95d8fbb626ffbbc2 100644 (file)
@@ -583,30 +583,10 @@ class WXDLLIMPEXP_PROPGRID
     friend class wxPropertyGridManager;
     friend class wxPGCanvas;
 
     friend class wxPropertyGridManager;
     friend class wxPGCanvas;
 
-#ifndef SWIG
     DECLARE_DYNAMIC_CLASS(wxPropertyGrid)
     DECLARE_DYNAMIC_CLASS(wxPropertyGrid)
-#endif
 public:
 
 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.
 
     /**
         Two step constructor.
 
@@ -614,6 +594,7 @@ public:
         wxPropertyGrid
     */
     wxPropertyGrid();
         wxPropertyGrid
     */
     wxPropertyGrid();
+#endif
 
     /** The default constructor. The styles to be used are styles valid for
         the wxWindow and wxScrolledWindow.
 
     /** The default constructor. The styles to be used are styles valid for
         the wxWindow and wxScrolledWindow.
@@ -628,7 +609,6 @@ public:
 
     /** Destructor */
     virtual ~wxPropertyGrid();
 
     /** Destructor */
     virtual ~wxPropertyGrid();
-#endif
 
     /** Adds given key combination to trigger given action.
 
 
     /** Adds given key combination to trigger given action.
 
index 3f93b4a2a6297355ed90dcc1a22e669251d0e5ff..2ef34d7a2de8697acdb9a542bcf575d2b9aa74d9 100644 (file)
@@ -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.
     wxPGProperty* GetPropertyByNameA( const wxString& name ) const;
 
     // GetPropertyByName With nice assertion error message.
     wxPGProperty* GetPropertyByNameA( const wxString& name ) const;
 
index f553085577ec1b01a630cf0ccc8e6a9ee968c8f2..f55d8920889b95a2cddbb893c5a998b3e37f57cb 100644 (file)
@@ -1580,6 +1580,10 @@ public:
     wxArrayInt GetIndicesForStrings( const wxArrayString& strings,
                                      wxArrayString* unmatched = NULL ) const;
 
     wxArrayInt GetIndicesForStrings( const wxArrayString& strings,
                                      wxArrayString* unmatched = NULL ) const;
 
+    /** Returns property at given virtual y coordinate.
+    */
+    wxPGProperty* GetItemAtY( unsigned int y ) const;
+
     /**
         Returns @true if item at given index has a valid value;
     */
     /**
         Returns @true if item at given index has a valid value;
     */
index 88cf94dab81262daee9bf4c14771de0ae026abd0..913c554e5222683d4c3940c6a1ea3ec43f2c0c53 100644 (file)
@@ -2274,7 +2274,9 @@ int wxPGProperty::GetChildrenHeight( int lh, int iMax_ ) const
     return h;
 }
 
     return h;
 }
 
-wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y, unsigned int lh, unsigned int* nextItemY ) const
+wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y,
+                                        unsigned int lh,
+                                        unsigned int* nextItemY ) const
 {
     wxASSERT( nextItemY );
 
 {
     wxASSERT( nextItemY );
 
@@ -2346,6 +2348,12 @@ void wxPGProperty::Empty()
     m_children.clear();
 }
 
     m_children.clear();
 }
 
+wxPGProperty* wxPGProperty::GetItemAtY( unsigned int y ) const
+{
+    unsigned int nextItem;
+    return GetItemAtY( y, GetGrid()->GetRowHeight(), &nextItem);
+}
+
 void wxPGProperty::DeleteChildren()
 {
     wxPropertyGridPageState* state = m_parentState;
 void wxPGProperty::DeleteChildren()
 {
     wxPropertyGridPageState* state = m_parentState;