]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/contrib/ogl/_oglbasic.i
blit implemented using dc.GetAsBitmap with subrect
[wxWidgets.git] / wxPython / contrib / ogl / _oglbasic.i
index a171b48d02f9912af53d43293a0c61e104423718..8c9185aeb2bdc7f9073b6052661e997302ff6bc1 100644 (file)
@@ -42,7 +42,7 @@ public:
     int GetFormatMode();
     wxString GetName();
     wxString GetColour();
-    wxColour *GetActualColourObject();
+    wxColour GetActualColourObject();
     wxList& GetFormattedText();
     wxString GetPenColour();
     int GetPenStyle();
@@ -56,6 +56,22 @@ public:
 };
 
 
+//---------------------------------------------------------------------------
+
+/*
+ * User-defined attachment point
+ */
+
+class wxAttachmentPoint: public wxObject
+{
+public:
+    wxAttachmentPoint(int id=0, double x=0.0, double y=0.0);
+    int            m_id;           // Identifier
+    double         m_x;            // x offset from centre of object
+    double         m_y;            // y offset from centre of object
+};
+
+
 //---------------------------------------------------------------------------
 
 %{
@@ -65,11 +81,15 @@ public:
 
 class wxPyShapeEvtHandler : public wxObject {
 public:
-    %addtofunc wxPyShapeEvtHandler "self._setOORandCallbackInfo(PyShapeEvtHandler)"
-    
+    %pythonAppend wxPyShapeEvtHandler "self._setOORandCallbackInfo(PyShapeEvtHandler)"
+     %typemap(out) wxPyShapeEvtHandler*;    // turn off this typemap
+   
     wxPyShapeEvtHandler(wxPyShapeEvtHandler *prev = NULL,
                         wxPyShape *shape = NULL);
 
+    %typemap(out) wxPyShapeEvtHandler*      { $result = wxPyMake_wxShapeEvtHandler($1, $owner); }
+
+    
     void _setCallbackInfo(PyObject* self, PyObject* _class);
     %extend {
         void _setOORInfo(PyObject* _self) {
@@ -92,7 +112,7 @@ public:
     void base_OnDelete();
     void base_OnDraw(wxDC& dc);
     void base_OnDrawContents(wxDC& dc);
-    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnDrawBranches(wxDC& dc, bool erase = false);
     void base_OnMoveLinks(wxDC& dc);
     void base_OnErase(wxDC& dc);
     void base_OnEraseContents(wxDC& dc);
@@ -101,8 +121,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);
@@ -112,7 +132,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);
@@ -129,10 +149,13 @@ public:
 
 class wxPyShape : public wxPyShapeEvtHandler {
 public:
-    %addtofunc wxPyShape "self._setOORandCallbackInfo(PyShapeEvtHandler)"
-    
+    %pythonAppend wxPyShape "self._setOORandCallbackInfo(PyShape)"
+    %typemap(out) wxPyShape*;    // turn off this typemap
+
     wxPyShape(wxPyShapeCanvas *can = NULL);  
 
+    %typemap(out) wxPyShape*                { $result = wxPyMake_wxShapeEvtHandler($1, $owner); }
+
     void _setCallbackInfo(PyObject* self, PyObject* _class);
 
     void GetBoundingBoxMax(double *OUTPUT, double *OUTPUT);
@@ -175,21 +198,21 @@ public:
     void ResetMandatoryControlPoints();
     bool Recompute();
     void CalculateSize();
-    void Select(bool select = TRUE, wxDC* dc = NULL);
-    void SetHighlight(bool hi = TRUE, bool recurse = FALSE);
+    void Select(bool select = true, wxDC* dc = NULL);
+    void SetHighlight(bool hi = true, bool recurse = false);
     bool IsHighlighted() ;
     bool Selected();
     bool AncestorSelected();
-    void SetSensitivityFilter(int sens = OP_ALL, bool recursive = FALSE);
+    void SetSensitivityFilter(int sens = OP_ALL, bool recursive = false);
     int GetSensitivityFilter();
-    void SetDraggable(bool drag, bool recursive = FALSE);
+    void SetDraggable(bool drag, bool recursive = false);
     void SetFixedSize(bool x, bool y);
     void GetFixedSize(bool *OUTPUT, bool *OUTPUT) ;
     bool GetFixedWidth();
     bool GetFixedHeight();
     void SetSpaceAttachments(bool sp);
     bool GetSpaceAttachments() ;
-    void SetShadowMode(int mode, bool redraw = FALSE);
+    void SetShadowMode(int mode, bool redraw = false);
     int GetShadowMode();
     bool HitTest(double x, double y, int *OUTPUT, double *OUTPUT);
     void SetCentreResize(bool cr);
@@ -233,14 +256,14 @@ public:
 
     void Show(bool show);
     bool IsShown();
-    void Move(wxDC& dc, double x1, double y1, bool display = TRUE);
+    void Move(wxDC& dc, double x1, double y1, bool display = true);
     void Erase(wxDC& dc);
     void EraseContents(wxDC& dc);
     void Draw(wxDC& dc);
     void Flash();
     void MoveLinks(wxDC& dc);
     void DrawContents(wxDC& dc);
-    void SetSize(double x, double y, bool recursive = TRUE);
+    void SetSize(double x, double y, bool recursive = true);
     void SetAttachmentSize(double x, double y);
     void Attach(wxPyShapeCanvas *can);
     void Detach();
@@ -264,7 +287,7 @@ public:
     void SetRegionName(const wxString& name, int regionId = 0);
     wxString GetRegionName(int regionId);
     int GetRegionId(const wxString& name);
-    void NameRegions(const wxString& parentName = "");
+    void NameRegions(const wxString& parentName = wxPyEmptyString);
 
     // wxList& GetRegions();
     %extend {
@@ -294,13 +317,21 @@ public:
                                int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
     int GetNumberOfAttachments();
     bool AttachmentIsValid(int attachment);
+
+    %extend {
+        PyObject* GetAttachments() {
+            wxList& list = self->GetAttachments();
+            return wxPy_ConvertList(&list);            
+        }
+    }
+    
     bool GetAttachmentPositionEdge(int attachment, double *OUTPUT, double *OUTPUT,
                                    int nth = 0, int no_arcs = 1, wxPyLineShape *line = NULL);
     wxRealPoint CalcSimpleAttachment(const wxRealPoint& pt1, const wxRealPoint& pt2,
                                      int nth, int noArcs, wxPyLineShape* line);
     bool AttachmentSortTest(int attachmentPoint, const wxRealPoint& pt1, const wxRealPoint& pt2);
-    void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE);
-    void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = FALSE);
+    void EraseLinks(wxDC& dc, int attachment = -1, bool recurse = false);
+    void DrawLinks(wxDC& dc, int attachment = -1, bool recurse = false);
     bool MoveLineToNewAttachment(wxDC& dc, wxPyLineShape *to_move,
                                  double x, double y);
 
@@ -331,11 +362,12 @@ public:
     int LogicalToPhysicalAttachment(int logicalAttachment);
     bool Draggable();
     bool HasDescendant(wxPyShape *image);
-    wxPyShape *CreateNewCopy(bool resetMapping = TRUE, bool recompute = TRUE);
+    wxPyShape *CreateNewCopy(bool resetMapping = true, bool recompute = true);
     void Copy(wxPyShape& copy);
     void CopyWithHandler(wxPyShape& copy);
     void Rotate(double x, double y, double theta);
     double GetRotation();
+    void SetRotation(double rotation);
     void ClearAttachments();
     void Recentre(wxDC& dc);
     void ClearPointList(wxList& list);
@@ -345,7 +377,7 @@ public:
     void base_OnDelete();
     void base_OnDraw(wxDC& dc);
     void base_OnDrawContents(wxDC& dc);
-    void base_OnDrawBranches(wxDC& dc, bool erase = FALSE);
+    void base_OnDrawBranches(wxDC& dc, bool erase = false);
     void base_OnMoveLinks(wxDC& dc);
     void base_OnErase(wxDC& dc);
     void base_OnEraseContents(wxDC& dc);
@@ -354,8 +386,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);
@@ -365,7 +397,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);