diff options
author | Dmitry Antipov <dmantipov@yandex.ru> | 2014-06-04 08:58:31 +0400 |
---|---|---|
committer | Dmitry Antipov <dmantipov@yandex.ru> | 2014-06-04 08:58:31 +0400 |
commit | cfd794af4214ae0e5587ab8b1f4e5fcb355a0f12 (patch) | |
tree | c45be02b5b568e7534eb91e03ba46899dc42dff5 /src/menu.h | |
parent | 39ec03147e88bb7a12d2e42edfa0206f6b7d546b (diff) | |
download | emacs-cfd794af4214ae0e5587ab8b1f4e5fcb355a0f12.tar.gz |
Use terminal-specific hooks to display menus.
* termhooks.h (struct terminal): New field menu_show_hook.
* menu.h (<anonymous enum>): Bit flags for menu hooks.
(x_menu_show, w32_menu_show, ns_menu_show, tty_menu_show):
Adjust prototypes.
* menu.c (Fx_popup_menu): Use bit flags and menu_show_hook.
* nsmenu.m (ns_menu_show):
* w32menu.c (w32_menu_show):
* xmenu.c (x_menu_show):
* term.c (tty_menu_show): Adjust to use bit flags.
(set_tty_hooks): Set menu_show_hook.
* xterm.c (x_create_terminal):
* nsterm.m (ns_create_terminal):
* msdos.c (initialize_msdos_display):
* w32term.c (w32_create_terminal): Likewise.
Diffstat (limited to 'src/menu.h')
-rw-r--r-- | src/menu.h | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/src/menu.h b/src/menu.h index 266a471bc38..e2d7601378e 100644 --- a/src/menu.h +++ b/src/menu.h @@ -26,6 +26,14 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ extern Lisp_Object Qunsupported__w32_dialog; #endif +/* Bit fields used by terminal-specific menu_show_hook. */ + +enum { + MENU_KEYMAPS = 0x1, + MENU_FOR_CLICK = 0x2, + MENU_KBD_NAVIGATION = 0x4 +}; + extern void x_set_menu_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval); @@ -49,14 +57,19 @@ extern widget_value *digest_single_submenu (int, int, bool); #ifdef HAVE_X_WINDOWS extern void mouse_position_for_popup (struct frame *f, int *x, int *y); #endif - -extern Lisp_Object w32_menu_show (struct frame *, int, int, int, int, +#if defined (HAVE_X_WINDOWS) || defined (MSDOS) +extern Lisp_Object x_menu_show (struct frame *, int, int, int, + Lisp_Object, const char **); +#endif +#ifdef HAVE_NTGUI +extern Lisp_Object w32_menu_show (struct frame *, int, int, int, Lisp_Object, const char **); -extern Lisp_Object ns_menu_show (struct frame *, int, int, bool, bool, +#endif +#ifdef HAVE_NS +extern Lisp_Object ns_menu_show (struct frame *, int, int, int, Lisp_Object, const char **); -extern Lisp_Object xmenu_show (struct frame *, int, int, bool, bool, - Lisp_Object, const char **); -extern Lisp_Object tty_menu_show (struct frame *, int, int, bool, bool, - Lisp_Object, bool, const char **); +#endif +extern Lisp_Object tty_menu_show (struct frame *, int, int, int, + Lisp_Object, const char **); extern ptrdiff_t menu_item_width (const unsigned char *); #endif /* MENU_H */ |