blob: e40ace748064c2cf619217ff749d296cb6bdc08e [file] [log] [blame]
Guido van Rossum17448e21995-01-30 11:53:55 +00001
2/* ========================== Module Menu =========================== */
3
4#include "Python.h"
5
6
7
8#define SystemSevenOrLater 1
9
10#include "macglue.h"
11#include <Memory.h>
12#include <Dialogs.h>
13#include <Menus.h>
14#include <Controls.h>
15
16extern PyObject *ResObj_New(Handle);
17extern int ResObj_Convert(PyObject *, Handle *);
Jack Jansen425e9eb1995-12-12 15:02:03 +000018extern PyObject *OptResObj_New(Handle);
19extern int OptResObj_Convert(PyObject *, Handle *);
Guido van Rossum17448e21995-01-30 11:53:55 +000020
21extern PyObject *WinObj_New(WindowPtr);
22extern int WinObj_Convert(PyObject *, WindowPtr *);
Jack Jansen425e9eb1995-12-12 15:02:03 +000023extern PyTypeObject Window_Type;
24#define WinObj_Check(x) ((x)->ob_type == &Window_Type)
Guido van Rossum17448e21995-01-30 11:53:55 +000025
26extern PyObject *DlgObj_New(DialogPtr);
27extern int DlgObj_Convert(PyObject *, DialogPtr *);
28extern PyTypeObject Dialog_Type;
29#define DlgObj_Check(x) ((x)->ob_type == &Dialog_Type)
30
31extern PyObject *MenuObj_New(MenuHandle);
32extern int MenuObj_Convert(PyObject *, MenuHandle *);
33
34extern PyObject *CtlObj_New(ControlHandle);
35extern int CtlObj_Convert(PyObject *, ControlHandle *);
36
Jack Jansen425e9eb1995-12-12 15:02:03 +000037extern PyObject *GrafObj_New(GrafPtr);
38extern int GrafObj_Convert(PyObject *, GrafPtr *);
39
40extern PyObject *BMObj_New(BitMapPtr);
41extern int BMObj_Convert(PyObject *, BitMapPtr *);
42
Guido van Rossum17448e21995-01-30 11:53:55 +000043extern PyObject *WinObj_WhichWindow(WindowPtr);
44
Guido van Rossum86c3af71995-03-19 22:42:51 +000045#include <Devices.h> /* Defines OpenDeskAcc in universal headers */
Guido van Rossum17448e21995-01-30 11:53:55 +000046#include <Menus.h>
47
48#define resNotFound -192 /* Can't include <Errors.h> because of Python's "errors.h" */
49
Jack Jansene0581891999-02-07 14:02:03 +000050#define as_Menu(h) ((MenuHandle)h)
Jack Jansena1a0fef1999-12-23 14:32:06 +000051#define as_Resource(h) ((Handle)h)
Jack Jansene0581891999-02-07 14:02:03 +000052
Guido van Rossum17448e21995-01-30 11:53:55 +000053static PyObject *Menu_Error;
54
55/* ------------------------ Object type Menu ------------------------ */
56
57PyTypeObject Menu_Type;
58
59#define MenuObj_Check(x) ((x)->ob_type == &Menu_Type)
60
61typedef struct MenuObject {
62 PyObject_HEAD
63 MenuHandle ob_itself;
64} MenuObject;
65
66PyObject *MenuObj_New(itself)
Guido van Rossum227a4231995-03-10 14:42:57 +000067 MenuHandle itself;
Guido van Rossum17448e21995-01-30 11:53:55 +000068{
69 MenuObject *it;
70 it = PyObject_NEW(MenuObject, &Menu_Type);
71 if (it == NULL) return NULL;
72 it->ob_itself = itself;
73 return (PyObject *)it;
74}
75MenuObj_Convert(v, p_itself)
76 PyObject *v;
77 MenuHandle *p_itself;
78{
79 if (!MenuObj_Check(v))
80 {
81 PyErr_SetString(PyExc_TypeError, "Menu required");
82 return 0;
83 }
84 *p_itself = ((MenuObject *)v)->ob_itself;
85 return 1;
86}
87
88static void MenuObj_dealloc(self)
89 MenuObject *self;
90{
91 /* Cleanup of self->ob_itself goes here */
92 PyMem_DEL(self);
93}
94
95static PyObject *MenuObj_DisposeMenu(_self, _args)
96 MenuObject *_self;
97 PyObject *_args;
98{
99 PyObject *_res = NULL;
100 if (!PyArg_ParseTuple(_args, ""))
101 return NULL;
102 DisposeMenu(_self->ob_itself);
103 Py_INCREF(Py_None);
104 _res = Py_None;
105 return _res;
106}
107
Jack Jansena05ac601999-12-12 21:41:51 +0000108static PyObject *MenuObj_CalcMenuSize(_self, _args)
109 MenuObject *_self;
110 PyObject *_args;
111{
112 PyObject *_res = NULL;
113 if (!PyArg_ParseTuple(_args, ""))
114 return NULL;
115 CalcMenuSize(_self->ob_itself);
116 Py_INCREF(Py_None);
117 _res = Py_None;
118 return _res;
119}
120
121static PyObject *MenuObj_CountMItems(_self, _args)
122 MenuObject *_self;
123 PyObject *_args;
124{
125 PyObject *_res = NULL;
126 short _rv;
127 if (!PyArg_ParseTuple(_args, ""))
128 return NULL;
129 _rv = CountMItems(_self->ob_itself);
130 _res = Py_BuildValue("h",
131 _rv);
132 return _res;
133}
134
135static PyObject *MenuObj_GetMenuFont(_self, _args)
136 MenuObject *_self;
137 PyObject *_args;
138{
139 PyObject *_res = NULL;
140 OSStatus _err;
141 SInt16 outFontID;
142 UInt16 outFontSize;
143 if (!PyArg_ParseTuple(_args, ""))
144 return NULL;
145 _err = GetMenuFont(_self->ob_itself,
146 &outFontID,
147 &outFontSize);
148 if (_err != noErr) return PyMac_Error(_err);
149 _res = Py_BuildValue("hh",
150 outFontID,
151 outFontSize);
152 return _res;
153}
154
155static PyObject *MenuObj_SetMenuFont(_self, _args)
156 MenuObject *_self;
157 PyObject *_args;
158{
159 PyObject *_res = NULL;
160 OSStatus _err;
161 SInt16 inFontID;
162 UInt16 inFontSize;
163 if (!PyArg_ParseTuple(_args, "hh",
164 &inFontID,
165 &inFontSize))
166 return NULL;
167 _err = SetMenuFont(_self->ob_itself,
168 inFontID,
169 inFontSize);
170 if (_err != noErr) return PyMac_Error(_err);
171 Py_INCREF(Py_None);
172 _res = Py_None;
173 return _res;
174}
175
176static PyObject *MenuObj_GetMenuExcludesMarkColumn(_self, _args)
177 MenuObject *_self;
178 PyObject *_args;
179{
180 PyObject *_res = NULL;
181 Boolean _rv;
182 if (!PyArg_ParseTuple(_args, ""))
183 return NULL;
184 _rv = GetMenuExcludesMarkColumn(_self->ob_itself);
185 _res = Py_BuildValue("b",
186 _rv);
187 return _res;
188}
189
190static PyObject *MenuObj_SetMenuExcludesMarkColumn(_self, _args)
191 MenuObject *_self;
192 PyObject *_args;
193{
194 PyObject *_res = NULL;
195 OSStatus _err;
196 Boolean excludesMark;
197 if (!PyArg_ParseTuple(_args, "b",
198 &excludesMark))
199 return NULL;
200 _err = SetMenuExcludesMarkColumn(_self->ob_itself,
201 excludesMark);
202 if (_err != noErr) return PyMac_Error(_err);
203 Py_INCREF(Py_None);
204 _res = Py_None;
205 return _res;
206}
207
Jack Jansen1c4e6141998-04-21 15:23:55 +0000208static PyObject *MenuObj_MacAppendMenu(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +0000209 MenuObject *_self;
210 PyObject *_args;
211{
212 PyObject *_res = NULL;
213 Str255 data;
214 if (!PyArg_ParseTuple(_args, "O&",
215 PyMac_GetStr255, data))
216 return NULL;
Jack Jansen1c4e6141998-04-21 15:23:55 +0000217 MacAppendMenu(_self->ob_itself,
218 data);
Guido van Rossum17448e21995-01-30 11:53:55 +0000219 Py_INCREF(Py_None);
220 _res = Py_None;
221 return _res;
222}
223
Guido van Rossum17448e21995-01-30 11:53:55 +0000224static PyObject *MenuObj_InsertResMenu(_self, _args)
225 MenuObject *_self;
226 PyObject *_args;
227{
228 PyObject *_res = NULL;
229 ResType theType;
230 short afterItem;
231 if (!PyArg_ParseTuple(_args, "O&h",
232 PyMac_GetOSType, &theType,
233 &afterItem))
234 return NULL;
235 InsertResMenu(_self->ob_itself,
236 theType,
237 afterItem);
238 Py_INCREF(Py_None);
239 _res = Py_None;
240 return _res;
241}
242
Jack Jansen21f96871998-02-20 16:02:09 +0000243static PyObject *MenuObj_AppendResMenu(_self, _args)
244 MenuObject *_self;
245 PyObject *_args;
246{
247 PyObject *_res = NULL;
248 ResType theType;
249 if (!PyArg_ParseTuple(_args, "O&",
250 PyMac_GetOSType, &theType))
251 return NULL;
252 AppendResMenu(_self->ob_itself,
253 theType);
254 Py_INCREF(Py_None);
255 _res = Py_None;
256 return _res;
257}
258
Jack Jansen1c4e6141998-04-21 15:23:55 +0000259static PyObject *MenuObj_MacInsertMenuItem(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +0000260 MenuObject *_self;
261 PyObject *_args;
262{
263 PyObject *_res = NULL;
264 Str255 itemString;
265 short afterItem;
266 if (!PyArg_ParseTuple(_args, "O&h",
267 PyMac_GetStr255, itemString,
268 &afterItem))
269 return NULL;
Jack Jansen1c4e6141998-04-21 15:23:55 +0000270 MacInsertMenuItem(_self->ob_itself,
271 itemString,
272 afterItem);
Guido van Rossum17448e21995-01-30 11:53:55 +0000273 Py_INCREF(Py_None);
274 _res = Py_None;
275 return _res;
276}
277
Jack Jansenb81cf9d1995-06-06 13:08:40 +0000278static PyObject *MenuObj_DeleteMenuItem(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +0000279 MenuObject *_self;
280 PyObject *_args;
281{
282 PyObject *_res = NULL;
283 short item;
284 if (!PyArg_ParseTuple(_args, "h",
285 &item))
286 return NULL;
Jack Jansenb81cf9d1995-06-06 13:08:40 +0000287 DeleteMenuItem(_self->ob_itself,
288 item);
Guido van Rossum17448e21995-01-30 11:53:55 +0000289 Py_INCREF(Py_None);
290 _res = Py_None;
291 return _res;
292}
293
Jack Jansena05ac601999-12-12 21:41:51 +0000294static PyObject *MenuObj_InsertFontResMenu(_self, _args)
295 MenuObject *_self;
296 PyObject *_args;
297{
298 PyObject *_res = NULL;
299 short afterItem;
300 short scriptFilter;
301 if (!PyArg_ParseTuple(_args, "hh",
302 &afterItem,
303 &scriptFilter))
304 return NULL;
305 InsertFontResMenu(_self->ob_itself,
306 afterItem,
307 scriptFilter);
308 Py_INCREF(Py_None);
309 _res = Py_None;
310 return _res;
311}
312
313static PyObject *MenuObj_InsertIntlResMenu(_self, _args)
314 MenuObject *_self;
315 PyObject *_args;
316{
317 PyObject *_res = NULL;
318 ResType theType;
319 short afterItem;
320 short scriptFilter;
321 if (!PyArg_ParseTuple(_args, "O&hh",
322 PyMac_GetOSType, &theType,
323 &afterItem,
324 &scriptFilter))
325 return NULL;
326 InsertIntlResMenu(_self->ob_itself,
327 theType,
328 afterItem,
329 scriptFilter);
330 Py_INCREF(Py_None);
331 _res = Py_None;
332 return _res;
333}
334
335static PyObject *MenuObj_AppendMenuItemText(_self, _args)
336 MenuObject *_self;
337 PyObject *_args;
338{
339 PyObject *_res = NULL;
340 OSStatus _err;
341 Str255 inString;
342 if (!PyArg_ParseTuple(_args, "O&",
343 PyMac_GetStr255, inString))
344 return NULL;
345 _err = AppendMenuItemText(_self->ob_itself,
346 inString);
347 if (_err != noErr) return PyMac_Error(_err);
348 Py_INCREF(Py_None);
349 _res = Py_None;
350 return _res;
351}
352
353static PyObject *MenuObj_InsertMenuItemText(_self, _args)
354 MenuObject *_self;
355 PyObject *_args;
356{
357 PyObject *_res = NULL;
358 OSStatus _err;
359 Str255 inString;
360 UInt16 afterItem;
361 if (!PyArg_ParseTuple(_args, "O&h",
362 PyMac_GetStr255, inString,
363 &afterItem))
364 return NULL;
365 _err = InsertMenuItemText(_self->ob_itself,
366 inString,
367 afterItem);
368 if (_err != noErr) return PyMac_Error(_err);
369 Py_INCREF(Py_None);
370 _res = Py_None;
371 return _res;
372}
373
374static PyObject *MenuObj_PopUpMenuSelect(_self, _args)
375 MenuObject *_self;
376 PyObject *_args;
377{
378 PyObject *_res = NULL;
379 long _rv;
380 short top;
381 short left;
382 short popUpItem;
383 if (!PyArg_ParseTuple(_args, "hhh",
384 &top,
385 &left,
386 &popUpItem))
387 return NULL;
388 _rv = PopUpMenuSelect(_self->ob_itself,
389 top,
390 left,
391 popUpItem);
392 _res = Py_BuildValue("l",
393 _rv);
394 return _res;
395}
396
397static PyObject *MenuObj_MacInsertMenu(_self, _args)
398 MenuObject *_self;
399 PyObject *_args;
400{
401 PyObject *_res = NULL;
402 short beforeID;
403 if (!PyArg_ParseTuple(_args, "h",
404 &beforeID))
405 return NULL;
406 MacInsertMenu(_self->ob_itself,
407 beforeID);
408 Py_INCREF(Py_None);
409 _res = Py_None;
410 return _res;
411}
412
413static PyObject *MenuObj_CheckItem(_self, _args)
414 MenuObject *_self;
415 PyObject *_args;
416{
417 PyObject *_res = NULL;
418 short item;
419 Boolean checked;
420 if (!PyArg_ParseTuple(_args, "hb",
421 &item,
422 &checked))
423 return NULL;
424 CheckItem(_self->ob_itself,
425 item,
426 checked);
427 Py_INCREF(Py_None);
428 _res = Py_None;
429 return _res;
430}
431
Jack Jansenb81cf9d1995-06-06 13:08:40 +0000432static PyObject *MenuObj_SetMenuItemText(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +0000433 MenuObject *_self;
434 PyObject *_args;
435{
436 PyObject *_res = NULL;
437 short item;
438 Str255 itemString;
439 if (!PyArg_ParseTuple(_args, "hO&",
440 &item,
441 PyMac_GetStr255, itemString))
442 return NULL;
Jack Jansenb81cf9d1995-06-06 13:08:40 +0000443 SetMenuItemText(_self->ob_itself,
444 item,
445 itemString);
Guido van Rossum17448e21995-01-30 11:53:55 +0000446 Py_INCREF(Py_None);
447 _res = Py_None;
448 return _res;
449}
450
Jack Jansenb81cf9d1995-06-06 13:08:40 +0000451static PyObject *MenuObj_GetMenuItemText(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +0000452 MenuObject *_self;
453 PyObject *_args;
454{
455 PyObject *_res = NULL;
456 short item;
457 Str255 itemString;
458 if (!PyArg_ParseTuple(_args, "h",
459 &item))
460 return NULL;
Jack Jansenb81cf9d1995-06-06 13:08:40 +0000461 GetMenuItemText(_self->ob_itself,
462 item,
463 itemString);
Guido van Rossum17448e21995-01-30 11:53:55 +0000464 _res = Py_BuildValue("O&",
465 PyMac_BuildStr255, itemString);
466 return _res;
467}
468
Guido van Rossum17448e21995-01-30 11:53:55 +0000469static PyObject *MenuObj_SetItemMark(_self, _args)
470 MenuObject *_self;
471 PyObject *_args;
472{
473 PyObject *_res = NULL;
474 short item;
Jack Jansen21f96871998-02-20 16:02:09 +0000475 CharParameter markChar;
Guido van Rossum17448e21995-01-30 11:53:55 +0000476 if (!PyArg_ParseTuple(_args, "hh",
477 &item,
478 &markChar))
479 return NULL;
480 SetItemMark(_self->ob_itself,
481 item,
482 markChar);
483 Py_INCREF(Py_None);
484 _res = Py_None;
485 return _res;
486}
487
488static PyObject *MenuObj_GetItemMark(_self, _args)
489 MenuObject *_self;
490 PyObject *_args;
491{
492 PyObject *_res = NULL;
493 short item;
Jack Jansen21f96871998-02-20 16:02:09 +0000494 CharParameter markChar;
Guido van Rossum17448e21995-01-30 11:53:55 +0000495 if (!PyArg_ParseTuple(_args, "h",
496 &item))
497 return NULL;
498 GetItemMark(_self->ob_itself,
499 item,
500 &markChar);
501 _res = Py_BuildValue("h",
502 markChar);
503 return _res;
504}
505
Jack Jansen21f96871998-02-20 16:02:09 +0000506static PyObject *MenuObj_SetItemCmd(_self, _args)
507 MenuObject *_self;
508 PyObject *_args;
509{
510 PyObject *_res = NULL;
511 short item;
512 CharParameter cmdChar;
513 if (!PyArg_ParseTuple(_args, "hh",
514 &item,
515 &cmdChar))
516 return NULL;
517 SetItemCmd(_self->ob_itself,
518 item,
519 cmdChar);
520 Py_INCREF(Py_None);
521 _res = Py_None;
522 return _res;
523}
524
525static PyObject *MenuObj_GetItemCmd(_self, _args)
526 MenuObject *_self;
527 PyObject *_args;
528{
529 PyObject *_res = NULL;
530 short item;
531 CharParameter cmdChar;
532 if (!PyArg_ParseTuple(_args, "h",
533 &item))
534 return NULL;
535 GetItemCmd(_self->ob_itself,
536 item,
537 &cmdChar);
538 _res = Py_BuildValue("h",
539 cmdChar);
540 return _res;
541}
542
Guido van Rossum17448e21995-01-30 11:53:55 +0000543static PyObject *MenuObj_SetItemIcon(_self, _args)
544 MenuObject *_self;
545 PyObject *_args;
546{
547 PyObject *_res = NULL;
548 short item;
549 short iconIndex;
550 if (!PyArg_ParseTuple(_args, "hh",
551 &item,
552 &iconIndex))
553 return NULL;
554 SetItemIcon(_self->ob_itself,
555 item,
556 iconIndex);
557 Py_INCREF(Py_None);
558 _res = Py_None;
559 return _res;
560}
561
562static PyObject *MenuObj_GetItemIcon(_self, _args)
563 MenuObject *_self;
564 PyObject *_args;
565{
566 PyObject *_res = NULL;
567 short item;
568 short iconIndex;
569 if (!PyArg_ParseTuple(_args, "h",
570 &item))
571 return NULL;
572 GetItemIcon(_self->ob_itself,
573 item,
574 &iconIndex);
575 _res = Py_BuildValue("h",
576 iconIndex);
577 return _res;
578}
579
580static PyObject *MenuObj_SetItemStyle(_self, _args)
581 MenuObject *_self;
582 PyObject *_args;
583{
584 PyObject *_res = NULL;
585 short item;
Jack Jansend6b6d881998-02-25 15:45:21 +0000586 StyleParameter chStyle;
Guido van Rossum17448e21995-01-30 11:53:55 +0000587 if (!PyArg_ParseTuple(_args, "hh",
588 &item,
589 &chStyle))
590 return NULL;
591 SetItemStyle(_self->ob_itself,
592 item,
593 chStyle);
594 Py_INCREF(Py_None);
595 _res = Py_None;
596 return _res;
597}
598
599static PyObject *MenuObj_GetItemStyle(_self, _args)
600 MenuObject *_self;
601 PyObject *_args;
602{
603 PyObject *_res = NULL;
604 short item;
Jack Jansen7d0bc831995-06-09 20:56:31 +0000605 Style chStyle;
Guido van Rossum17448e21995-01-30 11:53:55 +0000606 if (!PyArg_ParseTuple(_args, "h",
607 &item))
608 return NULL;
609 GetItemStyle(_self->ob_itself,
610 item,
611 &chStyle);
612 _res = Py_BuildValue("b",
613 chStyle);
614 return _res;
615}
616
Jack Jansen21f96871998-02-20 16:02:09 +0000617static PyObject *MenuObj_DisableItem(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +0000618 MenuObject *_self;
619 PyObject *_args;
620{
621 PyObject *_res = NULL;
622 short item;
Guido van Rossum17448e21995-01-30 11:53:55 +0000623 if (!PyArg_ParseTuple(_args, "h",
624 &item))
625 return NULL;
Jack Jansen21f96871998-02-20 16:02:09 +0000626 DisableItem(_self->ob_itself,
627 item);
628 Py_INCREF(Py_None);
629 _res = Py_None;
Guido van Rossum17448e21995-01-30 11:53:55 +0000630 return _res;
631}
632
Jack Jansen21f96871998-02-20 16:02:09 +0000633static PyObject *MenuObj_EnableItem(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +0000634 MenuObject *_self;
635 PyObject *_args;
636{
637 PyObject *_res = NULL;
638 short item;
Jack Jansen21f96871998-02-20 16:02:09 +0000639 if (!PyArg_ParseTuple(_args, "h",
640 &item))
Guido van Rossum17448e21995-01-30 11:53:55 +0000641 return NULL;
Jack Jansen21f96871998-02-20 16:02:09 +0000642 EnableItem(_self->ob_itself,
643 item);
Guido van Rossum17448e21995-01-30 11:53:55 +0000644 Py_INCREF(Py_None);
645 _res = Py_None;
646 return _res;
647}
648
Jack Jansen21f96871998-02-20 16:02:09 +0000649static PyObject *MenuObj_SetMenuItemCommandID(_self, _args)
650 MenuObject *_self;
651 PyObject *_args;
652{
653 PyObject *_res = NULL;
654 OSErr _err;
655 SInt16 inItem;
656 UInt32 inCommandID;
657 if (!PyArg_ParseTuple(_args, "hl",
658 &inItem,
659 &inCommandID))
660 return NULL;
661 _err = SetMenuItemCommandID(_self->ob_itself,
662 inItem,
663 inCommandID);
664 if (_err != noErr) return PyMac_Error(_err);
665 Py_INCREF(Py_None);
666 _res = Py_None;
667 return _res;
668}
669
670static PyObject *MenuObj_GetMenuItemCommandID(_self, _args)
671 MenuObject *_self;
672 PyObject *_args;
673{
674 PyObject *_res = NULL;
675 OSErr _err;
676 SInt16 inItem;
677 UInt32 outCommandID;
678 if (!PyArg_ParseTuple(_args, "h",
679 &inItem))
680 return NULL;
681 _err = GetMenuItemCommandID(_self->ob_itself,
682 inItem,
683 &outCommandID);
684 if (_err != noErr) return PyMac_Error(_err);
685 _res = Py_BuildValue("l",
686 outCommandID);
687 return _res;
688}
689
690static PyObject *MenuObj_SetMenuItemModifiers(_self, _args)
691 MenuObject *_self;
692 PyObject *_args;
693{
694 PyObject *_res = NULL;
695 OSErr _err;
696 SInt16 inItem;
697 UInt8 inModifiers;
698 if (!PyArg_ParseTuple(_args, "hb",
699 &inItem,
700 &inModifiers))
701 return NULL;
702 _err = SetMenuItemModifiers(_self->ob_itself,
703 inItem,
704 inModifiers);
705 if (_err != noErr) return PyMac_Error(_err);
706 Py_INCREF(Py_None);
707 _res = Py_None;
708 return _res;
709}
710
711static PyObject *MenuObj_GetMenuItemModifiers(_self, _args)
712 MenuObject *_self;
713 PyObject *_args;
714{
715 PyObject *_res = NULL;
716 OSErr _err;
717 SInt16 inItem;
718 UInt8 outModifiers;
719 if (!PyArg_ParseTuple(_args, "h",
720 &inItem))
721 return NULL;
722 _err = GetMenuItemModifiers(_self->ob_itself,
723 inItem,
724 &outModifiers);
725 if (_err != noErr) return PyMac_Error(_err);
726 _res = Py_BuildValue("b",
727 outModifiers);
728 return _res;
729}
730
731static PyObject *MenuObj_SetMenuItemIconHandle(_self, _args)
732 MenuObject *_self;
733 PyObject *_args;
734{
735 PyObject *_res = NULL;
736 OSErr _err;
737 SInt16 inItem;
738 UInt8 inIconType;
739 Handle inIconHandle;
740 if (!PyArg_ParseTuple(_args, "hbO&",
741 &inItem,
742 &inIconType,
743 ResObj_Convert, &inIconHandle))
744 return NULL;
745 _err = SetMenuItemIconHandle(_self->ob_itself,
746 inItem,
747 inIconType,
748 inIconHandle);
749 if (_err != noErr) return PyMac_Error(_err);
750 Py_INCREF(Py_None);
751 _res = Py_None;
752 return _res;
753}
754
755static PyObject *MenuObj_GetMenuItemIconHandle(_self, _args)
756 MenuObject *_self;
757 PyObject *_args;
758{
759 PyObject *_res = NULL;
760 OSErr _err;
761 SInt16 inItem;
762 UInt8 outIconType;
763 Handle outIconHandle;
764 if (!PyArg_ParseTuple(_args, "h",
765 &inItem))
766 return NULL;
767 _err = GetMenuItemIconHandle(_self->ob_itself,
768 inItem,
769 &outIconType,
770 &outIconHandle);
771 if (_err != noErr) return PyMac_Error(_err);
772 _res = Py_BuildValue("bO&",
773 outIconType,
774 ResObj_New, outIconHandle);
775 return _res;
776}
777
778static PyObject *MenuObj_SetMenuItemTextEncoding(_self, _args)
779 MenuObject *_self;
780 PyObject *_args;
781{
782 PyObject *_res = NULL;
783 OSErr _err;
784 SInt16 inItem;
785 TextEncoding inScriptID;
786 if (!PyArg_ParseTuple(_args, "hl",
787 &inItem,
788 &inScriptID))
789 return NULL;
790 _err = SetMenuItemTextEncoding(_self->ob_itself,
791 inItem,
792 inScriptID);
793 if (_err != noErr) return PyMac_Error(_err);
794 Py_INCREF(Py_None);
795 _res = Py_None;
796 return _res;
797}
798
799static PyObject *MenuObj_GetMenuItemTextEncoding(_self, _args)
800 MenuObject *_self;
801 PyObject *_args;
802{
803 PyObject *_res = NULL;
804 OSErr _err;
805 SInt16 inItem;
806 TextEncoding outScriptID;
807 if (!PyArg_ParseTuple(_args, "h",
808 &inItem))
809 return NULL;
810 _err = GetMenuItemTextEncoding(_self->ob_itself,
811 inItem,
812 &outScriptID);
813 if (_err != noErr) return PyMac_Error(_err);
814 _res = Py_BuildValue("l",
815 outScriptID);
816 return _res;
817}
818
819static PyObject *MenuObj_SetMenuItemHierarchicalID(_self, _args)
820 MenuObject *_self;
821 PyObject *_args;
822{
823 PyObject *_res = NULL;
824 OSErr _err;
825 SInt16 inItem;
826 SInt16 inHierID;
827 if (!PyArg_ParseTuple(_args, "hh",
828 &inItem,
829 &inHierID))
830 return NULL;
831 _err = SetMenuItemHierarchicalID(_self->ob_itself,
832 inItem,
833 inHierID);
834 if (_err != noErr) return PyMac_Error(_err);
835 Py_INCREF(Py_None);
836 _res = Py_None;
837 return _res;
838}
839
840static PyObject *MenuObj_GetMenuItemHierarchicalID(_self, _args)
841 MenuObject *_self;
842 PyObject *_args;
843{
844 PyObject *_res = NULL;
845 OSErr _err;
846 SInt16 inItem;
847 SInt16 outHierID;
848 if (!PyArg_ParseTuple(_args, "h",
849 &inItem))
850 return NULL;
851 _err = GetMenuItemHierarchicalID(_self->ob_itself,
852 inItem,
853 &outHierID);
854 if (_err != noErr) return PyMac_Error(_err);
855 _res = Py_BuildValue("h",
856 outHierID);
857 return _res;
858}
859
860static PyObject *MenuObj_SetMenuItemFontID(_self, _args)
861 MenuObject *_self;
862 PyObject *_args;
863{
864 PyObject *_res = NULL;
865 OSErr _err;
866 SInt16 inItem;
867 SInt16 inFontID;
868 if (!PyArg_ParseTuple(_args, "hh",
869 &inItem,
870 &inFontID))
871 return NULL;
872 _err = SetMenuItemFontID(_self->ob_itself,
873 inItem,
874 inFontID);
875 if (_err != noErr) return PyMac_Error(_err);
876 Py_INCREF(Py_None);
877 _res = Py_None;
878 return _res;
879}
880
881static PyObject *MenuObj_GetMenuItemFontID(_self, _args)
882 MenuObject *_self;
883 PyObject *_args;
884{
885 PyObject *_res = NULL;
886 OSErr _err;
887 SInt16 inItem;
888 SInt16 outFontID;
889 if (!PyArg_ParseTuple(_args, "h",
890 &inItem))
891 return NULL;
892 _err = GetMenuItemFontID(_self->ob_itself,
893 inItem,
894 &outFontID);
895 if (_err != noErr) return PyMac_Error(_err);
896 _res = Py_BuildValue("h",
897 outFontID);
898 return _res;
899}
900
901static PyObject *MenuObj_SetMenuItemRefCon(_self, _args)
902 MenuObject *_self;
903 PyObject *_args;
904{
905 PyObject *_res = NULL;
906 OSErr _err;
907 SInt16 inItem;
908 UInt32 inRefCon;
909 if (!PyArg_ParseTuple(_args, "hl",
910 &inItem,
911 &inRefCon))
912 return NULL;
913 _err = SetMenuItemRefCon(_self->ob_itself,
914 inItem,
915 inRefCon);
916 if (_err != noErr) return PyMac_Error(_err);
917 Py_INCREF(Py_None);
918 _res = Py_None;
919 return _res;
920}
921
922static PyObject *MenuObj_GetMenuItemRefCon(_self, _args)
923 MenuObject *_self;
924 PyObject *_args;
925{
926 PyObject *_res = NULL;
927 OSErr _err;
928 SInt16 inItem;
929 UInt32 outRefCon;
930 if (!PyArg_ParseTuple(_args, "h",
931 &inItem))
932 return NULL;
933 _err = GetMenuItemRefCon(_self->ob_itself,
934 inItem,
935 &outRefCon);
936 if (_err != noErr) return PyMac_Error(_err);
937 _res = Py_BuildValue("l",
938 outRefCon);
939 return _res;
940}
941
942static PyObject *MenuObj_SetMenuItemRefCon2(_self, _args)
943 MenuObject *_self;
944 PyObject *_args;
945{
946 PyObject *_res = NULL;
947 OSErr _err;
948 SInt16 inItem;
949 UInt32 inRefCon2;
950 if (!PyArg_ParseTuple(_args, "hl",
951 &inItem,
952 &inRefCon2))
953 return NULL;
954 _err = SetMenuItemRefCon2(_self->ob_itself,
955 inItem,
956 inRefCon2);
957 if (_err != noErr) return PyMac_Error(_err);
958 Py_INCREF(Py_None);
959 _res = Py_None;
960 return _res;
961}
962
963static PyObject *MenuObj_GetMenuItemRefCon2(_self, _args)
964 MenuObject *_self;
965 PyObject *_args;
966{
967 PyObject *_res = NULL;
968 OSErr _err;
969 SInt16 inItem;
970 UInt32 outRefCon2;
971 if (!PyArg_ParseTuple(_args, "h",
972 &inItem))
973 return NULL;
974 _err = GetMenuItemRefCon2(_self->ob_itself,
975 inItem,
976 &outRefCon2);
977 if (_err != noErr) return PyMac_Error(_err);
978 _res = Py_BuildValue("l",
979 outRefCon2);
980 return _res;
981}
982
983static PyObject *MenuObj_SetMenuItemKeyGlyph(_self, _args)
984 MenuObject *_self;
985 PyObject *_args;
986{
987 PyObject *_res = NULL;
988 OSErr _err;
989 SInt16 inItem;
990 SInt16 inGlyph;
991 if (!PyArg_ParseTuple(_args, "hh",
992 &inItem,
993 &inGlyph))
994 return NULL;
995 _err = SetMenuItemKeyGlyph(_self->ob_itself,
996 inItem,
997 inGlyph);
998 if (_err != noErr) return PyMac_Error(_err);
999 Py_INCREF(Py_None);
1000 _res = Py_None;
1001 return _res;
1002}
1003
1004static PyObject *MenuObj_GetMenuItemKeyGlyph(_self, _args)
1005 MenuObject *_self;
1006 PyObject *_args;
1007{
1008 PyObject *_res = NULL;
1009 OSErr _err;
1010 SInt16 inItem;
1011 SInt16 outGlyph;
1012 if (!PyArg_ParseTuple(_args, "h",
1013 &inItem))
1014 return NULL;
1015 _err = GetMenuItemKeyGlyph(_self->ob_itself,
1016 inItem,
1017 &outGlyph);
1018 if (_err != noErr) return PyMac_Error(_err);
1019 _res = Py_BuildValue("h",
1020 outGlyph);
1021 return _res;
1022}
1023
Jack Jansena05ac601999-12-12 21:41:51 +00001024static PyObject *MenuObj_MacEnableMenuItem(_self, _args)
1025 MenuObject *_self;
1026 PyObject *_args;
1027{
1028 PyObject *_res = NULL;
1029 UInt16 item;
1030 if (!PyArg_ParseTuple(_args, "h",
1031 &item))
1032 return NULL;
1033 MacEnableMenuItem(_self->ob_itself,
1034 item);
1035 Py_INCREF(Py_None);
1036 _res = Py_None;
1037 return _res;
1038}
1039
1040static PyObject *MenuObj_DisableMenuItem(_self, _args)
1041 MenuObject *_self;
1042 PyObject *_args;
1043{
1044 PyObject *_res = NULL;
1045 UInt16 item;
1046 if (!PyArg_ParseTuple(_args, "h",
1047 &item))
1048 return NULL;
1049 DisableMenuItem(_self->ob_itself,
1050 item);
1051 Py_INCREF(Py_None);
1052 _res = Py_None;
1053 return _res;
1054}
1055
1056static PyObject *MenuObj_IsMenuItemEnabled(_self, _args)
1057 MenuObject *_self;
1058 PyObject *_args;
1059{
1060 PyObject *_res = NULL;
1061 Boolean _rv;
1062 UInt16 item;
1063 if (!PyArg_ParseTuple(_args, "h",
1064 &item))
1065 return NULL;
1066 _rv = IsMenuItemEnabled(_self->ob_itself,
1067 item);
1068 _res = Py_BuildValue("b",
1069 _rv);
1070 return _res;
1071}
1072
1073static PyObject *MenuObj_EnableMenuItemIcon(_self, _args)
1074 MenuObject *_self;
1075 PyObject *_args;
1076{
1077 PyObject *_res = NULL;
1078 UInt16 item;
1079 if (!PyArg_ParseTuple(_args, "h",
1080 &item))
1081 return NULL;
1082 EnableMenuItemIcon(_self->ob_itself,
1083 item);
1084 Py_INCREF(Py_None);
1085 _res = Py_None;
1086 return _res;
1087}
1088
1089static PyObject *MenuObj_DisableMenuItemIcon(_self, _args)
1090 MenuObject *_self;
1091 PyObject *_args;
1092{
1093 PyObject *_res = NULL;
1094 UInt16 item;
1095 if (!PyArg_ParseTuple(_args, "h",
1096 &item))
1097 return NULL;
1098 DisableMenuItemIcon(_self->ob_itself,
1099 item);
1100 Py_INCREF(Py_None);
1101 _res = Py_None;
1102 return _res;
1103}
1104
1105static PyObject *MenuObj_IsMenuItemIconEnabled(_self, _args)
1106 MenuObject *_self;
1107 PyObject *_args;
1108{
1109 PyObject *_res = NULL;
1110 Boolean _rv;
1111 UInt16 item;
1112 if (!PyArg_ParseTuple(_args, "h",
1113 &item))
1114 return NULL;
1115 _rv = IsMenuItemIconEnabled(_self->ob_itself,
1116 item);
1117 _res = Py_BuildValue("b",
1118 _rv);
1119 return _res;
1120}
1121
Jack Jansena1772281995-06-18 20:17:27 +00001122static PyObject *MenuObj_as_Resource(_self, _args)
1123 MenuObject *_self;
1124 PyObject *_args;
1125{
1126 PyObject *_res = NULL;
Jack Jansena1a0fef1999-12-23 14:32:06 +00001127 Handle _rv;
1128 if (!PyArg_ParseTuple(_args, ""))
1129 return NULL;
1130 _rv = as_Resource(_self->ob_itself);
1131 _res = Py_BuildValue("O&",
1132 ResObj_New, _rv);
1133 return _res;
Jack Jansena1772281995-06-18 20:17:27 +00001134}
1135
Jack Jansene180d991998-04-24 10:28:20 +00001136static PyObject *MenuObj_AppendMenu(_self, _args)
1137 MenuObject *_self;
1138 PyObject *_args;
1139{
1140 PyObject *_res = NULL;
1141 Str255 data;
1142 if (!PyArg_ParseTuple(_args, "O&",
1143 PyMac_GetStr255, data))
1144 return NULL;
1145 AppendMenu(_self->ob_itself,
1146 data);
1147 Py_INCREF(Py_None);
1148 _res = Py_None;
1149 return _res;
1150}
1151
1152static PyObject *MenuObj_InsertMenu(_self, _args)
1153 MenuObject *_self;
1154 PyObject *_args;
1155{
1156 PyObject *_res = NULL;
1157 short beforeID;
1158 if (!PyArg_ParseTuple(_args, "h",
1159 &beforeID))
1160 return NULL;
1161 InsertMenu(_self->ob_itself,
1162 beforeID);
1163 Py_INCREF(Py_None);
1164 _res = Py_None;
1165 return _res;
1166}
1167
1168static PyObject *MenuObj_InsertMenuItem(_self, _args)
1169 MenuObject *_self;
1170 PyObject *_args;
1171{
1172 PyObject *_res = NULL;
1173 Str255 itemString;
1174 short afterItem;
1175 if (!PyArg_ParseTuple(_args, "O&h",
1176 PyMac_GetStr255, itemString,
1177 &afterItem))
1178 return NULL;
1179 InsertMenuItem(_self->ob_itself,
1180 itemString,
1181 afterItem);
1182 Py_INCREF(Py_None);
1183 _res = Py_None;
1184 return _res;
1185}
1186
Guido van Rossum17448e21995-01-30 11:53:55 +00001187static PyMethodDef MenuObj_methods[] = {
1188 {"DisposeMenu", (PyCFunction)MenuObj_DisposeMenu, 1,
1189 "() -> None"},
Jack Jansena05ac601999-12-12 21:41:51 +00001190 {"CalcMenuSize", (PyCFunction)MenuObj_CalcMenuSize, 1,
1191 "() -> None"},
1192 {"CountMItems", (PyCFunction)MenuObj_CountMItems, 1,
1193 "() -> (short _rv)"},
1194 {"GetMenuFont", (PyCFunction)MenuObj_GetMenuFont, 1,
1195 "() -> (SInt16 outFontID, UInt16 outFontSize)"},
1196 {"SetMenuFont", (PyCFunction)MenuObj_SetMenuFont, 1,
1197 "(SInt16 inFontID, UInt16 inFontSize) -> None"},
1198 {"GetMenuExcludesMarkColumn", (PyCFunction)MenuObj_GetMenuExcludesMarkColumn, 1,
1199 "() -> (Boolean _rv)"},
1200 {"SetMenuExcludesMarkColumn", (PyCFunction)MenuObj_SetMenuExcludesMarkColumn, 1,
1201 "(Boolean excludesMark) -> None"},
Jack Jansen1c4e6141998-04-21 15:23:55 +00001202 {"MacAppendMenu", (PyCFunction)MenuObj_MacAppendMenu, 1,
Guido van Rossum17448e21995-01-30 11:53:55 +00001203 "(Str255 data) -> None"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001204 {"InsertResMenu", (PyCFunction)MenuObj_InsertResMenu, 1,
1205 "(ResType theType, short afterItem) -> None"},
Jack Jansen21f96871998-02-20 16:02:09 +00001206 {"AppendResMenu", (PyCFunction)MenuObj_AppendResMenu, 1,
1207 "(ResType theType) -> None"},
Jack Jansen1c4e6141998-04-21 15:23:55 +00001208 {"MacInsertMenuItem", (PyCFunction)MenuObj_MacInsertMenuItem, 1,
Guido van Rossum17448e21995-01-30 11:53:55 +00001209 "(Str255 itemString, short afterItem) -> None"},
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001210 {"DeleteMenuItem", (PyCFunction)MenuObj_DeleteMenuItem, 1,
Guido van Rossum17448e21995-01-30 11:53:55 +00001211 "(short item) -> None"},
Jack Jansena05ac601999-12-12 21:41:51 +00001212 {"InsertFontResMenu", (PyCFunction)MenuObj_InsertFontResMenu, 1,
1213 "(short afterItem, short scriptFilter) -> None"},
1214 {"InsertIntlResMenu", (PyCFunction)MenuObj_InsertIntlResMenu, 1,
1215 "(ResType theType, short afterItem, short scriptFilter) -> None"},
1216 {"AppendMenuItemText", (PyCFunction)MenuObj_AppendMenuItemText, 1,
1217 "(Str255 inString) -> None"},
1218 {"InsertMenuItemText", (PyCFunction)MenuObj_InsertMenuItemText, 1,
1219 "(Str255 inString, UInt16 afterItem) -> None"},
1220 {"PopUpMenuSelect", (PyCFunction)MenuObj_PopUpMenuSelect, 1,
1221 "(short top, short left, short popUpItem) -> (long _rv)"},
1222 {"MacInsertMenu", (PyCFunction)MenuObj_MacInsertMenu, 1,
1223 "(short beforeID) -> None"},
1224 {"CheckItem", (PyCFunction)MenuObj_CheckItem, 1,
1225 "(short item, Boolean checked) -> None"},
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001226 {"SetMenuItemText", (PyCFunction)MenuObj_SetMenuItemText, 1,
Guido van Rossum17448e21995-01-30 11:53:55 +00001227 "(short item, Str255 itemString) -> None"},
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001228 {"GetMenuItemText", (PyCFunction)MenuObj_GetMenuItemText, 1,
Guido van Rossum17448e21995-01-30 11:53:55 +00001229 "(short item) -> (Str255 itemString)"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001230 {"SetItemMark", (PyCFunction)MenuObj_SetItemMark, 1,
Jack Jansen21f96871998-02-20 16:02:09 +00001231 "(short item, CharParameter markChar) -> None"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001232 {"GetItemMark", (PyCFunction)MenuObj_GetItemMark, 1,
Jack Jansen21f96871998-02-20 16:02:09 +00001233 "(short item) -> (CharParameter markChar)"},
1234 {"SetItemCmd", (PyCFunction)MenuObj_SetItemCmd, 1,
1235 "(short item, CharParameter cmdChar) -> None"},
1236 {"GetItemCmd", (PyCFunction)MenuObj_GetItemCmd, 1,
1237 "(short item) -> (CharParameter cmdChar)"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001238 {"SetItemIcon", (PyCFunction)MenuObj_SetItemIcon, 1,
1239 "(short item, short iconIndex) -> None"},
1240 {"GetItemIcon", (PyCFunction)MenuObj_GetItemIcon, 1,
1241 "(short item) -> (short iconIndex)"},
1242 {"SetItemStyle", (PyCFunction)MenuObj_SetItemStyle, 1,
Jack Jansend6b6d881998-02-25 15:45:21 +00001243 "(short item, StyleParameter chStyle) -> None"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001244 {"GetItemStyle", (PyCFunction)MenuObj_GetItemStyle, 1,
Jack Jansen7d0bc831995-06-09 20:56:31 +00001245 "(short item) -> (Style chStyle)"},
Jack Jansen21f96871998-02-20 16:02:09 +00001246 {"DisableItem", (PyCFunction)MenuObj_DisableItem, 1,
1247 "(short item) -> None"},
1248 {"EnableItem", (PyCFunction)MenuObj_EnableItem, 1,
1249 "(short item) -> None"},
Jack Jansen21f96871998-02-20 16:02:09 +00001250 {"SetMenuItemCommandID", (PyCFunction)MenuObj_SetMenuItemCommandID, 1,
1251 "(SInt16 inItem, UInt32 inCommandID) -> None"},
1252 {"GetMenuItemCommandID", (PyCFunction)MenuObj_GetMenuItemCommandID, 1,
1253 "(SInt16 inItem) -> (UInt32 outCommandID)"},
1254 {"SetMenuItemModifiers", (PyCFunction)MenuObj_SetMenuItemModifiers, 1,
1255 "(SInt16 inItem, UInt8 inModifiers) -> None"},
1256 {"GetMenuItemModifiers", (PyCFunction)MenuObj_GetMenuItemModifiers, 1,
1257 "(SInt16 inItem) -> (UInt8 outModifiers)"},
1258 {"SetMenuItemIconHandle", (PyCFunction)MenuObj_SetMenuItemIconHandle, 1,
1259 "(SInt16 inItem, UInt8 inIconType, Handle inIconHandle) -> None"},
1260 {"GetMenuItemIconHandle", (PyCFunction)MenuObj_GetMenuItemIconHandle, 1,
1261 "(SInt16 inItem) -> (UInt8 outIconType, Handle outIconHandle)"},
1262 {"SetMenuItemTextEncoding", (PyCFunction)MenuObj_SetMenuItemTextEncoding, 1,
1263 "(SInt16 inItem, TextEncoding inScriptID) -> None"},
1264 {"GetMenuItemTextEncoding", (PyCFunction)MenuObj_GetMenuItemTextEncoding, 1,
1265 "(SInt16 inItem) -> (TextEncoding outScriptID)"},
1266 {"SetMenuItemHierarchicalID", (PyCFunction)MenuObj_SetMenuItemHierarchicalID, 1,
1267 "(SInt16 inItem, SInt16 inHierID) -> None"},
1268 {"GetMenuItemHierarchicalID", (PyCFunction)MenuObj_GetMenuItemHierarchicalID, 1,
1269 "(SInt16 inItem) -> (SInt16 outHierID)"},
1270 {"SetMenuItemFontID", (PyCFunction)MenuObj_SetMenuItemFontID, 1,
1271 "(SInt16 inItem, SInt16 inFontID) -> None"},
1272 {"GetMenuItemFontID", (PyCFunction)MenuObj_GetMenuItemFontID, 1,
1273 "(SInt16 inItem) -> (SInt16 outFontID)"},
1274 {"SetMenuItemRefCon", (PyCFunction)MenuObj_SetMenuItemRefCon, 1,
1275 "(SInt16 inItem, UInt32 inRefCon) -> None"},
1276 {"GetMenuItemRefCon", (PyCFunction)MenuObj_GetMenuItemRefCon, 1,
1277 "(SInt16 inItem) -> (UInt32 outRefCon)"},
1278 {"SetMenuItemRefCon2", (PyCFunction)MenuObj_SetMenuItemRefCon2, 1,
1279 "(SInt16 inItem, UInt32 inRefCon2) -> None"},
1280 {"GetMenuItemRefCon2", (PyCFunction)MenuObj_GetMenuItemRefCon2, 1,
1281 "(SInt16 inItem) -> (UInt32 outRefCon2)"},
1282 {"SetMenuItemKeyGlyph", (PyCFunction)MenuObj_SetMenuItemKeyGlyph, 1,
1283 "(SInt16 inItem, SInt16 inGlyph) -> None"},
1284 {"GetMenuItemKeyGlyph", (PyCFunction)MenuObj_GetMenuItemKeyGlyph, 1,
1285 "(SInt16 inItem) -> (SInt16 outGlyph)"},
Jack Jansena05ac601999-12-12 21:41:51 +00001286 {"MacEnableMenuItem", (PyCFunction)MenuObj_MacEnableMenuItem, 1,
1287 "(UInt16 item) -> None"},
1288 {"DisableMenuItem", (PyCFunction)MenuObj_DisableMenuItem, 1,
1289 "(UInt16 item) -> None"},
1290 {"IsMenuItemEnabled", (PyCFunction)MenuObj_IsMenuItemEnabled, 1,
1291 "(UInt16 item) -> (Boolean _rv)"},
1292 {"EnableMenuItemIcon", (PyCFunction)MenuObj_EnableMenuItemIcon, 1,
1293 "(UInt16 item) -> None"},
1294 {"DisableMenuItemIcon", (PyCFunction)MenuObj_DisableMenuItemIcon, 1,
1295 "(UInt16 item) -> None"},
1296 {"IsMenuItemIconEnabled", (PyCFunction)MenuObj_IsMenuItemIconEnabled, 1,
1297 "(UInt16 item) -> (Boolean _rv)"},
Jack Jansena1772281995-06-18 20:17:27 +00001298 {"as_Resource", (PyCFunction)MenuObj_as_Resource, 1,
Jack Jansena1a0fef1999-12-23 14:32:06 +00001299 "() -> (Handle _rv)"},
Jack Jansene180d991998-04-24 10:28:20 +00001300 {"AppendMenu", (PyCFunction)MenuObj_AppendMenu, 1,
1301 "(Str255 data) -> None"},
1302 {"InsertMenu", (PyCFunction)MenuObj_InsertMenu, 1,
1303 "(short beforeID) -> None"},
1304 {"InsertMenuItem", (PyCFunction)MenuObj_InsertMenuItem, 1,
1305 "(Str255 itemString, short afterItem) -> None"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001306 {NULL, NULL, 0}
1307};
1308
1309PyMethodChain MenuObj_chain = { MenuObj_methods, NULL };
1310
1311static PyObject *MenuObj_getattr(self, name)
1312 MenuObject *self;
1313 char *name;
1314{
1315 return Py_FindMethodInChain(&MenuObj_chain, (PyObject *)self, name);
1316}
1317
1318#define MenuObj_setattr NULL
1319
Jack Jansena05ac601999-12-12 21:41:51 +00001320#define MenuObj_compare NULL
1321
1322#define MenuObj_repr NULL
1323
1324#define MenuObj_hash NULL
1325
Guido van Rossum17448e21995-01-30 11:53:55 +00001326PyTypeObject Menu_Type = {
1327 PyObject_HEAD_INIT(&PyType_Type)
1328 0, /*ob_size*/
1329 "Menu", /*tp_name*/
1330 sizeof(MenuObject), /*tp_basicsize*/
1331 0, /*tp_itemsize*/
1332 /* methods */
1333 (destructor) MenuObj_dealloc, /*tp_dealloc*/
1334 0, /*tp_print*/
1335 (getattrfunc) MenuObj_getattr, /*tp_getattr*/
1336 (setattrfunc) MenuObj_setattr, /*tp_setattr*/
Jack Jansena05ac601999-12-12 21:41:51 +00001337 (cmpfunc) MenuObj_compare, /*tp_compare*/
1338 (reprfunc) MenuObj_repr, /*tp_repr*/
1339 (PyNumberMethods *)0, /* tp_as_number */
1340 (PySequenceMethods *)0, /* tp_as_sequence */
1341 (PyMappingMethods *)0, /* tp_as_mapping */
1342 (hashfunc) MenuObj_hash, /*tp_hash*/
Guido van Rossum17448e21995-01-30 11:53:55 +00001343};
1344
1345/* ---------------------- End object type Menu ---------------------- */
1346
1347
Jack Jansena05ac601999-12-12 21:41:51 +00001348static PyObject *Menu_InitProcMenu(_self, _args)
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001349 PyObject *_self;
1350 PyObject *_args;
1351{
1352 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001353 short resID;
1354 if (!PyArg_ParseTuple(_args, "h",
1355 &resID))
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001356 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001357 InitProcMenu(resID);
1358 Py_INCREF(Py_None);
1359 _res = Py_None;
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001360 return _res;
1361}
1362
Guido van Rossum17448e21995-01-30 11:53:55 +00001363static PyObject *Menu_InitMenus(_self, _args)
1364 PyObject *_self;
1365 PyObject *_args;
1366{
1367 PyObject *_res = NULL;
1368 if (!PyArg_ParseTuple(_args, ""))
1369 return NULL;
1370 InitMenus();
1371 Py_INCREF(Py_None);
1372 _res = Py_None;
1373 return _res;
1374}
1375
1376static PyObject *Menu_NewMenu(_self, _args)
1377 PyObject *_self;
1378 PyObject *_args;
1379{
1380 PyObject *_res = NULL;
1381 MenuHandle _rv;
1382 short menuID;
1383 Str255 menuTitle;
1384 if (!PyArg_ParseTuple(_args, "hO&",
1385 &menuID,
1386 PyMac_GetStr255, menuTitle))
1387 return NULL;
1388 _rv = NewMenu(menuID,
1389 menuTitle);
1390 _res = Py_BuildValue("O&",
1391 MenuObj_New, _rv);
1392 return _res;
1393}
1394
Jack Jansen1c4e6141998-04-21 15:23:55 +00001395static PyObject *Menu_MacGetMenu(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +00001396 PyObject *_self;
1397 PyObject *_args;
1398{
1399 PyObject *_res = NULL;
1400 MenuHandle _rv;
1401 short resourceID;
1402 if (!PyArg_ParseTuple(_args, "h",
1403 &resourceID))
1404 return NULL;
Jack Jansen1c4e6141998-04-21 15:23:55 +00001405 _rv = MacGetMenu(resourceID);
Guido van Rossum17448e21995-01-30 11:53:55 +00001406 _res = Py_BuildValue("O&",
1407 MenuObj_New, _rv);
1408 return _res;
1409}
1410
Guido van Rossum17448e21995-01-30 11:53:55 +00001411static PyObject *Menu_MenuKey(_self, _args)
1412 PyObject *_self;
1413 PyObject *_args;
1414{
1415 PyObject *_res = NULL;
1416 long _rv;
Jack Jansen21f96871998-02-20 16:02:09 +00001417 CharParameter ch;
Guido van Rossum17448e21995-01-30 11:53:55 +00001418 if (!PyArg_ParseTuple(_args, "h",
1419 &ch))
1420 return NULL;
1421 _rv = MenuKey(ch);
1422 _res = Py_BuildValue("l",
1423 _rv);
1424 return _res;
1425}
1426
Jack Jansena05ac601999-12-12 21:41:51 +00001427static PyObject *Menu_MenuSelect(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +00001428 PyObject *_self;
1429 PyObject *_args;
1430{
1431 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001432 long _rv;
1433 Point startPt;
1434 if (!PyArg_ParseTuple(_args, "O&",
1435 PyMac_GetPoint, &startPt))
Guido van Rossum17448e21995-01-30 11:53:55 +00001436 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001437 _rv = MenuSelect(startPt);
1438 _res = Py_BuildValue("l",
1439 _rv);
Guido van Rossum17448e21995-01-30 11:53:55 +00001440 return _res;
1441}
1442
Guido van Rossum17448e21995-01-30 11:53:55 +00001443static PyObject *Menu_MenuChoice(_self, _args)
1444 PyObject *_self;
1445 PyObject *_args;
1446{
1447 PyObject *_res = NULL;
1448 long _rv;
1449 if (!PyArg_ParseTuple(_args, ""))
1450 return NULL;
1451 _rv = MenuChoice();
1452 _res = Py_BuildValue("l",
1453 _rv);
1454 return _res;
1455}
1456
Jack Jansena05ac601999-12-12 21:41:51 +00001457static PyObject *Menu_MenuEvent(_self, _args)
Guido van Rossum17448e21995-01-30 11:53:55 +00001458 PyObject *_self;
1459 PyObject *_args;
1460{
1461 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001462 UInt32 _rv;
1463 EventRecord inEvent;
1464 if (!PyArg_ParseTuple(_args, "O&",
1465 PyMac_GetEventRecord, &inEvent))
Guido van Rossum17448e21995-01-30 11:53:55 +00001466 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001467 _rv = MenuEvent(&inEvent);
1468 _res = Py_BuildValue("l",
1469 _rv);
1470 return _res;
1471}
1472
1473static PyObject *Menu_GetMBarHeight(_self, _args)
1474 PyObject *_self;
1475 PyObject *_args;
1476{
1477 PyObject *_res = NULL;
1478 short _rv;
1479 if (!PyArg_ParseTuple(_args, ""))
1480 return NULL;
1481 _rv = GetMBarHeight();
1482 _res = Py_BuildValue("h",
1483 _rv);
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001484 return _res;
1485}
1486
Jack Jansen1c4e6141998-04-21 15:23:55 +00001487static PyObject *Menu_MacDrawMenuBar(_self, _args)
Jack Jansen21f96871998-02-20 16:02:09 +00001488 PyObject *_self;
1489 PyObject *_args;
1490{
1491 PyObject *_res = NULL;
1492 if (!PyArg_ParseTuple(_args, ""))
1493 return NULL;
Jack Jansen1c4e6141998-04-21 15:23:55 +00001494 MacDrawMenuBar();
Jack Jansen21f96871998-02-20 16:02:09 +00001495 Py_INCREF(Py_None);
1496 _res = Py_None;
1497 return _res;
1498}
1499
1500static PyObject *Menu_InvalMenuBar(_self, _args)
1501 PyObject *_self;
1502 PyObject *_args;
1503{
1504 PyObject *_res = NULL;
1505 if (!PyArg_ParseTuple(_args, ""))
1506 return NULL;
1507 InvalMenuBar();
1508 Py_INCREF(Py_None);
1509 _res = Py_None;
1510 return _res;
1511}
1512
Jack Jansena05ac601999-12-12 21:41:51 +00001513static PyObject *Menu_HiliteMenu(_self, _args)
Jack Jansen21f96871998-02-20 16:02:09 +00001514 PyObject *_self;
1515 PyObject *_args;
1516{
1517 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001518 short menuID;
Jack Jansen21f96871998-02-20 16:02:09 +00001519 if (!PyArg_ParseTuple(_args, "h",
Jack Jansena05ac601999-12-12 21:41:51 +00001520 &menuID))
Jack Jansen21f96871998-02-20 16:02:09 +00001521 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001522 HiliteMenu(menuID);
Jack Jansen21f96871998-02-20 16:02:09 +00001523 Py_INCREF(Py_None);
1524 _res = Py_None;
1525 return _res;
1526}
1527
Jack Jansena05ac601999-12-12 21:41:51 +00001528static PyObject *Menu_GetNewMBar(_self, _args)
1529 PyObject *_self;
1530 PyObject *_args;
1531{
1532 PyObject *_res = NULL;
1533 Handle _rv;
1534 short menuBarID;
1535 if (!PyArg_ParseTuple(_args, "h",
1536 &menuBarID))
1537 return NULL;
1538 _rv = GetNewMBar(menuBarID);
1539 _res = Py_BuildValue("O&",
1540 ResObj_New, _rv);
1541 return _res;
1542}
1543
Jack Jansen21f96871998-02-20 16:02:09 +00001544static PyObject *Menu_GetMenuBar(_self, _args)
1545 PyObject *_self;
1546 PyObject *_args;
1547{
1548 PyObject *_res = NULL;
1549 Handle _rv;
1550 if (!PyArg_ParseTuple(_args, ""))
1551 return NULL;
1552 _rv = GetMenuBar();
1553 _res = Py_BuildValue("O&",
1554 ResObj_New, _rv);
1555 return _res;
1556}
1557
1558static PyObject *Menu_SetMenuBar(_self, _args)
1559 PyObject *_self;
1560 PyObject *_args;
1561{
1562 PyObject *_res = NULL;
1563 Handle menuList;
1564 if (!PyArg_ParseTuple(_args, "O&",
1565 ResObj_Convert, &menuList))
1566 return NULL;
1567 SetMenuBar(menuList);
1568 Py_INCREF(Py_None);
1569 _res = Py_None;
1570 return _res;
1571}
1572
Jack Jansena05ac601999-12-12 21:41:51 +00001573static PyObject *Menu_GetMenuHandle(_self, _args)
1574 PyObject *_self;
1575 PyObject *_args;
1576{
1577 PyObject *_res = NULL;
1578 MenuHandle _rv;
1579 short menuID;
1580 if (!PyArg_ParseTuple(_args, "h",
1581 &menuID))
1582 return NULL;
1583 _rv = GetMenuHandle(menuID);
1584 _res = Py_BuildValue("O&",
1585 MenuObj_New, _rv);
1586 return _res;
1587}
1588
1589static PyObject *Menu_MacDeleteMenu(_self, _args)
1590 PyObject *_self;
1591 PyObject *_args;
1592{
1593 PyObject *_res = NULL;
1594 short menuID;
1595 if (!PyArg_ParseTuple(_args, "h",
1596 &menuID))
1597 return NULL;
1598 MacDeleteMenu(menuID);
1599 Py_INCREF(Py_None);
1600 _res = Py_None;
1601 return _res;
1602}
1603
1604static PyObject *Menu_ClearMenuBar(_self, _args)
1605 PyObject *_self;
1606 PyObject *_args;
1607{
1608 PyObject *_res = NULL;
1609 if (!PyArg_ParseTuple(_args, ""))
1610 return NULL;
1611 ClearMenuBar();
1612 Py_INCREF(Py_None);
1613 _res = Py_None;
1614 return _res;
1615}
1616
1617static PyObject *Menu_SetMenuFlash(_self, _args)
1618 PyObject *_self;
1619 PyObject *_args;
1620{
1621 PyObject *_res = NULL;
1622 short count;
1623 if (!PyArg_ParseTuple(_args, "h",
1624 &count))
1625 return NULL;
1626 SetMenuFlash(count);
1627 Py_INCREF(Py_None);
1628 _res = Py_None;
1629 return _res;
1630}
1631
1632static PyObject *Menu_FlashMenuBar(_self, _args)
1633 PyObject *_self;
1634 PyObject *_args;
1635{
1636 PyObject *_res = NULL;
1637 short menuID;
1638 if (!PyArg_ParseTuple(_args, "h",
1639 &menuID))
1640 return NULL;
1641 FlashMenuBar(menuID);
1642 Py_INCREF(Py_None);
1643 _res = Py_None;
1644 return _res;
1645}
1646
Jack Jansenb81cf9d1995-06-06 13:08:40 +00001647static PyObject *Menu_SystemEdit(_self, _args)
1648 PyObject *_self;
1649 PyObject *_args;
1650{
1651 PyObject *_res = NULL;
1652 Boolean _rv;
1653 short editCmd;
1654 if (!PyArg_ParseTuple(_args, "h",
1655 &editCmd))
1656 return NULL;
1657 _rv = SystemEdit(editCmd);
1658 _res = Py_BuildValue("b",
1659 _rv);
1660 return _res;
1661}
1662
1663static PyObject *Menu_SystemMenu(_self, _args)
1664 PyObject *_self;
1665 PyObject *_args;
1666{
1667 PyObject *_res = NULL;
1668 long menuResult;
1669 if (!PyArg_ParseTuple(_args, "l",
1670 &menuResult))
1671 return NULL;
1672 SystemMenu(menuResult);
Guido van Rossum17448e21995-01-30 11:53:55 +00001673 Py_INCREF(Py_None);
1674 _res = Py_None;
1675 return _res;
1676}
1677
Jack Jansena05ac601999-12-12 21:41:51 +00001678static PyObject *Menu_IsMenuBarVisible(_self, _args)
Jack Jansen21f96871998-02-20 16:02:09 +00001679 PyObject *_self;
1680 PyObject *_args;
1681{
1682 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001683 Boolean _rv;
1684 if (!PyArg_ParseTuple(_args, ""))
Jack Jansen21f96871998-02-20 16:02:09 +00001685 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001686 _rv = IsMenuBarVisible();
1687 _res = Py_BuildValue("b",
1688 _rv);
Jack Jansen21f96871998-02-20 16:02:09 +00001689 return _res;
1690}
1691
Jack Jansena05ac601999-12-12 21:41:51 +00001692static PyObject *Menu_ShowMenuBar(_self, _args)
Jack Jansen21f96871998-02-20 16:02:09 +00001693 PyObject *_self;
1694 PyObject *_args;
1695{
1696 PyObject *_res = NULL;
1697 if (!PyArg_ParseTuple(_args, ""))
1698 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001699 ShowMenuBar();
Jack Jansen21f96871998-02-20 16:02:09 +00001700 Py_INCREF(Py_None);
1701 _res = Py_None;
1702 return _res;
1703}
1704
Jack Jansena05ac601999-12-12 21:41:51 +00001705static PyObject *Menu_HideMenuBar(_self, _args)
Jack Jansen21f96871998-02-20 16:02:09 +00001706 PyObject *_self;
1707 PyObject *_args;
1708{
1709 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001710 if (!PyArg_ParseTuple(_args, ""))
Jack Jansen21f96871998-02-20 16:02:09 +00001711 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001712 HideMenuBar();
Jack Jansen21f96871998-02-20 16:02:09 +00001713 Py_INCREF(Py_None);
1714 _res = Py_None;
1715 return _res;
1716}
1717
Jack Jansena05ac601999-12-12 21:41:51 +00001718static PyObject *Menu_DeleteMCEntries(_self, _args)
Jack Jansen21f96871998-02-20 16:02:09 +00001719 PyObject *_self;
1720 PyObject *_args;
1721{
1722 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001723 short menuID;
1724 short menuItem;
1725 if (!PyArg_ParseTuple(_args, "hh",
1726 &menuID,
1727 &menuItem))
Jack Jansen21f96871998-02-20 16:02:09 +00001728 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001729 DeleteMCEntries(menuID,
1730 menuItem);
1731 Py_INCREF(Py_None);
1732 _res = Py_None;
Jack Jansen21f96871998-02-20 16:02:09 +00001733 return _res;
1734}
1735
Jack Jansena05ac601999-12-12 21:41:51 +00001736static PyObject *Menu_InitContextualMenus(_self, _args)
Jack Jansen21f96871998-02-20 16:02:09 +00001737 PyObject *_self;
1738 PyObject *_args;
1739{
1740 PyObject *_res = NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001741 OSStatus _err;
1742 if (!PyArg_ParseTuple(_args, ""))
1743 return NULL;
1744 _err = InitContextualMenus();
1745 if (_err != noErr) return PyMac_Error(_err);
1746 Py_INCREF(Py_None);
1747 _res = Py_None;
1748 return _res;
1749}
1750
1751static PyObject *Menu_IsShowContextualMenuClick(_self, _args)
1752 PyObject *_self;
1753 PyObject *_args;
1754{
1755 PyObject *_res = NULL;
1756 Boolean _rv;
Jack Jansen21f96871998-02-20 16:02:09 +00001757 EventRecord inEvent;
1758 if (!PyArg_ParseTuple(_args, "O&",
1759 PyMac_GetEventRecord, &inEvent))
1760 return NULL;
Jack Jansena05ac601999-12-12 21:41:51 +00001761 _rv = IsShowContextualMenuClick(&inEvent);
1762 _res = Py_BuildValue("b",
Jack Jansen21f96871998-02-20 16:02:09 +00001763 _rv);
1764 return _res;
1765}
1766
Guido van Rossum86c3af71995-03-19 22:42:51 +00001767static PyObject *Menu_OpenDeskAcc(_self, _args)
1768 PyObject *_self;
1769 PyObject *_args;
1770{
1771 PyObject *_res = NULL;
1772 Str255 name;
1773 if (!PyArg_ParseTuple(_args, "O&",
1774 PyMac_GetStr255, name))
1775 return NULL;
1776 OpenDeskAcc(name);
1777 Py_INCREF(Py_None);
1778 _res = Py_None;
1779 return _res;
1780}
1781
Jack Jansene0581891999-02-07 14:02:03 +00001782static PyObject *Menu_as_Menu(_self, _args)
1783 PyObject *_self;
1784 PyObject *_args;
1785{
1786 PyObject *_res = NULL;
1787 MenuHandle _rv;
1788 Handle h;
1789 if (!PyArg_ParseTuple(_args, "O&",
1790 ResObj_Convert, &h))
1791 return NULL;
1792 _rv = as_Menu(h);
1793 _res = Py_BuildValue("O&",
1794 MenuObj_New, _rv);
1795 return _res;
1796}
1797
Jack Jansene180d991998-04-24 10:28:20 +00001798static PyObject *Menu_GetMenu(_self, _args)
1799 PyObject *_self;
1800 PyObject *_args;
1801{
1802 PyObject *_res = NULL;
1803 MenuHandle _rv;
1804 short resourceID;
1805 if (!PyArg_ParseTuple(_args, "h",
1806 &resourceID))
1807 return NULL;
1808 _rv = GetMenu(resourceID);
1809 _res = Py_BuildValue("O&",
1810 MenuObj_New, _rv);
1811 return _res;
1812}
1813
1814static PyObject *Menu_DeleteMenu(_self, _args)
1815 PyObject *_self;
1816 PyObject *_args;
1817{
1818 PyObject *_res = NULL;
1819 short menuID;
1820 if (!PyArg_ParseTuple(_args, "h",
1821 &menuID))
1822 return NULL;
1823 DeleteMenu(menuID);
1824 Py_INCREF(Py_None);
1825 _res = Py_None;
1826 return _res;
1827}
1828
1829static PyObject *Menu_DrawMenuBar(_self, _args)
1830 PyObject *_self;
1831 PyObject *_args;
1832{
1833 PyObject *_res = NULL;
1834 if (!PyArg_ParseTuple(_args, ""))
1835 return NULL;
1836 DrawMenuBar();
1837 Py_INCREF(Py_None);
1838 _res = Py_None;
1839 return _res;
1840}
1841
Guido van Rossum17448e21995-01-30 11:53:55 +00001842static PyMethodDef Menu_methods[] = {
Jack Jansena05ac601999-12-12 21:41:51 +00001843 {"InitProcMenu", (PyCFunction)Menu_InitProcMenu, 1,
1844 "(short resID) -> None"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001845 {"InitMenus", (PyCFunction)Menu_InitMenus, 1,
1846 "() -> None"},
1847 {"NewMenu", (PyCFunction)Menu_NewMenu, 1,
1848 "(short menuID, Str255 menuTitle) -> (MenuHandle _rv)"},
Jack Jansen1c4e6141998-04-21 15:23:55 +00001849 {"MacGetMenu", (PyCFunction)Menu_MacGetMenu, 1,
Guido van Rossum17448e21995-01-30 11:53:55 +00001850 "(short resourceID) -> (MenuHandle _rv)"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001851 {"MenuKey", (PyCFunction)Menu_MenuKey, 1,
Jack Jansen21f96871998-02-20 16:02:09 +00001852 "(CharParameter ch) -> (long _rv)"},
Jack Jansena05ac601999-12-12 21:41:51 +00001853 {"MenuSelect", (PyCFunction)Menu_MenuSelect, 1,
1854 "(Point startPt) -> (long _rv)"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001855 {"MenuChoice", (PyCFunction)Menu_MenuChoice, 1,
1856 "() -> (long _rv)"},
Jack Jansena05ac601999-12-12 21:41:51 +00001857 {"MenuEvent", (PyCFunction)Menu_MenuEvent, 1,
1858 "(EventRecord inEvent) -> (UInt32 _rv)"},
1859 {"GetMBarHeight", (PyCFunction)Menu_GetMBarHeight, 1,
1860 "() -> (short _rv)"},
Jack Jansen1c4e6141998-04-21 15:23:55 +00001861 {"MacDrawMenuBar", (PyCFunction)Menu_MacDrawMenuBar, 1,
Jack Jansen21f96871998-02-20 16:02:09 +00001862 "() -> None"},
1863 {"InvalMenuBar", (PyCFunction)Menu_InvalMenuBar, 1,
1864 "() -> None"},
Jack Jansena05ac601999-12-12 21:41:51 +00001865 {"HiliteMenu", (PyCFunction)Menu_HiliteMenu, 1,
1866 "(short menuID) -> None"},
1867 {"GetNewMBar", (PyCFunction)Menu_GetNewMBar, 1,
1868 "(short menuBarID) -> (Handle _rv)"},
Jack Jansen21f96871998-02-20 16:02:09 +00001869 {"GetMenuBar", (PyCFunction)Menu_GetMenuBar, 1,
1870 "() -> (Handle _rv)"},
1871 {"SetMenuBar", (PyCFunction)Menu_SetMenuBar, 1,
1872 "(Handle menuList) -> None"},
Jack Jansena05ac601999-12-12 21:41:51 +00001873 {"GetMenuHandle", (PyCFunction)Menu_GetMenuHandle, 1,
1874 "(short menuID) -> (MenuHandle _rv)"},
1875 {"MacDeleteMenu", (PyCFunction)Menu_MacDeleteMenu, 1,
1876 "(short menuID) -> None"},
Jack Jansen21f96871998-02-20 16:02:09 +00001877 {"ClearMenuBar", (PyCFunction)Menu_ClearMenuBar, 1,
1878 "() -> None"},
1879 {"SetMenuFlash", (PyCFunction)Menu_SetMenuFlash, 1,
1880 "(short count) -> None"},
Jack Jansena05ac601999-12-12 21:41:51 +00001881 {"FlashMenuBar", (PyCFunction)Menu_FlashMenuBar, 1,
1882 "(short menuID) -> None"},
1883 {"SystemEdit", (PyCFunction)Menu_SystemEdit, 1,
1884 "(short editCmd) -> (Boolean _rv)"},
1885 {"SystemMenu", (PyCFunction)Menu_SystemMenu, 1,
1886 "(long menuResult) -> None"},
1887 {"IsMenuBarVisible", (PyCFunction)Menu_IsMenuBarVisible, 1,
1888 "() -> (Boolean _rv)"},
1889 {"ShowMenuBar", (PyCFunction)Menu_ShowMenuBar, 1,
1890 "() -> None"},
1891 {"HideMenuBar", (PyCFunction)Menu_HideMenuBar, 1,
1892 "() -> None"},
1893 {"DeleteMCEntries", (PyCFunction)Menu_DeleteMCEntries, 1,
1894 "(short menuID, short menuItem) -> None"},
1895 {"InitContextualMenus", (PyCFunction)Menu_InitContextualMenus, 1,
1896 "() -> None"},
1897 {"IsShowContextualMenuClick", (PyCFunction)Menu_IsShowContextualMenuClick, 1,
1898 "(EventRecord inEvent) -> (Boolean _rv)"},
Guido van Rossum86c3af71995-03-19 22:42:51 +00001899 {"OpenDeskAcc", (PyCFunction)Menu_OpenDeskAcc, 1,
1900 "(Str255 name) -> None"},
Jack Jansene0581891999-02-07 14:02:03 +00001901 {"as_Menu", (PyCFunction)Menu_as_Menu, 1,
1902 "(Handle h) -> (MenuHandle _rv)"},
Jack Jansene180d991998-04-24 10:28:20 +00001903 {"GetMenu", (PyCFunction)Menu_GetMenu, 1,
1904 "(short resourceID) -> (MenuHandle _rv)"},
1905 {"DeleteMenu", (PyCFunction)Menu_DeleteMenu, 1,
1906 "(short menuID) -> None"},
1907 {"DrawMenuBar", (PyCFunction)Menu_DrawMenuBar, 1,
1908 "() -> None"},
Guido van Rossum17448e21995-01-30 11:53:55 +00001909 {NULL, NULL, 0}
1910};
1911
1912
1913
1914
1915void initMenu()
1916{
1917 PyObject *m;
1918 PyObject *d;
1919
1920
1921
1922
1923 m = Py_InitModule("Menu", Menu_methods);
1924 d = PyModule_GetDict(m);
1925 Menu_Error = PyMac_GetOSErrException();
1926 if (Menu_Error == NULL ||
1927 PyDict_SetItemString(d, "Error", Menu_Error) != 0)
1928 Py_FatalError("can't initialize Menu.Error");
Jack Jansena755e681997-09-20 17:40:22 +00001929 Menu_Type.ob_type = &PyType_Type;
1930 Py_INCREF(&Menu_Type);
1931 if (PyDict_SetItemString(d, "MenuType", (PyObject *)&Menu_Type) != 0)
1932 Py_FatalError("can't initialize MenuType");
Guido van Rossum17448e21995-01-30 11:53:55 +00001933}
1934
1935/* ======================== End module Menu ========================= */
1936