Added a typemap that converts the references returned for some GDI

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
This commit is contained in:
Robin Dunn 2004-03-03 02:02:28 +00:00
parent 36c8c4718a
commit d19a83a5ac

View File

@ -271,6 +271,22 @@
%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