]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/src/_gbsizer.i
Script updates
[wxWidgets.git] / wxPython / src / _gbsizer.i
index 462502aedb22b001584e629de5420a887b592a1b..a87e92eef492089c3212afcdc8cbb9a9e8cd25ec 100644 (file)
@@ -53,7 +53,7 @@ bool wxGBSpan_helper(PyObject* source, wxGBSpan** obj)
 
 //---------------------------------------------------------------------------
 %newgroup;
-%noautorepr wxGBPosition;
+
 
 class wxGBPosition
 {
@@ -65,11 +65,18 @@ public:
     void SetRow(int row);
     void SetCol(int col);
     
-    bool operator==(const wxGBPosition& p) const;
-    bool operator!=(const wxGBPosition& p) const;
+    %extend {
+        bool __eq__(const wxGBPosition* other) { return other ? (*self == *other) : False; }
+        bool __ne__(const wxGBPosition* other) { return other ? (*self != *other) : True;  }
+    }
 
     %extend {
-        PyObject* asTuple() {
+        void Set(int row=0, int col=0) {
+            self->SetRow(row);
+            self->SetCol(col);
+        }
+        
+        PyObject* Get() {
             wxPyBeginBlockThreads();
             PyObject* tup = PyTuple_New(2);
             PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->GetRow()));
@@ -79,18 +86,18 @@ public:
         }
     }
     %pythoncode {
-    def __str__(self):                   return str(self.asTuple())
-    def __repr__(self):                  return 'wxGBPosition'+str(self.asTuple())
-    def __len__(self):                   return len(self.asTuple())
-    def __getitem__(self, index):        return self.asTuple()[index]
+    asTuple = Get
+    def __str__(self):                   return str(self.Get())
+    def __repr__(self):                  return 'wx.GBPosition'+str(self.Get())
+    def __len__(self):                   return len(self.Get())
+    def __getitem__(self, index):        return self.Get()[index]
     def __setitem__(self, index, val):
         if index == 0: self.SetRow(val)
         elif index == 1: self.SetCol(val)
         else: raise IndexError
-    def __nonzero__(self):               return self.asTuple() != (0,0)
-    def __getinitargs__(self):           return ()
-    def __getstate__(self):              return self.asTuple()
-    def __setstate__(self, state):       self.Set(*state)
+    def __nonzero__(self):               return self.Get() != (0,0)
+    __safe_for_unpickling__ = True
+    def __reduce__(self):                return (wx.GBPosition, self.Get())
     }
 
     %pythoncode {
@@ -101,7 +108,6 @@ public:
 
 
 
-%noautorepr wxGBSpan;
 
 class wxGBSpan
 {
@@ -113,11 +119,18 @@ public:
     void SetRowspan(int rowspan);
     void SetColspan(int colspan);
     
-    bool operator==(const wxGBSpan& o) const;
-    bool operator!=(const wxGBSpan& o) const;
+    %extend {
+        bool __eq__(const wxGBSpan* other) { return other ? (*self == *other) : False; }
+        bool __ne__(const wxGBSpan* other) { return other ? (*self != *other) : True;  }
+    }
 
     %extend {
-        PyObject* asTuple() {
+        void Set(int rowspan=1, int colspan=1) {
+            self->SetRowspan(rowspan);
+            self->SetColspan(colspan);
+        }
+        
+        PyObject* Get() {
             wxPyBeginBlockThreads();
             PyObject* tup = PyTuple_New(2);
             PyTuple_SET_ITEM(tup, 0, PyInt_FromLong(self->GetRowspan()));
@@ -127,18 +140,18 @@ public:
         }
     }
     %pythoncode {
-    def __str__(self):                   return str(self.asTuple())
-    def __repr__(self):                  return 'wxGBSpan'+str(self.asTuple())
-    def __len__(self):                   return len(self.asTuple())
-    def __getitem__(self, index):        return self.asTuple()[index]
+    asTuple = Get
+    def __str__(self):                   return str(self.Get())
+    def __repr__(self):                  return 'wx.GBSpan'+str(self.Get())
+    def __len__(self):                   return len(self.Get())
+    def __getitem__(self, index):        return self.Get()[index]
     def __setitem__(self, index, val):
         if index == 0: self.SetRowspan(val)
         elif index == 1: self.SetColspan(val)
         else: raise IndexError
-    def __nonzero__(self):               return self.asTuple() != (0,0)
-    def __getinitargs__(self):           return ()
-    def __getstate__(self):              return self.asTuple()
-    def __setstate__(self, state):       self.Set(*state)
+    def __nonzero__(self):               return self.Get() != (0,0)
+    __safe_for_unpickling__ = True
+    def __reduce__(self):                return (wx.GBSpan, self.Get())
     }
 
     %pythoncode {
@@ -186,30 +199,30 @@ public:
 
     // Get the grid position of the item
     wxGBPosition GetPos() const;
-    %pythoncode { def GetPosTuple(self): return self.GetPos().asTuple() }
+    %pythoncode { def GetPosTuple(self): return self.GetPos().Get() }
 
     // Get the row and column spanning of the item
     wxGBSpan GetSpan() const;
-    %pythoncode { def GetSpanTuple(self): return self.GetSpan().asTuple() }
+    %pythoncode { def GetSpanTuple(self): return self.GetSpan().Get() }
 
     // If the item is already a member of a sizer then first ensure that there
     // is no other item that would intersect with this one at the new
-    // position, then set the new position.  Returns true if the change is
+    // position, then set the new position.  Returns True if the change is
     // successful and after the next Layout the item will be moved.
     bool SetPos( const wxGBPosition& pos );
 
     // If the item is already a member of a sizer then first ensure that there
     // is no other item that would intersect with this one with its new
-    // spanning size, then set the new spanning.  Returns true if the change
+    // spanning size, then set the new spanning.  Returns True if the change
     // is successful and after the next Layout the item will be resized.
     bool SetSpan( const wxGBSpan& span );
 
     %nokwargs Intersects;
     
-    // Returns true if this item and the other item instersect
+    // Returns True if this item and the other item instersect
     bool Intersects(const wxGBSizerItem& other);
 
-    // Returns true if the given pos/span would intersect with this item.
+    // Returns True if the given pos/span would intersect with this item.
     bool Intersects(const wxGBPosition& pos, const wxGBSpan& span);
 
     // Get the row and column of the endpoint of this item
@@ -230,8 +243,8 @@ class wxGridBagSizer : public wxFlexGridSizer
 public:
     wxGridBagSizer(int vgap = 0, int hgap = 0 );
 
-    // The Add method returns true if the item was successfully placed at the
-    // given cell position, false if something was already there.
+    // The Add method returns True if the item was successfully placed at the
+    // given cell position, False if something was already there.
     %extend {
         bool Add( PyObject* item,
                   const wxGBPosition& pos,
@@ -242,7 +255,7 @@ public:
 
             wxPyUserData* data = NULL;
             wxPyBeginBlockThreads();
-            wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, true, false);
+            wxPySizerItemInfo info = wxPySizerItemTypeHelper(item, True, False);
             if ( userData && (info.window || info.sizer || info.gotSize) )
                 data = new wxPyUserData(userData);
             wxPyEndBlockThreads();
@@ -255,7 +268,7 @@ public:
             else if (info.gotSize)
                 return self->Add(info.size.GetWidth(), info.size.GetHeight(),
                                  pos, span, flag, border, data);
-            return false;
+            return False;
         }
     }
     
@@ -272,9 +285,9 @@ public:
     wxGBPosition GetItemPosition(wxSizer *sizer);
     wxGBPosition GetItemPosition(size_t index);
 
-    // Set the grid position of the specified item.  Returns true on success.
+    // Set the grid position of the specified item.  Returns True on success.
     // If the move is not allowed (because an item is already there) then
-    // false is returned.
+    // False is returned.
     %nokwargs SetItemPosition;
     bool SetItemPosition(wxWindow *window, const wxGBPosition& pos);
     bool SetItemPosition(wxSizer *sizer, const wxGBPosition& pos);
@@ -286,9 +299,9 @@ public:
     wxGBSpan GetItemSpan(wxSizer *sizer);
     wxGBSpan GetItemSpan(size_t index);
 
-    // Set the row/col spanning of the specified item. Returns true on
+    // Set the row/col spanning of the specified item. Returns True on
     // success.  If the move is not allowed (because an item is already there)
-    // then false is returned.
+    // then False is returned.
     %nokwargs SetItemSpan;
     bool SetItemSpan(wxWindow *window, const wxGBSpan& span);
     bool SetItemSpan(wxSizer *sizer, const wxGBSpan& span);
@@ -307,6 +320,13 @@ public:
     wxGBSizerItem* FindItemAtPosition(const wxGBPosition& pos);
 
     
+    // Return the sizer item located at the point given in pt, or NULL if
+    // there is no item at that point. The (x,y) coordinates in pt correspond
+    // to the client coordinates of the window using the sizer for
+    // layout. (non-recursive)
+    wxGBSizerItem* FindItemAtPoint(const wxPoint& pt);
+
+    
     // Return the sizer item that has a matching user data (it only compares
     // pointer values) or NULL if not found. (non-recursive)
     wxGBSizerItem* FindItemWithData(const wxObject* userData);
@@ -318,7 +338,7 @@ public:
 
 
     // Look at all items and see if any intersect (or would overlap) the given
-    // item.  Returns true if so, false if there would be no overlap.  If an
+    // item.  Returns True if so, False if there would be no overlap.  If an
     // excludeItem is given then it will not be checked for intersection, for
     // example it may be the item we are checking the position of.
     %nokwargs CheckForIntersection;