annotate lwlib/xlwcheckbox.c @ 4709:db7068430402

Add explicit GPL v2 or later notices to Bill Perry's code, where such notices are missing. This is done with Bill Perry's stated permission, in private email to me.
author Jerry James <james@xemacs.org>
date Mon, 05 Oct 2009 11:08:59 -0600
parents 726060ee587c
children 5460287a3327
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
1 /* Checkbox Widget for XEmacs.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
2 Copyright (C) 1999 Edward A. Falk
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
3
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
4 This file is part of XEmacs.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
5
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
6 XEmacs is free software; you can redistribute it and/or modify it
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
7 under the terms of the GNU General Public License as published by the
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
8 Free Software Foundation; either version 2, or (at your option) any
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
9 later version.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
10
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
11 XEmacs is distributed in the hope that it will be useful, but WITHOUT
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
12 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
14 for more details.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
15
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
17 along with XEmacs; see the file COPYING. If not, write to
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
19 Boston, MA 02111-1307, USA. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
20
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
21 /* Synched up with: Checkbox.c 1.1 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
22
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
23 /*
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
24 * Checkbox.c - Checkbox button widget
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
25 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
26 * Author: Edward A. Falk
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
27 * falk@falconer.vip.best.com
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
28 *
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
29 * Date: June 30, 1997
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
30 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
31 * Overview: This widget is identical to the Radio widget in behavior,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
32 * except that the button is square and has a check mark.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
33 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
34
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
35
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
36 #include <config.h>
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
37 #include <stdio.h>
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
38
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
39 #include <X11/IntrinsicP.h>
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
40 #include <X11/StringDefs.h>
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
41 #include ATHENA_XawInit_h_
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
42 #include "../src/xmu.h"
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
43 #include "xt-wrappers.h"
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
44 #include "xlwcheckboxP.h"
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
45
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
46
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
47 /* by using the same size for the checkbox as for the diamond box,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
48 * we can let the Radio widget do the vast majority of the work.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
49 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
50
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
51 #define BOX_SIZE 8
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
52 #define DRAW_CHECK 0 /* don't draw the check mark */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
53
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
54 #define cclass(w) ((CheckboxWidgetClass)((w)->core.widget_class))
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
55
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
56 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
57 #define swid(cw) ((cw)->threeD.shadow_width)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
58 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
59 #define swid(cw) ((cw)->core.border_width)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
60 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
61
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
62 #define bsize(cw) (cclass(cw)->radio_class.dsize)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
63 #define bs(cw) (bsize(cw) + 2*swid(cw))
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
64
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
65
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
66 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
67 #define check_width 14
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
68 #define check_height 14
458
c33ae14dd6d0 Import from CVS: tag r21-2-44
cvs
parents: 442
diff changeset
69 static unsigned char check_bits[] = {
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
70 0x00, 0x00, 0x00, 0x20, 0x00, 0x18, 0x00, 0x0c, 0x00, 0x06, 0x00, 0x03,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
71 0x8c, 0x03, 0xde, 0x01, 0xff, 0x01, 0xfe, 0x00, 0xfc, 0x00, 0x78, 0x00,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
72 0x70, 0x00, 0x20, 0x00};
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
73 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
74
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
75
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
76 /****************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
77 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
78 * Full class record constant
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
79 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
80 ****************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
81
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
82
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
83 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
84 static char defaultTranslations[] =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
85 "<EnterWindow>: highlight()\n\
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
86 <LeaveWindow>: unpress(draw) unhighlight()\n\
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
87 <Btn1Down>: press()\n\
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
88 <Btn1Down>,<Btn1Up>: unpress(nodraw) toggle() notify()";
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
89 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
90
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
91
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
92
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
93 #define offset(field) XtOffsetOf(CheckboxRec, checkbox.field)
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
94 #define res(name,_class,intrepr,type,member,extrepr,value) \
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
95 Xt_RESOURCE (name, _class, intrepr, type, offset(member), extrepr, value)
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
96 static XtResource resources[] = {
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
97 res (XtNtristate, XtCTristate, XtRBoolean, Boolean, tristate,
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
98 XtRImmediate, FALSE),
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
99 } ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
100 #undef offset
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
101
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
102 /* Member functions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
103
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
104 static void CheckboxClassInit (void);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
105 static void CheckboxInit (Widget, Widget, ArgList, Cardinal *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
106 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
107 static void CheckboxRealize (Widget, Mask *, XSetWindowAttributes *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
108 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
109 static void DrawCheck (Widget);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
110
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
111
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
112 /* Action procs */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
113 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
114 static void CheckboxPress (Widget, XEvent *, String *, Cardinal *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
115 static void CheckboxUnpress (Widget, XEvent *, String *, Cardinal *);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
116 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
117
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
118 /* internal privates */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
119
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
120 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
121 static XtActionsRec actionsList[] =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
122 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
123 {"press", CheckboxPress},
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
124 {"unpress", CheckboxUnpress},
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
125 } ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
126 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
127
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
128 #define SuperClass ((RadioWidgetClass)&radioClassRec)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
129
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
130 CheckboxClassRec checkboxClassRec = {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
131 {
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
132 (WidgetClass) SuperClass, /* superclass */
4528
726060ee587c First draft of g++ 4.3 warning removal patch. Builds. *Needs ChangeLogs.*
Stephen J. Turnbull <stephen@xemacs.org>
parents: 4522
diff changeset
133 (String) "Checkbox", /* class_name */
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
134 sizeof(CheckboxRec), /* size */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
135 CheckboxClassInit, /* class_initialize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
136 NULL, /* class_part_initialize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
137 FALSE, /* class_inited */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
138 CheckboxInit, /* initialize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
139 NULL, /* initialize_hook */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
140 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
141 CheckboxRealize, /* realize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
142 actionsList, /* actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
143 XtNumber(actionsList), /* num_actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
144 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
145 XtInheritRealize, /* realize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
146 NULL, /* actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
147 0, /* num_actions */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
148 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
149 resources, /* resources */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
150 XtNumber(resources), /* resource_count */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
151 NULLQUARK, /* xrm_class */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
152 TRUE, /* compress_motion */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
153 TRUE, /* compress_exposure */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
154 TRUE, /* compress_enterleave */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
155 FALSE, /* visible_interest */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
156 NULL, /* destroy */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
157 XtInheritResize, /* resize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
158 XtInheritExpose, /* expose */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
159 NULL, /* set_values */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
160 NULL, /* set_values_hook */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
161 XtInheritSetValuesAlmost, /* set_values_almost */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
162 NULL, /* get_values_hook */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
163 NULL, /* accept_focus */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
164 XtVersion, /* version */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
165 NULL, /* callback_private */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
166 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
167 defaultTranslations, /* tm_table */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
168 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
169 XtInheritTranslations, /* tm_table */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
170 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
171 XtInheritQueryGeometry, /* query_geometry */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
172 XtInheritDisplayAccelerator, /* display_accelerator */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
173 NULL /* extension */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
174 }, /* CoreClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
175 {
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
176 XtInheritChangeSensitive /* change_sensitive */
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
177 }, /* SimpleClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
178 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
179 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
180 XtInheritXaw3dShadowDraw /* field not used */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
181 }, /* ThreeDClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
182 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
183 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
184 0 /* field not used */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
185 }, /* LabelClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
186 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
187 0 /* field not used */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
188 }, /* CommandClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
189 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
190 RadioSet, /* Set Procedure. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
191 RadioUnset, /* Unset Procedure. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
192 NULL /* extension. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
193 }, /* ToggleClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
194 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
195 BOX_SIZE,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
196 DrawCheck, /* draw procedure */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
197 NULL /* extension. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
198 }, /* RadioClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
199 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
200 NULL /* extension. */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
201 }, /* CheckboxClass fields initialization */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
202 };
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
203
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
204 /* for public consumption */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
205 WidgetClass checkboxWidgetClass = (WidgetClass) &checkboxClassRec;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
206
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
207
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
208
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
209
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
210
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
211
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
212 /****************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
213 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
214 * Class Methods
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
215 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
216 ****************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
217
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
218 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
219 CheckboxClassInit (void)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
220 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
221 XawInitializeWidgetSet();
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
222 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
223
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
224
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
225 /*ARGSUSED*/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
226 static void
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
227 CheckboxInit (Widget UNUSED (request),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
228 #if DRAW_CHECK
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
229 Widget new,
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
230 #else
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
231 Widget UNUSED (new_),
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
232 #endif
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
233 ArgList UNUSED (args),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
234 Cardinal *UNUSED (num_args))
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
235 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
236 #if DRAW_CHECK
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
237 CheckboxWidget cw = (CheckboxWidget) new_;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
238 cw->checkbox.checkmark = None ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
239 cw->checkbox.checkmark_GC = None ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
240 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
241 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
242
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
243
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
244 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
245 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
246 CheckboxRealize(Widget w,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
247 Mask *valueMask,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
248 XSetWindowAttributes *attributes)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
249 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
250 CheckboxWidget cw = (CheckboxWidget) w;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
251 XtGCMask value_mask, dynamic_mask, dontcare_mask ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
252 XGCValues values ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
253
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
254 /* first, call superclass realize */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
255 (*checkboxWidgetClass->core_class.superclass->core_class.realize)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
256 (w, valueMask, attributes);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
257
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
258 /* TODO: cache this via xmu */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
259 if( cw->checkbox.checkmark == None )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
260 cw->checkbox.checkmark =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
261 XCreateBitmapFromData( XtDisplay(w), XtWindow(w),
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
262 check_bits,check_width,check_height);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
263
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
264 values.fill_style = FillStippled ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
265 values.stipple = cw->checkbox.checkmark ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
266 values.foreground = cw->label.foreground ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
267 value_mask = GCFillStyle | GCStipple | GCForeground ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
268 dynamic_mask = GCTileStipXOrigin | GCTileStipYOrigin ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
269 dontcare_mask = GCLineWidth | GCLineStyle | GCCapStyle | GCJoinStyle |
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
270 GCFont | GCSubwindowMode | GCGraphicsExposures |
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
271 GCDashOffset | GCDashList | GCArcMode ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
272 cw->checkbox.checkmark_GC =
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
273 XtAllocateGC(w, 0, value_mask, &values, dynamic_mask, dontcare_mask) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
274 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
275 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
276
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
277
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
278 /* Function Name: CheckboxDestroy
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
279 * Description: Destroy Callback for checkbox widget.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
280 * Arguments: w - the checkbox widget that is being destroyed.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 434
diff changeset
281 * junk, garbage - not used.
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
282 * Returns: none.
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
283 */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
284
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
285 /* ARGSUSED */
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
286 #if DRAW_CHECK
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
287 static void
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
288 CheckboxDestroy (
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
289 Widget w,
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
290 XtPointer UNUSED (junk),
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
291 XtPointer UNUSED (garbage))
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
292 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
293 CheckboxWidget cw = (CheckboxWidget) w;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
294
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
295 /* TODO: cache this via xmu */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
296 if( cw->checkbox.checkmark != None )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
297 XFreePixmap( XtDisplay(w), cw->checkbox.checkmark ) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
298 if( cw->checkbox.checkmark_GC != None )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
299 XtReleaseGC(w, cw->checkbox.checkmark_GC) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
300 }
3072
4c038e89d563 [xemacs-hg @ 2005-11-16 07:22:37 by stephent]
stephent
parents: 2286
diff changeset
301 #endif /* DRAW_CHECK */
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
302
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
303
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
304
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
305 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
306 /************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
307 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
308 * Actions Procedures
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
309 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
310 ************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
311
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
312 /* ARGSUSED */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
313 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
314 CheckboxPress (Widget w,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
315 XEvent *event,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
316 String *params, /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
317 Cardinal *num_params) /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
318 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
319 CheckboxWidget cw = (CheckboxWidget) w ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
320 if( !cw->checkbox.pressed ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
321 cw->checkbox.pressed = TRUE ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
322 ((CheckboxWidgetClass)(w->core.widget_class))->radio_class.drawDiamond(w) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
323 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
324 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
325
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
326 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
327 CheckboxUnpress (Widget w,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
328 XEvent *event,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
329 String *params, /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
330 Cardinal *num_params) /* unused */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
331 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
332 CheckboxWidget cw = (CheckboxWidget) w ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
333 int i ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
334
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
335 if( cw->checkbox.pressed ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
336 cw->checkbox.pressed = FALSE ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
337 if( *num_params > 0 && **params == 'd' )
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
338 ((CheckboxWidgetClass)(w->core.widget_class))->radio_class.drawDiamond(w);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
339 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
340 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
341 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
342
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
343
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
344
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
345
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
346
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
347 /************************************************************
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
348 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
349 * Internal Procedures
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
350 *
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
351 ************************************************************/
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
352
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
353 static void
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
354 DrawCheck (Widget w)
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
355 {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
356 CheckboxWidget cw = (CheckboxWidget) w ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
357 Display *dpy = XtDisplay(w) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
358 Window win = XtWindow(w) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
359 GC gc ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
360
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
361 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
362 XPoint pts[6] ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
363 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
364 Dimension s = swid(cw);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
365 Dimension bsz = bsize(cw);
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
366 Position bx,by ; /* Check upper-left */
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
367 Dimension bh ;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
368 #ifdef _ThreeDP_h
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
369 Dimension bw;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
370 GC top, bot;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
371 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
372 GC ctr ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
373
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
374 /* foreground GC */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
375 gc = XtIsSensitive(w) ? cw->command.normal_GC : cw->label.gray_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
376
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
377 bh = bs(cw) ;
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
378 bx = cw->label.internal_width ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
379 by = cw->core.height/2 - bh/2 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
380
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
381 #ifdef _ThreeDP_h
2286
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
382 bw = bh ;
04bc9d2f42c7 [xemacs-hg @ 2004-09-20 19:18:55 by james]
james
parents: 458
diff changeset
383
424
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
384 if( !cw->command.set ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
385 top = cw->threeD.top_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
386 bot = cw->threeD.bot_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
387 } else {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
388 top = cw->threeD.bot_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
389 bot = cw->threeD.top_shadow_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
390 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
391 ctr = cw->command.inverse_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
392 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
393 ctr = cw->command.set ? cw->command.normal_GC : cw->command.inverse_GC ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
394 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
395
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
396 XFillRectangle(dpy,win,ctr, bx+s,by+s, bsz,bsz) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
397
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
398 #ifdef _ThreeDP_h
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
399 /* top-left shadow */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
400 pts[0].x = bx ; pts[0].y = by ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
401 pts[1].x = bw ; pts[1].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
402 pts[2].x = -s ; pts[2].y = s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
403 pts[3].x = -bsz ; pts[3].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
404 pts[4].x = 0 ; pts[4].y = bsz ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
405 pts[5].x = -s ; pts[5].y = s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
406 XFillPolygon(dpy,win,top, pts,6, Nonconvex,CoordModePrevious) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
407 /* bottom-right shadow */
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
408 pts[0].x = bx+bw ; pts[0].y = by+bh ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
409 pts[1].x = -bw ; pts[1].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
410 pts[2].x = s ; pts[2].y = -s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
411 pts[3].x = bsz ; pts[3].y = 0 ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
412 pts[4].x = 0 ; pts[4].y = -bsz ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
413 pts[5].x = s ; pts[5].y = -s ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
414 XFillPolygon(dpy,win,bot, pts,6, Nonconvex,CoordModePrevious) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
415 #else
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
416 XDrawRectangle(dpy,win,gc, bx+s,by+s, bsz,bsz) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
417 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
418
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
419 #if DRAW_CHECK
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
420 if( cw->command.set && cw->checkbox.checkmark_GC != None ) {
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
421 XSetTSOrigin(dpy,cw->checkbox.checkmark_GC, bx+s, by+s) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
422 XFillRectangle(dpy,win,cw->checkbox.checkmark_GC,
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
423 bx+s, by+s, check_width,check_height) ;
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
424 }
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
425 #endif
11054d720c21 Import from CVS: tag r21-2-20
cvs
parents:
diff changeset
426 }