annotate oldXMenu/Create.c @ 41252:666a9dde0c08

*** empty log message ***
author Jason Rumney <jasonr@gnu.org>
date Sun, 18 Nov 2001 22:01:13 +0000
parents bbce331da1be
children 23a1cea22d13
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25858
Dave Love <fx@gnu.org>
parents:
diff changeset
1 /* $Header: /u/src/emacs/19.0/oldXMenu/RCS/Create.c,v 1.4 1993/03/09 18:18:01 jimb Exp $ */
Dave Love <fx@gnu.org>
parents:
diff changeset
2 /* Copyright Massachusetts Institute of Technology 1985 */
Dave Love <fx@gnu.org>
parents:
diff changeset
3
Dave Love <fx@gnu.org>
parents:
diff changeset
4 #include "copyright.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
5
Dave Love <fx@gnu.org>
parents:
diff changeset
6 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
7 * XMenu: MIT Project Athena, X Window system menu package
Dave Love <fx@gnu.org>
parents:
diff changeset
8 *
Dave Love <fx@gnu.org>
parents:
diff changeset
9 * XMenuCreate - Creates an X window system menu object.
Dave Love <fx@gnu.org>
parents:
diff changeset
10 *
Dave Love <fx@gnu.org>
parents:
diff changeset
11 * Author: Tony Della Fera, DEC
Dave Love <fx@gnu.org>
parents:
diff changeset
12 * January 23, 1986
Dave Love <fx@gnu.org>
parents:
diff changeset
13 *
Dave Love <fx@gnu.org>
parents:
diff changeset
14 */
Dave Love <fx@gnu.org>
parents:
diff changeset
15
Dave Love <fx@gnu.org>
parents:
diff changeset
16 #include <config.h>
Dave Love <fx@gnu.org>
parents:
diff changeset
17 #include "XMenuInt.h"
Dave Love <fx@gnu.org>
parents:
diff changeset
18
Dave Love <fx@gnu.org>
parents:
diff changeset
19
Dave Love <fx@gnu.org>
parents:
diff changeset
20 #ifdef EMACS_BITMAP_FILES
Dave Love <fx@gnu.org>
parents:
diff changeset
21 #include "../src/bitmaps/dimple1.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
22 #include "../src/bitmaps/dimple3.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
23 #include "../src/bitmaps/gray1.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
24 #include "../src/bitmaps/gray3.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
25 #include "../src/bitmaps/crosswv.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
26
Dave Love <fx@gnu.org>
parents:
diff changeset
27 #include "../src/bitmaps/leftptr.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
28 #include "../src/bitmaps/leftpmsk.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
29 #include "../src/bitmaps/rtptr.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
30 #include "../src/bitmaps/rtpmsk.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
31 #include "../src/bitmaps/cntrptr.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
32 #include "../src/bitmaps/cntrpmsk.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
33 #include "../src/bitmaps/stipple.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
34
Dave Love <fx@gnu.org>
parents:
diff changeset
35 #else
Dave Love <fx@gnu.org>
parents:
diff changeset
36 #ifndef VMS
Dave Love <fx@gnu.org>
parents:
diff changeset
37
Dave Love <fx@gnu.org>
parents:
diff changeset
38 #include <X11/bitmaps/dimple1>
Dave Love <fx@gnu.org>
parents:
diff changeset
39 #include <X11/bitmaps/dimple3>
Dave Love <fx@gnu.org>
parents:
diff changeset
40 #include <X11/bitmaps/gray1>
Dave Love <fx@gnu.org>
parents:
diff changeset
41 #include <X11/bitmaps/gray3>
Dave Love <fx@gnu.org>
parents:
diff changeset
42 #include <X11/bitmaps/cross_weave>
Dave Love <fx@gnu.org>
parents:
diff changeset
43
Dave Love <fx@gnu.org>
parents:
diff changeset
44 #include <X11/bitmaps/left_ptr>
Dave Love <fx@gnu.org>
parents:
diff changeset
45 #include <X11/bitmaps/left_ptrmsk>
Dave Love <fx@gnu.org>
parents:
diff changeset
46 #include <X11/bitmaps/right_ptr>
Dave Love <fx@gnu.org>
parents:
diff changeset
47 #include <X11/bitmaps/right_ptrmsk>
Dave Love <fx@gnu.org>
parents:
diff changeset
48 #include <X11/bitmaps/cntr_ptr>
Dave Love <fx@gnu.org>
parents:
diff changeset
49 #include <X11/bitmaps/cntr_ptrmsk>
Dave Love <fx@gnu.org>
parents:
diff changeset
50 #include <X11/bitmaps/stipple>
Dave Love <fx@gnu.org>
parents:
diff changeset
51
Dave Love <fx@gnu.org>
parents:
diff changeset
52 #else
Dave Love <fx@gnu.org>
parents:
diff changeset
53
Dave Love <fx@gnu.org>
parents:
diff changeset
54 #include "[-.src.bitmaps]dimple1.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
55 #include "[-.src.bitmaps]dimple3.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
56 #include "[-.src.bitmaps]gray1.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
57 #include "[-.src.bitmaps]gray3.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
58 #include "[-.src.bitmaps]crosswv.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
59
Dave Love <fx@gnu.org>
parents:
diff changeset
60 #include "[-.src.bitmaps]leftptr.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
61 #include "[-.src.bitmaps]leftpmsk.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
62 #include "[-.src.bitmaps]rtptr.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
63 #include "[-.src.bitmaps]rtpmsk.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
64 #include "[-.src.bitmaps]cntrptr.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
65 #include "[-.src.bitmaps]cntrpmsk.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
66 #include "[-.src.bitmaps]stipple.xbm"
Dave Love <fx@gnu.org>
parents:
diff changeset
67
Dave Love <fx@gnu.org>
parents:
diff changeset
68 #endif /* VMS */
Dave Love <fx@gnu.org>
parents:
diff changeset
69 #endif /* not EMACS_BITMAP_FILES */
Dave Love <fx@gnu.org>
parents:
diff changeset
70
Dave Love <fx@gnu.org>
parents:
diff changeset
71 #define DEF_FREEZE 0
Dave Love <fx@gnu.org>
parents:
diff changeset
72 #define DEF_REVERSE 0
Dave Love <fx@gnu.org>
parents:
diff changeset
73 #define DEF_MENU_STYLE LEFT
Dave Love <fx@gnu.org>
parents:
diff changeset
74 #define DEF_MENU_MODE BOX
Dave Love <fx@gnu.org>
parents:
diff changeset
75 #define DEF_INACT_PNUM 3
Dave Love <fx@gnu.org>
parents:
diff changeset
76 #define MAX_INACT_PNUM 4
Dave Love <fx@gnu.org>
parents:
diff changeset
77
Dave Love <fx@gnu.org>
parents:
diff changeset
78 #define DEF_P_STYLE CENTER
Dave Love <fx@gnu.org>
parents:
diff changeset
79
Dave Love <fx@gnu.org>
parents:
diff changeset
80 #define DEF_P_EVENTS (EnterWindowMask | ExposureMask)
Dave Love <fx@gnu.org>
parents:
diff changeset
81 #define DEF_P_FNT_NAME "fixed"
Dave Love <fx@gnu.org>
parents:
diff changeset
82 #define DEF_P_SPREAD 0.5
Dave Love <fx@gnu.org>
parents:
diff changeset
83 #define DEF_P_BDR_WIDTH 2
Dave Love <fx@gnu.org>
parents:
diff changeset
84
Dave Love <fx@gnu.org>
parents:
diff changeset
85 #define DEF_S_STYLE LEFT
Dave Love <fx@gnu.org>
parents:
diff changeset
86 #define DEF_S_EVENTS (EnterWindowMask | LeaveWindowMask)
Dave Love <fx@gnu.org>
parents:
diff changeset
87 #define DEF_S_FNT_NAME "fixed"
Dave Love <fx@gnu.org>
parents:
diff changeset
88 #define DEF_S_SPREAD 0.10
Dave Love <fx@gnu.org>
parents:
diff changeset
89 #define DEF_S_BDR_WIDTH 1
Dave Love <fx@gnu.org>
parents:
diff changeset
90
Dave Love <fx@gnu.org>
parents:
diff changeset
91 #define XASSOC_TABLE_SIZE 64
Dave Love <fx@gnu.org>
parents:
diff changeset
92
Dave Love <fx@gnu.org>
parents:
diff changeset
93 #define TILE_BUF_SIZE 5
Dave Love <fx@gnu.org>
parents:
diff changeset
94
Dave Love <fx@gnu.org>
parents:
diff changeset
95 int atoi();
Dave Love <fx@gnu.org>
parents:
diff changeset
96 double atof();
Dave Love <fx@gnu.org>
parents:
diff changeset
97 char *x_get_resource_string ();
Dave Love <fx@gnu.org>
parents:
diff changeset
98
Dave Love <fx@gnu.org>
parents:
diff changeset
99
Dave Love <fx@gnu.org>
parents:
diff changeset
100
Dave Love <fx@gnu.org>
parents:
diff changeset
101 static Status
Dave Love <fx@gnu.org>
parents:
diff changeset
102 XAllocDisplayColor(display, map, colorName, color, junk)
Dave Love <fx@gnu.org>
parents:
diff changeset
103 Display *display;
Dave Love <fx@gnu.org>
parents:
diff changeset
104 Colormap map;
Dave Love <fx@gnu.org>
parents:
diff changeset
105 char *colorName;
Dave Love <fx@gnu.org>
parents:
diff changeset
106 XColor *color;
Dave Love <fx@gnu.org>
parents:
diff changeset
107 XColor *junk;
Dave Love <fx@gnu.org>
parents:
diff changeset
108 {
Dave Love <fx@gnu.org>
parents:
diff changeset
109 return (colorName!=0 &&
Dave Love <fx@gnu.org>
parents:
diff changeset
110 XParseColor(display, map, colorName, color) &&
Dave Love <fx@gnu.org>
parents:
diff changeset
111 XAllocColor(display, map, color));
Dave Love <fx@gnu.org>
parents:
diff changeset
112 }
Dave Love <fx@gnu.org>
parents:
diff changeset
113
Dave Love <fx@gnu.org>
parents:
diff changeset
114
Dave Love <fx@gnu.org>
parents:
diff changeset
115 XMenu *
Dave Love <fx@gnu.org>
parents:
diff changeset
116 XMenuCreate(display, parent, def_env)
Dave Love <fx@gnu.org>
parents:
diff changeset
117 Display *display; /* ID of previously opened display */
Dave Love <fx@gnu.org>
parents:
diff changeset
118 Window parent; /* Window ID of the menu's parent window. */
Dave Love <fx@gnu.org>
parents:
diff changeset
119 register char *def_env; /* X Defaults program environment name. */
Dave Love <fx@gnu.org>
parents:
diff changeset
120 {
Dave Love <fx@gnu.org>
parents:
diff changeset
121 register int i; /* Loop counter. */
Dave Love <fx@gnu.org>
parents:
diff changeset
122 register int j; /* Loop counter. */
Dave Love <fx@gnu.org>
parents:
diff changeset
123 register char *def_val; /* X Default value temp variable. */
Dave Love <fx@gnu.org>
parents:
diff changeset
124
Dave Love <fx@gnu.org>
parents:
diff changeset
125 register XMenu *menu; /* Pointer to the new menu. */
Dave Love <fx@gnu.org>
parents:
diff changeset
126 XMStyle menu_style; /* Menu display style. */
Dave Love <fx@gnu.org>
parents:
diff changeset
127 XMMode menu_mode; /* Menu display mode. */
Dave Love <fx@gnu.org>
parents:
diff changeset
128 XMPane *pane; /* Pane list header. */
Dave Love <fx@gnu.org>
parents:
diff changeset
129 XAssocTable *assoc_tab; /* XAssocTable pointer. */
Dave Love <fx@gnu.org>
parents:
diff changeset
130
Dave Love <fx@gnu.org>
parents:
diff changeset
131 int freeze; /* Freeze server mode. */
Dave Love <fx@gnu.org>
parents:
diff changeset
132 int reverse; /* Reverse video mode. */
Dave Love <fx@gnu.org>
parents:
diff changeset
133
Dave Love <fx@gnu.org>
parents:
diff changeset
134 XMStyle p_style; /* Pane display style. */
Dave Love <fx@gnu.org>
parents:
diff changeset
135 char *p_fnt_name; /* Flag font name. */
Dave Love <fx@gnu.org>
parents:
diff changeset
136 XFontStruct *p_fnt_info; /* Flag font structure */
Dave Love <fx@gnu.org>
parents:
diff changeset
137 int p_fnt_pad; /* Flag font padding in pixels. */
Dave Love <fx@gnu.org>
parents:
diff changeset
138 double p_spread; /* Pane spread in flag height fractions. */
Dave Love <fx@gnu.org>
parents:
diff changeset
139 int p_fnt_height; /* Pane character height. */
Dave Love <fx@gnu.org>
parents:
diff changeset
140 int p_bdr_width; /* Pane border width. */
Dave Love <fx@gnu.org>
parents:
diff changeset
141 int flag_height; /* Flag window height. */
Dave Love <fx@gnu.org>
parents:
diff changeset
142 int p_height; /* Pane window height. */
Dave Love <fx@gnu.org>
parents:
diff changeset
143 int p_x_off; /* Pane X offset. */
Dave Love <fx@gnu.org>
parents:
diff changeset
144 int p_y_off; /* Pane Y offset. */
Dave Love <fx@gnu.org>
parents:
diff changeset
145 GC pane_GC; /* Pane graphics context. */
Dave Love <fx@gnu.org>
parents:
diff changeset
146
Dave Love <fx@gnu.org>
parents:
diff changeset
147 XMStyle s_style; /* Selection display style. */
Dave Love <fx@gnu.org>
parents:
diff changeset
148 char *s_fnt_name; /* Selection font name. */
Dave Love <fx@gnu.org>
parents:
diff changeset
149 XFontStruct *s_fnt_info; /* Selection font structure. */
Dave Love <fx@gnu.org>
parents:
diff changeset
150 int s_fnt_pad; /* Selection font padding in pixels. */
Dave Love <fx@gnu.org>
parents:
diff changeset
151 int s_fnt_height; /* Selection font character height */
Dave Love <fx@gnu.org>
parents:
diff changeset
152 double s_spread; /* Select spread in line height fractions. */
Dave Love <fx@gnu.org>
parents:
diff changeset
153 int s_bdr_width; /* Highlight border width. */
Dave Love <fx@gnu.org>
parents:
diff changeset
154 int s_height; /* Selection window height. */
Dave Love <fx@gnu.org>
parents:
diff changeset
155 int s_x_off; /* Selection window X offset. */
Dave Love <fx@gnu.org>
parents:
diff changeset
156 int s_y_off; /* Selection window Y offset. */
Dave Love <fx@gnu.org>
parents:
diff changeset
157 GC normal_select_GC; /* GC used for normal video selection. */
Dave Love <fx@gnu.org>
parents:
diff changeset
158 GC inverse_select_GC; /* GC used for inverse video selection. */
Dave Love <fx@gnu.org>
parents:
diff changeset
159 GC inact_GC; /* GC for inactive pane header and */
Dave Love <fx@gnu.org>
parents:
diff changeset
160 /* selections. */
Dave Love <fx@gnu.org>
parents:
diff changeset
161 GC inact_GC_noexpose;
Dave Love <fx@gnu.org>
parents:
diff changeset
162
Dave Love <fx@gnu.org>
parents:
diff changeset
163 XColor color_def; /* Temp color definition holder. */
Dave Love <fx@gnu.org>
parents:
diff changeset
164 XColor screen_def; /* Temp screen color definition holder */
Dave Love <fx@gnu.org>
parents:
diff changeset
165 XColor p_bdr_color; /* Color of border. */
Dave Love <fx@gnu.org>
parents:
diff changeset
166 XColor s_bdr_color; /* Color of highlight. */
Dave Love <fx@gnu.org>
parents:
diff changeset
167 XColor p_frg_color; /* Color of pane foreground color. */
Dave Love <fx@gnu.org>
parents:
diff changeset
168 XColor s_frg_color; /* Color of selection foreground. */
Dave Love <fx@gnu.org>
parents:
diff changeset
169 XColor bkgnd_color; /* Color of background.. */
Dave Love <fx@gnu.org>
parents:
diff changeset
170 XColor mouse_color; /* Color of mouse cursor. */
Dave Love <fx@gnu.org>
parents:
diff changeset
171 Cursor mouse_cursor; /* Mouse cursor. */
Dave Love <fx@gnu.org>
parents:
diff changeset
172 Pixmap inact_bitmap; /* Menu inactive pixmap. */
Dave Love <fx@gnu.org>
parents:
diff changeset
173
Dave Love <fx@gnu.org>
parents:
diff changeset
174 int inact_pnum; /* Inactive background pattern number. */
Dave Love <fx@gnu.org>
parents:
diff changeset
175
Dave Love <fx@gnu.org>
parents:
diff changeset
176 Pixel p_bdr_pixel; /* Pane border pixel. */
Dave Love <fx@gnu.org>
parents:
diff changeset
177 Pixel s_bdr_pixel; /* Selection border pixel. */
Dave Love <fx@gnu.org>
parents:
diff changeset
178 Pixel p_frg_pixel; /* Pane foreground pixel. */
Dave Love <fx@gnu.org>
parents:
diff changeset
179 Pixel s_frg_pixel; /* Selection foreground pixel. */
Dave Love <fx@gnu.org>
parents:
diff changeset
180 Pixel bkgnd_pixel; /* Menu background pixel. */
Dave Love <fx@gnu.org>
parents:
diff changeset
181
Dave Love <fx@gnu.org>
parents:
diff changeset
182 int *width, *height;
Dave Love <fx@gnu.org>
parents:
diff changeset
183 Pixmap *bitmap;
Dave Love <fx@gnu.org>
parents:
diff changeset
184 int *x_hot, *y_hot;
Dave Love <fx@gnu.org>
parents:
diff changeset
185 int status; /* Return code from XReadBitmapFile. */
Dave Love <fx@gnu.org>
parents:
diff changeset
186
Dave Love <fx@gnu.org>
parents:
diff changeset
187 Pixmap cursor; /* Cursor pixmap holder. */
Dave Love <fx@gnu.org>
parents:
diff changeset
188 Pixmap cursor_mask; /* Cursor mask pixmap holder. */
Dave Love <fx@gnu.org>
parents:
diff changeset
189 Pixmap stipple_pixmap; /* Stipple mask for half-tone text. */
Dave Love <fx@gnu.org>
parents:
diff changeset
190 unsigned long valuemask;
Dave Love <fx@gnu.org>
parents:
diff changeset
191 XGCValues *values;
Dave Love <fx@gnu.org>
parents:
diff changeset
192
Dave Love <fx@gnu.org>
parents:
diff changeset
193 Window root = RootWindow (display, DefaultScreen (display));
Dave Love <fx@gnu.org>
parents:
diff changeset
194
Dave Love <fx@gnu.org>
parents:
diff changeset
195 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
196 * Calloc the XMenu structure and the initial pane.
Dave Love <fx@gnu.org>
parents:
diff changeset
197 */
Dave Love <fx@gnu.org>
parents:
diff changeset
198 menu = (XMenu *)calloc(1, sizeof(XMenu));
Dave Love <fx@gnu.org>
parents:
diff changeset
199 if (menu == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
200 _XMErrorCode = XME_CALLOC;
Dave Love <fx@gnu.org>
parents:
diff changeset
201 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
202 }
Dave Love <fx@gnu.org>
parents:
diff changeset
203 pane = (XMPane *)calloc(1, sizeof(XMPane));
Dave Love <fx@gnu.org>
parents:
diff changeset
204 if (pane == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
205 _XMErrorCode = XME_CALLOC;
Dave Love <fx@gnu.org>
parents:
diff changeset
206 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
207 }
Dave Love <fx@gnu.org>
parents:
diff changeset
208
Dave Love <fx@gnu.org>
parents:
diff changeset
209 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
210 * Create the XAssocTable
Dave Love <fx@gnu.org>
parents:
diff changeset
211 */
Dave Love <fx@gnu.org>
parents:
diff changeset
212 assoc_tab = (XAssocTable *)XCreateAssocTable(XASSOC_TABLE_SIZE);
Dave Love <fx@gnu.org>
parents:
diff changeset
213 if(assoc_tab == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
214 _XMErrorCode= XME_CREATE_ASSOC;
Dave Love <fx@gnu.org>
parents:
diff changeset
215 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
216 }
Dave Love <fx@gnu.org>
parents:
diff changeset
217
Dave Love <fx@gnu.org>
parents:
diff changeset
218 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
219 * Set up the default environment name.
Dave Love <fx@gnu.org>
parents:
diff changeset
220 */
Dave Love <fx@gnu.org>
parents:
diff changeset
221 if (def_env == NULL || *def_env == '\0') def_env = "XMenu";
Dave Love <fx@gnu.org>
parents:
diff changeset
222
Dave Love <fx@gnu.org>
parents:
diff changeset
223 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
224 * Set up internal fail-safe defaults.
Dave Love <fx@gnu.org>
parents:
diff changeset
225 */
Dave Love <fx@gnu.org>
parents:
diff changeset
226 freeze = DEF_FREEZE;
Dave Love <fx@gnu.org>
parents:
diff changeset
227 reverse = DEF_REVERSE;
Dave Love <fx@gnu.org>
parents:
diff changeset
228 menu_style = DEF_MENU_STYLE;
Dave Love <fx@gnu.org>
parents:
diff changeset
229 menu_mode = DEF_MENU_MODE;
Dave Love <fx@gnu.org>
parents:
diff changeset
230 inact_pnum = DEF_INACT_PNUM;
Dave Love <fx@gnu.org>
parents:
diff changeset
231
Dave Love <fx@gnu.org>
parents:
diff changeset
232 p_style = DEF_P_STYLE;
Dave Love <fx@gnu.org>
parents:
diff changeset
233 p_spread = DEF_P_SPREAD;
Dave Love <fx@gnu.org>
parents:
diff changeset
234 p_fnt_name = DEF_P_FNT_NAME;
Dave Love <fx@gnu.org>
parents:
diff changeset
235 p_bdr_width = DEF_P_BDR_WIDTH;
Dave Love <fx@gnu.org>
parents:
diff changeset
236
Dave Love <fx@gnu.org>
parents:
diff changeset
237 s_style = DEF_S_STYLE;
Dave Love <fx@gnu.org>
parents:
diff changeset
238 s_spread = DEF_S_SPREAD;
Dave Love <fx@gnu.org>
parents:
diff changeset
239 s_fnt_name = DEF_S_FNT_NAME;
Dave Love <fx@gnu.org>
parents:
diff changeset
240 s_bdr_width = DEF_S_BDR_WIDTH;
Dave Love <fx@gnu.org>
parents:
diff changeset
241
Dave Love <fx@gnu.org>
parents:
diff changeset
242 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
243 * Get default values from X.
Dave Love <fx@gnu.org>
parents:
diff changeset
244 */
Dave Love <fx@gnu.org>
parents:
diff changeset
245 def_val = x_get_resource_string ("menuFreeze", "MenuFreeze");
Dave Love <fx@gnu.org>
parents:
diff changeset
246 if (def_val != NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
247 if (strcmp(def_val, "on") == 0) freeze = 1;
Dave Love <fx@gnu.org>
parents:
diff changeset
248 else if (strcmp(def_val, "off") == 0) freeze = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
249 }
Dave Love <fx@gnu.org>
parents:
diff changeset
250
Dave Love <fx@gnu.org>
parents:
diff changeset
251 def_val = x_get_resource_string ("menuReverseVideo", "MenuReverseVideo");
Dave Love <fx@gnu.org>
parents:
diff changeset
252 if (def_val != NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
253 if (strcmp(def_val, "on") == 0) reverse = 1;
Dave Love <fx@gnu.org>
parents:
diff changeset
254 else if (strcmp(def_val, "off") == 0) reverse = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
255 }
Dave Love <fx@gnu.org>
parents:
diff changeset
256
Dave Love <fx@gnu.org>
parents:
diff changeset
257 def_val = x_get_resource_string ("menuStyle", "MenuStyle");
Dave Love <fx@gnu.org>
parents:
diff changeset
258 if (def_val != NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
259 if (strcmp(def_val, "right_hand") == 0) menu_style = RIGHT;
Dave Love <fx@gnu.org>
parents:
diff changeset
260 else if (strcmp(def_val, "left_hand") == 0) menu_style = LEFT;
Dave Love <fx@gnu.org>
parents:
diff changeset
261 else if (strcmp(def_val, "center") == 0) menu_style = CENTER;
Dave Love <fx@gnu.org>
parents:
diff changeset
262 }
Dave Love <fx@gnu.org>
parents:
diff changeset
263
Dave Love <fx@gnu.org>
parents:
diff changeset
264 def_val = x_get_resource_string ("menuMode", "MenuMode");
Dave Love <fx@gnu.org>
parents:
diff changeset
265 if (def_val != NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
266 if (strcmp(def_val, "box") == 0) menu_mode = BOX;
Dave Love <fx@gnu.org>
parents:
diff changeset
267 else if (strcmp(def_val, "invert") == 0) menu_mode = INVERT;
Dave Love <fx@gnu.org>
parents:
diff changeset
268 }
Dave Love <fx@gnu.org>
parents:
diff changeset
269
Dave Love <fx@gnu.org>
parents:
diff changeset
270 def_val = x_get_resource_string ("menuMouse", "MenuMouse");
Dave Love <fx@gnu.org>
parents:
diff changeset
271 if (
Dave Love <fx@gnu.org>
parents:
diff changeset
272 def_val != NULL &&
Dave Love <fx@gnu.org>
parents:
diff changeset
273 DisplayCells(display, DefaultScreen(display)) > 2 &&
Dave Love <fx@gnu.org>
parents:
diff changeset
274 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
275 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
276 def_val,
Dave Love <fx@gnu.org>
parents:
diff changeset
277 &mouse_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
278 );
Dave Love <fx@gnu.org>
parents:
diff changeset
279 else if (reverse &&
Dave Love <fx@gnu.org>
parents:
diff changeset
280 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
281 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
282 "white",
Dave Love <fx@gnu.org>
parents:
diff changeset
283 &mouse_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
284 );
Dave Love <fx@gnu.org>
parents:
diff changeset
285
Dave Love <fx@gnu.org>
parents:
diff changeset
286 else if (XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
287 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
288 "black",
Dave Love <fx@gnu.org>
parents:
diff changeset
289 &mouse_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
290 );
Dave Love <fx@gnu.org>
parents:
diff changeset
291
Dave Love <fx@gnu.org>
parents:
diff changeset
292 else ;
Dave Love <fx@gnu.org>
parents:
diff changeset
293
Dave Love <fx@gnu.org>
parents:
diff changeset
294 def_val = x_get_resource_string ("menuBackground", "MenuBackground");
Dave Love <fx@gnu.org>
parents:
diff changeset
295 if (
Dave Love <fx@gnu.org>
parents:
diff changeset
296 def_val != NULL &&
Dave Love <fx@gnu.org>
parents:
diff changeset
297 DisplayCells(display, DefaultScreen(display)) > 2 &&
Dave Love <fx@gnu.org>
parents:
diff changeset
298 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
299 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
300 def_val,
Dave Love <fx@gnu.org>
parents:
diff changeset
301 &bkgnd_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
302 );
Dave Love <fx@gnu.org>
parents:
diff changeset
303 else if (reverse &&
Dave Love <fx@gnu.org>
parents:
diff changeset
304 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
305 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
306 "black",
Dave Love <fx@gnu.org>
parents:
diff changeset
307 &bkgnd_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
308 );
Dave Love <fx@gnu.org>
parents:
diff changeset
309 else if (XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
310 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
311 "white",
Dave Love <fx@gnu.org>
parents:
diff changeset
312 &bkgnd_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
313 );
Dave Love <fx@gnu.org>
parents:
diff changeset
314 else;
Dave Love <fx@gnu.org>
parents:
diff changeset
315
Dave Love <fx@gnu.org>
parents:
diff changeset
316 def_val = x_get_resource_string ("menuInactivePattern", "MenuInactivePattern");
Dave Love <fx@gnu.org>
parents:
diff changeset
317 if (def_val != NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
318 if (strcmp(def_val, "dimple1") == 0) inact_pnum = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
319 else if (strcmp(def_val, "dimple3") == 0) inact_pnum = 1;
Dave Love <fx@gnu.org>
parents:
diff changeset
320 else if (strcmp(def_val, "gray1") == 0) inact_pnum = 2;
Dave Love <fx@gnu.org>
parents:
diff changeset
321 else if (strcmp(def_val, "gray3") == 0) inact_pnum = 3;
Dave Love <fx@gnu.org>
parents:
diff changeset
322 else if (strcmp(def_val, "cross_weave") == 0) inact_pnum = 4;
Dave Love <fx@gnu.org>
parents:
diff changeset
323 }
Dave Love <fx@gnu.org>
parents:
diff changeset
324
Dave Love <fx@gnu.org>
parents:
diff changeset
325 def_val = x_get_resource_string ("paneStyle", "PaneStyle");
Dave Love <fx@gnu.org>
parents:
diff changeset
326 if (def_val != NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
327 if (strcmp(def_val, "flush_left") == 0) p_style = LEFT;
Dave Love <fx@gnu.org>
parents:
diff changeset
328 else if (strcmp(def_val, "flush_right") == 0) p_style = RIGHT;
Dave Love <fx@gnu.org>
parents:
diff changeset
329 else if (strcmp(def_val, "center") == 0) p_style = CENTER;
Dave Love <fx@gnu.org>
parents:
diff changeset
330 }
Dave Love <fx@gnu.org>
parents:
diff changeset
331
Dave Love <fx@gnu.org>
parents:
diff changeset
332 def_val = x_get_resource_string ("paneFont", "PaneFont");
Dave Love <fx@gnu.org>
parents:
diff changeset
333 if (def_val != NULL) p_fnt_name = def_val;
Dave Love <fx@gnu.org>
parents:
diff changeset
334
Dave Love <fx@gnu.org>
parents:
diff changeset
335 def_val = x_get_resource_string ("paneForeground", "PaneForeground");
Dave Love <fx@gnu.org>
parents:
diff changeset
336 if (
Dave Love <fx@gnu.org>
parents:
diff changeset
337 def_val != NULL &&
Dave Love <fx@gnu.org>
parents:
diff changeset
338 DisplayCells(display, DefaultScreen(display)) > 2
Dave Love <fx@gnu.org>
parents:
diff changeset
339 )
Dave Love <fx@gnu.org>
parents:
diff changeset
340 XAllocDisplayColor(display, DefaultColormap(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
341 DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
342 def_val,
Dave Love <fx@gnu.org>
parents:
diff changeset
343 &p_frg_color, &color_def);
Dave Love <fx@gnu.org>
parents:
diff changeset
344
Dave Love <fx@gnu.org>
parents:
diff changeset
345 else if (reverse) XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
346 DefaultColormap(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
347 DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
348 "white",
Dave Love <fx@gnu.org>
parents:
diff changeset
349 &p_frg_color, &color_def);
Dave Love <fx@gnu.org>
parents:
diff changeset
350 else XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
351 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
352 "black",
Dave Love <fx@gnu.org>
parents:
diff changeset
353 &p_frg_color, &color_def);
Dave Love <fx@gnu.org>
parents:
diff changeset
354
Dave Love <fx@gnu.org>
parents:
diff changeset
355 def_val = x_get_resource_string ("paneBorder", "PaneBorder");
Dave Love <fx@gnu.org>
parents:
diff changeset
356 if (
Dave Love <fx@gnu.org>
parents:
diff changeset
357 def_val != NULL &&
Dave Love <fx@gnu.org>
parents:
diff changeset
358 DisplayCells(display, DefaultScreen(display)) > 2 &&
Dave Love <fx@gnu.org>
parents:
diff changeset
359 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
360 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
361 def_val,
Dave Love <fx@gnu.org>
parents:
diff changeset
362 &p_bdr_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
363 );
Dave Love <fx@gnu.org>
parents:
diff changeset
364 else if (reverse &&
Dave Love <fx@gnu.org>
parents:
diff changeset
365 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
366 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
367 "white",
Dave Love <fx@gnu.org>
parents:
diff changeset
368 &p_bdr_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
369 );
Dave Love <fx@gnu.org>
parents:
diff changeset
370 else XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
371 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
372 "black",
Dave Love <fx@gnu.org>
parents:
diff changeset
373 &p_bdr_color, &color_def);
Dave Love <fx@gnu.org>
parents:
diff changeset
374
Dave Love <fx@gnu.org>
parents:
diff changeset
375 def_val = x_get_resource_string ("paneBorderWidth", "PaneBorderWidth");
Dave Love <fx@gnu.org>
parents:
diff changeset
376 if (def_val != NULL) p_bdr_width = atoi(def_val);
Dave Love <fx@gnu.org>
parents:
diff changeset
377
Dave Love <fx@gnu.org>
parents:
diff changeset
378 def_val = x_get_resource_string ("paneSpread", "PaneSpread");
Dave Love <fx@gnu.org>
parents:
diff changeset
379 if (def_val != NULL) p_spread = atof(def_val);
Dave Love <fx@gnu.org>
parents:
diff changeset
380
Dave Love <fx@gnu.org>
parents:
diff changeset
381 def_val = x_get_resource_string ("selectionStyle", "SelectionStyle");
Dave Love <fx@gnu.org>
parents:
diff changeset
382 if (def_val != NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
383 if (strcmp(def_val, "flush_left") == 0) s_style = LEFT;
Dave Love <fx@gnu.org>
parents:
diff changeset
384 else if (strcmp(def_val, "flush_right") == 0) s_style = RIGHT;
Dave Love <fx@gnu.org>
parents:
diff changeset
385 else if (strcmp(def_val, "center") == 0) s_style = CENTER;
Dave Love <fx@gnu.org>
parents:
diff changeset
386 }
Dave Love <fx@gnu.org>
parents:
diff changeset
387
Dave Love <fx@gnu.org>
parents:
diff changeset
388 def_val = x_get_resource_string ("selectionFont", "SelectionFont");
Dave Love <fx@gnu.org>
parents:
diff changeset
389 if (def_val != NULL) s_fnt_name = def_val;
Dave Love <fx@gnu.org>
parents:
diff changeset
390
Dave Love <fx@gnu.org>
parents:
diff changeset
391 def_val = x_get_resource_string ("selectionForeground", "SelectionForeground");
Dave Love <fx@gnu.org>
parents:
diff changeset
392 if (
Dave Love <fx@gnu.org>
parents:
diff changeset
393 def_val != NULL &&
Dave Love <fx@gnu.org>
parents:
diff changeset
394 DisplayCells(display, DefaultScreen(display)) > 2 &&
Dave Love <fx@gnu.org>
parents:
diff changeset
395 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
396 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
397 def_val,
Dave Love <fx@gnu.org>
parents:
diff changeset
398 &s_frg_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
399 );
Dave Love <fx@gnu.org>
parents:
diff changeset
400 else if (reverse &&
Dave Love <fx@gnu.org>
parents:
diff changeset
401 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
402 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
403 "white",
Dave Love <fx@gnu.org>
parents:
diff changeset
404 &s_frg_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
405 ) ;
Dave Love <fx@gnu.org>
parents:
diff changeset
406 else if (XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
407 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
408 "black",
Dave Love <fx@gnu.org>
parents:
diff changeset
409 &s_frg_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
410 ) ;
Dave Love <fx@gnu.org>
parents:
diff changeset
411 else ;
Dave Love <fx@gnu.org>
parents:
diff changeset
412
Dave Love <fx@gnu.org>
parents:
diff changeset
413
Dave Love <fx@gnu.org>
parents:
diff changeset
414 def_val = x_get_resource_string ("selectionBorder", "SelectionBorder");
Dave Love <fx@gnu.org>
parents:
diff changeset
415 if (
Dave Love <fx@gnu.org>
parents:
diff changeset
416 def_val != NULL &&
Dave Love <fx@gnu.org>
parents:
diff changeset
417 DisplayCells(display, DefaultScreen(display)) > 2 &&
Dave Love <fx@gnu.org>
parents:
diff changeset
418 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
419 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
420 def_val,
Dave Love <fx@gnu.org>
parents:
diff changeset
421 &s_bdr_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
422 ) ;
Dave Love <fx@gnu.org>
parents:
diff changeset
423 else if (reverse &&
Dave Love <fx@gnu.org>
parents:
diff changeset
424 XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
425 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
426 "white",
Dave Love <fx@gnu.org>
parents:
diff changeset
427 &s_bdr_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
428 ) ;
Dave Love <fx@gnu.org>
parents:
diff changeset
429 else if (XAllocDisplayColor(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
430 DefaultColormap(display, DefaultScreen(display)),
Dave Love <fx@gnu.org>
parents:
diff changeset
431 "black",
Dave Love <fx@gnu.org>
parents:
diff changeset
432 &s_bdr_color, &color_def)
Dave Love <fx@gnu.org>
parents:
diff changeset
433 ) ;
Dave Love <fx@gnu.org>
parents:
diff changeset
434 else ;
Dave Love <fx@gnu.org>
parents:
diff changeset
435
Dave Love <fx@gnu.org>
parents:
diff changeset
436 def_val = x_get_resource_string ("selectionBorderWidth", "SelectionBorderWidth");
Dave Love <fx@gnu.org>
parents:
diff changeset
437 if (def_val != NULL) s_bdr_width = atoi(def_val);
Dave Love <fx@gnu.org>
parents:
diff changeset
438
Dave Love <fx@gnu.org>
parents:
diff changeset
439 def_val = x_get_resource_string ("selectionSpread", "SelectionSpread");
Dave Love <fx@gnu.org>
parents:
diff changeset
440 if (def_val != NULL) s_spread = atof(def_val);
Dave Love <fx@gnu.org>
parents:
diff changeset
441
Dave Love <fx@gnu.org>
parents:
diff changeset
442 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
443 * Create and store the inactive pattern pixmap.
Dave Love <fx@gnu.org>
parents:
diff changeset
444 */
Dave Love <fx@gnu.org>
parents:
diff changeset
445 {
Dave Love <fx@gnu.org>
parents:
diff changeset
446 char *data = NULL;
Dave Love <fx@gnu.org>
parents:
diff changeset
447 int width, height;
Dave Love <fx@gnu.org>
parents:
diff changeset
448
Dave Love <fx@gnu.org>
parents:
diff changeset
449 switch (inact_pnum)
Dave Love <fx@gnu.org>
parents:
diff changeset
450 {
Dave Love <fx@gnu.org>
parents:
diff changeset
451 case 0:
Dave Love <fx@gnu.org>
parents:
diff changeset
452 data = (char *)dimple1_bits;
Dave Love <fx@gnu.org>
parents:
diff changeset
453 width = dimple1_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
454 height = dimple1_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
455 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
456
Dave Love <fx@gnu.org>
parents:
diff changeset
457 case 1:
Dave Love <fx@gnu.org>
parents:
diff changeset
458 data = (char *)dimple3_bits;
Dave Love <fx@gnu.org>
parents:
diff changeset
459 width = dimple3_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
460 height = dimple3_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
461 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
462
Dave Love <fx@gnu.org>
parents:
diff changeset
463 case 2:
Dave Love <fx@gnu.org>
parents:
diff changeset
464 data = (char *)gray1_bits;
Dave Love <fx@gnu.org>
parents:
diff changeset
465 width = gray1_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
466 height = gray1_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
467 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
468
Dave Love <fx@gnu.org>
parents:
diff changeset
469 case 3:
Dave Love <fx@gnu.org>
parents:
diff changeset
470 data = (char *)gray3_bits;
Dave Love <fx@gnu.org>
parents:
diff changeset
471 width = gray3_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
472 height = gray3_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
473 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
474
Dave Love <fx@gnu.org>
parents:
diff changeset
475 case 4:
Dave Love <fx@gnu.org>
parents:
diff changeset
476 data = (char *)cross_weave_bits;
Dave Love <fx@gnu.org>
parents:
diff changeset
477 width = cross_weave_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
478 height = cross_weave_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
479 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
480 }
Dave Love <fx@gnu.org>
parents:
diff changeset
481
Dave Love <fx@gnu.org>
parents:
diff changeset
482 if (! data)
Dave Love <fx@gnu.org>
parents:
diff changeset
483 {
Dave Love <fx@gnu.org>
parents:
diff changeset
484 _XMErrorCode = XME_STORE_BITMAP;
Dave Love <fx@gnu.org>
parents:
diff changeset
485 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
486 }
Dave Love <fx@gnu.org>
parents:
diff changeset
487
Dave Love <fx@gnu.org>
parents:
diff changeset
488 inact_bitmap =
Dave Love <fx@gnu.org>
parents:
diff changeset
489 XCreatePixmapFromBitmapData
Dave Love <fx@gnu.org>
parents:
diff changeset
490 (display, root, data, width, height,
Dave Love <fx@gnu.org>
parents:
diff changeset
491 p_frg_color.pixel, bkgnd_color.pixel,
Dave Love <fx@gnu.org>
parents:
diff changeset
492 DisplayPlanes (display, DefaultScreen (display)));
Dave Love <fx@gnu.org>
parents:
diff changeset
493 }
Dave Love <fx@gnu.org>
parents:
diff changeset
494
Dave Love <fx@gnu.org>
parents:
diff changeset
495 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
496 * Load the mouse cursor.
Dave Love <fx@gnu.org>
parents:
diff changeset
497 */
Dave Love <fx@gnu.org>
parents:
diff changeset
498
Dave Love <fx@gnu.org>
parents:
diff changeset
499 switch (menu_style) {
Dave Love <fx@gnu.org>
parents:
diff changeset
500 case LEFT:
Dave Love <fx@gnu.org>
parents:
diff changeset
501 cursor = XCreateBitmapFromData(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
502 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
503 left_ptr_bits,
Dave Love <fx@gnu.org>
parents:
diff changeset
504 left_ptr_width,
Dave Love <fx@gnu.org>
parents:
diff changeset
505 left_ptr_height);
Dave Love <fx@gnu.org>
parents:
diff changeset
506 cursor_mask = XCreateBitmapFromData(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
507 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
508 left_ptrmsk_bits,
Dave Love <fx@gnu.org>
parents:
diff changeset
509 left_ptrmsk_width,
Dave Love <fx@gnu.org>
parents:
diff changeset
510 left_ptrmsk_height);
Dave Love <fx@gnu.org>
parents:
diff changeset
511 mouse_cursor = XCreatePixmapCursor(
Dave Love <fx@gnu.org>
parents:
diff changeset
512 display,
Dave Love <fx@gnu.org>
parents:
diff changeset
513 cursor, cursor_mask,
Dave Love <fx@gnu.org>
parents:
diff changeset
514 &mouse_color, &bkgnd_color,
Dave Love <fx@gnu.org>
parents:
diff changeset
515 left_ptr_x_hot,
Dave Love <fx@gnu.org>
parents:
diff changeset
516 left_ptr_y_hot
Dave Love <fx@gnu.org>
parents:
diff changeset
517 );
Dave Love <fx@gnu.org>
parents:
diff changeset
518 XFreePixmap(display, cursor);
Dave Love <fx@gnu.org>
parents:
diff changeset
519 XFreePixmap(display, cursor_mask);
Dave Love <fx@gnu.org>
parents:
diff changeset
520 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
521 case RIGHT:
Dave Love <fx@gnu.org>
parents:
diff changeset
522 cursor = XCreateBitmapFromData(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
523 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
524 right_ptr_bits,
Dave Love <fx@gnu.org>
parents:
diff changeset
525 right_ptr_width,
Dave Love <fx@gnu.org>
parents:
diff changeset
526 right_ptr_height);
Dave Love <fx@gnu.org>
parents:
diff changeset
527 cursor_mask = XCreateBitmapFromData(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
528 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
529 right_ptrmsk_bits,
Dave Love <fx@gnu.org>
parents:
diff changeset
530 right_ptrmsk_width,
Dave Love <fx@gnu.org>
parents:
diff changeset
531 right_ptrmsk_height);
Dave Love <fx@gnu.org>
parents:
diff changeset
532 mouse_cursor = XCreatePixmapCursor(
Dave Love <fx@gnu.org>
parents:
diff changeset
533 display,
Dave Love <fx@gnu.org>
parents:
diff changeset
534 cursor, cursor_mask,
Dave Love <fx@gnu.org>
parents:
diff changeset
535 &mouse_color, &bkgnd_color,
Dave Love <fx@gnu.org>
parents:
diff changeset
536 right_ptr_x_hot,
Dave Love <fx@gnu.org>
parents:
diff changeset
537 right_ptr_y_hot
Dave Love <fx@gnu.org>
parents:
diff changeset
538 );
Dave Love <fx@gnu.org>
parents:
diff changeset
539 XFreePixmap(display, cursor);
Dave Love <fx@gnu.org>
parents:
diff changeset
540 XFreePixmap(display, cursor_mask);
Dave Love <fx@gnu.org>
parents:
diff changeset
541 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
542 case CENTER:
Dave Love <fx@gnu.org>
parents:
diff changeset
543 cursor = XCreateBitmapFromData(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
544 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
545 cntr_ptr_bits,
Dave Love <fx@gnu.org>
parents:
diff changeset
546 cntr_ptr_width,
Dave Love <fx@gnu.org>
parents:
diff changeset
547 cntr_ptr_height);
Dave Love <fx@gnu.org>
parents:
diff changeset
548 cursor_mask = XCreateBitmapFromData(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
549 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
550 cntr_ptrmsk_bits,
Dave Love <fx@gnu.org>
parents:
diff changeset
551 cntr_ptrmsk_width,
Dave Love <fx@gnu.org>
parents:
diff changeset
552 cntr_ptrmsk_height);
Dave Love <fx@gnu.org>
parents:
diff changeset
553 mouse_cursor = XCreatePixmapCursor(
Dave Love <fx@gnu.org>
parents:
diff changeset
554 display,
Dave Love <fx@gnu.org>
parents:
diff changeset
555 cursor, cursor_mask,
Dave Love <fx@gnu.org>
parents:
diff changeset
556 &mouse_color, &bkgnd_color,
Dave Love <fx@gnu.org>
parents:
diff changeset
557 cntr_ptr_x_hot,
Dave Love <fx@gnu.org>
parents:
diff changeset
558 cntr_ptr_y_hot
Dave Love <fx@gnu.org>
parents:
diff changeset
559 );
Dave Love <fx@gnu.org>
parents:
diff changeset
560 XFreePixmap(display, cursor);
Dave Love <fx@gnu.org>
parents:
diff changeset
561 XFreePixmap(display, cursor_mask);
Dave Love <fx@gnu.org>
parents:
diff changeset
562 break;
Dave Love <fx@gnu.org>
parents:
diff changeset
563 default:
Dave Love <fx@gnu.org>
parents:
diff changeset
564 /* Error! Invalid style parameter. */
Dave Love <fx@gnu.org>
parents:
diff changeset
565 _XMErrorCode = XME_STYLE_PARAM;
Dave Love <fx@gnu.org>
parents:
diff changeset
566 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
567 }
Dave Love <fx@gnu.org>
parents:
diff changeset
568 if (mouse_cursor == _X_FAILURE) {
Dave Love <fx@gnu.org>
parents:
diff changeset
569 _XMErrorCode = XME_CREATE_CURSOR;
Dave Love <fx@gnu.org>
parents:
diff changeset
570 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
571 }
Dave Love <fx@gnu.org>
parents:
diff changeset
572
Dave Love <fx@gnu.org>
parents:
diff changeset
573 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
574 * Open the pane and selection fonts.
Dave Love <fx@gnu.org>
parents:
diff changeset
575 */
Dave Love <fx@gnu.org>
parents:
diff changeset
576
Dave Love <fx@gnu.org>
parents:
diff changeset
577 p_fnt_info = XLoadQueryFont(display, p_fnt_name);
Dave Love <fx@gnu.org>
parents:
diff changeset
578 if (p_fnt_info == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
579 _XMErrorCode = XME_OPEN_FONT;
Dave Love <fx@gnu.org>
parents:
diff changeset
580 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
581
Dave Love <fx@gnu.org>
parents:
diff changeset
582 }
Dave Love <fx@gnu.org>
parents:
diff changeset
583
Dave Love <fx@gnu.org>
parents:
diff changeset
584 s_fnt_info = XLoadQueryFont(display, s_fnt_name);
Dave Love <fx@gnu.org>
parents:
diff changeset
585 if (s_fnt_info == NULL) {
Dave Love <fx@gnu.org>
parents:
diff changeset
586 _XMErrorCode = XME_OPEN_FONT;
Dave Love <fx@gnu.org>
parents:
diff changeset
587 return(NULL);
Dave Love <fx@gnu.org>
parents:
diff changeset
588 }
Dave Love <fx@gnu.org>
parents:
diff changeset
589 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
590 * Calculate the fixed padding value in pixels for each font.
Dave Love <fx@gnu.org>
parents:
diff changeset
591 */
Dave Love <fx@gnu.org>
parents:
diff changeset
592 p_fnt_height = p_fnt_info->max_bounds.ascent + p_fnt_info->max_bounds.descent;
Dave Love <fx@gnu.org>
parents:
diff changeset
593 s_fnt_height = s_fnt_info->max_bounds.ascent + s_fnt_info->max_bounds.descent;
Dave Love <fx@gnu.org>
parents:
diff changeset
594 p_fnt_pad = s_spread * p_fnt_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
595 s_fnt_pad = s_spread * s_fnt_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
596
Dave Love <fx@gnu.org>
parents:
diff changeset
597 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
598 * Calculate fixed height and offset requirements.
Dave Love <fx@gnu.org>
parents:
diff changeset
599 */
Dave Love <fx@gnu.org>
parents:
diff changeset
600 flag_height = p_fnt_height + (p_fnt_pad << 1);
Dave Love <fx@gnu.org>
parents:
diff changeset
601
Dave Love <fx@gnu.org>
parents:
diff changeset
602 p_height = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
603 p_y_off = flag_height + p_bdr_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
604 p_x_off = p_y_off * p_spread;
Dave Love <fx@gnu.org>
parents:
diff changeset
605
Dave Love <fx@gnu.org>
parents:
diff changeset
606 s_height = s_fnt_height + (s_fnt_pad << 1) + (s_bdr_width << 1);
Dave Love <fx@gnu.org>
parents:
diff changeset
607 s_y_off = s_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
608 s_x_off = p_x_off;
Dave Love <fx@gnu.org>
parents:
diff changeset
609
Dave Love <fx@gnu.org>
parents:
diff changeset
610 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
611 * Set up the pane list header.
Dave Love <fx@gnu.org>
parents:
diff changeset
612 */
Dave Love <fx@gnu.org>
parents:
diff changeset
613 pane->next = pane;
Dave Love <fx@gnu.org>
parents:
diff changeset
614 pane->prev = pane;
Dave Love <fx@gnu.org>
parents:
diff changeset
615 pane->type = PL_HEADER;
Dave Love <fx@gnu.org>
parents:
diff changeset
616 pane->serial = -1;
Dave Love <fx@gnu.org>
parents:
diff changeset
617
Dave Love <fx@gnu.org>
parents:
diff changeset
618 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
619 * Initialize the internal pane and selection creation queues.
Dave Love <fx@gnu.org>
parents:
diff changeset
620 */
Dave Love <fx@gnu.org>
parents:
diff changeset
621 _XMWinQueInit();
Dave Love <fx@gnu.org>
parents:
diff changeset
622
Dave Love <fx@gnu.org>
parents:
diff changeset
623 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
624 * Create pane, active, and inactive GC's.
Dave Love <fx@gnu.org>
parents:
diff changeset
625 */
Dave Love <fx@gnu.org>
parents:
diff changeset
626 values = (XGCValues *)malloc(sizeof(XGCValues));
Dave Love <fx@gnu.org>
parents:
diff changeset
627 valuemask = (GCForeground | GCBackground | GCFont | GCLineWidth);
Dave Love <fx@gnu.org>
parents:
diff changeset
628
Dave Love <fx@gnu.org>
parents:
diff changeset
629 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
630 * First, pane.
Dave Love <fx@gnu.org>
parents:
diff changeset
631 */
Dave Love <fx@gnu.org>
parents:
diff changeset
632
Dave Love <fx@gnu.org>
parents:
diff changeset
633 values->foreground = p_frg_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
634 values->background = bkgnd_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
635 values->font = p_fnt_info->fid;
Dave Love <fx@gnu.org>
parents:
diff changeset
636 values->line_width = p_bdr_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
637
Dave Love <fx@gnu.org>
parents:
diff changeset
638 pane_GC = XCreateGC(
Dave Love <fx@gnu.org>
parents:
diff changeset
639 display,
Dave Love <fx@gnu.org>
parents:
diff changeset
640 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
641 valuemask,
Dave Love <fx@gnu.org>
parents:
diff changeset
642 values);
Dave Love <fx@gnu.org>
parents:
diff changeset
643 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
644 * Then normal video selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
645 */
Dave Love <fx@gnu.org>
parents:
diff changeset
646
Dave Love <fx@gnu.org>
parents:
diff changeset
647 values->foreground = s_frg_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
648 values->background = bkgnd_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
649 values->font = s_fnt_info->fid;
Dave Love <fx@gnu.org>
parents:
diff changeset
650 values->line_width = s_bdr_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
651 normal_select_GC = XCreateGC(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
652 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
653 valuemask,
Dave Love <fx@gnu.org>
parents:
diff changeset
654 values);
Dave Love <fx@gnu.org>
parents:
diff changeset
655 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
656 * Inverse video selection.
Dave Love <fx@gnu.org>
parents:
diff changeset
657 */
Dave Love <fx@gnu.org>
parents:
diff changeset
658
Dave Love <fx@gnu.org>
parents:
diff changeset
659 values->foreground = bkgnd_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
660 values->background = s_frg_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
661 values->font = s_fnt_info->fid;
Dave Love <fx@gnu.org>
parents:
diff changeset
662 values->line_width = s_bdr_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
663 inverse_select_GC = XCreateGC(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
664 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
665 valuemask,
Dave Love <fx@gnu.org>
parents:
diff changeset
666 values);
Dave Love <fx@gnu.org>
parents:
diff changeset
667 stipple_pixmap = XCreateBitmapFromData(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
668 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
669 stipple_bits,
Dave Love <fx@gnu.org>
parents:
diff changeset
670 stipple_width,
Dave Love <fx@gnu.org>
parents:
diff changeset
671 stipple_height);
Dave Love <fx@gnu.org>
parents:
diff changeset
672
Dave Love <fx@gnu.org>
parents:
diff changeset
673 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
674 * Finally, inactive pane header and selections
Dave Love <fx@gnu.org>
parents:
diff changeset
675 */
Dave Love <fx@gnu.org>
parents:
diff changeset
676 valuemask |= (GCFillStyle | GCStipple);
Dave Love <fx@gnu.org>
parents:
diff changeset
677 values->foreground = s_frg_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
678 values->background = bkgnd_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
679 values->font = s_fnt_info->fid;
Dave Love <fx@gnu.org>
parents:
diff changeset
680 values->line_width = s_bdr_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
681 values->fill_style = FillStippled;
Dave Love <fx@gnu.org>
parents:
diff changeset
682 values->stipple = stipple_pixmap;
Dave Love <fx@gnu.org>
parents:
diff changeset
683
Dave Love <fx@gnu.org>
parents:
diff changeset
684 inact_GC = XCreateGC(display,
Dave Love <fx@gnu.org>
parents:
diff changeset
685 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
686 valuemask,
Dave Love <fx@gnu.org>
parents:
diff changeset
687 values);
Dave Love <fx@gnu.org>
parents:
diff changeset
688
Dave Love <fx@gnu.org>
parents:
diff changeset
689 valuemask |= (GCGraphicsExposures);
Dave Love <fx@gnu.org>
parents:
diff changeset
690 values->graphics_exposures = False;
Dave Love <fx@gnu.org>
parents:
diff changeset
691 inact_GC_noexpose = XCreateGC (display,
Dave Love <fx@gnu.org>
parents:
diff changeset
692 root,
Dave Love <fx@gnu.org>
parents:
diff changeset
693 valuemask, values);
Dave Love <fx@gnu.org>
parents:
diff changeset
694
Dave Love <fx@gnu.org>
parents:
diff changeset
695
Dave Love <fx@gnu.org>
parents:
diff changeset
696 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
697 * Construct the XMenu object.
Dave Love <fx@gnu.org>
parents:
diff changeset
698 */
Dave Love <fx@gnu.org>
parents:
diff changeset
699 /* -------------------- Menu data -------------------- */
Dave Love <fx@gnu.org>
parents:
diff changeset
700 menu->menu_style = menu_style;
Dave Love <fx@gnu.org>
parents:
diff changeset
701 menu->menu_mode = menu_mode;
Dave Love <fx@gnu.org>
parents:
diff changeset
702 menu->freeze = freeze;
Dave Love <fx@gnu.org>
parents:
diff changeset
703 menu->aeq = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
704 menu->recompute = 1;
Dave Love <fx@gnu.org>
parents:
diff changeset
705 menu->parent = parent;
Dave Love <fx@gnu.org>
parents:
diff changeset
706 menu->height = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
707 menu->width = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
708 menu->mouse_cursor = mouse_cursor;
Dave Love <fx@gnu.org>
parents:
diff changeset
709 menu->assoc_tab = assoc_tab;
Dave Love <fx@gnu.org>
parents:
diff changeset
710 menu->p_list = pane;
Dave Love <fx@gnu.org>
parents:
diff changeset
711 /* -------------------- Pane window data -------------------- */
Dave Love <fx@gnu.org>
parents:
diff changeset
712 menu->p_style = p_style;
Dave Love <fx@gnu.org>
parents:
diff changeset
713 menu->p_events = DEF_P_EVENTS;
Dave Love <fx@gnu.org>
parents:
diff changeset
714 menu->p_fnt_info = p_fnt_info;
Dave Love <fx@gnu.org>
parents:
diff changeset
715 menu->p_fnt_pad = p_fnt_pad;
Dave Love <fx@gnu.org>
parents:
diff changeset
716 menu->p_spread = p_spread;
Dave Love <fx@gnu.org>
parents:
diff changeset
717 menu->p_bdr_width = p_bdr_width;
Dave Love <fx@gnu.org>
parents:
diff changeset
718 menu->flag_height = flag_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
719 menu->p_width = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
720 menu->p_height = p_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
721 menu->p_x_off = p_x_off;
Dave Love <fx@gnu.org>
parents:
diff changeset
722 menu->p_y_off = p_y_off;
Dave Love <fx@gnu.org>
parents:
diff changeset
723 menu->p_count = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
724 menu->pane_GC = pane_GC;
Dave Love <fx@gnu.org>
parents:
diff changeset
725 menu->x_pos = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
726 menu->y_pos = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
727 /* -------------------- Selection window data -------------------- */
Dave Love <fx@gnu.org>
parents:
diff changeset
728 menu->s_style = s_style;
Dave Love <fx@gnu.org>
parents:
diff changeset
729 menu->s_events = DEF_S_EVENTS;
Dave Love <fx@gnu.org>
parents:
diff changeset
730 menu->s_fnt_info = s_fnt_info;
Dave Love <fx@gnu.org>
parents:
diff changeset
731 menu->s_fnt_pad = s_fnt_pad;
Dave Love <fx@gnu.org>
parents:
diff changeset
732 menu->s_spread = s_spread;
Dave Love <fx@gnu.org>
parents:
diff changeset
733 menu->s_bdr_width = s_bdr_width; /* unnecessary */
Dave Love <fx@gnu.org>
parents:
diff changeset
734 menu->s_width = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
735 menu->s_height = s_height;
Dave Love <fx@gnu.org>
parents:
diff changeset
736 menu->s_x_off = s_x_off;
Dave Love <fx@gnu.org>
parents:
diff changeset
737 menu->s_y_off = s_y_off;
Dave Love <fx@gnu.org>
parents:
diff changeset
738 menu->s_count = 0;
Dave Love <fx@gnu.org>
parents:
diff changeset
739 menu->normal_select_GC = normal_select_GC;
Dave Love <fx@gnu.org>
parents:
diff changeset
740 menu->inverse_select_GC = inverse_select_GC;
Dave Love <fx@gnu.org>
parents:
diff changeset
741 menu->inact_GC = inact_GC;
Dave Love <fx@gnu.org>
parents:
diff changeset
742 /* -------------------- Color data -------------------- */
Dave Love <fx@gnu.org>
parents:
diff changeset
743 menu->p_bdr_color = p_bdr_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
744 menu->s_bdr_color = s_bdr_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
745 menu->p_frg_color = p_frg_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
746 menu->s_frg_color = s_frg_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
747 menu->bkgnd_color = bkgnd_color.pixel;
Dave Love <fx@gnu.org>
parents:
diff changeset
748 /* -------------------- Pixmap data -------------------- */
Dave Love <fx@gnu.org>
parents:
diff changeset
749 menu->p_bdr_pixmap = None;
Dave Love <fx@gnu.org>
parents:
diff changeset
750 menu->s_bdr_pixmap = None;
Dave Love <fx@gnu.org>
parents:
diff changeset
751 menu->p_frg_pixmap = None;
Dave Love <fx@gnu.org>
parents:
diff changeset
752 menu->s_frg_pixmap = None;
Dave Love <fx@gnu.org>
parents:
diff changeset
753 menu->bkgnd_pixmap = None;
Dave Love <fx@gnu.org>
parents:
diff changeset
754 menu->inact_pixmap = inact_bitmap;
Dave Love <fx@gnu.org>
parents:
diff changeset
755
Dave Love <fx@gnu.org>
parents:
diff changeset
756 /*
Dave Love <fx@gnu.org>
parents:
diff changeset
757 * Return the completed XMenu.
Dave Love <fx@gnu.org>
parents:
diff changeset
758 */
Dave Love <fx@gnu.org>
parents:
diff changeset
759 _XMErrorCode = XME_NO_ERROR;
Dave Love <fx@gnu.org>
parents:
diff changeset
760 return(menu);
Dave Love <fx@gnu.org>
parents:
diff changeset
761 }