diff options
author | Richard M. Stallman <rms@gnu.org> | 1996-09-21 01:14:57 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1996-09-21 01:14:57 +0000 |
commit | cf75bcd807ef5482c524dceada0badbf5cbe58c6 (patch) | |
tree | 356def5875737a9300d8b9c96fe7d2578bc10cb0 /src/xfns.c | |
parent | c49fdd0e6223eb6c20d4d665a4bd3123e0616d54 (diff) | |
download | emacs-cf75bcd807ef5482c524dceada0badbf5cbe58c6.tar.gz |
(Fx_create_frame): Default Qvertical_scroll_bars to `left'.
Add the symbol `right'; this symbol is used to indicate
that a right-side scroll bar is wanted.
(x_set_vertical_scroll_bars): Check for left<->right<->none
scroll bar changes, and modify the vertical scroll bar type as appropriate.
(x_figure_window_size): Use new SET_FRAME_WIDTH macro.
(Fx_create_frame): Likewise.
(Fx_horizontal_line): Use new macro WINDOW_LEFT_MARGIN.
Diffstat (limited to 'src/xfns.c')
-rw-r--r-- | src/xfns.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/src/xfns.c b/src/xfns.c index 6908d3c4c51..235081fa3fc 100644 --- a/src/xfns.c +++ b/src/xfns.c @@ -179,6 +179,7 @@ Lisp_Object Qicon_type; Lisp_Object Qicon_name; Lisp_Object Qinternal_border_width; Lisp_Object Qleft; +Lisp_Object Qright; Lisp_Object Qmouse_color; Lisp_Object Qnone; Lisp_Object Qparent_id; @@ -1939,9 +1940,17 @@ x_set_vertical_scroll_bars (f, arg, oldval) struct frame *f; Lisp_Object arg, oldval; { - if (NILP (arg) != ! FRAME_HAS_VERTICAL_SCROLL_BARS (f)) + if ((EQ (arg, Qleft) && FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT (f)) + || (EQ (arg, Qright) && FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT (f)) + || (NILP (arg) && FRAME_HAS_VERTICAL_SCROLL_BARS (f)) + || (!NILP (arg) && ! FRAME_HAS_VERTICAL_SCROLL_BARS (f))) { - FRAME_HAS_VERTICAL_SCROLL_BARS (f) = ! NILP (arg); + FRAME_VERTICAL_SCROLL_BAR_TYPE (f) + = (NILP (arg) + ? vertical_scroll_bar_none + : EQ (Qright, arg) + ? vertical_scroll_bar_right + : vertical_scroll_bar_left); /* We set this parameter before creating the X window for the frame, so we can get the geometry right from the start. @@ -2354,7 +2363,7 @@ x_figure_window_size (f, parms) /* Default values if we fall through. Actually, if that happens we should get window manager prompting. */ - f->width = DEFAULT_COLS; + SET_FRAME_WIDTH (f, DEFAULT_COLS); f->height = DEFAULT_ROWS; /* Window managers expect that if program-specified positions are not (0,0), they're intentional, not defaults. */ @@ -2374,7 +2383,7 @@ x_figure_window_size (f, parms) if (!EQ (tem1, Qunbound)) { CHECK_NUMBER (tem1, 0); - f->width = XINT (tem1); + SET_FRAME_WIDTH (f, XINT (tem1)); } if (!NILP (tem2) && !EQ (tem2, Qunbound)) window_prompting |= USSize; @@ -3195,7 +3204,7 @@ This function is an internal primitive--use `make-frame' instead.") } x_default_parameter (f, parms, Qinternal_border_width, make_number (2), "internalBorderWidth", "BorderWidth", number); - x_default_parameter (f, parms, Qvertical_scroll_bars, Qt, + x_default_parameter (f, parms, Qvertical_scroll_bars, Qleft, "verticalScrollBars", "ScrollBars", boolean); /* Also do the stuff which must be set before the window exists. */ @@ -3265,7 +3274,8 @@ This function is an internal primitive--use `make-frame' instead.") f->height. */ width = f->width; height = f->height; - f->height = f->width = 0; + f->height = 0; + SET_FRAME_WIDTH (f, 0); change_frame_size (f, height, width, 1, 0); /* Tell the server what size and position, etc, we want, @@ -4374,7 +4384,7 @@ DEFUN ("x-horizontal-line", Fx_horizontal_line, Sx_horizontal_line, 1, 1, "e", register int line = (x_mouse_y + 1) * f->output_data.x->line_height + f->output_data.x->internal_border_width; register int left = f->output_data.x->internal_border_width - + (w->left + + (WINDOW_LEFT_MARGIN (w) * FONT_WIDTH (f->output_data.x->font)); register int right = left + (w->width * FONT_WIDTH (f->output_data.x->font)) @@ -5074,6 +5084,8 @@ syms_of_xfns () staticpro (&Qinternal_border_width); Qleft = intern ("left"); staticpro (&Qleft); + Qright = intern ("right"); + staticpro (&Qright); Qmouse_color = intern ("mouse-color"); staticpro (&Qmouse_color); Qnone = intern ("none"); |