annotate oldXMenu/Create.c @ 29473:80835e075d87

(display_line): Set row's and iterator's starts_in_middle_of_char_p and ends_in_middle_of_char_p flags. Set cursor even if row ends in the middle of a character. (dump_glyph_row): Print values of new flags. (redisplay_window) <cursor movement in unchanged window>: When point has been moved forward, and PT is at the end of the cursor row, don't place the cursor in the next row if the cursor row ends in the middle of a character or at ZV.
author Gerd Moellmann <gerd@gnu.org>
date Tue, 06 Jun 2000 20:02:39 +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 }