Mercurial > emacs
annotate oldXMenu/XMenu.h @ 69571:4f6b547120ec
(set_cursor_from_row): Fix cursor property on overlay string,
so it doesn't associate overlay string with following glyph by default.
Allow integer property value to specify explicit number of buffer
positions associate with overlay string.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sun, 19 Mar 2006 19:38:48 +0000 |
parents | e8a3fb527b77 |
children | ce127a46b1ca d04d8ccb3c41 c5406394f567 |
rev | line source |
---|---|
25858 | 1 #include "copyright.h" |
2 | |
3 /* Copyright Massachusetts Institute of Technology 1985 */ | |
68640
e8a3fb527b77
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
65000
diff
changeset
|
4 /* Copyright (C) 2002, 2003, 2004, 2005, |
e8a3fb527b77
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
65000
diff
changeset
|
5 2006 Free Software Foundation, Inc. */ |
25858 | 6 |
7 /* | |
8 * XMenu: MIT Project Athena, X Window system menu package | |
9 * | |
10 * XMenu.h - Include file for the MIT Project Athena | |
11 * XMenu X window system menu package. | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
27454
diff
changeset
|
12 * |
25858 | 13 * Author: Tony Della Fera, DEC |
14 * August, 1984 | |
15 */ | |
16 | |
17 #ifndef _XMenu_h_ | |
18 #define _XMenu_h_ | |
19 | |
20 #include <X11/Xutil.h> | |
21 #include "X10.h" | |
22 | |
23 #define FAILURE -1 | |
24 #define SUCCESS 1 | |
25 #define POST_ERROR -1 | |
26 #define NO_SELECTION -1 | |
27 | |
28 #define XM_FAILURE -1 | |
29 #define XM_SUCCESS 1 | |
30 #define XM_NO_SELECT 2 | |
31 #define XM_IA_SELECT 3 | |
32 | |
33 #define XME_CODE_COUNT 17 | |
34 | |
35 #define XME_NO_ERROR 0 | |
36 #define XME_NOT_INIT 1 | |
37 #define XME_ARG_BOUNDS 2 | |
38 #define XME_P_NOT_FOUND 3 | |
39 #define XME_S_NOT_FOUND 4 | |
40 #define XME_STYLE_PARAM 5 | |
41 #define XME_GRAB_MOUSE 6 | |
42 #define XME_INTERP_LOC 7 | |
43 #define XME_CALLOC 8 | |
44 #define XME_CREATE_ASSOC 9 | |
45 #define XME_STORE_BITMAP 10 | |
46 #define XME_MAKE_TILES 11 | |
47 #define XME_MAKE_PIXMAP 12 | |
48 #define XME_CREATE_CURSOR 13 | |
49 #define XME_OPEN_FONT 14 | |
50 #define XME_CREATE_WINDOW 15 | |
51 #define XME_CREATE_TRANSP 16 | |
52 | |
53 /* | |
54 * XMenu error code and error list definitions. | |
55 */ | |
56 extern int _XMErrorCode; | |
57 extern char *_XMErrorList[]; | |
58 | |
59 /* | |
60 * Define the XMWindow datatypes. | |
61 * | |
62 * An XMWindow is either an XMPane or an XMSelect. | |
63 * | |
64 * XMWindow is wrapper used to identify the constant window | |
65 * information that makes up XMPane and XMSelect objects. | |
66 * | |
67 * An XMPane is a menu pane made up of one or more XMSelect and a label. | |
68 * | |
69 * An XMSelect is a menu selection object with a label and a data pointer. | |
70 */ | |
71 typedef enum _xmwintype {PANE, SELECTION, PL_HEADER, SL_HEADER, SEPARATOR} XMWType; | |
72 | |
73 typedef struct _xmwindow { | |
74 struct _xmwindow *next; /* Next obj pointer (for emacs_insque). */ | |
75 struct _xmwindow *prev; /* Prev obj pointer (for emacs_insque). */ | |
76 XMWType type; /* Type of window. */ | |
77 Window window; /* X Window Id. */ | |
78 int window_x; /* Window upper left X coordinate. */ | |
79 int window_y; /* Window upper left y coordinate. */ | |
80 int window_w; /* Window width. */ | |
81 int window_h; /* Window height. */ | |
82 int active; /* Window active? */ | |
83 int activated; /* Window activated? */ | |
84 int pad_l1; /* ---- */ | |
85 char *pad_l2; /* ---- */ | |
86 int pad_l3; /* ---- */ | |
87 int pad_l4; /* ---- */ | |
88 int pad_l5; /* ---- */ | |
89 int pad_l6; /* ---- */ | |
90 int pad_l7; /* ---- */ | |
91 int pad_l8; /* ---- */ | |
92 struct _xmwindow *pad_l9; /* ---- */ | |
93 char *pad_l10; /* ---- */ | |
94 struct _xmwindow *pad_l11; /* ---- */ | |
95 } XMWindow; | |
96 | |
97 typedef struct _xmpane { | |
98 struct _xmpane *next; /* Next obj pointer (for emacs_insque). */ | |
99 struct _xmpane *prev; /* Prev obj pointer (for emacs_insque). */ | |
100 XMWType type; /* Type of window. */ | |
101 Window window; /* X Window Id. */ | |
102 int window_x; /* Window upper left X coordinate. */ | |
103 int window_y; /* Window upper left y coordinate. */ | |
104 int window_w; /* Window width. */ | |
105 int window_h; /* Window height. */ | |
106 int active; /* Window active? */ | |
107 int activated; /* Window activated? */ | |
108 int serial; /* -- Pane serial number. */ | |
109 char *label; /* -- Pane label. */ | |
110 int label_width; /* -- Pane label width in pixels. */ | |
111 int label_length; /* -- Pane label length in chars. */ | |
112 int label_x; /* -- Pane label X offset. */ | |
113 int label_uy; /* -- Pane label upper Y offset. */ | |
114 int label_ly; /* -- Pane label lower Y offset. */ | |
115 int s_count; /* -- Selections in this pane. */ | |
116 struct _xmselect *s_list; /* -- Selection window list. */ | |
117 char *pad_l10; /* ---- */ | |
118 struct _xmwindow *pad_l11; /* ---- */ | |
119 } XMPane; | |
120 | |
121 typedef struct _xmselect { | |
122 struct _xmselect *next; /* Next obj pointer (for emacs_insque). */ | |
123 struct _xmselect *prev; /* Prev obj pointer (for emacs_insque). */ | |
124 XMWType type; /* Type of window. */ | |
125 Window window; /* X Window Id. */ | |
126 Window parent; /* X Window id of parent window. */ | |
127 int window_x; /* Window upper left X coordinate. */ | |
128 int window_y; /* Window upper left y coordinate. */ | |
129 int window_w; /* Window width. */ | |
130 int window_h; /* Window height. */ | |
131 int active; /* Window active? */ | |
132 int activated; /* Window activated? */ | |
133 int serial; /* -- Selection serial number. */ | |
134 char *label; /* -- Selection label. */ | |
135 int label_width; /* -- Selection label width in pixels. */ | |
136 int label_length; /* -- Selection label length in chars. */ | |
137 int label_x; /* -- Selection label X offset. */ | |
138 int label_y; /* -- Selection label Y offset. */ | |
139 int pad_l7; /* ---- */ | |
140 int pad_l8; /* ---- */ | |
141 struct _xmwindow *pad_l9; /* ---- */ | |
142 char *data; /* -- Selection data pointer. */ | |
143 struct _xmpane *parent_p; /* -- Selection parent pane structure. */ | |
27454
60bf61bbd0b3
(XmSelect): Add member `help_string'.
Gerd Moellmann <gerd@gnu.org>
parents:
25858
diff
changeset
|
144 char *help_string; /* Help string or null. */ |
25858 | 145 } XMSelect; |
146 | |
147 | |
148 /* | |
149 * Define the XMStyle datatype. | |
150 * | |
151 * Menu presentation style information. | |
152 * | |
153 */ | |
154 typedef enum _xmstyle { | |
155 LEFT, /* Left oriented obejct. */ | |
156 RIGHT, /* Right oriented obejct. */ | |
157 CENTER /* Center oriented object. */ | |
158 } XMStyle; | |
159 | |
160 | |
161 /* | |
162 * Define the XMMode datatype. | |
163 * | |
164 * Menu presentation mode information. | |
165 * | |
166 */ | |
167 typedef enum _xmmode { | |
168 BOX, /* BOXed graphic rendition. */ | |
169 INVERT /* INVERTed graphic rendition. */ | |
170 } XMMode; | |
171 | |
172 | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
27454
diff
changeset
|
173 /* |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
27454
diff
changeset
|
174 * Define the XMenu datatype. |
25858 | 175 * |
176 * All dimensions are in pixels unless otherwise noted. | |
177 */ | |
178 typedef struct _xmenu { | |
179 /* -------------------- Menu data -------------------- */ | |
180 XMStyle menu_style; /* Menu display style. */ | |
181 XMMode menu_mode; /* Menu display mode. */ | |
182 int freeze; /* Freeze server mode? */ | |
183 int aeq; /* Asynchronous Event Queuing mode? */ | |
184 int recompute; /* Recompute menu dependencies? */ | |
185 Window parent; /* Menu's parent window. */ | |
186 int width; /* Overall menu width. */ | |
187 int height; /* Overall menu height. */ | |
188 int x_pos; /* Oveall menu origin. */ | |
189 int y_pos; /* Overall menu origin. */ | |
190 Cursor mouse_cursor; /* Mouse cursor raster. */ | |
191 XAssocTable *assoc_tab; /* XMWindow association table. */ | |
192 XMPane *p_list; /* List of XMPanes. */ | |
193 /* -------------------- Pane window data -------------------- */ | |
194 XMStyle p_style; /* Pane display style. */ | |
195 int p_events; /* Pane window X events. */ | |
196 XFontStruct *p_fnt_info; /* Flag font info structure. */ | |
197 GC pane_GC; /* Pane graphics context. */ | |
198 int p_fnt_pad; /* Fixed flag font padding in pixels. */ | |
199 double p_spread; /* Pane spread in flag height fractions. */ | |
200 int p_bdr_width; /* Pane border width. */ | |
201 int flag_height; /* Flag height. */ | |
202 int p_width; /* Menu pane width. */ | |
203 int p_height; /* Menu pane height. */ | |
204 int p_x_off; /* Pane window X offset. */ | |
205 int p_y_off; /* Pane window Y offset. */ | |
206 int p_count; /* Number of panes per menu. */ | |
207 /* -------------------- Selection window data -------------------- */ | |
208 XMStyle s_style; /* Selection display style. */ | |
209 int s_events; /* Selection window X events. */ | |
210 XFontStruct *s_fnt_info; /* Body font info structure. */ | |
211 int s_fnt_pad; /* Fixed body font padding in pixels. */ | |
212 double s_spread; /* Select spread in line height fractions. */ | |
213 int s_bdr_width; /* Select border width. */ | |
214 int s_width; /* Selection window width. */ | |
215 int s_height; /* Selection window height. */ | |
216 int s_x_off; /* Selection window X offset. */ | |
217 int s_y_off; /* Selection window Y offset. */ | |
218 int s_count; /* Maximum number of selections per pane. */ | |
219 GC normal_select_GC; /* GC used for inactive selections. */ | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
27454
diff
changeset
|
220 GC inverse_select_GC; /* GC used for active (current) selection. */ |
25858 | 221 GC inact_GC; /* GC used for inactive selections and */ |
222 /* panes headers. */ | |
223 /* -------------------- Color data -------------------- */ | |
224 unsigned long p_bdr_color; /* Color of pane border pixmap. */ | |
225 unsigned long s_bdr_color; /* Color of selection border pixmap. */ | |
226 unsigned long p_frg_color; /* Color of pane foreground pixmap. */ | |
227 unsigned long s_frg_color; /* Color of selection pixmap. */ | |
228 unsigned long bkgnd_color; /* Color of menu background pixmap. */ | |
229 /* -------------------- Pixmap data -------------------- */ | |
230 Pixmap p_bdr_pixmap; /* Pane border pixmap. */ | |
231 Pixmap s_bdr_pixmap; /* Selection border pixmap. */ | |
232 Pixmap p_frg_pixmap; /* Pane foreground pixmap. */ | |
233 Pixmap s_frg_pixmap; /* Selection foreground pixmap. */ | |
234 Pixmap bkgnd_pixmap; /* Menu background pixmap. */ | |
235 Pixmap inact_pixmap; /* Menu inactive pixmap. */ | |
236 } XMenu; | |
237 | |
238 /* | |
239 * XMenu library routine declarations. | |
240 */ | |
241 XMenu *XMenuCreate(); | |
242 int XMenuAddPane(); | |
243 int XMenuAddSelection(); | |
244 int XMenuInsertPane(); | |
245 int XMenuInsertSelection(); | |
246 int XMenuFindPane(); | |
247 int XMenuFindSelection(); | |
248 int XMenuChangePane(); | |
249 int XMenuChangeSelection(); | |
250 int XMenuSetPane(); | |
251 int XMenuSetSelection(); | |
252 int XMenuRecompute(); | |
253 int XMenuEventHandler(); /* No value actually returned. */ | |
254 int XMenuLocate(); | |
255 int XMenuSetFreeze(); /* No value actually returned. */ | |
58167
9351060ba546
* XMenu.h (XMenuActivateSetWaitFunction): New function.
Jan Djärv <jan.h.d@swipnet.se>
parents:
54770
diff
changeset
|
256 void XMenuActivateSetWaitFunction(); |
25858 | 257 int XMenuActivate(); |
258 char *XMenuPost(); | |
259 int XMenuDeletePane(); | |
260 int XMenuDeleteSelection(); | |
261 int XMenuDestroy(); /* No value actually returned. */ | |
262 char *XMenuError(); | |
263 | |
264 #endif | |
265 /* Don't add after this point. */ | |
52401 | 266 |
267 /* arch-tag: 7e57b5ac-9355-4057-9385-afbe6912d60f | |
268 (do not change this comment) */ |