Commit 7dcdc1c2 authored by Jack Jansen's avatar Jack Jansen

Accessor functions for regions and such expect an existing region as...

Accessor functions for regions and such expect an existing region as parameter. Fixed for grafport attribute access.
Got GetPortBitMapForCopyBits() and port.portBits to work.
parent 8baa8160
......@@ -255,10 +255,8 @@ static PyObject *GrafObj_getattr(self, name)
#else
{ CGrafPtr itself_color = (CGrafPtr)self->ob_itself;
/*
if ( strcmp(name, "portBits") == 0 )
return BMObj_New((BitMapPtr)GetPortPixMap(itself_color));
*/
return BMObj_New((BitMapPtr)GetPortBitMapForCopyBits(itself_color));
if ( strcmp(name, "chExtra") == 0 )
return Py_BuildValue("h", GetPortChExtra(itself_color));
if ( strcmp(name, "pnLocHFrac") == 0 )
......@@ -276,12 +274,12 @@ static PyObject *GrafObj_getattr(self, name)
return Py_BuildValue("O&", QdRGB_New, GetPortBackColor(itself_color, &c));
}
if ( strcmp(name, "pnPixPat") == 0 ) {
PixPatHandle h=0;
PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortPenPixPat(itself_color, h));
}
if ( strcmp(name, "fillPixPat") == 0 ) {
PixPatHandle h=0;
PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortFillPixPat(itself_color, h));
}
if ( strcmp(name, "portRect") == 0 ) {
......@@ -289,11 +287,11 @@ static PyObject *GrafObj_getattr(self, name)
return Py_BuildValue("O&", PyMac_BuildRect, GetPortBounds(itself_color, &r));
}
if ( strcmp(name, "visRgn") == 0 ) {
RgnHandle h=0;
RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortVisibleRegion(itself_color, h));
}
if ( strcmp(name, "clipRgn") == 0 ) {
RgnHandle h=0;
RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortClipRegion(itself_color, h));
}
if ( strcmp(name, "pnLoc") == 0 ) {
......@@ -3858,6 +3856,22 @@ static PyObject *Qd_GetPortPixMap(_self, _args)
return _res;
}
static PyObject *Qd_GetPortBitMapForCopyBits(_self, _args)
PyObject *_self;
PyObject *_args;
{
PyObject *_res = NULL;
const BitMap * _rv;
CGrafPtr port;
if (!PyArg_ParseTuple(_args, "O&",
GrafObj_Convert, &port))
return NULL;
_rv = GetPortBitMapForCopyBits(port);
_res = Py_BuildValue("O&",
BMObj_New, _rv);
return _res;
}
static PyObject *Qd_GetPortBounds(_self, _args)
PyObject *_self;
PyObject *_args;
......@@ -5931,6 +5945,8 @@ static PyMethodDef Qd_methods[] = {
"(Fixed slope) -> (short _rv)"},
{"GetPortPixMap", (PyCFunction)Qd_GetPortPixMap, 1,
"(CGrafPtr port) -> (PixMapHandle _rv)"},
{"GetPortBitMapForCopyBits", (PyCFunction)Qd_GetPortBitMapForCopyBits, 1,
"(CGrafPtr port) -> (const BitMap * _rv)"},
{"GetPortBounds", (PyCFunction)Qd_GetPortBounds, 1,
"(CGrafPtr port) -> (Rect rect)"},
{"GetPortForeColor", (PyCFunction)Qd_GetPortForeColor, 1,
......
......@@ -100,7 +100,6 @@ extend = 0x40
'GetPortHWND',
'GetHWNDPort',
'GetPICTFromDIB',
'GetPortBitMapForCopyBits', # Something funny in the declaration
'HandleToRgn', # Funny signature
......
......@@ -45,6 +45,7 @@ GDHandle = OpaqueByValueType("GDHandle", "ResObj")
CGrafPtr = OpaqueByValueType("CGrafPtr", "GrafObj")
GrafPtr = OpaqueByValueType("GrafPtr", "GrafObj")
BitMap_ptr = OpaqueByValueType("BitMapPtr", "BMObj")
const_BitMap_ptr = OpaqueByValueType("const BitMap *", "BMObj")
BitMap = OpaqueType("BitMap", "BMObj")
RGBColor = OpaqueType('RGBColor', 'QdRGB')
RGBColor_ptr = RGBColor
......@@ -284,10 +285,8 @@ class MyGRObjectDefinition(GlobalObjectDefinition):
Output("#else")
Output("""
{ CGrafPtr itself_color = (CGrafPtr)self->ob_itself;
/*
if ( strcmp(name, "portBits") == 0 )
return BMObj_New((BitMapPtr)GetPortPixMap(itself_color));
*/
return BMObj_New((BitMapPtr)GetPortBitMapForCopyBits(itself_color));
if ( strcmp(name, "chExtra") == 0 )
return Py_BuildValue("h", GetPortChExtra(itself_color));
if ( strcmp(name, "pnLocHFrac") == 0 )
......@@ -305,12 +304,12 @@ class MyGRObjectDefinition(GlobalObjectDefinition):
return Py_BuildValue("O&", QdRGB_New, GetPortBackColor(itself_color, &c));
}
if ( strcmp(name, "pnPixPat") == 0 ) {
PixPatHandle h=0;
PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortPenPixPat(itself_color, h));
}
if ( strcmp(name, "fillPixPat") == 0 ) {
PixPatHandle h=0;
PixPatHandle h=NewPixPat(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortFillPixPat(itself_color, h));
}
if ( strcmp(name, "portRect") == 0 ) {
......@@ -318,11 +317,11 @@ class MyGRObjectDefinition(GlobalObjectDefinition):
return Py_BuildValue("O&", PyMac_BuildRect, GetPortBounds(itself_color, &r));
}
if ( strcmp(name, "visRgn") == 0 ) {
RgnHandle h=0;
RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortVisibleRegion(itself_color, h));
}
if ( strcmp(name, "clipRgn") == 0 ) {
RgnHandle h=0;
RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
return Py_BuildValue("O&", ResObj_New, (Handle)GetPortClipRegion(itself_color, h));
}
if ( strcmp(name, "pnLoc") == 0 ) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment