aboutsummaryrefslogtreecommitdiffstats
path: root/src/menu.h
diff options
context:
space:
mode:
authorDmitry Antipov2014-06-04 08:58:31 +0400
committerDmitry Antipov2014-06-04 08:58:31 +0400
commitcfd794af4214ae0e5587ab8b1f4e5fcb355a0f12 (patch)
treec45be02b5b568e7534eb91e03ba46899dc42dff5 /src/menu.h
parent39ec03147e88bb7a12d2e42edfa0206f6b7d546b (diff)
downloademacs-cfd794af4214ae0e5587ab8b1f4e5fcb355a0f12.tar.gz
emacs-cfd794af4214ae0e5587ab8b1f4e5fcb355a0f12.zip
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.h27
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/>. */
26extern Lisp_Object Qunsupported__w32_dialog; 26extern Lisp_Object Qunsupported__w32_dialog;
27#endif 27#endif
28 28
29/* Bit fields used by terminal-specific menu_show_hook. */
30
31enum {
32 MENU_KEYMAPS = 0x1,
33 MENU_FOR_CLICK = 0x2,
34 MENU_KBD_NAVIGATION = 0x4
35};
36
29extern void x_set_menu_bar_lines (struct frame *f, 37extern void x_set_menu_bar_lines (struct frame *f,
30 Lisp_Object value, 38 Lisp_Object value,
31 Lisp_Object oldval); 39 Lisp_Object oldval);
@@ -49,14 +57,19 @@ extern widget_value *digest_single_submenu (int, int, bool);
49#ifdef HAVE_X_WINDOWS 57#ifdef HAVE_X_WINDOWS
50extern void mouse_position_for_popup (struct frame *f, int *x, int *y); 58extern void mouse_position_for_popup (struct frame *f, int *x, int *y);
51#endif 59#endif
52 60#if defined (HAVE_X_WINDOWS) || defined (MSDOS)
53extern Lisp_Object w32_menu_show (struct frame *, int, int, int, int, 61extern Lisp_Object x_menu_show (struct frame *, int, int, int,
62 Lisp_Object, const char **);
63#endif
64#ifdef HAVE_NTGUI
65extern Lisp_Object w32_menu_show (struct frame *, int, int, int,
54 Lisp_Object, const char **); 66 Lisp_Object, const char **);
55extern Lisp_Object ns_menu_show (struct frame *, int, int, bool, bool, 67#endif
68#ifdef HAVE_NS
69extern Lisp_Object ns_menu_show (struct frame *, int, int, int,
56 Lisp_Object, const char **); 70 Lisp_Object, const char **);
57extern Lisp_Object xmenu_show (struct frame *, int, int, bool, bool, 71#endif
58 Lisp_Object, const char **); 72extern Lisp_Object tty_menu_show (struct frame *, int, int, int,
59extern Lisp_Object tty_menu_show (struct frame *, int, int, bool, bool, 73 Lisp_Object, const char **);
60 Lisp_Object, bool, const char **);
61extern ptrdiff_t menu_item_width (const unsigned char *); 74extern ptrdiff_t menu_item_width (const unsigned char *);
62#endif /* MENU_H */ 75#endif /* MENU_H */