]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/contrib/ogl/_oglshapes2.i
don't draw focus rect for custom drawn items when the list control doesn't have focus
[wxWidgets.git] / wxPython / contrib / ogl / _oglshapes2.i
index 8a8a570003e5b62882c7d45116fd51107f1c2efc..ef79bd7e70d8e5e48cf82915b80277d39a1da969 100644 (file)
@@ -22,7 +22,7 @@
 
 class wxPyEllipseShape : public wxPyShape {
 public:
-    %addtofunc wxPyEllipseShape "self._setOORandCallbackInfo(PyEllipseShape)"
+    %pythonAppend wxPyEllipseShape "self._setOORandCallbackInfo(PyEllipseShape)"
     
     wxPyEllipseShape(double width = 0.0, double height = 0.0);
 
@@ -39,8 +39,8 @@ public:
     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnSize(double x, double y);
-    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
-    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
@@ -50,7 +50,7 @@ public:
     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
     void base_OnDrawControlPoints(wxDC& dc);
     void base_OnEraseControlPoints(wxDC& dc);
-    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = true);
     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
@@ -66,7 +66,7 @@ public:
 
 class wxPyCircleShape : public wxPyEllipseShape {
 public:
-    %addtofunc wxPyCircleShape "self._setOORandCallbackInfo(PyCircleShape)"
+    %pythonAppend wxPyCircleShape "self._setOORandCallbackInfo(PyCircleShape)"
     
     wxPyCircleShape(double width = 0.0);
 
@@ -83,8 +83,8 @@ public:
     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnSize(double x, double y);
-    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
-    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
@@ -94,7 +94,7 @@ public:
     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
     void base_OnDrawControlPoints(wxDC& dc);
     void base_OnEraseControlPoints(wxDC& dc);
-    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = true);
     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
@@ -141,7 +141,7 @@ public:
 
 class wxPyLineShape : public wxPyShape {
 public:
-    %addtofunc wxPyLineShape "self._setOORandCallbackInfo(PyLineShape)"
+    %pythonAppend wxPyLineShape "self._setOORandCallbackInfo(PyLineShape)"
     
     wxPyLineShape();
 
@@ -163,13 +163,13 @@ public:
     bool ClearArrow(const wxString& name);
     void ClearArrowsAtPosition(int position = -1);
     void DrawArrow(wxDC& dc, wxArrowHead *arrow, double xOffset, bool proportionalOffset);
-    %name(DeleteArrowHeadId)bool DeleteArrowHead(long arrowId);
+    %Rename(DeleteArrowHeadId, bool,  DeleteArrowHead(long arrowId));
     bool DeleteArrowHead(int position, const wxString& name);
     bool DeleteLineControlPoint();
     void DrawArrows(wxDC& dc);
     void DrawRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
     void EraseRegion(wxDC& dc, wxShapeRegion *region, double x, double y);
-    %name(FindArrowHeadId)wxArrowHead * FindArrowHead(long arrowId);
+    %Rename(FindArrowHeadId, wxArrowHead *,  FindArrowHead(long arrowId));
     wxArrowHead * FindArrowHead(int position, const wxString& name);
     void FindLineEndPoints(double *OUTPUT, double *OUTPUT,
                            double *OUTPUT, double *OUTPUT);
@@ -193,7 +193,27 @@ public:
     %extend {
         PyObject* GetLineControlPoints() {
             wxList* list = self->GetLineControlPoints();
-            return wxPy_ConvertShapeList(list);
+            return wxPy_ConvertRealPointList(list);
+        }
+
+        // part of Patch# 893337
+        void SetLineControlPoints(PyObject* list) {
+            wxList* real_point_list = wxPy_wxRealPoint_ListHelper(list);
+            self->MakeLineControlPoints((int)(real_point_list->GetCount()));
+            wxList* old_control_points = self->GetLineControlPoints();
+            wxNode* old_node = old_control_points->GetFirst();
+            wxNode* real_node = real_point_list->GetFirst();
+            while(old_node)
+            {
+                wxRealPoint* old_point = (wxRealPoint*)old_node->GetData();
+                wxRealPoint* new_point = (wxRealPoint*)real_node->GetData();
+                old_point->x = new_point->x;
+                old_point->y = new_point->y;
+                old_node = old_node->GetNext();
+                real_node = real_node->GetNext();
+            }
+            self->ClearPointList(*real_point_list);
+            delete real_point_list;
         }
     }
 
@@ -227,8 +247,8 @@ public:
     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnSize(double x, double y);
-    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
-    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
@@ -238,7 +258,7 @@ public:
     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
     void base_OnDrawControlPoints(wxDC& dc);
     void base_OnEraseControlPoints(wxDC& dc);
-    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = true);
     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
@@ -254,7 +274,7 @@ public:
 
 class wxPyPolygonShape : public wxPyShape {
 public:
-    %addtofunc wxPyPolygonShape "self._setOORandCallbackInfo(PyPolygonShape)"
+    %pythonAppend wxPyPolygonShape "self._setOORandCallbackInfo(PyPolygonShape)"
     
     wxPyPolygonShape();
 
@@ -282,21 +302,7 @@ public:
     %extend {
         PyObject* GetPoints() {
             wxList* list = self->GetPoints();
-            PyObject*   pyList;
-            PyObject*   pyObj;
-            wxObject*   wxObj;
-            wxNode*     node = list->GetFirst();
-
-            wxPyBeginBlockThreads();
-            pyList = PyList_New(0);
-            while (node) {
-                wxObj = node->GetData();
-                pyObj = wxPyConstructObject(wxObj, wxT("wxRealPoint"), 0);
-                PyList_Append(pyList, pyObj);
-                node = node->GetNext();
-            }
-            wxPyEndBlockThreads();
-            return pyList;
+            return wxPy_ConvertRealPointList(list);
         }
 
         PyObject* GetOriginalPoints() {
@@ -306,7 +312,7 @@ public:
             wxObject*   wxObj;
             wxNode*     node = list->GetFirst();
 
-            wxPyBeginBlockThreads();
+            wxPyBlock_t blocked = wxPyBeginBlockThreads();
             pyList = PyList_New(0);
             while (node) {
                 wxObj = node->GetData();
@@ -314,7 +320,7 @@ public:
                 PyList_Append(pyList, pyObj);
                 node = node->GetNext();
             }
-            wxPyEndBlockThreads();
+            wxPyEndBlockThreads(blocked);
             return pyList;
         }        
     }
@@ -338,8 +344,8 @@ public:
     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnSize(double x, double y);
-    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
-    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
@@ -349,7 +355,7 @@ public:
     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
     void base_OnDrawControlPoints(wxDC& dc);
     void base_OnEraseControlPoints(wxDC& dc);
-    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = true);
     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
@@ -364,7 +370,7 @@ public:
 
 class wxPyTextShape : public wxPyRectangleShape {
 public:
-    %addtofunc wxPyTextShape "self._setOORandCallbackInfo(PyTextShape)"
+    %pythonAppend wxPyTextShape "self._setOORandCallbackInfo(PyTextShape)"
     
     wxPyTextShape(double width = 0.0, double height = 0.0);
 
@@ -382,8 +388,8 @@ public:
     void base_OnLeftDoubleClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnRightClick(double x, double y, int keys = 0, int attachment = 0);
     void base_OnSize(double x, double y);
-    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
-    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = True);
+    bool base_OnMovePre(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
+    void base_OnMovePost(wxDC& dc, double x, double y, double old_x, double old_y, bool display = true);
     void base_OnDragLeft(bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnBeginDragLeft(double x, double y, int keys=0, int attachment = 0);
     void base_OnEndDragLeft(double x, double y, int keys=0, int attachment = 0);
@@ -393,7 +399,7 @@ public:
     void base_OnDrawOutline(wxDC& dc, double x, double y, double w, double h);
     void base_OnDrawControlPoints(wxDC& dc);
     void base_OnEraseControlPoints(wxDC& dc);
-    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = True);
+    void base_OnMoveLink(wxDC& dc, bool moveControlPoints = true);
     void base_OnSizingDragLeft(wxPyControlPoint* pt, bool draw, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingBeginDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);
     void base_OnSizingEndDragLeft(wxPyControlPoint* pt, double x, double y, int keys=0, int attachment = 0);