]> git.saurik.com Git - wxWidgets.git/commitdiff
Added a typemap that converts the references returned for some GDI
authorRobin Dunn <robin@alldunn.com>
Wed, 3 Mar 2004 02:02:28 +0000 (02:02 +0000)
committerRobin Dunn <robin@alldunn.com>
Wed, 3 Mar 2004 02:02:28 +0000 (02:02 +0000)
objects (Brush, Pen, Font, etc.) into copies, (taking advantage of the
copy-on-write capabilities of the C++ class.)  This is to work around
an issue where getting a GDI object changing it and setting it back to
the DC would trigger an incorrect optimization.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26044 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

wxPython/src/my_typemaps.i

index 968ff7a26b8ef50abf0ab375ed0985c0c9f4b056..754704242bb402837526a964ab405abdef084cff 100644 (file)
 %typemap(out) bool "$result = $1 ? Py_True : Py_False; Py_INCREF($result);"
 
 
+
+//---------------------------------------------------------------------------
+// Typemap for when GDI objects are returned by reference.  This will cause a
+// copy to be made instead of returning a reference to the same instance.  The
+// GDI object's internal refcounting scheme will do a copy-on-write of the
+// internal data as needed.
+
+// These too?
+//, wxRegion&, wxPalette&
+
+%typemap(out) wxBrush&, wxPen&, wxFont&, wxBitmap&, wxIcon&, wxCursor& {
+    $*1_ltype* resultptr = new $*1_ltype(*$1);
+    $result = SWIG_NewPointerObj((void*)(resultptr), $1_descriptor, 1);
+}
+
+
 //---------------------------------------------------------------------------
 // Typemaps to convert return values that are base class pointers
 // to the real derived type, if possible.  See wxPyMake_wxObject in