diff options
| author | Alexander Gramiak | 2019-03-16 11:46:39 -0600 |
|---|---|---|
| committer | Alexander Gramiak | 2019-03-16 13:15:07 -0600 |
| commit | cc06d76865a7a98b5fd4edd03a044f2baefb85a9 (patch) | |
| tree | bebc69c07239c84cbaf8693f99d25d099fcd2072 /src | |
| parent | 7d8fe1f9f66110b23972869496e2000e9c35bb6d (diff) | |
| download | emacs-cc06d76865a7a98b5fd4edd03a044f2baefb85a9.tar.gz emacs-cc06d76865a7a98b5fd4edd03a044f2baefb85a9.zip | |
Define macros to abstract support for external menu/tool-bars
* src/lisp.h (HAVE_EXT_MENU_BAR)
(HAVE_EXT_TOOL_BAR): Define.
*src/dispnew.c:
*src/frame.c:
*src/frame.h:
*src/keyboard.c:
*src/menu.c:
*src/menu.h:
*src/window.c:
*src/window.h:
*src/xdisp.c:
*src/xfns: Use the new macros.
Diffstat (limited to 'src')
| -rw-r--r-- | src/dispnew.c | 10 | ||||
| -rw-r--r-- | src/frame.c | 6 | ||||
| -rw-r--r-- | src/frame.h | 22 | ||||
| -rw-r--r-- | src/keyboard.c | 13 | ||||
| -rw-r--r-- | src/lisp.h | 11 | ||||
| -rw-r--r-- | src/menu.c | 5 | ||||
| -rw-r--r-- | src/menu.h | 3 | ||||
| -rw-r--r-- | src/window.c | 4 | ||||
| -rw-r--r-- | src/window.h | 2 | ||||
| -rw-r--r-- | src/xdisp.c | 43 | ||||
| -rw-r--r-- | src/xfns.c | 4 |
11 files changed, 62 insertions, 61 deletions
diff --git a/src/dispnew.c b/src/dispnew.c index 7596528fed9..ccb08ec1b95 100644 --- a/src/dispnew.c +++ b/src/dispnew.c | |||
| @@ -767,7 +767,7 @@ clear_current_matrices (register struct frame *f) | |||
| 767 | clear_glyph_matrix (XWINDOW (f->menu_bar_window)->current_matrix); | 767 | clear_glyph_matrix (XWINDOW (f->menu_bar_window)->current_matrix); |
| 768 | #endif | 768 | #endif |
| 769 | 769 | ||
| 770 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 770 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 771 | /* Clear the matrix of the tool-bar window, if any. */ | 771 | /* Clear the matrix of the tool-bar window, if any. */ |
| 772 | if (WINDOWP (f->tool_bar_window)) | 772 | if (WINDOWP (f->tool_bar_window)) |
| 773 | clear_glyph_matrix (XWINDOW (f->tool_bar_window)->current_matrix); | 773 | clear_glyph_matrix (XWINDOW (f->tool_bar_window)->current_matrix); |
| @@ -792,7 +792,7 @@ clear_desired_matrices (register struct frame *f) | |||
| 792 | clear_glyph_matrix (XWINDOW (f->menu_bar_window)->desired_matrix); | 792 | clear_glyph_matrix (XWINDOW (f->menu_bar_window)->desired_matrix); |
| 793 | #endif | 793 | #endif |
| 794 | 794 | ||
| 795 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 795 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 796 | if (WINDOWP (f->tool_bar_window)) | 796 | if (WINDOWP (f->tool_bar_window)) |
| 797 | clear_glyph_matrix (XWINDOW (f->tool_bar_window)->desired_matrix); | 797 | clear_glyph_matrix (XWINDOW (f->tool_bar_window)->desired_matrix); |
| 798 | #endif | 798 | #endif |
| @@ -2106,7 +2106,7 @@ adjust_frame_glyphs_for_window_redisplay (struct frame *f) | |||
| 2106 | } | 2106 | } |
| 2107 | #endif | 2107 | #endif |
| 2108 | 2108 | ||
| 2109 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 2109 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 2110 | { | 2110 | { |
| 2111 | /* Allocate/ reallocate matrices of the tool bar window. If we | 2111 | /* Allocate/ reallocate matrices of the tool bar window. If we |
| 2112 | don't have a tool bar window yet, make one. */ | 2112 | don't have a tool bar window yet, make one. */ |
| @@ -2188,7 +2188,7 @@ free_glyphs (struct frame *f) | |||
| 2188 | } | 2188 | } |
| 2189 | #endif | 2189 | #endif |
| 2190 | 2190 | ||
| 2191 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 2191 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 2192 | /* Free the tool bar window and its glyph matrices. */ | 2192 | /* Free the tool bar window and its glyph matrices. */ |
| 2193 | if (!NILP (f->tool_bar_window)) | 2193 | if (!NILP (f->tool_bar_window)) |
| 2194 | { | 2194 | { |
| @@ -3082,7 +3082,7 @@ update_frame (struct frame *f, bool force_p, bool inhibit_hairy_id_p) | |||
| 3082 | update_window (XWINDOW (f->menu_bar_window), true); | 3082 | update_window (XWINDOW (f->menu_bar_window), true); |
| 3083 | #endif | 3083 | #endif |
| 3084 | 3084 | ||
| 3085 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 3085 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 3086 | /* Update the tool-bar window, if present. */ | 3086 | /* Update the tool-bar window, if present. */ |
| 3087 | if (WINDOWP (f->tool_bar_window)) | 3087 | if (WINDOWP (f->tool_bar_window)) |
| 3088 | { | 3088 | { |
diff --git a/src/frame.c b/src/frame.c index 46bdf222315..d0c77149ba8 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -70,7 +70,7 @@ static struct frame *last_nonminibuf_frame; | |||
| 70 | bool frame_garbaged; | 70 | bool frame_garbaged; |
| 71 | 71 | ||
| 72 | /* The default tool bar height for future frames. */ | 72 | /* The default tool bar height for future frames. */ |
| 73 | #if defined USE_GTK || defined HAVE_NS | 73 | #ifdef HAVE_EXT_TOOL_BAR |
| 74 | enum { frame_default_tool_bar_height = 0 }; | 74 | enum { frame_default_tool_bar_height = 0 }; |
| 75 | #else | 75 | #else |
| 76 | int frame_default_tool_bar_height; | 76 | int frame_default_tool_bar_height; |
| @@ -712,7 +712,7 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, | |||
| 712 | if ((FRAME_TERMCAP_P (f) && !pretend) || FRAME_MSDOS_P (f)) | 712 | if ((FRAME_TERMCAP_P (f) && !pretend) || FRAME_MSDOS_P (f)) |
| 713 | FrameCols (FRAME_TTY (f)) = new_cols; | 713 | FrameCols (FRAME_TTY (f)) = new_cols; |
| 714 | 714 | ||
| 715 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 715 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 716 | if (WINDOWP (f->tool_bar_window)) | 716 | if (WINDOWP (f->tool_bar_window)) |
| 717 | { | 717 | { |
| 718 | XWINDOW (f->tool_bar_window)->pixel_width = new_windows_width; | 718 | XWINDOW (f->tool_bar_window)->pixel_width = new_windows_width; |
| @@ -848,7 +848,7 @@ make_frame (bool mini_p) | |||
| 848 | f->no_accept_focus = false; | 848 | f->no_accept_focus = false; |
| 849 | f->z_group = z_group_none; | 849 | f->z_group = z_group_none; |
| 850 | f->tooltip = false; | 850 | f->tooltip = false; |
| 851 | #if ! defined (USE_GTK) && ! defined (HAVE_NS) | 851 | #ifndef HAVE_EXT_TOOL_BAR |
| 852 | f->last_tool_bar_item = -1; | 852 | f->last_tool_bar_item = -1; |
| 853 | #endif | 853 | #endif |
| 854 | #ifdef NS_IMPL_COCOA | 854 | #ifdef NS_IMPL_COCOA |
diff --git a/src/frame.h b/src/frame.h index 5bac24b077e..ed62e7ace0f 100644 --- a/src/frame.h +++ b/src/frame.h | |||
| @@ -181,7 +181,7 @@ struct frame | |||
| 181 | Lisp_Object menu_bar_window; | 181 | Lisp_Object menu_bar_window; |
| 182 | #endif | 182 | #endif |
| 183 | 183 | ||
| 184 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 184 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 185 | /* A window used to display the tool-bar of a frame. */ | 185 | /* A window used to display the tool-bar of a frame. */ |
| 186 | Lisp_Object tool_bar_window; | 186 | Lisp_Object tool_bar_window; |
| 187 | 187 | ||
| @@ -209,7 +209,7 @@ struct frame | |||
| 209 | /* Cache of realized faces. */ | 209 | /* Cache of realized faces. */ |
| 210 | struct face_cache *face_cache; | 210 | struct face_cache *face_cache; |
| 211 | 211 | ||
| 212 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 212 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 213 | /* Tool-bar item index of the item on which a mouse button was pressed. */ | 213 | /* Tool-bar item index of the item on which a mouse button was pressed. */ |
| 214 | int last_tool_bar_item; | 214 | int last_tool_bar_item; |
| 215 | #endif | 215 | #endif |
| @@ -257,13 +257,13 @@ struct frame | |||
| 257 | /* Set to true when current redisplay has updated frame. */ | 257 | /* Set to true when current redisplay has updated frame. */ |
| 258 | bool_bf updated_p : 1; | 258 | bool_bf updated_p : 1; |
| 259 | 259 | ||
| 260 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 260 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 261 | /* Set to true to minimize tool-bar height even when | 261 | /* Set to true to minimize tool-bar height even when |
| 262 | auto-resize-tool-bar is set to grow-only. */ | 262 | auto-resize-tool-bar is set to grow-only. */ |
| 263 | bool_bf minimize_tool_bar_window_p : 1; | 263 | bool_bf minimize_tool_bar_window_p : 1; |
| 264 | #endif | 264 | #endif |
| 265 | 265 | ||
| 266 | #if defined (USE_GTK) || defined (HAVE_NS) | 266 | #ifdef HAVE_EXT_TOOL_BAR |
| 267 | /* True means using a tool bar that comes from the toolkit. */ | 267 | /* True means using a tool bar that comes from the toolkit. */ |
| 268 | bool_bf external_tool_bar : 1; | 268 | bool_bf external_tool_bar : 1; |
| 269 | #endif | 269 | #endif |
| @@ -278,9 +278,8 @@ struct frame | |||
| 278 | /* True if it needs to be redisplayed. */ | 278 | /* True if it needs to be redisplayed. */ |
| 279 | bool_bf redisplay : 1; | 279 | bool_bf redisplay : 1; |
| 280 | 280 | ||
| 281 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 281 | #ifdef HAVE_EXT_MENU_BAR |
| 282 | || defined (HAVE_NS) || defined (USE_GTK) | 282 | /* True means using a menu bar that comes from the toolkit. */ |
| 283 | /* True means using a menu bar that comes from the X toolkit. */ | ||
| 284 | bool_bf external_menu_bar : 1; | 283 | bool_bf external_menu_bar : 1; |
| 285 | #endif | 284 | #endif |
| 286 | 285 | ||
| @@ -714,7 +713,7 @@ fset_tool_bar_position (struct frame *f, Lisp_Object val) | |||
| 714 | f->tool_bar_position = val; | 713 | f->tool_bar_position = val; |
| 715 | } | 714 | } |
| 716 | #endif /* USE_GTK */ | 715 | #endif /* USE_GTK */ |
| 717 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 716 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 718 | INLINE void | 717 | INLINE void |
| 719 | fset_tool_bar_window (struct frame *f, Lisp_Object val) | 718 | fset_tool_bar_window (struct frame *f, Lisp_Object val) |
| 720 | { | 719 | { |
| @@ -882,7 +881,7 @@ default_pixels_per_inch_y (void) | |||
| 882 | 881 | ||
| 883 | /* True if this frame should display a tool bar | 882 | /* True if this frame should display a tool bar |
| 884 | in a way that does not use any text lines. */ | 883 | in a way that does not use any text lines. */ |
| 885 | #if defined (USE_GTK) || defined (HAVE_NS) | 884 | #ifdef HAVE_EXT_TOOL_BAR |
| 886 | #define FRAME_EXTERNAL_TOOL_BAR(f) (f)->external_tool_bar | 885 | #define FRAME_EXTERNAL_TOOL_BAR(f) (f)->external_tool_bar |
| 887 | #else | 886 | #else |
| 888 | #define FRAME_EXTERNAL_TOOL_BAR(f) false | 887 | #define FRAME_EXTERNAL_TOOL_BAR(f) false |
| @@ -911,8 +910,7 @@ default_pixels_per_inch_y (void) | |||
| 911 | 910 | ||
| 912 | /* True if this frame should display a menu bar | 911 | /* True if this frame should display a menu bar |
| 913 | in a way that does not use any text lines. */ | 912 | in a way that does not use any text lines. */ |
| 914 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 913 | #ifdef HAVE_EXT_MENU_BAR |
| 915 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 916 | #define FRAME_EXTERNAL_MENU_BAR(f) (f)->external_menu_bar | 914 | #define FRAME_EXTERNAL_MENU_BAR(f) (f)->external_menu_bar |
| 917 | #else | 915 | #else |
| 918 | #define FRAME_EXTERNAL_MENU_BAR(f) false | 916 | #define FRAME_EXTERNAL_MENU_BAR(f) false |
| @@ -1258,7 +1256,7 @@ SET_FRAME_VISIBLE (struct frame *f, int v) | |||
| 1258 | extern Lisp_Object selected_frame; | 1256 | extern Lisp_Object selected_frame; |
| 1259 | extern Lisp_Object old_selected_frame; | 1257 | extern Lisp_Object old_selected_frame; |
| 1260 | 1258 | ||
| 1261 | #if ! (defined USE_GTK || defined HAVE_NS) | 1259 | #ifndef HAVE_EXT_TOOL_BAR |
| 1262 | extern int frame_default_tool_bar_height; | 1260 | extern int frame_default_tool_bar_height; |
| 1263 | #endif | 1261 | #endif |
| 1264 | 1262 | ||
diff --git a/src/keyboard.c b/src/keyboard.c index 760cd623f63..22e4377ee86 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -3869,8 +3869,7 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3869 | } | 3869 | } |
| 3870 | break; | 3870 | break; |
| 3871 | 3871 | ||
| 3872 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 3872 | #ifdef HAVE_EXT_MENU_BAR |
| 3873 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 3874 | case MENU_BAR_ACTIVATE_EVENT: | 3873 | case MENU_BAR_ACTIVATE_EVENT: |
| 3875 | { | 3874 | { |
| 3876 | kbd_fetch_ptr = next_kbd_event (event); | 3875 | kbd_fetch_ptr = next_kbd_event (event); |
| @@ -3950,8 +3949,7 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3950 | { | 3949 | { |
| 3951 | obj = make_lispy_event (&event->ie); | 3950 | obj = make_lispy_event (&event->ie); |
| 3952 | 3951 | ||
| 3953 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 3952 | #ifdef HAVE_EXT_MENU_BAR |
| 3954 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 3955 | /* If this was a menu selection, then set the flag to inhibit | 3953 | /* If this was a menu selection, then set the flag to inhibit |
| 3956 | writing to last_nonmenu_event. Don't do this if the event | 3954 | writing to last_nonmenu_event. Don't do this if the event |
| 3957 | we're returning is (menu-bar), though; that indicates the | 3955 | we're returning is (menu-bar), though; that indicates the |
| @@ -5232,7 +5230,7 @@ make_lispy_position (struct frame *f, Lisp_Object x, Lisp_Object y, | |||
| 5232 | static bool | 5230 | static bool |
| 5233 | toolkit_menubar_in_use (struct frame *f) | 5231 | toolkit_menubar_in_use (struct frame *f) |
| 5234 | { | 5232 | { |
| 5235 | #if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS) || defined (HAVE_NTGUI) | 5233 | #ifdef HAVE_EXT_MENU_BAR |
| 5236 | return !(!FRAME_WINDOW_P (f)); | 5234 | return !(!FRAME_WINDOW_P (f)); |
| 5237 | #else | 5235 | #else |
| 5238 | return false; | 5236 | return false; |
| @@ -5925,8 +5923,7 @@ make_lispy_event (struct input_event *event) | |||
| 5925 | return list3 (head, position, files); | 5923 | return list3 (head, position, files); |
| 5926 | } | 5924 | } |
| 5927 | 5925 | ||
| 5928 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 5926 | #ifdef HAVE_EXT_MENU_BAR |
| 5929 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 5930 | case MENU_BAR_EVENT: | 5927 | case MENU_BAR_EVENT: |
| 5931 | if (EQ (event->arg, event->frame_or_window)) | 5928 | if (EQ (event->arg, event->frame_or_window)) |
| 5932 | /* This is the prefix key. We translate this to | 5929 | /* This is the prefix key. We translate this to |
| @@ -8136,7 +8133,7 @@ parse_tool_bar_item (Lisp_Object key, Lisp_Object item) | |||
| 8136 | if (menu_separator_name_p (SSDATA (caption))) | 8133 | if (menu_separator_name_p (SSDATA (caption))) |
| 8137 | { | 8134 | { |
| 8138 | set_prop (TOOL_BAR_ITEM_TYPE, Qt); | 8135 | set_prop (TOOL_BAR_ITEM_TYPE, Qt); |
| 8139 | #if !defined (USE_GTK) && !defined (HAVE_NS) | 8136 | #ifndef HAVE_EXT_TOOL_BAR |
| 8140 | /* If we use build_desired_tool_bar_string to render the | 8137 | /* If we use build_desired_tool_bar_string to render the |
| 8141 | tool bar, the separator is rendered as an image. */ | 8138 | tool bar, the separator is rendered as an image. */ |
| 8142 | set_prop (TOOL_BAR_ITEM_IMAGES, | 8139 | set_prop (TOOL_BAR_ITEM_IMAGES, |
diff --git a/src/lisp.h b/src/lisp.h index 4391e173741..cb142b9d8ad 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -3327,6 +3327,17 @@ extern int staticidx; | |||
| 3327 | struct window; | 3327 | struct window; |
| 3328 | struct frame; | 3328 | struct frame; |
| 3329 | 3329 | ||
| 3330 | /* Define if the windowing system provides a menu bar. */ | ||
| 3331 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | ||
| 3332 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 3333 | #define HAVE_EXT_MENU_BAR true | ||
| 3334 | #endif | ||
| 3335 | |||
| 3336 | /* Define if the windowing system provides a tool-bar. */ | ||
| 3337 | #if defined (USE_GTK) || defined (HAVE_NS) | ||
| 3338 | #define HAVE_EXT_TOOL_BAR true | ||
| 3339 | #endif | ||
| 3340 | |||
| 3330 | /* Copy COUNT Lisp_Objects from ARGS to contents of V starting from OFFSET. */ | 3341 | /* Copy COUNT Lisp_Objects from ARGS to contents of V starting from OFFSET. */ |
| 3331 | 3342 | ||
| 3332 | INLINE void | 3343 | INLINE void |
diff --git a/src/menu.c b/src/menu.c index 7d255fddac4..7f46e68e73e 100644 --- a/src/menu.c +++ b/src/menu.c | |||
| @@ -170,8 +170,7 @@ ensure_menu_items (int items) | |||
| 170 | } | 170 | } |
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | #if (defined USE_X_TOOLKIT || defined USE_GTK || defined HAVE_NS \ | 173 | #ifdef HAVE_EXT_MENU_BAR |
| 174 | || defined HAVE_NTGUI) | ||
| 175 | 174 | ||
| 176 | /* Begin a submenu. */ | 175 | /* Begin a submenu. */ |
| 177 | 176 | ||
| @@ -195,7 +194,7 @@ push_submenu_end (void) | |||
| 195 | menu_items_submenu_depth--; | 194 | menu_items_submenu_depth--; |
| 196 | } | 195 | } |
| 197 | 196 | ||
| 198 | #endif /* USE_X_TOOLKIT || USE_GTK || HAVE_NS || defined HAVE_NTGUI */ | 197 | #endif /* HAVE_EXT_MENU_BAR */ |
| 199 | 198 | ||
| 200 | /* Indicate boundary between left and right. */ | 199 | /* Indicate boundary between left and right. */ |
| 201 | 200 | ||
diff --git a/src/menu.h b/src/menu.h index d425cdf0109..0321c27454b 100644 --- a/src/menu.h +++ b/src/menu.h | |||
| @@ -35,8 +35,7 @@ extern void discard_menu_items (void); | |||
| 35 | extern void save_menu_items (void); | 35 | extern void save_menu_items (void); |
| 36 | extern bool parse_single_submenu (Lisp_Object, Lisp_Object, Lisp_Object); | 36 | extern bool parse_single_submenu (Lisp_Object, Lisp_Object, Lisp_Object); |
| 37 | extern void list_of_panes (Lisp_Object); | 37 | extern void list_of_panes (Lisp_Object); |
| 38 | #if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NTGUI) \ | 38 | #ifdef HAVE_EXT_MENU_BAR |
| 39 | || defined (HAVE_NS) | ||
| 40 | extern void free_menubar_widget_value_tree (widget_value *); | 39 | extern void free_menubar_widget_value_tree (widget_value *); |
| 41 | extern void update_submenu_strings (widget_value *); | 40 | extern void update_submenu_strings (widget_value *); |
| 42 | extern void find_and_call_menu_selection (struct frame *, int, | 41 | extern void find_and_call_menu_selection (struct frame *, int, |
diff --git a/src/window.c b/src/window.c index ae039b76add..85d7bcade94 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -1599,7 +1599,7 @@ window_from_coordinates (struct frame *f, int x, int y, | |||
| 1599 | cw.window = &window, cw.x = x, cw.y = y; cw.part = part; | 1599 | cw.window = &window, cw.x = x, cw.y = y; cw.part = part; |
| 1600 | foreach_window (f, check_window_containing, &cw); | 1600 | foreach_window (f, check_window_containing, &cw); |
| 1601 | 1601 | ||
| 1602 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 1602 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 1603 | /* If not found above, see if it's in the tool bar window, if a tool | 1603 | /* If not found above, see if it's in the tool bar window, if a tool |
| 1604 | bar exists. */ | 1604 | bar exists. */ |
| 1605 | if (NILP (window) | 1605 | if (NILP (window) |
| @@ -6398,7 +6398,7 @@ and redisplay normally--don't erase and redraw the frame. */) | |||
| 6398 | /* Invalidate pixel data calculated for all compositions. */ | 6398 | /* Invalidate pixel data calculated for all compositions. */ |
| 6399 | for (i = 0; i < n_compositions; i++) | 6399 | for (i = 0; i < n_compositions; i++) |
| 6400 | composition_table[i]->font = NULL; | 6400 | composition_table[i]->font = NULL; |
| 6401 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 6401 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 6402 | WINDOW_XFRAME (w)->minimize_tool_bar_window_p = 1; | 6402 | WINDOW_XFRAME (w)->minimize_tool_bar_window_p = 1; |
| 6403 | #endif | 6403 | #endif |
| 6404 | Fredraw_frame (WINDOW_FRAME (w)); | 6404 | Fredraw_frame (WINDOW_FRAME (w)); |
diff --git a/src/window.h b/src/window.h index b450173eb2f..4235a6eade2 100644 --- a/src/window.h +++ b/src/window.h | |||
| @@ -739,7 +739,7 @@ wset_next_buffers (struct window *w, Lisp_Object val) | |||
| 739 | #endif | 739 | #endif |
| 740 | 740 | ||
| 741 | /* True if W is a tool bar window. */ | 741 | /* True if W is a tool bar window. */ |
| 742 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 742 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 743 | #define WINDOW_TOOL_BAR_P(W) \ | 743 | #define WINDOW_TOOL_BAR_P(W) \ |
| 744 | (WINDOWP (WINDOW_XFRAME (W)->tool_bar_window) \ | 744 | (WINDOWP (WINDOW_XFRAME (W)->tool_bar_window) \ |
| 745 | && (W) == XWINDOW (WINDOW_XFRAME (W)->tool_bar_window)) | 745 | && (W) == XWINDOW (WINDOW_XFRAME (W)->tool_bar_window)) |
diff --git a/src/xdisp.c b/src/xdisp.c index 5ae8fc1cf6b..3172b3be890 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -12237,8 +12237,7 @@ update_menu_bar (struct frame *f, bool save_match_data, bool hooks_run) | |||
| 12237 | 12237 | ||
| 12238 | if (FRAME_WINDOW_P (f) | 12238 | if (FRAME_WINDOW_P (f) |
| 12239 | ? | 12239 | ? |
| 12240 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 12240 | #ifdef HAVE_EXT_MENU_BAR |
| 12241 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 12242 | FRAME_EXTERNAL_MENU_BAR (f) | 12241 | FRAME_EXTERNAL_MENU_BAR (f) |
| 12243 | #else | 12242 | #else |
| 12244 | FRAME_MENU_BAR_LINES (f) > 0 | 12243 | FRAME_MENU_BAR_LINES (f) > 0 |
| @@ -12291,8 +12290,7 @@ update_menu_bar (struct frame *f, bool save_match_data, bool hooks_run) | |||
| 12291 | fset_menu_bar_items (f, menu_bar_items (FRAME_MENU_BAR_ITEMS (f))); | 12290 | fset_menu_bar_items (f, menu_bar_items (FRAME_MENU_BAR_ITEMS (f))); |
| 12292 | 12291 | ||
| 12293 | /* Redisplay the menu bar in case we changed it. */ | 12292 | /* Redisplay the menu bar in case we changed it. */ |
| 12294 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 12293 | #ifdef HAVE_EXT_MENU_BAR |
| 12295 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 12296 | if (FRAME_WINDOW_P (f)) | 12294 | if (FRAME_WINDOW_P (f)) |
| 12297 | { | 12295 | { |
| 12298 | #if defined (HAVE_NS) | 12296 | #if defined (HAVE_NS) |
| @@ -12306,11 +12304,11 @@ update_menu_bar (struct frame *f, bool save_match_data, bool hooks_run) | |||
| 12306 | /* On a terminal screen, the menu bar is an ordinary screen | 12304 | /* On a terminal screen, the menu bar is an ordinary screen |
| 12307 | line, and this makes it get updated. */ | 12305 | line, and this makes it get updated. */ |
| 12308 | w->update_mode_line = true; | 12306 | w->update_mode_line = true; |
| 12309 | #else /* ! (USE_X_TOOLKIT || HAVE_NTGUI || HAVE_NS || USE_GTK) */ | 12307 | #else /* ! (HAVE_EXT_MENU_BAR) */ |
| 12310 | /* In the non-toolkit version, the menu bar is an ordinary screen | 12308 | /* In the non-toolkit version, the menu bar is an ordinary screen |
| 12311 | line, and this makes it get updated. */ | 12309 | line, and this makes it get updated. */ |
| 12312 | w->update_mode_line = true; | 12310 | w->update_mode_line = true; |
| 12313 | #endif /* ! (USE_X_TOOLKIT || HAVE_NTGUI || HAVE_NS || USE_GTK) */ | 12311 | #endif /* HAVE_EXT_MENU_BAR */ |
| 12314 | 12312 | ||
| 12315 | unbind_to (count, Qnil); | 12313 | unbind_to (count, Qnil); |
| 12316 | set_buffer_internal_1 (prev); | 12314 | set_buffer_internal_1 (prev); |
| @@ -12348,7 +12346,7 @@ fast_set_selected_frame (Lisp_Object frame) | |||
| 12348 | static void | 12346 | static void |
| 12349 | update_tool_bar (struct frame *f, bool save_match_data) | 12347 | update_tool_bar (struct frame *f, bool save_match_data) |
| 12350 | { | 12348 | { |
| 12351 | #if defined (USE_GTK) || defined (HAVE_NS) | 12349 | #ifdef HAVE_EXT_TOOL_BAR |
| 12352 | bool do_update = FRAME_EXTERNAL_TOOL_BAR (f); | 12350 | bool do_update = FRAME_EXTERNAL_TOOL_BAR (f); |
| 12353 | #else | 12351 | #else |
| 12354 | bool do_update = (WINDOWP (f->tool_bar_window) | 12352 | bool do_update = (WINDOWP (f->tool_bar_window) |
| @@ -12433,7 +12431,7 @@ update_tool_bar (struct frame *f, bool save_match_data) | |||
| 12433 | } | 12431 | } |
| 12434 | } | 12432 | } |
| 12435 | 12433 | ||
| 12436 | #if ! defined (USE_GTK) && ! defined (HAVE_NS) | 12434 | #ifndef HAVE_EXT_TOOL_BAR |
| 12437 | 12435 | ||
| 12438 | /* Set F->desired_tool_bar_string to a Lisp string representing frame | 12436 | /* Set F->desired_tool_bar_string to a Lisp string representing frame |
| 12439 | F's desired tool-bar contents. F->tool_bar_items must have | 12437 | F's desired tool-bar contents. F->tool_bar_items must have |
| @@ -12768,7 +12766,7 @@ tool_bar_height (struct frame *f, int *n_rows, bool pixelwise) | |||
| 12768 | return (it.current_y + FRAME_LINE_HEIGHT (f) - 1) / FRAME_LINE_HEIGHT (f); | 12766 | return (it.current_y + FRAME_LINE_HEIGHT (f) - 1) / FRAME_LINE_HEIGHT (f); |
| 12769 | } | 12767 | } |
| 12770 | 12768 | ||
| 12771 | #endif /* !USE_GTK && !HAVE_NS */ | 12769 | #endif /* ! (HAVE_EXT_TOOL_BAR) */ |
| 12772 | 12770 | ||
| 12773 | DEFUN ("tool-bar-height", Ftool_bar_height, Stool_bar_height, | 12771 | DEFUN ("tool-bar-height", Ftool_bar_height, Stool_bar_height, |
| 12774 | 0, 2, 0, | 12772 | 0, 2, 0, |
| @@ -12779,7 +12777,7 @@ PIXELWISE non-nil means return the height of the tool bar in pixels. */) | |||
| 12779 | { | 12777 | { |
| 12780 | int height = 0; | 12778 | int height = 0; |
| 12781 | 12779 | ||
| 12782 | #if ! defined (USE_GTK) && ! defined (HAVE_NS) | 12780 | #ifndef HAVE_EXT_TOOL_BAR |
| 12783 | struct frame *f = decode_any_frame (frame); | 12781 | struct frame *f = decode_any_frame (frame); |
| 12784 | 12782 | ||
| 12785 | if (WINDOWP (f->tool_bar_window) | 12783 | if (WINDOWP (f->tool_bar_window) |
| @@ -12804,13 +12802,13 @@ static bool | |||
| 12804 | redisplay_tool_bar (struct frame *f) | 12802 | redisplay_tool_bar (struct frame *f) |
| 12805 | { | 12803 | { |
| 12806 | f->tool_bar_redisplayed = true; | 12804 | f->tool_bar_redisplayed = true; |
| 12807 | #if defined (USE_GTK) || defined (HAVE_NS) | 12805 | #ifdef HAVE_EXT_TOOL_BAR |
| 12808 | 12806 | ||
| 12809 | if (FRAME_EXTERNAL_TOOL_BAR (f)) | 12807 | if (FRAME_EXTERNAL_TOOL_BAR (f)) |
| 12810 | update_frame_tool_bar (f); | 12808 | update_frame_tool_bar (f); |
| 12811 | return false; | 12809 | return false; |
| 12812 | 12810 | ||
| 12813 | #else /* !USE_GTK && !HAVE_NS */ | 12811 | #else /* ! (HAVE_EXT_TOOL_BAR) */ |
| 12814 | 12812 | ||
| 12815 | struct window *w; | 12813 | struct window *w; |
| 12816 | struct it it; | 12814 | struct it it; |
| @@ -12959,10 +12957,10 @@ redisplay_tool_bar (struct frame *f) | |||
| 12959 | f->minimize_tool_bar_window_p = false; | 12957 | f->minimize_tool_bar_window_p = false; |
| 12960 | return false; | 12958 | return false; |
| 12961 | 12959 | ||
| 12962 | #endif /* USE_GTK || HAVE_NS */ | 12960 | #endif /* HAVE_EXT_TOOL_BAR */ |
| 12963 | } | 12961 | } |
| 12964 | 12962 | ||
| 12965 | #if ! defined (USE_GTK) && ! defined (HAVE_NS) | 12963 | #ifndef HAVE_EXT_TOOL_BAR |
| 12966 | 12964 | ||
| 12967 | /* Get information about the tool-bar item which is displayed in GLYPH | 12965 | /* Get information about the tool-bar item which is displayed in GLYPH |
| 12968 | on frame F. Return in *PROP_IDX the index where tool-bar item | 12966 | on frame F. Return in *PROP_IDX the index where tool-bar item |
| @@ -13200,7 +13198,7 @@ note_tool_bar_highlight (struct frame *f, int x, int y) | |||
| 13200 | help_echo_string = AREF (f->tool_bar_items, prop_idx + TOOL_BAR_ITEM_CAPTION); | 13198 | help_echo_string = AREF (f->tool_bar_items, prop_idx + TOOL_BAR_ITEM_CAPTION); |
| 13201 | } | 13199 | } |
| 13202 | 13200 | ||
| 13203 | #endif /* !USE_GTK && !HAVE_NS */ | 13201 | #endif /* ! (HAVE_EXT_TOOL_BAR) */ |
| 13204 | 13202 | ||
| 13205 | #endif /* HAVE_WINDOW_SYSTEM */ | 13203 | #endif /* HAVE_WINDOW_SYSTEM */ |
| 13206 | 13204 | ||
| @@ -17658,8 +17656,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) | |||
| 17658 | 17656 | ||
| 17659 | if (FRAME_WINDOW_P (f)) | 17657 | if (FRAME_WINDOW_P (f)) |
| 17660 | { | 17658 | { |
| 17661 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 17659 | #ifdef HAVE_EXT_MENU_BAR |
| 17662 | || defined (HAVE_NS) || defined (USE_GTK) | ||
| 17663 | redisplay_menu_p = FRAME_EXTERNAL_MENU_BAR (f); | 17660 | redisplay_menu_p = FRAME_EXTERNAL_MENU_BAR (f); |
| 17664 | #else | 17661 | #else |
| 17665 | redisplay_menu_p = FRAME_MENU_BAR_LINES (f) > 0; | 17662 | redisplay_menu_p = FRAME_MENU_BAR_LINES (f) > 0; |
| @@ -17674,7 +17671,7 @@ redisplay_window (Lisp_Object window, bool just_this_one_p) | |||
| 17674 | #ifdef HAVE_WINDOW_SYSTEM | 17671 | #ifdef HAVE_WINDOW_SYSTEM |
| 17675 | if (FRAME_WINDOW_P (f)) | 17672 | if (FRAME_WINDOW_P (f)) |
| 17676 | { | 17673 | { |
| 17677 | #if defined (USE_GTK) || defined (HAVE_NS) | 17674 | #ifdef HAVE_EXT_TOOL_BAR |
| 17678 | if (FRAME_EXTERNAL_TOOL_BAR (f)) | 17675 | if (FRAME_EXTERNAL_TOOL_BAR (f)) |
| 17679 | redisplay_tool_bar (f); | 17676 | redisplay_tool_bar (f); |
| 17680 | #else | 17677 | #else |
| @@ -19709,7 +19706,7 @@ If there's no tool-bar, or if the tool-bar is not drawn by Emacs, | |||
| 19709 | do nothing. */) | 19706 | do nothing. */) |
| 19710 | (Lisp_Object row, Lisp_Object glyphs) | 19707 | (Lisp_Object row, Lisp_Object glyphs) |
| 19711 | { | 19708 | { |
| 19712 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 19709 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 19713 | struct frame *sf = SELECTED_FRAME (); | 19710 | struct frame *sf = SELECTED_FRAME (); |
| 19714 | struct glyph_matrix *m = XWINDOW (sf->tool_bar_window)->current_matrix; | 19711 | struct glyph_matrix *m = XWINDOW (sf->tool_bar_window)->current_matrix; |
| 19715 | EMACS_INT vpos; | 19712 | EMACS_INT vpos; |
| @@ -20335,7 +20332,7 @@ extend_face_to_end_of_line (struct it *it) | |||
| 20335 | /* Mode line and the header line don't have margins, and | 20332 | /* Mode line and the header line don't have margins, and |
| 20336 | likewise the frame's tool-bar window, if there is any. */ | 20333 | likewise the frame's tool-bar window, if there is any. */ |
| 20337 | if (!(it->glyph_row->mode_line_p | 20334 | if (!(it->glyph_row->mode_line_p |
| 20338 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 20335 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 20339 | || (WINDOWP (f->tool_bar_window) | 20336 | || (WINDOWP (f->tool_bar_window) |
| 20340 | && it->w == XWINDOW (f->tool_bar_window)) | 20337 | && it->w == XWINDOW (f->tool_bar_window)) |
| 20341 | #endif | 20338 | #endif |
| @@ -30020,7 +30017,7 @@ show_mouse_face (Mouse_HLInfo *hlinfo, enum draw_glyphs_face draw) | |||
| 30020 | /* Change the mouse cursor. */ | 30017 | /* Change the mouse cursor. */ |
| 30021 | if (FRAME_WINDOW_P (f) && NILP (do_mouse_tracking)) | 30018 | if (FRAME_WINDOW_P (f) && NILP (do_mouse_tracking)) |
| 30022 | { | 30019 | { |
| 30023 | #if ! defined (USE_GTK) && ! defined (HAVE_NS) | 30020 | #ifndef HAVE_EXT_TOOL_BAR |
| 30024 | if (draw == DRAW_NORMAL_TEXT | 30021 | if (draw == DRAW_NORMAL_TEXT |
| 30025 | && !EQ (hlinfo->mouse_face_window, f->tool_bar_window)) | 30022 | && !EQ (hlinfo->mouse_face_window, f->tool_bar_window)) |
| 30026 | FRAME_RIF (f)->define_frame_cursor (f, FRAME_X_OUTPUT (f)->text_cursor); | 30023 | FRAME_RIF (f)->define_frame_cursor (f, FRAME_X_OUTPUT (f)->text_cursor); |
| @@ -31422,7 +31419,7 @@ note_mouse_highlight (struct frame *f, int x, int y) | |||
| 31422 | w = XWINDOW (window); | 31419 | w = XWINDOW (window); |
| 31423 | frame_to_window_pixel_xy (w, &x, &y); | 31420 | frame_to_window_pixel_xy (w, &x, &y); |
| 31424 | 31421 | ||
| 31425 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (USE_GTK) && ! defined (HAVE_NS) | 31422 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 31426 | /* Handle tool-bar window differently since it doesn't display a | 31423 | /* Handle tool-bar window differently since it doesn't display a |
| 31427 | buffer. */ | 31424 | buffer. */ |
| 31428 | if (EQ (window, f->tool_bar_window)) | 31425 | if (EQ (window, f->tool_bar_window)) |
| @@ -32447,7 +32444,7 @@ expose_frame (struct frame *f, int x, int y, int w, int h) | |||
| 32447 | TRACE ((stderr, "(%d, %d, %d, %d)\n", r.x, r.y, r.width, r.height)); | 32444 | TRACE ((stderr, "(%d, %d, %d, %d)\n", r.x, r.y, r.width, r.height)); |
| 32448 | mouse_face_overwritten_p = expose_window_tree (XWINDOW (f->root_window), &r); | 32445 | mouse_face_overwritten_p = expose_window_tree (XWINDOW (f->root_window), &r); |
| 32449 | 32446 | ||
| 32450 | #if ! defined (USE_GTK) && ! defined (HAVE_NS) | 32447 | #ifndef HAVE_EXT_TOOL_BAR |
| 32451 | if (WINDOWP (f->tool_bar_window)) | 32448 | if (WINDOWP (f->tool_bar_window)) |
| 32452 | mouse_face_overwritten_p | 32449 | mouse_face_overwritten_p |
| 32453 | |= expose_window (XWINDOW (f->tool_bar_window), &r); | 32450 | |= expose_window (XWINDOW (f->tool_bar_window), &r); |
diff --git a/src/xfns.c b/src/xfns.c index a627b7e19e6..f238a3daa15 100644 --- a/src/xfns.c +++ b/src/xfns.c | |||
| @@ -5132,7 +5132,7 @@ frame_geometry (Lisp_Object frame, Lisp_Object attribute) | |||
| 5132 | inner_right = native_right - internal_border_width; | 5132 | inner_right = native_right - internal_border_width; |
| 5133 | inner_bottom = native_bottom - internal_border_width; | 5133 | inner_bottom = native_bottom - internal_border_width; |
| 5134 | 5134 | ||
| 5135 | #if defined (USE_X_TOOLKIT) || defined (USE_GTK) | 5135 | #ifdef HAVE_EXT_MENU_BAR |
| 5136 | menu_bar_external = true; | 5136 | menu_bar_external = true; |
| 5137 | menu_bar_height = FRAME_MENUBAR_HEIGHT (f); | 5137 | menu_bar_height = FRAME_MENUBAR_HEIGHT (f); |
| 5138 | native_top += menu_bar_height; | 5138 | native_top += menu_bar_height; |
| @@ -5143,7 +5143,7 @@ frame_geometry (Lisp_Object frame, Lisp_Object attribute) | |||
| 5143 | #endif | 5143 | #endif |
| 5144 | menu_bar_width = menu_bar_height ? native_width : 0; | 5144 | menu_bar_width = menu_bar_height ? native_width : 0; |
| 5145 | 5145 | ||
| 5146 | #if defined (USE_GTK) | 5146 | #ifdef HAVE_EXT_TOOL_BAR |
| 5147 | tool_bar_external = true; | 5147 | tool_bar_external = true; |
| 5148 | if (EQ (FRAME_TOOL_BAR_POSITION (f), Qleft)) | 5148 | if (EQ (FRAME_TOOL_BAR_POSITION (f), Qleft)) |
| 5149 | { | 5149 | { |