diff options
| author | Dmitry Antipov | 2014-06-04 08:58:31 +0400 |
|---|---|---|
| committer | Dmitry Antipov | 2014-06-04 08:58:31 +0400 |
| commit | cfd794af4214ae0e5587ab8b1f4e5fcb355a0f12 (patch) | |
| tree | c45be02b5b568e7534eb91e03ba46899dc42dff5 /src/menu.h | |
| parent | 39ec03147e88bb7a12d2e42edfa0206f6b7d546b (diff) | |
| download | emacs-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.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/>. */ | |||
| 26 | extern Lisp_Object Qunsupported__w32_dialog; | 26 | extern Lisp_Object Qunsupported__w32_dialog; |
| 27 | #endif | 27 | #endif |
| 28 | 28 | ||
| 29 | /* Bit fields used by terminal-specific menu_show_hook. */ | ||
| 30 | |||
| 31 | enum { | ||
| 32 | MENU_KEYMAPS = 0x1, | ||
| 33 | MENU_FOR_CLICK = 0x2, | ||
| 34 | MENU_KBD_NAVIGATION = 0x4 | ||
| 35 | }; | ||
| 36 | |||
| 29 | extern void x_set_menu_bar_lines (struct frame *f, | 37 | extern 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 |
| 50 | extern void mouse_position_for_popup (struct frame *f, int *x, int *y); | 58 | extern 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) | |
| 53 | extern Lisp_Object w32_menu_show (struct frame *, int, int, int, int, | 61 | extern Lisp_Object x_menu_show (struct frame *, int, int, int, |
| 62 | Lisp_Object, const char **); | ||
| 63 | #endif | ||
| 64 | #ifdef HAVE_NTGUI | ||
| 65 | extern Lisp_Object w32_menu_show (struct frame *, int, int, int, | ||
| 54 | Lisp_Object, const char **); | 66 | Lisp_Object, const char **); |
| 55 | extern Lisp_Object ns_menu_show (struct frame *, int, int, bool, bool, | 67 | #endif |
| 68 | #ifdef HAVE_NS | ||
| 69 | extern Lisp_Object ns_menu_show (struct frame *, int, int, int, | ||
| 56 | Lisp_Object, const char **); | 70 | Lisp_Object, const char **); |
| 57 | extern Lisp_Object xmenu_show (struct frame *, int, int, bool, bool, | 71 | #endif |
| 58 | Lisp_Object, const char **); | 72 | extern Lisp_Object tty_menu_show (struct frame *, int, int, int, |
| 59 | extern Lisp_Object tty_menu_show (struct frame *, int, int, bool, bool, | 73 | Lisp_Object, const char **); |
| 60 | Lisp_Object, bool, const char **); | ||
| 61 | extern ptrdiff_t menu_item_width (const unsigned char *); | 74 | extern ptrdiff_t menu_item_width (const unsigned char *); |
| 62 | #endif /* MENU_H */ | 75 | #endif /* MENU_H */ |