/Mac/Modules/qd/_Qdmodule.c

http://unladen-swallow.googlecode.com/ · C · 7154 lines · 6694 code · 436 blank · 24 comment · 413 complexity · d16b8692f04b1691e2e467c3b13a32f3 MD5 · raw file

Large files are truncated click here to view the full file

  1. /* =========================== Module _Qd =========================== */
  2. #include "Python.h"
  3. #ifndef __LP64__
  4. #include "pymactoolbox.h"
  5. /* Macro to test whether a weak-loaded CFM function exists */
  6. #define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
  7. PyErr_SetString(PyExc_NotImplementedError, \
  8. "Not available in this shared library/OS version"); \
  9. return NULL; \
  10. }} while(0)
  11. #include <Carbon/Carbon.h>
  12. #ifdef USE_TOOLBOX_OBJECT_GLUE
  13. extern PyObject *_GrafObj_New(GrafPtr);
  14. extern int _GrafObj_Convert(PyObject *, GrafPtr *);
  15. extern PyObject *_BMObj_New(BitMapPtr);
  16. extern int _BMObj_Convert(PyObject *, BitMapPtr *);
  17. extern PyObject *_QdRGB_New(RGBColorPtr);
  18. extern int _QdRGB_Convert(PyObject *, RGBColorPtr);
  19. #define GrafObj_New _GrafObj_New
  20. #define GrafObj_Convert _GrafObj_Convert
  21. #define BMObj_New _BMObj_New
  22. #define BMObj_Convert _BMObj_Convert
  23. #define QdRGB_New _QdRGB_New
  24. #define QdRGB_Convert _QdRGB_Convert
  25. #endif
  26. static PyObject *BMObj_NewCopied(BitMapPtr);
  27. /*
  28. ** Parse/generate RGB records
  29. */
  30. PyObject *QdRGB_New(RGBColorPtr itself)
  31. {
  32. return Py_BuildValue("lll", (long)itself->red, (long)itself->green, (long)itself->blue);
  33. }
  34. int QdRGB_Convert(PyObject *v, RGBColorPtr p_itself)
  35. {
  36. long red, green, blue;
  37. if( !PyArg_ParseTuple(v, "lll", &red, &green, &blue) )
  38. return 0;
  39. p_itself->red = (unsigned short)red;
  40. p_itself->green = (unsigned short)green;
  41. p_itself->blue = (unsigned short)blue;
  42. return 1;
  43. }
  44. /*
  45. ** Generate FontInfo records
  46. */
  47. static
  48. PyObject *QdFI_New(FontInfo *itself)
  49. {
  50. return Py_BuildValue("hhhh", itself->ascent, itself->descent,
  51. itself->widMax, itself->leading);
  52. }
  53. static PyObject *Qd_Error;
  54. /* ---------------------- Object type GrafPort ---------------------- */
  55. PyTypeObject GrafPort_Type;
  56. #define GrafObj_Check(x) ((x)->ob_type == &GrafPort_Type || PyObject_TypeCheck((x), &GrafPort_Type))
  57. typedef struct GrafPortObject {
  58. PyObject_HEAD
  59. GrafPtr ob_itself;
  60. } GrafPortObject;
  61. PyObject *GrafObj_New(GrafPtr itself)
  62. {
  63. GrafPortObject *it;
  64. if (itself == NULL) return PyMac_Error(resNotFound);
  65. it = PyObject_NEW(GrafPortObject, &GrafPort_Type);
  66. if (it == NULL) return NULL;
  67. it->ob_itself = itself;
  68. return (PyObject *)it;
  69. }
  70. int GrafObj_Convert(PyObject *v, GrafPtr *p_itself)
  71. {
  72. #if 1
  73. {
  74. WindowRef win;
  75. if (WinObj_Convert(v, &win) && v) {
  76. *p_itself = (GrafPtr)GetWindowPort(win);
  77. return 1;
  78. }
  79. PyErr_Clear();
  80. }
  81. #else
  82. if (DlgObj_Check(v)) {
  83. DialogRef dlg = (DialogRef)((GrafPortObject *)v)->ob_itself;
  84. *p_itself = (GrafPtr)GetWindowPort(GetDialogWindow(dlg));
  85. return 1;
  86. }
  87. if (WinObj_Check(v)) {
  88. WindowRef win = (WindowRef)((GrafPortObject *)v)->ob_itself;
  89. *p_itself = (GrafPtr)GetWindowPort(win);
  90. return 1;
  91. }
  92. #endif
  93. if (!GrafObj_Check(v))
  94. {
  95. PyErr_SetString(PyExc_TypeError, "GrafPort required");
  96. return 0;
  97. }
  98. *p_itself = ((GrafPortObject *)v)->ob_itself;
  99. return 1;
  100. }
  101. static void GrafObj_dealloc(GrafPortObject *self)
  102. {
  103. /* Cleanup of self->ob_itself goes here */
  104. self->ob_type->tp_free((PyObject *)self);
  105. }
  106. static PyObject *GrafObj_MacSetPort(GrafPortObject *_self, PyObject *_args)
  107. {
  108. PyObject *_res = NULL;
  109. #ifndef MacSetPort
  110. PyMac_PRECHECK(MacSetPort);
  111. #endif
  112. if (!PyArg_ParseTuple(_args, ""))
  113. return NULL;
  114. MacSetPort(_self->ob_itself);
  115. Py_INCREF(Py_None);
  116. _res = Py_None;
  117. return _res;
  118. }
  119. static PyObject *GrafObj_QDSwapPort(GrafPortObject *_self, PyObject *_args)
  120. {
  121. PyObject *_res = NULL;
  122. Boolean _rv;
  123. CGrafPtr outOldPort;
  124. #ifndef QDSwapPort
  125. PyMac_PRECHECK(QDSwapPort);
  126. #endif
  127. if (!PyArg_ParseTuple(_args, ""))
  128. return NULL;
  129. _rv = QDSwapPort(_self->ob_itself,
  130. &outOldPort);
  131. _res = Py_BuildValue("bO&",
  132. _rv,
  133. GrafObj_New, outOldPort);
  134. return _res;
  135. }
  136. static PyObject *GrafObj_IsValidPort(GrafPortObject *_self, PyObject *_args)
  137. {
  138. PyObject *_res = NULL;
  139. Boolean _rv;
  140. #ifndef IsValidPort
  141. PyMac_PRECHECK(IsValidPort);
  142. #endif
  143. if (!PyArg_ParseTuple(_args, ""))
  144. return NULL;
  145. _rv = IsValidPort(_self->ob_itself);
  146. _res = Py_BuildValue("b",
  147. _rv);
  148. return _res;
  149. }
  150. static PyObject *GrafObj_GetPortPixMap(GrafPortObject *_self, PyObject *_args)
  151. {
  152. PyObject *_res = NULL;
  153. PixMapHandle _rv;
  154. #ifndef GetPortPixMap
  155. PyMac_PRECHECK(GetPortPixMap);
  156. #endif
  157. if (!PyArg_ParseTuple(_args, ""))
  158. return NULL;
  159. _rv = GetPortPixMap(_self->ob_itself);
  160. _res = Py_BuildValue("O&",
  161. ResObj_New, _rv);
  162. return _res;
  163. }
  164. static PyObject *GrafObj_GetPortBitMapForCopyBits(GrafPortObject *_self, PyObject *_args)
  165. {
  166. PyObject *_res = NULL;
  167. const BitMap * _rv;
  168. #ifndef GetPortBitMapForCopyBits
  169. PyMac_PRECHECK(GetPortBitMapForCopyBits);
  170. #endif
  171. if (!PyArg_ParseTuple(_args, ""))
  172. return NULL;
  173. _rv = GetPortBitMapForCopyBits(_self->ob_itself);
  174. _res = Py_BuildValue("O&",
  175. BMObj_New, _rv);
  176. return _res;
  177. }
  178. static PyObject *GrafObj_GetPortBounds(GrafPortObject *_self, PyObject *_args)
  179. {
  180. PyObject *_res = NULL;
  181. Rect rect;
  182. #ifndef GetPortBounds
  183. PyMac_PRECHECK(GetPortBounds);
  184. #endif
  185. if (!PyArg_ParseTuple(_args, ""))
  186. return NULL;
  187. GetPortBounds(_self->ob_itself,
  188. &rect);
  189. _res = Py_BuildValue("O&",
  190. PyMac_BuildRect, &rect);
  191. return _res;
  192. }
  193. static PyObject *GrafObj_GetPortForeColor(GrafPortObject *_self, PyObject *_args)
  194. {
  195. PyObject *_res = NULL;
  196. RGBColor foreColor;
  197. #ifndef GetPortForeColor
  198. PyMac_PRECHECK(GetPortForeColor);
  199. #endif
  200. if (!PyArg_ParseTuple(_args, ""))
  201. return NULL;
  202. GetPortForeColor(_self->ob_itself,
  203. &foreColor);
  204. _res = Py_BuildValue("O&",
  205. QdRGB_New, &foreColor);
  206. return _res;
  207. }
  208. static PyObject *GrafObj_GetPortBackColor(GrafPortObject *_self, PyObject *_args)
  209. {
  210. PyObject *_res = NULL;
  211. RGBColor backColor;
  212. #ifndef GetPortBackColor
  213. PyMac_PRECHECK(GetPortBackColor);
  214. #endif
  215. if (!PyArg_ParseTuple(_args, ""))
  216. return NULL;
  217. GetPortBackColor(_self->ob_itself,
  218. &backColor);
  219. _res = Py_BuildValue("O&",
  220. QdRGB_New, &backColor);
  221. return _res;
  222. }
  223. static PyObject *GrafObj_GetPortOpColor(GrafPortObject *_self, PyObject *_args)
  224. {
  225. PyObject *_res = NULL;
  226. RGBColor opColor;
  227. #ifndef GetPortOpColor
  228. PyMac_PRECHECK(GetPortOpColor);
  229. #endif
  230. if (!PyArg_ParseTuple(_args, ""))
  231. return NULL;
  232. GetPortOpColor(_self->ob_itself,
  233. &opColor);
  234. _res = Py_BuildValue("O&",
  235. QdRGB_New, &opColor);
  236. return _res;
  237. }
  238. static PyObject *GrafObj_GetPortHiliteColor(GrafPortObject *_self, PyObject *_args)
  239. {
  240. PyObject *_res = NULL;
  241. RGBColor hiliteColor;
  242. #ifndef GetPortHiliteColor
  243. PyMac_PRECHECK(GetPortHiliteColor);
  244. #endif
  245. if (!PyArg_ParseTuple(_args, ""))
  246. return NULL;
  247. GetPortHiliteColor(_self->ob_itself,
  248. &hiliteColor);
  249. _res = Py_BuildValue("O&",
  250. QdRGB_New, &hiliteColor);
  251. return _res;
  252. }
  253. static PyObject *GrafObj_GetPortTextFont(GrafPortObject *_self, PyObject *_args)
  254. {
  255. PyObject *_res = NULL;
  256. short _rv;
  257. #ifndef GetPortTextFont
  258. PyMac_PRECHECK(GetPortTextFont);
  259. #endif
  260. if (!PyArg_ParseTuple(_args, ""))
  261. return NULL;
  262. _rv = GetPortTextFont(_self->ob_itself);
  263. _res = Py_BuildValue("h",
  264. _rv);
  265. return _res;
  266. }
  267. static PyObject *GrafObj_GetPortTextFace(GrafPortObject *_self, PyObject *_args)
  268. {
  269. PyObject *_res = NULL;
  270. Style _rv;
  271. #ifndef GetPortTextFace
  272. PyMac_PRECHECK(GetPortTextFace);
  273. #endif
  274. if (!PyArg_ParseTuple(_args, ""))
  275. return NULL;
  276. _rv = GetPortTextFace(_self->ob_itself);
  277. _res = Py_BuildValue("b",
  278. _rv);
  279. return _res;
  280. }
  281. static PyObject *GrafObj_GetPortTextMode(GrafPortObject *_self, PyObject *_args)
  282. {
  283. PyObject *_res = NULL;
  284. short _rv;
  285. #ifndef GetPortTextMode
  286. PyMac_PRECHECK(GetPortTextMode);
  287. #endif
  288. if (!PyArg_ParseTuple(_args, ""))
  289. return NULL;
  290. _rv = GetPortTextMode(_self->ob_itself);
  291. _res = Py_BuildValue("h",
  292. _rv);
  293. return _res;
  294. }
  295. static PyObject *GrafObj_GetPortTextSize(GrafPortObject *_self, PyObject *_args)
  296. {
  297. PyObject *_res = NULL;
  298. short _rv;
  299. #ifndef GetPortTextSize
  300. PyMac_PRECHECK(GetPortTextSize);
  301. #endif
  302. if (!PyArg_ParseTuple(_args, ""))
  303. return NULL;
  304. _rv = GetPortTextSize(_self->ob_itself);
  305. _res = Py_BuildValue("h",
  306. _rv);
  307. return _res;
  308. }
  309. static PyObject *GrafObj_GetPortChExtra(GrafPortObject *_self, PyObject *_args)
  310. {
  311. PyObject *_res = NULL;
  312. short _rv;
  313. #ifndef GetPortChExtra
  314. PyMac_PRECHECK(GetPortChExtra);
  315. #endif
  316. if (!PyArg_ParseTuple(_args, ""))
  317. return NULL;
  318. _rv = GetPortChExtra(_self->ob_itself);
  319. _res = Py_BuildValue("h",
  320. _rv);
  321. return _res;
  322. }
  323. static PyObject *GrafObj_GetPortFracHPenLocation(GrafPortObject *_self, PyObject *_args)
  324. {
  325. PyObject *_res = NULL;
  326. short _rv;
  327. #ifndef GetPortFracHPenLocation
  328. PyMac_PRECHECK(GetPortFracHPenLocation);
  329. #endif
  330. if (!PyArg_ParseTuple(_args, ""))
  331. return NULL;
  332. _rv = GetPortFracHPenLocation(_self->ob_itself);
  333. _res = Py_BuildValue("h",
  334. _rv);
  335. return _res;
  336. }
  337. static PyObject *GrafObj_GetPortSpExtra(GrafPortObject *_self, PyObject *_args)
  338. {
  339. PyObject *_res = NULL;
  340. Fixed _rv;
  341. #ifndef GetPortSpExtra
  342. PyMac_PRECHECK(GetPortSpExtra);
  343. #endif
  344. if (!PyArg_ParseTuple(_args, ""))
  345. return NULL;
  346. _rv = GetPortSpExtra(_self->ob_itself);
  347. _res = Py_BuildValue("O&",
  348. PyMac_BuildFixed, _rv);
  349. return _res;
  350. }
  351. static PyObject *GrafObj_GetPortPenVisibility(GrafPortObject *_self, PyObject *_args)
  352. {
  353. PyObject *_res = NULL;
  354. short _rv;
  355. #ifndef GetPortPenVisibility
  356. PyMac_PRECHECK(GetPortPenVisibility);
  357. #endif
  358. if (!PyArg_ParseTuple(_args, ""))
  359. return NULL;
  360. _rv = GetPortPenVisibility(_self->ob_itself);
  361. _res = Py_BuildValue("h",
  362. _rv);
  363. return _res;
  364. }
  365. static PyObject *GrafObj_GetPortVisibleRegion(GrafPortObject *_self, PyObject *_args)
  366. {
  367. PyObject *_res = NULL;
  368. RgnHandle _rv;
  369. RgnHandle visRgn;
  370. #ifndef GetPortVisibleRegion
  371. PyMac_PRECHECK(GetPortVisibleRegion);
  372. #endif
  373. if (!PyArg_ParseTuple(_args, "O&",
  374. ResObj_Convert, &visRgn))
  375. return NULL;
  376. _rv = GetPortVisibleRegion(_self->ob_itself,
  377. visRgn);
  378. _res = Py_BuildValue("O&",
  379. ResObj_New, _rv);
  380. return _res;
  381. }
  382. static PyObject *GrafObj_GetPortClipRegion(GrafPortObject *_self, PyObject *_args)
  383. {
  384. PyObject *_res = NULL;
  385. RgnHandle _rv;
  386. RgnHandle clipRgn;
  387. #ifndef GetPortClipRegion
  388. PyMac_PRECHECK(GetPortClipRegion);
  389. #endif
  390. if (!PyArg_ParseTuple(_args, "O&",
  391. ResObj_Convert, &clipRgn))
  392. return NULL;
  393. _rv = GetPortClipRegion(_self->ob_itself,
  394. clipRgn);
  395. _res = Py_BuildValue("O&",
  396. ResObj_New, _rv);
  397. return _res;
  398. }
  399. static PyObject *GrafObj_GetPortBackPixPat(GrafPortObject *_self, PyObject *_args)
  400. {
  401. PyObject *_res = NULL;
  402. PixPatHandle _rv;
  403. PixPatHandle backPattern;
  404. #ifndef GetPortBackPixPat
  405. PyMac_PRECHECK(GetPortBackPixPat);
  406. #endif
  407. if (!PyArg_ParseTuple(_args, "O&",
  408. ResObj_Convert, &backPattern))
  409. return NULL;
  410. _rv = GetPortBackPixPat(_self->ob_itself,
  411. backPattern);
  412. _res = Py_BuildValue("O&",
  413. ResObj_New, _rv);
  414. return _res;
  415. }
  416. static PyObject *GrafObj_GetPortPenPixPat(GrafPortObject *_self, PyObject *_args)
  417. {
  418. PyObject *_res = NULL;
  419. PixPatHandle _rv;
  420. PixPatHandle penPattern;
  421. #ifndef GetPortPenPixPat
  422. PyMac_PRECHECK(GetPortPenPixPat);
  423. #endif
  424. if (!PyArg_ParseTuple(_args, "O&",
  425. ResObj_Convert, &penPattern))
  426. return NULL;
  427. _rv = GetPortPenPixPat(_self->ob_itself,
  428. penPattern);
  429. _res = Py_BuildValue("O&",
  430. ResObj_New, _rv);
  431. return _res;
  432. }
  433. static PyObject *GrafObj_GetPortFillPixPat(GrafPortObject *_self, PyObject *_args)
  434. {
  435. PyObject *_res = NULL;
  436. PixPatHandle _rv;
  437. PixPatHandle fillPattern;
  438. #ifndef GetPortFillPixPat
  439. PyMac_PRECHECK(GetPortFillPixPat);
  440. #endif
  441. if (!PyArg_ParseTuple(_args, "O&",
  442. ResObj_Convert, &fillPattern))
  443. return NULL;
  444. _rv = GetPortFillPixPat(_self->ob_itself,
  445. fillPattern);
  446. _res = Py_BuildValue("O&",
  447. ResObj_New, _rv);
  448. return _res;
  449. }
  450. static PyObject *GrafObj_GetPortPenSize(GrafPortObject *_self, PyObject *_args)
  451. {
  452. PyObject *_res = NULL;
  453. Point penSize;
  454. #ifndef GetPortPenSize
  455. PyMac_PRECHECK(GetPortPenSize);
  456. #endif
  457. if (!PyArg_ParseTuple(_args, "O&",
  458. PyMac_GetPoint, &penSize))
  459. return NULL;
  460. GetPortPenSize(_self->ob_itself,
  461. &penSize);
  462. _res = Py_BuildValue("O&",
  463. PyMac_BuildPoint, penSize);
  464. return _res;
  465. }
  466. static PyObject *GrafObj_GetPortPenMode(GrafPortObject *_self, PyObject *_args)
  467. {
  468. PyObject *_res = NULL;
  469. SInt32 _rv;
  470. #ifndef GetPortPenMode
  471. PyMac_PRECHECK(GetPortPenMode);
  472. #endif
  473. if (!PyArg_ParseTuple(_args, ""))
  474. return NULL;
  475. _rv = GetPortPenMode(_self->ob_itself);
  476. _res = Py_BuildValue("l",
  477. _rv);
  478. return _res;
  479. }
  480. static PyObject *GrafObj_GetPortPenLocation(GrafPortObject *_self, PyObject *_args)
  481. {
  482. PyObject *_res = NULL;
  483. Point penLocation;
  484. #ifndef GetPortPenLocation
  485. PyMac_PRECHECK(GetPortPenLocation);
  486. #endif
  487. if (!PyArg_ParseTuple(_args, "O&",
  488. PyMac_GetPoint, &penLocation))
  489. return NULL;
  490. GetPortPenLocation(_self->ob_itself,
  491. &penLocation);
  492. _res = Py_BuildValue("O&",
  493. PyMac_BuildPoint, penLocation);
  494. return _res;
  495. }
  496. static PyObject *GrafObj_IsPortRegionBeingDefined(GrafPortObject *_self, PyObject *_args)
  497. {
  498. PyObject *_res = NULL;
  499. Boolean _rv;
  500. #ifndef IsPortRegionBeingDefined
  501. PyMac_PRECHECK(IsPortRegionBeingDefined);
  502. #endif
  503. if (!PyArg_ParseTuple(_args, ""))
  504. return NULL;
  505. _rv = IsPortRegionBeingDefined(_self->ob_itself);
  506. _res = Py_BuildValue("b",
  507. _rv);
  508. return _res;
  509. }
  510. static PyObject *GrafObj_IsPortPictureBeingDefined(GrafPortObject *_self, PyObject *_args)
  511. {
  512. PyObject *_res = NULL;
  513. Boolean _rv;
  514. #ifndef IsPortPictureBeingDefined
  515. PyMac_PRECHECK(IsPortPictureBeingDefined);
  516. #endif
  517. if (!PyArg_ParseTuple(_args, ""))
  518. return NULL;
  519. _rv = IsPortPictureBeingDefined(_self->ob_itself);
  520. _res = Py_BuildValue("b",
  521. _rv);
  522. return _res;
  523. }
  524. static PyObject *GrafObj_IsPortPolyBeingDefined(GrafPortObject *_self, PyObject *_args)
  525. {
  526. PyObject *_res = NULL;
  527. Boolean _rv;
  528. #ifndef IsPortPolyBeingDefined
  529. PyMac_PRECHECK(IsPortPolyBeingDefined);
  530. #endif
  531. if (!PyArg_ParseTuple(_args, ""))
  532. return NULL;
  533. _rv = IsPortPolyBeingDefined(_self->ob_itself);
  534. _res = Py_BuildValue("b",
  535. _rv);
  536. return _res;
  537. }
  538. static PyObject *GrafObj_IsPortOffscreen(GrafPortObject *_self, PyObject *_args)
  539. {
  540. PyObject *_res = NULL;
  541. Boolean _rv;
  542. #ifndef IsPortOffscreen
  543. PyMac_PRECHECK(IsPortOffscreen);
  544. #endif
  545. if (!PyArg_ParseTuple(_args, ""))
  546. return NULL;
  547. _rv = IsPortOffscreen(_self->ob_itself);
  548. _res = Py_BuildValue("b",
  549. _rv);
  550. return _res;
  551. }
  552. static PyObject *GrafObj_IsPortColor(GrafPortObject *_self, PyObject *_args)
  553. {
  554. PyObject *_res = NULL;
  555. Boolean _rv;
  556. #ifndef IsPortColor
  557. PyMac_PRECHECK(IsPortColor);
  558. #endif
  559. if (!PyArg_ParseTuple(_args, ""))
  560. return NULL;
  561. _rv = IsPortColor(_self->ob_itself);
  562. _res = Py_BuildValue("b",
  563. _rv);
  564. return _res;
  565. }
  566. static PyObject *GrafObj_IsPortVisibleRegionEmpty(GrafPortObject *_self, PyObject *_args)
  567. {
  568. PyObject *_res = NULL;
  569. Boolean _rv;
  570. #ifndef IsPortVisibleRegionEmpty
  571. PyMac_PRECHECK(IsPortVisibleRegionEmpty);
  572. #endif
  573. if (!PyArg_ParseTuple(_args, ""))
  574. return NULL;
  575. _rv = IsPortVisibleRegionEmpty(_self->ob_itself);
  576. _res = Py_BuildValue("b",
  577. _rv);
  578. return _res;
  579. }
  580. static PyObject *GrafObj_IsPortClipRegionEmpty(GrafPortObject *_self, PyObject *_args)
  581. {
  582. PyObject *_res = NULL;
  583. Boolean _rv;
  584. #ifndef IsPortClipRegionEmpty
  585. PyMac_PRECHECK(IsPortClipRegionEmpty);
  586. #endif
  587. if (!PyArg_ParseTuple(_args, ""))
  588. return NULL;
  589. _rv = IsPortClipRegionEmpty(_self->ob_itself);
  590. _res = Py_BuildValue("b",
  591. _rv);
  592. return _res;
  593. }
  594. static PyObject *GrafObj_SectRegionWithPortClipRegion(GrafPortObject *_self, PyObject *_args)
  595. {
  596. PyObject *_res = NULL;
  597. RgnHandle ioRegion;
  598. #ifndef SectRegionWithPortClipRegion
  599. PyMac_PRECHECK(SectRegionWithPortClipRegion);
  600. #endif
  601. if (!PyArg_ParseTuple(_args, "O&",
  602. ResObj_Convert, &ioRegion))
  603. return NULL;
  604. SectRegionWithPortClipRegion(_self->ob_itself,
  605. ioRegion);
  606. Py_INCREF(Py_None);
  607. _res = Py_None;
  608. return _res;
  609. }
  610. static PyObject *GrafObj_SectRegionWithPortVisibleRegion(GrafPortObject *_self, PyObject *_args)
  611. {
  612. PyObject *_res = NULL;
  613. RgnHandle ioRegion;
  614. #ifndef SectRegionWithPortVisibleRegion
  615. PyMac_PRECHECK(SectRegionWithPortVisibleRegion);
  616. #endif
  617. if (!PyArg_ParseTuple(_args, "O&",
  618. ResObj_Convert, &ioRegion))
  619. return NULL;
  620. SectRegionWithPortVisibleRegion(_self->ob_itself,
  621. ioRegion);
  622. Py_INCREF(Py_None);
  623. _res = Py_None;
  624. return _res;
  625. }
  626. static PyObject *GrafObj_SwapPortPicSaveHandle(GrafPortObject *_self, PyObject *_args)
  627. {
  628. PyObject *_res = NULL;
  629. Handle _rv;
  630. Handle inPicSaveHdl;
  631. #ifndef SwapPortPicSaveHandle
  632. PyMac_PRECHECK(SwapPortPicSaveHandle);
  633. #endif
  634. if (!PyArg_ParseTuple(_args, "O&",
  635. ResObj_Convert, &inPicSaveHdl))
  636. return NULL;
  637. _rv = SwapPortPicSaveHandle(_self->ob_itself,
  638. inPicSaveHdl);
  639. _res = Py_BuildValue("O&",
  640. ResObj_New, _rv);
  641. return _res;
  642. }
  643. static PyObject *GrafObj_SwapPortPolySaveHandle(GrafPortObject *_self, PyObject *_args)
  644. {
  645. PyObject *_res = NULL;
  646. Handle _rv;
  647. Handle inPolySaveHdl;
  648. #ifndef SwapPortPolySaveHandle
  649. PyMac_PRECHECK(SwapPortPolySaveHandle);
  650. #endif
  651. if (!PyArg_ParseTuple(_args, "O&",
  652. ResObj_Convert, &inPolySaveHdl))
  653. return NULL;
  654. _rv = SwapPortPolySaveHandle(_self->ob_itself,
  655. inPolySaveHdl);
  656. _res = Py_BuildValue("O&",
  657. ResObj_New, _rv);
  658. return _res;
  659. }
  660. static PyObject *GrafObj_SwapPortRegionSaveHandle(GrafPortObject *_self, PyObject *_args)
  661. {
  662. PyObject *_res = NULL;
  663. Handle _rv;
  664. Handle inRegionSaveHdl;
  665. #ifndef SwapPortRegionSaveHandle
  666. PyMac_PRECHECK(SwapPortRegionSaveHandle);
  667. #endif
  668. if (!PyArg_ParseTuple(_args, "O&",
  669. ResObj_Convert, &inRegionSaveHdl))
  670. return NULL;
  671. _rv = SwapPortRegionSaveHandle(_self->ob_itself,
  672. inRegionSaveHdl);
  673. _res = Py_BuildValue("O&",
  674. ResObj_New, _rv);
  675. return _res;
  676. }
  677. static PyObject *GrafObj_SetPortBounds(GrafPortObject *_self, PyObject *_args)
  678. {
  679. PyObject *_res = NULL;
  680. Rect rect;
  681. #ifndef SetPortBounds
  682. PyMac_PRECHECK(SetPortBounds);
  683. #endif
  684. if (!PyArg_ParseTuple(_args, "O&",
  685. PyMac_GetRect, &rect))
  686. return NULL;
  687. SetPortBounds(_self->ob_itself,
  688. &rect);
  689. Py_INCREF(Py_None);
  690. _res = Py_None;
  691. return _res;
  692. }
  693. static PyObject *GrafObj_SetPortOpColor(GrafPortObject *_self, PyObject *_args)
  694. {
  695. PyObject *_res = NULL;
  696. RGBColor opColor;
  697. #ifndef SetPortOpColor
  698. PyMac_PRECHECK(SetPortOpColor);
  699. #endif
  700. if (!PyArg_ParseTuple(_args, "O&",
  701. QdRGB_Convert, &opColor))
  702. return NULL;
  703. SetPortOpColor(_self->ob_itself,
  704. &opColor);
  705. Py_INCREF(Py_None);
  706. _res = Py_None;
  707. return _res;
  708. }
  709. static PyObject *GrafObj_SetPortTextFont(GrafPortObject *_self, PyObject *_args)
  710. {
  711. PyObject *_res = NULL;
  712. short txFont;
  713. #ifndef SetPortTextFont
  714. PyMac_PRECHECK(SetPortTextFont);
  715. #endif
  716. if (!PyArg_ParseTuple(_args, "h",
  717. &txFont))
  718. return NULL;
  719. SetPortTextFont(_self->ob_itself,
  720. txFont);
  721. Py_INCREF(Py_None);
  722. _res = Py_None;
  723. return _res;
  724. }
  725. static PyObject *GrafObj_SetPortTextSize(GrafPortObject *_self, PyObject *_args)
  726. {
  727. PyObject *_res = NULL;
  728. short txSize;
  729. #ifndef SetPortTextSize
  730. PyMac_PRECHECK(SetPortTextSize);
  731. #endif
  732. if (!PyArg_ParseTuple(_args, "h",
  733. &txSize))
  734. return NULL;
  735. SetPortTextSize(_self->ob_itself,
  736. txSize);
  737. Py_INCREF(Py_None);
  738. _res = Py_None;
  739. return _res;
  740. }
  741. static PyObject *GrafObj_SetPortTextFace(GrafPortObject *_self, PyObject *_args)
  742. {
  743. PyObject *_res = NULL;
  744. StyleParameter face;
  745. #ifndef SetPortTextFace
  746. PyMac_PRECHECK(SetPortTextFace);
  747. #endif
  748. if (!PyArg_ParseTuple(_args, "h",
  749. &face))
  750. return NULL;
  751. SetPortTextFace(_self->ob_itself,
  752. face);
  753. Py_INCREF(Py_None);
  754. _res = Py_None;
  755. return _res;
  756. }
  757. static PyObject *GrafObj_SetPortTextMode(GrafPortObject *_self, PyObject *_args)
  758. {
  759. PyObject *_res = NULL;
  760. short mode;
  761. #ifndef SetPortTextMode
  762. PyMac_PRECHECK(SetPortTextMode);
  763. #endif
  764. if (!PyArg_ParseTuple(_args, "h",
  765. &mode))
  766. return NULL;
  767. SetPortTextMode(_self->ob_itself,
  768. mode);
  769. Py_INCREF(Py_None);
  770. _res = Py_None;
  771. return _res;
  772. }
  773. static PyObject *GrafObj_SetPortVisibleRegion(GrafPortObject *_self, PyObject *_args)
  774. {
  775. PyObject *_res = NULL;
  776. RgnHandle visRgn;
  777. #ifndef SetPortVisibleRegion
  778. PyMac_PRECHECK(SetPortVisibleRegion);
  779. #endif
  780. if (!PyArg_ParseTuple(_args, "O&",
  781. ResObj_Convert, &visRgn))
  782. return NULL;
  783. SetPortVisibleRegion(_self->ob_itself,
  784. visRgn);
  785. Py_INCREF(Py_None);
  786. _res = Py_None;
  787. return _res;
  788. }
  789. static PyObject *GrafObj_SetPortClipRegion(GrafPortObject *_self, PyObject *_args)
  790. {
  791. PyObject *_res = NULL;
  792. RgnHandle clipRgn;
  793. #ifndef SetPortClipRegion
  794. PyMac_PRECHECK(SetPortClipRegion);
  795. #endif
  796. if (!PyArg_ParseTuple(_args, "O&",
  797. ResObj_Convert, &clipRgn))
  798. return NULL;
  799. SetPortClipRegion(_self->ob_itself,
  800. clipRgn);
  801. Py_INCREF(Py_None);
  802. _res = Py_None;
  803. return _res;
  804. }
  805. static PyObject *GrafObj_SetPortPenPixPat(GrafPortObject *_self, PyObject *_args)
  806. {
  807. PyObject *_res = NULL;
  808. PixPatHandle penPattern;
  809. #ifndef SetPortPenPixPat
  810. PyMac_PRECHECK(SetPortPenPixPat);
  811. #endif
  812. if (!PyArg_ParseTuple(_args, "O&",
  813. ResObj_Convert, &penPattern))
  814. return NULL;
  815. SetPortPenPixPat(_self->ob_itself,
  816. penPattern);
  817. Py_INCREF(Py_None);
  818. _res = Py_None;
  819. return _res;
  820. }
  821. static PyObject *GrafObj_SetPortFillPixPat(GrafPortObject *_self, PyObject *_args)
  822. {
  823. PyObject *_res = NULL;
  824. PixPatHandle penPattern;
  825. #ifndef SetPortFillPixPat
  826. PyMac_PRECHECK(SetPortFillPixPat);
  827. #endif
  828. if (!PyArg_ParseTuple(_args, "O&",
  829. ResObj_Convert, &penPattern))
  830. return NULL;
  831. SetPortFillPixPat(_self->ob_itself,
  832. penPattern);
  833. Py_INCREF(Py_None);
  834. _res = Py_None;
  835. return _res;
  836. }
  837. static PyObject *GrafObj_SetPortBackPixPat(GrafPortObject *_self, PyObject *_args)
  838. {
  839. PyObject *_res = NULL;
  840. PixPatHandle backPattern;
  841. #ifndef SetPortBackPixPat
  842. PyMac_PRECHECK(SetPortBackPixPat);
  843. #endif
  844. if (!PyArg_ParseTuple(_args, "O&",
  845. ResObj_Convert, &backPattern))
  846. return NULL;
  847. SetPortBackPixPat(_self->ob_itself,
  848. backPattern);
  849. Py_INCREF(Py_None);
  850. _res = Py_None;
  851. return _res;
  852. }
  853. static PyObject *GrafObj_SetPortPenSize(GrafPortObject *_self, PyObject *_args)
  854. {
  855. PyObject *_res = NULL;
  856. Point penSize;
  857. #ifndef SetPortPenSize
  858. PyMac_PRECHECK(SetPortPenSize);
  859. #endif
  860. if (!PyArg_ParseTuple(_args, "O&",
  861. PyMac_GetPoint, &penSize))
  862. return NULL;
  863. SetPortPenSize(_self->ob_itself,
  864. penSize);
  865. Py_INCREF(Py_None);
  866. _res = Py_None;
  867. return _res;
  868. }
  869. static PyObject *GrafObj_SetPortPenMode(GrafPortObject *_self, PyObject *_args)
  870. {
  871. PyObject *_res = NULL;
  872. SInt32 penMode;
  873. #ifndef SetPortPenMode
  874. PyMac_PRECHECK(SetPortPenMode);
  875. #endif
  876. if (!PyArg_ParseTuple(_args, "l",
  877. &penMode))
  878. return NULL;
  879. SetPortPenMode(_self->ob_itself,
  880. penMode);
  881. Py_INCREF(Py_None);
  882. _res = Py_None;
  883. return _res;
  884. }
  885. static PyObject *GrafObj_SetPortFracHPenLocation(GrafPortObject *_self, PyObject *_args)
  886. {
  887. PyObject *_res = NULL;
  888. short pnLocHFrac;
  889. #ifndef SetPortFracHPenLocation
  890. PyMac_PRECHECK(SetPortFracHPenLocation);
  891. #endif
  892. if (!PyArg_ParseTuple(_args, "h",
  893. &pnLocHFrac))
  894. return NULL;
  895. SetPortFracHPenLocation(_self->ob_itself,
  896. pnLocHFrac);
  897. Py_INCREF(Py_None);
  898. _res = Py_None;
  899. return _res;
  900. }
  901. static PyObject *GrafObj_DisposePort(GrafPortObject *_self, PyObject *_args)
  902. {
  903. PyObject *_res = NULL;
  904. #ifndef DisposePort
  905. PyMac_PRECHECK(DisposePort);
  906. #endif
  907. if (!PyArg_ParseTuple(_args, ""))
  908. return NULL;
  909. DisposePort(_self->ob_itself);
  910. Py_INCREF(Py_None);
  911. _res = Py_None;
  912. return _res;
  913. }
  914. static PyObject *GrafObj_QDLocalToGlobalPoint(GrafPortObject *_self, PyObject *_args)
  915. {
  916. PyObject *_res = NULL;
  917. Point point;
  918. #ifndef QDLocalToGlobalPoint
  919. PyMac_PRECHECK(QDLocalToGlobalPoint);
  920. #endif
  921. if (!PyArg_ParseTuple(_args, "O&",
  922. PyMac_GetPoint, &point))
  923. return NULL;
  924. QDLocalToGlobalPoint(_self->ob_itself,
  925. &point);
  926. _res = Py_BuildValue("O&",
  927. PyMac_BuildPoint, point);
  928. return _res;
  929. }
  930. static PyObject *GrafObj_QDGlobalToLocalPoint(GrafPortObject *_self, PyObject *_args)
  931. {
  932. PyObject *_res = NULL;
  933. Point point;
  934. #ifndef QDGlobalToLocalPoint
  935. PyMac_PRECHECK(QDGlobalToLocalPoint);
  936. #endif
  937. if (!PyArg_ParseTuple(_args, "O&",
  938. PyMac_GetPoint, &point))
  939. return NULL;
  940. QDGlobalToLocalPoint(_self->ob_itself,
  941. &point);
  942. _res = Py_BuildValue("O&",
  943. PyMac_BuildPoint, point);
  944. return _res;
  945. }
  946. static PyObject *GrafObj_QDLocalToGlobalRect(GrafPortObject *_self, PyObject *_args)
  947. {
  948. PyObject *_res = NULL;
  949. Rect bounds;
  950. #ifndef QDLocalToGlobalRect
  951. PyMac_PRECHECK(QDLocalToGlobalRect);
  952. #endif
  953. if (!PyArg_ParseTuple(_args, ""))
  954. return NULL;
  955. QDLocalToGlobalRect(_self->ob_itself,
  956. &bounds);
  957. _res = Py_BuildValue("O&",
  958. PyMac_BuildRect, &bounds);
  959. return _res;
  960. }
  961. static PyObject *GrafObj_QDGlobalToLocalRect(GrafPortObject *_self, PyObject *_args)
  962. {
  963. PyObject *_res = NULL;
  964. Rect bounds;
  965. #ifndef QDGlobalToLocalRect
  966. PyMac_PRECHECK(QDGlobalToLocalRect);
  967. #endif
  968. if (!PyArg_ParseTuple(_args, ""))
  969. return NULL;
  970. QDGlobalToLocalRect(_self->ob_itself,
  971. &bounds);
  972. _res = Py_BuildValue("O&",
  973. PyMac_BuildRect, &bounds);
  974. return _res;
  975. }
  976. static PyObject *GrafObj_QDLocalToGlobalRegion(GrafPortObject *_self, PyObject *_args)
  977. {
  978. PyObject *_res = NULL;
  979. RgnHandle _rv;
  980. RgnHandle region;
  981. #ifndef QDLocalToGlobalRegion
  982. PyMac_PRECHECK(QDLocalToGlobalRegion);
  983. #endif
  984. if (!PyArg_ParseTuple(_args, "O&",
  985. ResObj_Convert, &region))
  986. return NULL;
  987. _rv = QDLocalToGlobalRegion(_self->ob_itself,
  988. region);
  989. _res = Py_BuildValue("O&",
  990. ResObj_New, _rv);
  991. return _res;
  992. }
  993. static PyObject *GrafObj_QDGlobalToLocalRegion(GrafPortObject *_self, PyObject *_args)
  994. {
  995. PyObject *_res = NULL;
  996. RgnHandle _rv;
  997. RgnHandle region;
  998. #ifndef QDGlobalToLocalRegion
  999. PyMac_PRECHECK(QDGlobalToLocalRegion);
  1000. #endif
  1001. if (!PyArg_ParseTuple(_args, "O&",
  1002. ResObj_Convert, &region))
  1003. return NULL;
  1004. _rv = QDGlobalToLocalRegion(_self->ob_itself,
  1005. region);
  1006. _res = Py_BuildValue("O&",
  1007. ResObj_New, _rv);
  1008. return _res;
  1009. }
  1010. static PyObject *GrafObj_QDIsPortBuffered(GrafPortObject *_self, PyObject *_args)
  1011. {
  1012. PyObject *_res = NULL;
  1013. Boolean _rv;
  1014. #ifndef QDIsPortBuffered
  1015. PyMac_PRECHECK(QDIsPortBuffered);
  1016. #endif
  1017. if (!PyArg_ParseTuple(_args, ""))
  1018. return NULL;
  1019. _rv = QDIsPortBuffered(_self->ob_itself);
  1020. _res = Py_BuildValue("b",
  1021. _rv);
  1022. return _res;
  1023. }
  1024. static PyObject *GrafObj_QDIsPortBufferDirty(GrafPortObject *_self, PyObject *_args)
  1025. {
  1026. PyObject *_res = NULL;
  1027. Boolean _rv;
  1028. #ifndef QDIsPortBufferDirty
  1029. PyMac_PRECHECK(QDIsPortBufferDirty);
  1030. #endif
  1031. if (!PyArg_ParseTuple(_args, ""))
  1032. return NULL;
  1033. _rv = QDIsPortBufferDirty(_self->ob_itself);
  1034. _res = Py_BuildValue("b",
  1035. _rv);
  1036. return _res;
  1037. }
  1038. static PyObject *GrafObj_QDFlushPortBuffer(GrafPortObject *_self, PyObject *_args)
  1039. {
  1040. PyObject *_res = NULL;
  1041. RgnHandle region;
  1042. #ifndef QDFlushPortBuffer
  1043. PyMac_PRECHECK(QDFlushPortBuffer);
  1044. #endif
  1045. if (!PyArg_ParseTuple(_args, "O&",
  1046. OptResObj_Convert, &region))
  1047. return NULL;
  1048. QDFlushPortBuffer(_self->ob_itself,
  1049. region);
  1050. Py_INCREF(Py_None);
  1051. _res = Py_None;
  1052. return _res;
  1053. }
  1054. static PyObject *GrafObj_QDGetDirtyRegion(GrafPortObject *_self, PyObject *_args)
  1055. {
  1056. PyObject *_res = NULL;
  1057. OSStatus _err;
  1058. RgnHandle rgn;
  1059. #ifndef QDGetDirtyRegion
  1060. PyMac_PRECHECK(QDGetDirtyRegion);
  1061. #endif
  1062. if (!PyArg_ParseTuple(_args, "O&",
  1063. ResObj_Convert, &rgn))
  1064. return NULL;
  1065. _err = QDGetDirtyRegion(_self->ob_itself,
  1066. rgn);
  1067. if (_err != noErr) return PyMac_Error(_err);
  1068. Py_INCREF(Py_None);
  1069. _res = Py_None;
  1070. return _res;
  1071. }
  1072. static PyObject *GrafObj_QDSetDirtyRegion(GrafPortObject *_self, PyObject *_args)
  1073. {
  1074. PyObject *_res = NULL;
  1075. OSStatus _err;
  1076. RgnHandle rgn;
  1077. #ifndef QDSetDirtyRegion
  1078. PyMac_PRECHECK(QDSetDirtyRegion);
  1079. #endif
  1080. if (!PyArg_ParseTuple(_args, "O&",
  1081. ResObj_Convert, &rgn))
  1082. return NULL;
  1083. _err = QDSetDirtyRegion(_self->ob_itself,
  1084. rgn);
  1085. if (_err != noErr) return PyMac_Error(_err);
  1086. Py_INCREF(Py_None);
  1087. _res = Py_None;
  1088. return _res;
  1089. }
  1090. static PyMethodDef GrafObj_methods[] = {
  1091. {"MacSetPort", (PyCFunction)GrafObj_MacSetPort, 1,
  1092. PyDoc_STR("() -> None")},
  1093. {"QDSwapPort", (PyCFunction)GrafObj_QDSwapPort, 1,
  1094. PyDoc_STR("() -> (Boolean _rv, CGrafPtr outOldPort)")},
  1095. {"IsValidPort", (PyCFunction)GrafObj_IsValidPort, 1,
  1096. PyDoc_STR("() -> (Boolean _rv)")},
  1097. {"GetPortPixMap", (PyCFunction)GrafObj_GetPortPixMap, 1,
  1098. PyDoc_STR("() -> (PixMapHandle _rv)")},
  1099. {"GetPortBitMapForCopyBits", (PyCFunction)GrafObj_GetPortBitMapForCopyBits, 1,
  1100. PyDoc_STR("() -> (const BitMap * _rv)")},
  1101. {"GetPortBounds", (PyCFunction)GrafObj_GetPortBounds, 1,
  1102. PyDoc_STR("() -> (Rect rect)")},
  1103. {"GetPortForeColor", (PyCFunction)GrafObj_GetPortForeColor, 1,
  1104. PyDoc_STR("() -> (RGBColor foreColor)")},
  1105. {"GetPortBackColor", (PyCFunction)GrafObj_GetPortBackColor, 1,
  1106. PyDoc_STR("() -> (RGBColor backColor)")},
  1107. {"GetPortOpColor", (PyCFunction)GrafObj_GetPortOpColor, 1,
  1108. PyDoc_STR("() -> (RGBColor opColor)")},
  1109. {"GetPortHiliteColor", (PyCFunction)GrafObj_GetPortHiliteColor, 1,
  1110. PyDoc_STR("() -> (RGBColor hiliteColor)")},
  1111. {"GetPortTextFont", (PyCFunction)GrafObj_GetPortTextFont, 1,
  1112. PyDoc_STR("() -> (short _rv)")},
  1113. {"GetPortTextFace", (PyCFunction)GrafObj_GetPortTextFace, 1,
  1114. PyDoc_STR("() -> (Style _rv)")},
  1115. {"GetPortTextMode", (PyCFunction)GrafObj_GetPortTextMode, 1,
  1116. PyDoc_STR("() -> (short _rv)")},
  1117. {"GetPortTextSize", (PyCFunction)GrafObj_GetPortTextSize, 1,
  1118. PyDoc_STR("() -> (short _rv)")},
  1119. {"GetPortChExtra", (PyCFunction)GrafObj_GetPortChExtra, 1,
  1120. PyDoc_STR("() -> (short _rv)")},
  1121. {"GetPortFracHPenLocation", (PyCFunction)GrafObj_GetPortFracHPenLocation, 1,
  1122. PyDoc_STR("() -> (short _rv)")},
  1123. {"GetPortSpExtra", (PyCFunction)GrafObj_GetPortSpExtra, 1,
  1124. PyDoc_STR("() -> (Fixed _rv)")},
  1125. {"GetPortPenVisibility", (PyCFunction)GrafObj_GetPortPenVisibility, 1,
  1126. PyDoc_STR("() -> (short _rv)")},
  1127. {"GetPortVisibleRegion", (PyCFunction)GrafObj_GetPortVisibleRegion, 1,
  1128. PyDoc_STR("(RgnHandle visRgn) -> (RgnHandle _rv)")},
  1129. {"GetPortClipRegion", (PyCFunction)GrafObj_GetPortClipRegion, 1,
  1130. PyDoc_STR("(RgnHandle clipRgn) -> (RgnHandle _rv)")},
  1131. {"GetPortBackPixPat", (PyCFunction)GrafObj_GetPortBackPixPat, 1,
  1132. PyDoc_STR("(PixPatHandle backPattern) -> (PixPatHandle _rv)")},
  1133. {"GetPortPenPixPat", (PyCFunction)GrafObj_GetPortPenPixPat, 1,
  1134. PyDoc_STR("(PixPatHandle penPattern) -> (PixPatHandle _rv)")},
  1135. {"GetPortFillPixPat", (PyCFunction)GrafObj_GetPortFillPixPat, 1,
  1136. PyDoc_STR("(PixPatHandle fillPattern) -> (PixPatHandle _rv)")},
  1137. {"GetPortPenSize", (PyCFunction)GrafObj_GetPortPenSize, 1,
  1138. PyDoc_STR("(Point penSize) -> (Point penSize)")},
  1139. {"GetPortPenMode", (PyCFunction)GrafObj_GetPortPenMode, 1,
  1140. PyDoc_STR("() -> (SInt32 _rv)")},
  1141. {"GetPortPenLocation", (PyCFunction)GrafObj_GetPortPenLocation, 1,
  1142. PyDoc_STR("(Point penLocation) -> (Point penLocation)")},
  1143. {"IsPortRegionBeingDefined", (PyCFunction)GrafObj_IsPortRegionBeingDefined, 1,
  1144. PyDoc_STR("() -> (Boolean _rv)")},
  1145. {"IsPortPictureBeingDefined", (PyCFunction)GrafObj_IsPortPictureBeingDefined, 1,
  1146. PyDoc_STR("() -> (Boolean _rv)")},
  1147. {"IsPortPolyBeingDefined", (PyCFunction)GrafObj_IsPortPolyBeingDefined, 1,
  1148. PyDoc_STR("() -> (Boolean _rv)")},
  1149. {"IsPortOffscreen", (PyCFunction)GrafObj_IsPortOffscreen, 1,
  1150. PyDoc_STR("() -> (Boolean _rv)")},
  1151. {"IsPortColor", (PyCFunction)GrafObj_IsPortColor, 1,
  1152. PyDoc_STR("() -> (Boolean _rv)")},
  1153. {"IsPortVisibleRegionEmpty", (PyCFunction)GrafObj_IsPortVisibleRegionEmpty, 1,
  1154. PyDoc_STR("() -> (Boolean _rv)")},
  1155. {"IsPortClipRegionEmpty", (PyCFunction)GrafObj_IsPortClipRegionEmpty, 1,
  1156. PyDoc_STR("() -> (Boolean _rv)")},
  1157. {"SectRegionWithPortClipRegion", (PyCFunction)GrafObj_SectRegionWithPortClipRegion, 1,
  1158. PyDoc_STR("(RgnHandle ioRegion) -> None")},
  1159. {"SectRegionWithPortVisibleRegion", (PyCFunction)GrafObj_SectRegionWithPortVisibleRegion, 1,
  1160. PyDoc_STR("(RgnHandle ioRegion) -> None")},
  1161. {"SwapPortPicSaveHandle", (PyCFunction)GrafObj_SwapPortPicSaveHandle, 1,
  1162. PyDoc_STR("(Handle inPicSaveHdl) -> (Handle _rv)")},
  1163. {"SwapPortPolySaveHandle", (PyCFunction)GrafObj_SwapPortPolySaveHandle, 1,
  1164. PyDoc_STR("(Handle inPolySaveHdl) -> (Handle _rv)")},
  1165. {"SwapPortRegionSaveHandle", (PyCFunction)GrafObj_SwapPortRegionSaveHandle, 1,
  1166. PyDoc_STR("(Handle inRegionSaveHdl) -> (Handle _rv)")},
  1167. {"SetPortBounds", (PyCFunction)GrafObj_SetPortBounds, 1,
  1168. PyDoc_STR("(Rect rect) -> None")},
  1169. {"SetPortOpColor", (PyCFunction)GrafObj_SetPortOpColor, 1,
  1170. PyDoc_STR("(RGBColor opColor) -> None")},
  1171. {"SetPortTextFont", (PyCFunction)GrafObj_SetPortTextFont, 1,
  1172. PyDoc_STR("(short txFont) -> None")},
  1173. {"SetPortTextSize", (PyCFunction)GrafObj_SetPortTextSize, 1,
  1174. PyDoc_STR("(short txSize) -> None")},
  1175. {"SetPortTextFace", (PyCFunction)GrafObj_SetPortTextFace, 1,
  1176. PyDoc_STR("(StyleParameter face) -> None")},
  1177. {"SetPortTextMode", (PyCFunction)GrafObj_SetPortTextMode, 1,
  1178. PyDoc_STR("(short mode) -> None")},
  1179. {"SetPortVisibleRegion", (PyCFunction)GrafObj_SetPortVisibleRegion, 1,
  1180. PyDoc_STR("(RgnHandle visRgn) -> None")},
  1181. {"SetPortClipRegion", (PyCFunction)GrafObj_SetPortClipRegion, 1,
  1182. PyDoc_STR("(RgnHandle clipRgn) -> None")},
  1183. {"SetPortPenPixPat", (PyCFunction)GrafObj_SetPortPenPixPat, 1,
  1184. PyDoc_STR("(PixPatHandle penPattern) -> None")},
  1185. {"SetPortFillPixPat", (PyCFunction)GrafObj_SetPortFillPixPat, 1,
  1186. PyDoc_STR("(PixPatHandle penPattern) -> None")},
  1187. {"SetPortBackPixPat", (PyCFunction)GrafObj_SetPortBackPixPat, 1,
  1188. PyDoc_STR("(PixPatHandle backPattern) -> None")},
  1189. {"SetPortPenSize", (PyCFunction)GrafObj_SetPortPenSize, 1,
  1190. PyDoc_STR("(Point penSize) -> None")},
  1191. {"SetPortPenMode", (PyCFunction)GrafObj_SetPortPenMode, 1,
  1192. PyDoc_STR("(SInt32 penMode) -> None")},
  1193. {"SetPortFracHPenLocation", (PyCFunction)GrafObj_SetPortFracHPenLocation, 1,
  1194. PyDoc_STR("(short pnLocHFrac) -> None")},
  1195. {"DisposePort", (PyCFunction)GrafObj_DisposePort, 1,
  1196. PyDoc_STR("() -> None")},
  1197. {"QDLocalToGlobalPoint", (PyCFunction)GrafObj_QDLocalToGlobalPoint, 1,
  1198. PyDoc_STR("(Point point) -> (Point point)")},
  1199. {"QDGlobalToLocalPoint", (PyCFunction)GrafObj_QDGlobalToLocalPoint, 1,
  1200. PyDoc_STR("(Point point) -> (Point point)")},
  1201. {"QDLocalToGlobalRect", (PyCFunction)GrafObj_QDLocalToGlobalRect, 1,
  1202. PyDoc_STR("() -> (Rect bounds)")},
  1203. {"QDGlobalToLocalRect", (PyCFunction)GrafObj_QDGlobalToLocalRect, 1,
  1204. PyDoc_STR("() -> (Rect bounds)")},
  1205. {"QDLocalToGlobalRegion", (PyCFunction)GrafObj_QDLocalToGlobalRegion, 1,
  1206. PyDoc_STR("(RgnHandle region) -> (RgnHandle _rv)")},
  1207. {"QDGlobalToLocalRegion", (PyCFunction)GrafObj_QDGlobalToLocalRegion, 1,
  1208. PyDoc_STR("(RgnHandle region) -> (RgnHandle _rv)")},
  1209. {"QDIsPortBuffered", (PyCFunction)GrafObj_QDIsPortBuffered, 1,
  1210. PyDoc_STR("() -> (Boolean _rv)")},
  1211. {"QDIsPortBufferDirty", (PyCFunction)GrafObj_QDIsPortBufferDirty, 1,
  1212. PyDoc_STR("() -> (Boolean _rv)")},
  1213. {"QDFlushPortBuffer", (PyCFunction)GrafObj_QDFlushPortBuffer, 1,
  1214. PyDoc_STR("(RgnHandle region) -> None")},
  1215. {"QDGetDirtyRegion", (PyCFunction)GrafObj_QDGetDirtyRegion, 1,
  1216. PyDoc_STR("(RgnHandle rgn) -> None")},
  1217. {"QDSetDirtyRegion", (PyCFunction)GrafObj_QDSetDirtyRegion, 1,
  1218. PyDoc_STR("(RgnHandle rgn) -> None")},
  1219. {NULL, NULL, 0}
  1220. };
  1221. static PyObject *GrafObj_get_visRgn(GrafPortObject *self, void *closure)
  1222. {
  1223. RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
  1224. return Py_BuildValue("O&", ResObj_New, (Handle)GetPortVisibleRegion(self->ob_itself, h));
  1225. }
  1226. #define GrafObj_set_visRgn NULL
  1227. static PyObject *GrafObj_get_clipRgn(GrafPortObject *self, void *closure)
  1228. {
  1229. RgnHandle h=NewRgn(); /* XXXX wrong dispose routine */
  1230. return Py_BuildValue("O&", ResObj_New, (Handle)GetPortClipRegion(self->ob_itself, h));
  1231. }
  1232. #define GrafObj_set_clipRgn NULL
  1233. static PyGetSetDef GrafObj_getsetlist[] = {
  1234. {"visRgn", (getter)GrafObj_get_visRgn, (setter)GrafObj_set_visRgn, "Convenience attribute: return a copy of the visible region"},
  1235. {"clipRgn", (getter)GrafObj_get_clipRgn, (setter)GrafObj_set_clipRgn, "Convenience attribute: return a copy of the clipping region"},
  1236. {NULL, NULL, NULL, NULL},
  1237. };
  1238. #define GrafObj_compare NULL
  1239. #define GrafObj_repr NULL
  1240. #define GrafObj_hash NULL
  1241. #define GrafObj_tp_init 0
  1242. #define GrafObj_tp_alloc PyType_GenericAlloc
  1243. static PyObject *GrafObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
  1244. {
  1245. PyObject *_self;
  1246. GrafPtr itself;
  1247. char *kw[] = {"itself", 0};
  1248. if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, GrafObj_Convert, &itself)) return NULL;
  1249. if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
  1250. ((GrafPortObject *)_self)->ob_itself = itself;
  1251. return _self;
  1252. }
  1253. #define GrafObj_tp_free PyObject_Del
  1254. PyTypeObject GrafPort_Type = {
  1255. PyObject_HEAD_INIT(NULL)
  1256. 0, /*ob_size*/
  1257. "_Qd.GrafPort", /*tp_name*/
  1258. sizeof(GrafPortObject), /*tp_basicsize*/
  1259. 0, /*tp_itemsize*/
  1260. /* methods */
  1261. (destructor) GrafObj_dealloc, /*tp_dealloc*/
  1262. 0, /*tp_print*/
  1263. (getattrfunc)0, /*tp_getattr*/
  1264. (setattrfunc)0, /*tp_setattr*/
  1265. (cmpfunc) GrafObj_compare, /*tp_compare*/
  1266. (reprfunc) GrafObj_repr, /*tp_repr*/
  1267. (PyNumberMethods *)0, /* tp_as_number */
  1268. (PySequenceMethods *)0, /* tp_as_sequence */
  1269. (PyMappingMethods *)0, /* tp_as_mapping */
  1270. (hashfunc) GrafObj_hash, /*tp_hash*/
  1271. 0, /*tp_call*/
  1272. 0, /*tp_str*/
  1273. PyObject_GenericGetAttr, /*tp_getattro*/
  1274. PyObject_GenericSetAttr, /*tp_setattro */
  1275. 0, /*tp_as_buffer*/
  1276. Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
  1277. 0, /*tp_doc*/
  1278. 0, /*tp_traverse*/
  1279. 0, /*tp_clear*/
  1280. 0, /*tp_richcompare*/
  1281. 0, /*tp_weaklistoffset*/
  1282. 0, /*tp_iter*/
  1283. 0, /*tp_iternext*/
  1284. GrafObj_methods, /* tp_methods */
  1285. 0, /*tp_members*/
  1286. GrafObj_getsetlist, /*tp_getset*/
  1287. 0, /*tp_base*/
  1288. 0, /*tp_dict*/
  1289. 0, /*tp_descr_get*/
  1290. 0, /*tp_descr_set*/
  1291. 0, /*tp_dictoffset*/
  1292. GrafObj_tp_init, /* tp_init */
  1293. GrafObj_tp_alloc, /* tp_alloc */
  1294. GrafObj_tp_new, /* tp_new */
  1295. GrafObj_tp_free, /* tp_free */
  1296. };
  1297. /* -------------------- End object type GrafPort -------------------- */
  1298. /* ----------------------- Object type BitMap ----------------------- */
  1299. PyTypeObject BitMap_Type;
  1300. #define BMObj_Check(x) ((x)->ob_type == &BitMap_Type || PyObject_TypeCheck((x), &BitMap_Type))
  1301. typedef struct BitMapObject {
  1302. PyObject_HEAD
  1303. BitMapPtr ob_itself;
  1304. PyObject *referred_object;
  1305. BitMap *referred_bitmap;
  1306. } BitMapObject;
  1307. PyObject *BMObj_New(BitMapPtr itself)
  1308. {
  1309. BitMapObject *it;
  1310. if (itself == NULL) return PyMac_Error(resNotFound);
  1311. it = PyObject_NEW(BitMapObject, &BitMap_Type);
  1312. if (it == NULL) return NULL;
  1313. it->ob_itself = itself;
  1314. it->referred_object = NULL;
  1315. it->referred_bitmap = NULL;
  1316. return (PyObject *)it;
  1317. }
  1318. int BMObj_Convert(PyObject *v, BitMapPtr *p_itself)
  1319. {
  1320. if (!BMObj_Check(v))
  1321. {
  1322. PyErr_SetString(PyExc_TypeError, "BitMap required");
  1323. return 0;
  1324. }
  1325. *p_itself = ((BitMapObject *)v)->ob_itself;
  1326. return 1;
  1327. }
  1328. static void BMObj_dealloc(BitMapObject *self)
  1329. {
  1330. Py_XDECREF(self->referred_object);
  1331. if (self->referred_bitmap) free(self->referred_bitmap);
  1332. self->ob_type->tp_free((PyObject *)self);
  1333. }
  1334. static PyObject *BMObj_getdata(BitMapObject *_self, PyObject *_args)
  1335. {
  1336. PyObject *_res = NULL;
  1337. int from, length;
  1338. char *cp;
  1339. if ( !PyArg_ParseTuple(_args, "ii", &from, &length) )
  1340. return NULL;
  1341. cp = _self->ob_itself->baseAddr+from;
  1342. _res = PyString_FromStringAndSize(cp, length);
  1343. return _res;
  1344. }
  1345. static PyObject *BMObj_putdata(BitMapObject *_self, PyObject *_args)
  1346. {
  1347. PyObject *_res = NULL;
  1348. int from, length;
  1349. char *cp, *icp;
  1350. if ( !PyArg_ParseTuple(_args, "is#", &from, &icp, &length) )
  1351. return NULL;
  1352. cp = _self->ob_itself->baseAddr+from;
  1353. memcpy(cp, icp, length);
  1354. Py_INCREF(Py_None);
  1355. _res = Py_None;
  1356. return _res;
  1357. }
  1358. static PyMethodDef BMObj_methods[] = {
  1359. {"getdata", (PyCFunction)BMObj_getdata, 1,
  1360. PyDoc_STR("(int start, int size) -> string. Return bytes from the bitmap")},
  1361. {"putdata", (PyCFunction)BMObj_putdata, 1,
  1362. PyDoc_STR("(int start, string data). Store bytes into the bitmap")},
  1363. {NULL, NULL, 0}
  1364. };
  1365. static PyObject *BMObj_get_baseAddr(BitMapObject *self, void *closure)
  1366. {
  1367. return PyInt_FromLong((long)self->ob_itself->baseAddr);
  1368. }
  1369. #define BMObj_set_baseAddr NULL
  1370. static PyObject *BMObj_get_rowBytes(BitMapObject *self, void *closure)
  1371. {
  1372. return PyInt_FromLong((long)self->ob_itself->rowBytes);
  1373. }
  1374. #define BMObj_set_rowBytes NULL
  1375. static PyObject *BMObj_get_bounds(BitMapObject *self, void *closure)
  1376. {
  1377. return Py_BuildValue("O&", PyMac_BuildRect, &self->ob_itself->bounds);
  1378. }
  1379. #define BMObj_set_bounds NULL
  1380. static PyObject *BMObj_get_bitmap_data(BitMapObject *self, void *closure)
  1381. {
  1382. return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(BitMap));
  1383. }
  1384. #define BMObj_set_bitmap_data NULL
  1385. static PyObject *BMObj_get_pixmap_data(BitMapObject *self, void *closure)
  1386. {
  1387. return PyString_FromStringAndSize((char *)self->ob_itself, sizeof(PixMap));
  1388. }
  1389. #define BMObj_set_pixmap_data NULL
  1390. static PyGetSetDef BMObj_getsetlist[] = {
  1391. {"baseAddr", (getter)BMObj_get_baseAddr, (setter)BMObj_set_baseAddr, NULL},
  1392. {"rowBytes", (getter)BMObj_get_rowBytes, (setter)BMObj_set_rowBytes, NULL},
  1393. {"bounds", (getter)BMObj_get_bounds, (setter)BMObj_set_bounds, NULL},
  1394. {"bitmap_data", (getter)BMObj_get_bitmap_data, (setter)BMObj_set_bitmap_data, NULL},
  1395. {"pixmap_data", (getter)BMObj_get_pixmap_data, (setter)BMObj_set_pixmap_data, NULL},
  1396. {NULL, NULL, NULL, NULL},
  1397. };
  1398. #define BMObj_compare NULL
  1399. #define BMObj_repr NULL
  1400. #define BMObj_hash NULL
  1401. #define BMObj_tp_init 0
  1402. #define BMObj_tp_alloc PyType_GenericAlloc
  1403. static PyObject *BMObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
  1404. {
  1405. PyObject *_self;
  1406. BitMapPtr itself;
  1407. char *kw[] = {"itself", 0};
  1408. if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, BMObj_Convert, &itself)) return NULL;
  1409. if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
  1410. ((BitMapObject *)_self)->ob_itself = itself;
  1411. return _self;
  1412. }
  1413. #define BMObj_tp_free PyObject_Del
  1414. PyTypeObject BitMap_Type = {
  1415. PyObject_HEAD_INIT(NULL)
  1416. 0, /*ob_size*/
  1417. "_Qd.BitMap", /*tp_name*/
  1418. sizeof(BitMapObject), /*tp_basicsize*/
  1419. 0, /*tp_itemsize*/
  1420. /* methods */
  1421. (destructor) BMObj_dealloc, /*tp_dealloc*/
  1422. 0, /*tp_print*/
  1423. (getattrfunc)0, /*tp_getattr*/
  1424. (setattrfunc)0, /*tp_setattr*/
  1425. (cmpfunc) BMObj_compare, /*tp_compare*/
  1426. (reprfunc) BMObj_repr, /*tp_repr*/
  1427. (PyNumberMethods *)0, /* tp_as_number */
  1428. (PySequenceMethods *)0, /* tp_as_sequence */
  1429. (PyMappingMethods *)0, /* tp_as_mapping */
  1430. (hashfunc) BMObj_hash, /*tp_hash*/
  1431. 0, /*tp_call*/
  1432. 0, /*tp_str*/
  1433. PyObject_GenericGetAttr, /*tp_getattro*/
  1434. PyObject_GenericSetAttr, /*tp_setattro */
  1435. 0, /*tp_as_buffer*/
  1436. Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
  1437. 0, /*tp_doc*/
  1438. 0, /*tp_traverse*/
  1439. 0, /*tp_clear*/
  1440. 0, /*tp_richcompare*/
  1441. 0, /*tp_weaklistoffset*/
  1442. 0, /*tp_iter*/
  1443. 0, /*tp_iternext*/
  1444. BMObj_methods, /* tp_methods */
  1445. 0, /*tp_members*/
  1446. BMObj_getsetlist, /*tp_getset*/
  1447. 0, /*tp_base*/
  1448. 0, /*tp_dict*/
  1449. 0, /*tp_descr_get*/
  1450. 0, /*tp_descr_set*/
  1451. 0, /*tp_dictoffset*/
  1452. BMObj_tp_init, /* tp_init */
  1453. BMObj_tp_alloc, /* tp_alloc */
  1454. BMObj_tp_new, /* tp_new */
  1455. BMObj_tp_free, /* tp_free */
  1456. };
  1457. /* --------------------- End object type BitMap --------------------- */
  1458. static PyObject *Qd_GetPort(PyObject *_self, PyObject *_args)
  1459. {
  1460. PyObject *_res = NULL;
  1461. GrafPtr port;
  1462. #ifndef GetPort
  1463. PyMac_PRECHECK(GetPort);
  1464. #endif
  1465. if (!PyArg_ParseTuple(_args, ""))
  1466. return NULL;
  1467. GetPort(&port);
  1468. _res = Py_BuildValue("O&",
  1469. GrafObj_New, port);
  1470. return _res;
  1471. }
  1472. static PyObject *Qd_GrafDevice(PyObject *_self, PyObject *_args)
  1473. {
  1474. PyObject *_res = NULL;
  1475. short device;
  1476. #ifndef GrafDevice
  1477. PyMac_PRECHECK(GrafDevice);
  1478. #endif
  1479. if (!PyArg_ParseTuple(_args, "h",
  1480. &device))
  1481. return NULL;
  1482. GrafDevice(device);
  1483. Py_INCREF(Py_None);
  1484. _res = Py_None;
  1485. return _res;
  1486. }
  1487. static PyObject *Qd_SetPortBits(PyObject *_self, PyObject *_args)
  1488. {
  1489. PyObject *_res = NULL;
  1490. BitMapPtr bm;
  1491. #ifndef SetPortBits
  1492. PyMac_PRECHECK(SetPortBits);
  1493. #endif
  1494. if (!PyArg_ParseTuple(_args, "O&",
  1495. BMObj_Convert, &bm))
  1496. return NULL;
  1497. SetPortBits(bm);
  1498. Py_INCREF(Py_None);
  1499. _res = Py_None;
  1500. return _res;
  1501. }
  1502. static PyObject *Qd_PortSize(PyObject *_self, PyObject *_args)
  1503. {
  1504. PyObject *_res = NULL;
  1505. short width;
  1506. short height;
  1507. #ifndef PortSize
  1508. PyMac_PRECHECK(PortSize);
  1509. #endif
  1510. if (!PyArg_ParseTuple(_args, "hh",
  1511. &width,
  1512. &height))
  1513. return NULL;
  1514. PortSize(width,
  1515. height);
  1516. Py_INCREF(Py_None);
  1517. _res = Py_None;
  1518. return _res;
  1519. }
  1520. static PyObject *Qd_MovePortTo(PyObject *_self, PyObject *_args)
  1521. {
  1522. PyObject *_res = NULL;
  1523. short leftGlobal;
  1524. short topGlobal;
  1525. #ifndef MovePortTo
  1526. PyMac_PRECHECK(MovePortTo);
  1527. #endif
  1528. if (!PyArg_ParseTuple(_args, "hh",
  1529. &leftGlobal,
  1530. &topGlobal))
  1531. return NULL;
  1532. MovePortTo(leftGlobal,
  1533. topGlobal);
  1534. Py_INCREF(Py_None);
  1535. _res = Py_None;
  1536. return _res;
  1537. }
  1538. static PyObject *Qd_SetOrigin(PyObject *_self, PyObject *_args)
  1539. {
  1540. PyObject *_res = NULL;
  1541. short h;
  1542. short v;
  1543. #ifndef SetOrigin
  1544. PyMac_PRECHECK(SetOrigin);
  1545. #endif
  1546. if (!PyArg_ParseTuple(_args, "hh",
  1547. &h,
  1548. &v))
  1549. return NULL;
  1550. SetOrigin(h,
  1551. v);
  1552. Py_INCREF(Py_None);
  1553. _res = Py_None;
  1554. return _res;
  1555. }
  1556. static PyObject *Qd_SetClip(PyObject *_self, PyObject *_args)
  1557. {
  1558. PyObject *_res = NULL;
  1559. RgnHandle rgn;
  1560. #ifndef SetClip
  1561. PyMac_PRECHECK(SetClip);
  1562. #endif
  1563. if (!PyArg_ParseTuple(_args, "O&",
  1564. ResObj_Convert, &rgn))
  1565. return NULL;
  1566. SetClip(rgn);
  1567. Py_INCREF(Py_None);
  1568. _res = Py_None;
  1569. return _res;
  1570. }
  1571. static PyObject *Qd_GetClip(PyObject *_self, PyObject *_args)
  1572. {
  1573. PyObject *_res = NULL;
  1574. RgnHandle rgn;
  1575. #ifndef GetClip
  1576. PyMac_PRECHECK(GetClip);
  1577. #endif
  1578. if (!PyArg_ParseTuple(_args, "O&",
  1579. ResObj_Convert, &rgn))
  1580. return NULL;
  1581. GetClip(rgn);
  1582. Py_INCREF(Py_None);
  1583. _res = Py_None;
  1584. return _res;
  1585. }
  1586. static PyObject *Qd_ClipRect(PyObject *_self, PyObject *_args)
  1587. {
  1588. PyObject *_res = NULL;
  1589. Rect r;
  1590. #ifndef ClipRect
  1591. PyMac_PRECHECK(ClipRect);
  1592. #endif
  1593. if (!PyArg_ParseTuple(_args, "O&",
  1594. PyMac_GetRect, &r))
  1595. return NULL;
  1596. ClipRect(&r);
  1597. Py_INCREF(Py_None);
  1598. _res = Py_None;
  1599. return _res;
  1600. }
  1601. static PyObject *Qd_BackPat(PyObject *_self, PyObject *_args)
  1602. {
  1603. PyObject *_res = NULL;
  1604. Pattern *pat__in__;
  1605. int pat__in_len__;
  1606. #ifndef BackPat
  1607. PyMac_PRECHECK(BackPat);
  1608. #endif
  1609. if (!PyArg_ParseTuple(_args, "s#",
  1610. (char **)&pat__in__, &pat__in_len__))
  1611. return NULL;
  1612. if (pat__in_len__ != sizeof(Pattern))
  1613. {
  1614. PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Pattern)");
  1615. goto pat__error__;
  1616. }
  1617. BackPat(pat__in__);
  1618. Py_INCREF(Py_None);
  1619. _res = Py_None;
  1620. pat__error__: ;
  1621. return _res;
  1622. }
  1623. static PyObject *Qd_InitCursor(PyObject *_self, PyObject *_args)
  1624. {
  1625. PyObject *_res = NULL;
  1626. #ifndef InitCursor
  1627. PyMac_PRECHECK(InitCursor);
  1628. #endif
  1629. if (!PyArg_ParseTuple(_args, ""))
  1630. return NULL;
  1631. InitCursor();
  1632. Py_INCREF(Py_None);
  1633. _res = Py_None;
  1634. return _res;
  1635. }
  1636. static PyObject *Qd_MacSetCursor(PyObject *_self, PyObject *_args)
  1637. {
  1638. PyObject *_res = NULL;
  1639. Cursor *crsr__in__;
  1640. int crsr__in_len__;
  1641. #ifndef MacSetCursor
  1642. PyMac_PRECHECK(MacSetCursor);
  1643. #endif
  1644. if (!PyArg_ParseTuple(_args, "s#",
  1645. (char **)&crsr__in__, &crsr__in_len__))
  1646. return NULL;
  1647. if (crsr__in_len__ != sizeof(Cursor))
  1648. {
  1649. PyErr_SetString(PyExc_TypeError, "buffer length should be sizeof(Cursor)");
  1650. goto crsr__error__;
  1651. }
  1652. MacSetCursor(crsr__in__);
  1653. Py_INCREF(Py_None);
  1654. _res = Py_None;
  1655. crsr__error__: ;
  1656. return _res;
  1657. }
  1658. static PyObject *Qd_HideCursor(PyObject *_self, PyObject *_args)
  1659. {
  1660. PyObject *_res = NULL;
  1661. #ifndef HideCursor
  1662. PyMac_PRECHECK(HideCursor);
  1663. #endif
  1664. if (!PyArg_ParseTuple(_args, ""))
  1665. return NULL;
  1666. HideCursor();
  1667. Py_INCREF(Py_None);
  1668. _res = Py_None;
  1669. return _res;
  1670. }
  1671. static PyObject *Qd_MacShowCursor(PyObject *_self, PyObject *_args)
  1672. {
  1673. PyObject *_res = NULL;
  1674. #ifndef MacShowCursor
  1675. PyMac_PRECHECK(MacShowCursor);
  1676. #endif
  1677. if (!PyArg_ParseTuple(_args, ""))
  1678. return NULL;
  1679. MacShowCursor();
  1680. Py_INCREF(Py_None);
  1681. _res = Py_None;
  1682. return _res;
  1683. }
  1684. static PyObject *Qd_ObscureCursor(PyObject *_self, PyObject *_args)
  1685. {
  1686. PyObject *_res = NULL;
  1687. #ifndef ObscureCursor
  1688. PyMac_PRECHECK(ObscureCursor);
  1689. #endif
  1690. if (!PyArg_ParseTuple(_args, ""))
  1691. return NULL;
  1692. ObscureCursor();
  1693. Py_INCREF(Py_None);
  1694. _res = Py_None;
  1695. return _res;
  1696. }
  1697. static PyObject *Qd_HidePen(PyObject *_self, PyObject *_args)
  1698. {
  1699. PyObject *_res = NULL;
  1700. #ifndef HidePen
  1701. PyMac_PRECHECK(HidePen);
  1702. #endif
  1703. if (!PyArg_ParseTuple(_args, ""))
  1704. return NULL;
  1705. HidePen();
  1706. Py_INCREF(Py_None);
  1707. _res = Py_None;
  1708. return _res;
  1709. }
  1710. stati