annotate Modules/stdwinmodule.c @ 1332:e5fb9cdbe050 legacy-trunk

Final touch before release.
author Guido van Rossum <guido@python.org>
date Thu, 29 Jul 1993 13:14:32 +0000
parents 6ee380349c84
children a6355c83578d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
145
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
1 /***********************************************************
1191
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
2 Copyright 1991, 1992, 1993 by Stichting Mathematisch Centrum,
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
3 Amsterdam, The Netherlands.
145
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
4
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
5 All Rights Reserved
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
6
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
7 Permission to use, copy, modify, and distribute this software and its
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
8 documentation for any purpose and without fee is hereby granted,
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
9 provided that the above copyright notice appear in all copies and that
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
10 both that copyright notice and this permission notice appear in
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
11 supporting documentation, and that the names of Stichting Mathematisch
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
12 Centrum or CWI not be used in advertising or publicity pertaining to
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
13 distribution of the software without specific, written prior permission.
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
14
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
15 STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
16 THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
17 FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
18 FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
19 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
20 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
21 OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
22
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
23 ******************************************************************/
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
24
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 /* Stdwin module */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 /* Stdwin itself is a module, not a separate object type.
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 Object types defined here:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 wp: a window
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 dp: a drawing structure (only one can exist at a time)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 mp: a menu
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 tp: a textedit block
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
33 bp: a bitmap
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
35
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 /* Rules for translating C stdwin function calls into Python stwin:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 - All names drop their initial letter 'w'
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 - Functions with a window as first parameter are methods of window objects
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 - There is no equivalent for wclose(); just delete the window object
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 (all references to it!) (XXX maybe this is a bad idea)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 - w.begindrawing() returns a drawing object
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 - There is no equivalent for wenddrawing(win); just delete the drawing
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 object (all references to it!) (XXX maybe this is a bad idea)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 - Functions that may only be used inside wbegindrawing / wendddrawing
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 are methods of the drawing object; this includes the text measurement
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 functions (which however have doubles as module functions).
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 - Methods of the drawing object drop an initial 'draw' from their name
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 if they have it, e.g., wdrawline() --> d.line()
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 - The obvious type conversions: int --> intobject; string --> stringobject
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 - A text parameter followed by a length parameter is only a text (string)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 parameter in Python
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 - A point or other pair of horizontal and vertical coordinates is always
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 a pair of integers in Python
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 - Two points forming a rectangle or endpoints of a line segment are a
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 pair of points in Python
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 - The arguments to d.elarc() are three points.
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 - The functions wgetclip() and wsetclip() are translated into
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
58 stdwin.getcutbuffer() and stdwin.setcutbuffer(); 'clip' is really
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 a bad word for what these functions do (clipping has a different
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 meaning in the drawing world), while cutbuffer is standard X jargon.
50
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
61 XXX This must change again in the light of changes to stdwin!
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 - For textedit, similar rules hold, but they are less strict.
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 XXX more?
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
64 */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
65
86
a6934380c6e7 "Compiling" version
Guido van Rossum <guido@python.org>
parents: 65
diff changeset
66 #include "allobjects.h"
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 #include "modsupport.h"
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
68 #include "ceval.h"
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
69
1191
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
70 #ifdef macintosh
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
71 #include ":::stdwin:H:stdwin.h"
1191
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
72 #else /* !macintosh */
86
a6934380c6e7 "Compiling" version
Guido van Rossum <guido@python.org>
parents: 65
diff changeset
73 #include "stdwin.h"
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
74 #define HAVE_BITMAPS
1191
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
75 #endif /* !macintosh */
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
76
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
77 #ifdef USE_THREAD
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
78
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
79 #include "thread.h"
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
80
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
81 static type_lock StdwinLock; /* Lock held when interpreter not locked */
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
82
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
83 #define BGN_STDWIN BGN_SAVE acquire_lock(StdwinLock, 1);
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
84 #define RET_STDWIN release_lock(StdwinLock); RET_SAVE
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
85 #define END_STDWIN release_lock(StdwinLock); END_SAVE
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
86
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
87 #else
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
88
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
89 #define BGN_STDWIN BGN_SAVE
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
90 #define RET_STDWIN RET_SAVE
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
91 #define END_STDWIN END_SAVE
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
92
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
93 #endif
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
94
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
95 #define getpointarg(v, a) getargs(v, "(ii)", a, (a)+1)
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
96 #define get3pointarg(v, a) getargs(v, "((ii)(ii)(ii))", \
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
97 a, a+1, a+2, a+3, a+4, a+5)
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
98 #define getrectarg(v, a) getargs(v, "((ii)(ii))", a, a+1, a+2, a+3)
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
99 #define getrectintarg(v, a) getargs(v, "(((ii)(ii))i)", a, a+1, a+2, a+3, a+4)
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
100 #define getpointintarg(v, a) getargs(v, "((ii)i)", a, a+1, a+2)
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
101 #define getrectpointarg(v, a) getargs(v, "(((ii)(ii))(ii))", \
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
102 a, a+1, a+2, a+3, a+4, a+5)
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
103
499
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
104 static object *StdwinError; /* Exception stdwin.error */
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
105
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
106 /* Window and menu object types declared here because of forward references */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
107
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
108 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
109 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
110 object *w_title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
111 WINDOW *w_win;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 object *w_attr; /* Attributes dictionary */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
113 } windowobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
114
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
115 extern typeobject Windowtype; /* Really static, forward */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
116
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
117 #define is_windowobject(wp) ((wp)->ob_type == &Windowtype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
118
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
119 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
120 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
121 MENU *m_menu;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
122 int m_id;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
123 object *m_attr; /* Attributes dictionary */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 } menuobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
125
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
126 extern typeobject Menutype; /* Really static, forward */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
127
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 #define is_menuobject(mp) ((mp)->ob_type == &Menutype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
129
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
130 typedef struct {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
131 OB_HEAD
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
132 BITMAP *b_bitmap;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
133 object *b_attr; /* Attributes dictionary */
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
134 } bitmapobject;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
135
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
136 extern typeobject Bitmaptype; /* Really static, forward */
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
137
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
138 #define is_bitmapobject(mp) ((mp)->ob_type == &Bitmaptype)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
139
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
140
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
141 /* Strongly stdwin-specific argument handlers */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
142
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
143 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
144 getmenudetail(v, ep)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
145 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
146 EVENT *ep;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
147 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
148 menuobject *mp;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
149 if (!getargs(v, "(Oi)", &mp, &ep->u.m.item))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
150 return 0;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
151 if (!is_menuobject(mp))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
152 return err_badarg();
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
153 ep->u.m.id = mp->m_id;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
154 return 1;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
155 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
156
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
157 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
158 geteventarg(v, ep)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
159 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
160 EVENT *ep;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
161 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
162 object *wp, *detail;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
163 int a[4];
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
164 if (!getargs(v, "(iOO)", &ep->type, &wp, &detail))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
165 return 0;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
166 if (is_windowobject(wp))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
167 ep->window = ((windowobject *)wp) -> w_win;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
168 else if (wp == None)
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
169 ep->window = NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
170 else
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
171 return err_badarg();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
172 switch (ep->type) {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
173 case WE_CHAR: {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
174 char c;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
175 if (!getargs(detail, "c", &c))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
176 return 0;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
177 ep->u.character = c;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
178 return 1;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
179 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
180 case WE_COMMAND:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
181 return getintarg(detail, &ep->u.command);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
182 case WE_DRAW:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
183 if (!getrectarg(detail, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
184 return 0;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
185 ep->u.area.left = a[0];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
186 ep->u.area.top = a[1];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
187 ep->u.area.right = a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
188 ep->u.area.bottom = a[3];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
189 return 1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
190 case WE_MOUSE_DOWN:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
191 case WE_MOUSE_UP:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
192 case WE_MOUSE_MOVE:
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
193 return getargs(detail, "((ii)iii)",
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
194 &ep->u.where.h, &ep->u.where.v,
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
195 &ep->u.where.clicks,
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
196 &ep->u.where.button,
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
197 &ep->u.where.mask);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
198 case WE_MENU:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
199 return getmenudetail(detail, ep);
907
32010d355fb6 added WE_KEY detail format to stdwinmodule.c.
Guido van Rossum <guido@python.org>
parents: 902
diff changeset
200 case WE_KEY:
32010d355fb6 added WE_KEY detail format to stdwinmodule.c.
Guido van Rossum <guido@python.org>
parents: 902
diff changeset
201 return getargs(detail, "(ii)",
32010d355fb6 added WE_KEY detail format to stdwinmodule.c.
Guido van Rossum <guido@python.org>
parents: 902
diff changeset
202 &ep->u.key.code, &ep->u.key.mask);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
203 default:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
204 return 1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
205 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
206 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
207
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
208
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
209 /* Return construction tools */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
210
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
211 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
212 makepoint(a, b)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
213 int a, b;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
214 {
818
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
215 return mkvalue("(ii)", a, b);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
216 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
217
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
218 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
219 makerect(a, b, c, d)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
220 int a, b, c, d;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
221 {
818
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
222 return mkvalue("((ii)(ii))", a, b, c, d);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
223 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
224
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
225
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
226 /* Drawing objects */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
227
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
228 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
229 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
230 windowobject *d_ref;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
231 } drawingobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
232
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
233 static drawingobject *Drawing; /* Set to current drawing object, or NULL */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
234
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
235 /* Drawing methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
236
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
237 static object *
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
238 drawing_close(dp)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
239 drawingobject *dp;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
240 {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
241 if (dp->d_ref != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
242 wenddrawing(dp->d_ref->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
243 Drawing = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
244 DECREF(dp->d_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
245 dp->d_ref = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
246 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
247 INCREF(None);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
248 return None;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
249 }
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
250
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
251 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
252 drawing_dealloc(dp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
253 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
254 {
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
255 if (dp->d_ref != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
256 wenddrawing(dp->d_ref->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
257 Drawing = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
258 DECREF(dp->d_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
259 dp->d_ref = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
260 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
261 free((char *)dp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
262 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
263
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
264 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
265 drawing_generic(dp, args, func)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
266 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
267 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
268 void (*func) FPROTO((int, int, int, int));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
269 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
270 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
271 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
272 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
273 (*func)(a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
274 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
275 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
276 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
277
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
278 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
279 drawing_line(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
280 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
281 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
282 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
283 return drawing_generic(dp, args, wdrawline);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
284 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
285
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
286 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
287 drawing_xorline(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
288 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
289 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
290 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
291 return drawing_generic(dp, args, wxorline);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
292 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
293
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
294 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
295 drawing_circle(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
296 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
297 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
298 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
299 int a[3];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
300 if (!getpointintarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
301 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
302 wdrawcircle(a[0], a[1], a[2]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
303 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
304 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
305 }
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
306
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
307 static object *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
308 drawing_fillcircle(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
309 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
310 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
311 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
312 int a[3];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
313 if (!getpointintarg(args, a))
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
314 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
315 wfillcircle(a[0], a[1], a[2]);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
316 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
317 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
318 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
319
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
320 static object *
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
321 drawing_xorcircle(dp, args)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
322 drawingobject *dp;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
323 object *args;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
324 {
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
325 int a[3];
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
326 if (!getpointintarg(args, a))
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
327 return NULL;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
328 wxorcircle(a[0], a[1], a[2]);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
329 INCREF(None);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
330 return None;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
331 }
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
332
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
333 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
334 drawing_elarc(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
335 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
336 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
337 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
338 int a[6];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
339 if (!get3pointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
340 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
341 wdrawelarc(a[0], a[1], a[2], a[3], a[4], a[5]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
342 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
343 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
344 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
345
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
346 static object *
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
347 drawing_fillelarc(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
348 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
349 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
350 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
351 int a[6];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
352 if (!get3pointarg(args, a))
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
353 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
354 wfillelarc(a[0], a[1], a[2], a[3], a[4], a[5]);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
355 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
356 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
357 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
358
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
359 static object *
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
360 drawing_xorelarc(dp, args)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
361 drawingobject *dp;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
362 object *args;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
363 {
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
364 int a[6];
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
365 if (!get3pointarg(args, a))
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
366 return NULL;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
367 wxorelarc(a[0], a[1], a[2], a[3], a[4], a[5]);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
368 INCREF(None);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
369 return None;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
370 }
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
371
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
372 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
373 drawing_box(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
374 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
375 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
376 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
377 return drawing_generic(dp, args, wdrawbox);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
378 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
379
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
380 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
381 drawing_erase(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
382 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
383 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
384 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
385 return drawing_generic(dp, args, werase);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
386 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
387
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
388 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
389 drawing_paint(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
390 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
391 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
392 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
393 return drawing_generic(dp, args, wpaint);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
394 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
395
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
396 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
397 drawing_invert(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
398 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
399 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
400 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
401 return drawing_generic(dp, args, winvert);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
402 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
403
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
404 static POINT *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
405 getpointsarray(v, psize)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
406 object *v;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
407 int *psize;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
408 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
409 int n = -1;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
410 object * (*getitem) PROTO((object *, int));
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
411 int i;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
412 POINT *points;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
413
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
414 if (v == NULL)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
415 ;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
416 else if (is_listobject(v)) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
417 n = getlistsize(v);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
418 getitem = getlistitem;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
419 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
420 else if (is_tupleobject(v)) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
421 n = gettuplesize(v);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
422 getitem = gettupleitem;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
423 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
424
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
425 if (n <= 0) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
426 (void) err_badarg();
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
427 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
428 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
429
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
430 points = NEW(POINT, n);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
431 if (points == NULL) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
432 (void) err_nomem();
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
433 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
434 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
435
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
436 for (i = 0; i < n; i++) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
437 object *w = (*getitem)(v, i);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
438 int a[2];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
439 if (!getpointarg(w, a)) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
440 DEL(points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
441 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
442 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
443 points[i].h = a[0];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
444 points[i].v = a[1];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
445 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
446
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
447 *psize = n;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
448 return points;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
449 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
450
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
451 static object *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
452 drawing_poly(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
453 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
454 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
455 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
456 int n;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
457 POINT *points = getpointsarray(args, &n);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
458 if (points == NULL)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
459 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
460 wdrawpoly(n, points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
461 DEL(points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
462 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
463 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
464 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
465
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
466 static object *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
467 drawing_fillpoly(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
468 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
469 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
470 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
471 int n;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
472 POINT *points = getpointsarray(args, &n);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
473 if (points == NULL)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
474 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
475 wfillpoly(n, points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
476 DEL(points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
477 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
478 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
479 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
480
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
481 static object *
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
482 drawing_xorpoly(dp, args)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
483 drawingobject *dp;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
484 object *args;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
485 {
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
486 int n;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
487 POINT *points = getpointsarray(args, &n);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
488 if (points == NULL)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
489 return NULL;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
490 wxorpoly(n, points);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
491 DEL(points);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
492 INCREF(None);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
493 return None;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
494 }
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
495
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
496 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
497 drawing_cliprect(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
498 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
499 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
500 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
501 return drawing_generic(dp, args, wcliprect);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
502 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
503
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
504 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
505 drawing_noclip(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
506 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
507 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
508 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
509 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
510 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
511 wnoclip();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
512 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
513 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
514 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
515
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
516 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
517 drawing_shade(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
518 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
519 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
520 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
521 int a[5];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
522 if (!getrectintarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
523 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
524 wshade(a[0], a[1], a[2], a[3], a[4]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
525 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
526 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
527 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
528
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
529 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
530 drawing_text(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
531 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
532 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
533 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
534 int h, v, size;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
535 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
536 if (!getargs(args, "((ii)s#)", &h, &v, &text, &size))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
537 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
538 wdrawtext(h, v, text, size);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
539 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
540 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
541 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
542
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
543 /* The following four are also used as stdwin functions */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
544
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
545 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
546 drawing_lineheight(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
547 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
548 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
549 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
550 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
551 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
552 return newintobject((long)wlineheight());
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
553 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
554
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
555 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
556 drawing_baseline(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
557 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
558 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
559 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
560 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
561 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
562 return newintobject((long)wbaseline());
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
563 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
564
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
565 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
566 drawing_textwidth(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
567 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
568 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
569 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
570 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
571 int size;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
572 if (!getargs(args, "s#", &text, &size))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
573 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
574 return newintobject((long)wtextwidth(text, size));
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
575 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
576
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
577 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
578 drawing_textbreak(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
579 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
580 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
581 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
582 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
583 int size, width;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
584 if (!getargs(args, "(s#i)", &text, &size, &width))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
585 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
586 return newintobject((long)wtextbreak(text, size, width));
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
587 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
588
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
589 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
590 drawing_setfont(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
591 drawingobject *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
592 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
593 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
594 char *font;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
595 char style = '\0';
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
596 int size = 0;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
597 if (args == NULL || !is_tupleobject(args)) {
657
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
598 if (!getargs(args, "z", &font))
184
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
599 return NULL;
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
600 }
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
601 else {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
602 int n = gettuplesize(args);
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
603 if (n == 2) {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
604 if (!getargs(args, "(zi)", &font, &size))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
605 return NULL;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
606 }
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
607 else if (!getargs(args, "(zic)", &font, &size, &style)) {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
608 err_clear();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
609 if (!getargs(args, "(zci)", &font, &style, &size))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
610 return NULL;
184
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
611 }
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
612 }
1191
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
613 if (font != NULL) {
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
614 if (!wsetfont(font)) {
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
615 err_setstr(StdwinError, "font not found");
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
616 return NULL;
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
617 }
38f0054f44a7 Added separate main program for the Mac: macmain.c
Guido van Rossum <guido@python.org>
parents: 1051
diff changeset
618 }
184
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
619 if (size != 0)
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
620 wsetsize(size);
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
621 switch (style) {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
622 case 'b':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
623 wsetbold();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
624 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
625 case 'i':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
626 wsetitalic();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
627 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
628 case 'o':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
629 wsetbolditalic();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
630 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
631 case 'u':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
632 wsetunderline();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
633 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
634 case 'p':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
635 wsetplain();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
636 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
637 }
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
638 INCREF(None);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
639 return None;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
640 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
641
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
642 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
643 drawing_getbgcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
644 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
645 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
646 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
647 if (!getnoarg(args))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
648 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
649 return newintobject((long)wgetbgcolor());
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
650 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
651
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
652 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
653 drawing_getfgcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
654 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
655 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
656 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
657 if (!getnoarg(args))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
658 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
659 return newintobject((long)wgetfgcolor());
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
660 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
661
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
662 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
663 drawing_setbgcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
664 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
665 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
666 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
667 long color;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
668 if (!getlongarg(args, &color))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
669 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
670 wsetbgcolor((COLOR)color);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
671 INCREF(None);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
672 return None;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
673 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
674
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
675 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
676 drawing_setfgcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
677 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
678 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
679 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
680 long color;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
681 if (!getlongarg(args, &color))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
682 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
683 wsetfgcolor((COLOR)color);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
684 INCREF(None);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
685 return None;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
686 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
687
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
688 #ifdef HAVE_BITMAPS
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
689
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
690 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
691 drawing_bitmap(self, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
692 object *self;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
693 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
694 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
695 int h, v;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
696 object *bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
697 object *mask = NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
698 if (!getargs(args, "((ii)O)", &h, &v, &bp)) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
699 err_clear();
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
700 if (!getargs(args, "((ii)OO)", &h, &v, &bp, &mask))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
701 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
702 if (mask == None)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
703 mask = NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
704 else if (!is_bitmapobject(mask)) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
705 err_badarg();
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
706 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
707 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
708 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
709 if (!is_bitmapobject(bp)) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
710 err_badarg();
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
711 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
712 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
713 if (((bitmapobject *)bp)->b_bitmap == NULL ||
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
714 mask != NULL && ((bitmapobject *)mask)->b_bitmap == NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
715 err_setstr(StdwinError, "bitmap object already close");
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
716 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
717 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
718 if (mask == NULL)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
719 wdrawbitmap(h, v, ((bitmapobject *)bp)->b_bitmap, ALLBITS);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
720 else
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
721 wdrawbitmap(h, v,
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
722 ((bitmapobject *)bp)->b_bitmap,
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
723 ((bitmapobject *)bp)->b_bitmap);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
724 INCREF(None);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
725 return None;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
726 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
727
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
728 #endif /* HAVE_BITMAPS */
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
729
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
730 static struct methodlist drawing_methods[] = {
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
731 #ifdef HAVE_BITMAPS
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
732 {"bitmap", drawing_bitmap},
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
733 #endif
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
734 {"box", drawing_box},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
735 {"circle", drawing_circle},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
736 {"cliprect", drawing_cliprect},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
737 {"close", drawing_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
738 {"elarc", drawing_elarc},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
739 {"enddrawing", drawing_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
740 {"erase", drawing_erase},
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
741 {"fillcircle", drawing_fillcircle},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
742 {"fillelarc", drawing_fillelarc},
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
743 {"fillpoly", drawing_fillpoly},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
744 {"invert", drawing_invert},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
745 {"line", drawing_line},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
746 {"noclip", drawing_noclip},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
747 {"paint", drawing_paint},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
748 {"poly", drawing_poly},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
749 {"shade", drawing_shade},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
750 {"text", drawing_text},
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
751 {"xorcircle", drawing_xorcircle},
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
752 {"xorelarc", drawing_xorelarc},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
753 {"xorline", drawing_xorline},
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
754 {"xorpoly", drawing_xorpoly},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
755
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
756 /* Text measuring methods: */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
757 {"baseline", drawing_baseline},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
758 {"lineheight", drawing_lineheight},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
759 {"textbreak", drawing_textbreak},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
760 {"textwidth", drawing_textwidth},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
761
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
762 /* Font setting methods: */
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
763 {"setfont", drawing_setfont},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
764
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
765 /* Color methods: */
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
766 {"getbgcolor", drawing_getbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
767 {"getfgcolor", drawing_getfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
768 {"setbgcolor", drawing_setbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
769 {"setfgcolor", drawing_setfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
770
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
771 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
772 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
773
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
774 static object *
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
775 drawing_getattr(dp, name)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
776 drawingobject *dp;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
777 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
778 {
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
779 if (dp->d_ref == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
780 err_setstr(StdwinError, "drawing object already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
781 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
782 }
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
783 return findmethod(drawing_methods, (object *)dp, name);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
784 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
785
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
786 typeobject Drawingtype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
787 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
788 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
789 "drawing", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
790 sizeof(drawingobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
791 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
792 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
793 drawing_dealloc, /*tp_dealloc*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
794 0, /*tp_print*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
795 drawing_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
796 0, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
797 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
798 0, /*tp_repr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
799 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
800
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
801
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
802 /* Text(edit) objects */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
803
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
804 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
805 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
806 TEXTEDIT *t_text;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
807 windowobject *t_ref;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
808 object *t_attr; /* Attributes dictionary */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
809 } textobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
810
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
811 extern typeobject Texttype; /* Really static, forward */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
812
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
813 static textobject *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
814 newtextobject(wp, left, top, right, bottom)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
815 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
816 int left, top, right, bottom;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
817 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
818 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
819 tp = NEWOBJ(textobject, &Texttype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
820 if (tp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
821 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
822 tp->t_attr = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
823 INCREF(wp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
824 tp->t_ref = wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
825 tp->t_text = tecreate(wp->w_win, left, top, right, bottom);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
826 if (tp->t_text == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
827 DECREF(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
828 return (textobject *) err_nomem();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
829 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
830 return tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
831 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
832
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
833 /* Text(edit) methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
834
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
835 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
836 text_dealloc(tp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
837 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
838 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
839 if (tp->t_text != NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
840 tefree(tp->t_text);
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
841 XDECREF(tp->t_attr);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
842 XDECREF(tp->t_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
843 DEL(tp);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
844 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
845
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
846 static object *
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
847 text_close(tp, args)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
848 textobject *tp;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
849 object *args;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
850 {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
851 if (tp->t_text != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
852 tefree(tp->t_text);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
853 tp->t_text = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
854 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
855 if (tp->t_attr != NULL) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
856 DECREF(tp->t_attr);
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
857 tp->t_attr = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
858 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
859 if (tp->t_ref != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
860 DECREF(tp->t_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
861 tp->t_ref = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
862 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
863 INCREF(None);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
864 return None;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
865 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
866
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
867 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
868 text_arrow(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
869 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
870 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
871 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
872 int code;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
873 if (!getintarg(args, &code))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
874 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
875 tearrow(self->t_text, code);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
876 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
877 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
878 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
879
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
880 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
881 text_draw(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
882 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
883 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
884 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
885 register TEXTEDIT *tp = self->t_text;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
886 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
887 int left, top, right, bottom;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
888 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
889 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
890 if (Drawing != NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
891 err_setstr(StdwinError, "already drawing");
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
892 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
893 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
894 /* Clip to text area and ignore if area is empty */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
895 left = tegetleft(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
896 top = tegettop(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
897 right = tegetright(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
898 bottom = tegetbottom(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
899 if (a[0] < left) a[0] = left;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
900 if (a[1] < top) a[1] = top;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
901 if (a[2] > right) a[2] = right;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
902 if (a[3] > bottom) a[3] = bottom;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
903 if (a[0] < a[2] && a[1] < a[3]) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
904 wbegindrawing(self->t_ref->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
905 tedrawnew(tp, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
906 wenddrawing(self->t_ref->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
907 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
908 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
909 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
910 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
911
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
912 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
913 text_event(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
914 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
915 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
916 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
917 register TEXTEDIT *tp = self->t_text;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
918 EVENT e;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
919 if (!geteventarg(args, &e))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
920 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
921 if (e.type == WE_MOUSE_DOWN) {
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
922 /* Cheat at the margins */
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
923 int width, height;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
924 wgetdocsize(e.window, &width, &height);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
925 if (e.u.where.h < 0 && tegetleft(tp) == 0)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
926 e.u.where.h = 0;
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
927 else if (e.u.where.h > width && tegetright(tp) == width)
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
928 e.u.where.h = width;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
929 if (e.u.where.v < 0 && tegettop(tp) == 0)
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
930 e.u.where.v = 0;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
931 else if (e.u.where.v > height && tegetright(tp) == height)
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
932 e.u.where.v = height;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
933 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
934 return newintobject((long) teevent(tp, &e));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
935 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
936
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
937 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
938 text_getfocus(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
939 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
940 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
941 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
942 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
943 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
944 return makepoint(tegetfoc1(self->t_text), tegetfoc2(self->t_text));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
945 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
946
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
947 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
948 text_getfocustext(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
949 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
950 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
951 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
952 int f1, f2;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
953 char *text;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
954 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
955 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
956 f1 = tegetfoc1(self->t_text);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
957 f2 = tegetfoc2(self->t_text);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
958 text = tegettext(self->t_text);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
959 return newsizedstringobject(text + f1, f2-f1);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
960 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
961
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
962 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
963 text_getrect(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
964 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
965 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
966 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
967 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
968 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
969 return makerect(tegetleft(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
970 tegettop(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
971 tegetright(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
972 tegetbottom(self->t_text));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
973 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
974
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
975 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
976 text_gettext(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
977 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
978 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
979 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
980 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
981 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
982 return newsizedstringobject(tegettext(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
983 tegetlen(self->t_text));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
984 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
985
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
986 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
987 text_move(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
988 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
989 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
990 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
991 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
992 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
993 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
994 temovenew(self->t_text, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
995 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
996 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
997 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
998
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
999 static object *
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1000 text_replace(self, args)
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1001 textobject *self;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1002 object *args;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1003 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1004 char *text;
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1005 if (!getstrarg(args, &text))
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1006 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1007 tereplace(self->t_text, text);
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1008 INCREF(None);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1009 return None;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1010 }
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1011
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1012 static object *
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1013 text_setactive(self, args)
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1014 textobject *self;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1015 object *args;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1016 {
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1017 int flag;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1018 if (!getintarg(args, &flag))
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1019 return NULL;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1020 tesetactive(self->t_text, flag);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1021 INCREF(None);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1022 return None;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1023 }
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1024
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1025 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1026 text_setfocus(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1027 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1028 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1029 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1030 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1031 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1032 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1033 tesetfocus(self->t_text, a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1034 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1035 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1036 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1037
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1038 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1039 text_settext(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1040 textobject *self;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1041 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1042 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1043 char *text;
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1044 char *buf;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1045 int size;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1046 if (!getargs(args, "s#", &text, &size))
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1047 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1048 if ((buf = NEW(char, size)) == NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1049 return err_nomem();
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1050 }
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1051 memcpy(buf, text, size);
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1052 tesetbuf(self->t_text, buf, size); /* Becomes owner of buffer */
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1053 INCREF(None);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1054 return None;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1055 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1056
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1057 static object *
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1058 text_setview(self, args)
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1059 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1060 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1061 {
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1062 int a[4];
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1063 if (args == None)
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1064 tenoview(self->t_text);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1065 else {
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1066 if (!getrectarg(args, a))
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1067 return NULL;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1068 tesetview(self->t_text, a[0], a[1], a[2], a[3]);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1069 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1070 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1071 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1072 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1073
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1074 static struct methodlist text_methods[] = {
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1075 {"arrow", text_arrow},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1076 {"close", text_close},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1077 {"draw", text_draw},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1078 {"event", text_event},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1079 {"getfocus", text_getfocus},
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1080 {"getfocustext",text_getfocustext},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1081 {"getrect", text_getrect},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1082 {"gettext", text_gettext},
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1083 {"move", text_move},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1084 {"replace", text_replace},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1085 {"setactive", text_setactive},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1086 {"setfocus", text_setfocus},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1087 {"settext", text_settext},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1088 {"setview", text_setview},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1089 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1090 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1091
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1092 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1093 text_getattr(tp, name)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1094 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1095 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1096 {
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1097 object *v = NULL;
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1098 if (tp->t_ref == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1099 err_setstr(StdwinError, "text object already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1100 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1101 }
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1102 if (strcmp(name, "__dict__") == 0) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1103 v = tp->t_attr;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1104 if (v == NULL)
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1105 v = None;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1106 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1107 else if (tp->t_attr != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1108 v = dictlookup(tp->t_attr, name);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1109 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1110 if (v != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1111 INCREF(v);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1112 return v;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1113 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1114 return findmethod(text_methods, (object *)tp, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1115 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1116
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1117 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1118 text_setattr(tp, name, v)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1119 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1120 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1121 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1122 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1123 if (tp->t_attr == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1124 tp->t_attr = newdictobject();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1125 if (tp->t_attr == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1126 return -1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1127 }
1031
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1128 if (v == NULL) {
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1129 int rv = dictremove(tp->t_attr, name);
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1130 if (rv < 0)
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1131 err_setstr(AttributeError,
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1132 "delete non-existing text object attribute");
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1133 return rv;
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1134 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1135 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1136 return dictinsert(tp->t_attr, name, v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1137 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1138
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1139 typeobject Texttype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1140 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1141 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1142 "textedit", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1143 sizeof(textobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1144 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1145 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1146 text_dealloc, /*tp_dealloc*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1147 0, /*tp_print*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1148 text_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1149 text_setattr, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1150 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1151 0, /*tp_repr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1152 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1153
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1154
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1155 /* Menu objects */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1156
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1157 #define IDOFFSET 10 /* Menu IDs we use start here */
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1158 #define MAXNMENU 200 /* Max #menus we allow */
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1159 static menuobject *menulist[MAXNMENU];
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1160
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1161 static menuobject *newmenuobject PROTO((char *));
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1162 static menuobject *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1163 newmenuobject(title)
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1164 char *title;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1165 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1166 int id;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1167 MENU *menu;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1168 menuobject *mp;
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1169 for (id = 0; id < MAXNMENU; id++) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1170 if (menulist[id] == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1171 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1172 }
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1173 if (id >= MAXNMENU) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1174 err_setstr(StdwinError, "creating too many menus");
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1175 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1176 }
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1177 menu = wmenucreate(id + IDOFFSET, title);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1178 if (menu == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1179 return (menuobject *) err_nomem();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1180 mp = NEWOBJ(menuobject, &Menutype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1181 if (mp != NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1182 mp->m_menu = menu;
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1183 mp->m_id = id + IDOFFSET;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1184 mp->m_attr = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1185 menulist[id] = mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1186 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1187 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1188 wmenudelete(menu);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1189 return mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1190 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1191
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1192 /* Menu methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1193
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1194 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1195 menu_dealloc(mp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1196 menuobject *mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1197 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1198
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1199 int id = mp->m_id - IDOFFSET;
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1200 if (id >= 0 && id < MAXNMENU && menulist[id] == mp) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1201 menulist[id] = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1202 }
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1203 if (mp->m_menu != NULL)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1204 wmenudelete(mp->m_menu);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1205 XDECREF(mp->m_attr);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1206 DEL(mp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1207 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1208
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1209 static object *
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1210 menu_close(mp, args)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1211 menuobject *mp;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1212 object *args;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1213 {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1214 int id = mp->m_id - IDOFFSET;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1215 if (id >= 0 && id < MAXNMENU && menulist[id] == mp) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1216 menulist[id] = NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1217 }
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1218 mp->m_id = -1;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1219 if (mp->m_menu != NULL)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1220 wmenudelete(mp->m_menu);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1221 mp->m_menu = NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1222 XDECREF(mp->m_attr);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1223 mp->m_attr = NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1224 INCREF(None);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1225 return None;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1226 }
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1227
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1228 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1229 menu_additem(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1230 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1231 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1232 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1233 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1234 int shortcut = -1;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1235 if (is_tupleobject(args)) {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1236 char c;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1237 if (!getargs(args, "(sc)", &text, &c))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1238 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1239 shortcut = c;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1240 }
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1241 else if (!getstrarg(args, &text))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1242 return NULL;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1243 wmenuadditem(self->m_menu, text, shortcut);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1244 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1245 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1246 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1247
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1248 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1249 menu_setitem(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1250 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1251 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1252 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1253 int index;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1254 char *text;
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
1255 if (!getargs(args, "(is)", &index, &text))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1256 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1257 wmenusetitem(self->m_menu, index, text);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1258 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1259 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1260 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1261
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1262 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1263 menu_enable(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1264 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1265 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1266 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1267 int index;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1268 int flag;
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
1269 if (!getargs(args, "(ii)", &index, &flag))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1270 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1271 wmenuenable(self->m_menu, index, flag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1272 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1273 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1274 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1275
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1276 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1277 menu_check(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1278 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1279 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1280 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1281 int index;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1282 int flag;
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
1283 if (!getargs(args, "(ii)", &index, &flag))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1284 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1285 wmenucheck(self->m_menu, index, flag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1286 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1287 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1288 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1289
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1290 static struct methodlist menu_methods[] = {
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1291 {"additem", menu_additem},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1292 {"setitem", menu_setitem},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1293 {"enable", menu_enable},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1294 {"check", menu_check},
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1295 {"close", menu_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1296 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1297 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1298
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1299 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1300 menu_getattr(mp, name)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1301 menuobject *mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1302 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1303 {
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1304 object *v = NULL;
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1305 if (mp->m_menu == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1306 err_setstr(StdwinError, "menu object already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1307 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1308 }
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1309 if (strcmp(name, "__dict__") == 0) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1310 v = mp->m_attr;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1311 if (v == NULL)
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1312 v = None;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1313 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1314 else if (mp->m_attr != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1315 v = dictlookup(mp->m_attr, name);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1316 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1317 if (v != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1318 INCREF(v);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1319 return v;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1320 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1321 return findmethod(menu_methods, (object *)mp, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1322 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1323
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1324 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1325 menu_setattr(mp, name, v)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1326 menuobject *mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1327 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1328 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1329 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1330 if (mp->m_attr == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1331 mp->m_attr = newdictobject();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1332 if (mp->m_attr == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1333 return -1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1334 }
1031
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1335 if (v == NULL) {
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1336 int rv = dictremove(mp->m_attr, name);
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1337 if (rv < 0)
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1338 err_setstr(AttributeError,
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1339 "delete non-existing menu object attribute");
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1340 return rv;
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1341 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1342 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1343 return dictinsert(mp->m_attr, name, v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1344 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1345
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1346 typeobject Menutype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1347 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1348 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1349 "menu", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1350 sizeof(menuobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1351 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1352 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1353 menu_dealloc, /*tp_dealloc*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1354 0, /*tp_print*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1355 menu_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1356 menu_setattr, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1357 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1358 0, /*tp_repr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1359 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1360
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1361
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
1362 #ifdef HAVE_BITMAPS
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
1363
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1364 /* Bitmaps objects */
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1365
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1366 static bitmapobject *newbitmapobject PROTO((int, int));
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1367 static bitmapobject *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1368 newbitmapobject(width, height)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1369 int width, height;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1370 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1371 BITMAP *bitmap;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1372 bitmapobject *bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1373 bitmap = wnewbitmap(width, height);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1374 if (bitmap == NULL)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1375 return (bitmapobject *) err_nomem();
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1376 bp = NEWOBJ(bitmapobject, &Bitmaptype);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1377 if (bp != NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1378 bp->b_bitmap = bitmap;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1379 bp->b_attr = NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1380 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1381 else
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1382 wfreebitmap(bitmap);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1383 return bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1384 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1385
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1386 /* Bitmap methods */
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1387
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1388 static void
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1389 bitmap_dealloc(bp)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1390 bitmapobject *bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1391 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1392 if (bp->b_bitmap != NULL)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1393 wfreebitmap(bp->b_bitmap);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1394 XDECREF(bp->b_attr);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1395 DEL(bp);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1396 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1397
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1398 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1399 bitmap_close(bp, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1400 bitmapobject *bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1401 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1402 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1403 if (bp->b_bitmap != NULL)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1404 wfreebitmap(bp->b_bitmap);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1405 bp->b_bitmap = NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1406 XDECREF(bp->b_attr);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1407 bp->b_attr = NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1408 INCREF(None);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1409 return None;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1410 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1411
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1412 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1413 bitmap_setbit(self, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1414 bitmapobject *self;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1415 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1416 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1417 int a[3];
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1418 if (!getpointintarg(args, a))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1419 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1420 wsetbit(self->b_bitmap, a[0], a[1], a[2]);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1421 INCREF(None);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1422 return None;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1423 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1424
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1425 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1426 bitmap_getbit(self, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1427 bitmapobject *self;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1428 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1429 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1430 int a[2];
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1431 if (!getpointarg(args, a))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1432 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1433 return newintobject((long) wgetbit(self->b_bitmap, a[0], a[1]));
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1434 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1435
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1436 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1437 bitmap_getsize(self, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1438 bitmapobject *self;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1439 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1440 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1441 int width, height;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1442 if (!getnoarg(args))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1443 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1444 wgetbitmapsize(self->b_bitmap, &width, &height);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1445 return mkvalue("(ii)", width, height);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1446 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1447
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1448 static struct methodlist bitmap_methods[] = {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1449 {"close", bitmap_close},
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1450 {"getsize", bitmap_getsize},
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1451 {"getbit", bitmap_getbit},
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1452 {"setbit", bitmap_setbit},
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1453 {NULL, NULL} /* sentinel */
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1454 };
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1455
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1456 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1457 bitmap_getattr(bp, name)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1458 bitmapobject *bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1459 char *name;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1460 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1461 object *v = NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1462 if (bp->b_bitmap == NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1463 err_setstr(StdwinError, "bitmap object already closed");
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1464 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1465 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1466 if (strcmp(name, "__dict__") == 0) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1467 v = bp->b_attr;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1468 if (v == NULL)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1469 v = None;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1470 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1471 else if (bp->b_attr != NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1472 v = dictlookup(bp->b_attr, name);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1473 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1474 if (v != NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1475 INCREF(v);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1476 return v;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1477 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1478 return findmethod(bitmap_methods, (object *)bp, name);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1479 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1480
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1481 static int
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1482 bitmap_setattr(bp, name, v)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1483 bitmapobject *bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1484 char *name;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1485 object *v;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1486 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1487 if (bp->b_attr == NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1488 bp->b_attr = newdictobject();
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1489 if (bp->b_attr == NULL)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1490 return -1;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1491 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1492 if (v == NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1493 int rv = dictremove(bp->b_attr, name);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1494 if (rv < 0)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1495 err_setstr(AttributeError,
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1496 "delete non-existing bitmap object attribute");
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1497 return rv;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1498 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1499 else
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1500 return dictinsert(bp->b_attr, name, v);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1501 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1502
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1503 typeobject Bitmaptype = {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1504 OB_HEAD_INIT(&Typetype)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1505 0, /*ob_size*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1506 "bitmap", /*tp_name*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1507 sizeof(bitmapobject), /*tp_size*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1508 0, /*tp_itemsize*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1509 /* methods */
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1510 bitmap_dealloc, /*tp_dealloc*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1511 0, /*tp_print*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1512 bitmap_getattr, /*tp_getattr*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1513 bitmap_setattr, /*tp_setattr*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1514 0, /*tp_compare*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1515 0, /*tp_repr*/
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1516 };
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1517
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
1518 #endif /* HAVE_BITMAPS */
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
1519
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1520
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1521 /* Windows */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1522
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1523 #define MAXNWIN 50
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1524 static windowobject *windowlist[MAXNWIN];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1525
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1526 /* Window methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1527
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1528 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1529 window_dealloc(wp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1530 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1531 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1532 if (wp->w_win != NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1533 int tag = wgettag(wp->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1534 if (tag >= 0 && tag < MAXNWIN)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1535 windowlist[tag] = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1536 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1537 fprintf(stderr, "XXX help! tag %d in window_dealloc\n",
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1538 tag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1539 wclose(wp->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1540 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1541 DECREF(wp->w_title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1542 if (wp->w_attr != NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1543 DECREF(wp->w_attr);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1544 free((char *)wp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1545 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1546
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1547 static object *
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1548 window_close(wp, args)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1549 windowobject *wp;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1550 object *args;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1551 {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1552 if (wp->w_win != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1553 int tag = wgettag(wp->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1554 if (tag >= 0 && tag < MAXNWIN)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1555 windowlist[tag] = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1556 wclose(wp->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1557 wp->w_win = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1558 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1559 INCREF(None);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1560 return None;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1561 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1562
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1563 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1564 window_begindrawing(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1565 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1566 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1567 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1568 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1569 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1570 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1571 if (Drawing != NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1572 err_setstr(StdwinError, "already drawing");
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1573 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1574 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1575 dp = NEWOBJ(drawingobject, &Drawingtype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1576 if (dp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1577 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1578 Drawing = dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1579 INCREF(wp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1580 dp->d_ref = wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1581 wbegindrawing(wp->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1582 return (object *)dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1583 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1584
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1585 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1586 window_change(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1587 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1588 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1589 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1590 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1591 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1592 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1593 wchange(wp->w_win, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1594 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1595 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1596 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1597
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1598 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1599 window_gettitle(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1600 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1601 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1602 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1603 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1604 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1605 INCREF(wp->w_title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1606 return wp->w_title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1607 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1608
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1609 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1610 window_getwinpos(wp, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1611 windowobject *wp;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1612 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1613 {
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1614 int h, v;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1615 if (!getnoarg(args))
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1616 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1617 wgetwinpos(wp->w_win, &h, &v);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1618 return makepoint(h, v);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1619 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1620
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1621 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1622 window_getwinsize(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1623 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1624 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1625 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1626 int width, height;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1627 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1628 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1629 wgetwinsize(wp->w_win, &width, &height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1630 return makepoint(width, height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1631 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1632
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1633 static object *
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1634 window_setwinpos(wp, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1635 windowobject *wp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1636 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1637 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1638 int a[2];
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1639 if (!getpointarg(args, a))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1640 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1641 wsetwinpos(wp->w_win, a[0], a[1]);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1642 INCREF(None);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1643 return None;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1644 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1645
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1646 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1647 window_setwinsize(wp, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1648 windowobject *wp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1649 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1650 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1651 int a[2];
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1652 if (!getpointarg(args, a))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1653 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1654 wsetwinsize(wp->w_win, a[0], a[1]);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1655 INCREF(None);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1656 return None;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1657 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1658
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1659 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1660 window_getdocsize(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1661 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1662 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1663 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1664 int width, height;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1665 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1666 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1667 wgetdocsize(wp->w_win, &width, &height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1668 return makepoint(width, height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1669 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1670
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1671 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1672 window_getorigin(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1673 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1674 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1675 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1676 int width, height;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1677 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1678 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1679 wgetorigin(wp->w_win, &width, &height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1680 return makepoint(width, height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1681 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1682
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1683 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1684 window_scroll(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1685 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1686 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1687 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1688 int a[6];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1689 if (!getrectpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1690 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1691 wscroll(wp->w_win, a[0], a[1], a[2], a[3], a[4], a[5]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1692 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1693 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1694 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1695
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1696 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1697 window_setdocsize(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1698 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1699 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1700 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1701 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1702 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1703 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1704 wsetdocsize(wp->w_win, a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1705 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1706 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1707 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1708
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1709 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1710 window_setorigin(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1711 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1712 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1713 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1714 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1715 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1716 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1717 wsetorigin(wp->w_win, a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1718 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1719 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1720 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1721
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1722 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1723 window_settitle(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1724 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1725 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1726 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1727 object *title;
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
1728 if (!getargs(args, "S", &title))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1729 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1730 DECREF(wp->w_title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1731 INCREF(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1732 wp->w_title = title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1733 wsettitle(wp->w_win, getstringvalue(title));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1734 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1735 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1736 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1737
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1738 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1739 window_show(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1740 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1741 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1742 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1743 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1744 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1745 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1746 wshow(wp->w_win, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1747 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1748 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1749 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1750
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1751 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1752 window_settimer(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1753 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1754 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1755 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1756 int a;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1757 if (!getintarg(args, &a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1758 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1759 wsettimer(wp->w_win, a);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1760 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1761 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1762 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1763
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1764 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1765 window_menucreate(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1766 windowobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1767 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1768 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1769 menuobject *mp;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1770 char *title;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1771 if (!getstrarg(args, &title))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1772 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1773 wmenusetdeflocal(1);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1774 mp = newmenuobject(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1775 if (mp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1776 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1777 wmenuattach(self->w_win, mp->m_menu);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1778 return (object *)mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1779 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1780
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1781 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1782 window_textcreate(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1783 windowobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1784 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1785 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1786 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1787 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1788 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1789 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1790 return (object *)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1791 newtextobject(self, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1792 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1793
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1794 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1795 window_setselection(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1796 windowobject *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1797 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1798 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1799 int sel, size, ok;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1800 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1801 if (!getargs(args, "(is#)", &sel, &text, &size))
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1802 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1803 ok = wsetselection(self->w_win, sel, text, size);
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1804 return newintobject(ok);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1805 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1806
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1807 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1808 window_setwincursor(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1809 windowobject *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1810 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1811 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1812 char *name;
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1813 CURSOR *c;
657
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1814 if (!getargs(args, "z", &name))
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1815 return NULL;
657
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1816 if (name == NULL)
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1817 c = NULL;
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1818 else {
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1819 c = wfetchcursor(name);
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1820 if (c == NULL) {
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1821 err_setstr(StdwinError, "no such cursor");
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1822 return NULL;
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1823 }
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1824 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1825 wsetwincursor(self->w_win, c);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1826 INCREF(None);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1827 return None;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1828 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1829
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1830 static object *
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1831 window_setactive(self, args)
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1832 windowobject *self;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1833 object *args;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1834 {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1835 if (!getnoarg(args))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1836 return NULL;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1837 wsetactive(self->w_win);
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1838 INCREF(None);
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1839 return None;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1840 }
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1841
325
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1842 #ifdef CWI_HACKS
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1843 static object *
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1844 window_getxwindowid(self, args)
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1845 windowobject *self;
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1846 object *args;
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1847 {
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1848 long wid = wgetxwindowid(self->w_win);
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1849 return newintobject(wid);
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1850 }
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1851 #endif
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1852
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1853 static struct methodlist window_methods[] = {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1854 {"begindrawing",window_begindrawing},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1855 {"change", window_change},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1856 {"close", window_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1857 {"getdocsize", window_getdocsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1858 {"getorigin", window_getorigin},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1859 {"gettitle", window_gettitle},
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1860 {"getwinpos", window_getwinpos},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1861 {"getwinsize", window_getwinsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1862 {"menucreate", window_menucreate},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1863 {"scroll", window_scroll},
629
42a6b8e1391a Add method to call wsetactive(win).
Guido van Rossum <guido@python.org>
parents: 594
diff changeset
1864 {"setactive", window_setactive},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1865 {"setdocsize", window_setdocsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1866 {"setorigin", window_setorigin},
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1867 {"setselection",window_setselection},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1868 {"settimer", window_settimer},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1869 {"settitle", window_settitle},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1870 {"setwincursor",window_setwincursor},
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1871 {"setwinpos", window_setwinpos},
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
1872 {"setwinsize", window_setwinsize},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1873 {"show", window_show},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1874 {"textcreate", window_textcreate},
325
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1875 #ifdef CWI_HACKS
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1876 {"getxwindowid",window_getxwindowid},
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1877 #endif
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1878 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1879 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1880
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1881 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1882 window_getattr(wp, name)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1883 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1884 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1885 {
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1886 object *v = NULL;
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1887 if (wp->w_win == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1888 err_setstr(StdwinError, "window already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1889 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1890 }
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1891 if (strcmp(name, "__dict__") == 0) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1892 v = wp->w_attr;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1893 if (v == NULL)
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1894 v = None;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1895 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1896 else if (wp->w_attr != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1897 v = dictlookup(wp->w_attr, name);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1898 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1899 if (v != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1900 INCREF(v);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1901 return v;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1902 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1903 return findmethod(window_methods, (object *)wp, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1904 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1905
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1906 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1907 window_setattr(wp, name, v)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1908 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1909 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1910 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1911 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1912 if (wp->w_attr == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1913 wp->w_attr = newdictobject();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1914 if (wp->w_attr == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1915 return -1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1916 }
1031
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1917 if (v == NULL) {
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1918 int rv = dictremove(wp->w_attr, name);
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1919 if (rv < 0)
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1920 err_setstr(AttributeError,
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1921 "delete non-existing menu object attribute");
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1922 return rv;
7a11a70f7f44 classobject.c moduleobject.c stdwinmodule.c xxobject.c:
Guido van Rossum <guido@python.org>
parents: 926
diff changeset
1923 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1924 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1925 return dictinsert(wp->w_attr, name, v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1926 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1927
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1928 typeobject Windowtype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1929 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1930 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1931 "window", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1932 sizeof(windowobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1933 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1934 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1935 window_dealloc, /*tp_dealloc*/
1051
f54e64c8b9b7 * Makefile: added IMGFILE; moved some stuff around.
Guido van Rossum <guido@python.org>
parents: 1031
diff changeset
1936 0, /*tp_print*/
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1937 window_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1938 window_setattr, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1939 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1940 0, /*tp_repr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1941 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1942
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1943 /* Stdwin methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1944
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1945 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1946 stdwin_open(sw, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1947 object *sw;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1948 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1949 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1950 int tag;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1951 object *title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1952 windowobject *wp;
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
1953 if (!getargs(args, "S", &title))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1954 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1955 for (tag = 0; tag < MAXNWIN; tag++) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1956 if (windowlist[tag] == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1957 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1958 }
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1959 if (tag >= MAXNWIN) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1960 err_setstr(StdwinError, "creating too many windows");
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1961 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1962 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1963 wp = NEWOBJ(windowobject, &Windowtype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1964 if (wp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1965 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1966 INCREF(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1967 wp->w_title = title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1968 wp->w_win = wopen(getstringvalue(title), (void (*)()) NULL);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1969 wp->w_attr = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1970 if (wp->w_win == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1971 DECREF(wp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1972 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1973 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1974 windowlist[tag] = wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1975 wsettag(wp->w_win, tag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1976 return (object *)wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1977 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1978
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1979 static object *
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1980 window2object(win)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1981 WINDOW *win;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1982 {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1983 object *w;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1984 if (win == NULL)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1985 w = None;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1986 else {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1987 int tag = wgettag(win);
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1988 if (tag < 0 || tag >= MAXNWIN || windowlist[tag] == NULL ||
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1989 windowlist[tag]->w_win != win)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1990 w = None;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1991 else
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1992 w = (object *)windowlist[tag];
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1993 }
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1994 INCREF(w);
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1995 return w;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1996 }
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1997
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1998 static object *
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1999 stdwin_get_poll_event(poll, args)
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2000 int poll;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2001 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2002 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2003 EVENT e;
818
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2004 object *u, *v, *w;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2005 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2006 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2007 if (Drawing != NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
2008 err_setstr(StdwinError, "cannot getevent() while drawing");
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2009 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2010 }
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2011 again:
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2012 BGN_STDWIN
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2013 if (poll) {
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2014 if (!wpollevent(&e)) {
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2015 RET_STDWIN
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2016 INCREF(None);
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2017 return None;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2018 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2019 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2020 else
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2021 wgetevent(&e);
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2022 END_STDWIN
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2023 if (e.type == WE_COMMAND && e.u.command == WC_CANCEL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2024 /* Turn keyboard interrupts into exceptions */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2025 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2026 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2027 }
65
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
2028 if (e.type == WE_COMMAND && e.u.command == WC_CLOSE) {
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
2029 /* Turn WC_CLOSE commands into WE_CLOSE events */
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
2030 e.type = WE_CLOSE;
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
2031 }
818
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2032 v = window2object(e.window);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2033 switch (e.type) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2034 case WE_CHAR:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2035 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2036 char c[1];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2037 c[0] = e.u.character;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2038 w = newsizedstringobject(c, 1);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2039 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2040 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2041 case WE_COMMAND:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2042 w = newintobject((long)e.u.command);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2043 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2044 case WE_DRAW:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2045 w = makerect(e.u.area.left, e.u.area.top,
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2046 e.u.area.right, e.u.area.bottom);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2047 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2048 case WE_MOUSE_DOWN:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2049 case WE_MOUSE_MOVE:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2050 case WE_MOUSE_UP:
818
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2051 w = mkvalue("((ii)iii)",
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2052 e.u.where.h, e.u.where.v,
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2053 e.u.where.clicks,
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2054 e.u.where.button,
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2055 e.u.where.mask);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2056 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2057 case WE_MENU:
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2058 if (e.u.m.id >= IDOFFSET && e.u.m.id < IDOFFSET+MAXNMENU &&
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2059 menulist[e.u.m.id - IDOFFSET] != NULL)
818
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2060 w = mkvalue("(Oi)",
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2061 menulist[e.u.m.id - IDOFFSET], e.u.m.item);
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2062 else {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2063 /* Ghost menu event.
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2064 Can occur only on the Mac if another part
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2065 of the aplication has installed a menu;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2066 like the THINK C console library. */
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2067 DECREF(v);
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2068 goto again;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2069 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2070 break;
907
32010d355fb6 added WE_KEY detail format to stdwinmodule.c.
Guido van Rossum <guido@python.org>
parents: 902
diff changeset
2071 case WE_KEY:
32010d355fb6 added WE_KEY detail format to stdwinmodule.c.
Guido van Rossum <guido@python.org>
parents: 902
diff changeset
2072 w = mkvalue("(ii)", e.u.key.code, e.u.key.mask);
32010d355fb6 added WE_KEY detail format to stdwinmodule.c.
Guido van Rossum <guido@python.org>
parents: 902
diff changeset
2073 break;
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2074 case WE_LOST_SEL:
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2075 w = newintobject((long)e.u.sel);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2076 break;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2077 default:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2078 w = None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2079 INCREF(w);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2080 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2081 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2082 if (w == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2083 DECREF(v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2084 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2085 }
818
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2086 u = mkvalue("(iOO)", e.type, v, w);
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2087 XDECREF(v);
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2088 XDECREF(w);
e157c12cd6e7 Use mkvalue() instead of painfully constructing values
Guido van Rossum <guido@python.org>
parents: 795
diff changeset
2089 return u;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2090 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2091
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2092 static object *
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2093 stdwin_getevent(sw, args)
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2094 object *sw;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2095 object *args;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2096 {
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2097 return stdwin_get_poll_event(0, args);
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2098 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2099
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2100 static object *
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2101 stdwin_pollevent(sw, args)
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2102 object *sw;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2103 object *args;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2104 {
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2105 return stdwin_get_poll_event(1, args);
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2106 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2107
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2108 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2109 stdwin_setdefwinpos(sw, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2110 object *sw;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2111 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2112 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2113 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2114 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2115 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2116 wsetdefwinpos(a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2117 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2118 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2119 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2120
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2121 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2122 stdwin_setdefwinsize(sw, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2123 object *sw;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2124 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2125 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2126 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2127 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2128 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2129 wsetdefwinsize(a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2130 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2131 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2132 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2133
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2134 static object *
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2135 stdwin_setdefscrollbars(sw, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2136 object *sw;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2137 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2138 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2139 int a[2];
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2140 if (!getpointarg(args, a))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2141 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2142 wsetdefscrollbars(a[0], a[1]);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2143 INCREF(None);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2144 return None;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2145 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2146
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2147 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2148 stdwin_getdefwinpos(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2149 object *self;
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2150 object *args;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2151 {
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2152 int h, v;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2153 if (!getnoarg(args))
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2154 return NULL;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2155 wgetdefwinpos(&h, &v);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2156 return makepoint(h, v);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2157 }
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2158
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2159 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2160 stdwin_getdefwinsize(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2161 object *self;
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2162 object *args;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2163 {
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2164 int width, height;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2165 if (!getnoarg(args))
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2166 return NULL;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2167 wgetdefwinsize(&width, &height);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2168 return makepoint(width, height);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2169 }
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2170
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2171 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2172 stdwin_getdefscrollbars(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2173 object *self;
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2174 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2175 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2176 int h, v;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2177 if (!getnoarg(args))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2178 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2179 wgetdefscrollbars(&h, &v);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2180 return makepoint(h, v);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2181 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2182
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2183 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2184 stdwin_menucreate(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2185 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2186 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2187 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2188 char *title;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2189 if (!getstrarg(args, &title))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2190 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2191 wmenusetdeflocal(0);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2192 return (object *)newmenuobject(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2193 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2194
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2195 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2196 stdwin_askfile(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2197 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2198 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2199 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2200 char *prompt, *dflt;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2201 int new, ret;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2202 char buf[256];
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
2203 if (!getargs(args, "(ssi)", &prompt, &dflt, &new))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2204 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2205 strncpy(buf, dflt, sizeof buf);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2206 buf[sizeof buf - 1] = '\0';
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2207 BGN_STDWIN
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2208 ret = waskfile(prompt, buf, sizeof buf, new);
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2209 END_STDWIN
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2210 if (!ret) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2211 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2212 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2213 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2214 return newstringobject(buf);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2215 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2216
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2217 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2218 stdwin_askync(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2219 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2220 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2221 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2222 char *prompt;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2223 int new, ret;
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
2224 if (!getargs(args, "(si)", &prompt, &new))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2225 return NULL;
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2226 BGN_STDWIN
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2227 ret = waskync(prompt, new);
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2228 END_STDWIN
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2229 if (ret < 0) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2230 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2231 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2232 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2233 return newintobject((long)ret);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2234 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2235
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2236 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2237 stdwin_askstr(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2238 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2239 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2240 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2241 char *prompt, *dflt;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2242 int ret;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2243 char buf[256];
1313
6ee380349c84 * Added gmtime/localtime/mktime and SYSV timezone globals to timemodule.c.
Guido van Rossum <guido@python.org>
parents: 1211
diff changeset
2244 if (!getargs(args, "(ss)", &prompt, &dflt))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2245 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2246 strncpy(buf, dflt, sizeof buf);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2247 buf[sizeof buf - 1] = '\0';
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2248 BGN_STDWIN
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2249 ret = waskstr(prompt, buf, sizeof buf);
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2250 END_STDWIN
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2251 if (!ret) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2252 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2253 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2254 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2255 return newstringobject(buf);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2256 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2257
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2258 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2259 stdwin_message(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2260 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2261 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2262 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2263 char *msg;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2264 if (!getstrarg(args, &msg))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2265 return NULL;
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2266 BGN_STDWIN
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2267 wmessage(msg);
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2268 END_STDWIN
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2269 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2270 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2271 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2272
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2273 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2274 stdwin_fleep(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2275 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2276 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2277 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2278 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2279 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2280 wfleep();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2281 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2282 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2283 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2284
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2285 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2286 stdwin_setcutbuffer(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2287 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2288 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2289 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2290 int i, size;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2291 char *str;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2292 if (!getargs(args, "(is#)", &i, &str, &size))
65
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
2293 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2294 wsetcutbuffer(i, str, size);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2295 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2296 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2297 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2298
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2299 static object *
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2300 stdwin_getactive(self, args)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2301 object *self;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2302 object *args;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2303 {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2304 return window2object(wgetactive());
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2305 }
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2306
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2307 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2308 stdwin_getcutbuffer(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2309 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2310 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2311 {
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2312 int i;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2313 char *str;
50
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2314 int len;
65
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
2315 if (!getintarg(args, &i))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2316 return NULL;
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2317 str = wgetcutbuffer(i, &len);
50
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2318 if (str == NULL) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2319 str = "";
50
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2320 len = 0;
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2321 }
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2322 return newsizedstringobject(str, len);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2323 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2324
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2325 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2326 stdwin_rotatecutbuffers(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2327 object *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2328 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2329 {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2330 int i;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2331 if (!getintarg(args, &i))
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2332 return NULL;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2333 wrotatecutbuffers(i);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2334 INCREF(None);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2335 return None;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2336 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2337
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2338 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2339 stdwin_getselection(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2340 object *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2341 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2342 {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2343 int sel;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2344 char *data;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2345 int len;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2346 if (!getintarg(args, &sel))
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2347 return NULL;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2348 data = wgetselection(sel, &len);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2349 if (data == NULL) {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2350 data = "";
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2351 len = 0;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2352 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2353 return newsizedstringobject(data, len);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2354 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2355
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2356 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2357 stdwin_resetselection(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2358 object *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2359 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2360 {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2361 int sel;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2362 if (!getintarg(args, &sel))
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2363 return NULL;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2364 wresetselection(sel);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2365 INCREF(None);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2366 return None;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2367 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2368
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2369 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2370 stdwin_fetchcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2371 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2372 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2373 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2374 char *colorname;
1198
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2375 COLOR color;
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2376 if (!getstrarg(args, &colorname))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2377 return NULL;
1198
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2378 color = wfetchcolor(colorname);
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2379 #ifdef BADCOLOR
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2380 if (color == BADCOLOR) {
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2381 err_setstr(StdwinError, "color name not found");
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2382 return NULL;
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2383 }
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2384 #endif
2937897a7d8b * Added Fixcprt.py: script to fix copyright message.
Guido van Rossum <guido@python.org>
parents: 1191
diff changeset
2385 return newintobject((long)color);
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2386 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2387
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2388 static object *
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2389 stdwin_getscrsize(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2390 object *self;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2391 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2392 {
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2393 int width, height;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2394 if (!getnoarg(args))
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2395 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2396 wgetscrsize(&width, &height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2397 return makepoint(width, height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2398 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2399
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2400 static object *
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2401 stdwin_getscrmm(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2402 object *self;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2403 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2404 {
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2405 int width, height;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2406 if (!getnoarg(args))
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2407 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2408 wgetscrmm(&width, &height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2409 return makepoint(width, height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2410 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2411
902
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2412 #ifdef unix
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2413 static object *
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2414 stdwin_connectionnumber(self, args)
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2415 object *self;
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2416 object *args;
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2417 {
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2418 if (!getnoarg(args))
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2419 return NULL;
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2420 return newintobject((long) wconnectionnumber());
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2421 }
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2422 #endif
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2423
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2424 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2425 stdwin_listfontnames(self, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2426 object *self;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2427 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2428 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2429 char *pattern;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2430 char **fontnames;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2431 int count;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2432 object *list;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2433 if (!getargs(args, "z", &pattern))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2434 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2435 fontnames = wlistfontnames(pattern, &count);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2436 list = newlistobject(count);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2437 if (list != NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2438 int i;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2439 for (i = 0; i < count; i++) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2440 object *v = newstringobject(fontnames[i]);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2441 if (v == NULL) {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2442 DECREF(list);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2443 list = NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2444 break;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2445 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2446 setlistitem(list, i, v);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2447 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2448 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2449 return list;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2450 }
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2451
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
2452 #ifdef HAVE_BITMAPS
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2453 static object *
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2454 stdwin_newbitmap(self, args)
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2455 object *self;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2456 object *args;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2457 {
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2458 int width, height;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2459 bitmapobject *bp;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2460 if (!getargs(args, "(ii)", &width, &height))
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2461 return NULL;
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2462 return (object *)newbitmapobject(width, height);
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2463 }
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
2464 #endif
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2465
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2466 static struct methodlist stdwin_methods[] = {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2467 {"askfile", stdwin_askfile},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2468 {"askstr", stdwin_askstr},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2469 {"askync", stdwin_askync},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
2470 {"fetchcolor", stdwin_fetchcolor},
902
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2471 #ifdef unix
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2472 {"fileno", stdwin_connectionnumber},
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2473 {"connectionnumber", stdwin_connectionnumber},
a4793ae26682 Changes for new UNIX-specific built-in module 'select' and new header for
Guido van Rossum <guido@python.org>
parents: 818
diff changeset
2474 #endif
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2475 {"fleep", stdwin_fleep},
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2476 {"getactive", stdwin_getactive},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2477 {"getcutbuffer", stdwin_getcutbuffer},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2478 {"getdefscrollbars", stdwin_getdefscrollbars},
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2479 {"getdefwinpos", stdwin_getdefwinpos},
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2480 {"getdefwinsize", stdwin_getdefwinsize},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2481 {"getevent", stdwin_getevent},
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2482 {"getscrmm", stdwin_getscrmm},
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2483 {"getscrsize", stdwin_getscrsize},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
2484 {"getselection", stdwin_getselection},
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2485 {"listfontnames", stdwin_listfontnames},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2486 {"menucreate", stdwin_menucreate},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2487 {"message", stdwin_message},
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
2488 #ifdef HAVE_BITMAPS
1211
406860dfaac7 * stdwinmodule.c: various new commands: setwin{pos,size},
Guido van Rossum <guido@python.org>
parents: 1198
diff changeset
2489 {"newbitmap", stdwin_newbitmap},
1332
e5fb9cdbe050 Final touch before release.
Guido van Rossum <guido@python.org>
parents: 1313
diff changeset
2490 #endif
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2491 {"open", stdwin_open},
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2492 {"pollevent", stdwin_pollevent},
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2493 {"resetselection", stdwin_resetselection},
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2494 {"rotatecutbuffers", stdwin_rotatecutbuffers},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2495 {"setcutbuffer", stdwin_setcutbuffer},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2496 {"setdefscrollbars", stdwin_setdefscrollbars},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2497 {"setdefwinpos", stdwin_setdefwinpos},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2498 {"setdefwinsize", stdwin_setdefwinsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2499
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2500 /* Text measuring methods borrow code from drawing objects: */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2501 {"baseline", drawing_baseline},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2502 {"lineheight", drawing_lineheight},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2503 {"textbreak", drawing_textbreak},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2504 {"textwidth", drawing_textwidth},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2505
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2506 /* Same for font setting methods: */
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2507 {"setfont", drawing_setfont},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2508
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2509 /* Same for color setting/getting methods: */
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2510 {"getbgcolor", drawing_getbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2511 {"getfgcolor", drawing_getfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2512 {"setbgcolor", drawing_setbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2513 {"setfgcolor", drawing_setfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2514
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2515 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2516 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2517
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2518 void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2519 initstdwin()
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2520 {
499
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2521 object *m, *d;
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2522 static int inited = 0;
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2523
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2524 if (!inited) {
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2525 winit();
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2526 inited = 1;
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2527 }
499
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2528 m = initmodule("stdwin", stdwin_methods);
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2529 d = getmoduledict(m);
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2530
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2531 /* Initialize stdwin.error exception */
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2532 StdwinError = newstringobject("stdwin.error");
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2533 if (StdwinError == NULL || dictinsert(d, "error", StdwinError) != 0)
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2534 fatal("can't define stdwin.error");
926
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2535 #ifdef USE_THREAD
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2536 StdwinLock = allocate_lock();
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2537 if (StdwinLock == NULL)
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2538 fatal("can't allocate stdwin lock");
c156d4960c2b * Makefile: cosmetics
Guido van Rossum <guido@python.org>
parents: 907
diff changeset
2539 #endif
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2540 }