diff options
| author | Juri Linkov | 2019-08-31 23:40:07 +0300 |
|---|---|---|
| committer | Juri Linkov | 2019-08-31 23:40:07 +0300 |
| commit | 3e0ad29a607c8c085de3b74c7505e417ad7f9062 (patch) | |
| tree | feff537233e67c705d67b280023c623192c3d95b /src/frame.c | |
| parent | 7791005544836f93542e8277ad5897f8f5920f05 (diff) | |
| download | emacs-3e0ad29a607c8c085de3b74c7505e417ad7f9062.tar.gz emacs-3e0ad29a607c8c085de3b74c7505e417ad7f9062.zip | |
Frame-local tab-bar and window-local tab-line.
* etc/NEWS: Add 'tab-bar-mode' and 'global-tab-line-mode'.
* etc/TODO: Remove tab-related items.
* lisp/cus-start.el: Add tab-bar-mode, tab-bar-max-label-size.
* lisp/frame.el (frame-notice-user-settings): handle tab-bar-lines.
* lisp/loadup.el: Load "tab-bar".
* lisp/menu-bar.el (menu-bar-options-save): Add tab-bar-mode.
(menu-bar-showhide-menu): Define showhide-tab-bar.
* lisp/startup.el (tab-bar-images-pixel-height): New defconst.
(command-line): Reset tab-bar-mode.
(x-apply-session-resources): Add "tabBar", "TabBar".
* lisp/subr.el (read-key): Add tab-bar.
* lisp/tab-bar.el: New file.
* lisp/tab-line.el: New file.
* lisp/window.el (window--dump-frame): Add tab-bar-height.
* src/dispextern.h (enum window_part): Add ON_TAB_LINE.
(struct glyph_matrix): Add tab_line_p.
(struct glyph_row): Add tab_line_p.
(MATRIX_TAB_LINE_ROW): New macro.
(MATRIX_FIRST_TEXT_ROW): Handle more mode lines.
(MR_PARTIALLY_VISIBLE_AT_TOP): Add WINDOW_TAB_LINE_HEIGHT.
(MATRIX_TAB_LINE_HEIGHT, CURRENT_TAB_LINE_HEIGHT)
(DESIRED_TAB_LINE_HEIGHT): New macros.
(enum face_id): Add TAB_BAR_FACE_ID and TAB_LINE_FACE_ID.
(struct it): Add tab_line_p.
(tab_bar_item_idx, tab_bar_item_image): New enums.
(DEFAULT_TAB_BAR_LABEL_SIZE, DEFAULT_TAB_BAR_BUTTON_MARGIN)
(DEFAULT_TAB_BAR_BUTTON_RELIEF, DEFAULT_TAB_BAR_IMAGE_HEIGHT):
New constants.
* src/dispnew.c (adjust_glyph_matrix): Use window_wants_tab_line.
(shift_glyph_matrix): Add WINDOW_TAB_LINE_HEIGHT.
(clear_current_matrices, clear_desired_matrices):
Call clear_glyph_matrix on tab_bar_window.
(blank_row): Add WINDOW_TAB_LINE_HEIGHT.
(required_matrix_height): Change 2 to 3.
(fake_current_matrices): Reset tab_line_p.
(adjust_frame_glyphs_for_window_redisplay): Handle tab_bar_window.
Add FRAME_TAB_BAR_HEIGHT and FRAME_TAB_BAR_LINES.
(free_glyphs): Handle tab_bar_window.
(update_frame): Handle tab_bar_window.
(update_window): Handle row->tab_line_p.
(scrolling_window): Change arg type from bool to int.
Change header_line_p to tab_line_p.
(buffer_posn_from_coords): Add window_wants_tab_line.
(mode_line_string): Use MATRIX_TAB_LINE_ROW for part ON_TAB_LINE.
* src/frame.c (frame_default_tab_bar_height): New internal variable.
(adjust_frame_size): Handle tab_bar_window.
(make_frame): Reset tab_bar_redisplayed, tab_bar_resized and
last_tab_bar_item.
(Ftab_bar_pixel_width): New function.
(frame_parms): Add tab-bar-lines.
(gui_figure_window_size): Add new arg tabbar_p.
(syms_of_frame): Add Qtab_bar_size, Qupdate_frame_tab_bar,
Qfree_frame_tab_bar, Qtab_bar_lines, Stab_bar_pixel_width.
Add Qtab_bar_lines to frame_inhibit_implied_resize.
(tab-bar-mode): New variable.
* src/frame.h (GCALIGNED_STRUCT): Add tab_bar_window,
desired_tab_bar_string, current_tab_bar_string.
(GCALIGNED_STRUCT): Add tab_bar_items, last_tab_bar_item,
minimize_tab_bar_window_p, tab_bar_redisplayed, tab_bar_resized,
tab_bar_lines, tab_bar_height, n_tab_bar_rows, n_tab_bar_items.
(fset_tab_bar_items, fset_tab_bar_window)
(fset_current_tab_bar_string, fset_desired_tab_bar_string):
New inlines.
(FRAME_TAB_BAR_LINES, FRAME_TAB_BAR_HEIGHT): New macros.
(FRAME_TOP_MARGIN, FRAME_TOP_MARGIN_HEIGHT):
Use FRAME_TAB_BAR_LINES.
* src/fringe.c (draw_fringe_bitmap_1, update_window_fringes):
Add WINDOW_TAB_LINE_HEIGHT.
* src/gtkutil.c (xg_frame_set_char_size): Add FRAME_TABBAR_WIDTH.
(x_wm_set_size_hint): Add FRAME_TABBAR_WIDTH.
* src/keyboard.c (read_char): Handle Qtab_bar.
(kbd_buffer_get_event): Handle TAB_BAR_EVENT.
(make_lispy_position): Add WINDOW_TAB_LINE_HEIGHT.
Handle TAB_BAR_EVENT.
(tab_bar_items_vector, tab_bar_item_properties, ntab_bar_items):
New internal variables.
(tab_bar_items, process_tab_bar_item, set_prop_tab_bar)
(parse_tab_bar_item, init_tab_bar_items, append_tab_bar_item):
New functions.
(read_char_x_menu_prompt, read_key_sequence): Handle Qtab_bar.
(tab-bar-separator-image-expression): New variable.
* src/keymap.c (syms_of_keymap): Add Qtab_bar and Qtab_line.
* src/menu.c (x_popup_menu_1, Fx_popup_dialog): Handle Qtab_bar.
* src/termhooks.h (enum event_kind): Add TAB_BAR_EVENT.
(GCALIGNED_STRUCT): Add change_tab_bar_height_hook.
* src/w32fns.c (w32_frame_parm_handlers): Add w32_set_tab_bar_lines.
* src/w32term.c (w32_draw_window_cursor): Add WINDOW_TAB_LINE_HEIGHT.
* src/window.c (window_body_height): Add WINDOW_TAB_LINE_HEIGHT.
(Fwindow_tab_line_height): New function.
(coordinates_in_window): Use window_wants_tab_line with
CURRENT_TAB_LINE_HEIGHT.
(window_relative_x_coord): Add ON_TAB_LINE.
(Fcoordinates_in_window_p): Add ON_TAB_LINE.
(window_from_coordinates): Add new arg tab_bar_p.
(Fwindow_line_height): Use window_wants_tab_line with
WINDOW_TAB_LINE_HEIGHT.
(Fwindow_lines_pixel_dimensions): Add WINDOW_TAB_LINE_HEIGHT.
(make_window): Set tab_line_height to -1.
(window_wants_tab_line): New function.
(window_internal_height): Use window_wants_tab_line.
(window_scroll_pixel_based): Add WINDOW_TAB_LINE_HEIGHT.
(Frecenter): Set minimize_tab_bar_window_p to 1.
(GCALIGNED_STRUCT): Add frame_tab_bar_lines and frame_tab_bar_height.
(Fcurrent_window_configuration): Set frame_tab_bar_lines and
frame_tab_bar_height.
(set_window_scroll_bars): Add WINDOW_TAB_LINE_HEIGHT.
(syms_of_window): Add Qtab_line_format and Swindow_tab_line_height.
* src/window.h (GCALIGNED_STRUCT): Add tab_line_height.
(WINDOW_TAB_BAR_P, WINDOW_TAB_LINE_HEIGHT, WINDOW_TAB_LINE_LINES):
New macros.
(WINDOW_TOP_EDGE_Y, WINDOW_BOTTOM_EDGE_Y, WINDOW_TAB_LINE_HEIGHT):
Add WINDOW_TAB_BAR_P.
* src/xdisp.c (window_box_height): Add window_wants_tab_line with
MATRIX_TAB_LINE_ROW and CURRENT_TAB_LINE_HEIGHT.
(pos_visible_p): Use window_wants_tab_line.
Add WINDOW_TAB_LINE_HEIGHT.
(get_glyph_string_clip_rects): Add WINDOW_TAB_LINE_HEIGHT.
(get_phys_cursor_geometry): Add WINDOW_TAB_LINE_HEIGHT.
(remember_mouse_glyph): Use MATRIX_TAB_LINE_ROW for part
ON_TAB_LINE.
(init_iterator): Use MATRIX_TAB_LINE_ROW for TAB_LINE_FACE_ID.
Add WINDOW_TAB_LINE_HEIGHT. Add window_wants_tab_line.
(Fwindow_text_pixel_size): Add WINDOW_TAB_LINE_HEIGHT.
(prepare_menu_bars): Call update_tab_bar.
(update_tab_bar, build_desired_tab_bar_string)
(display_tab_bar_line, tab_bar_height, Ftab_bar_height)
(redisplay_tab_bar, tab_bar_item_info, get_tab_bar_item)
(handle_tab_bar_click, note_tab_bar_highlight): New functions.
(compute_window_start_on_continuation_line): Use window_wants_tab_line.
(try_cursor_movement): Use window_wants_tab_line with
CURRENT_TAB_LINE_HEIGHT.
(redisplay_window): Use window_wants_tab_line with
CURRENT_TAB_LINE_HEIGHT.
(try_window_reusing_current_matrix): Use window_wants_tab_line
with WINDOW_TAB_LINE_HEIGHT.
(Fdump_tab_bar_row): New function.
(compute_line_metrics): Add WINDOW_TAB_LINE_HEIGHT.
(display_line): Use window_wants_tab_line.
(display_mode_line): Set tab_line_p to true if face_id is
TAB_LINE_FACE_ID.
(Fformat_mode_line): Handle Qtab_line and Qtab_bar.
(gui_clear_end_of_line): Add WINDOW_TAB_LINE_HEIGHT.
(erase_phys_cursor): Use WINDOW_TAB_LINE_HEIGHT.
(show_mouse_face): Use tab_bar_window.
(note_mode_line_or_margin_highlight): Use MATRIX_TAB_LINE_ROW for
area ON_TAB_LINE.
(note_mouse_highlight): Call note_tab_bar_highlight,
(expose_frame): Handle tab_bar_window.
(syms_of_xdisp): Add Sdump_tab_bar_row and Stab_bar_height.
(auto-resize-tab-bars, auto-raise-tab-bar-buttons)
(tab-bar-border, tab-bar-button-margin, tab-bar-button-relief)
(tab-bar-max-label-size): New variables.
* src/xfaces.c (lookup_basic_face): Add TAB_LINE_FACE_ID and
TAB_BAR_FACE_ID.
(syms_of_xfaces): Define Qtab_bar and Qtab_line.
* src/xfns.c (x_set_tab_bar_lines, x_change_tab_bar_height):
New functions.
(xic_set_statusarea): Add FRAME_TABBAR_TOP_HEIGHT.
(frame_geometry): Add FRAME_TAB_BAR_HEIGHT and Qtab_bar_size.
* src/xterm.c (x_draw_image_relief): Use tab_bar_button_relief.
(x_draw_image_relief): Use TAB_BAR_FACE_ID.
(handle_one_xevent): Handle tab_bar_window.
(x_set_window_size_1): Add FRAME_TABBAR_WIDTH.
(x_create_terminal): Set change_tab_bar_height_hook.
* src/xterm.h (struct x_output): Add tabbar_top_height,
tabbar_bottom_height, tabbar_left_width, tabbar_right_width
tabbar_widget, tabbar_in_hbox, tabbar_is_packed.
(FRAME_TABBAR_TOP_HEIGHT): Add FRAME_TABBAR_TOP_HEIGHT,
FRAME_TABBAR_BOTTOM_HEIGHT, FRAME_TABBAR_HEIGHT,
FRAME_TABBAR_LEFT_WIDTH, FRAME_TABBAR_RIGHT_WIDTH,
FRAME_TABBAR_WIDTH.
Diffstat (limited to 'src/frame.c')
| -rw-r--r-- | src/frame.c | 82 |
1 files changed, 80 insertions, 2 deletions
diff --git a/src/frame.c b/src/frame.c index 1d42d0cb4de..43bd5c2b8c8 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -69,6 +69,9 @@ static struct frame *last_nonminibuf_frame; | |||
| 69 | /* False means there are no visible garbaged frames. */ | 69 | /* False means there are no visible garbaged frames. */ |
| 70 | bool frame_garbaged; | 70 | bool frame_garbaged; |
| 71 | 71 | ||
| 72 | /* The default tab bar height for future frames. */ | ||
| 73 | int frame_default_tab_bar_height; | ||
| 74 | |||
| 72 | /* The default tool bar height for future frames. */ | 75 | /* The default tool bar height for future frames. */ |
| 73 | #ifdef HAVE_EXT_TOOL_BAR | 76 | #ifdef HAVE_EXT_TOOL_BAR |
| 74 | enum { frame_default_tool_bar_height = 0 }; | 77 | enum { frame_default_tool_bar_height = 0 }; |
| @@ -719,6 +722,15 @@ adjust_frame_size (struct frame *f, int new_width, int new_height, int inhibit, | |||
| 719 | if ((FRAME_TERMCAP_P (f) && !pretend) || FRAME_MSDOS_P (f)) | 722 | if ((FRAME_TERMCAP_P (f) && !pretend) || FRAME_MSDOS_P (f)) |
| 720 | FrameCols (FRAME_TTY (f)) = new_cols; | 723 | FrameCols (FRAME_TTY (f)) = new_cols; |
| 721 | 724 | ||
| 725 | #if defined (HAVE_WINDOW_SYSTEM) | ||
| 726 | if (WINDOWP (f->tab_bar_window)) | ||
| 727 | { | ||
| 728 | XWINDOW (f->tab_bar_window)->pixel_width = new_windows_width; | ||
| 729 | XWINDOW (f->tab_bar_window)->total_cols | ||
| 730 | = new_windows_width / unit_width; | ||
| 731 | } | ||
| 732 | #endif | ||
| 733 | |||
| 722 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) | 734 | #if defined (HAVE_WINDOW_SYSTEM) && ! defined (HAVE_EXT_TOOL_BAR) |
| 723 | if (WINDOWP (f->tool_bar_window)) | 735 | if (WINDOWP (f->tool_bar_window)) |
| 724 | { | 736 | { |
| @@ -838,6 +850,8 @@ make_frame (bool mini_p) | |||
| 838 | f->after_make_frame = false; | 850 | f->after_make_frame = false; |
| 839 | f->inhibit_horizontal_resize = false; | 851 | f->inhibit_horizontal_resize = false; |
| 840 | f->inhibit_vertical_resize = false; | 852 | f->inhibit_vertical_resize = false; |
| 853 | f->tab_bar_redisplayed = false; | ||
| 854 | f->tab_bar_resized = false; | ||
| 841 | f->tool_bar_redisplayed = false; | 855 | f->tool_bar_redisplayed = false; |
| 842 | f->tool_bar_resized = false; | 856 | f->tool_bar_resized = false; |
| 843 | f->column_width = 1; /* !FRAME_WINDOW_P value. */ | 857 | f->column_width = 1; /* !FRAME_WINDOW_P value. */ |
| @@ -856,6 +870,7 @@ make_frame (bool mini_p) | |||
| 856 | f->no_accept_focus = false; | 870 | f->no_accept_focus = false; |
| 857 | f->z_group = z_group_none; | 871 | f->z_group = z_group_none; |
| 858 | f->tooltip = false; | 872 | f->tooltip = false; |
| 873 | f->last_tab_bar_item = -1; | ||
| 859 | #ifndef HAVE_EXT_TOOL_BAR | 874 | #ifndef HAVE_EXT_TOOL_BAR |
| 860 | f->last_tool_bar_item = -1; | 875 | f->last_tool_bar_item = -1; |
| 861 | #endif | 876 | #endif |
| @@ -3390,6 +3405,23 @@ to `frame-height'). */) | |||
| 3390 | return make_fixnum (FRAME_TOTAL_LINES (f)); | 3405 | return make_fixnum (FRAME_TOTAL_LINES (f)); |
| 3391 | } | 3406 | } |
| 3392 | 3407 | ||
| 3408 | DEFUN ("tab-bar-pixel-width", Ftab_bar_pixel_width, | ||
| 3409 | Stab_bar_pixel_width, 0, 1, 0, | ||
| 3410 | doc: /* Return width in pixels of FRAME's tab bar. | ||
| 3411 | The result is greater than zero only when the tab bar is on the left | ||
| 3412 | or right side of FRAME. If FRAME is omitted or nil, the selected frame | ||
| 3413 | is used. */) | ||
| 3414 | (Lisp_Object frame) | ||
| 3415 | { | ||
| 3416 | #ifdef FRAME_TABBAR_WIDTH | ||
| 3417 | struct frame *f = decode_any_frame (frame); | ||
| 3418 | |||
| 3419 | if (FRAME_WINDOW_P (f)) | ||
| 3420 | return make_fixnum (FRAME_TABBAR_WIDTH (f)); | ||
| 3421 | #endif | ||
| 3422 | return make_fixnum (0); | ||
| 3423 | } | ||
| 3424 | |||
| 3393 | DEFUN ("tool-bar-pixel-width", Ftool_bar_pixel_width, | 3425 | DEFUN ("tool-bar-pixel-width", Ftool_bar_pixel_width, |
| 3394 | Stool_bar_pixel_width, 0, 1, 0, | 3426 | Stool_bar_pixel_width, 0, 1, 0, |
| 3395 | doc: /* Return width in pixels of FRAME's tool bar. | 3427 | doc: /* Return width in pixels of FRAME's tool bar. |
| @@ -3695,6 +3727,7 @@ static const struct frame_parm_table frame_parms[] = | |||
| 3695 | {"vertical-scroll-bars", SYMBOL_INDEX (Qvertical_scroll_bars)}, | 3727 | {"vertical-scroll-bars", SYMBOL_INDEX (Qvertical_scroll_bars)}, |
| 3696 | {"horizontal-scroll-bars", SYMBOL_INDEX (Qhorizontal_scroll_bars)}, | 3728 | {"horizontal-scroll-bars", SYMBOL_INDEX (Qhorizontal_scroll_bars)}, |
| 3697 | {"visibility", SYMBOL_INDEX (Qvisibility)}, | 3729 | {"visibility", SYMBOL_INDEX (Qvisibility)}, |
| 3730 | {"tab-bar-lines", SYMBOL_INDEX (Qtab_bar_lines)}, | ||
| 3698 | {"tool-bar-lines", SYMBOL_INDEX (Qtool_bar_lines)}, | 3731 | {"tool-bar-lines", SYMBOL_INDEX (Qtool_bar_lines)}, |
| 3699 | {"scroll-bar-foreground", SYMBOL_INDEX (Qscroll_bar_foreground)}, | 3732 | {"scroll-bar-foreground", SYMBOL_INDEX (Qscroll_bar_foreground)}, |
| 3700 | {"scroll-bar-background", SYMBOL_INDEX (Qscroll_bar_background)}, | 3733 | {"scroll-bar-background", SYMBOL_INDEX (Qscroll_bar_background)}, |
| @@ -4450,6 +4483,8 @@ gui_set_font (struct frame *f, Lisp_Object arg, Lisp_Object oldval) | |||
| 4450 | #ifdef HAVE_X_WINDOWS | 4483 | #ifdef HAVE_X_WINDOWS |
| 4451 | store_frame_param (f, Qfont_parameter, font_param); | 4484 | store_frame_param (f, Qfont_parameter, font_param); |
| 4452 | #endif | 4485 | #endif |
| 4486 | /* Recalculate tabbar height. */ | ||
| 4487 | f->n_tab_bar_rows = 0; | ||
| 4453 | /* Recalculate toolbar height. */ | 4488 | /* Recalculate toolbar height. */ |
| 4454 | f->n_tool_bar_rows = 0; | 4489 | f->n_tool_bar_rows = 0; |
| 4455 | 4490 | ||
| @@ -5390,7 +5425,7 @@ On Nextstep, this just calls `ns-parse-geometry'. */) | |||
| 5390 | #define DEFAULT_COLS 80 | 5425 | #define DEFAULT_COLS 80 |
| 5391 | 5426 | ||
| 5392 | long | 5427 | long |
| 5393 | gui_figure_window_size (struct frame *f, Lisp_Object parms, bool toolbar_p, | 5428 | gui_figure_window_size (struct frame *f, Lisp_Object parms, bool tabbar_p, bool toolbar_p, |
| 5394 | int *x_width, int *x_height) | 5429 | int *x_width, int *x_height) |
| 5395 | { | 5430 | { |
| 5396 | Lisp_Object height, width, user_size, top, left, user_position; | 5431 | Lisp_Object height, width, user_size, top, left, user_position; |
| @@ -5411,6 +5446,36 @@ gui_figure_window_size (struct frame *f, Lisp_Object parms, bool toolbar_p, | |||
| 5411 | f->top_pos = 0; | 5446 | f->top_pos = 0; |
| 5412 | f->left_pos = 0; | 5447 | f->left_pos = 0; |
| 5413 | 5448 | ||
| 5449 | /* Calculate a tab bar height so that the user gets a text display | ||
| 5450 | area of the size he specified with -g or via .Xdefaults. Later | ||
| 5451 | changes of the tab bar height don't change the frame size. This | ||
| 5452 | is done so that users can create tall Emacs frames without having | ||
| 5453 | to guess how tall the tab bar will get. */ | ||
| 5454 | if (tabbar_p && FRAME_TAB_BAR_LINES (f)) | ||
| 5455 | { | ||
| 5456 | if (frame_default_tab_bar_height) | ||
| 5457 | FRAME_TAB_BAR_HEIGHT (f) = frame_default_tab_bar_height; | ||
| 5458 | else | ||
| 5459 | { | ||
| 5460 | int margin, relief; | ||
| 5461 | |||
| 5462 | relief = (tab_bar_button_relief < 0 | ||
| 5463 | ? DEFAULT_TAB_BAR_BUTTON_RELIEF | ||
| 5464 | : min (tab_bar_button_relief, 1000000)); | ||
| 5465 | |||
| 5466 | if (RANGED_FIXNUMP (1, Vtab_bar_button_margin, INT_MAX)) | ||
| 5467 | margin = XFIXNAT (Vtab_bar_button_margin); | ||
| 5468 | else if (CONSP (Vtab_bar_button_margin) | ||
| 5469 | && RANGED_FIXNUMP (1, XCDR (Vtab_bar_button_margin), INT_MAX)) | ||
| 5470 | margin = XFIXNAT (XCDR (Vtab_bar_button_margin)); | ||
| 5471 | else | ||
| 5472 | margin = 0; | ||
| 5473 | |||
| 5474 | FRAME_TAB_BAR_HEIGHT (f) | ||
| 5475 | = DEFAULT_TAB_BAR_IMAGE_HEIGHT + 2 * margin + 2 * relief; | ||
| 5476 | } | ||
| 5477 | } | ||
| 5478 | |||
| 5414 | /* Calculate a tool bar height so that the user gets a text display | 5479 | /* Calculate a tool bar height so that the user gets a text display |
| 5415 | area of the size he specified with -g or via .Xdefaults. Later | 5480 | area of the size he specified with -g or via .Xdefaults. Later |
| 5416 | changes of the tool bar height don't change the frame size. This | 5481 | changes of the tool bar height don't change the frame size. This |
| @@ -5837,6 +5902,7 @@ syms_of_frame (void) | |||
| 5837 | DEFSYM (Qtitle_bar_size, "title-bar-size"); | 5902 | DEFSYM (Qtitle_bar_size, "title-bar-size"); |
| 5838 | DEFSYM (Qmenu_bar_external, "menu-bar-external"); | 5903 | DEFSYM (Qmenu_bar_external, "menu-bar-external"); |
| 5839 | DEFSYM (Qmenu_bar_size, "menu-bar-size"); | 5904 | DEFSYM (Qmenu_bar_size, "menu-bar-size"); |
| 5905 | DEFSYM (Qtab_bar_size, "tab-bar-size"); | ||
| 5840 | DEFSYM (Qtool_bar_external, "tool-bar-external"); | 5906 | DEFSYM (Qtool_bar_external, "tool-bar-external"); |
| 5841 | DEFSYM (Qtool_bar_size, "tool-bar-size"); | 5907 | DEFSYM (Qtool_bar_size, "tool-bar-size"); |
| 5842 | /* The following are used for frame_size_history. */ | 5908 | /* The following are used for frame_size_history. */ |
| @@ -5860,7 +5926,9 @@ syms_of_frame (void) | |||
| 5860 | DEFSYM (Qx_net_wm_state, "x-net-wm-state"); | 5926 | DEFSYM (Qx_net_wm_state, "x-net-wm-state"); |
| 5861 | DEFSYM (Qx_handle_net_wm_state, "x-handle-net-wm-state"); | 5927 | DEFSYM (Qx_handle_net_wm_state, "x-handle-net-wm-state"); |
| 5862 | DEFSYM (Qtb_size_cb, "tb-size-cb"); | 5928 | DEFSYM (Qtb_size_cb, "tb-size-cb"); |
| 5929 | DEFSYM (Qupdate_frame_tab_bar, "update-frame-tab-bar"); | ||
| 5863 | DEFSYM (Qupdate_frame_tool_bar, "update-frame-tool-bar"); | 5930 | DEFSYM (Qupdate_frame_tool_bar, "update-frame-tool-bar"); |
| 5931 | DEFSYM (Qfree_frame_tab_bar, "free-frame-tab-bar"); | ||
| 5864 | DEFSYM (Qfree_frame_tool_bar, "free-frame-tool-bar"); | 5932 | DEFSYM (Qfree_frame_tool_bar, "free-frame-tool-bar"); |
| 5865 | DEFSYM (Qx_set_menu_bar_lines, "x-set-menu-bar-lines"); | 5933 | DEFSYM (Qx_set_menu_bar_lines, "x-set-menu-bar-lines"); |
| 5866 | DEFSYM (Qchange_frame_size, "change-frame-size"); | 5934 | DEFSYM (Qchange_frame_size, "change-frame-size"); |
| @@ -5910,6 +5978,7 @@ syms_of_frame (void) | |||
| 5910 | DEFSYM (Qscroll_bar_width, "scroll-bar-width"); | 5978 | DEFSYM (Qscroll_bar_width, "scroll-bar-width"); |
| 5911 | DEFSYM (Qsticky, "sticky"); | 5979 | DEFSYM (Qsticky, "sticky"); |
| 5912 | DEFSYM (Qtitle, "title"); | 5980 | DEFSYM (Qtitle, "title"); |
| 5981 | DEFSYM (Qtab_bar_lines, "tab-bar-lines"); | ||
| 5913 | DEFSYM (Qtool_bar_lines, "tool-bar-lines"); | 5982 | DEFSYM (Qtool_bar_lines, "tool-bar-lines"); |
| 5914 | DEFSYM (Qtool_bar_position, "tool-bar-position"); | 5983 | DEFSYM (Qtool_bar_position, "tool-bar-position"); |
| 5915 | DEFSYM (Qunsplittable, "unsplittable"); | 5984 | DEFSYM (Qunsplittable, "unsplittable"); |
| @@ -6071,6 +6140,14 @@ either customize it (see the info node `Easy Customization') | |||
| 6071 | or call the function `menu-bar-mode'. */); | 6140 | or call the function `menu-bar-mode'. */); |
| 6072 | Vmenu_bar_mode = Qt; | 6141 | Vmenu_bar_mode = Qt; |
| 6073 | 6142 | ||
| 6143 | DEFVAR_LISP ("tab-bar-mode", Vtab_bar_mode, | ||
| 6144 | doc: /* Non-nil if Tab-Bar mode is enabled. | ||
| 6145 | See the command `tab-bar-mode' for a description of this minor mode. | ||
| 6146 | Setting this variable directly does not take effect; | ||
| 6147 | either customize it (see the info node `Easy Customization') | ||
| 6148 | or call the function `tab-bar-mode'. */); | ||
| 6149 | Vtab_bar_mode = Qnil; | ||
| 6150 | |||
| 6074 | DEFVAR_LISP ("tool-bar-mode", Vtool_bar_mode, | 6151 | DEFVAR_LISP ("tool-bar-mode", Vtool_bar_mode, |
| 6075 | doc: /* Non-nil if Tool-Bar mode is enabled. | 6152 | doc: /* Non-nil if Tool-Bar mode is enabled. |
| 6076 | See the command `tool-bar-mode' for a description of this minor mode. | 6153 | See the command `tool-bar-mode' for a description of this minor mode. |
| @@ -6200,7 +6277,7 @@ any of the parameters listed above, Emacs may try to enlarge the frame | |||
| 6200 | even if this option is non-nil. */); | 6277 | even if this option is non-nil. */); |
| 6201 | #if defined (HAVE_WINDOW_SYSTEM) | 6278 | #if defined (HAVE_WINDOW_SYSTEM) |
| 6202 | #if defined (USE_LUCID) || defined (USE_MOTIF) || defined (HAVE_NTGUI) | 6279 | #if defined (USE_LUCID) || defined (USE_MOTIF) || defined (HAVE_NTGUI) |
| 6203 | frame_inhibit_implied_resize = list1 (Qtool_bar_lines); | 6280 | frame_inhibit_implied_resize = list2 (Qtab_bar_lines, Qtool_bar_lines); |
| 6204 | #else | 6281 | #else |
| 6205 | frame_inhibit_implied_resize = Qnil; | 6282 | frame_inhibit_implied_resize = Qnil; |
| 6206 | #endif | 6283 | #endif |
| @@ -6309,6 +6386,7 @@ iconify the top level frame instead. */); | |||
| 6309 | defsubr (&Sframe_internal_border_width); | 6386 | defsubr (&Sframe_internal_border_width); |
| 6310 | defsubr (&Sright_divider_width); | 6387 | defsubr (&Sright_divider_width); |
| 6311 | defsubr (&Sbottom_divider_width); | 6388 | defsubr (&Sbottom_divider_width); |
| 6389 | defsubr (&Stab_bar_pixel_width); | ||
| 6312 | defsubr (&Stool_bar_pixel_width); | 6390 | defsubr (&Stool_bar_pixel_width); |
| 6313 | defsubr (&Sset_frame_height); | 6391 | defsubr (&Sset_frame_height); |
| 6314 | defsubr (&Sset_frame_width); | 6392 | defsubr (&Sset_frame_width); |