annotate oldXMenu/Create.c @ 99492:ee792794d888

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