Index: lisp/scrollbar.el =================================================================== RCS file: /var/cvsroot/ntxemacs/lisp/scrollbar.el,v retrieving revision 1.1.1.3 diff -u -r1.1.1.3 scrollbar.el --- lisp/scrollbar.el 1998/04/26 09:52:49 1.1.1.3 +++ lisp/scrollbar.el 1998/05/09 07:44:16 @@ -31,20 +31,18 @@ ;;; Code: (defcustom scrollbars-visible-p ;; added for the options menu - dverna - (> (specifier-instance scrollbar-width) 0) + (specifier-instance vertical-scrollbar-visible-p (selected-device)) "Whether the scrollbars are globally visible. This variable can be customized through the options menu." :group 'display :type 'boolean - ;; This is really a hack: there should be a real specifier for this, in - ;; order to turn on/off the scrollbars without altering their size. :set '(lambda (var val) (if val (progn - (set-specifier scrollbar-width 15) - (set-specifier scrollbar-height 15)) - (set-specifier scrollbar-width 0) - (set-specifier scrollbar-height 0)) + (remove-specifier vertical-scrollbar-visible-p 'global) + (remove-specifier horizontal-scrollbar-visible-p 'global)) + (set-specifier vertical-scrollbar-visible-p nil 'global) + (set-specifier horizontal-scrollbar-visible-p nil 'global)) (setq scrollbars-visible-p val)) ) Index: lisp/x-misc.el =================================================================== RCS file: /var/cvsroot/ntxemacs/lisp/x-misc.el,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 x-misc.el --- lisp/x-misc.el 1997/12/28 17:14:33 1.1.1.1 +++ lisp/x-misc.el 1998/05/09 07:51:51 @@ -77,7 +77,6 @@ (x-bogosity-check-resource name class type) (x-get-resource name class type locale nil t)) -;; #### this function is not necessary. (defun x-get-resource-and-maybe-bogosity-check (name class type &optional locale) (if (eq locale 'global) Index: lisp/x-scrollbar.el =================================================================== RCS file: /var/cvsroot/ntxemacs/lisp/x-scrollbar.el,v retrieving revision 1.1.1.2 diff -u -r1.1.1.2 x-scrollbar.el --- lisp/x-scrollbar.el 1998/05/03 17:46:27 1.1.1.2 +++ lisp/x-scrollbar.el 1998/05/09 10:14:00 @@ -75,6 +75,30 @@ (if (featurep 'athena-scrollbars) (x-init-specifier-from-resources (specifier-fallback scrollbar-height) 'natnum locale - '("scrollbar.height" . "ScrollBar.Height")))) + '("scrollbar.height" . "ScrollBar.Height"))) + + ;; Now do ScrollBarPlacement.scrollBarPlacement + (let ((case-fold-search t) + (resval (x-get-resource-and-maybe-bogosity-check + "ScrollBarPlacement" "scrollBarPlacement" 'string locale))) + (cond + ((null resval)) + ((string-match "^top_left$" resval) + (set-specifier scrollbar-on-top-p t locale) + (set-specifier scrollbar-on-left-p t locale)) + ((string-match "^top_right$" resval) + (set-specifier scrollbar-on-top-p t locale) + (set-specifier scrollbar-on-left-p nil locale)) + ((string-match "^bottom_left$" resval) + (set-specifier scrollbar-on-top-p nil locale) + (set-specifier scrollbar-on-left-p t locale)) + ((string-match "^bottom_right$" resval) + (set-specifier scrollbar-on-top-p nil locale) + (set-specifier scrollbar-on-left-p nil locale)) + (t + (display-warning 'resource + (format "Illegal value '%s' for scrollBarPlacement resource" resval))))) + +) ;;; x-scrollbar.el ends here Index: src/frame-msw.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/frame-msw.c,v retrieving revision 1.10 diff -u -r1.10 frame-msw.c --- src/frame-msw.c 1998/05/09 08:58:53 1.10 +++ src/frame-msw.c 1998/05/09 08:38:57 @@ -115,12 +115,6 @@ mswindows_frame_target_rect.width = NILP (width) ? -1 : abs (XINT (width)); mswindows_frame_target_rect.height = NILP (height) ? -1 : abs (XINT (height)); - /* These shouldn't be here, but the window is created too early. - The initialization of scrollbar resources is done between - init_frame_1 and init_frame_2 in make_frame. jsparkes */ - f->scrollbar_width = make_int (15); - f->scrollbar_height = make_int (15); - f->frame_data = xnew_and_zero (struct mswindows_frame); /* Misc frame stuff */ Index: src/frame-tty.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/frame-tty.c,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 frame-tty.c --- src/frame-tty.c 1997/12/28 17:14:44 1.1.1.1 +++ src/frame-tty.c 1998/05/09 06:00:54 @@ -54,10 +54,6 @@ f->order_count = CONSOLE_TTY_DATA (c)->frame_count; f->height = CONSOLE_TTY_DATA (c)->height; f->width = CONSOLE_TTY_DATA (c)->width; -#ifdef HAVE_SCROLLBARS - f->scrollbar_on_left = 1; - f->scrollbar_on_top = 0; -#endif } static void Index: src/frame-x.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/frame-x.c,v retrieving revision 1.7 diff -u -r1.7 frame-x.c --- src/frame-x.c 1998/05/09 08:58:53 1.7 +++ src/frame-x.c 1998/05/09 09:05:05 @@ -1626,26 +1626,8 @@ } #ifdef HAVE_SCROLLBARS - { - /* The scrollbar positioning is completely handled by redisplay. We - just need to know which sides they are supposed to go on. */ - unsigned char scrollbar_placement; - - Xt_GET_VALUE (text, XtNscrollBarPlacement, &scrollbar_placement); - switch (scrollbar_placement) - { - case XtTOP_LEFT: - f->scrollbar_on_left = 1, f->scrollbar_on_top = 1; break; - case XtBOTTOM_LEFT: - f->scrollbar_on_left = 1, f->scrollbar_on_top = 0; break; - case XtTOP_RIGHT: - f->scrollbar_on_left = 0, f->scrollbar_on_top = 1; break; - case XtBOTTOM_RIGHT: - f->scrollbar_on_left = 0, f->scrollbar_on_top = 0; break; - } - f->scrollbar_y_offset = topbreadth + textbord; - } -#endif /* HAVE_SCROLLBARS */ + f->scrollbar_y_offset = topbreadth + textbord; +#endif /* finally the text area */ XtConfigureWidget (text, text_x, text_y, Index: src/frame.h =================================================================== RCS file: /var/cvsroot/ntxemacs/src/frame.h,v retrieving revision 1.6 diff -u -r1.6 frame.h --- src/frame.h 1998/05/09 08:58:57 1.6 +++ src/frame.h 1998/05/09 05:15:50 @@ -86,8 +86,6 @@ #ifdef HAVE_SCROLLBARS /* frame-local scrollbar information. See scrollbar.c. */ int scrollbar_y_offset; - int scrollbar_on_left; - int scrollbar_on_top; /* cache of created scrollbars */ struct scrollbar_instance *sb_vcache; @@ -419,8 +417,12 @@ #define FRAME_PIXHEIGHT(f) ((f)->pixheight) #define FRAME_PIXWIDTH(f) ((f)->pixwidth) #ifdef HAVE_SCROLLBARS -#define FRAME_SCROLLBAR_WIDTH(f) XINT ((f)->scrollbar_width) -#define FRAME_SCROLLBAR_HEIGHT(f) XINT ((f)->scrollbar_height) +#define FRAME_SCROLLBAR_WIDTH(f) \ + (NILP ((f)->vertical_scrollbar_visible_p) ? \ + 0 : XINT ((f)->scrollbar_width)) +#define FRAME_SCROLLBAR_HEIGHT(f) \ + (NILP ((f)->horizontal_scrollbar_visible_p) ? \ + 0 : XINT ((f)->scrollbar_height)) #else #define FRAME_SCROLLBAR_WIDTH(f) 0 #define FRAME_SCROLLBAR_HEIGHT(f) 0 Index: src/frameslots.h =================================================================== RCS file: /var/cvsroot/ntxemacs/src/frameslots.h,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 frameslots.h --- src/frameslots.h 1997/12/28 17:14:44 1.1.1.1 +++ src/frameslots.h 1998/05/09 06:12:29 @@ -102,6 +102,12 @@ /* Width and height of the scrollbars. */ MARKED_SLOT (scrollbar_width); MARKED_SLOT (scrollbar_height); + /* Whether the scrollbars are visible */ + MARKED_SLOT (horizontal_scrollbar_visible_p); + MARKED_SLOT (vertical_scrollbar_visible_p); + /* Scrollbars location */ + MARKED_SLOT (scrollbar_on_left_p); + MARKED_SLOT (scrollbar_on_top_p); #endif #ifdef HAVE_TOOLBARS Index: src/redisplay-msw.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/redisplay-msw.c,v retrieving revision 1.10 diff -u -r1.10 redisplay-msw.c --- src/redisplay-msw.c 1998/05/05 13:05:19 1.10 +++ src/redisplay-msw.c 1998/05/09 10:10:59 @@ -678,12 +678,10 @@ int sbh = window_scrollbar_height (w); int sbw = window_scrollbar_width (w); RECT rect_dead, rect_paint; - struct frame *f; if (sbh == 0 || sbw == 0) return; - f = XFRAME (WINDOW_FRAME (w)); - if (f->scrollbar_on_left) + if (!NILP (w->scrollbar_on_left_p)) { rect_dead.left = WINDOW_LEFT (w); rect_dead.right = WINDOW_LEFT (w) + sbw; @@ -694,7 +692,7 @@ rect_dead.right = WINDOW_RIGHT (w); } - if (f->scrollbar_on_top) + if (!NILP (w->scrollbar_on_top_p)) { rect_dead.top = WINDOW_TOP (w); rect_dead.bottom = WINDOW_TOP (w) + sbh; @@ -707,8 +705,11 @@ } if (IntersectRect (&rect_paint, &rect_dead, prc)) - FillRect (FRAME_MSWINDOWS_DC (f), &rect_paint, - (HBRUSH) (COLOR_BTNFACE+1)); + { + struct frame *f = XFRAME (WINDOW_FRAME (w)); + FillRect (FRAME_MSWINDOWS_DC (f), &rect_paint, + (HBRUSH) (COLOR_BTNFACE+1)); + } } #endif /* HAVE_SCROLLBARS */ @@ -1191,7 +1192,7 @@ /* XXX Not sure about this */ #ifdef HAVE_SCROLLBARS - if (f->scrollbar_on_left) + if (!NILP (w->scrollbar_on_left_p)) rect.left = WINDOW_LEFT (w); else rect.left = WINDOW_RIGHT (w) - MSWINDOWS_DIVIDER_WIDTH; @@ -1201,7 +1202,7 @@ rect.right = rect.left + MSWINDOWS_DIVIDER_WIDTH; #ifdef HAVE_SCROLLBARS - if (f->scrollbar_on_top) + if (!NILP (w->scrollbar_on_top_p)) rect.top = WINDOW_TOP (w); else #endif Index: src/redisplay-output.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/redisplay-output.c,v retrieving revision 1.1.1.6 diff -u -r1.1.1.6 redisplay-output.c --- src/redisplay-output.c 1998/04/05 13:07:23 1.1.1.6 +++ src/redisplay-output.c 1998/05/09 06:16:17 @@ -1042,7 +1042,7 @@ ypos2 = WINDOW_TEXT_BOTTOM (w); #ifdef HAVE_SCROLLBARS /* This adjustment is to catch the intersection of any scrollbars. */ - if (f->windows_structure_changed && !f->scrollbar_on_top) + if (f->windows_structure_changed && NILP (w->scrollbar_on_top_p)) ypos2 += window_scrollbar_height (w); #endif @@ -1053,7 +1053,7 @@ ypos1 = WINDOW_TEXT_TOP (w); #ifdef HAVE_SCROLLBARS /* This adjustment is to catch the intersection of any scrollbars. */ - if (f->windows_structure_changed && f->scrollbar_on_top) + if (f->windows_structure_changed && !NILP (w->scrollbar_on_top_p)) ypos1 -= window_scrollbar_height (w); #endif } Index: src/redisplay-x.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/redisplay-x.c,v retrieving revision 1.1.1.6 diff -u -r1.1.1.6 redisplay-x.c --- src/redisplay-x.c 1998/04/05 13:07:25 1.1.1.6 +++ src/redisplay-x.c 1998/05/09 06:08:41 @@ -1408,7 +1408,7 @@ int y1, y2; #ifdef HAVE_SCROLLBARS - if (f->scrollbar_on_left) + if (!NILP (w->scrollbar_on_left_p)) #endif x1 = WINDOW_LEFT (w); #ifdef HAVE_SCROLLBARS @@ -1418,7 +1418,7 @@ x2 = x1 + X_DIVIDER_SPACING; #ifdef HAVE_SCROLLBARS - if (f->scrollbar_on_top) + if (!NILP (w->scrollbar_on_top_p)) y1 = WINDOW_TOP (w); else #endif Index: src/scrollbar.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/scrollbar.c,v retrieving revision 1.2 diff -u -r1.2 scrollbar.c --- src/scrollbar.c 1998/05/09 08:59:02 1.2 +++ src/scrollbar.c 1998/05/09 09:02:53 @@ -57,12 +57,18 @@ #define DEFAULT_SCROLLBAR_WIDTH 15 #define DEFAULT_SCROLLBAR_HEIGHT 15 -/* Width of the scrollbar. */ +/* Width and height of the scrollbar. */ Lisp_Object Vscrollbar_width; - -/* Height of the scrollbar. */ Lisp_Object Vscrollbar_height; +/* Scrollbar visibility specifiers */ +Lisp_Object Vhorizontal_scrollbar_visible_p; +Lisp_Object Vvertical_scrollbar_visible_p; + +/* Scrollbar location specifiers */ +Lisp_Object Vscrollbar_on_left_p; +Lisp_Object Vscrollbar_on_top_p; + Lisp_Object Vscrollbar_pointer_glyph; EXFUN (Fcenter_to_window_line, 2); @@ -460,7 +466,7 @@ /* Scrollbars are always the farthest from the text area. */ if (vertical) { - x_offset = (f->scrollbar_on_left + x_offset = (!NILP (w->scrollbar_on_left_p) ? WINDOW_LEFT (w) : WINDOW_RIGHT (w) - scrollbar_width); y_offset = WINDOW_TEXT_TOP (w) + f->scrollbar_y_offset; @@ -469,7 +475,7 @@ { x_offset = WINDOW_TEXT_LEFT (w); y_offset = f->scrollbar_y_offset + - (f->scrollbar_on_top + (!NILP (w->scrollbar_on_top_p) ? WINDOW_TOP (w) : WINDOW_TEXT_BOTTOM (w) + window_bottom_toolbar_height (w)); } @@ -941,6 +947,79 @@ some_window_value_changed, slot_offset (struct frame, scrollbar_height), + frame_size_slipped); + + DEFVAR_SPECIFIER ("horizontal-scrollbar-visible-p", &Vhorizontal_scrollbar_visible_p /* +*Whether the horizontal scrollbar is visible. +This is a specifier; use `set-specifier' to change it. +*/ ); + Vhorizontal_scrollbar_visible_p = Fmake_specifier (Qboolean); + set_specifier_fallback (Vhorizontal_scrollbar_visible_p, + list1 (Fcons (Qnil, Qt))); + set_specifier_caching (Vhorizontal_scrollbar_visible_p, + slot_offset (struct window, + horizontal_scrollbar_visible_p), + some_window_value_changed, + slot_offset (struct frame, + horizontal_scrollbar_visible_p), + frame_size_slipped); + + DEFVAR_SPECIFIER ("vertical-scrollbar-visible-p", &Vvertical_scrollbar_visible_p /* +*Whether the vertical scrollbar is visible. +This is a specifier; use `set-specifier' to change it. +*/ ); + Vvertical_scrollbar_visible_p = Fmake_specifier (Qboolean); + set_specifier_fallback (Vvertical_scrollbar_visible_p, + list1 (Fcons (Qnil, Qt))); + set_specifier_caching (Vvertical_scrollbar_visible_p, + slot_offset (struct window, + vertical_scrollbar_visible_p), + some_window_value_changed, + slot_offset (struct frame, + vertical_scrollbar_visible_p), + frame_size_slipped); + + DEFVAR_SPECIFIER ("scrollbar-on-left-p", &Vscrollbar_on_left_p /* +*Whether the verical scrollbar is on the left side of window or frame. +This is a specifier; use `set-specifier' to change it. +*/ ); + Vscrollbar_on_left_p = Fmake_specifier (Qboolean); + + { + /* Klugde. Under X, we want athena scrollbars on the left, + while all other scrollbars go on the right by default. */ + Lisp_Object fallback = list1 (Fcons (Qnil, Qnil)); +#if defined (HAVE_X_WINDOWS) \ + && !defined (LWLIB_SCROLLBARS_MOTIF) \ + && !defined (LWLIB_SCROLLBARS_LUCID) \ + && !defined (LWLIB_SCROLLBARS_ATHENA3D) + + fallback = Fcons (Fcons (list1 (Qx), Qt), fallback); +#endif + set_specifier_fallback (Vscrollbar_on_left_p, fallback); + } + + set_specifier_caching (Vscrollbar_on_left_p, + slot_offset (struct window, + scrollbar_on_left_p), + some_window_value_changed, + slot_offset (struct frame, + scrollbar_on_left_p), + frame_size_slipped); + + DEFVAR_SPECIFIER ("scrollbar-on-top-p", &Vscrollbar_on_top_p /* +*Whether the verical scrollbar is on the top side of window or frame. +This is a specifier; use `set-specifier' to change it. +*/ ); + Vscrollbar_on_top_p = Fmake_specifier (Qboolean); + set_specifier_fallback (Vscrollbar_on_top_p, + list1 (Fcons (Qnil, Qnil))); + set_specifier_caching (Vscrollbar_on_top_p, + slot_offset (struct window, + scrollbar_on_top_p), + some_window_value_changed, + slot_offset (struct frame, + scrollbar_on_top_p), frame_size_slipped); } Index: src/window.c =================================================================== RCS file: /var/cvsroot/ntxemacs/src/window.c,v retrieving revision 1.1.1.12 diff -u -r1.1.1.12 window.c --- src/window.c 1998/05/03 17:49:35 1.1.1.12 +++ src/window.c 1998/05/09 07:06:43 @@ -157,6 +157,10 @@ #ifdef HAVE_SCROLLBARS ((markobj) (window->scrollbar_width)); ((markobj) (window->scrollbar_height)); + ((markobj) (window->horizontal_scrollbar_visible_p)); + ((markobj) (window->vertical_scrollbar_visible_p)); + ((markobj) (window->scrollbar_on_left_p)); + ((markobj) (window->scrollbar_on_top_p)); ((markobj) (window->scrollbar_pointer)); #endif /* HAVE_SCROLLBARS */ ((markobj) (window->left_margin_width)); @@ -310,6 +314,10 @@ #ifdef HAVE_SCROLLBARS p->scrollbar_width = Qnil; p->scrollbar_height = Qnil; + p->horizontal_scrollbar_visible_p = Qnil; + p->vertical_scrollbar_visible_p = Qnil; + p->scrollbar_on_left_p = Qnil; + p->scrollbar_on_top_p = Qnil; #endif p->left_margin_width = Qnil; p->right_margin_width = Qnil; @@ -772,7 +780,7 @@ { #ifdef HAVE_SCROLLBARS return (!window_scrollbar_width (w) && - ((XFRAME (w->frame)->scrollbar_on_left) ? + (!NILP (w->scrollbar_on_left_p) ? !window_is_leftmost (w) : !window_is_rightmost (w))); #else @@ -786,7 +794,8 @@ #ifdef HAVE_SCROLLBARS if (!WINDOW_WIN_P (w) || MINI_WINDOW_P (w) - || NILP (w->buffer)) + || NILP (w->buffer) + || NILP (w->vertical_scrollbar_visible_p)) /* #### when does NILP (w->buffer) happen? */ return 0; @@ -805,6 +814,7 @@ if (!WINDOW_WIN_P (w) || MINI_WINDOW_P (w) || NILP (w->buffer) + || NILP (w->horizontal_scrollbar_visible_p) || !window_truncation_on (w)) return 0; @@ -997,7 +1007,7 @@ return 0; #ifdef HAVE_SCROLLBARS - if (XFRAME (w->frame)->scrollbar_on_top) + if (!NILP (w->scrollbar_on_top_p)) return window_scrollbar_height (w) + toolbar_height; else #endif @@ -1016,7 +1026,7 @@ window_modeline_height (w) + window_bottom_toolbar_height (w); #ifdef HAVE_SCROLLBARS - if (!XFRAME (w->frame)->scrollbar_on_top) + if (NILP (w->scrollbar_on_top_p)) return window_scrollbar_height (w) + other_height; else #endif @@ -1062,7 +1072,7 @@ return 0; #ifdef HAVE_SCROLLBARS - if (XFRAME (w->frame)->scrollbar_on_left) + if (!NILP (w->scrollbar_on_left_p)) { #endif return (window_left_right_gutter_width_internal (w, modeline) + @@ -1081,7 +1091,7 @@ return 0; #ifdef HAVE_SCROLLBARS - if (!XFRAME (w->frame)->scrollbar_on_left) + if (NILP (w->scrollbar_on_left_p)) { return (window_left_right_gutter_width_internal (w, modeline) + window_right_toolbar_width (w)); @@ -4537,6 +4547,10 @@ #ifdef HAVE_SCROLLBARS Lisp_Object scrollbar_width; Lisp_Object scrollbar_height; + Lisp_Object horizontal_scrollbar_visible_p; + Lisp_Object vertical_scrollbar_visible_p; + Lisp_Object scrollbar_on_left_p; + Lisp_Object scrollbar_on_top_p; Lisp_Object scrollbar_pointer; #endif /* HAVE_SCROLLBARS */ #ifdef HAVE_TOOLBARS @@ -4676,6 +4690,10 @@ #ifdef HAVE_SCROLLBARS EQ(win1->scrollbar_width, win2->scrollbar_width) && EQ(win1->scrollbar_height, win2->scrollbar_height) && + EQ(win1->horizontal_scrollbar_visible_p, win2->horizontal_scrollbar_visible_p) && + EQ(win1->vertical_scrollbar_visible_p, win2->vertical_scrollbar_visible_p) && + EQ(win1->scrollbar_on_left_p, win2->scrollbar_on_left_p) && + EQ(win1->scrollbar_on_top_p, win2->scrollbar_on_top_p) && EQ(win1->scrollbar_pointer, win2->scrollbar_pointer) && #endif /* HAVE_SCROLLBARS */ #ifdef HAVE_TOOLBARS @@ -4995,6 +5013,10 @@ #ifdef HAVE_SCROLLBARS w->scrollbar_width = p->scrollbar_width; w->scrollbar_height = p->scrollbar_height; + w->horizontal_scrollbar_visible_p = p->horizontal_scrollbar_visible_p; + w->vertical_scrollbar_visible_p = p->vertical_scrollbar_visible_p; + w->scrollbar_on_left_p = p->scrollbar_on_left_p; + w->scrollbar_on_top_p = p->scrollbar_on_top_p; w->scrollbar_pointer = p->scrollbar_pointer; #endif /* HAVE_SCROLLBARS */ #ifdef HAVE_TOOLBARS @@ -5256,6 +5278,10 @@ #ifdef HAVE_SCROLLBARS p->scrollbar_width = w->scrollbar_width; p->scrollbar_height = w->scrollbar_height; + p->horizontal_scrollbar_visible_p = w->horizontal_scrollbar_visible_p; + p->vertical_scrollbar_visible_p = w->vertical_scrollbar_visible_p; + p->scrollbar_on_left_p = w->scrollbar_on_left_p; + p->scrollbar_on_top_p = w->scrollbar_on_top_p; p->scrollbar_pointer = w->scrollbar_pointer; #endif /* HAVE_SCROLLBARS */ #ifdef HAVE_TOOLBARS Index: src/window.h =================================================================== RCS file: /var/cvsroot/ntxemacs/src/window.h,v retrieving revision 1.1.1.4 diff -u -r1.1.1.4 window.h --- src/window.h 1998/04/05 13:08:13 1.1.1.4 +++ src/window.h 1998/05/09 05:15:49 @@ -194,6 +194,12 @@ Lisp_Object scrollbar_width; /* Height of horizontal scrollbars. */ Lisp_Object scrollbar_height; + /* Whether the scrollbars are visible */ + Lisp_Object horizontal_scrollbar_visible_p; + Lisp_Object vertical_scrollbar_visible_p; + /* Scrollbar positions */ + Lisp_Object scrollbar_on_left_p; + Lisp_Object scrollbar_on_top_p; /* Pointer to use for vertical and horizontal scrollbars. */ Lisp_Object scrollbar_pointer; #endif /* HAVE_SCROLLBARS */