ยปCore Development>Code coverage>Mac/Modules/dlg/_Dlgmodule.c

Python code coverage for Mac/Modules/dlg/_Dlgmodule.c

#countcontent
1n/a
2n/a/* ========================== Module _Dlg =========================== */
3n/a
4n/a#include "Python.h"
5n/a
6n/a#ifndef __LP64__
7n/a
8n/a
9n/a#include "pymactoolbox.h"
10n/a
11n/a/* Macro to test whether a weak-loaded CFM function exists */
12n/a#define PyMac_PRECHECK(rtn) do { if ( &rtn == NULL ) {\
13n/a PyErr_SetString(PyExc_NotImplementedError, \
14n/a "Not available in this shared library/OS version"); \
15n/a return NULL; \
16n/a }} while(0)
17n/a
18n/a
19n/a#include <Carbon/Carbon.h>
20n/a
21n/a#ifdef USE_TOOLBOX_OBJECT_GLUE
22n/aextern PyObject *_DlgObj_New(DialogRef);
23n/aextern PyObject *_DlgObj_WhichDialog(DialogRef);
24n/aextern int _DlgObj_Convert(PyObject *, DialogRef *);
25n/a
26n/a#define DlgObj_New _DlgObj_New
27n/a#define DlgObj_WhichDialog _DlgObj_WhichDialog
28n/a#define DlgObj_Convert _DlgObj_Convert
29n/a#endif
30n/a
31n/a/* XXX Shouldn't this be a stack? */
32n/astatic PyObject *Dlg_FilterProc_callback = NULL;
33n/a
34n/astatic pascal Boolean Dlg_UnivFilterProc(DialogPtr dialog,
35n/a EventRecord *event,
36n/a short *itemHit)
37n/a{
38n/a Boolean rv;
39n/a PyObject *args, *res;
40n/a PyObject *callback = Dlg_FilterProc_callback;
41n/a if (callback == NULL)
42n/a return 0; /* Default behavior */
43n/a Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
44n/a args = Py_BuildValue("O&O&", DlgObj_WhichDialog, dialog, PyMac_BuildEventRecord, event);
45n/a if (args == NULL)
46n/a res = NULL;
47n/a else {
48n/a res = PyEval_CallObject(callback, args);
49n/a Py_DECREF(args);
50n/a }
51n/a if (res == NULL) {
52n/a PySys_WriteStderr("Exception in Dialog Filter\n");
53n/a PyErr_Print();
54n/a *itemHit = -1; /* Fake return item */
55n/a return 1; /* We handled it */
56n/a }
57n/a else {
58n/a Dlg_FilterProc_callback = callback;
59n/a if (PyInt_Check(res)) {
60n/a *itemHit = PyInt_AsLong(res);
61n/a rv = 1;
62n/a }
63n/a else
64n/a rv = PyObject_IsTrue(res);
65n/a }
66n/a Py_DECREF(res);
67n/a return rv;
68n/a}
69n/a
70n/astatic ModalFilterUPP
71n/aDlg_PassFilterProc(PyObject *callback)
72n/a{
73n/a PyObject *tmp = Dlg_FilterProc_callback;
74n/a static ModalFilterUPP UnivFilterUpp = NULL;
75n/a
76n/a Dlg_FilterProc_callback = NULL;
77n/a if (callback == Py_None) {
78n/a Py_XDECREF(tmp);
79n/a return NULL;
80n/a }
81n/a Py_INCREF(callback);
82n/a Dlg_FilterProc_callback = callback;
83n/a Py_XDECREF(tmp);
84n/a if ( UnivFilterUpp == NULL )
85n/a UnivFilterUpp = NewModalFilterUPP(&Dlg_UnivFilterProc);
86n/a return UnivFilterUpp;
87n/a}
88n/a
89n/astatic PyObject *Dlg_UserItemProc_callback = NULL;
90n/a
91n/astatic pascal void Dlg_UnivUserItemProc(DialogPtr dialog,
92n/a short item)
93n/a{
94n/a PyObject *args, *res;
95n/a
96n/a if (Dlg_UserItemProc_callback == NULL)
97n/a return; /* Default behavior */
98n/a Dlg_FilterProc_callback = NULL; /* We'll restore it when call successful */
99n/a args = Py_BuildValue("O&h", DlgObj_WhichDialog, dialog, item);
100n/a if (args == NULL)
101n/a res = NULL;
102n/a else {
103n/a res = PyEval_CallObject(Dlg_UserItemProc_callback, args);
104n/a Py_DECREF(args);
105n/a }
106n/a if (res == NULL) {
107n/a PySys_WriteStderr("Exception in Dialog UserItem proc\n");
108n/a PyErr_Print();
109n/a }
110n/a Py_XDECREF(res);
111n/a return;
112n/a}
113n/a
114n/a#if 0
115n/a/*
116n/a** Treating DialogObjects as WindowObjects is (I think) illegal under Carbon.
117n/a** However, as they are still identical under MacOS9 Carbon this is a problem, even
118n/a** if we neatly call GetDialogWindow() at the right places: there's one refcon field
119n/a** and it points to the DialogObject, so WinObj_WhichWindow will smartly return the
120n/a** dialog object, and therefore we still don't have a WindowObject.
121n/a** I'll leave the chaining code in place for now, with this comment to warn the
122n/a** unsuspecting victims (i.e. me, probably, in a few weeks:-)
123n/a*/
124n/aextern PyMethodChain WinObj_chain;
125n/a#endif
126n/a
127n/astatic PyObject *Dlg_Error;
128n/a
129n/a/* ----------------------- Object type Dialog ----------------------- */
130n/a
131n/aPyTypeObject Dialog_Type;
132n/a
133n/a#define DlgObj_Check(x) ((x)->ob_type == &Dialog_Type || PyObject_TypeCheck((x), &Dialog_Type))
134n/a
135n/atypedef struct DialogObject {
136n/a PyObject_HEAD
137n/a DialogPtr ob_itself;
138n/a} DialogObject;
139n/a
140n/aPyObject *DlgObj_New(DialogPtr itself)
141n/a{
142n/a DialogObject *it;
143n/a if (itself == NULL) { Py_INCREF(Py_None); return Py_None; }
144n/a it = PyObject_NEW(DialogObject, &Dialog_Type);
145n/a if (it == NULL) return NULL;
146n/a it->ob_itself = itself;
147n/a SetWRefCon(GetDialogWindow(itself), (long)it);
148n/a return (PyObject *)it;
149n/a}
150n/a
151n/aint DlgObj_Convert(PyObject *v, DialogPtr *p_itself)
152n/a{
153n/a if (v == Py_None) { *p_itself = NULL; return 1; }
154n/a if (PyInt_Check(v)) { *p_itself = (DialogPtr)PyInt_AsLong(v);
155n/a return 1; }
156n/a if (!DlgObj_Check(v))
157n/a {
158n/a PyErr_SetString(PyExc_TypeError, "Dialog required");
159n/a return 0;
160n/a }
161n/a *p_itself = ((DialogObject *)v)->ob_itself;
162n/a return 1;
163n/a}
164n/a
165n/astatic void DlgObj_dealloc(DialogObject *self)
166n/a{
167n/a DisposeDialog(self->ob_itself);
168n/a self->ob_type->tp_free((PyObject *)self);
169n/a}
170n/a
171n/astatic PyObject *DlgObj_DrawDialog(DialogObject *_self, PyObject *_args)
172n/a{
173n/a PyObject *_res = NULL;
174n/a#ifndef DrawDialog
175n/a PyMac_PRECHECK(DrawDialog);
176n/a#endif
177n/a if (!PyArg_ParseTuple(_args, ""))
178n/a return NULL;
179n/a DrawDialog(_self->ob_itself);
180n/a Py_INCREF(Py_None);
181n/a _res = Py_None;
182n/a return _res;
183n/a}
184n/a
185n/astatic PyObject *DlgObj_UpdateDialog(DialogObject *_self, PyObject *_args)
186n/a{
187n/a PyObject *_res = NULL;
188n/a RgnHandle updateRgn;
189n/a#ifndef UpdateDialog
190n/a PyMac_PRECHECK(UpdateDialog);
191n/a#endif
192n/a if (!PyArg_ParseTuple(_args, "O&",
193n/a ResObj_Convert, &updateRgn))
194n/a return NULL;
195n/a UpdateDialog(_self->ob_itself,
196n/a updateRgn);
197n/a Py_INCREF(Py_None);
198n/a _res = Py_None;
199n/a return _res;
200n/a}
201n/a
202n/astatic PyObject *DlgObj_HideDialogItem(DialogObject *_self, PyObject *_args)
203n/a{
204n/a PyObject *_res = NULL;
205n/a DialogItemIndex itemNo;
206n/a#ifndef HideDialogItem
207n/a PyMac_PRECHECK(HideDialogItem);
208n/a#endif
209n/a if (!PyArg_ParseTuple(_args, "h",
210n/a &itemNo))
211n/a return NULL;
212n/a HideDialogItem(_self->ob_itself,
213n/a itemNo);
214n/a Py_INCREF(Py_None);
215n/a _res = Py_None;
216n/a return _res;
217n/a}
218n/a
219n/astatic PyObject *DlgObj_ShowDialogItem(DialogObject *_self, PyObject *_args)
220n/a{
221n/a PyObject *_res = NULL;
222n/a DialogItemIndex itemNo;
223n/a#ifndef ShowDialogItem
224n/a PyMac_PRECHECK(ShowDialogItem);
225n/a#endif
226n/a if (!PyArg_ParseTuple(_args, "h",
227n/a &itemNo))
228n/a return NULL;
229n/a ShowDialogItem(_self->ob_itself,
230n/a itemNo);
231n/a Py_INCREF(Py_None);
232n/a _res = Py_None;
233n/a return _res;
234n/a}
235n/a
236n/astatic PyObject *DlgObj_FindDialogItem(DialogObject *_self, PyObject *_args)
237n/a{
238n/a PyObject *_res = NULL;
239n/a DialogItemIndexZeroBased _rv;
240n/a Point thePt;
241n/a#ifndef FindDialogItem
242n/a PyMac_PRECHECK(FindDialogItem);
243n/a#endif
244n/a if (!PyArg_ParseTuple(_args, "O&",
245n/a PyMac_GetPoint, &thePt))
246n/a return NULL;
247n/a _rv = FindDialogItem(_self->ob_itself,
248n/a thePt);
249n/a _res = Py_BuildValue("h",
250n/a _rv);
251n/a return _res;
252n/a}
253n/a
254n/astatic PyObject *DlgObj_DialogCut(DialogObject *_self, PyObject *_args)
255n/a{
256n/a PyObject *_res = NULL;
257n/a#ifndef DialogCut
258n/a PyMac_PRECHECK(DialogCut);
259n/a#endif
260n/a if (!PyArg_ParseTuple(_args, ""))
261n/a return NULL;
262n/a DialogCut(_self->ob_itself);
263n/a Py_INCREF(Py_None);
264n/a _res = Py_None;
265n/a return _res;
266n/a}
267n/a
268n/astatic PyObject *DlgObj_DialogPaste(DialogObject *_self, PyObject *_args)
269n/a{
270n/a PyObject *_res = NULL;
271n/a#ifndef DialogPaste
272n/a PyMac_PRECHECK(DialogPaste);
273n/a#endif
274n/a if (!PyArg_ParseTuple(_args, ""))
275n/a return NULL;
276n/a DialogPaste(_self->ob_itself);
277n/a Py_INCREF(Py_None);
278n/a _res = Py_None;
279n/a return _res;
280n/a}
281n/a
282n/astatic PyObject *DlgObj_DialogCopy(DialogObject *_self, PyObject *_args)
283n/a{
284n/a PyObject *_res = NULL;
285n/a#ifndef DialogCopy
286n/a PyMac_PRECHECK(DialogCopy);
287n/a#endif
288n/a if (!PyArg_ParseTuple(_args, ""))
289n/a return NULL;
290n/a DialogCopy(_self->ob_itself);
291n/a Py_INCREF(Py_None);
292n/a _res = Py_None;
293n/a return _res;
294n/a}
295n/a
296n/astatic PyObject *DlgObj_DialogDelete(DialogObject *_self, PyObject *_args)
297n/a{
298n/a PyObject *_res = NULL;
299n/a#ifndef DialogDelete
300n/a PyMac_PRECHECK(DialogDelete);
301n/a#endif
302n/a if (!PyArg_ParseTuple(_args, ""))
303n/a return NULL;
304n/a DialogDelete(_self->ob_itself);
305n/a Py_INCREF(Py_None);
306n/a _res = Py_None;
307n/a return _res;
308n/a}
309n/a
310n/astatic PyObject *DlgObj_GetDialogItem(DialogObject *_self, PyObject *_args)
311n/a{
312n/a PyObject *_res = NULL;
313n/a DialogItemIndex itemNo;
314n/a DialogItemType itemType;
315n/a Handle item;
316n/a Rect box;
317n/a#ifndef GetDialogItem
318n/a PyMac_PRECHECK(GetDialogItem);
319n/a#endif
320n/a if (!PyArg_ParseTuple(_args, "h",
321n/a &itemNo))
322n/a return NULL;
323n/a GetDialogItem(_self->ob_itself,
324n/a itemNo,
325n/a &itemType,
326n/a &item,
327n/a &box);
328n/a _res = Py_BuildValue("hO&O&",
329n/a itemType,
330n/a OptResObj_New, item,
331n/a PyMac_BuildRect, &box);
332n/a return _res;
333n/a}
334n/a
335n/astatic PyObject *DlgObj_SetDialogItem(DialogObject *_self, PyObject *_args)
336n/a{
337n/a PyObject *_res = NULL;
338n/a DialogItemIndex itemNo;
339n/a DialogItemType itemType;
340n/a Handle item;
341n/a Rect box;
342n/a#ifndef SetDialogItem
343n/a PyMac_PRECHECK(SetDialogItem);
344n/a#endif
345n/a if (!PyArg_ParseTuple(_args, "hhO&O&",
346n/a &itemNo,
347n/a &itemType,
348n/a ResObj_Convert, &item,
349n/a PyMac_GetRect, &box))
350n/a return NULL;
351n/a SetDialogItem(_self->ob_itself,
352n/a itemNo,
353n/a itemType,
354n/a item,
355n/a &box);
356n/a Py_INCREF(Py_None);
357n/a _res = Py_None;
358n/a return _res;
359n/a}
360n/a
361n/astatic PyObject *DlgObj_SelectDialogItemText(DialogObject *_self, PyObject *_args)
362n/a{
363n/a PyObject *_res = NULL;
364n/a DialogItemIndex itemNo;
365n/a SInt16 strtSel;
366n/a SInt16 endSel;
367n/a#ifndef SelectDialogItemText
368n/a PyMac_PRECHECK(SelectDialogItemText);
369n/a#endif
370n/a if (!PyArg_ParseTuple(_args, "hhh",
371n/a &itemNo,
372n/a &strtSel,
373n/a &endSel))
374n/a return NULL;
375n/a SelectDialogItemText(_self->ob_itself,
376n/a itemNo,
377n/a strtSel,
378n/a endSel);
379n/a Py_INCREF(Py_None);
380n/a _res = Py_None;
381n/a return _res;
382n/a}
383n/a
384n/astatic PyObject *DlgObj_AppendDITL(DialogObject *_self, PyObject *_args)
385n/a{
386n/a PyObject *_res = NULL;
387n/a Handle theHandle;
388n/a DITLMethod method;
389n/a#ifndef AppendDITL
390n/a PyMac_PRECHECK(AppendDITL);
391n/a#endif
392n/a if (!PyArg_ParseTuple(_args, "O&h",
393n/a ResObj_Convert, &theHandle,
394n/a &method))
395n/a return NULL;
396n/a AppendDITL(_self->ob_itself,
397n/a theHandle,
398n/a method);
399n/a Py_INCREF(Py_None);
400n/a _res = Py_None;
401n/a return _res;
402n/a}
403n/a
404n/astatic PyObject *DlgObj_CountDITL(DialogObject *_self, PyObject *_args)
405n/a{
406n/a PyObject *_res = NULL;
407n/a DialogItemIndex _rv;
408n/a#ifndef CountDITL
409n/a PyMac_PRECHECK(CountDITL);
410n/a#endif
411n/a if (!PyArg_ParseTuple(_args, ""))
412n/a return NULL;
413n/a _rv = CountDITL(_self->ob_itself);
414n/a _res = Py_BuildValue("h",
415n/a _rv);
416n/a return _res;
417n/a}
418n/a
419n/astatic PyObject *DlgObj_ShortenDITL(DialogObject *_self, PyObject *_args)
420n/a{
421n/a PyObject *_res = NULL;
422n/a DialogItemIndex numberItems;
423n/a#ifndef ShortenDITL
424n/a PyMac_PRECHECK(ShortenDITL);
425n/a#endif
426n/a if (!PyArg_ParseTuple(_args, "h",
427n/a &numberItems))
428n/a return NULL;
429n/a ShortenDITL(_self->ob_itself,
430n/a numberItems);
431n/a Py_INCREF(Py_None);
432n/a _res = Py_None;
433n/a return _res;
434n/a}
435n/a
436n/astatic PyObject *DlgObj_InsertDialogItem(DialogObject *_self, PyObject *_args)
437n/a{
438n/a PyObject *_res = NULL;
439n/a OSStatus _err;
440n/a DialogItemIndex afterItem;
441n/a DialogItemType itemType;
442n/a Handle itemHandle;
443n/a Rect box;
444n/a#ifndef InsertDialogItem
445n/a PyMac_PRECHECK(InsertDialogItem);
446n/a#endif
447n/a if (!PyArg_ParseTuple(_args, "hhO&O&",
448n/a &afterItem,
449n/a &itemType,
450n/a ResObj_Convert, &itemHandle,
451n/a PyMac_GetRect, &box))
452n/a return NULL;
453n/a _err = InsertDialogItem(_self->ob_itself,
454n/a afterItem,
455n/a itemType,
456n/a itemHandle,
457n/a &box);
458n/a if (_err != noErr) return PyMac_Error(_err);
459n/a Py_INCREF(Py_None);
460n/a _res = Py_None;
461n/a return _res;
462n/a}
463n/a
464n/astatic PyObject *DlgObj_RemoveDialogItems(DialogObject *_self, PyObject *_args)
465n/a{
466n/a PyObject *_res = NULL;
467n/a OSStatus _err;
468n/a DialogItemIndex itemNo;
469n/a DialogItemIndex amountToRemove;
470n/a Boolean disposeItemData;
471n/a#ifndef RemoveDialogItems
472n/a PyMac_PRECHECK(RemoveDialogItems);
473n/a#endif
474n/a if (!PyArg_ParseTuple(_args, "hhb",
475n/a &itemNo,
476n/a &amountToRemove,
477n/a &disposeItemData))
478n/a return NULL;
479n/a _err = RemoveDialogItems(_self->ob_itself,
480n/a itemNo,
481n/a amountToRemove,
482n/a disposeItemData);
483n/a if (_err != noErr) return PyMac_Error(_err);
484n/a Py_INCREF(Py_None);
485n/a _res = Py_None;
486n/a return _res;
487n/a}
488n/a
489n/astatic PyObject *DlgObj_StdFilterProc(DialogObject *_self, PyObject *_args)
490n/a{
491n/a PyObject *_res = NULL;
492n/a Boolean _rv;
493n/a EventRecord event;
494n/a DialogItemIndex itemHit;
495n/a#ifndef StdFilterProc
496n/a PyMac_PRECHECK(StdFilterProc);
497n/a#endif
498n/a if (!PyArg_ParseTuple(_args, "O&h",
499n/a PyMac_GetEventRecord, &event,
500n/a &itemHit))
501n/a return NULL;
502n/a _rv = StdFilterProc(_self->ob_itself,
503n/a &event,
504n/a &itemHit);
505n/a _res = Py_BuildValue("bO&h",
506n/a _rv,
507n/a PyMac_BuildEventRecord, &event,
508n/a itemHit);
509n/a return _res;
510n/a}
511n/a
512n/astatic PyObject *DlgObj_SetDialogDefaultItem(DialogObject *_self, PyObject *_args)
513n/a{
514n/a PyObject *_res = NULL;
515n/a OSErr _err;
516n/a DialogItemIndex newItem;
517n/a#ifndef SetDialogDefaultItem
518n/a PyMac_PRECHECK(SetDialogDefaultItem);
519n/a#endif
520n/a if (!PyArg_ParseTuple(_args, "h",
521n/a &newItem))
522n/a return NULL;
523n/a _err = SetDialogDefaultItem(_self->ob_itself,
524n/a newItem);
525n/a if (_err != noErr) return PyMac_Error(_err);
526n/a Py_INCREF(Py_None);
527n/a _res = Py_None;
528n/a return _res;
529n/a}
530n/a
531n/astatic PyObject *DlgObj_SetDialogCancelItem(DialogObject *_self, PyObject *_args)
532n/a{
533n/a PyObject *_res = NULL;
534n/a OSErr _err;
535n/a DialogItemIndex newItem;
536n/a#ifndef SetDialogCancelItem
537n/a PyMac_PRECHECK(SetDialogCancelItem);
538n/a#endif
539n/a if (!PyArg_ParseTuple(_args, "h",
540n/a &newItem))
541n/a return NULL;
542n/a _err = SetDialogCancelItem(_self->ob_itself,
543n/a newItem);
544n/a if (_err != noErr) return PyMac_Error(_err);
545n/a Py_INCREF(Py_None);
546n/a _res = Py_None;
547n/a return _res;
548n/a}
549n/a
550n/astatic PyObject *DlgObj_SetDialogTracksCursor(DialogObject *_self, PyObject *_args)
551n/a{
552n/a PyObject *_res = NULL;
553n/a OSErr _err;
554n/a Boolean tracks;
555n/a#ifndef SetDialogTracksCursor
556n/a PyMac_PRECHECK(SetDialogTracksCursor);
557n/a#endif
558n/a if (!PyArg_ParseTuple(_args, "b",
559n/a &tracks))
560n/a return NULL;
561n/a _err = SetDialogTracksCursor(_self->ob_itself,
562n/a tracks);
563n/a if (_err != noErr) return PyMac_Error(_err);
564n/a Py_INCREF(Py_None);
565n/a _res = Py_None;
566n/a return _res;
567n/a}
568n/a
569n/astatic PyObject *DlgObj_AutoSizeDialog(DialogObject *_self, PyObject *_args)
570n/a{
571n/a PyObject *_res = NULL;
572n/a OSErr _err;
573n/a#ifndef AutoSizeDialog
574n/a PyMac_PRECHECK(AutoSizeDialog);
575n/a#endif
576n/a if (!PyArg_ParseTuple(_args, ""))
577n/a return NULL;
578n/a _err = AutoSizeDialog(_self->ob_itself);
579n/a if (_err != noErr) return PyMac_Error(_err);
580n/a Py_INCREF(Py_None);
581n/a _res = Py_None;
582n/a return _res;
583n/a}
584n/a
585n/astatic PyObject *DlgObj_GetDialogItemAsControl(DialogObject *_self, PyObject *_args)
586n/a{
587n/a PyObject *_res = NULL;
588n/a OSErr _err;
589n/a SInt16 inItemNo;
590n/a ControlHandle outControl;
591n/a#ifndef GetDialogItemAsControl
592n/a PyMac_PRECHECK(GetDialogItemAsControl);
593n/a#endif
594n/a if (!PyArg_ParseTuple(_args, "h",
595n/a &inItemNo))
596n/a return NULL;
597n/a _err = GetDialogItemAsControl(_self->ob_itself,
598n/a inItemNo,
599n/a &outControl);
600n/a if (_err != noErr) return PyMac_Error(_err);
601n/a _res = Py_BuildValue("O&",
602n/a CtlObj_New, outControl);
603n/a return _res;
604n/a}
605n/a
606n/astatic PyObject *DlgObj_MoveDialogItem(DialogObject *_self, PyObject *_args)
607n/a{
608n/a PyObject *_res = NULL;
609n/a OSErr _err;
610n/a SInt16 inItemNo;
611n/a SInt16 inHoriz;
612n/a SInt16 inVert;
613n/a#ifndef MoveDialogItem
614n/a PyMac_PRECHECK(MoveDialogItem);
615n/a#endif
616n/a if (!PyArg_ParseTuple(_args, "hhh",
617n/a &inItemNo,
618n/a &inHoriz,
619n/a &inVert))
620n/a return NULL;
621n/a _err = MoveDialogItem(_self->ob_itself,
622n/a inItemNo,
623n/a inHoriz,
624n/a inVert);
625n/a if (_err != noErr) return PyMac_Error(_err);
626n/a Py_INCREF(Py_None);
627n/a _res = Py_None;
628n/a return _res;
629n/a}
630n/a
631n/astatic PyObject *DlgObj_SizeDialogItem(DialogObject *_self, PyObject *_args)
632n/a{
633n/a PyObject *_res = NULL;
634n/a OSErr _err;
635n/a SInt16 inItemNo;
636n/a SInt16 inWidth;
637n/a SInt16 inHeight;
638n/a#ifndef SizeDialogItem
639n/a PyMac_PRECHECK(SizeDialogItem);
640n/a#endif
641n/a if (!PyArg_ParseTuple(_args, "hhh",
642n/a &inItemNo,
643n/a &inWidth,
644n/a &inHeight))
645n/a return NULL;
646n/a _err = SizeDialogItem(_self->ob_itself,
647n/a inItemNo,
648n/a inWidth,
649n/a inHeight);
650n/a if (_err != noErr) return PyMac_Error(_err);
651n/a Py_INCREF(Py_None);
652n/a _res = Py_None;
653n/a return _res;
654n/a}
655n/a
656n/astatic PyObject *DlgObj_AppendDialogItemList(DialogObject *_self, PyObject *_args)
657n/a{
658n/a PyObject *_res = NULL;
659n/a OSErr _err;
660n/a SInt16 ditlID;
661n/a DITLMethod method;
662n/a#ifndef AppendDialogItemList
663n/a PyMac_PRECHECK(AppendDialogItemList);
664n/a#endif
665n/a if (!PyArg_ParseTuple(_args, "hh",
666n/a &ditlID,
667n/a &method))
668n/a return NULL;
669n/a _err = AppendDialogItemList(_self->ob_itself,
670n/a ditlID,
671n/a method);
672n/a if (_err != noErr) return PyMac_Error(_err);
673n/a Py_INCREF(Py_None);
674n/a _res = Py_None;
675n/a return _res;
676n/a}
677n/a
678n/astatic PyObject *DlgObj_SetDialogTimeout(DialogObject *_self, PyObject *_args)
679n/a{
680n/a PyObject *_res = NULL;
681n/a OSStatus _err;
682n/a SInt16 inButtonToPress;
683n/a UInt32 inSecondsToWait;
684n/a#ifndef SetDialogTimeout
685n/a PyMac_PRECHECK(SetDialogTimeout);
686n/a#endif
687n/a if (!PyArg_ParseTuple(_args, "hl",
688n/a &inButtonToPress,
689n/a &inSecondsToWait))
690n/a return NULL;
691n/a _err = SetDialogTimeout(_self->ob_itself,
692n/a inButtonToPress,
693n/a inSecondsToWait);
694n/a if (_err != noErr) return PyMac_Error(_err);
695n/a Py_INCREF(Py_None);
696n/a _res = Py_None;
697n/a return _res;
698n/a}
699n/a
700n/astatic PyObject *DlgObj_GetDialogTimeout(DialogObject *_self, PyObject *_args)
701n/a{
702n/a PyObject *_res = NULL;
703n/a OSStatus _err;
704n/a SInt16 outButtonToPress;
705n/a UInt32 outSecondsToWait;
706n/a UInt32 outSecondsRemaining;
707n/a#ifndef GetDialogTimeout
708n/a PyMac_PRECHECK(GetDialogTimeout);
709n/a#endif
710n/a if (!PyArg_ParseTuple(_args, ""))
711n/a return NULL;
712n/a _err = GetDialogTimeout(_self->ob_itself,
713n/a &outButtonToPress,
714n/a &outSecondsToWait,
715n/a &outSecondsRemaining);
716n/a if (_err != noErr) return PyMac_Error(_err);
717n/a _res = Py_BuildValue("hll",
718n/a outButtonToPress,
719n/a outSecondsToWait,
720n/a outSecondsRemaining);
721n/a return _res;
722n/a}
723n/a
724n/astatic PyObject *DlgObj_SetModalDialogEventMask(DialogObject *_self, PyObject *_args)
725n/a{
726n/a PyObject *_res = NULL;
727n/a OSStatus _err;
728n/a EventMask inMask;
729n/a#ifndef SetModalDialogEventMask
730n/a PyMac_PRECHECK(SetModalDialogEventMask);
731n/a#endif
732n/a if (!PyArg_ParseTuple(_args, "H",
733n/a &inMask))
734n/a return NULL;
735n/a _err = SetModalDialogEventMask(_self->ob_itself,
736n/a inMask);
737n/a if (_err != noErr) return PyMac_Error(_err);
738n/a Py_INCREF(Py_None);
739n/a _res = Py_None;
740n/a return _res;
741n/a}
742n/a
743n/astatic PyObject *DlgObj_GetModalDialogEventMask(DialogObject *_self, PyObject *_args)
744n/a{
745n/a PyObject *_res = NULL;
746n/a OSStatus _err;
747n/a EventMask outMask;
748n/a#ifndef GetModalDialogEventMask
749n/a PyMac_PRECHECK(GetModalDialogEventMask);
750n/a#endif
751n/a if (!PyArg_ParseTuple(_args, ""))
752n/a return NULL;
753n/a _err = GetModalDialogEventMask(_self->ob_itself,
754n/a &outMask);
755n/a if (_err != noErr) return PyMac_Error(_err);
756n/a _res = Py_BuildValue("H",
757n/a outMask);
758n/a return _res;
759n/a}
760n/a
761n/astatic PyObject *DlgObj_GetDialogWindow(DialogObject *_self, PyObject *_args)
762n/a{
763n/a PyObject *_res = NULL;
764n/a WindowPtr _rv;
765n/a#ifndef GetDialogWindow
766n/a PyMac_PRECHECK(GetDialogWindow);
767n/a#endif
768n/a if (!PyArg_ParseTuple(_args, ""))
769n/a return NULL;
770n/a _rv = GetDialogWindow(_self->ob_itself);
771n/a _res = Py_BuildValue("O&",
772n/a WinObj_New, _rv);
773n/a return _res;
774n/a}
775n/a
776n/astatic PyObject *DlgObj_GetDialogTextEditHandle(DialogObject *_self, PyObject *_args)
777n/a{
778n/a PyObject *_res = NULL;
779n/a TEHandle _rv;
780n/a#ifndef GetDialogTextEditHandle
781n/a PyMac_PRECHECK(GetDialogTextEditHandle);
782n/a#endif
783n/a if (!PyArg_ParseTuple(_args, ""))
784n/a return NULL;
785n/a _rv = GetDialogTextEditHandle(_self->ob_itself);
786n/a _res = Py_BuildValue("O&",
787n/a ResObj_New, _rv);
788n/a return _res;
789n/a}
790n/a
791n/astatic PyObject *DlgObj_GetDialogDefaultItem(DialogObject *_self, PyObject *_args)
792n/a{
793n/a PyObject *_res = NULL;
794n/a SInt16 _rv;
795n/a#ifndef GetDialogDefaultItem
796n/a PyMac_PRECHECK(GetDialogDefaultItem);
797n/a#endif
798n/a if (!PyArg_ParseTuple(_args, ""))
799n/a return NULL;
800n/a _rv = GetDialogDefaultItem(_self->ob_itself);
801n/a _res = Py_BuildValue("h",
802n/a _rv);
803n/a return _res;
804n/a}
805n/a
806n/astatic PyObject *DlgObj_GetDialogCancelItem(DialogObject *_self, PyObject *_args)
807n/a{
808n/a PyObject *_res = NULL;
809n/a SInt16 _rv;
810n/a#ifndef GetDialogCancelItem
811n/a PyMac_PRECHECK(GetDialogCancelItem);
812n/a#endif
813n/a if (!PyArg_ParseTuple(_args, ""))
814n/a return NULL;
815n/a _rv = GetDialogCancelItem(_self->ob_itself);
816n/a _res = Py_BuildValue("h",
817n/a _rv);
818n/a return _res;
819n/a}
820n/a
821n/astatic PyObject *DlgObj_GetDialogKeyboardFocusItem(DialogObject *_self, PyObject *_args)
822n/a{
823n/a PyObject *_res = NULL;
824n/a SInt16 _rv;
825n/a#ifndef GetDialogKeyboardFocusItem
826n/a PyMac_PRECHECK(GetDialogKeyboardFocusItem);
827n/a#endif
828n/a if (!PyArg_ParseTuple(_args, ""))
829n/a return NULL;
830n/a _rv = GetDialogKeyboardFocusItem(_self->ob_itself);
831n/a _res = Py_BuildValue("h",
832n/a _rv);
833n/a return _res;
834n/a}
835n/a
836n/astatic PyObject *DlgObj_SetPortDialogPort(DialogObject *_self, PyObject *_args)
837n/a{
838n/a PyObject *_res = NULL;
839n/a#ifndef SetPortDialogPort
840n/a PyMac_PRECHECK(SetPortDialogPort);
841n/a#endif
842n/a if (!PyArg_ParseTuple(_args, ""))
843n/a return NULL;
844n/a SetPortDialogPort(_self->ob_itself);
845n/a Py_INCREF(Py_None);
846n/a _res = Py_None;
847n/a return _res;
848n/a}
849n/a
850n/astatic PyObject *DlgObj_GetDialogPort(DialogObject *_self, PyObject *_args)
851n/a{
852n/a PyObject *_res = NULL;
853n/a CGrafPtr _rv;
854n/a#ifndef GetDialogPort
855n/a PyMac_PRECHECK(GetDialogPort);
856n/a#endif
857n/a if (!PyArg_ParseTuple(_args, ""))
858n/a return NULL;
859n/a _rv = GetDialogPort(_self->ob_itself);
860n/a _res = Py_BuildValue("O&",
861n/a GrafObj_New, _rv);
862n/a return _res;
863n/a}
864n/a
865n/astatic PyMethodDef DlgObj_methods[] = {
866n/a {"DrawDialog", (PyCFunction)DlgObj_DrawDialog, 1,
867n/a PyDoc_STR("() -> None")},
868n/a {"UpdateDialog", (PyCFunction)DlgObj_UpdateDialog, 1,
869n/a PyDoc_STR("(RgnHandle updateRgn) -> None")},
870n/a {"HideDialogItem", (PyCFunction)DlgObj_HideDialogItem, 1,
871n/a PyDoc_STR("(DialogItemIndex itemNo) -> None")},
872n/a {"ShowDialogItem", (PyCFunction)DlgObj_ShowDialogItem, 1,
873n/a PyDoc_STR("(DialogItemIndex itemNo) -> None")},
874n/a {"FindDialogItem", (PyCFunction)DlgObj_FindDialogItem, 1,
875n/a PyDoc_STR("(Point thePt) -> (DialogItemIndexZeroBased _rv)")},
876n/a {"DialogCut", (PyCFunction)DlgObj_DialogCut, 1,
877n/a PyDoc_STR("() -> None")},
878n/a {"DialogPaste", (PyCFunction)DlgObj_DialogPaste, 1,
879n/a PyDoc_STR("() -> None")},
880n/a {"DialogCopy", (PyCFunction)DlgObj_DialogCopy, 1,
881n/a PyDoc_STR("() -> None")},
882n/a {"DialogDelete", (PyCFunction)DlgObj_DialogDelete, 1,
883n/a PyDoc_STR("() -> None")},
884n/a {"GetDialogItem", (PyCFunction)DlgObj_GetDialogItem, 1,
885n/a PyDoc_STR("(DialogItemIndex itemNo) -> (DialogItemType itemType, Handle item, Rect box)")},
886n/a {"SetDialogItem", (PyCFunction)DlgObj_SetDialogItem, 1,
887n/a PyDoc_STR("(DialogItemIndex itemNo, DialogItemType itemType, Handle item, Rect box) -> None")},
888n/a {"SelectDialogItemText", (PyCFunction)DlgObj_SelectDialogItemText, 1,
889n/a PyDoc_STR("(DialogItemIndex itemNo, SInt16 strtSel, SInt16 endSel) -> None")},
890n/a {"AppendDITL", (PyCFunction)DlgObj_AppendDITL, 1,
891n/a PyDoc_STR("(Handle theHandle, DITLMethod method) -> None")},
892n/a {"CountDITL", (PyCFunction)DlgObj_CountDITL, 1,
893n/a PyDoc_STR("() -> (DialogItemIndex _rv)")},
894n/a {"ShortenDITL", (PyCFunction)DlgObj_ShortenDITL, 1,
895n/a PyDoc_STR("(DialogItemIndex numberItems) -> None")},
896n/a {"InsertDialogItem", (PyCFunction)DlgObj_InsertDialogItem, 1,
897n/a PyDoc_STR("(DialogItemIndex afterItem, DialogItemType itemType, Handle itemHandle, Rect box) -> None")},
898n/a {"RemoveDialogItems", (PyCFunction)DlgObj_RemoveDialogItems, 1,
899n/a PyDoc_STR("(DialogItemIndex itemNo, DialogItemIndex amountToRemove, Boolean disposeItemData) -> None")},
900n/a {"StdFilterProc", (PyCFunction)DlgObj_StdFilterProc, 1,
901n/a PyDoc_STR("(EventRecord event, DialogItemIndex itemHit) -> (Boolean _rv, EventRecord event, DialogItemIndex itemHit)")},
902n/a {"SetDialogDefaultItem", (PyCFunction)DlgObj_SetDialogDefaultItem, 1,
903n/a PyDoc_STR("(DialogItemIndex newItem) -> None")},
904n/a {"SetDialogCancelItem", (PyCFunction)DlgObj_SetDialogCancelItem, 1,
905n/a PyDoc_STR("(DialogItemIndex newItem) -> None")},
906n/a {"SetDialogTracksCursor", (PyCFunction)DlgObj_SetDialogTracksCursor, 1,
907n/a PyDoc_STR("(Boolean tracks) -> None")},
908n/a {"AutoSizeDialog", (PyCFunction)DlgObj_AutoSizeDialog, 1,
909n/a PyDoc_STR("() -> None")},
910n/a {"GetDialogItemAsControl", (PyCFunction)DlgObj_GetDialogItemAsControl, 1,
911n/a PyDoc_STR("(SInt16 inItemNo) -> (ControlHandle outControl)")},
912n/a {"MoveDialogItem", (PyCFunction)DlgObj_MoveDialogItem, 1,
913n/a PyDoc_STR("(SInt16 inItemNo, SInt16 inHoriz, SInt16 inVert) -> None")},
914n/a {"SizeDialogItem", (PyCFunction)DlgObj_SizeDialogItem, 1,
915n/a PyDoc_STR("(SInt16 inItemNo, SInt16 inWidth, SInt16 inHeight) -> None")},
916n/a {"AppendDialogItemList", (PyCFunction)DlgObj_AppendDialogItemList, 1,
917n/a PyDoc_STR("(SInt16 ditlID, DITLMethod method) -> None")},
918n/a {"SetDialogTimeout", (PyCFunction)DlgObj_SetDialogTimeout, 1,
919n/a PyDoc_STR("(SInt16 inButtonToPress, UInt32 inSecondsToWait) -> None")},
920n/a {"GetDialogTimeout", (PyCFunction)DlgObj_GetDialogTimeout, 1,
921n/a PyDoc_STR("() -> (SInt16 outButtonToPress, UInt32 outSecondsToWait, UInt32 outSecondsRemaining)")},
922n/a {"SetModalDialogEventMask", (PyCFunction)DlgObj_SetModalDialogEventMask, 1,
923n/a PyDoc_STR("(EventMask inMask) -> None")},
924n/a {"GetModalDialogEventMask", (PyCFunction)DlgObj_GetModalDialogEventMask, 1,
925n/a PyDoc_STR("() -> (EventMask outMask)")},
926n/a {"GetDialogWindow", (PyCFunction)DlgObj_GetDialogWindow, 1,
927n/a PyDoc_STR("() -> (WindowPtr _rv)")},
928n/a {"GetDialogTextEditHandle", (PyCFunction)DlgObj_GetDialogTextEditHandle, 1,
929n/a PyDoc_STR("() -> (TEHandle _rv)")},
930n/a {"GetDialogDefaultItem", (PyCFunction)DlgObj_GetDialogDefaultItem, 1,
931n/a PyDoc_STR("() -> (SInt16 _rv)")},
932n/a {"GetDialogCancelItem", (PyCFunction)DlgObj_GetDialogCancelItem, 1,
933n/a PyDoc_STR("() -> (SInt16 _rv)")},
934n/a {"GetDialogKeyboardFocusItem", (PyCFunction)DlgObj_GetDialogKeyboardFocusItem, 1,
935n/a PyDoc_STR("() -> (SInt16 _rv)")},
936n/a {"SetPortDialogPort", (PyCFunction)DlgObj_SetPortDialogPort, 1,
937n/a PyDoc_STR("() -> None")},
938n/a {"GetDialogPort", (PyCFunction)DlgObj_GetDialogPort, 1,
939n/a PyDoc_STR("() -> (CGrafPtr _rv)")},
940n/a {NULL, NULL, 0}
941n/a};
942n/a
943n/a#define DlgObj_getsetlist NULL
944n/a
945n/a
946n/astatic int DlgObj_compare(DialogObject *self, DialogObject *other)
947n/a{
948n/a if ( self->ob_itself > other->ob_itself ) return 1;
949n/a if ( self->ob_itself < other->ob_itself ) return -1;
950n/a return 0;
951n/a}
952n/a
953n/a#define DlgObj_repr NULL
954n/a
955n/astatic int DlgObj_hash(DialogObject *self)
956n/a{
957n/a return (int)self->ob_itself;
958n/a}
959n/a#define DlgObj_tp_init 0
960n/a
961n/a#define DlgObj_tp_alloc PyType_GenericAlloc
962n/a
963n/astatic PyObject *DlgObj_tp_new(PyTypeObject *type, PyObject *_args, PyObject *_kwds)
964n/a{
965n/a PyObject *_self;
966n/a DialogPtr itself;
967n/a char *kw[] = {"itself", 0};
968n/a
969n/a if (!PyArg_ParseTupleAndKeywords(_args, _kwds, "O&", kw, DlgObj_Convert, &itself)) return NULL;
970n/a if ((_self = type->tp_alloc(type, 0)) == NULL) return NULL;
971n/a ((DialogObject *)_self)->ob_itself = itself;
972n/a return _self;
973n/a}
974n/a
975n/a#define DlgObj_tp_free PyObject_Del
976n/a
977n/a
978n/aPyTypeObject Dialog_Type = {
979n/a PyObject_HEAD_INIT(NULL)
980n/a 0, /*ob_size*/
981n/a "_Dlg.Dialog", /*tp_name*/
982n/a sizeof(DialogObject), /*tp_basicsize*/
983n/a 0, /*tp_itemsize*/
984n/a /* methods */
985n/a (destructor) DlgObj_dealloc, /*tp_dealloc*/
986n/a 0, /*tp_print*/
987n/a (getattrfunc)0, /*tp_getattr*/
988n/a (setattrfunc)0, /*tp_setattr*/
989n/a (cmpfunc) DlgObj_compare, /*tp_compare*/
990n/a (reprfunc) DlgObj_repr, /*tp_repr*/
991n/a (PyNumberMethods *)0, /* tp_as_number */
992n/a (PySequenceMethods *)0, /* tp_as_sequence */
993n/a (PyMappingMethods *)0, /* tp_as_mapping */
994n/a (hashfunc) DlgObj_hash, /*tp_hash*/
995n/a 0, /*tp_call*/
996n/a 0, /*tp_str*/
997n/a PyObject_GenericGetAttr, /*tp_getattro*/
998n/a PyObject_GenericSetAttr, /*tp_setattro */
999n/a 0, /*tp_as_buffer*/
1000n/a Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE, /* tp_flags */
1001n/a 0, /*tp_doc*/
1002n/a 0, /*tp_traverse*/
1003n/a 0, /*tp_clear*/
1004n/a 0, /*tp_richcompare*/
1005n/a 0, /*tp_weaklistoffset*/
1006n/a 0, /*tp_iter*/
1007n/a 0, /*tp_iternext*/
1008n/a DlgObj_methods, /* tp_methods */
1009n/a 0, /*tp_members*/
1010n/a DlgObj_getsetlist, /*tp_getset*/
1011n/a 0, /*tp_base*/
1012n/a 0, /*tp_dict*/
1013n/a 0, /*tp_descr_get*/
1014n/a 0, /*tp_descr_set*/
1015n/a 0, /*tp_dictoffset*/
1016n/a DlgObj_tp_init, /* tp_init */
1017n/a DlgObj_tp_alloc, /* tp_alloc */
1018n/a DlgObj_tp_new, /* tp_new */
1019n/a DlgObj_tp_free, /* tp_free */
1020n/a};
1021n/a
1022n/a/* --------------------- End object type Dialog --------------------- */
1023n/a
1024n/a
1025n/astatic PyObject *Dlg_NewDialog(PyObject *_self, PyObject *_args)
1026n/a{
1027n/a PyObject *_res = NULL;
1028n/a DialogPtr _rv;
1029n/a Rect boundsRect;
1030n/a Str255 title;
1031n/a Boolean visible;
1032n/a SInt16 procID;
1033n/a WindowPtr behind;
1034n/a Boolean goAwayFlag;
1035n/a SInt32 refCon;
1036n/a Handle items;
1037n/a#ifndef NewDialog
1038n/a PyMac_PRECHECK(NewDialog);
1039n/a#endif
1040n/a if (!PyArg_ParseTuple(_args, "O&O&bhO&blO&",
1041n/a PyMac_GetRect, &boundsRect,
1042n/a PyMac_GetStr255, title,
1043n/a &visible,
1044n/a &procID,
1045n/a WinObj_Convert, &behind,
1046n/a &goAwayFlag,
1047n/a &refCon,
1048n/a ResObj_Convert, &items))
1049n/a return NULL;
1050n/a _rv = NewDialog((void *)0,
1051n/a &boundsRect,
1052n/a title,
1053n/a visible,
1054n/a procID,
1055n/a behind,
1056n/a goAwayFlag,
1057n/a refCon,
1058n/a items);
1059n/a _res = Py_BuildValue("O&",
1060n/a DlgObj_New, _rv);
1061n/a return _res;
1062n/a}
1063n/a
1064n/astatic PyObject *Dlg_GetNewDialog(PyObject *_self, PyObject *_args)
1065n/a{
1066n/a PyObject *_res = NULL;
1067n/a DialogPtr _rv;
1068n/a SInt16 dialogID;
1069n/a WindowPtr behind;
1070n/a#ifndef GetNewDialog
1071n/a PyMac_PRECHECK(GetNewDialog);
1072n/a#endif
1073n/a if (!PyArg_ParseTuple(_args, "hO&",
1074n/a &dialogID,
1075n/a WinObj_Convert, &behind))
1076n/a return NULL;
1077n/a _rv = GetNewDialog(dialogID,
1078n/a (void *)0,
1079n/a behind);
1080n/a _res = Py_BuildValue("O&",
1081n/a DlgObj_New, _rv);
1082n/a return _res;
1083n/a}
1084n/a
1085n/astatic PyObject *Dlg_NewColorDialog(PyObject *_self, PyObject *_args)
1086n/a{
1087n/a PyObject *_res = NULL;
1088n/a DialogPtr _rv;
1089n/a Rect boundsRect;
1090n/a Str255 title;
1091n/a Boolean visible;
1092n/a SInt16 procID;
1093n/a WindowPtr behind;
1094n/a Boolean goAwayFlag;
1095n/a SInt32 refCon;
1096n/a Handle items;
1097n/a#ifndef NewColorDialog
1098n/a PyMac_PRECHECK(NewColorDialog);
1099n/a#endif
1100n/a if (!PyArg_ParseTuple(_args, "O&O&bhO&blO&",
1101n/a PyMac_GetRect, &boundsRect,
1102n/a PyMac_GetStr255, title,
1103n/a &visible,
1104n/a &procID,
1105n/a WinObj_Convert, &behind,
1106n/a &goAwayFlag,
1107n/a &refCon,
1108n/a ResObj_Convert, &items))
1109n/a return NULL;
1110n/a _rv = NewColorDialog((void *)0,
1111n/a &boundsRect,
1112n/a title,
1113n/a visible,
1114n/a procID,
1115n/a behind,
1116n/a goAwayFlag,
1117n/a refCon,
1118n/a items);
1119n/a _res = Py_BuildValue("O&",
1120n/a DlgObj_New, _rv);
1121n/a return _res;
1122n/a}
1123n/a
1124n/astatic PyObject *Dlg_ModalDialog(PyObject *_self, PyObject *_args)
1125n/a{
1126n/a PyObject *_res = NULL;
1127n/a PyObject* modalFilter;
1128n/a DialogItemIndex itemHit;
1129n/a#ifndef ModalDialog
1130n/a PyMac_PRECHECK(ModalDialog);
1131n/a#endif
1132n/a if (!PyArg_ParseTuple(_args, "O",
1133n/a &modalFilter))
1134n/a return NULL;
1135n/a ModalDialog(Dlg_PassFilterProc(modalFilter),
1136n/a &itemHit);
1137n/a _res = Py_BuildValue("h",
1138n/a itemHit);
1139n/a return _res;
1140n/a}
1141n/a
1142n/astatic PyObject *Dlg_IsDialogEvent(PyObject *_self, PyObject *_args)
1143n/a{
1144n/a PyObject *_res = NULL;
1145n/a Boolean _rv;
1146n/a EventRecord theEvent;
1147n/a#ifndef IsDialogEvent
1148n/a PyMac_PRECHECK(IsDialogEvent);
1149n/a#endif
1150n/a if (!PyArg_ParseTuple(_args, "O&",
1151n/a PyMac_GetEventRecord, &theEvent))
1152n/a return NULL;
1153n/a _rv = IsDialogEvent(&theEvent);
1154n/a _res = Py_BuildValue("b",
1155n/a _rv);
1156n/a return _res;
1157n/a}
1158n/a
1159n/astatic PyObject *Dlg_DialogSelect(PyObject *_self, PyObject *_args)
1160n/a{
1161n/a PyObject *_res = NULL;
1162n/a Boolean _rv;
1163n/a EventRecord theEvent;
1164n/a DialogPtr theDialog;
1165n/a DialogItemIndex itemHit;
1166n/a#ifndef DialogSelect
1167n/a PyMac_PRECHECK(DialogSelect);
1168n/a#endif
1169n/a if (!PyArg_ParseTuple(_args, "O&",
1170n/a PyMac_GetEventRecord, &theEvent))
1171n/a return NULL;
1172n/a _rv = DialogSelect(&theEvent,
1173n/a &theDialog,
1174n/a &itemHit);
1175n/a _res = Py_BuildValue("bO&h",
1176n/a _rv,
1177n/a DlgObj_WhichDialog, theDialog,
1178n/a itemHit);
1179n/a return _res;
1180n/a}
1181n/a
1182n/astatic PyObject *Dlg_Alert(PyObject *_self, PyObject *_args)
1183n/a{
1184n/a PyObject *_res = NULL;
1185n/a DialogItemIndex _rv;
1186n/a SInt16 alertID;
1187n/a PyObject* modalFilter;
1188n/a#ifndef Alert
1189n/a PyMac_PRECHECK(Alert);
1190n/a#endif
1191n/a if (!PyArg_ParseTuple(_args, "hO",
1192n/a &alertID,
1193n/a &modalFilter))
1194n/a return NULL;
1195n/a _rv = Alert(alertID,
1196n/a Dlg_PassFilterProc(modalFilter));
1197n/a _res = Py_BuildValue("h",
1198n/a _rv);
1199n/a return _res;
1200n/a}
1201n/a
1202n/astatic PyObject *Dlg_StopAlert(PyObject *_self, PyObject *_args)
1203n/a{
1204n/a PyObject *_res = NULL;
1205n/a DialogItemIndex _rv;
1206n/a SInt16 alertID;
1207n/a PyObject* modalFilter;
1208n/a#ifndef StopAlert
1209n/a PyMac_PRECHECK(StopAlert);
1210n/a#endif
1211n/a if (!PyArg_ParseTuple(_args, "hO",
1212n/a &alertID,
1213n/a &modalFilter))
1214n/a return NULL;
1215n/a _rv = StopAlert(alertID,
1216n/a Dlg_PassFilterProc(modalFilter));
1217n/a _res = Py_BuildValue("h",
1218n/a _rv);
1219n/a return _res;
1220n/a}
1221n/a
1222n/astatic PyObject *Dlg_NoteAlert(PyObject *_self, PyObject *_args)
1223n/a{
1224n/a PyObject *_res = NULL;
1225n/a DialogItemIndex _rv;
1226n/a SInt16 alertID;
1227n/a PyObject* modalFilter;
1228n/a#ifndef NoteAlert
1229n/a PyMac_PRECHECK(NoteAlert);
1230n/a#endif
1231n/a if (!PyArg_ParseTuple(_args, "hO",
1232n/a &alertID,
1233n/a &modalFilter))
1234n/a return NULL;
1235n/a _rv = NoteAlert(alertID,
1236n/a Dlg_PassFilterProc(modalFilter));
1237n/a _res = Py_BuildValue("h",
1238n/a _rv);
1239n/a return _res;
1240n/a}
1241n/a
1242n/astatic PyObject *Dlg_CautionAlert(PyObject *_self, PyObject *_args)
1243n/a{
1244n/a PyObject *_res = NULL;
1245n/a DialogItemIndex _rv;
1246n/a SInt16 alertID;
1247n/a PyObject* modalFilter;
1248n/a#ifndef CautionAlert
1249n/a PyMac_PRECHECK(CautionAlert);
1250n/a#endif
1251n/a if (!PyArg_ParseTuple(_args, "hO",
1252n/a &alertID,
1253n/a &modalFilter))
1254n/a return NULL;
1255n/a _rv = CautionAlert(alertID,
1256n/a Dlg_PassFilterProc(modalFilter));
1257n/a _res = Py_BuildValue("h",
1258n/a _rv);
1259n/a return _res;
1260n/a}
1261n/a
1262n/astatic PyObject *Dlg_ParamText(PyObject *_self, PyObject *_args)
1263n/a{
1264n/a PyObject *_res = NULL;
1265n/a Str255 param0;
1266n/a Str255 param1;
1267n/a Str255 param2;
1268n/a Str255 param3;
1269n/a#ifndef ParamText
1270n/a PyMac_PRECHECK(ParamText);
1271n/a#endif
1272n/a if (!PyArg_ParseTuple(_args, "O&O&O&O&",
1273n/a PyMac_GetStr255, param0,
1274n/a PyMac_GetStr255, param1,
1275n/a PyMac_GetStr255, param2,
1276n/a PyMac_GetStr255, param3))
1277n/a return NULL;
1278n/a ParamText(param0,
1279n/a param1,
1280n/a param2,
1281n/a param3);
1282n/a Py_INCREF(Py_None);
1283n/a _res = Py_None;
1284n/a return _res;
1285n/a}
1286n/a
1287n/astatic PyObject *Dlg_GetDialogItemText(PyObject *_self, PyObject *_args)
1288n/a{
1289n/a PyObject *_res = NULL;
1290n/a Handle item;
1291n/a Str255 text;
1292n/a#ifndef GetDialogItemText
1293n/a PyMac_PRECHECK(GetDialogItemText);
1294n/a#endif
1295n/a if (!PyArg_ParseTuple(_args, "O&",
1296n/a ResObj_Convert, &item))
1297n/a return NULL;
1298n/a GetDialogItemText(item,
1299n/a text);
1300n/a _res = Py_BuildValue("O&",
1301n/a PyMac_BuildStr255, text);
1302n/a return _res;
1303n/a}
1304n/a
1305n/astatic PyObject *Dlg_SetDialogItemText(PyObject *_self, PyObject *_args)
1306n/a{
1307n/a PyObject *_res = NULL;
1308n/a Handle item;
1309n/a Str255 text;
1310n/a#ifndef SetDialogItemText
1311n/a PyMac_PRECHECK(SetDialogItemText);
1312n/a#endif
1313n/a if (!PyArg_ParseTuple(_args, "O&O&",
1314n/a ResObj_Convert, &item,
1315n/a PyMac_GetStr255, text))
1316n/a return NULL;
1317n/a SetDialogItemText(item,
1318n/a text);
1319n/a Py_INCREF(Py_None);
1320n/a _res = Py_None;
1321n/a return _res;
1322n/a}
1323n/a
1324n/astatic PyObject *Dlg_GetAlertStage(PyObject *_self, PyObject *_args)
1325n/a{
1326n/a PyObject *_res = NULL;
1327n/a SInt16 _rv;
1328n/a#ifndef GetAlertStage
1329n/a PyMac_PRECHECK(GetAlertStage);
1330n/a#endif
1331n/a if (!PyArg_ParseTuple(_args, ""))
1332n/a return NULL;
1333n/a _rv = GetAlertStage();
1334n/a _res = Py_BuildValue("h",
1335n/a _rv);
1336n/a return _res;
1337n/a}
1338n/a
1339n/astatic PyObject *Dlg_SetDialogFont(PyObject *_self, PyObject *_args)
1340n/a{
1341n/a PyObject *_res = NULL;
1342n/a SInt16 fontNum;
1343n/a#ifndef SetDialogFont
1344n/a PyMac_PRECHECK(SetDialogFont);
1345n/a#endif
1346n/a if (!PyArg_ParseTuple(_args, "h",
1347n/a &fontNum))
1348n/a return NULL;
1349n/a SetDialogFont(fontNum);
1350n/a Py_INCREF(Py_None);
1351n/a _res = Py_None;
1352n/a return _res;
1353n/a}
1354n/a
1355n/astatic PyObject *Dlg_ResetAlertStage(PyObject *_self, PyObject *_args)
1356n/a{
1357n/a PyObject *_res = NULL;
1358n/a#ifndef ResetAlertStage
1359n/a PyMac_PRECHECK(ResetAlertStage);
1360n/a#endif
1361n/a if (!PyArg_ParseTuple(_args, ""))
1362n/a return NULL;
1363n/a ResetAlertStage();
1364n/a Py_INCREF(Py_None);
1365n/a _res = Py_None;
1366n/a return _res;
1367n/a}
1368n/a
1369n/astatic PyObject *Dlg_GetParamText(PyObject *_self, PyObject *_args)
1370n/a{
1371n/a PyObject *_res = NULL;
1372n/a Str255 param0;
1373n/a Str255 param1;
1374n/a Str255 param2;
1375n/a Str255 param3;
1376n/a#ifndef GetParamText
1377n/a PyMac_PRECHECK(GetParamText);
1378n/a#endif
1379n/a if (!PyArg_ParseTuple(_args, "O&O&O&O&",
1380n/a PyMac_GetStr255, param0,
1381n/a PyMac_GetStr255, param1,
1382n/a PyMac_GetStr255, param2,
1383n/a PyMac_GetStr255, param3))
1384n/a return NULL;
1385n/a GetParamText(param0,
1386n/a param1,
1387n/a param2,
1388n/a param3);
1389n/a Py_INCREF(Py_None);
1390n/a _res = Py_None;
1391n/a return _res;
1392n/a}
1393n/a
1394n/astatic PyObject *Dlg_NewFeaturesDialog(PyObject *_self, PyObject *_args)
1395n/a{
1396n/a PyObject *_res = NULL;
1397n/a DialogPtr _rv;
1398n/a Rect inBoundsRect;
1399n/a Str255 inTitle;
1400n/a Boolean inIsVisible;
1401n/a SInt16 inProcID;
1402n/a WindowPtr inBehind;
1403n/a Boolean inGoAwayFlag;
1404n/a SInt32 inRefCon;
1405n/a Handle inItemListHandle;
1406n/a UInt32 inFlags;
1407n/a#ifndef NewFeaturesDialog
1408n/a PyMac_PRECHECK(NewFeaturesDialog);
1409n/a#endif
1410n/a if (!PyArg_ParseTuple(_args, "O&O&bhO&blO&l",
1411n/a PyMac_GetRect, &inBoundsRect,
1412n/a PyMac_GetStr255, inTitle,
1413n/a &inIsVisible,
1414n/a &inProcID,
1415n/a WinObj_Convert, &inBehind,
1416n/a &inGoAwayFlag,
1417n/a &inRefCon,
1418n/a ResObj_Convert, &inItemListHandle,
1419n/a &inFlags))
1420n/a return NULL;
1421n/a _rv = NewFeaturesDialog((void *)0,
1422n/a &inBoundsRect,
1423n/a inTitle,
1424n/a inIsVisible,
1425n/a inProcID,
1426n/a inBehind,
1427n/a inGoAwayFlag,
1428n/a inRefCon,
1429n/a inItemListHandle,
1430n/a inFlags);
1431n/a _res = Py_BuildValue("O&",
1432n/a DlgObj_New, _rv);
1433n/a return _res;
1434n/a}
1435n/a
1436n/astatic PyObject *Dlg_GetDialogFromWindow(PyObject *_self, PyObject *_args)
1437n/a{
1438n/a PyObject *_res = NULL;
1439n/a DialogPtr _rv;
1440n/a WindowPtr window;
1441n/a#ifndef GetDialogFromWindow
1442n/a PyMac_PRECHECK(GetDialogFromWindow);
1443n/a#endif
1444n/a if (!PyArg_ParseTuple(_args, "O&",
1445n/a WinObj_Convert, &window))
1446n/a return NULL;
1447n/a _rv = GetDialogFromWindow(window);
1448n/a _res = Py_BuildValue("O&",
1449n/a DlgObj_New, _rv);
1450n/a return _res;
1451n/a}
1452n/a
1453n/astatic PyObject *Dlg_SetUserItemHandler(PyObject *_self, PyObject *_args)
1454n/a{
1455n/a PyObject *_res = NULL;
1456n/a
1457n/a PyObject *new = NULL;
1458n/a
1459n/a
1460n/a if (!PyArg_ParseTuple(_args, "|O", &new))
1461n/a return NULL;
1462n/a
1463n/a if (Dlg_UserItemProc_callback && new && new != Py_None) {
1464n/a PyErr_SetString(Dlg_Error, "Another UserItemProc is already installed");
1465n/a return NULL;
1466n/a }
1467n/a
1468n/a if (new == NULL || new == Py_None) {
1469n/a new = NULL;
1470n/a _res = Py_None;
1471n/a Py_INCREF(Py_None);
1472n/a } else {
1473n/a Py_INCREF(new);
1474n/a _res = Py_BuildValue("O&", ResObj_New, (Handle)NewUserItemUPP(Dlg_UnivUserItemProc));
1475n/a }
1476n/a
1477n/a Dlg_UserItemProc_callback = new;
1478n/a return _res;
1479n/a
1480n/a}
1481n/a
1482n/astatic PyMethodDef Dlg_methods[] = {
1483n/a {"NewDialog", (PyCFunction)Dlg_NewDialog, 1,
1484n/a PyDoc_STR("(Rect boundsRect, Str255 title, Boolean visible, SInt16 procID, WindowPtr behind, Boolean goAwayFlag, SInt32 refCon, Handle items) -> (DialogPtr _rv)")},
1485n/a {"GetNewDialog", (PyCFunction)Dlg_GetNewDialog, 1,
1486n/a PyDoc_STR("(SInt16 dialogID, WindowPtr behind) -> (DialogPtr _rv)")},
1487n/a {"NewColorDialog", (PyCFunction)Dlg_NewColorDialog, 1,
1488n/a PyDoc_STR("(Rect boundsRect, Str255 title, Boolean visible, SInt16 procID, WindowPtr behind, Boolean goAwayFlag, SInt32 refCon, Handle items) -> (DialogPtr _rv)")},
1489n/a {"ModalDialog", (PyCFunction)Dlg_ModalDialog, 1,
1490n/a PyDoc_STR("(PyObject* modalFilter) -> (DialogItemIndex itemHit)")},
1491n/a {"IsDialogEvent", (PyCFunction)Dlg_IsDialogEvent, 1,
1492n/a PyDoc_STR("(EventRecord theEvent) -> (Boolean _rv)")},
1493n/a {"DialogSelect", (PyCFunction)Dlg_DialogSelect, 1,
1494n/a PyDoc_STR("(EventRecord theEvent) -> (Boolean _rv, DialogPtr theDialog, DialogItemIndex itemHit)")},
1495n/a {"Alert", (PyCFunction)Dlg_Alert, 1,
1496n/a PyDoc_STR("(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)")},
1497n/a {"StopAlert", (PyCFunction)Dlg_StopAlert, 1,
1498n/a PyDoc_STR("(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)")},
1499n/a {"NoteAlert", (PyCFunction)Dlg_NoteAlert, 1,
1500n/a PyDoc_STR("(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)")},
1501n/a {"CautionAlert", (PyCFunction)Dlg_CautionAlert, 1,
1502n/a PyDoc_STR("(SInt16 alertID, PyObject* modalFilter) -> (DialogItemIndex _rv)")},
1503n/a {"ParamText", (PyCFunction)Dlg_ParamText, 1,
1504n/a PyDoc_STR("(Str255 param0, Str255 param1, Str255 param2, Str255 param3) -> None")},
1505n/a {"GetDialogItemText", (PyCFunction)Dlg_GetDialogItemText, 1,
1506n/a PyDoc_STR("(Handle item) -> (Str255 text)")},
1507n/a {"SetDialogItemText", (PyCFunction)Dlg_SetDialogItemText, 1,
1508n/a PyDoc_STR("(Handle item, Str255 text) -> None")},
1509n/a {"GetAlertStage", (PyCFunction)Dlg_GetAlertStage, 1,
1510n/a PyDoc_STR("() -> (SInt16 _rv)")},
1511n/a {"SetDialogFont", (PyCFunction)Dlg_SetDialogFont, 1,
1512n/a PyDoc_STR("(SInt16 fontNum) -> None")},
1513n/a {"ResetAlertStage", (PyCFunction)Dlg_ResetAlertStage, 1,
1514n/a PyDoc_STR("() -> None")},
1515n/a {"GetParamText", (PyCFunction)Dlg_GetParamText, 1,
1516n/a PyDoc_STR("(Str255 param0, Str255 param1, Str255 param2, Str255 param3) -> None")},
1517n/a {"NewFeaturesDialog", (PyCFunction)Dlg_NewFeaturesDialog, 1,
1518n/a PyDoc_STR("(Rect inBoundsRect, Str255 inTitle, Boolean inIsVisible, SInt16 inProcID, WindowPtr inBehind, Boolean inGoAwayFlag, SInt32 inRefCon, Handle inItemListHandle, UInt32 inFlags) -> (DialogPtr _rv)")},
1519n/a {"GetDialogFromWindow", (PyCFunction)Dlg_GetDialogFromWindow, 1,
1520n/a PyDoc_STR("(WindowPtr window) -> (DialogPtr _rv)")},
1521n/a {"SetUserItemHandler", (PyCFunction)Dlg_SetUserItemHandler, 1,
1522n/a PyDoc_STR(NULL)},
1523n/a {NULL, NULL, 0}
1524n/a};
1525n/a
1526n/a
1527n/a
1528n/a/* Return the WindowPtr corresponding to a DialogObject */
1529n/a#if 0
1530n/aWindowPtr
1531n/aDlgObj_ConvertToWindow(PyObject *self)
1532n/a{
1533n/a if ( DlgObj_Check(self) )
1534n/a return GetDialogWindow(((DialogObject *)self)->ob_itself);
1535n/a return NULL;
1536n/a}
1537n/a#endif
1538n/a/* Return the object corresponding to the dialog, or None */
1539n/a
1540n/aPyObject *
1541n/aDlgObj_WhichDialog(DialogPtr d)
1542n/a{
1543n/a PyObject *it;
1544n/a
1545n/a if (d == NULL) {
1546n/a it = Py_None;
1547n/a Py_INCREF(it);
1548n/a } else {
1549n/a WindowPtr w = GetDialogWindow(d);
1550n/a
1551n/a it = (PyObject *) GetWRefCon(w);
1552n/a if (it == NULL || ((DialogObject *)it)->ob_itself != d || !DlgObj_Check(it)) {
1553n/a#if 0
1554n/a /* Should do this, but we don't have an ob_freeit for dialogs yet. */
1555n/a it = WinObj_New(w);
1556n/a ((WindowObject *)it)->ob_freeit = NULL;
1557n/a#else
1558n/a it = Py_None;
1559n/a Py_INCREF(it);
1560n/a#endif
1561n/a } else {
1562n/a Py_INCREF(it);
1563n/a }
1564n/a }
1565n/a return it;
1566n/a}
1567n/a
1568n/a#else /* __LP64__ */
1569n/a
1570n/astatic PyMethodDef Dlg_methods[] = {
1571n/a {NULL, NULL, 0}
1572n/a};
1573n/a
1574n/a#endif /* __LP64__ */
1575n/a
1576n/a
1577n/avoid init_Dlg(void)
1578n/a{
1579n/a PyObject *m;
1580n/a#ifndef __LP64__
1581n/a PyObject *d;
1582n/a
1583n/a
1584n/a
1585n/a PyMac_INIT_TOOLBOX_OBJECT_NEW(DialogPtr, DlgObj_New);
1586n/a PyMac_INIT_TOOLBOX_OBJECT_NEW(DialogPtr, DlgObj_WhichDialog);
1587n/a PyMac_INIT_TOOLBOX_OBJECT_CONVERT(DialogPtr, DlgObj_Convert);
1588n/a#endif /* !__LP64__ */
1589n/a
1590n/a m = Py_InitModule("_Dlg", Dlg_methods);
1591n/a
1592n/a#ifndef __LP64__
1593n/a d = PyModule_GetDict(m);
1594n/a Dlg_Error = PyMac_GetOSErrException();
1595n/a if (Dlg_Error == NULL ||
1596n/a PyDict_SetItemString(d, "Error", Dlg_Error) != 0)
1597n/a return;
1598n/a Dialog_Type.ob_type = &PyType_Type;
1599n/a if (PyType_Ready(&Dialog_Type) < 0) return;
1600n/a Py_INCREF(&Dialog_Type);
1601n/a PyModule_AddObject(m, "Dialog", (PyObject *)&Dialog_Type);
1602n/a /* Backward-compatible name */
1603n/a Py_INCREF(&Dialog_Type);
1604n/a PyModule_AddObject(m, "DialogType", (PyObject *)&Dialog_Type);
1605n/a#endif /* !__LP64__ */
1606n/a}
1607n/a
1608n/a/* ======================== End module _Dlg ========================= */
1609n/a