annotate Modules/stdwinmodule.c @ 657:3e626c413bbf legacy-trunk

Fixed getargs() call in setfont. Improved setwincursor() to allow None to explicitly turn the cursor off.
author Guido van Rossum <guido@python.org>
date Wed, 05 Feb 1992 11:15:00 +0000
parents 784a09a52375
children 0cd197947d81
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 /***********************************************************
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
2 Copyright 1991 by Stichting Mathematisch Centrum, Amsterdam, The
853b736a6a9e Added copyright notice.
Guido van Rossum <guido@python.org>
parents: 142
diff changeset
3 Netherlands.
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 */
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 /* Rules for translating C stdwin function calls into Python stwin:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 - All names drop their initial letter 'w'
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 - Functions with a window as first parameter are methods of window objects
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 - There is no equivalent for wclose(); just delete the window object
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 (all references to it!) (XXX maybe this is a bad idea)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 - w.begindrawing() returns a drawing object
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 - There is no equivalent for wenddrawing(win); just delete the drawing
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 object (all references to it!) (XXX maybe this is a bad idea)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 - Functions that may only be used inside wbegindrawing / wendddrawing
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 are methods of the drawing object; this includes the text measurement
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 functions (which however have doubles as module functions).
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 - Methods of the drawing object drop an initial 'draw' from their name
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 if they have it, e.g., wdrawline() --> d.line()
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 - The obvious type conversions: int --> intobject; string --> stringobject
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 - 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
50 parameter in Python
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 - A point or other pair of horizontal and vertical coordinates is always
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 a pair of integers in Python
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 - 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
54 pair of points in Python
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 - The arguments to d.elarc() are three points.
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 - The functions wgetclip() and wsetclip() are translated into
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 stdwin.getcutbuffer() and stdwin.setcutbuffer(); 'clip' is really
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
58 a bad word for what these functions do (clipping has a different
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 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
60 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
61 - For textedit, similar rules hold, but they are less strict.
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 XXX more?
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
64
86
a6934380c6e7 "Compiling" version
Guido van Rossum <guido@python.org>
parents: 65
diff changeset
65 #include "allobjects.h"
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
66
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 #include "modsupport.h"
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
68
86
a6934380c6e7 "Compiling" version
Guido van Rossum <guido@python.org>
parents: 65
diff changeset
69 #include "stdwin.h"
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
70
499
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
71 static object *StdwinError; /* Exception stdwin.error */
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
72
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 /* Window and menu object types declared here because of forward references */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
74
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
76 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 object *w_title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
78 WINDOW *w_win;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 object *w_attr; /* Attributes dictionary */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
80 } windowobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
81
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 extern typeobject Windowtype; /* Really static, forward */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
83
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
84 #define is_windowobject(wp) ((wp)->ob_type == &Windowtype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
85
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
86 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 MENU *m_menu;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
89 int m_id;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
90 object *m_attr; /* Attributes dictionary */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
91 } menuobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
92
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
93 extern typeobject Menutype; /* Really static, forward */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
94
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
95 #define is_menuobject(mp) ((mp)->ob_type == &Menutype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
96
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
97
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 /* Strongly stdwin-specific argument handlers */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
99
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
100 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
101 getmenudetail(v, ep)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
102 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
103 EVENT *ep;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
104 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
105 menuobject *mp;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
106 if (!getargs(v, "(Oi)", &mp, &ep->u.m.item))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
107 return 0;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
108 if (!is_menuobject(mp))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
109 return err_badarg();
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
110 ep->u.m.id = mp->m_id;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
111 return 1;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
113
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
114 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
115 geteventarg(v, ep)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
116 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
117 EVENT *ep;
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 object *wp, *detail;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
120 int a[4];
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
121 if (!getargs(v, "(iOO)", &ep->type, &wp, &detail))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
122 return 0;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
123 if (is_windowobject(wp))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
124 ep->window = ((windowobject *)wp) -> w_win;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
125 else if (wp == None)
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
126 ep->window = NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
127 else
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 return err_badarg();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
129 switch (ep->type) {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
130 case WE_CHAR: {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
131 char c;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
132 if (!getargs(detail, "c", &c))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
133 return 0;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
134 ep->u.character = c;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
135 return 1;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
136 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
137 case WE_COMMAND:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
138 return getintarg(detail, &ep->u.command);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
139 case WE_DRAW:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
140 if (!getrectarg(detail, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
141 return 0;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
142 ep->u.area.left = a[0];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
143 ep->u.area.top = a[1];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
144 ep->u.area.right = a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
145 ep->u.area.bottom = a[3];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
146 return 1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
147 case WE_MOUSE_DOWN:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
148 case WE_MOUSE_UP:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
149 case WE_MOUSE_MOVE:
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
150 return getargs(detail, "((ii)iii)",
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
151 &ep->u.where.h, &ep->u.where.v,
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
152 &ep->u.where.clicks,
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
153 &ep->u.where.button,
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
154 &ep->u.where.mask);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
155 case WE_MENU:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
156 return getmenudetail(detail, ep);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
157 default:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
158 return 1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
159 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
160 }
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
163 /* Return construction tools */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
164
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
165 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
166 makepoint(a, b)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
167 int a, b;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
168 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
169 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
170 object *w;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
171 if ((v = newtupleobject(2)) == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
172 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
173 if ((w = newintobject((long)a)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
174 settupleitem(v, 0, w) != 0 ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
175 (w = newintobject((long)b)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
176 settupleitem(v, 1, w) != 0) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
177 DECREF(v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
178 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
179 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
180 return v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
181 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
182
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
183 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
184 makerect(a, b, c, d)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
185 int a, b, c, d;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
186 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
187 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
188 object *w;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
189 if ((v = newtupleobject(2)) == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
190 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
191 if ((w = makepoint(a, b)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
192 settupleitem(v, 0, w) != 0 ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
193 (w = makepoint(c, d)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
194 settupleitem(v, 1, w) != 0) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
195 DECREF(v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
196 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
197 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
198 return v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
199 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
200
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
201 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
202 makemouse(hor, ver, clicks, button, mask)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
203 int hor, ver, clicks, button, mask;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
204 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
205 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
206 object *w;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
207 if ((v = newtupleobject(4)) == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
208 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
209 if ((w = makepoint(hor, ver)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
210 settupleitem(v, 0, w) != 0 ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
211 (w = newintobject((long)clicks)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
212 settupleitem(v, 1, w) != 0 ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
213 (w = newintobject((long)button)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
214 settupleitem(v, 2, w) != 0 ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
215 (w = newintobject((long)mask)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
216 settupleitem(v, 3, w) != 0) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
217 DECREF(v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
218 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
219 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
220 return v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
221 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
222
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
223 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
224 makemenu(mp, item)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
225 object *mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
226 int item;
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 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
229 object *w;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
230 if ((v = newtupleobject(2)) == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
231 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
232 INCREF(mp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
233 if (settupleitem(v, 0, mp) != 0 ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
234 (w = newintobject((long)item)) == NULL ||
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
235 settupleitem(v, 1, w) != 0) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
236 DECREF(v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
237 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
238 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
239 return v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
240 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
241
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
242
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
243 /* Drawing objects */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
244
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
245 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
246 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
247 windowobject *d_ref;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
248 } drawingobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
249
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
250 static drawingobject *Drawing; /* Set to current drawing object, or NULL */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
251
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
252 /* Drawing methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
253
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
254 static object *
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
255 drawing_close(dp)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
256 drawingobject *dp;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
257 {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
258 if (dp->d_ref != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
259 wenddrawing(dp->d_ref->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
260 Drawing = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
261 DECREF(dp->d_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
262 dp->d_ref = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
263 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
264 INCREF(None);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
265 return None;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
266 }
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
267
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
268 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
269 drawing_dealloc(dp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
270 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
271 {
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
272 if (dp->d_ref != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
273 wenddrawing(dp->d_ref->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
274 Drawing = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
275 DECREF(dp->d_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
276 dp->d_ref = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
277 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
278 free((char *)dp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
279 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
280
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
281 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
282 drawing_generic(dp, args, func)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
283 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
284 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
285 void (*func) FPROTO((int, int, int, int));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
286 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
287 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
288 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
289 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
290 (*func)(a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
291 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
292 return None;
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
295 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
296 drawing_line(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
297 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
298 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
299 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
300 return drawing_generic(dp, args, wdrawline);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
301 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
302
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
303 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
304 drawing_xorline(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
305 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
306 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
307 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
308 return drawing_generic(dp, args, wxorline);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
309 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
310
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
311 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
312 drawing_circle(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
313 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
314 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
315 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
316 int a[3];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
317 if (!getpointintarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
318 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
319 wdrawcircle(a[0], a[1], a[2]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
320 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
321 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
322 }
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
323
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
324 static object *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
325 drawing_fillcircle(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
326 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
327 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
328 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
329 int a[3];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
330 if (!getpointintarg(args, a))
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
331 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
332 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
333 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
334 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
335 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
336
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
337 static object *
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
338 drawing_xorcircle(dp, args)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
339 drawingobject *dp;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
340 object *args;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
341 {
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
342 int a[3];
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
343 if (!getpointintarg(args, a))
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
344 return NULL;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
345 wxorcircle(a[0], a[1], a[2]);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
346 INCREF(None);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
347 return None;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
348 }
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
349
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
350 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
351 drawing_elarc(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
352 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
353 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
354 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
355 int a[6];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
356 if (!get3pointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
357 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
358 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
359 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
360 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
361 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
362
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
363 static object *
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
364 drawing_fillelarc(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
365 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
366 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
367 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
368 int a[6];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
369 if (!get3pointarg(args, a))
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
370 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
371 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
372 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
373 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
374 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
375
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
376 static object *
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
377 drawing_xorelarc(dp, args)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
378 drawingobject *dp;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
379 object *args;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
380 {
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
381 int a[6];
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
382 if (!get3pointarg(args, a))
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
383 return NULL;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
384 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
385 INCREF(None);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
386 return None;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
387 }
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
388
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
389 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
390 drawing_box(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
391 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
392 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
393 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
394 return drawing_generic(dp, args, wdrawbox);
6
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
397 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
398 drawing_erase(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
399 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
400 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
401 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
402 return drawing_generic(dp, args, werase);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
403 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
404
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
405 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
406 drawing_paint(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
407 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
408 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
409 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
410 return drawing_generic(dp, args, wpaint);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
411 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
412
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
413 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
414 drawing_invert(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
415 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
416 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
417 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
418 return drawing_generic(dp, args, winvert);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
419 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
420
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
421 static POINT *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
422 getpointsarray(v, psize)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
423 object *v;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
424 int *psize;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
425 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
426 int n = -1;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
427 object * (*getitem) PROTO((object *, int));
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
428 int i;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
429 POINT *points;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
430
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
431 if (v == NULL)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
432 ;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
433 else if (is_listobject(v)) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
434 n = getlistsize(v);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
435 getitem = getlistitem;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
436 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
437 else if (is_tupleobject(v)) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
438 n = gettuplesize(v);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
439 getitem = gettupleitem;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
440 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
441
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
442 if (n <= 0) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
443 (void) err_badarg();
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
444 return NULL;
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 points = NEW(POINT, n);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
448 if (points == NULL) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
449 (void) err_nomem();
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
450 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
451 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
452
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
453 for (i = 0; i < n; i++) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
454 object *w = (*getitem)(v, i);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
455 int a[2];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
456 if (!getpointarg(w, a)) {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
457 DEL(points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
458 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
459 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
460 points[i].h = a[0];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
461 points[i].v = a[1];
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
462 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
463
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
464 *psize = n;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
465 return points;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
466 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
467
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
468 static object *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
469 drawing_poly(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
470 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
471 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
472 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
473 int n;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
474 POINT *points = getpointsarray(args, &n);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
475 if (points == NULL)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
476 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
477 wdrawpoly(n, points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
478 DEL(points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
479 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
480 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
481 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
482
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
483 static object *
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
484 drawing_fillpoly(dp, args)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
485 drawingobject *dp;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
486 object *args;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
487 {
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
488 int n;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
489 POINT *points = getpointsarray(args, &n);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
490 if (points == NULL)
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
491 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
492 wfillpoly(n, points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
493 DEL(points);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
494 INCREF(None);
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
495 return None;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
496 }
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
497
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
498 static object *
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
499 drawing_xorpoly(dp, args)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
500 drawingobject *dp;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
501 object *args;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
502 {
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
503 int n;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
504 POINT *points = getpointsarray(args, &n);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
505 if (points == NULL)
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
506 return NULL;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
507 wxorpoly(n, points);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
508 DEL(points);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
509 INCREF(None);
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
510 return None;
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
511 }
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
512
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
513 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
514 drawing_cliprect(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
515 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
516 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
517 {
157
47cc0ce7999c Return value of drawing_generic was ignored! Foo!
Guido van Rossum <guido@python.org>
parents: 145
diff changeset
518 return drawing_generic(dp, args, wcliprect);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
519 }
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 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
522 drawing_noclip(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
523 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
524 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
525 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
526 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
527 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
528 wnoclip();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
529 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
530 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
531 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
532
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
533 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
534 drawing_shade(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
535 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
536 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
537 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
538 int a[5];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
539 if (!getrectintarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
540 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
541 wshade(a[0], a[1], a[2], a[3], a[4]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
542 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
543 return None;
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
546 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
547 drawing_text(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
548 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
549 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
550 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
551 int h, v, size;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
552 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
553 if (!getargs(args, "((ii)s#)", &h, &v, &text, &size))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
554 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
555 wdrawtext(h, v, text, size);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
556 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
557 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
558 }
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 /* The following four are also used as stdwin functions */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
561
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
562 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
563 drawing_lineheight(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
564 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
565 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
566 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
567 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
568 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
569 return newintobject((long)wlineheight());
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
570 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
571
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
572 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
573 drawing_baseline(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
574 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
575 object *args;
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 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
578 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
579 return newintobject((long)wbaseline());
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
580 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
581
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
582 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
583 drawing_textwidth(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
584 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
585 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
586 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
587 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
588 int size;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
589 if (!getargs(args, "s#", &text, &size))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
590 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
591 return newintobject((long)wtextwidth(text, size));
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
592 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
593
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
594 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
595 drawing_textbreak(dp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
596 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
597 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
598 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
599 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
600 int size, width;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
601 if (!getargs(args, "(s#i)", &text, &size, &width))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
602 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
603 return newintobject((long)wtextbreak(text, size, width));
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
604 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
605
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
606 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
607 drawing_setfont(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
608 drawingobject *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
609 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
610 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
611 char *font;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
612 char style = '\0';
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
613 int size = 0;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
614 if (args == NULL || !is_tupleobject(args)) {
657
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
615 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
616 return NULL;
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
617 }
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
618 else {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
619 int n = gettuplesize(args);
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
620 if (n == 2) {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
621 if (!getargs(args, "(zi)", &font, &size))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
622 return NULL;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
623 }
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
624 else if (!getargs(args, "(zic)", &font, &size, &style)) {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
625 err_clear();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
626 if (!getargs(args, "(zci)", &font, &style, &size))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
627 return NULL;
184
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
628 }
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
629 }
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
630 if (font != NULL)
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
631 wsetfont(font);
184
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
632 if (size != 0)
1b08df41587b More flexible font setting (mainly for the Mac).
Guido van Rossum <guido@python.org>
parents: 171
diff changeset
633 wsetsize(size);
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
634 switch (style) {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
635 case 'b':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
636 wsetbold();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
637 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
638 case 'i':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
639 wsetitalic();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
640 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
641 case 'o':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
642 wsetbolditalic();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
643 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
644 case 'u':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
645 wsetunderline();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
646 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
647 case 'p':
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
648 wsetplain();
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
649 break;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
650 }
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
651 INCREF(None);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
652 return None;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
653 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
654
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
655 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
656 drawing_getbgcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
657 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
658 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
659 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
660 if (!getnoarg(args))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
661 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
662 return newintobject((long)wgetbgcolor());
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
663 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
664
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
665 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
666 drawing_getfgcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
667 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
668 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
669 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
670 if (!getnoarg(args))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
671 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
672 return newintobject((long)wgetfgcolor());
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_setbgcolor(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 wsetbgcolor((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
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
688 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
689 drawing_setfgcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
690 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
691 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
692 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
693 long color;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
694 if (!getlongarg(args, &color))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
695 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
696 wsetfgcolor((COLOR)color);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
697 INCREF(None);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
698 return None;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
699 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
700
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
701 static struct methodlist drawing_methods[] = {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
702 {"box", drawing_box},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
703 {"circle", drawing_circle},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
704 {"cliprect", drawing_cliprect},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
705 {"close", drawing_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
706 {"elarc", drawing_elarc},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
707 {"enddrawing", drawing_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
708 {"erase", drawing_erase},
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
709 {"fillcircle", drawing_fillcircle},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
710 {"fillelarc", drawing_fillelarc},
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
711 {"fillpoly", drawing_fillpoly},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
712 {"invert", drawing_invert},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
713 {"line", drawing_line},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
714 {"noclip", drawing_noclip},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
715 {"paint", drawing_paint},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
716 {"poly", drawing_poly},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
717 {"shade", drawing_shade},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
718 {"text", drawing_text},
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
719 {"xorcircle", drawing_xorcircle},
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
720 {"xorelarc", drawing_xorelarc},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
721 {"xorline", drawing_xorline},
244
47eb81da46dc Added xor functions.
Guido van Rossum <guido@python.org>
parents: 233
diff changeset
722 {"xorpoly", drawing_xorpoly},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
723
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
724 /* Text measuring methods: */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
725 {"baseline", drawing_baseline},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
726 {"lineheight", drawing_lineheight},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
727 {"textbreak", drawing_textbreak},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
728 {"textwidth", drawing_textwidth},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
729
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
730 /* Font setting methods: */
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
731 {"setfont", drawing_setfont},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
732
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
733 /* Color methods: */
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
734 {"getbgcolor", drawing_getbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
735 {"getfgcolor", drawing_getfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
736 {"setbgcolor", drawing_setbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
737 {"setfgcolor", drawing_setfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
738
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
739 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
740 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
741
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
742 static object *
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
743 drawing_getattr(dp, name)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
744 drawingobject *dp;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
745 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
746 {
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
747 if (dp->d_ref == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
748 err_setstr(StdwinError, "drawing object already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
749 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
750 }
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
751 return findmethod(drawing_methods, (object *)dp, name);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
752 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
753
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
754 typeobject Drawingtype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
755 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
756 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
757 "drawing", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
758 sizeof(drawingobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
759 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
760 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
761 drawing_dealloc, /*tp_dealloc*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
762 0, /*tp_print*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
763 drawing_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
764 0, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
765 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
766 0, /*tp_repr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
767 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
768
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
769
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
770 /* Text(edit) objects */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
771
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
772 typedef struct {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
773 OB_HEAD
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
774 TEXTEDIT *t_text;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
775 windowobject *t_ref;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
776 object *t_attr; /* Attributes dictionary */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
777 } textobject;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
778
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
779 extern typeobject Texttype; /* Really static, forward */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
780
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
781 static textobject *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
782 newtextobject(wp, left, top, right, bottom)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
783 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
784 int left, top, right, bottom;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
785 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
786 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
787 tp = NEWOBJ(textobject, &Texttype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
788 if (tp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
789 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
790 tp->t_attr = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
791 INCREF(wp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
792 tp->t_ref = wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
793 tp->t_text = tecreate(wp->w_win, left, top, right, bottom);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
794 if (tp->t_text == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
795 DECREF(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
796 return (textobject *) err_nomem();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
797 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
798 return tp;
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 /* Text(edit) methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
802
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
803 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
804 text_dealloc(tp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
805 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
806 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
807 if (tp->t_text != NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
808 tefree(tp->t_text);
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
809 XDECREF(tp->t_attr);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
810 XDECREF(tp->t_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
811 DEL(tp);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
812 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
813
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
814 static object *
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
815 text_close(tp, args)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
816 textobject *tp;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
817 object *args;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
818 {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
819 if (tp->t_text != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
820 tefree(tp->t_text);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
821 tp->t_text = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
822 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
823 if (tp->t_attr != NULL) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
824 DECREF(tp->t_attr);
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
825 tp->t_attr = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
826 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
827 if (tp->t_ref != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
828 DECREF(tp->t_ref);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
829 tp->t_ref = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
830 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
831 INCREF(None);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
832 return None;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
833 }
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 object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
836 text_arrow(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
837 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
838 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
839 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
840 int code;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
841 if (!getintarg(args, &code))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
842 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
843 tearrow(self->t_text, code);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
844 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
845 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
846 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
847
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
848 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
849 text_draw(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
850 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
851 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
852 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
853 register TEXTEDIT *tp = self->t_text;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
854 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
855 int left, top, right, bottom;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
856 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
857 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
858 if (Drawing != NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
859 err_setstr(StdwinError, "already drawing");
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
860 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
861 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
862 /* Clip to text area and ignore if area is empty */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
863 left = tegetleft(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
864 top = tegettop(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
865 right = tegetright(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
866 bottom = tegetbottom(tp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
867 if (a[0] < left) a[0] = left;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
868 if (a[1] < top) a[1] = top;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
869 if (a[2] > right) a[2] = right;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
870 if (a[3] > bottom) a[3] = bottom;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
871 if (a[0] < a[2] && a[1] < a[3]) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
872 wbegindrawing(self->t_ref->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
873 tedrawnew(tp, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
874 wenddrawing(self->t_ref->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
875 }
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_event(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 EVENT e;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
887 if (!geteventarg(args, &e))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
888 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
889 if (e.type == WE_MOUSE_DOWN) {
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
890 /* Cheat at the margins */
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
891 int width, height;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
892 wgetdocsize(e.window, &width, &height);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
893 if (e.u.where.h < 0 && tegetleft(tp) == 0)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
894 e.u.where.h = 0;
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
895 else if (e.u.where.h > width && tegetright(tp) == width)
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
896 e.u.where.h = width;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
897 if (e.u.where.v < 0 && tegettop(tp) == 0)
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
898 e.u.where.v = 0;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
899 else if (e.u.where.v > height && tegetright(tp) == height)
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
900 e.u.where.v = height;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
901 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
902 return newintobject((long) teevent(tp, &e));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
903 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
904
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
905 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
906 text_getfocus(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
907 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
908 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
909 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
910 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
911 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
912 return makepoint(tegetfoc1(self->t_text), tegetfoc2(self->t_text));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
913 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
914
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
915 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
916 text_getfocustext(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
917 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
918 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
919 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
920 int f1, f2;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
921 char *text;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
922 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
923 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
924 f1 = tegetfoc1(self->t_text);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
925 f2 = tegetfoc2(self->t_text);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
926 text = tegettext(self->t_text);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
927 return newsizedstringobject(text + f1, f2-f1);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
928 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
929
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
930 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
931 text_getrect(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
932 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
933 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
934 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
935 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
936 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
937 return makerect(tegetleft(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
938 tegettop(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
939 tegetright(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
940 tegetbottom(self->t_text));
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
943 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
944 text_gettext(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
945 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
946 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
947 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
948 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
949 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
950 return newsizedstringobject(tegettext(self->t_text),
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
951 tegetlen(self->t_text));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
952 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
953
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
954 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
955 text_move(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
956 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
957 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
958 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
959 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
960 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
961 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
962 temovenew(self->t_text, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
963 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
964 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
965 }
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 static object *
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
968 text_replace(self, args)
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
969 textobject *self;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
970 object *args;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
971 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
972 char *text;
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
973 if (!getstrarg(args, &text))
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
974 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
975 tereplace(self->t_text, text);
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
976 INCREF(None);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
977 return None;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
978 }
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
979
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
980 static object *
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
981 text_setactive(self, args)
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
982 textobject *self;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
983 object *args;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
984 {
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
985 int flag;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
986 if (!getintarg(args, &flag))
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
987 return NULL;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
988 tesetactive(self->t_text, flag);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
989 INCREF(None);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
990 return None;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
991 }
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
992
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
993 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
994 text_setfocus(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
995 textobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
996 object *args;
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 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
999 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1000 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1001 tesetfocus(self->t_text, a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1002 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1003 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1004 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1005
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1006 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1007 text_settext(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1008 textobject *self;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1009 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1010 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1011 char *text;
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1012 char *buf;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1013 int size;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1014 if (!getargs(args, "s#", &text, &size))
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1015 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1016 if ((buf = NEW(char, size)) == NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1017 return err_nomem();
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1018 }
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1019 memcpy(buf, text, size);
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1020 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
1021 INCREF(None);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1022 return None;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1023 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1024
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1025 static object *
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1026 text_setview(self, args)
6
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 {
248
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1030 int a[4];
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1031 if (args == None)
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1032 tenoview(self->t_text);
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1033 else {
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1034 if (!getrectarg(args, a))
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1035 return NULL;
9eb13c67ae6f Added text.setactive and text.setview.
Guido van Rossum <guido@python.org>
parents: 244
diff changeset
1036 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
1037 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1038 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1039 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1040 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1041
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1042 static struct methodlist text_methods[] = {
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1043 {"arrow", text_arrow},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1044 {"close", text_close},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1045 {"draw", text_draw},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1046 {"event", text_event},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1047 {"getfocus", text_getfocus},
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1048 {"getfocustext",text_getfocustext},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1049 {"getrect", text_getrect},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1050 {"gettext", text_gettext},
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1051 {"move", text_move},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1052 {"replace", text_replace},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1053 {"setactive", text_setactive},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1054 {"setfocus", text_setfocus},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1055 {"settext", text_settext},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1056 {"setview", text_setview},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1057 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1058 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1059
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1060 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1061 text_getattr(tp, name)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1062 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1063 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1064 {
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1065 object *v = NULL;
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1066 if (tp->t_ref == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1067 err_setstr(StdwinError, "text object already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1068 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1069 }
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1070 if (strcmp(name, "__dict__") == 0) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1071 v = tp->t_attr;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1072 if (v == NULL)
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1073 v = None;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1074 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1075 else if (tp->t_attr != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1076 v = dictlookup(tp->t_attr, name);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1077 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1078 if (v != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1079 INCREF(v);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1080 return v;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1081 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1082 return findmethod(text_methods, (object *)tp, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1083 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1084
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1085 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1086 text_setattr(tp, name, v)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1087 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1088 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1089 object *v;
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 if (tp->t_attr == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1092 tp->t_attr = newdictobject();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1093 if (tp->t_attr == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1094 return -1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1095 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1096 if (v == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1097 return dictremove(tp->t_attr, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1098 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1099 return dictinsert(tp->t_attr, name, v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1100 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1101
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1102 typeobject Texttype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1103 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1104 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1105 "textedit", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1106 sizeof(textobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1107 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1108 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1109 text_dealloc, /*tp_dealloc*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1110 0, /*tp_print*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1111 text_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1112 text_setattr, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1113 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1114 0, /*tp_repr*/
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1118 /* Menu objects */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1119
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1120 #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
1121 #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
1122 static menuobject *menulist[MAXNMENU];
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1123
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1124 static menuobject *newmenuobject PROTO((char *));
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1125 static menuobject *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1126 newmenuobject(title)
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1127 char *title;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1128 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1129 int id;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1130 MENU *menu;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1131 menuobject *mp;
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1132 for (id = 0; id < MAXNMENU; id++) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1133 if (menulist[id] == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1134 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1135 }
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1136 if (id >= MAXNMENU) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1137 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
1138 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1139 }
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1140 menu = wmenucreate(id + IDOFFSET, title);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1141 if (menu == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1142 return (menuobject *) err_nomem();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1143 mp = NEWOBJ(menuobject, &Menutype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1144 if (mp != NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1145 mp->m_menu = menu;
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1146 mp->m_id = id + IDOFFSET;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1147 mp->m_attr = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1148 menulist[id] = mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1149 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1150 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1151 wmenudelete(menu);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1152 return mp;
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 methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1156
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1157 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1158 menu_dealloc(mp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1159 menuobject *mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1160 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1161
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1162 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
1163 if (id >= 0 && id < MAXNMENU && menulist[id] == mp) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1164 menulist[id] = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1165 }
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1166 if (mp->m_menu != NULL)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1167 wmenudelete(mp->m_menu);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1168 XDECREF(mp->m_attr);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1169 DEL(mp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1170 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1171
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1172 static object *
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1173 menu_close(mp, args)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1174 menuobject *mp;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1175 object *args;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1176 {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1177 int id = mp->m_id - IDOFFSET;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1178 if (id >= 0 && id < MAXNMENU && menulist[id] == mp) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1179 menulist[id] = NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1180 }
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1181 mp->m_id = -1;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1182 if (mp->m_menu != NULL)
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1183 wmenudelete(mp->m_menu);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1184 mp->m_menu = NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1185 XDECREF(mp->m_attr);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1186 mp->m_attr = NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1187 INCREF(None);
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1188 return None;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1189 }
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1190
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1191 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1192 menu_additem(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1193 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1194 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1195 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1196 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1197 int shortcut = -1;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1198 if (is_tupleobject(args)) {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1199 char c;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1200 if (!getargs(args, "(sc)", &text, &c))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1201 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1202 shortcut = c;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1203 }
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1204 else if (!getstrarg(args, &text))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1205 return NULL;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1206 wmenuadditem(self->m_menu, text, shortcut);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1207 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1208 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1209 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1210
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1211 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1212 menu_setitem(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1213 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1214 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1215 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1216 int index;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1217 char *text;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1218 if (!getintstrarg(args, &index, &text))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1219 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1220 wmenusetitem(self->m_menu, index, text);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1221 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1222 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1223 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1224
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1225 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1226 menu_enable(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1227 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1228 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1229 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1230 int index;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1231 int flag;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1232 if (!getintintarg(args, &index, &flag))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1233 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1234 wmenuenable(self->m_menu, index, flag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1235 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1236 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1237 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1238
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1239 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1240 menu_check(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1241 menuobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1242 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1243 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1244 int index;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1245 int flag;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1246 if (!getintintarg(args, &index, &flag))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1247 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1248 wmenucheck(self->m_menu, index, flag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1249 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1250 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1251 }
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 static struct methodlist menu_methods[] = {
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1254 {"additem", menu_additem},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1255 {"setitem", menu_setitem},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1256 {"enable", menu_enable},
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1257 {"check", menu_check},
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1258 {"close", menu_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1259 {NULL, NULL} /* sentinel */
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_getattr(mp, name)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1264 menuobject *mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1265 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1266 {
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1267 object *v = NULL;
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1268 if (mp->m_menu == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1269 err_setstr(StdwinError, "menu object already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1270 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1271 }
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1272 if (strcmp(name, "__dict__") == 0) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1273 v = mp->m_attr;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1274 if (v == NULL)
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1275 v = None;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1276 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1277 else if (mp->m_attr != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1278 v = dictlookup(mp->m_attr, name);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1279 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1280 if (v != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1281 INCREF(v);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1282 return v;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1283 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1284 return findmethod(menu_methods, (object *)mp, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1285 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1286
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1287 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1288 menu_setattr(mp, name, v)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1289 menuobject *mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1290 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1291 object *v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1292 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1293 if (mp->m_attr == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1294 mp->m_attr = newdictobject();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1295 if (mp->m_attr == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1296 return -1;
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 if (v == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1299 return dictremove(mp->m_attr, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1300 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1301 return dictinsert(mp->m_attr, name, v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1302 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1303
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1304 typeobject Menutype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1305 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1306 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1307 "menu", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1308 sizeof(menuobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1309 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1310 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1311 menu_dealloc, /*tp_dealloc*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1312 0, /*tp_print*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1313 menu_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1314 menu_setattr, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1315 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1316 0, /*tp_repr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1317 };
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1318
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1319
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1320 /* Windows */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1321
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1322 #define MAXNWIN 50
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1323 static windowobject *windowlist[MAXNWIN];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1324
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1325 /* Window methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1326
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1327 static void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1328 window_dealloc(wp)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1329 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1330 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1331 if (wp->w_win != NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1332 int tag = wgettag(wp->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1333 if (tag >= 0 && tag < MAXNWIN)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1334 windowlist[tag] = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1335 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1336 fprintf(stderr, "XXX help! tag %d in window_dealloc\n",
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1337 tag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1338 wclose(wp->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1339 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1340 DECREF(wp->w_title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1341 if (wp->w_attr != NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1342 DECREF(wp->w_attr);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1343 free((char *)wp);
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
285
85bd7dac13f3 printobject now returns an error code
Guido van Rossum <guido@python.org>
parents: 252
diff changeset
1346 static int
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1347 window_print(wp, fp, flags)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1348 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1349 FILE *fp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1350 int flags;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1351 {
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1352 fprintf(fp, "<%s window titled '%s'>",
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1353 wp->w_win == NULL ? "closed" : "open",
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1354 getstringvalue(wp->w_title));
285
85bd7dac13f3 printobject now returns an error code
Guido van Rossum <guido@python.org>
parents: 252
diff changeset
1355 return 0;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1356 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1357
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1358 static object *
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1359 window_close(wp, args)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1360 windowobject *wp;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1361 object *args;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1362 {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1363 if (wp->w_win != NULL) {
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1364 int tag = wgettag(wp->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1365 if (tag >= 0 && tag < MAXNWIN)
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1366 windowlist[tag] = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1367 wclose(wp->w_win);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1368 wp->w_win = NULL;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1369 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1370 INCREF(None);
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1371 return None;
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1372 }
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1373
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1374 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1375 window_begindrawing(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1376 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1377 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1378 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1379 drawingobject *dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1380 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1381 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1382 if (Drawing != NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1383 err_setstr(StdwinError, "already drawing");
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1384 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1385 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1386 dp = NEWOBJ(drawingobject, &Drawingtype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1387 if (dp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1388 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1389 Drawing = dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1390 INCREF(wp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1391 dp->d_ref = wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1392 wbegindrawing(wp->w_win);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1393 return (object *)dp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1394 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1395
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1396 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1397 window_change(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1398 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1399 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1400 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1401 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1402 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1403 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1404 wchange(wp->w_win, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1405 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1406 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1407 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1408
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1409 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1410 window_gettitle(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1411 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1412 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1413 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1414 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1415 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1416 INCREF(wp->w_title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1417 return wp->w_title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1418 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1419
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1420 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1421 window_getwinpos(wp, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1422 windowobject *wp;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1423 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1424 {
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1425 int h, v;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1426 if (!getnoarg(args))
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1427 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1428 wgetwinpos(wp->w_win, &h, &v);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1429 return makepoint(h, v);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1430 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1431
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1432 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1433 window_getwinsize(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1434 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1435 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1436 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1437 int width, height;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1438 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1439 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1440 wgetwinsize(wp->w_win, &width, &height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1441 return makepoint(width, height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1442 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1443
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1444 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1445 window_getdocsize(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1446 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1447 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1448 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1449 int width, height;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1450 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1451 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1452 wgetdocsize(wp->w_win, &width, &height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1453 return makepoint(width, height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1454 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1455
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1456 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1457 window_getorigin(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1458 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1459 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1460 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1461 int width, height;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1462 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1463 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1464 wgetorigin(wp->w_win, &width, &height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1465 return makepoint(width, height);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1466 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1467
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1468 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1469 window_scroll(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1470 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1471 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1472 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1473 int a[6];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1474 if (!getrectpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1475 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1476 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
1477 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1478 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1479 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1480
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1481 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1482 window_setdocsize(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1483 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1484 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1485 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1486 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1487 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1488 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1489 wsetdocsize(wp->w_win, a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1490 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1491 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1492 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1493
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1494 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1495 window_setorigin(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1496 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1497 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1498 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1499 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1500 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1501 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1502 wsetorigin(wp->w_win, a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1503 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1504 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1505 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1506
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1507 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1508 window_settitle(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1509 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1510 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1511 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1512 object *title;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1513 if (!getStrarg(args, &title))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1514 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1515 DECREF(wp->w_title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1516 INCREF(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1517 wp->w_title = title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1518 wsettitle(wp->w_win, getstringvalue(title));
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1519 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1520 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1521 }
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 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1524 window_show(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1525 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1526 object *args;
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 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1529 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1530 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1531 wshow(wp->w_win, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1532 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1533 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1534 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1535
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1536 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1537 window_settimer(wp, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1538 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1539 object *args;
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 int a;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1542 if (!getintarg(args, &a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1543 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1544 wsettimer(wp->w_win, a);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1545 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1546 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1547 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1548
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1549 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1550 window_menucreate(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1551 windowobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1552 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1553 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1554 menuobject *mp;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1555 char *title;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1556 if (!getstrarg(args, &title))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1557 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1558 wmenusetdeflocal(1);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1559 mp = newmenuobject(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1560 if (mp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1561 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1562 wmenuattach(self->w_win, mp->m_menu);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1563 return (object *)mp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1564 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1565
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1566 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1567 window_textcreate(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1568 windowobject *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1569 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1570 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1571 textobject *tp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1572 int a[4];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1573 if (!getrectarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1574 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1575 return (object *)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1576 newtextobject(self, a[0], a[1], a[2], a[3]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1577 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1578
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1579 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1580 window_setselection(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1581 windowobject *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1582 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1583 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1584 int sel, size, ok;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1585 char *text;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1586 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
1587 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1588 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
1589 return newintobject(ok);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1590 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1591
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1592 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1593 window_setwincursor(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1594 windowobject *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1595 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1596 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1597 char *name;
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1598 CURSOR *c;
657
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1599 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
1600 return NULL;
657
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1601 if (name == NULL)
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1602 c = NULL;
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1603 else {
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1604 c = wfetchcursor(name);
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1605 if (c == NULL) {
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1606 err_setstr(StdwinError, "no such cursor");
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1607 return NULL;
3e626c413bbf Fixed getargs() call in setfont.
Guido van Rossum <guido@python.org>
parents: 635
diff changeset
1608 }
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1609 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1610 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
1611 INCREF(None);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1612 return None;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1613 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1614
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1615 static object *
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1616 window_setactive(self, args)
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1617 windowobject *self;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1618 object *args;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1619 {
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1620 if (!getnoarg(args))
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1621 return NULL;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1622 wsetactive(self->w_win);
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1623 INCREF(None);
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1624 return None;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1625 }
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1626
325
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1627 #ifdef CWI_HACKS
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1628 static object *
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1629 window_getxwindowid(self, args)
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1630 windowobject *self;
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1631 object *args;
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1632 {
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1633 long wid = wgetxwindowid(self->w_win);
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1634 return newintobject(wid);
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1635 }
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1636 #endif
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1637
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1638 static struct methodlist window_methods[] = {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1639 {"begindrawing",window_begindrawing},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1640 {"change", window_change},
453
34abca182f18 Enclosed method lists in braces.
Guido van Rossum <guido@python.org>
parents: 397
diff changeset
1641 {"close", window_close},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1642 {"getdocsize", window_getdocsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1643 {"getorigin", window_getorigin},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1644 {"gettitle", window_gettitle},
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1645 {"getwinpos", window_getwinpos},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1646 {"getwinsize", window_getwinsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1647 {"menucreate", window_menucreate},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1648 {"scroll", window_scroll},
629
42a6b8e1391a Add method to call wsetactive(win).
Guido van Rossum <guido@python.org>
parents: 594
diff changeset
1649 {"setactive", window_setactive},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1650 {"setdocsize", window_setdocsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1651 {"setorigin", window_setorigin},
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1652 {"setselection",window_setselection},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1653 {"settimer", window_settimer},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1654 {"settitle", window_settitle},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1655 {"setwincursor",window_setwincursor},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1656 {"show", window_show},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1657 {"textcreate", window_textcreate},
325
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1658 #ifdef CWI_HACKS
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1659 {"getxwindowid",window_getxwindowid},
baada20762b0 Added getxwindowin() method
Guido van Rossum <guido@python.org>
parents: 285
diff changeset
1660 #endif
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1661 {NULL, NULL} /* sentinel */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1662 };
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 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1665 window_getattr(wp, name)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1666 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1667 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1668 {
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1669 object *v = NULL;
594
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1670 if (wp->w_win == NULL) {
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1671 err_setstr(StdwinError, "window already closed");
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1672 return NULL;
47c42ea67a8b Added close method for menus.
Guido van Rossum <guido@python.org>
parents: 499
diff changeset
1673 }
397
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1674 if (strcmp(name, "__dict__") == 0) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1675 v = wp->w_attr;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1676 if (v == NULL)
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1677 v = None;
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1678 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1679 else if (wp->w_attr != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1680 v = dictlookup(wp->w_attr, name);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1681 }
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1682 if (v != NULL) {
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1683 INCREF(v);
4cdcc16bd080 Added __dict__ attributes all over the place.
Guido van Rossum <guido@python.org>
parents: 325
diff changeset
1684 return v;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1685 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1686 return findmethod(window_methods, (object *)wp, name);
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1689 static int
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1690 window_setattr(wp, name, v)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1691 windowobject *wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1692 char *name;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1693 object *v;
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 if (wp->w_attr == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1696 wp->w_attr = newdictobject();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1697 if (wp->w_attr == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1698 return -1;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1699 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1700 if (v == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1701 return dictremove(wp->w_attr, name);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1702 else
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1703 return dictinsert(wp->w_attr, name, v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1704 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1705
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1706 typeobject Windowtype = {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1707 OB_HEAD_INIT(&Typetype)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1708 0, /*ob_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1709 "window", /*tp_name*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1710 sizeof(windowobject), /*tp_size*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1711 0, /*tp_itemsize*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1712 /* methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1713 window_dealloc, /*tp_dealloc*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1714 window_print, /*tp_print*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1715 window_getattr, /*tp_getattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1716 window_setattr, /*tp_setattr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1717 0, /*tp_compare*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1718 0, /*tp_repr*/
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1719 };
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 /* Stdwin methods */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1722
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1723 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1724 stdwin_open(sw, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1725 object *sw;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1726 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1727 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1728 int tag;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1729 object *title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1730 windowobject *wp;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1731 if (!getStrarg(args, &title))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1732 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1733 for (tag = 0; tag < MAXNWIN; tag++) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1734 if (windowlist[tag] == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1735 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1736 }
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1737 if (tag >= MAXNWIN) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1738 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
1739 return NULL;
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
1740 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1741 wp = NEWOBJ(windowobject, &Windowtype);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1742 if (wp == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1743 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1744 INCREF(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1745 wp->w_title = title;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1746 wp->w_win = wopen(getstringvalue(title), (void (*)()) NULL);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1747 wp->w_attr = NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1748 if (wp->w_win == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1749 DECREF(wp);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1750 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1751 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1752 windowlist[tag] = wp;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1753 wsettag(wp->w_win, tag);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1754 return (object *)wp;
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
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1757 static object *
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1758 window2object(win)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1759 WINDOW *win;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1760 {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1761 object *w;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1762 if (win == NULL)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1763 w = None;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1764 else {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1765 int tag = wgettag(win);
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1766 if (tag < 0 || tag >= MAXNWIN || windowlist[tag] == NULL ||
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1767 windowlist[tag]->w_win != win)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1768 w = None;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1769 else
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1770 w = (object *)windowlist[tag];
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1771 }
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1772 INCREF(w);
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1773 return w;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1774 }
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1775
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1776 static object *
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1777 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
1778 int poll;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1779 object *args;
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 EVENT e;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1782 object *v, *w;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1783 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1784 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1785 if (Drawing != NULL) {
475
e2c3463c4d91 Use new exceptions.
Guido van Rossum <guido@python.org>
parents: 453
diff changeset
1786 err_setstr(StdwinError, "cannot getevent() while drawing");
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1787 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1788 }
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1789 again:
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1790 if (poll) {
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1791 if (!wpollevent(&e)) {
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1792 INCREF(None);
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1793 return None;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1794 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1795 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1796 else
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1797 wgetevent(&e);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1798 if (e.type == WE_COMMAND && e.u.command == WC_CANCEL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1799 /* Turn keyboard interrupts into exceptions */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1800 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1801 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1802 }
65
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
1803 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
1804 /* 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
1805 e.type = WE_CLOSE;
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
1806 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1807 v = newtupleobject(3);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1808 if (v == NULL)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1809 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1810 if ((w = newintobject((long)e.type)) == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1811 DECREF(v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1812 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1813 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1814 settupleitem(v, 0, w);
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1815 settupleitem(v, 1, window2object(e.window));
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1816 switch (e.type) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1817 case WE_CHAR:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1818 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1819 char c[1];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1820 c[0] = e.u.character;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1821 w = newsizedstringobject(c, 1);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1822 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1823 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1824 case WE_COMMAND:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1825 w = newintobject((long)e.u.command);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1826 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1827 case WE_DRAW:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1828 w = makerect(e.u.area.left, e.u.area.top,
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1829 e.u.area.right, e.u.area.bottom);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1830 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1831 case WE_MOUSE_DOWN:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1832 case WE_MOUSE_MOVE:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1833 case WE_MOUSE_UP:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1834 w = makemouse(e.u.where.h, e.u.where.v,
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1835 e.u.where.clicks,
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1836 e.u.where.button,
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1837 e.u.where.mask);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1838 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1839 case WE_MENU:
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1840 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
1841 menulist[e.u.m.id - IDOFFSET] != NULL)
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
1842 w = (object *)menulist[e.u.m.id - IDOFFSET];
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1843 else {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1844 /* Ghost menu event.
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1845 Can occur only on the Mac if another part
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1846 of the aplication has installed a menu;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1847 like the THINK C console library. */
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1848 DECREF(v);
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1849 goto again;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
1850 }
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1851 w = makemenu(w, e.u.m.item);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1852 break;
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1853 case WE_LOST_SEL:
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
1854 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
1855 break;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1856 default:
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1857 w = None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1858 INCREF(w);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1859 break;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1860 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1861 if (w == NULL) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1862 DECREF(v);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1863 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1864 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1865 settupleitem(v, 2, w);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1866 return v;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1867 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1868
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1869 static object *
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1870 stdwin_getevent(sw, args)
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1871 object *sw;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1872 object *args;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1873 {
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1874 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
1875 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1876
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1877 static object *
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1878 stdwin_pollevent(sw, args)
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1879 object *sw;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1880 object *args;
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1881 {
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1882 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
1883 }
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1884
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
1885 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1886 stdwin_setdefwinpos(sw, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1887 object *sw;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1888 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1889 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1890 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1891 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1892 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1893 wsetdefwinpos(a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1894 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1895 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1896 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1897
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1898 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1899 stdwin_setdefwinsize(sw, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1900 object *sw;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1901 object *args;
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 int a[2];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1904 if (!getpointarg(args, a))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1905 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1906 wsetdefwinsize(a[0], a[1]);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1907 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1908 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1909 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1910
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1911 static object *
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1912 stdwin_setdefscrollbars(sw, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1913 object *sw;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1914 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1915 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1916 int a[2];
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1917 if (!getpointarg(args, a))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1918 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1919 wsetdefscrollbars(a[0], a[1]);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1920 INCREF(None);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1921 return None;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1922 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1923
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1924 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1925 stdwin_getdefwinpos(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1926 object *self;
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1927 object *args;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1928 {
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1929 int h, v;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1930 if (!getnoarg(args))
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1931 return NULL;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1932 wgetdefwinpos(&h, &v);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1933 return makepoint(h, v);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1934 }
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1935
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1936 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1937 stdwin_getdefwinsize(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1938 object *self;
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1939 object *args;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1940 {
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1941 int width, height;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1942 if (!getnoarg(args))
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1943 return NULL;
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1944 wgetdefwinsize(&width, &height);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1945 return makepoint(width, height);
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1946 }
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1947
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
1948 static object *
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1949 stdwin_getdefscrollbars(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
1950 object *self;
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1951 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1952 {
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1953 int h, v;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1954 if (!getnoarg(args))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1955 return NULL;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1956 wgetdefscrollbars(&h, &v);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1957 return makepoint(h, v);
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1958 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1959
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
1960 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1961 stdwin_menucreate(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1962 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1963 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1964 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1965 char *title;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1966 if (!getstrarg(args, &title))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1967 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1968 wmenusetdeflocal(0);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1969 return (object *)newmenuobject(title);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1970 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1971
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1972 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1973 stdwin_askfile(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1974 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1975 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1976 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1977 char *prompt, *dflt;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1978 int new, ret;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1979 char buf[256];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1980 if (!getstrstrintarg(args, &prompt, &dflt, &new))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1981 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1982 strncpy(buf, dflt, sizeof buf);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1983 buf[sizeof buf - 1] = '\0';
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1984 ret = waskfile(prompt, buf, sizeof buf, new);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1985 if (!ret) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1986 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1987 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1988 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1989 return newstringobject(buf);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1990 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1991
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1992 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1993 stdwin_askync(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1994 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1995 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1996 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
1997 char *prompt;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1998 int new, ret;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
1999 if (!getstrintarg(args, &prompt, &new))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2000 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2001 ret = waskync(prompt, new);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2002 if (ret < 0) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2003 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2004 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2005 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2006 return newintobject((long)ret);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2007 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2008
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2009 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2010 stdwin_askstr(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2011 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2012 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2013 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2014 char *prompt, *dflt;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2015 int ret;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2016 char buf[256];
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2017 if (!getstrstrarg(args, &prompt, &dflt))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2018 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2019 strncpy(buf, dflt, sizeof buf);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2020 buf[sizeof buf - 1] = '\0';
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2021 ret = waskstr(prompt, buf, sizeof buf);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2022 if (!ret) {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2023 err_set(KeyboardInterrupt);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2024 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2025 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2026 return newstringobject(buf);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2027 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2028
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2029 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2030 stdwin_message(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2031 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2032 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2033 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2034 char *msg;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2035 if (!getstrarg(args, &msg))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2036 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2037 wmessage(msg);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2038 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2039 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2040 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2041
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2042 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2043 stdwin_fleep(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2044 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2045 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2046 {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2047 if (!getnoarg(args))
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2048 return NULL;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2049 wfleep();
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2050 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2051 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2052 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2053
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2054 static object *
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2055 stdwin_setcutbuffer(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2056 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2057 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2058 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2059 int i, size;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2060 char *str;
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2061 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
2062 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2063 wsetcutbuffer(i, str, size);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2064 INCREF(None);
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2065 return None;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2066 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2067
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2068 static object *
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2069 stdwin_getactive(self, args)
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2070 object *self;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2071 object *args;
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2072 {
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2073 return window2object(wgetactive());
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2074 }
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2075
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2076 static object *
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2077 stdwin_getcutbuffer(self, args)
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2078 object *self;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2079 object *args;
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2080 {
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2081 int i;
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2082 char *str;
50
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2083 int len;
65
a72c0a7dc993 Turn close commands into WE_CLOSE events.
Guido van Rossum <guido@python.org>
parents: 51
diff changeset
2084 if (!getintarg(args, &i))
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2085 return NULL;
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2086 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
2087 if (str == NULL) {
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2088 str = "";
50
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2089 len = 0;
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2090 }
b94822f54991 Change set/getcutbuffer to use the new stdwin interface.
Guido van Rossum <guido@python.org>
parents: 6
diff changeset
2091 return newsizedstringobject(str, len);
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2092 }
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2093
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2094 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2095 stdwin_rotatecutbuffers(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2096 object *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2097 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2098 {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2099 int i;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2100 if (!getintarg(args, &i))
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2101 return NULL;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2102 wrotatecutbuffers(i);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2103 INCREF(None);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2104 return None;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2105 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2106
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2107 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2108 stdwin_getselection(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2109 object *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2110 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2111 {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2112 int sel;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2113 char *data;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2114 int len;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2115 if (!getintarg(args, &sel))
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2116 return NULL;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2117 data = wgetselection(sel, &len);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2118 if (data == NULL) {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2119 data = "";
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2120 len = 0;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2121 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2122 return newsizedstringobject(data, len);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2123 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2124
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2125 static object *
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2126 stdwin_resetselection(self, args)
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2127 object *self;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2128 object *args;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2129 {
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2130 int sel;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2131 if (!getintarg(args, &sel))
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2132 return NULL;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2133 wresetselection(sel);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2134 INCREF(None);
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2135 return None;
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2136 }
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2137
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2138 static object *
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2139 stdwin_fetchcolor(self, args)
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2140 object *self;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2141 object *args;
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2142 {
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2143 char *colorname;
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2144 if (!getstrarg(args, &colorname))
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2145 return NULL;
635
784a09a52375 Use getargs() function.
Guido van Rossum <guido@python.org>
parents: 629
diff changeset
2146 return newintobject((long)wfetchcolor(colorname));
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2147 }
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2148
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2149 static object *
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2150 stdwin_getscrsize(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2151 object *self;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2152 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2153 {
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2154 int width, height;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2155 if (!getnoarg(args))
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2156 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2157 wgetscrsize(&width, &height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2158 return makepoint(width, height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2159 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2160
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2161 static object *
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2162 stdwin_getscrmm(self, args)
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2163 object *self;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2164 object *args;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2165 {
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2166 int width, height;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2167 if (!getnoarg(args))
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2168 return NULL;
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2169 wgetscrmm(&width, &height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2170 return makepoint(width, height);
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2171 }
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2172
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2173 static struct methodlist stdwin_methods[] = {
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2174 {"askfile", stdwin_askfile},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2175 {"askstr", stdwin_askstr},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2176 {"askync", stdwin_askync},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
2177 {"fetchcolor", stdwin_fetchcolor},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2178 {"fleep", stdwin_fleep},
252
6811912f672d Don't suppress wsetfont("");
Guido van Rossum <guido@python.org>
parents: 248
diff changeset
2179 {"getactive", stdwin_getactive},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2180 {"getcutbuffer", stdwin_getcutbuffer},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2181 {"getdefscrollbars", stdwin_getdefscrollbars},
137
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2182 {"getdefwinpos", stdwin_getdefwinpos},
82ef94b8b902 Add getdefwinpos, getdefwinsize;
Guido van Rossum <guido@python.org>
parents: 114
diff changeset
2183 {"getdefwinsize", stdwin_getdefwinsize},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2184 {"getevent", stdwin_getevent},
233
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2185 {"getscrmm", stdwin_getscrmm},
8f62a5457319 Added many new functions
Guido van Rossum <guido@python.org>
parents: 207
diff changeset
2186 {"getscrsize", stdwin_getscrsize},
207
9ab329697dda Add filled drawing methods and polygon methods.
Guido van Rossum <guido@python.org>
parents: 186
diff changeset
2187 {"getselection", stdwin_getselection},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2188 {"menucreate", stdwin_menucreate},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2189 {"message", stdwin_message},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2190 {"open", stdwin_open},
114
1efb8ed6afd3 Added pollevent(); returns None if no event available.
Guido van Rossum <guido@python.org>
parents: 86
diff changeset
2191 {"pollevent", stdwin_pollevent},
51
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2192 {"resetselection", stdwin_resetselection},
ebcb626cfddf Added w.setwincursor(), selection, and new cut buffer interface.
Guido van Rossum <guido@python.org>
parents: 50
diff changeset
2193 {"rotatecutbuffers", stdwin_rotatecutbuffers},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2194 {"setcutbuffer", stdwin_setcutbuffer},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2195 {"setdefscrollbars", stdwin_setdefscrollbars},
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2196 {"setdefwinpos", stdwin_setdefwinpos},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2197 {"setdefwinsize", stdwin_setdefwinsize},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2198
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2199 /* Text measuring methods borrow code from drawing objects: */
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2200 {"baseline", drawing_baseline},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2201 {"lineheight", drawing_lineheight},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2202 {"textbreak", drawing_textbreak},
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2203 {"textwidth", drawing_textwidth},
171
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2204
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2205 /* Same for font setting methods: */
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2206 {"setfont", drawing_setfont},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2207
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2208 /* 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
2209 {"getbgcolor", drawing_getbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2210 {"getfgcolor", drawing_getfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2211 {"setbgcolor", drawing_setbgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2212 {"setfgcolor", drawing_setfgcolor},
0cee01b68d9c Added font, color and default scroll bars interfaces.
Guido van Rossum <guido@python.org>
parents: 157
diff changeset
2213
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2214 {NULL, NULL} /* sentinel */
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 void
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2218 initstdwin()
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2219 {
499
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2220 object *m, *d;
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2221 static int inited = 0;
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2222
142
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2223 if (!inited) {
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2224 winit();
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2225 inited = 1;
c7ea60491e68 Call winit() here instead of in main initialization.
Guido van Rossum <guido@python.org>
parents: 137
diff changeset
2226 }
499
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2227 m = initmodule("stdwin", stdwin_methods);
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2228 d = getmoduledict(m);
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2229
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2230 /* Initialize stdwin.error exception */
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2231 StdwinError = newstringobject("stdwin.error");
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2232 if (StdwinError == NULL || dictinsert(d, "error", StdwinError) != 0)
80e2e5d67b49 Change errors into new StdwinError.
Guido van Rossum <guido@python.org>
parents: 475
diff changeset
2233 fatal("can't define stdwin.error");
6
fc6fcd7df4f7 Initial revision
Guido van Rossum <guido@python.org>
parents:
diff changeset
2234 }