1 /* $XTermId: menu.h,v 1.122 2011/01/20 09:42:50 tom Exp $ */
4 * Copyright 1999-2010,2011 by Thomas E. Dickey
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the
10 * "Software"), to deal in the Software without restriction, including
11 * without limitation the rights to use, copy, modify, merge, publish,
12 * distribute, sublicense, and/or sell copies of the Software, and to
13 * permit persons to whom the Software is furnished to do so, subject to
14 * the following conditions:
16 * The above copyright notice and this permission notice shall be included
17 * in all copies or substantial portions of the Software.
19 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22 * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
23 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 * Except as contained in this notice, the name(s) of the above copyright
28 * holders shall not be used in advertising or otherwise to promote the
29 * sale, use or other dealings in this Software without prior written
33 * Copyright 1989 The Open Group
35 * Permission to use, copy, modify, distribute, and sell this software and its
36 * documentation for any purpose is hereby granted without fee, provided that
37 * the above copyright notice appear in all copies and that both that
38 * copyright notice and this permission notice appear in supporting
41 * The above copyright notice and this permission notice shall be included
42 * in all copies or substantial portions of the Software.
44 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
45 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
46 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
47 * IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
48 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
49 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
50 * OTHER DEALINGS IN THE SOFTWARE.
52 * Except as contained in this notice, the name of The Open Group shall
53 * not be used in advertising or otherwise to promote the sale, use or
54 * other dealings in this Software without prior written authorization
55 * from The Open Group.
59 #ifndef included_menu_h
60 #define included_menu_h
65 typedef struct _MenuEntry {
67 void (*function) PROTO_XT_CALLBACK_ARGS;
71 extern MenuEntry mainMenuEntries[], vtMenuEntries[];
72 extern MenuEntry fontMenuEntries[];
74 extern MenuEntry tekMenuEntries[];
77 extern void Handle8BitControl PROTO_XT_ACTIONS_ARGS;
78 extern void HandleAllow132 PROTO_XT_ACTIONS_ARGS;
79 extern void HandleAllowColorOps PROTO_XT_ACTIONS_ARGS;
80 extern void HandleAllowFontOps PROTO_XT_ACTIONS_ARGS;
81 extern void HandleAllowSends PROTO_XT_ACTIONS_ARGS;
82 extern void HandleAllowTcapOps PROTO_XT_ACTIONS_ARGS;
83 extern void HandleAllowTitleOps PROTO_XT_ACTIONS_ARGS;
84 extern void HandleAllowWindowOps PROTO_XT_ACTIONS_ARGS;
85 extern void HandleAltEsc PROTO_XT_ACTIONS_ARGS;
86 extern void HandleAltScreen PROTO_XT_ACTIONS_ARGS;
87 extern void HandleAppCursor PROTO_XT_ACTIONS_ARGS;
88 extern void HandleAppKeypad PROTO_XT_ACTIONS_ARGS;
89 extern void HandleAutoLineFeed PROTO_XT_ACTIONS_ARGS;
90 extern void HandleAutoWrap PROTO_XT_ACTIONS_ARGS;
91 extern void HandleBackarrow PROTO_XT_ACTIONS_ARGS;
92 extern void HandleBellIsUrgent PROTO_XT_ACTIONS_ARGS;
93 extern void HandleClearSavedLines PROTO_XT_ACTIONS_ARGS;
94 extern void HandleCreateMenu PROTO_XT_ACTIONS_ARGS;
95 extern void HandleCursesEmul PROTO_XT_ACTIONS_ARGS;
96 extern void HandleCursorBlink PROTO_XT_ACTIONS_ARGS;
97 extern void HandleDeleteIsDEL PROTO_XT_ACTIONS_ARGS;
98 extern void HandleFontBoxChars PROTO_XT_ACTIONS_ARGS;
99 extern void HandleFontDoublesize PROTO_XT_ACTIONS_ARGS;
100 extern void HandleFontLoading PROTO_XT_ACTIONS_ARGS;
101 extern void HandleFontPacked PROTO_XT_ACTIONS_ARGS;
102 extern void HandleFullscreen PROTO_XT_ACTIONS_ARGS;
103 extern void HandleHardReset PROTO_XT_ACTIONS_ARGS;
104 extern void HandleHpFunctionKeys PROTO_XT_ACTIONS_ARGS;
105 extern void HandleJumpscroll PROTO_XT_ACTIONS_ARGS;
106 extern void HandleKeepSelection PROTO_XT_ACTIONS_ARGS;
107 extern void HandleLogging PROTO_XT_ACTIONS_ARGS;
108 extern void HandleMarginBell PROTO_XT_ACTIONS_ARGS;
109 extern void HandleMetaEsc PROTO_XT_ACTIONS_ARGS;
110 extern void HandleNumLock PROTO_XT_ACTIONS_ARGS;
111 extern void HandleOldFunctionKeys PROTO_XT_ACTIONS_ARGS;
112 extern void HandlePopupMenu PROTO_XT_ACTIONS_ARGS;
113 extern void HandlePrintControlMode PROTO_XT_ACTIONS_ARGS;
114 extern void HandlePrintEverything PROTO_XT_ACTIONS_ARGS;
115 extern void HandlePrintScreen PROTO_XT_ACTIONS_ARGS;
116 extern void HandleQuit PROTO_XT_ACTIONS_ARGS;
117 extern void HandleRedraw PROTO_XT_ACTIONS_ARGS;
118 extern void HandleRenderFont PROTO_XT_ACTIONS_ARGS;
119 extern void HandleReverseVideo PROTO_XT_ACTIONS_ARGS;
120 extern void HandleReverseWrap PROTO_XT_ACTIONS_ARGS;
121 extern void HandleScoFunctionKeys PROTO_XT_ACTIONS_ARGS;
122 extern void HandleScrollKey PROTO_XT_ACTIONS_ARGS;
123 extern void HandleScrollTtyOutput PROTO_XT_ACTIONS_ARGS;
124 extern void HandleScrollbar PROTO_XT_ACTIONS_ARGS;
125 extern void HandleSecure PROTO_XT_ACTIONS_ARGS;
126 extern void HandleSendSignal PROTO_XT_ACTIONS_ARGS;
127 extern void HandleSetPopOnBell PROTO_XT_ACTIONS_ARGS;
128 extern void HandleSetSelect PROTO_XT_ACTIONS_ARGS;
129 extern void HandleSetTekText PROTO_XT_ACTIONS_ARGS;
130 extern void HandleSetTerminalType PROTO_XT_ACTIONS_ARGS;
131 extern void HandleSetVisualBell PROTO_XT_ACTIONS_ARGS;
132 extern void HandleSoftReset PROTO_XT_ACTIONS_ARGS;
133 extern void HandleSunFunctionKeys PROTO_XT_ACTIONS_ARGS;
134 extern void HandleSunKeyboard PROTO_XT_ACTIONS_ARGS;
135 extern void HandleTekCopy PROTO_XT_ACTIONS_ARGS;
136 extern void HandleTekPage PROTO_XT_ACTIONS_ARGS;
137 extern void HandleTekReset PROTO_XT_ACTIONS_ARGS;
138 extern void HandleTiteInhibit PROTO_XT_ACTIONS_ARGS;
139 extern void HandleToolbar PROTO_XT_ACTIONS_ARGS;
140 extern void HandleUTF8Mode PROTO_XT_ACTIONS_ARGS;
141 extern void HandleUTF8Title PROTO_XT_ACTIONS_ARGS;
142 extern void HandleVisibility PROTO_XT_ACTIONS_ARGS;
144 extern void SetupMenus (Widget /*shell*/, Widget */*forms*/, Widget */*menus*/, Dimension * /*menu_high*/);
147 extern void ShowToolbar(Bool);
151 * The following definitions MUST match the order of entries given in
152 * the mainMenuEntries, vtMenuEntries, and tekMenuEntries arrays in menu.c.
156 * items in primary menu
173 mainMenu_print_redir,
190 #if OPT_SCO_FUNC_KEYS
193 #if OPT_SUN_FUNC_KEYS
213 * items in vt100 mode menu
225 vtMenu_scrollttyoutput,
227 vtMenu_keepSelection,
228 vtMenu_selectToClipboard,
236 #ifndef NO_ACTIVE_ICON
238 #endif /* NO_ACTIVE_ICON */
242 vtMenu_clearsavedlines,
254 * items in vt100 font menu
264 #define fontMenu_lastBuiltin fontMenu_font6
267 /* number of non-line items down to here should match NMENUFONTS in ptyx.h */
269 #if OPT_DEC_CHRSET || OPT_BOX_CHARS || OPT_DEC_SOFTFONT
272 fontMenu_font_boxchars,
273 fontMenu_font_packedfont,
276 fontMenu_font_doublesize,
279 fontMenu_font_loadable,
283 #if OPT_RENDERFONT || OPT_WIDE_CHARS
286 fontMenu_render_font,
293 #if OPT_ALLOW_XXX_OPS
295 fontMenu_allowColorOps,
296 fontMenu_allowFontOps,
297 fontMenu_allowTcapOps,
298 fontMenu_allowTitleOps,
299 fontMenu_allowWindowOps,
306 * items in tek4014 mode menu
310 tekMenu_tektextlarge,
313 tekMenu_tektextsmall,
328 * functions for updating menus
331 extern void SetItemSensitivity(Widget mi, Bool val);
334 * there should be one of each of the following for each checkable item
337 extern void update_toolbar(void);
339 #define update_toolbar() /* nothing */
343 extern void update_fullscreen(void);
345 #define update_fullscreen() /* nothing */
348 extern void update_securekbd(void);
349 extern void update_allowsends(void);
352 extern void update_logging(void);
354 #define update_logging() /*nothing*/
357 extern void update_print_redir(void);
358 extern void update_8bit_control(void);
359 extern void update_decbkm(void);
362 extern void update_num_lock(void);
363 extern void update_alt_esc(void);
364 extern void update_meta_esc(void);
366 #define update_num_lock() /*nothing*/
367 #define update_alt_esc() /*nothing*/
368 #define update_meta_esc() /*nothing*/
371 extern void update_old_fkeys(void);
372 extern void update_delete_del(void);
375 extern void update_sun_kbd(void);
379 extern void update_hp_fkeys(void);
381 #define update_hp_fkeys() /*nothing*/
384 #if OPT_SCO_FUNC_KEYS
385 extern void update_sco_fkeys(void);
387 #define update_sco_fkeys() /*nothing*/
390 #if OPT_SUN_FUNC_KEYS
391 extern void update_sun_fkeys(void);
393 #define update_sun_fkeys() /*nothing*/
397 extern void update_tcap_fkeys(void);
399 #define update_tcap_fkeys() /*nothing*/
402 extern void update_scrollbar(void);
403 extern void update_jumpscroll(void);
404 extern void update_reversevideo(void);
405 extern void update_autowrap(void);
406 extern void update_reversewrap(void);
407 extern void update_autolinefeed(void);
408 extern void update_appcursor(void);
409 extern void update_appkeypad(void);
410 extern void update_scrollkey(void);
411 extern void update_keepSelection(void);
412 extern void update_selectToClipboard(void);
413 extern void update_scrollttyoutput(void);
414 extern void update_allow132(void);
415 extern void update_cursesemul(void);
416 extern void update_visualbell(void);
417 extern void update_bellIsUrgent(void);
418 extern void update_poponbell(void);
420 #define update_marginbell() /* nothing */
422 #if OPT_ALLOW_XXX_OPS
423 extern void update_menu_allowColorOps(void);
424 extern void update_menu_allowFontOps(void);
425 extern void update_menu_allowTcapOps(void);
426 extern void update_menu_allowTitleOps(void);
427 extern void update_menu_allowWindowOps(void);
431 extern void update_cursorblink(void);
433 #define update_cursorblink() /* nothing */
436 extern void update_altscreen(void);
437 extern void update_titeInhibit(void);
439 #ifndef NO_ACTIVE_ICON
440 extern void update_activeicon(void);
441 #endif /* NO_ACTIVE_ICON */
444 extern void update_font_doublesize(void);
446 #define update_font_doublesize() /* nothing */
450 extern void update_font_boxchars(void);
451 extern void update_font_packed(void);
453 #define update_font_boxchars() /* nothing */
454 #define update_font_packed() /* nothing */
458 extern void update_font_loadable(void);
460 #define update_font_loadable() /* nothing */
464 extern void update_font_renderfont(void);
466 #define update_font_renderfont() /* nothing */
470 extern void update_font_utf8_mode(void);
471 extern void update_font_utf8_title(void);
473 #define update_font_utf8_mode() /* nothing */
474 #define update_font_utf8_title() /* nothing */
478 extern void update_tekshow(void);
479 extern void update_vttekmode(void);
480 extern void update_vtshow(void);
481 extern void set_vthide_sensitivity(void);
482 extern void set_tekhide_sensitivity(void);
484 #define update_tekshow() /*nothing*/
485 #define update_vttekmode() /*nothing*/
486 #define update_vtshow() /*nothing*/
487 #define set_vthide_sensitivity() /*nothing*/
488 #define set_tekhide_sensitivity() /*nothing*/
492 * macros for mapping font size to tekMenu placement
494 #define FS2MI(n) (n) /* font_size_to_menu_item */
495 #define MI2FS(n) (n) /* menu_item_to_font_size */
498 extern void set_tekfont_menu_item(int n,int val);
500 #define set_tekfont_menu_item(n,val) /*nothing*/
503 extern void set_menu_font(int val);
507 #endif /* included_menu_h */