1
2 /* =========================== Module _CG =========================== */
3
4 #include "Python.h"
5
6
7
8 #include "pymactoolbox.h"
9
10 /* Macro to test whether a weak-loaded CFM function exists */
11 #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
12 PyErr_SetString(PyExc_NotImplementedError, \
13 "Not available in this shared library/OS version"); \
14 return NULL; \
15 }} while(0)
16
17
18 #include <ApplicationServices/ApplicationServices.h>
19
20 extern int GrafObj_Convert(PyObject *, GrafPtr *);
21
22 /*
23 ** Manual converters
24 */
25
CGPoint_New(CGPoint * itself)26 PyObject *CGPoint_New(CGPoint *itself)
27 {
28
29 return Py_BuildValue("(ff)",
30 itself->x,
31 itself->y);
32 }
33
34 int
CGPoint_Convert(PyObject * v,CGPoint * p_itself)35 CGPoint_Convert(PyObject *v, CGPoint *p_itself)
36 {
37 if( !PyArg_Parse(v, "(ff)",
38 &p_itself->x,
39 &p_itself->y) )
40 return 0;
41 return 1;
42 }
43
CGRect_New(CGRect * itself)44 PyObject *CGRect_New(CGRect *itself)
45 {
46
47 return Py_BuildValue("(ffff)",
48 itself->origin.x,
49 itself->origin.y,
50 itself->size.width,
51 itself->size.height);
52 }
53
54 int
CGRect_Convert(PyObject * v,CGRect * p_itself)55 CGRect_Convert(PyObject *v, CGRect *p_itself)
56 {
57 if( !PyArg_Parse(v, "(ffff)",
58 &p_itself->origin.x,
59 &p_itself->origin.y,
60 &p_itself->size.width,
61 &p_itself->size.height) )
62 return 0;
63 return 1;
64 }
65
CGAffineTransform_New(CGAffineTransform * itself)66 PyObject *CGAffineTransform_New(CGAffineTransform *itself)
67 {
68
69 return Py_BuildValue("(ffffff)",
70 itself->a,
71 itself->b,
72 itself->c,
73 itself->d,
74 itself->tx,
75 itself->ty);
76 }
77
78 int
CGAffineTransform_Convert(PyObject * v,CGAffineTransform * p_itself)79 CGAffineTransform_Convert(PyObject *v, CGAffineTransform *p_itself)
80 {
81 if( !PyArg_Parse(v, "(ffffff)",
82 &p_itself->a,
83 &p_itself->b,
84 &p_itself->c,
85 &p_itself->d,
86 &p_itself->tx,
87 &p_itself->ty) )
88 return 0;
89 return 1;
90 }
91
92 static PyObject *CG_Error;
93
94 /* -------------------- Object type CGContextRef -------------------- */
95
96 PyTypeObject CGContextRef_Type;
97
98 #define CGContextRefObj_Check(x) ((x)->ob_type == &CGContextRef_Type || PyObject_TypeCheck((x), &CGContextRef_Type))
99
100 typedef struct CGContextRefObject {
101 PyObject_HEAD
102 CGContextRef ob_itself;
103 } CGContextRefObject;
104
CGContextRefObj_New(CGContextRef itself)105 PyObject *CGContextRefObj_New(CGContextRef itself)
106 {
107 CGContextRefObject *it;
108 it = PyObject_NEW(CGContextRefObject, &CGContextRef_Type);
109 if (it == NULL) return NULL;
110 it->ob_itself = itself;
111 return (PyObject *)it;
112 }
113
CGContextRefObj_Convert(PyObject * v,CGContextRef * p_itself)114 int CGContextRefObj_Convert(PyObject *v, CGContextRef *p_itself)
115 {
116 if (!CGContextRefObj_Check(v))
117 {
118 PyErr_SetString(PyExc_TypeError, "CGContextRef required");
119 return 0;
120 }
121 *p_itself = ((CGContextRefObject *)v)->ob_itself;
122 return 1;
123 }
124
CGContextRefObj_dealloc(CGContextRefObject * self)125 static void CGContextRefObj_dealloc(CGContextRefObject *self)
126 {
127 CGContextRelease(self->ob_itself);
128 self->ob_type->tp_free((PyObject *)self);
129 }
130
CGContextRefObj_CGContextSaveGState(CGContextRefObject * _self,PyObject * _args)131 static PyObject *CGContextRefObj_CGContextSaveGState(CGContextRefObject *_self, PyObject *_args)
132 {
133 PyObject *_res = NULL;
134 if (!PyArg_ParseTuple(_args, ""))
135 return NULL;
136 CGContextSaveGState(_self->ob_itself);
137 Py_INCREF(Py_None);
138 _res = Py_None;
139 return _res;
140 }
141
CGContextRefObj_CGContextRestoreGState(CGContextRefObject * _self,PyObject * _args)142 static PyObject *CGContextRefObj_CGContextRestoreGState(CGContextRefObject *_self, PyObject *_args)
143 {
144 PyObject *_res = NULL;
145 if (!PyArg_ParseTuple(_args, ""))
146 return NULL;
147 CGContextRestoreGState(_self->ob_itself);
148 Py_INCREF(Py_None);
149 _res = Py_None;
150 return _res;
151 }
152
CGContextRefObj_CGContextScaleCTM(CGContextRefObject * _self,PyObject * _args)153 static PyObject *CGContextRefObj_CGContextScaleCTM(CGContextRefObject *_self, PyObject *_args)
154 {
155 PyObject *_res = NULL;
156 float sx;
157 float sy;
158 if (!PyArg_ParseTuple(_args, "ff",
159 &sx,
160 &sy))
161 return NULL;
162 CGContextScaleCTM(_self->ob_itself,
163 sx,
164 sy);
165 Py_INCREF(Py_None);
166 _res = Py_None;
167 return _res;
168 }
169
CGContextRefObj_CGContextTranslateCTM(CGContextRefObject * _self,PyObject * _args)170 static PyObject *CGContextRefObj_CGContextTranslateCTM(CGContextRefObject *_self, PyObject *_args)
171 {
172 PyObject *_res = NULL;
173 float tx;
174 float ty;
175 if (!PyArg_ParseTuple(_args, "ff",
176 &tx,
177 &ty))
178 return NULL;
179 CGContextTranslateCTM(_self->ob_itself,
180 tx,
181 ty);
182 Py_INCREF(Py_None);
183 _res = Py_None;
184 return _res;
185 }
186
CGContextRefObj_CGContextRotateCTM(CGContextRefObject * _self,PyObject * _args)187 static PyObject *CGContextRefObj_CGContextRotateCTM(CGContextRefObject *_self, PyObject *_args)
188 {
189 PyObject *_res = NULL;
190 float angle;
191 if (!PyArg_ParseTuple(_args, "f",
192 &angle))
193 return NULL;
194 CGContextRotateCTM(_self->ob_itself,
195 angle);
196 Py_INCREF(Py_None);
197 _res = Py_None;
198 return _res;
199 }
200
CGContextRefObj_CGContextConcatCTM(CGContextRefObject * _self,PyObject * _args)201 static PyObject *CGContextRefObj_CGContextConcatCTM(CGContextRefObject *_self, PyObject *_args)
202 {
203 PyObject *_res = NULL;
204 CGAffineTransform transform;
205 if (!PyArg_ParseTuple(_args, "O&",
206 CGAffineTransform_Convert, &transform))
207 return NULL;
208 CGContextConcatCTM(_self->ob_itself,
209 transform);
210 Py_INCREF(Py_None);
211 _res = Py_None;
212 return _res;
213 }
214
CGContextRefObj_CGContextGetCTM(CGContextRefObject * _self,PyObject * _args)215 static PyObject *CGContextRefObj_CGContextGetCTM(CGContextRefObject *_self, PyObject *_args)
216 {
217 PyObject *_res = NULL;
218 CGAffineTransform _rv;
219 if (!PyArg_ParseTuple(_args, ""))
220 return NULL;
221 _rv = CGContextGetCTM(_self->ob_itself);
222 _res = Py_BuildValue("O&",
223 CGAffineTransform_New, &_rv);
224 return _res;
225 }
226
CGContextRefObj_CGContextSetLineWidth(CGContextRefObject * _self,PyObject * _args)227 static PyObject *CGContextRefObj_CGContextSetLineWidth(CGContextRefObject *_self, PyObject *_args)
228 {
229 PyObject *_res = NULL;
230 float width;
231 if (!PyArg_ParseTuple(_args, "f",
232 &width))
233 return NULL;
234 CGContextSetLineWidth(_self->ob_itself,
235 width);
236 Py_INCREF(Py_None);
237 _res = Py_None;
238 return _res;
239 }
240
CGContextRefObj_CGContextSetLineCap(CGContextRefObject * _self,PyObject * _args)241 static PyObject *CGContextRefObj_CGContextSetLineCap(CGContextRefObject *_self, PyObject *_args)
242 {
243 PyObject *_res = NULL;
244 int cap;
245 if (!PyArg_ParseTuple(_args, "i",
246 &cap))
247 return NULL;
248 CGContextSetLineCap(_self->ob_itself,
249 cap);
250 Py_INCREF(Py_None);
251 _res = Py_None;
252 return _res;
253 }
254
CGContextRefObj_CGContextSetLineJoin(CGContextRefObject * _self,PyObject * _args)255 static PyObject *CGContextRefObj_CGContextSetLineJoin(CGContextRefObject *_self, PyObject *_args)
256 {
257 PyObject *_res = NULL;
258 int join;
259 if (!PyArg_ParseTuple(_args, "i",
260 &join))
261 return NULL;
262 CGContextSetLineJoin(_self->ob_itself,
263 join);
264 Py_INCREF(Py_None);
265 _res = Py_None;
266 return _res;
267 }
268
CGContextRefObj_CGContextSetMiterLimit(CGContextRefObject * _self,PyObject * _args)269 static PyObject *CGContextRefObj_CGContextSetMiterLimit(CGContextRefObject *_self, PyObject *_args)
270 {
271 PyObject *_res = NULL;
272 float limit;
273 if (!PyArg_ParseTuple(_args, "f",
274 &limit))
275 return NULL;
276 CGContextSetMiterLimit(_self->ob_itself,
277 limit);
278 Py_INCREF(Py_None);
279 _res = Py_None;
280 return _res;
281 }
282
CGContextRefObj_CGContextSetFlatness(CGContextRefObject * _self,PyObject * _args)283 static PyObject *CGContextRefObj_CGContextSetFlatness(CGContextRefObject *_self, PyObject *_args)
284 {
285 PyObject *_res = NULL;
286 float flatness;
287 if (!PyArg_ParseTuple(_args, "f",
288 &flatness))
289 return NULL;
290 CGContextSetFlatness(_self->ob_itself,
291 flatness);
292 Py_INCREF(Py_None);
293 _res = Py_None;
294 return _res;
295 }
296
CGContextRefObj_CGContextSetAlpha(CGContextRefObject * _self,PyObject * _args)297 static PyObject *CGContextRefObj_CGContextSetAlpha(CGContextRefObject *_self, PyObject *_args)
298 {
299 PyObject *_res = NULL;
300 float alpha;
301 if (!PyArg_ParseTuple(_args, "f",
302 &alpha))
303 return NULL;
304 CGContextSetAlpha(_self->ob_itself,
305 alpha);
306 Py_INCREF(Py_None);
307 _res = Py_None;
308 return _res;
309 }
310
CGContextRefObj_CGContextBeginPath(CGContextRefObject * _self,PyObject * _args)311 static PyObject *CGContextRefObj_CGContextBeginPath(CGContextRefObject *_self, PyObject *_args)
312 {
313 PyObject *_res = NULL;
314 if (!PyArg_ParseTuple(_args, ""))
315 return NULL;
316 CGContextBeginPath(_self->ob_itself);
317 Py_INCREF(Py_None);
318 _res = Py_None;
319 return _res;
320 }
321
CGContextRefObj_CGContextMoveToPoint(CGContextRefObject * _self,PyObject * _args)322 static PyObject *CGContextRefObj_CGContextMoveToPoint(CGContextRefObject *_self, PyObject *_args)
323 {
324 PyObject *_res = NULL;
325 float x;
326 float y;
327 if (!PyArg_ParseTuple(_args, "ff",
328 &x,
329 &y))
330 return NULL;
331 CGContextMoveToPoint(_self->ob_itself,
332 x,
333 y);
334 Py_INCREF(Py_None);
335 _res = Py_None;
336 return _res;
337 }
338
CGContextRefObj_CGContextAddLineToPoint(CGContextRefObject * _self,PyObject * _args)339 static PyObject *CGContextRefObj_CGContextAddLineToPoint(CGContextRefObject *_self, PyObject *_args)
340 {
341 PyObject *_res = NULL;
342 float x;
343 float y;
344 if (!PyArg_ParseTuple(_args, "ff",
345 &x,
346 &y))
347 return NULL;
348 CGContextAddLineToPoint(_self->ob_itself,
349 x,
350 y);
351 Py_INCREF(Py_None);
352 _res = Py_None;
353 return _res;
354 }
355
CGContextRefObj_CGContextAddCurveToPoint(CGContextRefObject * _self,PyObject * _args)356 static PyObject *CGContextRefObj_CGContextAddCurveToPoint(CGContextRefObject *_self, PyObject *_args)
357 {
358 PyObject *_res = NULL;
359 float cp1x;
360 float cp1y;
361 float cp2x;
362 float cp2y;
363 float x;
364 float y;
365 if (!PyArg_ParseTuple(_args, "ffffff",
366 &cp1x,
367 &cp1y,
368 &cp2x,
369 &cp2y,
370 &x,
371 &y))
372 return NULL;
373 CGContextAddCurveToPoint(_self->ob_itself,
374 cp1x,
375 cp1y,
376 cp2x,
377 cp2y,
378 x,
379 y);
380 Py_INCREF(Py_None);
381 _res = Py_None;
382 return _res;
383 }
384
CGContextRefObj_CGContextAddQuadCurveToPoint(CGContextRefObject * _self,PyObject * _args)385 static PyObject *CGContextRefObj_CGContextAddQuadCurveToPoint(CGContextRefObject *_self, PyObject *_args)
386 {
387 PyObject *_res = NULL;
388 float cpx;
389 float cpy;
390 float x;
391 float y;
392 if (!PyArg_ParseTuple(_args, "ffff",
393 &cpx,
394 &cpy,
395 &x,
396 &y))
397 return NULL;
398 CGContextAddQuadCurveToPoint(_self->ob_itself,
399 cpx,
400 cpy,
401 x,
402 y);
403 Py_INCREF(Py_None);
404 _res = Py_None;
405 return _res;
406 }
407
CGContextRefObj_CGContextClosePath(CGContextRefObject * _self,PyObject * _args)408 static PyObject *CGContextRefObj_CGContextClosePath(CGContextRefObject *_self, PyObject *_args)
409 {
410 PyObject *_res = NULL;
411 if (!PyArg_ParseTuple(_args, ""))
412 return NULL;
413 CGContextClosePath(_self->ob_itself);
414 Py_INCREF(Py_None);
415 _res = Py_None;
416 return _res;
417 }
418
CGContextRefObj_CGContextAddRect(CGContextRefObject * _self,PyObject * _args)419 static PyObject *CGContextRefObj_CGContextAddRect(CGContextRefObject *_self, PyObject *_args)
420 {
421 PyObject *_res = NULL;
422 CGRect rect;
423 if (!PyArg_ParseTuple(_args, "O&",
424 CGRect_Convert, &rect))
425 return NULL;
426 CGContextAddRect(_self->ob_itself,
427 rect);
428 Py_INCREF(Py_None);
429 _res = Py_None;
430 return _res;
431 }
432
CGContextRefObj_CGContextAddArc(CGContextRefObject * _self,PyObject * _args)433 static PyObject *CGContextRefObj_CGContextAddArc(CGContextRefObject *_self, PyObject *_args)
434 {
435 PyObject *_res = NULL;
436 float x;
437 float y;
438 float radius;
439 float startAngle;
440 float endAngle;
441 int clockwise;
442 if (!PyArg_ParseTuple(_args, "fffffi",
443 &x,
444 &y,
445 &radius,
446 &startAngle,
447 &endAngle,
448 &clockwise))
449 return NULL;
450 CGContextAddArc(_self->ob_itself,
451 x,
452 y,
453 radius,
454 startAngle,
455 endAngle,
456 clockwise);
457 Py_INCREF(Py_None);
458 _res = Py_None;
459 return _res;
460 }
461
CGContextRefObj_CGContextAddArcToPoint(CGContextRefObject * _self,PyObject * _args)462 static PyObject *CGContextRefObj_CGContextAddArcToPoint(CGContextRefObject *_self, PyObject *_args)
463 {
464 PyObject *_res = NULL;
465 float x1;
466 float y1;
467 float x2;
468 float y2;
469 float radius;
470 if (!PyArg_ParseTuple(_args, "fffff",
471 &x1,
472 &y1,
473 &x2,
474 &y2,
475 &radius))
476 return NULL;
477 CGContextAddArcToPoint(_self->ob_itself,
478 x1,
479 y1,
480 x2,
481 y2,
482 radius);
483 Py_INCREF(Py_None);
484 _res = Py_None;
485 return _res;
486 }
487
CGContextRefObj_CGContextIsPathEmpty(CGContextRefObject * _self,PyObject * _args)488 static PyObject *CGContextRefObj_CGContextIsPathEmpty(CGContextRefObject *_self, PyObject *_args)
489 {
490 PyObject *_res = NULL;
491 int _rv;
492 if (!PyArg_ParseTuple(_args, ""))
493 return NULL;
494 _rv = CGContextIsPathEmpty(_self->ob_itself);
495 _res = Py_BuildValue("i",
496 _rv);
497 return _res;
498 }
499
CGContextRefObj_CGContextGetPathCurrentPoint(CGContextRefObject * _self,PyObject * _args)500 static PyObject *CGContextRefObj_CGContextGetPathCurrentPoint(CGContextRefObject *_self, PyObject *_args)
501 {
502 PyObject *_res = NULL;
503 CGPoint _rv;
504 if (!PyArg_ParseTuple(_args, ""))
505 return NULL;
506 _rv = CGContextGetPathCurrentPoint(_self->ob_itself);
507 _res = Py_BuildValue("O&",
508 CGPoint_New, &_rv);
509 return _res;
510 }
511
CGContextRefObj_CGContextGetPathBoundingBox(CGContextRefObject * _self,PyObject * _args)512 static PyObject *CGContextRefObj_CGContextGetPathBoundingBox(CGContextRefObject *_self, PyObject *_args)
513 {
514 PyObject *_res = NULL;
515 CGRect _rv;
516 if (!PyArg_ParseTuple(_args, ""))
517 return NULL;
518 _rv = CGContextGetPathBoundingBox(_self->ob_itself);
519 _res = Py_BuildValue("O&",
520 CGRect_New, &_rv);
521 return _res;
522 }
523
CGContextRefObj_CGContextDrawPath(CGContextRefObject * _self,PyObject * _args)524 static PyObject *CGContextRefObj_CGContextDrawPath(CGContextRefObject *_self, PyObject *_args)
525 {
526 PyObject *_res = NULL;
527 int mode;
528 if (!PyArg_ParseTuple(_args, "i",
529 &mode))
530 return NULL;
531 CGContextDrawPath(_self->ob_itself,
532 mode);
533 Py_INCREF(Py_None);
534 _res = Py_None;
535 return _res;
536 }
537
CGContextRefObj_CGContextFillPath(CGContextRefObject * _self,PyObject * _args)538 static PyObject *CGContextRefObj_CGContextFillPath(CGContextRefObject *_self, PyObject *_args)
539 {
540 PyObject *_res = NULL;
541 if (!PyArg_ParseTuple(_args, ""))
542 return NULL;
543 CGContextFillPath(_self->ob_itself);
544 Py_INCREF(Py_None);
545 _res = Py_None;
546 return _res;
547 }
548
CGContextRefObj_CGContextEOFillPath(CGContextRefObject * _self,PyObject * _args)549 static PyObject *CGContextRefObj_CGContextEOFillPath(CGContextRefObject *_self, PyObject *_args)
550 {
551 PyObject *_res = NULL;
552 if (!PyArg_ParseTuple(_args, ""))
553 return NULL;
554 CGContextEOFillPath(_self->ob_itself);
555 Py_INCREF(Py_None);
556 _res = Py_None;
557 return _res;
558 }
559
CGContextRefObj_CGContextStrokePath(CGContextRefObject * _self,PyObject * _args)560 static PyObject *CGContextRefObj_CGContextStrokePath(CGContextRefObject *_self, PyObject *_args)
561 {
562 PyObject *_res = NULL;
563 if (!PyArg_ParseTuple(_args, ""))
564 return NULL;
565 CGContextStrokePath(_self->ob_itself);
566 Py_INCREF(Py_None);
567 _res = Py_None;
568 return _res;
569 }
570
CGContextRefObj_CGContextFillRect(CGContextRefObject * _self,PyObject * _args)571 static PyObject *CGContextRefObj_CGContextFillRect(CGContextRefObject *_self, PyObject *_args)
572 {
573 PyObject *_res = NULL;
574 CGRect rect;
575 if (!PyArg_ParseTuple(_args, "O&",
576 CGRect_Convert, &rect))
577 return NULL;
578 CGContextFillRect(_self->ob_itself,
579 rect);
580 Py_INCREF(Py_None);
581 _res = Py_None;
582 return _res;
583 }
584
CGContextRefObj_CGContextStrokeRect(CGContextRefObject * _self,PyObject * _args)585 static PyObject *CGContextRefObj_CGContextStrokeRect(CGContextRefObject *_self, PyObject *_args)
586 {
587 PyObject *_res = NULL;
588 CGRect rect;
589 if (!PyArg_ParseTuple(_args, "O&",
590 CGRect_Convert, &rect))
591 return NULL;
592 CGContextStrokeRect(_self->ob_itself,
593 rect);
594 Py_INCREF(Py_None);
595 _res = Py_None;
596 return _res;
597 }
598
CGContextRefObj_CGContextStrokeRectWithWidth(CGContextRefObject * _self,PyObject * _args)599 static PyObject *CGContextRefObj_CGContextStrokeRectWithWidth(CGContextRefObject *_self, PyObject *_args)
600 {
601 PyObject *_res = NULL;
602 CGRect rect;
603 float width;
604 if (!PyArg_ParseTuple(_args, "O&f",
605 CGRect_Convert, &rect,
606 &width))
607 return NULL;
608 CGContextStrokeRectWithWidth(_self->ob_itself,
609 rect,
610 width);
611 Py_INCREF(Py_None);
612 _res = Py_None;
613 return _res;
614 }
615
CGContextRefObj_CGContextClearRect(CGContextRefObject * _self,PyObject * _args)616 static PyObject *CGContextRefObj_CGContextClearRect(CGContextRefObject *_self, PyObject *_args)
617 {
618 PyObject *_res = NULL;
619 CGRect rect;
620 if (!PyArg_ParseTuple(_args, "O&",
621 CGRect_Convert, &rect))
622 return NULL;
623 CGContextClearRect(_self->ob_itself,
624 rect);
625 Py_INCREF(Py_None);
626 _res = Py_None;
627 return _res;
628 }
629
CGContextRefObj_CGContextClip(CGContextRefObject * _self,PyObject * _args)630 static PyObject *CGContextRefObj_CGContextClip(CGContextRefObject *_self, PyObject *_args)
631 {
632 PyObject *_res = NULL;
633 if (!PyArg_ParseTuple(_args, ""))
634 return NULL;
635 CGContextClip(_self->ob_itself);
636 Py_INCREF(Py_None);
637 _res = Py_None;
638 return _res;
639 }
640
CGContextRefObj_CGContextEOClip(CGContextRefObject * _self,PyObject * _args)641 static PyObject *CGContextRefObj_CGContextEOClip(CGContextRefObject *_self, PyObject *_args)
642 {
643 PyObject *_res = NULL;
644 if (!PyArg_ParseTuple(_args, ""))
645 return NULL;
646 CGContextEOClip(_self->ob_itself);
647 Py_INCREF(Py_None);
648 _res = Py_None;
649 return _res;
650 }
651
CGContextRefObj_CGContextClipToRect(CGContextRefObject * _self,PyObject * _args)652 static PyObject *CGContextRefObj_CGContextClipToRect(CGContextRefObject *_self, PyObject *_args)
653 {
654 PyObject *_res = NULL;
655 CGRect rect;
656 if (!PyArg_ParseTuple(_args, "O&",
657 CGRect_Convert, &rect))
658 return NULL;
659 CGContextClipToRect(_self->ob_itself,
660 rect);
661 Py_INCREF(Py_None);
662 _res = Py_None;
663 return _res;
664 }
665
CGContextRefObj_CGContextSetGrayFillColor(CGContextRefObject * _self,PyObject * _args)666 static PyObject *CGContextRefObj_CGContextSetGrayFillColor(CGContextRefObject *_self, PyObject *_args)
667 {
668 PyObject *_res = NULL;
669 float gray;
670 float alpha;
671 if (!PyArg_ParseTuple(_args, "ff",
672 &gray,
673 &alpha))
674 return NULL;
675 CGContextSetGrayFillColor(_self->ob_itself,
676 gray,
677 alpha);
678 Py_INCREF(Py_None);
679 _res = Py_None;
680 return _res;
681 }
682
CGContextRefObj_CGContextSetGrayStrokeColor(CGContextRefObject * _self,PyObject * _args)683 static PyObject *CGContextRefObj_CGContextSetGrayStrokeColor(CGContextRefObject *_self, PyObject *_args)
684 {
685 PyObject *_res = NULL;
686 float gray;
687 float alpha;
688 if (!PyArg_ParseTuple(_args, "ff",
689 &gray,
690 &alpha))
691 return NULL;
692 CGContextSetGrayStrokeColor(_self->ob_itself,
693 gray,
694 alpha);
695 Py_INCREF(Py_None);
696 _res = Py_None;
697 return _res;
698 }
699
CGContextRefObj_CGContextSetRGBFillColor(CGContextRefObject * _self,PyObject * _args)700 static PyObject *CGContextRefObj_CGContextSetRGBFillColor(CGContextRefObject *_self, PyObject *_args)
701 {
702 PyObject *_res = NULL;
703 float red;
704 float green;
705 float blue;
706 float alpha;
707 if (!PyArg_ParseTuple(_args, "ffff",
708 &red,
709 &green,
710 &blue,
711 &alpha))
712 return NULL;
713 CGContextSetRGBFillColor(_self->ob_itself,
714 red,
715 green,
716 blue,
717 alpha);
718 Py_INCREF(Py_None);
719 _res = Py_None;
720 return _res;
721 }
722
CGContextRefObj_CGContextSetRGBStrokeColor(CGContextRefObject * _self,PyObject * _args)723 static PyObject *CGContextRefObj_CGContextSetRGBStrokeColor(CGContextRefObject *_self, PyObject *_args)
724 {
725 PyObject *_res = NULL;
726 float red;
727 float green;
728 float blue;
729 float alpha;
730 if (!PyArg_ParseTuple(_args, "ffff",
731 &red,
732 &green,
733 &blue,
734 &alpha))
735 return NULL;
736 CGContextSetRGBStrokeColor(_self->ob_itself,
737 red,
738 green,
739 blue,
740 alpha);
741 Py_INCREF(Py_None);
742 _res = Py_None;
743 return _res;
744 }
745
CGContextRefObj_CGContextSetCMYKFillColor(CGContextRefObject * _self,PyObject * _args)746 static PyObject *CGContextRefObj_CGContextSetCMYKFillColor(CGContextRefObject *_self, PyObject *_args)
747 {
748 PyObject *_res = NULL;
749 float cyan;
750 float magenta;
751 float yellow;
752 float black;
753 float alpha;
754 if (!PyArg_ParseTuple(_args, "fffff",
755 &cyan,
756 &magenta,
757 &yellow,
758 &black,
759 &alpha))
760 return NULL;
761 CGContextSetCMYKFillColor(_self->ob_itself,
762 cyan,
763 magenta,
764 yellow,
765 black,
766 alpha);
767 Py_INCREF(Py_None);
768 _res = Py_None;
769 return _res;
770 }
771
CGContextRefObj_CGContextSetCMYKStrokeColor(CGContextRefObject * _self,PyObject * _args)772 static PyObject *CGContextRefObj_CGContextSetCMYKStrokeColor(CGContextRefObject *_self, PyObject *_args)
773 {
774 PyObject *_res = NULL;
775 float cyan;
776 float magenta;
777 float yellow;
778 float black;
779 float alpha;
780 if (!PyArg_ParseTuple(_args, "fffff",
781 &cyan,
782 &magenta,
783 &yellow,
784 &black,
785 &alpha))
786 return NULL;
787 CGContextSetCMYKStrokeColor(_self->ob_itself,
788 cyan,
789 magenta,
790 yellow,
791 black,
792 alpha);
793 Py_INCREF(Py_None);
794 _res = Py_None;
795 return _res;
796 }
797
CGContextRefObj_CGContextGetInterpolationQuality(CGContextRefObject * _self,PyObject * _args)798 static PyObject *CGContextRefObj_CGContextGetInterpolationQuality(CGContextRefObject *_self, PyObject *_args)
799 {
800 PyObject *_res = NULL;
801 int _rv;
802 if (!PyArg_ParseTuple(_args, ""))
803 return NULL;
804 _rv = CGContextGetInterpolationQuality(_self->ob_itself);
805 _res = Py_BuildValue("i",
806 _rv);
807 return _res;
808 }
809
CGContextRefObj_CGContextSetInterpolationQuality(CGContextRefObject * _self,PyObject * _args)810 static PyObject *CGContextRefObj_CGContextSetInterpolationQuality(CGContextRefObject *_self, PyObject *_args)
811 {
812 PyObject *_res = NULL;
813 int quality;
814 if (!PyArg_ParseTuple(_args, "i",
815 &quality))
816 return NULL;
817 CGContextSetInterpolationQuality(_self->ob_itself,
818 quality);
819 Py_INCREF(Py_None);
820 _res = Py_None;
821 return _res;
822 }
823
CGContextRefObj_CGContextSetCharacterSpacing(CGContextRefObject * _self,PyObject * _args)824 static PyObject *CGContextRefObj_CGContextSetCharacterSpacing(CGContextRefObject *_self, PyObject *_args)
825 {
826 PyObject *_res = NULL;
827 float spacing;
828 if (!PyArg_ParseTuple(_args, "f",
829 &spacing))
830 return NULL;
831 CGContextSetCharacterSpacing(_self->ob_itself,
832 spacing);
833 Py_INCREF(Py_None);
834 _res = Py_None;
835 return _res;
836 }
837
CGContextRefObj_CGContextSetTextPosition(CGContextRefObject * _self,PyObject * _args)838 static PyObject *CGContextRefObj_CGContextSetTextPosition(CGContextRefObject *_self, PyObject *_args)
839 {
840 PyObject *_res = NULL;
841 float x;
842 float y;
843 if (!PyArg_ParseTuple(_args, "ff",
844 &x,
845 &y))
846 return NULL;
847 CGContextSetTextPosition(_self->ob_itself,
848 x,
849 y);
850 Py_INCREF(Py_None);
851 _res = Py_None;
852 return _res;
853 }
854
CGContextRefObj_CGContextGetTextPosition(CGContextRefObject * _self,PyObject * _args)855 static PyObject *CGContextRefObj_CGContextGetTextPosition(CGContextRefObject *_self, PyObject *_args)
856 {
857 PyObject *_res = NULL;
858 CGPoint _rv;
859 if (!PyArg_ParseTuple(_args, ""))
860 return NULL;
861 _rv = CGContextGetTextPosition(_self->ob_itself);
862 _res = Py_BuildValue("O&",
863 CGPoint_New, &_rv);
864 return _res;
865 }
866
CGContextRefObj_CGContextSetTextMatrix(CGContextRefObject * _self,PyObject * _args)867 static PyObject *CGContextRefObj_CGContextSetTextMatrix(CGContextRefObject *_self, PyObject *_args)
868 {
869 PyObject *_res = NULL;
870 CGAffineTransform transform;
871 if (!PyArg_ParseTuple(_args, "O&",
872 CGAffineTransform_Convert, &transform))
873 return NULL;
874 CGContextSetTextMatrix(_self->ob_itself,
875 transform);
876 Py_INCREF(Py_None);
877 _res = Py_None;
878 return _res;
879 }
880
CGContextRefObj_CGContextGetTextMatrix(CGContextRefObject * _self,PyObject * _args)881 static PyObject *CGContextRefObj_CGContextGetTextMatrix(CGContextRefObject *_self, PyObject *_args)
882 {
883 PyObject *_res = NULL;
884 CGAffineTransform _rv;
885 if (!PyArg_ParseTuple(_args, ""))
886 return NULL;
887 _rv = CGContextGetTextMatrix(_self->ob_itself);
888 _res = Py_BuildValue("O&",
889 CGAffineTransform_New, &_rv);
890 return _res;
891 }
892
CGContextRefObj_CGContextSetTextDrawingMode(CGContextRefObject * _self,PyObject * _args)893 static PyObject *CGContextRefObj_CGContextSetTextDrawingMode(CGContextRefObject *_self, PyObject *_args)
894 {
895 PyObject *_res = NULL;
896 int mode;
897 if (!PyArg_ParseTuple(_args, "i",
898 &mode))
899 return NULL;
900 CGContextSetTextDrawingMode(_self->ob_itself,
901 mode);
902 Py_INCREF(Py_None);
903 _res = Py_None;
904 return _res;
905 }
906
CGContextRefObj_CGContextSetFontSize(CGContextRefObject * _self,PyObject * _args)907 static PyObject *CGContextRefObj_CGContextSetFontSize(CGContextRefObject *_self, PyObject *_args)
908 {
909 PyObject *_res = NULL;
910 float size;
911 if (!PyArg_ParseTuple(_args, "f",
912 &size))
913 return NULL;
914 CGContextSetFontSize(_self->ob_itself,
915 size);
916 Py_INCREF(Py_None);
917 _res = Py_None;
918 return _res;
919 }
920
CGContextRefObj_CGContextSelectFont(CGContextRefObject * _self,PyObject * _args)921 static PyObject *CGContextRefObj_CGContextSelectFont(CGContextRefObject *_self, PyObject *_args)
922 {
923 PyObject *_res = NULL;
924 char * name;
925 float size;
926 int textEncoding;
927 if (!PyArg_ParseTuple(_args, "sfi",
928 &name,
929 &size,
930 &textEncoding))
931 return NULL;
932 CGContextSelectFont(_self->ob_itself,
933 name,
934 size,
935 textEncoding);
936 Py_INCREF(Py_None);
937 _res = Py_None;
938 return _res;
939 }
940
CGContextRefObj_CGContextShowText(CGContextRefObject * _self,PyObject * _args)941 static PyObject *CGContextRefObj_CGContextShowText(CGContextRefObject *_self, PyObject *_args)
942 {
943 PyObject *_res = NULL;
944 char *cstring__in__;
945 long cstring__len__;
946 int cstring__in_len__;
947 if (!PyArg_ParseTuple(_args, "s#",
948 &cstring__in__, &cstring__in_len__))
949 return NULL;
950 cstring__len__ = cstring__in_len__;
951 CGContextShowText(_self->ob_itself,
952 cstring__in__, cstring__len__);
953 Py_INCREF(Py_None);
954 _res = Py_None;
955 return _res;
956 }
957
CGContextRefObj_CGContextShowTextAtPoint(CGContextRefObject * _self,PyObject * _args)958 static PyObject *CGContextRefObj_CGContextShowTextAtPoint(CGContextRefObject *_self, PyObject *_args)
959 {
960 PyObject *_res = NULL;
961 float x;
962 float y;
963 char *cstring__in__;
964 long cstring__len__;
965 int cstring__in_len__;
966 if (!PyArg_ParseTuple(_args, "ffs#",
967 &x,
968 &y,
969 &cstring__in__, &cstring__in_len__))
970 return NULL;
971 cstring__len__ = cstring__in_len__;
972 CGContextShowTextAtPoint(_self->ob_itself,
973 x,
974 y,
975 cstring__in__, cstring__len__);
976 Py_INCREF(Py_None);
977 _res = Py_None;
978 return _res;
979 }
980
CGContextRefObj_CGContextEndPage(CGContextRefObject * _self,PyObject * _args)981 static PyObject *CGContextRefObj_CGContextEndPage(CGContextRefObject *_self, PyObject *_args)
982 {
983 PyObject *_res = NULL;
984 if (!PyArg_ParseTuple(_args, ""))
985 return NULL;
986 CGContextEndPage(_self->ob_itself);
987 Py_INCREF(Py_None);
988 _res = Py_None;
989 return _res;
990 }
991
CGContextRefObj_CGContextFlush(CGContextRefObject * _self,PyObject * _args)992 static PyObject *CGContextRefObj_CGContextFlush(CGContextRefObject *_self, PyObject *_args)
993 {
994 PyObject *_res = NULL;
995 if (!PyArg_ParseTuple(_args, ""))
996 return NULL;
997 CGContextFlush(_self->ob_itself);
998 Py_INCREF(Py_None);
999 _res = Py_None;
1000 return _res;
1001 }
1002
CGContextRefObj_CGContextSynchronize(CGContextRefObject * _self,PyObject * _args)1003 static PyObject *CGContextRefObj_CGContextSynchronize(CGContextRefObject *_self, PyObject *_args)
1004 {
1005 PyObject *_res = NULL;
1006 if (!PyArg_ParseTuple(_args, ""))
1007 return NULL;
1008 CGContextSynchronize(_self->ob_itself);
1009 Py_INCREF(Py_None);
1010 _res = Py_None;
1011 return _res;
1012 }
1013
CGContextRefObj_CGContextSetShouldAntialias(CGContextRefObject * _self,PyObject * _args)1014 static PyObject *CGContextRefObj_CGContextSetShouldAntialias(CGContextRefObject *_self, PyObject *_args)
1015 {
1016 PyObject *_res = NULL;
1017 int shouldAntialias;
1018 if (!PyArg_ParseTuple(_args, "i",
1019 &shouldAntialias))
1020 return NULL;
1021 CGContextSetShouldAntialias(_self->ob_itself,
1022 shouldAntialias);
1023 Py_INCREF(Py_None);
1024 _res = Py_None;
1025 return _res;
1026 }
1027
1028 #ifndef __LP64__
CGContextRefObj_SyncCGContextOriginWithPort(CGContextRefObject * _self,PyObject * _args)1029 static PyObject *CGContextRefObj_SyncCGContextOriginWithPort(CGContextRefObject *_self, PyObject *_args)
1030 {
1031 PyObject *_res = NULL;
1032 CGrafPtr port;
1033 if (!PyArg_ParseTuple(_args, "O&",
1034 GrafObj_Convert, &port))
1035 return NULL;
1036 SyncCGContextOriginWithPort(_self->ob_itself,
1037 port);
1038 Py_INCREF(Py_None);
1039 _res = Py_None;
1040 return _res;
1041 }
1042
CGContextRefObj_ClipCGContextToRegion(CGContextRefObject * _self,PyObject * _args)1043 static PyObject *CGContextRefObj_ClipCGContextToRegion(CGContextRefObject *_self, PyObject *_args)
1044 {
1045 PyObject *_res = NULL;
1046 Rect portRect;
1047 RgnHandle region;
1048 if (!PyArg_ParseTuple(_args, "O&O&",
1049 PyMac_GetRect, &portRect,
1050 ResObj_Convert, ®ion))
1051 return NULL;
1052 ClipCGContextToRegion(_self->ob_itself,
1053 &portRect,
1054 region);
1055 Py_INCREF(Py_None);
1056 _res = Py_None;
1057 return _res;
1058 }
1059 #endif
1060
1061 static PyMethodDef CGContextRefObj_methods[] = {
1062 {"CGContextSaveGState", (PyCFunction)CGContextRefObj_CGContextSaveGState, 1,
1063 PyDoc_STR("() -> None")},
1064 {"CGContextRestoreGState", (PyCFunction)CGContextRefObj_CGContextRestoreGState, 1,
1065 PyDoc_STR("() -> None")},
1066 {"CGContextScaleCTM", (PyCFunction)CGContextRefObj_CGContextScaleCTM, 1,
1067 PyDoc_STR("(float sx, float sy) -> None")},
1068 {"CGContextTranslateCTM", (PyCFunction)CGContextRefObj_CGContextTranslateCTM, 1,
1069 PyDoc_STR("(float tx, float ty) -> None")},
1070 {"CGContextRotateCTM", (PyCFunction)CGContextRefObj_CGContextRotateCTM, 1,
1071 PyDoc_STR("(float angle) -> None")},
1072 {"CGContextConcatCTM", (PyCFunction)CGContextRefObj_CGContextConcatCTM, 1,
1073 PyDoc_STR("(CGAffineTransform transform) -> None")},
1074 {"CGContextGetCTM", (PyCFunction)CGContextRefObj_CGContextGetCTM, 1,
1075 PyDoc_STR("() -> (CGAffineTransform _rv)")},
1076 {"CGContextSetLineWidth", (PyCFunction)CGContextRefObj_CGContextSetLineWidth, 1,
1077 PyDoc_STR("(float width) -> None")},
1078 {"CGContextSetLineCap", (PyCFunction)CGContextRefObj_CGContextSetLineCap, 1,
1079 PyDoc_STR("(int cap) -> None")},
1080 {"CGContextSetLineJoin", (PyCFunction)CGContextRefObj_CGContextSetLineJoin, 1,
1081 PyDoc_STR("(int join) -> None")},
1082 {"CGContextSetMiterLimit", (PyCFunction)CGContextRefObj_CGContextSetMiterLimit, 1,
1083 PyDoc_STR("(float limit) -> None")},
1084 {"CGContextSetFlatness", (PyCFunction)CGContextRefObj_CGContextSetFlatness, 1,
1085 PyDoc_STR("(float flatness) -> None")},
1086 {"CGContextSetAlpha", (PyCFunction)CGContextRefObj_CGContextSetAlpha, 1,
1087 PyDoc_STR("(float alpha) -> None")},
1088 {"CGContextBeginPath", (PyCFunction)CGContextRefObj_CGContextBeginPath, 1,
1089 PyDoc_STR("() -> None")},
1090 {"CGContextMoveToPoint", (PyCFunction)CGContextRefObj_CGContextMoveToPoint, 1,
1091 PyDoc_STR("(float x, float y) -> None")},
1092 {"CGContextAddLineToPoint", (PyCFunction)CGContextRefObj_CGContextAddLineToPoint, 1,
1093 PyDoc_STR("(float x, float y) -> None")},
1094 {"CGContextAddCurveToPoint", (PyCFunction)CGContextRefObj_CGContextAddCurveToPoint, 1,
1095 PyDoc_STR("(float cp1x, float cp1y, float cp2x, float cp2y, float x, float y) -> None")},
1096 {"CGContextAddQuadCurveToPoint", (PyCFunction)CGContextRefObj_CGContextAddQuadCurveToPoint, 1,
1097 PyDoc_STR("(float cpx, float cpy, float x, float y) -> None")},
1098 {"CGContextClosePath", (PyCFunction)CGContextRefObj_CGContextClosePath, 1,
1099 PyDoc_STR("() -> None")},
1100 {"CGContextAddRect", (PyCFunction)CGContextRefObj_CGContextAddRect, 1,
1101 PyDoc_STR("(CGRect rect) -> None")},
1102 {"CGContextAddArc", (PyCFunction)CGContextRefObj_CGContextAddArc, 1,
1103 PyDoc_STR("(float x, float y, float radius, float startAngle, float endAngle, int clockwise) -> None")},
1104 {"CGContextAddArcToPoint", (PyCFunction)CGContextRefObj_CGContextAddArcToPoint, 1,
1105 PyDoc_STR("(float x1, float y1, float x2, float y2, float radius) -> None")},
1106 {"CGContextIsPathEmpty", (PyCFunction)CGContextRefObj_CGContextIsPathEmpty, 1,
1107 PyDoc_STR("() -> (int _rv)")},
1108 {"CGContextGetPathCurrentPoint", (PyCFunction)CGContextRefObj_CGContextGetPathCurrentPoint, 1,
1109 PyDoc_STR("() -> (CGPoint _rv)")},
1110 {"CGContextGetPathBoundingBox", (PyCFunction)CGContextRefObj_CGContextGetPathBoundingBox, 1,
1111 PyDoc_STR("() -> (CGRect _rv)")},
1112 {"CGContextDrawPath", (PyCFunction)CGContextRefObj_CGContextDrawPath, 1,
1113 PyDoc_STR("(int mode) -> None")},
1114 {"CGContextFillPath", (PyCFunction)CGContextRefObj_CGContextFillPath, 1,
1115 PyDoc_STR("() -> None")},
1116 {"CGContextEOFillPath", (PyCFunction)CGContextRefObj_CGContextEOFillPath, 1,
1117 PyDoc_STR("() -> None")},
1118 {"CGContextStrokePath", (PyCFunction)CGContextRefObj_CGContextStrokePath, 1,
1119 PyDoc_STR("() -> None")},
1120 {"CGContextFillRect", (PyCFunction)CGContextRefObj_CGContextFillRect, 1,
1121 PyDoc_STR("(CGRect rect) -> None")},
1122 {"CGContextStrokeRect", (PyCFunction)CGContextRefObj_CGContextStrokeRect, 1,
1123 PyDoc_STR("(CGRect rect) -> None")},
1124 {"CGContextStrokeRectWithWidth", (PyCFunction)CGContextRefObj_CGContextStrokeRectWithWidth, 1,
1125 PyDoc_STR("(CGRect rect, float width) -> None")},
1126 {"CGContextClearRect", (PyCFunction)CGContextRefObj_CGContextClearRect, 1,
1127 PyDoc_STR("(CGRect rect) -> None")},
1128 {"CGContextClip", (PyCFunction)CGContextRefObj_CGContextClip, 1,
1129 PyDoc_STR("() -> None")},
1130 {"CGContextEOClip", (PyCFunction)CGContextRefObj_CGContextEOClip, 1,
1131 PyDoc_STR("() -> None")},
1132 {"CGContextClipToRect", (PyCFunction)CGContextRefObj_CGContextClipToRect, 1,
1133 PyDoc_STR("(CGRect rect) -> None")},
1134 {"CGContextSetGrayFillColor", (PyCFunction)CGContextRefObj_CGContextSetGrayFillColor, 1,
1135 PyDoc_STR("(float gray, float alpha) -> None")},
1136 {"CGContextSetGrayStrokeColor", (PyCFunction)CGContextRefObj_CGContextSetGrayStrokeColor, 1,
1137 PyDoc_STR("(float gray, float alpha) -> None")},
1138 {"CGContextSetRGBFillColor", (PyCFunction)CGContextRefObj_CGContextSetRGBFillColor, 1,
1139 PyDoc_STR("(float red, float green, float blue, float alpha) -> None")},
1140 {"CGContextSetRGBStrokeColor", (PyCFunction)CGContextRefObj_CGContextSetRGBStrokeColor, 1,
1141 PyDoc_STR("(float red, float green, float blue, float alpha) -> None")},
1142 {"CGContextSetCMYKFillColor", (PyCFunction)CGContextRefObj_CGContextSetCMYKFillColor, 1,
1143 PyDoc_STR("(float cyan, float magenta, float yellow, float black, float alpha) -> None")},
1144 {"CGContextSetCMYKStrokeColor", (PyCFunction)CGContextRefObj_CGContextSetCMYKStrokeColor, 1,
1145 PyDoc_STR("(float cyan, float magenta, float yellow, float black, float alpha) -> None")},
1146 {"CGContextGetInterpolationQuality", (PyCFunction)CGContextRefObj_CGContextGetInterpolationQuality, 1,
1147 PyDoc_STR("() -> (int _rv)")},
1148 {"CGContextSetInterpolationQuality", (PyCFunction)CGContextRefObj_CGContextSetInterpolationQuality, 1,
1149 PyDoc_STR("(int quality) -> None")},
1150 {"CGContextSetCharacterSpacing", (PyCFunction)CGContextRefObj_CGContextSetCharacterSpacing, 1,
1151 PyDoc_STR("(float spacing) -> None")},
1152 {"CGContextSetTextPosition", (PyCFunction)CGContextRefObj_CGContextSetTextPosition, 1,
1153 PyDoc_STR("(float x, float y) -> None")},
1154 {"CGContextGetTextPosition", (PyCFunction)CGContextRefObj_CGContextGetTextPosition, 1,
1155 PyDoc_STR("() -> (CGPoint _rv)")},
1156 {"CGContextSetTextMatrix", (PyCFunction)CGContextRefObj_CGContextSetTextMatrix, 1,
1157 PyDoc_STR("(CGAffineTransform transform) -> None")},
1158 {"CGContextGetTextMatrix", (PyCFunction)CGContextRefObj_CGContextGetTextMatrix, 1,
1159 PyDoc_STR("() -> (CGAffineTransform _rv)")},
1160 {"CGContextSetTextDrawingMode", (PyCFunction)CGContextRefObj_CGContextSetTextDrawingMode, 1,
1161 PyDoc_STR("(int mode) -> None")},
1162 {"CGContextSetFontSize", (PyCFunction)CGContextRefObj_CGContextSetFontSize, 1,
1163 PyDoc_STR("(float size) -> None")},
1164 {"CGContextSelectFont", (PyCFunction)CGContextRefObj_CGContextSelectFont, 1,
1165 PyDoc_STR("(char * name, float size, int textEncoding) -> None")},
1166 {"CGContextShowText", (PyCFunction)CGContextRefObj_CGContextShowText, 1,
1167 PyDoc_STR("(Buffer cstring) -> None")},
1168 {"CGContextShowTextAtPoint", (PyCFunction)CGContextRefObj_CGContextShowTextAtPoint, 1,
1169 PyDoc_STR("(float x, float y, Buffer cstring) -> None")},
1170 {"CGContextEndPage", (PyCFunction)CGContextRefObj_CGContextEndPage, 1,
1171 PyDoc_STR("() -> None")},
1172 {"CGContextFlush", (PyCFunction)CGContextRefObj_CGContextFlush, 1,
1173 PyDoc_STR("() -> None")},
1174 {"CGContextSynchronize", (PyCFunction)CGContextRefObj_CGContextSynchronize, 1,
1175 PyDoc_STR("() -> None")},
1176 {"CGContextSetShouldAntialias", (PyCFunction)CGContextRefObj_CGContextSetShouldAntialias, 1,
1177 PyDoc_STR("(int shouldAntialias) -> None")},
1178 #ifndef __LP64__
1179 {"SyncCGContextOriginWithPort", (PyCFunction)CGContextRefObj_SyncCGContextOriginWithPort, 1,
1180 PyDoc_STR("(CGrafPtr port) -> None")},
1181 {"ClipCGContextToRegion", (PyCFunction)CGContextRefObj_ClipCGContextToRegion, 1,
1182 PyDoc_STR("(Rect portRect, RgnHandle region) -> None")},
1183 #endif
1184 {NULL, NULL, 0}
1185 };
1186
1187 #define CGContextRefObj_getsetlist NULL
1188
1189
1190 #define CGContextRefObj_compare NULL
1191
1192 #define CGContextRefObj_repr NULL
1193
1194 #define CGContextRefObj_hash NULL
1195 #define CGContextRefObj_tp_init 0
1196
1197 #define CGContextRefObj_tp_alloc PyType_GenericAlloc
1198
CGContextRefObj_tp_new(PyTypeObject * type,PyObject * _args,PyObject * _kwds)1199 static PyObject *CGContextRefObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
1200 {
1201 PyObject *_self;
1202 CGContextRef itself;
1203 char *kw[] = {"itself", 0};
1204
1205 if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, CGContextRefObj_Convert, &itself)) return NULL;
1206 if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
1207 ((CGContextRefObject *)_self)->ob_itself = itself;
1208 return _self;
1209 }
1210
1211 #define CGContextRefObj_tp_free PyObject_Del
1212
1213
1214 PyTypeObject CGContextRef_Type = {
1215 PyObject_HEAD_INIT(NULL)
1216 0, /*ob_size*/
1217 "_CG.CGContextRef", /*tp_name*/
1218 sizeof(CGContextRefObject), /*tp_basicsize*/
1219 0, /*tp_itemsize*/
1220 /* methods */
1221 (destructor) CGContextRefObj_dealloc, /*tp_dealloc*/
1222 0, /*tp_print*/
1223 (getattrfunc)0, /*tp_getattr*/
1224 (setattrfunc)0, /*tp_setattr*/
1225 (cmpfunc) CGContextRefObj_compare, /*tp_compare*/
1226 (reprfunc) CGContextRefObj_repr, /*tp_repr*/
1227 (PyNumberMethods *)0, /* tp_as_number */
1228 (PySequenceMethods *)0, /* tp_as_sequence */
1229 (PyMappingMethods *)0, /* tp_as_mapping */
1230 (hashfunc) CGContextRefObj_hash, /*tp_hash*/
1231 0, /*tp_call*/
1232 0, /*tp_str*/
1233 PyObject_GenericGetAttr, /*tp_getattro*/
1234 PyObject_GenericSetAttr, /*tp_setattro */
1235 0, /*tp_as_buffer*/
1236 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1237 0, /*tp_doc*/
1238 0, /*tp_traverse*/
1239 0, /*tp_clear*/
1240 0, /*tp_richcompare*/
1241 0, /*tp_weaklistoffset*/
1242 0, /*tp_iter*/
1243 0, /*tp_iternext*/
1244 CGContextRefObj_methods, /* tp_methods */
1245 0, /*tp_members*/
1246 CGContextRefObj_getsetlist, /*tp_getset*/
1247 0, /*tp_base*/
1248 0, /*tp_dict*/
1249 0, /*tp_descr_get*/
1250 0, /*tp_descr_set*/
1251 0, /*tp_dictoffset*/
1252 CGContextRefObj_tp_init, /* tp_init */
1253 CGContextRefObj_tp_alloc, /* tp_alloc */
1254 CGContextRefObj_tp_new, /* tp_new */
1255 CGContextRefObj_tp_free, /* tp_free */
1256 };
1257
1258 /* ------------------ End object type CGContextRef ------------------ */
1259
1260
1261 #ifndef __LP64__
CG_CreateCGContextForPort(PyObject * _self,PyObject * _args)1262 static PyObject *CG_CreateCGContextForPort(PyObject *_self, PyObject *_args)
1263 {
1264 PyObject *_res = NULL;
1265 GrafPtr port;
1266 CGContextRef ctx;
1267 OSStatus _err;
1268
1269 if (!PyArg_ParseTuple(_args, "O&", GrafObj_Convert, &port))
1270 return NULL;
1271
1272 _err = CreateCGContextForPort(port, &ctx);
1273 if (_err != noErr)
1274 if (_err != noErr) return PyMac_Error(_err);
1275 _res = Py_BuildValue("O&", CGContextRefObj_New, ctx);
1276 return _res;
1277
1278 }
1279 #endif
1280
1281 static PyMethodDef CG_methods[] = {
1282 #ifndef __LP64__
1283 {"CreateCGContextForPort", (PyCFunction)CG_CreateCGContextForPort, 1,
1284 PyDoc_STR("(CGrafPtr) -> CGContextRef")},
1285 #endif
1286 {NULL, NULL, 0}
1287 };
1288
1289
1290
1291
init_CG(void)1292 void init_CG(void)
1293 {
1294 PyObject *m;
1295 PyObject *d;
1296
1297
1298
1299
1300 m = Py_InitModule("_CG", CG_methods);
1301 d = PyModule_GetDict(m);
1302 CG_Error = PyMac_GetOSErrException();
1303 if (CG_Error == NULL ||
1304 PyDict_SetItemString(d, "Error", CG_Error) != 0)
1305 return;
1306 CGContextRef_Type.ob_type = &PyType_Type;
1307 if (PyType_Ready(&CGContextRef_Type) < 0) return;
1308 Py_INCREF(&CGContextRef_Type);
1309 PyModule_AddObject(m, "CGContextRef", (PyObject *)&CGContextRef_Type);
1310 /* Backward-compatible name */
1311 Py_INCREF(&CGContextRef_Type);
1312 PyModule_AddObject(m, "CGContextRefType", (PyObject *)&CGContextRef_Type);
1313 }
1314
1315 /* ========================= End module _CG ========================= */
1316
1317