menu.h revision f2e35a3a
1f2e35a3aSmrg/* $XTermId: menu.h,v 1.145 2020/09/15 11:09:06 tom Exp $ */
2d522f475Smrg
3d522f475Smrg/*
4f2e35a3aSmrg * Copyright 1999-2019,2020 by Thomas E. Dickey
520d2c4d2Smrg *
620d2c4d2Smrg *                         All Rights Reserved
720d2c4d2Smrg *
820d2c4d2Smrg * Permission is hereby granted, free of charge, to any person obtaining a
920d2c4d2Smrg * copy of this software and associated documentation files (the
1020d2c4d2Smrg * "Software"), to deal in the Software without restriction, including
1120d2c4d2Smrg * without limitation the rights to use, copy, modify, merge, publish,
1220d2c4d2Smrg * distribute, sublicense, and/or sell copies of the Software, and to
1320d2c4d2Smrg * permit persons to whom the Software is furnished to do so, subject to
1420d2c4d2Smrg * the following conditions:
1520d2c4d2Smrg *
1620d2c4d2Smrg * The above copyright notice and this permission notice shall be included
1720d2c4d2Smrg * in all copies or substantial portions of the Software.
1820d2c4d2Smrg *
1920d2c4d2Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
2020d2c4d2Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
2120d2c4d2Smrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
2220d2c4d2Smrg * IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
2320d2c4d2Smrg * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
2420d2c4d2Smrg * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
2520d2c4d2Smrg * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2620d2c4d2Smrg *
2720d2c4d2Smrg * Except as contained in this notice, the name(s) of the above copyright
2820d2c4d2Smrg * holders shall not be used in advertising or otherwise to promote the
2920d2c4d2Smrg * sale, use or other dealings in this Software without prior written
3020d2c4d2Smrg * authorization.
3120d2c4d2Smrg *
32a1f3da82Smrg *
33f2e35a3aSmrg * Copyright 1989  X Consortium
3420d2c4d2Smrg *
3520d2c4d2Smrg * Permission to use, copy, modify, distribute, and sell this software and its
3620d2c4d2Smrg * documentation for any purpose is hereby granted without fee, provided that
3720d2c4d2Smrg * the above copyright notice appear in all copies and that both that
3820d2c4d2Smrg * copyright notice and this permission notice appear in supporting
3920d2c4d2Smrg * documentation.
4020d2c4d2Smrg *
4120d2c4d2Smrg * The above copyright notice and this permission notice shall be included
4220d2c4d2Smrg * in all copies or substantial portions of the Software.
4320d2c4d2Smrg *
4420d2c4d2Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
4520d2c4d2Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
4620d2c4d2Smrg * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
4720d2c4d2Smrg * IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
4820d2c4d2Smrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
4920d2c4d2Smrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
5020d2c4d2Smrg * OTHER DEALINGS IN THE SOFTWARE.
5120d2c4d2Smrg *
52f2e35a3aSmrg * Except as contained in this notice, the name of the X Consortium shall
5320d2c4d2Smrg * not be used in advertising or otherwise to promote the sale, use or
5420d2c4d2Smrg * other dealings in this Software without prior written authorization
55f2e35a3aSmrg * from the X Consortium.
5620d2c4d2Smrg */
57d522f475Smrg
58d522f475Smrg#ifndef included_menu_h
59d522f475Smrg#define included_menu_h
60a1f3da82Smrg/* *INDENT-OFF* */
61d522f475Smrg
62d522f475Smrg#include <xterm.h>
63d522f475Smrg
64f2e35a3aSmrg#ifndef OPT_MENU_KEEPCLIPBOARD
65f2e35a3aSmrg#define OPT_MENU_KEEPCLIPBOARD 0	/* useful for debugging */
66f2e35a3aSmrg#endif
67f2e35a3aSmrg
68d522f475Smrgtypedef struct _MenuEntry {
6920d2c4d2Smrg    const char *name;
70d522f475Smrg    void (*function) PROTO_XT_CALLBACK_ARGS;
71d522f475Smrg    Widget widget;
72d522f475Smrg} MenuEntry;
73d522f475Smrg
74d522f475Smrgextern MenuEntry mainMenuEntries[], vtMenuEntries[];
75d522f475Smrgextern MenuEntry fontMenuEntries[];
76d522f475Smrg#if OPT_TEK4014
77d522f475Smrgextern MenuEntry tekMenuEntries[];
78d522f475Smrg#endif
79d522f475Smrg
80d522f475Smrgextern void Handle8BitControl      PROTO_XT_ACTIONS_ARGS;
81d522f475Smrgextern void HandleAllow132         PROTO_XT_ACTIONS_ARGS;
82e39b573cSmrgextern void HandleAllowBoldFonts   PROTO_XT_ACTIONS_ARGS;
8320d2c4d2Smrgextern void HandleAllowColorOps    PROTO_XT_ACTIONS_ARGS;
84956cc18dSsnjextern void HandleAllowFontOps     PROTO_XT_ACTIONS_ARGS;
85913cc679Smrgextern void HandleAllowMouseOps    PROTO_XT_ACTIONS_ARGS;
86d522f475Smrgextern void HandleAllowSends       PROTO_XT_ACTIONS_ARGS;
87956cc18dSsnjextern void HandleAllowTcapOps     PROTO_XT_ACTIONS_ARGS;
88956cc18dSsnjextern void HandleAllowTitleOps    PROTO_XT_ACTIONS_ARGS;
89956cc18dSsnjextern void HandleAllowWindowOps   PROTO_XT_ACTIONS_ARGS;
90d522f475Smrgextern void HandleAltEsc           PROTO_XT_ACTIONS_ARGS;
91d522f475Smrgextern void HandleAltScreen        PROTO_XT_ACTIONS_ARGS;
92d522f475Smrgextern void HandleAppCursor        PROTO_XT_ACTIONS_ARGS;
93d522f475Smrgextern void HandleAppKeypad        PROTO_XT_ACTIONS_ARGS;
94d522f475Smrgextern void HandleAutoLineFeed     PROTO_XT_ACTIONS_ARGS;
95d522f475Smrgextern void HandleAutoWrap         PROTO_XT_ACTIONS_ARGS;
96d522f475Smrgextern void HandleBackarrow        PROTO_XT_ACTIONS_ARGS;
97d522f475Smrgextern void HandleBellIsUrgent     PROTO_XT_ACTIONS_ARGS;
98f2e35a3aSmrgextern void HandleClearSavedLines  PROTO_XT_ACTIONS_ARGS GCC_NORETURN;
99d522f475Smrgextern void HandleCreateMenu       PROTO_XT_ACTIONS_ARGS;
100d522f475Smrgextern void HandleCursesEmul       PROTO_XT_ACTIONS_ARGS;
101d522f475Smrgextern void HandleCursorBlink      PROTO_XT_ACTIONS_ARGS;
102d522f475Smrgextern void HandleDeleteIsDEL      PROTO_XT_ACTIONS_ARGS;
1032e4f8982Smrgextern void HandleDumpHtml         PROTO_XT_ACTIONS_ARGS;
1042e4f8982Smrgextern void HandleDumpSvg          PROTO_XT_ACTIONS_ARGS;
105d522f475Smrgextern void HandleFontBoxChars     PROTO_XT_ACTIONS_ARGS;
106d522f475Smrgextern void HandleFontDoublesize   PROTO_XT_ACTIONS_ARGS;
107d522f475Smrgextern void HandleFontLoading      PROTO_XT_ACTIONS_ARGS;
10820d2c4d2Smrgextern void HandleFontPacked       PROTO_XT_ACTIONS_ARGS;
109a1f3da82Smrgextern void HandleFullscreen       PROTO_XT_ACTIONS_ARGS;
110f2e35a3aSmrgextern void HandleHardReset        PROTO_XT_ACTIONS_ARGS GCC_NORETURN;
111d522f475Smrgextern void HandleHpFunctionKeys   PROTO_XT_ACTIONS_ARGS;
112d522f475Smrgextern void HandleJumpscroll       PROTO_XT_ACTIONS_ARGS;
1132e4f8982Smrgextern void HandleKeepClipboard    PROTO_XT_ACTIONS_ARGS;
114956cc18dSsnjextern void HandleKeepSelection    PROTO_XT_ACTIONS_ARGS;
115d522f475Smrgextern void HandleLogging          PROTO_XT_ACTIONS_ARGS;
116d522f475Smrgextern void HandleMarginBell       PROTO_XT_ACTIONS_ARGS;
117d522f475Smrgextern void HandleMetaEsc          PROTO_XT_ACTIONS_ARGS;
118d522f475Smrgextern void HandleNumLock          PROTO_XT_ACTIONS_ARGS;
119d522f475Smrgextern void HandleOldFunctionKeys  PROTO_XT_ACTIONS_ARGS;
120d522f475Smrgextern void HandlePopupMenu        PROTO_XT_ACTIONS_ARGS;
121d522f475Smrgextern void HandlePrintControlMode PROTO_XT_ACTIONS_ARGS;
122956cc18dSsnjextern void HandlePrintEverything  PROTO_XT_ACTIONS_ARGS;
123f2e35a3aSmrgextern void HandlePrintImmediate   PROTO_XT_ACTIONS_ARGS;
124f2e35a3aSmrgextern void HandlePrintOnError     PROTO_XT_ACTIONS_ARGS;
125a1f3da82Smrgextern void HandlePrintScreen      PROTO_XT_ACTIONS_ARGS;
126f2e35a3aSmrgextern void HandleQuit             PROTO_XT_ACTIONS_ARGS GCC_NORETURN;
127d522f475Smrgextern void HandleRedraw           PROTO_XT_ACTIONS_ARGS;
128d522f475Smrgextern void HandleRenderFont       PROTO_XT_ACTIONS_ARGS;
129d522f475Smrgextern void HandleReverseVideo     PROTO_XT_ACTIONS_ARGS;
130d522f475Smrgextern void HandleReverseWrap      PROTO_XT_ACTIONS_ARGS;
131d522f475Smrgextern void HandleScoFunctionKeys  PROTO_XT_ACTIONS_ARGS;
132d522f475Smrgextern void HandleScrollKey        PROTO_XT_ACTIONS_ARGS;
133d522f475Smrgextern void HandleScrollTtyOutput  PROTO_XT_ACTIONS_ARGS;
134d522f475Smrgextern void HandleScrollbar        PROTO_XT_ACTIONS_ARGS;
135d522f475Smrgextern void HandleSecure           PROTO_XT_ACTIONS_ARGS;
136d522f475Smrgextern void HandleSendSignal       PROTO_XT_ACTIONS_ARGS;
137d522f475Smrgextern void HandleSetPopOnBell     PROTO_XT_ACTIONS_ARGS;
138e0a2b6dfSmrgextern void HandleSetPrivateColorRegisters PROTO_XT_ACTIONS_ARGS;
139d522f475Smrgextern void HandleSetSelect        PROTO_XT_ACTIONS_ARGS;
140d522f475Smrgextern void HandleSetTekText       PROTO_XT_ACTIONS_ARGS;
141d522f475Smrgextern void HandleSetTerminalType  PROTO_XT_ACTIONS_ARGS;
142d522f475Smrgextern void HandleSetVisualBell    PROTO_XT_ACTIONS_ARGS;
143e0a2b6dfSmrgextern void HandleSixelScrolling   PROTO_XT_ACTIONS_ARGS;
144f2e35a3aSmrgextern void HandleSoftReset        PROTO_XT_ACTIONS_ARGS GCC_NORETURN;
145d522f475Smrgextern void HandleSunFunctionKeys  PROTO_XT_ACTIONS_ARGS;
146d522f475Smrgextern void HandleSunKeyboard      PROTO_XT_ACTIONS_ARGS;
147d522f475Smrgextern void HandleTekCopy          PROTO_XT_ACTIONS_ARGS;
148d522f475Smrgextern void HandleTekPage          PROTO_XT_ACTIONS_ARGS;
149d522f475Smrgextern void HandleTekReset         PROTO_XT_ACTIONS_ARGS;
150d522f475Smrgextern void HandleTiteInhibit      PROTO_XT_ACTIONS_ARGS;
151d522f475Smrgextern void HandleToolbar          PROTO_XT_ACTIONS_ARGS;
152e39b573cSmrgextern void HandleUTF8Fonts        PROTO_XT_ACTIONS_ARGS;
153d522f475Smrgextern void HandleUTF8Mode         PROTO_XT_ACTIONS_ARGS;
154d522f475Smrgextern void HandleUTF8Title        PROTO_XT_ACTIONS_ARGS;
155d522f475Smrgextern void HandleVisibility       PROTO_XT_ACTIONS_ARGS;
156e39b573cSmrgextern void HandleWriteError       PROTO_XT_ACTIONS_ARGS;
157e39b573cSmrgextern void HandleWriteNow         PROTO_XT_ACTIONS_ARGS;
158d522f475Smrg
159d522f475Smrgextern void SetupMenus (Widget /*shell*/, Widget */*forms*/, Widget */*menus*/, Dimension * /*menu_high*/);
160d522f475Smrg
161d522f475Smrg#if OPT_TOOLBAR
162d522f475Smrgextern void ShowToolbar(Bool);
163d522f475Smrg#endif
164d522f475Smrg
165d522f475Smrg/*
166d522f475Smrg * The following definitions MUST match the order of entries given in
167d522f475Smrg * the mainMenuEntries, vtMenuEntries, and tekMenuEntries arrays in menu.c.
168d522f475Smrg */
169d522f475Smrg
170d522f475Smrg/*
171d522f475Smrg * items in primary menu
172d522f475Smrg */
173d522f475Smrgtypedef enum {
174d522f475Smrg#if OPT_TOOLBAR
175d522f475Smrg    mainMenu_toolbar,
176a1f3da82Smrg#endif
177a1f3da82Smrg#if OPT_MAXIMIZE
178a1f3da82Smrg    mainMenu_fullscreen,
179d522f475Smrg#endif
180d522f475Smrg    mainMenu_securekbd,
181d522f475Smrg    mainMenu_allowsends,
182d522f475Smrg    mainMenu_redraw,
183d522f475Smrg    mainMenu_line1,
184d522f475Smrg#ifdef ALLOWLOGGING
185d522f475Smrg    mainMenu_logging,
186e39b573cSmrg#endif
187e39b573cSmrg#if OPT_PRINT_ON_EXIT
188e39b573cSmrg    mainMenu_write_now,
189e39b573cSmrg    mainMenu_write_error,
190d522f475Smrg#endif
191d522f475Smrg    mainMenu_print,
192d522f475Smrg    mainMenu_print_redir,
1932e4f8982Smrg#if OPT_SCREEN_DUMPS
1942e4f8982Smrg    mainMenu_dump_html,
1952e4f8982Smrg    mainMenu_dump_svg,
1962e4f8982Smrg#endif
197d522f475Smrg    mainMenu_line2,
198d522f475Smrg    mainMenu_8bit_ctrl,
199d522f475Smrg    mainMenu_backarrow,
200d522f475Smrg#if OPT_NUM_LOCK
201d522f475Smrg    mainMenu_num_lock,
202d522f475Smrg    mainMenu_alt_esc,
203d522f475Smrg    mainMenu_meta_esc,
204d522f475Smrg#endif
205d522f475Smrg    mainMenu_delete_del,
206d522f475Smrg    mainMenu_old_fkeys,
207d522f475Smrg#if OPT_TCAP_FKEYS
208d522f475Smrg    mainMenu_tcap_fkeys,
209d522f475Smrg#endif
210d522f475Smrg#if OPT_HP_FUNC_KEYS
211d522f475Smrg    mainMenu_hp_fkeys,
212d522f475Smrg#endif
213d522f475Smrg#if OPT_SCO_FUNC_KEYS
214d522f475Smrg    mainMenu_sco_fkeys,
215d522f475Smrg#endif
216d522f475Smrg#if OPT_SUN_FUNC_KEYS
217d522f475Smrg    mainMenu_sun_fkeys,
218d522f475Smrg#endif
219d522f475Smrg#if OPT_SUNPC_KBD
220d522f475Smrg    mainMenu_sun_kbd,
221d522f475Smrg#endif
222d522f475Smrg    mainMenu_line3,
223d522f475Smrg    mainMenu_suspend,
224d522f475Smrg    mainMenu_continue,
225d522f475Smrg    mainMenu_interrupt,
226d522f475Smrg    mainMenu_hangup,
227d522f475Smrg    mainMenu_terminate,
228d522f475Smrg    mainMenu_kill,
229d522f475Smrg    mainMenu_line4,
230d522f475Smrg    mainMenu_quit,
231d522f475Smrg    mainMenu_LAST
232d522f475Smrg} mainMenuIndices;
233d522f475Smrg
234d522f475Smrg
235d522f475Smrg/*
236d522f475Smrg * items in vt100 mode menu
237d522f475Smrg */
238d522f475Smrgtypedef enum {
239d522f475Smrg    vtMenu_scrollbar,
240d522f475Smrg    vtMenu_jumpscroll,
241d522f475Smrg    vtMenu_reversevideo,
242d522f475Smrg    vtMenu_autowrap,
243d522f475Smrg    vtMenu_reversewrap,
244d522f475Smrg    vtMenu_autolinefeed,
245d522f475Smrg    vtMenu_appcursor,
246d522f475Smrg    vtMenu_appkeypad,
247d522f475Smrg    vtMenu_scrollkey,
248d522f475Smrg    vtMenu_scrollttyoutput,
249d522f475Smrg    vtMenu_allow132,
250d522f475Smrg    vtMenu_keepSelection,
251f2e35a3aSmrg#if OPT_MENU_KEEPCLIPBOARD
252f2e35a3aSmrg    vtMenu_keepClipboard,
253f2e35a3aSmrg#endif
254d522f475Smrg    vtMenu_selectToClipboard,
255d522f475Smrg    vtMenu_visualbell,
256d522f475Smrg    vtMenu_bellIsUrgent,
257d522f475Smrg    vtMenu_poponbell,
258d522f475Smrg#if OPT_BLINK_CURS
259d522f475Smrg    vtMenu_cursorblink,
260d522f475Smrg#endif
261d522f475Smrg    vtMenu_titeInhibit,
262d522f475Smrg#ifndef NO_ACTIVE_ICON
263d522f475Smrg    vtMenu_activeicon,
264d522f475Smrg#endif /* NO_ACTIVE_ICON */
265d522f475Smrg    vtMenu_line1,
266d522f475Smrg    vtMenu_softreset,
267d522f475Smrg    vtMenu_hardreset,
268d522f475Smrg    vtMenu_clearsavedlines,
269d522f475Smrg    vtMenu_line2,
270d522f475Smrg#if OPT_TEK4014
271d522f475Smrg    vtMenu_tekshow,
272d522f475Smrg    vtMenu_tekmode,
273d522f475Smrg    vtMenu_vthide,
274d522f475Smrg#endif
275d522f475Smrg    vtMenu_altscreen,
276e0a2b6dfSmrg#if OPT_SIXEL_GRAPHICS
277e0a2b6dfSmrg    vtMenu_sixelscrolling,
278894e0ac8Smrg#endif
279894e0ac8Smrg#if OPT_GRAPHICS
280e0a2b6dfSmrg    vtMenu_privatecolorregisters,
281e0a2b6dfSmrg#endif
282d522f475Smrg    vtMenu_LAST
283d522f475Smrg} vtMenuIndices;
284d522f475Smrg
285d522f475Smrg/*
286d522f475Smrg * items in vt100 font menu
287d522f475Smrg */
288d522f475Smrgtypedef enum {
289d522f475Smrg    fontMenu_default,
290d522f475Smrg    fontMenu_font1,
291d522f475Smrg    fontMenu_font2,
292d522f475Smrg    fontMenu_font3,
293d522f475Smrg    fontMenu_font4,
294d522f475Smrg    fontMenu_font5,
295d522f475Smrg    fontMenu_font6,
296f2e35a3aSmrg    fontMenu_font7,
297f2e35a3aSmrg#define fontMenu_lastBuiltin fontMenu_font7
298d522f475Smrg    fontMenu_fontescape,
299d522f475Smrg    fontMenu_fontsel,
300d522f475Smrg/* number of non-line items down to here should match NMENUFONTS in ptyx.h */
301d522f475Smrg
302d522f475Smrg#if OPT_DEC_CHRSET || OPT_BOX_CHARS || OPT_DEC_SOFTFONT
303d522f475Smrg    fontMenu_line1,
304e39b573cSmrg    fontMenu_allowBoldFonts,
305d522f475Smrg#if OPT_BOX_CHARS
306d522f475Smrg    fontMenu_font_boxchars,
30720d2c4d2Smrg    fontMenu_font_packedfont,
308d522f475Smrg#endif
309d522f475Smrg#if OPT_DEC_CHRSET
310d522f475Smrg    fontMenu_font_doublesize,
311d522f475Smrg#endif
312d522f475Smrg#if OPT_DEC_SOFTFONT
313d522f475Smrg    fontMenu_font_loadable,
314d522f475Smrg#endif
315d522f475Smrg#endif
316d522f475Smrg
317d522f475Smrg#if OPT_RENDERFONT || OPT_WIDE_CHARS
318d522f475Smrg    fontMenu_line2,
319d522f475Smrg#if OPT_RENDERFONT
320d522f475Smrg    fontMenu_render_font,
321d522f475Smrg#endif
322d522f475Smrg#if OPT_WIDE_CHARS
323e39b573cSmrg    fontMenu_utf8_mode,
324e39b573cSmrg    fontMenu_utf8_fonts,
325e39b573cSmrg    fontMenu_utf8_title,
326d522f475Smrg#endif
327956cc18dSsnj#endif
328956cc18dSsnj#if OPT_ALLOW_XXX_OPS
329956cc18dSsnj    fontMenu_line3,
33020d2c4d2Smrg    fontMenu_allowColorOps,
331956cc18dSsnj    fontMenu_allowFontOps,
332913cc679Smrg    fontMenu_allowMouseOps,
33320d2c4d2Smrg    fontMenu_allowTcapOps,
334956cc18dSsnj    fontMenu_allowTitleOps,
335956cc18dSsnj    fontMenu_allowWindowOps,
336d522f475Smrg#endif
337d522f475Smrg
338d522f475Smrg    fontMenu_LAST
339d522f475Smrg} fontMenuIndices;
340d522f475Smrg
341d522f475Smrg/*
342d522f475Smrg * items in tek4014 mode menu
343d522f475Smrg */
344d522f475Smrg#if OPT_TEK4014
345d522f475Smrgtypedef enum {
346d522f475Smrg    tekMenu_tektextlarge,
347d522f475Smrg    tekMenu_tektext2,
348d522f475Smrg    tekMenu_tektext3,
349d522f475Smrg    tekMenu_tektextsmall,
350d522f475Smrg    tekMenu_line1,
351d522f475Smrg    tekMenu_tekpage,
352d522f475Smrg    tekMenu_tekreset,
353d522f475Smrg    tekMenu_tekcopy,
354d522f475Smrg    tekMenu_line2,
355d522f475Smrg    tekMenu_vtshow,
356d522f475Smrg    tekMenu_vtmode,
357d522f475Smrg    tekMenu_tekhide,
358d522f475Smrg    tekMenu_LAST
359d522f475Smrg} tekMenuIndices;
360d522f475Smrg#endif
361d522f475Smrg
362d522f475Smrg
363d522f475Smrg/*
364d522f475Smrg * functions for updating menus
365d522f475Smrg */
366d522f475Smrg
367956cc18dSsnjextern void SetItemSensitivity(Widget mi, Bool val);
368d522f475Smrg
3690bd37d32Smrgtypedef enum {
3700bd37d32Smrg    toggleErr = -2,
3710bd37d32Smrg    toggleAll = -1,
3720bd37d32Smrg    toggleOff = 0,
3730bd37d32Smrg    toggleOn = 1
3740bd37d32Smrg} ToggleEnum;
3750bd37d32Smrg
3760bd37d32Smrgextern int decodeToggle(XtermWidget /* xw */, String * /* params */, Cardinal /* nparams */);
3770bd37d32Smrg
378d522f475Smrg/*
379d522f475Smrg * there should be one of each of the following for each checkable item
380d522f475Smrg */
381d522f475Smrg#if OPT_TOOLBAR
382d522f475Smrgextern void update_toolbar(void);
383d522f475Smrg#else
384d522f475Smrg#define update_toolbar() /* nothing */
385d522f475Smrg#endif
386d522f475Smrg
387a1f3da82Smrg#if OPT_MAXIMIZE
388a1f3da82Smrgextern void update_fullscreen(void);
389a1f3da82Smrg#else
390a1f3da82Smrg#define update_fullscreen() /* nothing */
391a1f3da82Smrg#endif
392a1f3da82Smrg
393d522f475Smrgextern void update_securekbd(void);
394d522f475Smrgextern void update_allowsends(void);
395d522f475Smrg
396d522f475Smrg#ifdef ALLOWLOGGING
397d522f475Smrgextern void update_logging(void);
398d522f475Smrg#else
399d522f475Smrg#define update_logging() /*nothing*/
400d522f475Smrg#endif
401d522f475Smrg
402e39b573cSmrg#if OPT_PRINT_ON_EXIT
403e39b573cSmrgextern void update_write_error(void);
404e39b573cSmrg#else
405e39b573cSmrg#define update_write_error() /*nothing*/
406e39b573cSmrg#endif
407e39b573cSmrg
408d522f475Smrgextern void update_print_redir(void);
409d522f475Smrgextern void update_8bit_control(void);
410d522f475Smrgextern void update_decbkm(void);
411d522f475Smrg
412d522f475Smrg#if OPT_NUM_LOCK
413d522f475Smrgextern void update_num_lock(void);
414d522f475Smrgextern void update_alt_esc(void);
415d522f475Smrgextern void update_meta_esc(void);
416d522f475Smrg#else
417d522f475Smrg#define update_num_lock() /*nothing*/
418d522f475Smrg#define update_alt_esc()  /*nothing*/
419d522f475Smrg#define update_meta_esc() /*nothing*/
420d522f475Smrg#endif
421d522f475Smrg
422d522f475Smrgextern void update_old_fkeys(void);
423d522f475Smrgextern void update_delete_del(void);
424d522f475Smrg
425d522f475Smrg#if OPT_SUNPC_KBD
426d522f475Smrgextern void update_sun_kbd(void);
427d522f475Smrg#endif
428d522f475Smrg
429d522f475Smrg#if OPT_HP_FUNC_KEYS
430d522f475Smrgextern void update_hp_fkeys(void);
431d522f475Smrg#else
432d522f475Smrg#define update_hp_fkeys() /*nothing*/
433d522f475Smrg#endif
434d522f475Smrg
435d522f475Smrg#if OPT_SCO_FUNC_KEYS
436d522f475Smrgextern void update_sco_fkeys(void);
437d522f475Smrg#else
438d522f475Smrg#define update_sco_fkeys() /*nothing*/
439d522f475Smrg#endif
440d522f475Smrg
441d522f475Smrg#if OPT_SUN_FUNC_KEYS
442d522f475Smrgextern void update_sun_fkeys(void);
443d522f475Smrg#else
444d522f475Smrg#define update_sun_fkeys() /*nothing*/
445d522f475Smrg#endif
446d522f475Smrg
447d522f475Smrg#if OPT_TCAP_FKEYS
448d522f475Smrgextern void update_tcap_fkeys(void);
449d522f475Smrg#else
450d522f475Smrg#define update_tcap_fkeys() /*nothing*/
451d522f475Smrg#endif
452d522f475Smrg
453d522f475Smrgextern void update_scrollbar(void);
454d522f475Smrgextern void update_jumpscroll(void);
455d522f475Smrgextern void update_reversevideo(void);
456d522f475Smrgextern void update_autowrap(void);
457d522f475Smrgextern void update_reversewrap(void);
458d522f475Smrgextern void update_autolinefeed(void);
459d522f475Smrgextern void update_appcursor(void);
460d522f475Smrgextern void update_appkeypad(void);
461d522f475Smrgextern void update_scrollkey(void);
462d522f475Smrgextern void update_keepSelection(void);
463d522f475Smrgextern void update_selectToClipboard(void);
464d522f475Smrgextern void update_scrollttyoutput(void);
465d522f475Smrgextern void update_allow132(void);
466d522f475Smrgextern void update_cursesemul(void);
467d522f475Smrgextern void update_visualbell(void);
468d522f475Smrgextern void update_bellIsUrgent(void);
469d522f475Smrgextern void update_poponbell(void);
470d522f475Smrg
471f2e35a3aSmrg#if OPT_MENU_KEEPCLIPBOARD
472f2e35a3aSmrgextern void update_keepClipboard(void);
473f2e35a3aSmrg#else
4742e4f8982Smrg#define update_keepClipboard() /* nothing */
475f2e35a3aSmrg#endif
476f2e35a3aSmrg
477d522f475Smrg#define update_marginbell() /* nothing */
478d522f475Smrg
47901037d57Smrg#if OPT_LOAD_VTFONTS
48001037d57Smrgextern void update_font_escape(void);
48101037d57Smrg#else
48201037d57Smrg#define update_font_escape() /* nothing */
48301037d57Smrg#endif
48401037d57Smrg
485956cc18dSsnj#if OPT_ALLOW_XXX_OPS
48620d2c4d2Smrgextern void update_menu_allowColorOps(void);
487956cc18dSsnjextern void update_menu_allowFontOps(void);
488913cc679Smrgextern void update_menu_allowMouseOps(void);
48920d2c4d2Smrgextern void update_menu_allowTcapOps(void);
490956cc18dSsnjextern void update_menu_allowTitleOps(void);
491956cc18dSsnjextern void update_menu_allowWindowOps(void);
492956cc18dSsnj#endif
493956cc18dSsnj
494d522f475Smrg#if OPT_BLINK_CURS
495d522f475Smrgextern void update_cursorblink(void);
496d522f475Smrg#else
497d522f475Smrg#define update_cursorblink() /* nothing */
498d522f475Smrg#endif
499d522f475Smrg
500d522f475Smrgextern void update_altscreen(void);
501d522f475Smrgextern void update_titeInhibit(void);
502d522f475Smrg
503d522f475Smrg#ifndef NO_ACTIVE_ICON
504d522f475Smrgextern void update_activeicon(void);
505d522f475Smrg#endif /* NO_ACTIVE_ICON */
506d522f475Smrg
507d522f475Smrg#if OPT_DEC_CHRSET
508d522f475Smrgextern void update_font_doublesize(void);
509d522f475Smrg#else
510d522f475Smrg#define update_font_doublesize() /* nothing */
511d522f475Smrg#endif
512d522f475Smrg
513d522f475Smrg#if OPT_BOX_CHARS
514d522f475Smrgextern void update_font_boxchars(void);
51520d2c4d2Smrgextern void update_font_packed(void);
516d522f475Smrg#else
517d522f475Smrg#define update_font_boxchars() /* nothing */
51820d2c4d2Smrg#define update_font_packed() /* nothing */
519d522f475Smrg#endif
520d522f475Smrg
521e0a2b6dfSmrg#if OPT_SIXEL_GRAPHICS
522e0a2b6dfSmrgextern void update_decsdm(void);
523e0a2b6dfSmrg#else
524e0a2b6dfSmrg#define update_decsdm() /* nothing */
525894e0ac8Smrg#endif
526894e0ac8Smrg
527894e0ac8Smrg#if OPT_GRAPHICS
528894e0ac8Smrgextern void update_privatecolorregisters(void);
529894e0ac8Smrg#else
530e0a2b6dfSmrg#define update_privatecolorregisters() /* nothing */
531e0a2b6dfSmrg#endif
532e0a2b6dfSmrg
533d522f475Smrg#if OPT_DEC_SOFTFONT
534d522f475Smrgextern void update_font_loadable(void);
535d522f475Smrg#else
536d522f475Smrg#define update_font_loadable() /* nothing */
537d522f475Smrg#endif
538d522f475Smrg
539d522f475Smrg#if OPT_RENDERFONT
540d522f475Smrgextern void update_font_renderfont(void);
541d522f475Smrg#else
542d522f475Smrg#define update_font_renderfont() /* nothing */
543d522f475Smrg#endif
544d522f475Smrg
545d522f475Smrg#if OPT_WIDE_CHARS
546d522f475Smrgextern void update_font_utf8_mode(void);
547e39b573cSmrgextern void update_font_utf8_fonts(void);
548d522f475Smrgextern void update_font_utf8_title(void);
549d522f475Smrg#else
550d522f475Smrg#define update_font_utf8_mode() /* nothing */
551e39b573cSmrg#define update_font_utf8_fonts() /* nothing */
552d522f475Smrg#define update_font_utf8_title() /* nothing */
553d522f475Smrg#endif
554d522f475Smrg
555d522f475Smrg#if OPT_TEK4014
556d522f475Smrgextern void update_tekshow(void);
557d522f475Smrgextern void update_vttekmode(void);
558d522f475Smrgextern void update_vtshow(void);
559d522f475Smrgextern void set_vthide_sensitivity(void);
560d522f475Smrgextern void set_tekhide_sensitivity(void);
561d522f475Smrg#else
562d522f475Smrg#define update_tekshow() /*nothing*/
563d522f475Smrg#define update_vttekmode() /*nothing*/
564d522f475Smrg#define update_vtshow() /*nothing*/
565d522f475Smrg#define set_vthide_sensitivity() /*nothing*/
566d522f475Smrg#define set_tekhide_sensitivity() /*nothing*/
567d522f475Smrg#endif
568d522f475Smrg
5690bd37d32Smrg#if OPT_DEC_CHRSET || OPT_BOX_CHARS || OPT_DEC_SOFTFONT
5700bd37d32Smrgextern void update_menu_allowBoldFonts(void);
5710bd37d32Smrg#else
5720bd37d32Smrg#define update_menu_allowBoldFonts() /*nothing*/
5730bd37d32Smrg#endif
5740bd37d32Smrg
575d522f475Smrg/*
576d522f475Smrg * macros for mapping font size to tekMenu placement
577d522f475Smrg */
578d522f475Smrg#define FS2MI(n) (n)			/* font_size_to_menu_item */
579d522f475Smrg#define MI2FS(n) (n)			/* menu_item_to_font_size */
580d522f475Smrg
581d522f475Smrg#if OPT_TEK4014
582d522f475Smrgextern void set_tekfont_menu_item(int n,int val);
583d522f475Smrg#else
584d522f475Smrg#define set_tekfont_menu_item(n,val) /*nothing*/
585d522f475Smrg#endif
586d522f475Smrg
587d522f475Smrgextern void set_menu_font(int val);
588d522f475Smrg
589a1f3da82Smrg/* *INDENT-ON* */
590a1f3da82Smrg
591a1f3da82Smrg#endif /* included_menu_h */
592