root/foundation-apps/mxterm-maxx/menu.h

Revision 8, 13.0 KB (checked in by emasson, 3 years ago)

initial import for the community edition

Line 
1/* $XTermId: menu.h,v 1.111 2007/11/26 18:09:53 tom Exp $ */
2
3/*
4
5Copyright 1999-2006,2007 by Thomas E. Dickey
6
7                        All Rights Reserved
8
9Permission to use, copy, modify, and distribute this software and its
10documentation for any purpose and without fee is hereby granted,
11provided that the above copyright notice appear in all copies and that
12both that copyright notice and this permission notice appear in
13supporting documentation, and that the name of the above listed
14copyright holder(s) not be used in advertising or publicity pertaining
15to distribution of the software without specific, written prior
16permission.
17
18THE ABOVE LISTED COPYRIGHT HOLDER(S) DISCLAIM ALL WARRANTIES WITH REGARD
19TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
20AND FITNESS, IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE
21LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
22WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
23ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
24OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
25
26
27Copyright 1989  The Open Group
28
29Permission to use, copy, modify, distribute, and sell this software and its
30documentation for any purpose is hereby granted without fee, provided that
31the above copyright notice appear in all copies and that both that
32copyright notice and this permission notice appear in supporting
33documentation.
34
35The above copyright notice and this permission notice shall be included
36in all copies or substantial portions of the Software.
37
38THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
39OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
40MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
41IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
42OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
43ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
44OTHER DEALINGS IN THE SOFTWARE.
45
46Except as contained in this notice, the name of The Open Group shall
47not be used in advertising or otherwise to promote the sale, use or
48other dealings in this Software without prior written authorization
49from The Open Group.
50
51*/
52
53#ifndef included_menu_h
54#define included_menu_h
55
56#include <xterm.h>
57
58
59#ifdef MOTIF
60#define TOGGLEBUTTON    1
61#define PUSHBUTTON          2
62#define SEPARATORLINE   3
63#endif /* MOTIF */
64
65
66typedef struct _MenuEntry {
67    char *name;
68    void (*function) PROTO_XT_CALLBACK_ARGS;
69    Widget widget;
70#ifdef MOTIF
71    unsigned char type;
72#endif /* MOTIF */
73} MenuEntry;
74
75
76extern MenuEntry mainMenuEntries[], vtMenuEntries[];
77extern MenuEntry fontMenuEntries[];
78#if OPT_TEK4014
79extern MenuEntry tekMenuEntries[];
80#endif
81
82extern void Handle8BitControl      PROTO_XT_ACTIONS_ARGS;
83extern void HandleAllow132         PROTO_XT_ACTIONS_ARGS;
84extern void HandleAllowSends       PROTO_XT_ACTIONS_ARGS;
85extern void HandleAltEsc           PROTO_XT_ACTIONS_ARGS;
86extern void HandleAltScreen        PROTO_XT_ACTIONS_ARGS;
87extern void HandleAppCursor        PROTO_XT_ACTIONS_ARGS;
88extern void HandleAppKeypad        PROTO_XT_ACTIONS_ARGS;
89extern void HandleAutoLineFeed     PROTO_XT_ACTIONS_ARGS;
90extern void HandleAutoWrap         PROTO_XT_ACTIONS_ARGS;
91extern void HandleBackarrow        PROTO_XT_ACTIONS_ARGS;
92extern void HandleBellIsUrgent     PROTO_XT_ACTIONS_ARGS;
93extern void HandleClearSavedLines  PROTO_XT_ACTIONS_ARGS;
94extern void HandleCreateMenu       PROTO_XT_ACTIONS_ARGS;
95extern void HandleCursesEmul       PROTO_XT_ACTIONS_ARGS;
96extern void HandleCursorBlink      PROTO_XT_ACTIONS_ARGS;
97extern void HandleDeleteIsDEL      PROTO_XT_ACTIONS_ARGS;
98extern void HandleFontBoxChars     PROTO_XT_ACTIONS_ARGS;
99extern void HandleFontDoublesize   PROTO_XT_ACTIONS_ARGS;
100extern void HandleFontLoading      PROTO_XT_ACTIONS_ARGS;
101extern void HandleHardReset        PROTO_XT_ACTIONS_ARGS;
102extern void HandleHpFunctionKeys   PROTO_XT_ACTIONS_ARGS;
103extern void HandleJumpscroll       PROTO_XT_ACTIONS_ARGS;
104extern void HandleLogging          PROTO_XT_ACTIONS_ARGS;
105extern void HandleMarginBell       PROTO_XT_ACTIONS_ARGS;
106extern void HandleMetaEsc          PROTO_XT_ACTIONS_ARGS;
107extern void HandleNumLock          PROTO_XT_ACTIONS_ARGS;
108extern void HandleOldFunctionKeys  PROTO_XT_ACTIONS_ARGS;
109extern void HandlePopupMenu        PROTO_XT_ACTIONS_ARGS;
110extern void HandlePrintControlMode PROTO_XT_ACTIONS_ARGS;
111extern void HandlePrintScreen      PROTO_XT_ACTIONS_ARGS;
112extern void HandleQuit             PROTO_XT_ACTIONS_ARGS;
113extern void HandleRedraw           PROTO_XT_ACTIONS_ARGS;
114extern void HandleRenderFont       PROTO_XT_ACTIONS_ARGS;
115extern void HandleReverseVideo     PROTO_XT_ACTIONS_ARGS;
116extern void HandleReverseWrap      PROTO_XT_ACTIONS_ARGS;
117extern void HandleScoFunctionKeys  PROTO_XT_ACTIONS_ARGS;
118extern void HandleScrollKey        PROTO_XT_ACTIONS_ARGS;
119extern void HandleScrollTtyOutput  PROTO_XT_ACTIONS_ARGS;
120extern void HandleScrollbar        PROTO_XT_ACTIONS_ARGS;
121extern void HandleSecure           PROTO_XT_ACTIONS_ARGS;
122extern void HandleSendSignal       PROTO_XT_ACTIONS_ARGS;
123extern void HandleSetPopOnBell     PROTO_XT_ACTIONS_ARGS;
124extern void HandleKeepSelection    PROTO_XT_ACTIONS_ARGS;
125extern void HandleSetSelect        PROTO_XT_ACTIONS_ARGS;
126extern void HandleSetTekText       PROTO_XT_ACTIONS_ARGS;
127extern void HandleSetTerminalType  PROTO_XT_ACTIONS_ARGS;
128extern void HandleSetVisualBell    PROTO_XT_ACTIONS_ARGS;
129extern void HandleSoftReset        PROTO_XT_ACTIONS_ARGS;
130extern void HandleSunFunctionKeys  PROTO_XT_ACTIONS_ARGS;
131extern void HandleSunKeyboard      PROTO_XT_ACTIONS_ARGS;
132extern void HandleTekCopy          PROTO_XT_ACTIONS_ARGS;
133extern void HandleTekPage          PROTO_XT_ACTIONS_ARGS;
134extern void HandleTekReset         PROTO_XT_ACTIONS_ARGS;
135extern void HandleTiteInhibit      PROTO_XT_ACTIONS_ARGS;
136extern void HandleToolbar          PROTO_XT_ACTIONS_ARGS;
137extern void HandleUTF8Mode         PROTO_XT_ACTIONS_ARGS;
138extern void HandleUTF8Title        PROTO_XT_ACTIONS_ARGS;
139extern void HandleVisibility       PROTO_XT_ACTIONS_ARGS;
140
141extern void SetupMenus (Widget /*shell*/, Widget */*forms*/, Widget */*menus*/, Dimension * /*menu_high*/);
142
143#if OPT_TOOLBAR
144extern void ShowToolbar(Bool);
145#endif
146
147/*
148 * The following definitions MUST match the order of entries given in
149 * the mainMenuEntries, vtMenuEntries, and tekMenuEntries arrays in menu.c.
150 */
151
152/*
153 * items in primary menu
154 */
155typedef enum {
156#if OPT_TOOLBAR
157    mainMenu_toolbar,
158#endif
159    mainMenu_securekbd,
160    mainMenu_allowsends,
161    mainMenu_redraw,
162    mainMenu_line1,
163#ifdef ALLOWLOGGING
164    mainMenu_logging,
165#endif
166    mainMenu_print,
167    mainMenu_print_redir,
168    mainMenu_line2,
169    mainMenu_8bit_ctrl,
170    mainMenu_backarrow,
171#if OPT_NUM_LOCK
172    mainMenu_num_lock,
173    mainMenu_alt_esc,
174    mainMenu_meta_esc,
175#endif
176    mainMenu_delete_del,
177    mainMenu_old_fkeys,
178#if OPT_TCAP_FKEYS
179    mainMenu_tcap_fkeys,
180#endif
181#if OPT_HP_FUNC_KEYS
182    mainMenu_hp_fkeys,
183#endif
184#if OPT_SCO_FUNC_KEYS
185    mainMenu_sco_fkeys,
186#endif
187#if OPT_SUN_FUNC_KEYS
188    mainMenu_sun_fkeys,
189#endif
190#if OPT_SUNPC_KBD
191    mainMenu_sun_kbd,
192#endif
193    mainMenu_line3,
194    mainMenu_suspend,
195    mainMenu_continue,
196    mainMenu_interrupt,
197    mainMenu_hangup,
198    mainMenu_terminate,
199    mainMenu_kill,
200    mainMenu_line4,
201    mainMenu_quit,
202    mainMenu_LAST
203} mainMenuIndices;
204
205
206/*
207 * items in vt100 mode menu
208 */
209typedef enum {
210    vtMenu_scrollbar,
211    vtMenu_jumpscroll,
212    vtMenu_reversevideo,
213    vtMenu_autowrap,
214    vtMenu_reversewrap,
215    vtMenu_autolinefeed,
216    vtMenu_appcursor,
217    vtMenu_appkeypad,
218    vtMenu_scrollkey,
219    vtMenu_scrollttyoutput,
220    vtMenu_allow132,
221    vtMenu_keepSelection,
222    vtMenu_selectToClipboard,
223    vtMenu_visualbell,
224    vtMenu_bellIsUrgent,
225    vtMenu_poponbell,
226#if OPT_BLINK_CURS
227    vtMenu_cursorblink,
228#endif
229    vtMenu_titeInhibit,
230#ifndef NO_ACTIVE_ICON
231    vtMenu_activeicon,
232#endif /* NO_ACTIVE_ICON */
233    vtMenu_line1,
234    vtMenu_softreset,
235    vtMenu_hardreset,
236    vtMenu_clearsavedlines,
237    vtMenu_line2,
238#if OPT_TEK4014
239    vtMenu_tekshow,
240    vtMenu_tekmode,
241    vtMenu_vthide,
242#endif
243    vtMenu_altscreen,
244    vtMenu_LAST
245} vtMenuIndices;
246
247/*
248 * items in vt100 font menu
249 */
250typedef enum {
251    fontMenu_default,
252    fontMenu_font1,
253    fontMenu_font2,
254    fontMenu_font3,
255    fontMenu_font4,
256    fontMenu_font5,
257    fontMenu_font6,
258#define fontMenu_lastBuiltin fontMenu_font6
259    fontMenu_fontescape,
260    fontMenu_fontsel,
261/* number of non-line items down to here should match NMENUFONTS in ptyx.h */
262
263#if OPT_DEC_CHRSET || OPT_BOX_CHARS || OPT_DEC_SOFTFONT
264    fontMenu_line1,
265#if OPT_BOX_CHARS
266    fontMenu_font_boxchars,
267#endif
268#if OPT_DEC_CHRSET
269    fontMenu_font_doublesize,
270#endif
271#if OPT_DEC_SOFTFONT
272    fontMenu_font_loadable,
273#endif
274#endif
275
276#if OPT_RENDERFONT || OPT_WIDE_CHARS
277    fontMenu_line2,
278#if OPT_RENDERFONT
279    fontMenu_render_font,
280#endif
281#if OPT_WIDE_CHARS
282    fontMenu_wide_chars,
283    fontMenu_wide_title,
284#endif
285#endif
286
287    fontMenu_LAST
288} fontMenuIndices;
289
290
291/*
292 * items in tek4014 mode menu
293 */
294#if OPT_TEK4014
295typedef enum {
296    tekMenu_tektextlarge,
297    tekMenu_tektext2,
298    tekMenu_tektext3,
299    tekMenu_tektextsmall,
300    tekMenu_line1,
301    tekMenu_tekpage,
302    tekMenu_tekreset,
303    tekMenu_tekcopy,
304    tekMenu_line2,
305    tekMenu_vtshow,
306    tekMenu_vtmode,
307    tekMenu_tekhide,
308    tekMenu_LAST
309} tekMenuIndices;
310#endif
311
312
313/*
314 * functions for updating menus
315 */
316
317extern void SetItemSensitivity(Widget mi, XtArgVal val);
318
319/*
320 * there should be one of each of the following for each checkable item
321 */
322#if OPT_TOOLBAR
323extern void update_toolbar(void);
324#else
325#define update_toolbar() /* nothing */
326#endif
327
328extern void update_securekbd(void);
329extern void update_allowsends(void);
330
331#ifdef ALLOWLOGGING
332extern void update_logging(void);
333#else
334#define update_logging() /*nothing*/
335#endif
336
337extern void update_print_redir(void);
338extern void update_8bit_control(void);
339extern void update_decbkm(void);
340
341#if OPT_NUM_LOCK
342extern void update_num_lock(void);
343extern void update_alt_esc(void);
344extern void update_meta_esc(void);
345#else
346#define update_num_lock() /*nothing*/
347#define update_alt_esc()  /*nothing*/
348#define update_meta_esc() /*nothing*/
349#endif
350
351extern void update_old_fkeys(void);
352extern void update_delete_del(void);
353
354#if OPT_SUNPC_KBD
355extern void update_sun_kbd(void);
356#endif
357
358#if OPT_HP_FUNC_KEYS
359extern void update_hp_fkeys(void);
360#else
361#define update_hp_fkeys() /*nothing*/
362#endif
363
364#if OPT_SCO_FUNC_KEYS
365extern void update_sco_fkeys(void);
366#else
367#define update_sco_fkeys() /*nothing*/
368#endif
369
370#if OPT_SUN_FUNC_KEYS
371extern void update_sun_fkeys(void);
372#else
373#define update_sun_fkeys() /*nothing*/
374#endif
375
376#if OPT_TCAP_FKEYS
377extern void update_tcap_fkeys(void);
378#else
379#define update_tcap_fkeys() /*nothing*/
380#endif
381
382extern void update_scrollbar(void);
383extern void update_jumpscroll(void);
384extern void update_reversevideo(void);
385extern void update_autowrap(void);
386extern void update_reversewrap(void);
387extern void update_autolinefeed(void);
388extern void update_appcursor(void);
389extern void update_appkeypad(void);
390extern void update_scrollkey(void);
391extern void update_keepSelection(void);
392extern void update_selectToClipboard(void);
393extern void update_scrollttyoutput(void);
394extern void update_allow132(void);
395extern void update_cursesemul(void);
396extern void update_visualbell(void);
397extern void update_bellIsUrgent(void);
398extern void update_poponbell(void);
399
400#define update_marginbell() /* nothing */
401
402#if OPT_BLINK_CURS
403extern void update_cursorblink(void);
404#else
405#define update_cursorblink() /* nothing */
406#endif
407
408extern void update_altscreen(void);
409extern void update_titeInhibit(void);
410
411#ifndef NO_ACTIVE_ICON
412extern void update_activeicon(void);
413#endif /* NO_ACTIVE_ICON */
414
415#if OPT_DEC_CHRSET
416extern void update_font_doublesize(void);
417#else
418#define update_font_doublesize() /* nothing */
419#endif
420
421#if OPT_BOX_CHARS
422extern void update_font_boxchars(void);
423#else
424#define update_font_boxchars() /* nothing */
425#endif
426
427#if OPT_DEC_SOFTFONT
428extern void update_font_loadable(void);
429#else
430#define update_font_loadable() /* nothing */
431#endif
432
433#if OPT_RENDERFONT
434extern void update_font_renderfont(void);
435#else
436#define update_font_renderfont() /* nothing */
437#endif
438
439#if OPT_WIDE_CHARS
440extern void update_font_utf8_mode(void);
441extern void update_font_utf8_title(void);
442#else
443#define update_font_utf8_mode() /* nothing */
444#define update_font_utf8_title() /* nothing */
445#endif
446
447#if OPT_TEK4014
448extern void update_tekshow(void);
449extern void update_vttekmode(void);
450extern void update_vtshow(void);
451extern void set_vthide_sensitivity(void);
452extern void set_tekhide_sensitivity(void);
453#else
454#define update_tekshow() /*nothing*/
455#define update_vttekmode() /*nothing*/
456#define update_vtshow() /*nothing*/
457#define set_vthide_sensitivity() /*nothing*/
458#define set_tekhide_sensitivity() /*nothing*/
459#endif
460
461/*
462 * macros for mapping font size to tekMenu placement
463 */
464#define FS2MI(n) (n)                    /* font_size_to_menu_item */
465#define MI2FS(n) (n)                    /* menu_item_to_font_size */
466
467#if OPT_TEK4014
468extern void set_tekfont_menu_item(int n,int val);
469#else
470#define set_tekfont_menu_item(n,val) /*nothing*/
471#endif
472
473extern void set_menu_font(int val);
474
475#endif  /*included_menu_h*/
Note: See TracBrowser for help on using the browser.