root/src/menu.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


     1 /* Functions to manipulate menus.
     2    Copyright (C) 2008-2023 Free Software Foundation, Inc.
     3 
     4 This file is part of GNU Emacs.
     5 
     6 GNU Emacs is free software: you can redistribute it and/or modify
     7 it under the terms of the GNU General Public License as published by
     8 the Free Software Foundation, either version 3 of the License, or (at
     9 your option) any later version.
    10 
    11 GNU Emacs is distributed in the hope that it will be useful,
    12 but WITHOUT ANY WARRANTY; without even the implied warranty of
    13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14 GNU General Public License for more details.
    15 
    16 You should have received a copy of the GNU General Public License
    17 along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.  */
    18 
    19 #ifndef MENU_H
    20 #define MENU_H
    21 
    22 #include "../lwlib/lwlib-widget.h"
    23 
    24 /* Bit fields used by terminal-specific menu_show_hook.  */
    25 
    26 enum {
    27   MENU_KEYMAPS = 0x1,
    28   MENU_FOR_CLICK = 0x2,
    29   MENU_KBD_NAVIGATION = 0x4
    30 };
    31 
    32 extern void init_menu_items (void);
    33 extern void finish_menu_items (void);
    34 extern void discard_menu_items (void);
    35 extern void save_menu_items (void);
    36 extern bool parse_single_submenu (Lisp_Object, Lisp_Object, Lisp_Object);
    37 extern void list_of_panes (Lisp_Object);
    38 #ifdef HAVE_EXT_MENU_BAR
    39 extern void free_menubar_widget_value_tree (widget_value *);
    40 extern void update_submenu_strings (widget_value *);
    41 extern void find_and_call_menu_selection (struct frame *, int,
    42                                           Lisp_Object, void *);
    43 extern widget_value *make_widget_value (const char *, char *, bool, Lisp_Object);
    44 extern widget_value *digest_single_submenu (int, int, bool);
    45 #endif
    46 
    47 #if defined (HAVE_X_WINDOWS) || defined (MSDOS)
    48 extern Lisp_Object x_menu_show (struct frame *, int, int, int,
    49                                 Lisp_Object, const char **);
    50 extern void x_activate_menubar (struct frame *);
    51 #endif
    52 #ifdef HAVE_NTGUI
    53 extern Lisp_Object w32_menu_show (struct frame *, int, int, int,
    54                                   Lisp_Object, const char **);
    55 extern void w32_activate_menubar (struct frame *);
    56 #endif
    57 #ifdef HAVE_NS
    58 extern Lisp_Object ns_menu_show (struct frame *, int, int, int,
    59                                  Lisp_Object, const char **);
    60 extern void ns_activate_menubar (struct frame *);
    61 #endif
    62 #ifdef HAVE_PGTK
    63 extern Lisp_Object pgtk_menu_show (struct frame *, int, int, int,
    64                                  Lisp_Object, const char **);
    65 extern void pgtk_activate_menubar (struct frame *);
    66 #endif
    67 
    68 extern Lisp_Object tty_menu_show (struct frame *, int, int, int,
    69                                   Lisp_Object, const char **);
    70 extern ptrdiff_t menu_item_width (const unsigned char *);
    71 extern Lisp_Object x_popup_menu_1 (Lisp_Object position, Lisp_Object menu);
    72 #endif /* MENU_H */

/* [<][>][^][v][top][bottom][index][help] */