aboutsummaryrefslogtreecommitdiffstats
path: root/lispref
diff options
context:
space:
mode:
authorRichard M. Stallman2005-08-09 23:29:57 +0000
committerRichard M. Stallman2005-08-09 23:29:57 +0000
commit1e2e2829f336e3ca68f0001711178f4f9ee586b4 (patch)
treee631c10caf37b00e226ad149432941a6703c0cdb /lispref
parenta11c921564a2630ddffd49e16f72f1803df2bae0 (diff)
downloademacs-1e2e2829f336e3ca68f0001711178f4f9ee586b4.tar.gz
emacs-1e2e2829f336e3ca68f0001711178f4f9ee586b4.zip
(Window Frame Parameters): Node split up.
(Basic Parameters, Position Parameters, Size Parameters) (Layout Parameters, Buffer Parameters, Management Parameters) (Cursor Parameters, Color Parameters): New subnodes.
Diffstat (limited to 'lispref')
-rw-r--r--lispref/frames.texi309
1 files changed, 192 insertions, 117 deletions
diff --git a/lispref/frames.texi b/lispref/frames.texi
index 827f98d24c2..d7412272666 100644
--- a/lispref/frames.texi
+++ b/lispref/frames.texi
@@ -310,14 +310,31 @@ Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}.
310@node Window Frame Parameters 310@node Window Frame Parameters
311@subsection Window Frame Parameters 311@subsection Window Frame Parameters
312 312
313 Just what parameters a frame has depends on what display mechanism it 313 Just what parameters a frame has depends on what display mechanism
314uses. Here is a table of the parameters that have special meanings in a 314it uses. This section describes the parameters that have special
315window frame; of these, @code{name}, @code{title}, @code{height}, 315meanings on some or all kinds of terminals. Of these, @code{name},
316@code{width}, @code{buffer-list} and @code{buffer-predicate} provide 316@code{title}, @code{height}, @code{width}, @code{buffer-list} and
317meaningful information in terminal frames, and @code{tty-color-mode} 317@code{buffer-predicate} provide meaningful information in terminal
318is meaningful @emph{only} in terminal frames. Frame parameter whose 318frames, and @code{tty-color-mode} is meaningful @emph{only} in
319values measured in pixels, when used on text-only terminals, count 319terminal frames.
320characters or lines instead. 320
321@menu
322* Basic Parameters:: Parameters that are fundamental.
323* Position Parameters:: The position of the frame on the screen.
324* Size Parameters:: Frame's size.
325* Layout Parameters:: Size of parts of the frame, and
326 enabling or disabling some parts.
327* Buffer Parameters:: Which buffers have been or should be shown.
328* Management Parameters:: Communicating with the window manager.
329* Cursor Parameters:: Controlling the cursor appearance.
330* Color Parameters:: Colors of various parts of the frame.
331@end menu
332
333@node Basic Parameters
334@subsubsection Basic Parameters
335
336 These frame parameters give the most basic information about the
337frame. @code{title} and @code{name} are meaningful on all terminals.
321 338
322@table @code 339@table @code
323@item display 340@item display
@@ -325,6 +342,11 @@ The display on which to open this frame. It should be a string of the
325form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the 342form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the
326@code{DISPLAY} environment variable. 343@code{DISPLAY} environment variable.
327 344
345@item display-type
346This parameter describes the range of possible colors that can be used
347in this frame. Its value is @code{color}, @code{grayscale} or
348@code{mono}.
349
328@item title 350@item title
329If a frame has a non-@code{nil} title, it appears in the window system's 351If a frame has a non-@code{nil} title, it appears in the window system's
330border for the frame, and also in the mode line of windows in that frame 352border for the frame, and also in the mode line of windows in that frame
@@ -342,7 +364,15 @@ you don't specify a name, Emacs sets the frame name automatically
342If you specify the frame name explicitly when you create the frame, the 364If you specify the frame name explicitly when you create the frame, the
343name is also used (instead of the name of the Emacs executable) when 365name is also used (instead of the name of the Emacs executable) when
344looking up X resources for the frame. 366looking up X resources for the frame.
367@end table
368
369@node Position Parameters
370@subsubsection Position Parameters
371
372 Position parameters' values are normally measured in pixels, but on
373text-only terminals they count characters or lines instead.
345 374
375@table @code
346@item left 376@item left
347The screen position of the left edge, in pixels, with respect to the 377The screen position of the left edge, in pixels, with respect to the
348left edge of the screen. The value may be a positive number @var{pos}, 378left edge of the screen. The value may be a positive number @var{pos},
@@ -397,7 +427,15 @@ When you call @code{make-frame}, you should specify a non-@code{nil}
397value for this parameter if the values of the @code{left} and @code{top} 427value for this parameter if the values of the @code{left} and @code{top}
398parameters represent the user's stated preference; otherwise, use 428parameters represent the user's stated preference; otherwise, use
399@code{nil}. 429@code{nil}.
430@end table
431
432@node Size Parameters
433@subsubsection Size Parameters
434
435 Size parameters' values are normally measured in pixels, but on
436text-only terminals they count characters or lines instead.
400 437
438@table @code
401@item height 439@item height
402The height of the frame contents, in characters. (To get the height in 440The height of the frame contents, in characters. (To get the height in
403pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.) 441pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
@@ -417,14 +455,76 @@ The value @code{fullwidth} specifies that width shall be the size of the
417screen. The value @code{fullheight} specifies that height shall be the 455screen. The value @code{fullheight} specifies that height shall be the
418size of the screen. The value @code{fullboth} specifies that both the 456size of the screen. The value @code{fullboth} specifies that both the
419width and the height shall be set to the size of the screen. 457width and the height shall be set to the size of the screen.
458@end table
420 459
421@item window-id 460@node Layout Parameters
422The number of the window-system window used by the frame 461@subsubsection Layout Parameters
423to contain the actual Emacs windows.
424 462
425@item outer-window-id 463 These frame parameters enable or disable various parts of the
426The number of the outermost window-system window used for the whole frame. 464frame, or control their sizes.
465
466@table @code
467@item border-width
468The width in pixels of the window border.
469
470@item internal-border-width
471The distance in pixels between text and border.
472
473@item vertical-scroll-bars
474Whether the frame has scroll bars for vertical scrolling, and which side
475of the frame they should be on. The possible values are @code{left},
476@code{right}, and @code{nil} for no scroll bars.
477
478@ignore
479@item horizontal-scroll-bars
480Whether the frame has scroll bars for horizontal scrolling
481(non-@code{nil} means yes). Horizontal scroll bars are not currently
482implemented.
483@end ignore
484
485@item scroll-bar-width
486The width of vertical scroll bars, in pixels, or @code{nil} meaning to
487use the default width.
488
489@item left-fringe
490@itemx right-fringe
491The default width of the left and right fringes of windows in this
492frame (@pxref{Fringes}). If either of these is zero, that effectively
493removes the corresponding fringe. A value of @code{nil} stands for
494the standard fringe width, which is the width needed to display the
495fringe bitmaps.
496
497The combined fringe widths must add up to an integral number of
498columns, so the actual default fringe widths for the frame may be
499larger than the specified values. The extra width needed to reach an
500acceptable total is distributed evenly between the left and right
501fringe. However, you can force one fringe or the other to a precise
502width by specifying that width as a negative integer. If both widths are
503negative, only the left fringe gets the specified width.
504
505@item menu-bar-lines
506The number of lines to allocate at the top of the frame for a menu
507bar. The default is 1. A value of @code{nil} means don't display a
508menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
509menu bar line; they treat larger values as 1.)
427 510
511@item tool-bar-lines
512The number of lines to use for the tool bar. A value of @code{nil}
513means don't display a tool bar. (GTK allows at most one tool bar line;
514it treats larger values as 1.)
515
516@item line-spacing
517Additional space to leave below each text line, in pixels (a positive
518integer)
519@end table
520
521@node Buffer Parameters
522@subsubsection Buffer Parameters
523
524 These frame parameters, meaningful on all kinds of terminals, deal
525with which buffers have been, or should, be displayed in the frame.
526
527@table @code
428@item minibuffer 528@item minibuffer
429Whether this frame has its own minibuffer. The value @code{t} means 529Whether this frame has its own minibuffer. The value @code{t} means
430yes, @code{nil} means no, @code{only} means this frame is just a 530yes, @code{nil} means no, @code{only} means this frame is just a
@@ -443,26 +543,28 @@ considers that buffer.
443A list of buffers that have been selected in this frame, 543A list of buffers that have been selected in this frame,
444ordered most-recently-selected first. 544ordered most-recently-selected first.
445 545
546@item unsplittable
547If non-@code{nil}, this frame's window is never split automatically.
548@end table
549
550@node Management Parameters
551@subsubsection Window Management Parameters
552
553 These frame parameters, meaningful only on window system displays,
554interact with the window manager.
555
556@table @code
557@item visibility
558The state of visibility of the frame. There are three possibilities:
559@code{nil} for invisible, @code{t} for visible, and @code{icon} for
560iconified. @xref{Visibility of Frames}.
561
446@item auto-raise 562@item auto-raise
447Whether selecting the frame raises it (non-@code{nil} means yes). 563Whether selecting the frame raises it (non-@code{nil} means yes).
448 564
449@item auto-lower 565@item auto-lower
450Whether deselecting the frame lowers it (non-@code{nil} means yes). 566Whether deselecting the frame lowers it (non-@code{nil} means yes).
451 567
452@item vertical-scroll-bars
453Whether the frame has scroll bars for vertical scrolling, and which side
454of the frame they should be on. The possible values are @code{left},
455@code{right}, and @code{nil} for no scroll bars.
456
457@item horizontal-scroll-bars
458Whether the frame has scroll bars for horizontal scrolling
459(non-@code{nil} means yes). (Horizontal scroll bars are not currently
460implemented.)
461
462@item scroll-bar-width
463The width of the vertical scroll bar, in pixels,
464or @code{nil} meaning to use the default width.
465
466@item icon-type 568@item icon-type
467The type of icon to use for this frame when it is iconified. If the 569The type of icon to use for this frame when it is iconified. If the
468value is a string, that specifies a file containing a bitmap to use. 570value is a string, that specifies a file containing a bitmap to use.
@@ -473,29 +575,35 @@ picture of a gnu); @code{nil} specifies a text icon.
473The name to use in the icon for this frame, when and if the icon 575The name to use in the icon for this frame, when and if the icon
474appears. If this is @code{nil}, the frame's title is used. 576appears. If this is @code{nil}, the frame's title is used.
475 577
476@item background-mode 578@item window-id
477This parameter is either @code{dark} or @code{light}, according 579The number of the window-system window used by the frame
478to whether the background color is a light one or a dark one. 580to contain the actual Emacs windows.
479 581
480@item tty-color-mode 582@item outer-window-id
481@cindex standard colors for character terminals 583The number of the outermost window-system window used for the whole frame.
482This parameter overrides the terminal's color support as given by the
483system's terminal capabilities database in that this parameter's value
484specifies the color mode to use in terminal frames. The value can be
485either a symbol or a number. A number specifies the number of colors
486to use (and, indirectly, what commands to issue to produce each
487color). For example, @code{(tty-color-mode . 8)} forces Emacs to use
488the ANSI escape sequences for 8 standard text colors; and a value of
489-1 means Emacs should turn off color support. If the parameter's
490value is a symbol, that symbol is looked up in the alist
491@code{tty-color-mode-alist}, and if found, the associated number is
492used as the color support mode.
493 584
494@item display-type 585@item wait-for-wm
495This parameter describes the range of possible colors that can be used 586If non-@code{nil}, tell Xt to wait for the window manager to confirm
496in this frame. Its value is @code{color}, @code{grayscale} or 587geometry changes. Some window managers, including versions of Fvwm2
497@code{mono}. 588and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
589prevent hanging with those window managers.
590
591@ignore
592@item parent-id
593@c ??? Not yet working.
594The X window number of the window that should be the parent of this one.
595Specifying this lets you create an Emacs window inside some other
596application's window. (It is not certain this will be implemented; try
597it and see if it works.)
598@end ignore
599@end table
600
601@node Cursor Parameters
602@subsubsection Cursor Parameters
498 603
604 This frame parameter controls the way the cursor looks.
605
606@table @code
499@item cursor-type 607@item cursor-type
500How to display the cursor. Legitimate values are: 608How to display the cursor. Legitimate values are:
501 609
@@ -515,52 +623,51 @@ Display a horizontal bar.
515@item (hbar . @var{height}) 623@item (hbar . @var{height})
516Display a horizontal bar @var{height} pixels high. 624Display a horizontal bar @var{height} pixels high.
517@end table 625@end table
626@end table
518 627
519@vindex cursor-type 628@vindex cursor-type
520The buffer-local variable @code{cursor-type} overrides the value of 629The buffer-local variable @code{cursor-type} overrides the value of
521the @code{cursor-type} frame parameter, but if it is @code{t}, that 630the @code{cursor-type} frame parameter, but if it is @code{t}, that
522means to use the cursor specified for the frame. 631means to use the cursor specified for the frame.
523 632
524@item border-width 633@defvar blink-cursor-alist
525The width in pixels of the window border. 634This variable specifies how to blink the cursor. Each element has the
635form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
636type equals @var{on-state} (comparing using @code{equal}), the
637corresponding @var{off-state} specifies what the cursor looks like
638when it blinks ``off''. Both @var{on-state} and @var{off-state}
639should be suitable values for the @code{cursor-type} frame parameter.
640
641There are various defaults for how to blink each type of cursor, if
642the type is not mentioned as an @var{on-state} here. Changes in this
643variable do not take effect immediately, because the variable is
644examined only when you specify the @code{cursor-type} parameter.
645@end defvar
526 646
527@item internal-border-width 647@node Color Parameters
528The distance in pixels between text and border. 648@subsubsection Color Parameters
529 649
530@item left-fringe 650 These frame parameters control the use of colors.
531@itemx right-fringe
532The default width of the left and right fringes of windows in this
533frame (@pxref{Fringes}). If either of these is zero, that effectively
534removes the corresponding fringe. A value of @code{nil} stands for
535the standard fringe width, which is the width needed to display the
536fringe bitmaps.
537 651
538The combined fringe widths must add up to an integral number of 652@table @code
539columns, so the actual default fringe widths for the frame may be 653@item background-mode
540larger than the specified values. The extra width needed to reach an 654This parameter is either @code{dark} or @code{light}, according
541acceptable total is distributed evenly between the left and right 655to whether the background color is a light one or a dark one.
542fringe. However, you can force one fringe or the other to a precise
543width by specifying that width as a negative integer. If both widths are
544negative, only the left fringe gets the specified width.
545
546@item unsplittable
547If non-@code{nil}, this frame's window is never split automatically.
548 656
549@item visibility 657@item tty-color-mode
550The state of visibility of the frame. There are three possibilities: 658@cindex standard colors for character terminals
551@code{nil} for invisible, @code{t} for visible, and @code{icon} for 659This parameter overrides the terminal's color support as given by the
552iconified. @xref{Visibility of Frames}. 660system's terminal capabilities database in that this parameter's value
661specifies the color mode to use in terminal frames. The value can be
662either a symbol or a number. A number specifies the number of colors
663to use (and, indirectly, what commands to issue to produce each
664color). For example, @code{(tty-color-mode . 8)} specifies use of the
665ANSI escape sequences for 8 standard text colors. A value of -1 turns
666off color support.
553 667
554@item menu-bar-lines 668If the parameter's value is a symbol, it specifies a number through
555The number of lines to allocate at the top of the frame for a menu 669the value of @code{tty-color-mode-alist}, and the associated number is
556bar. The default is 1. A value of @code{nil} means don't display a 670used instead.
557menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one
558menu bar line; they treat larger values as 1.)
559
560@item tool-bar-lines
561The number of lines to use for the tool bar. A value of @code{nil}
562means don't display a tool bar. (GTK allows at most one tool bar line;
563it treats larger values as 1.)
564 671
565@item screen-gamma 672@item screen-gamma
566@cindex gamma correction 673@cindex gamma correction
@@ -580,40 +687,8 @@ If your monitor displays colors too light, you should specify a
580@code{screen-gamma} value smaller than 2.2. This requests correction 687@code{screen-gamma} value smaller than 2.2. This requests correction
581that makes colors darker. A screen gamma value of 1.5 may give good 688that makes colors darker. A screen gamma value of 1.5 may give good
582results for LCD color displays. 689results for LCD color displays.
583
584@item line-spacing
585Additional space put below text lines, in pixels (a positive integer)
586
587@item wait-for-wm
588If non-@code{nil}, tell Xt to wait for the window manager to confirm
589geometry changes. Some window managers, including versions of Fvwm2
590and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to
591prevent hanging with those window managers.
592
593@ignore
594@item parent-id
595@c ??? Not yet working.
596The X window number of the window that should be the parent of this one.
597Specifying this lets you create an Emacs window inside some other
598application's window. (It is not certain this will be implemented; try
599it and see if it works.)
600@end ignore
601@end table 690@end table
602 691
603@defvar blink-cursor-alist
604This variable specifies how to blink the cursor. Each element has the
605form @code{(@var{on-state} . @var{off-state})}. Whenever the cursor
606type equals @var{on-state} (comparing using @code{equal}), Emacs uses
607@var{off-state} to specify what the cursor looks like when it blinks
608``off''. Both @var{on-state} and @var{off-state} should be suitable
609values for the @code{cursor-type} frame parameter.
610
611There are various defaults for how to blink each type of cursor,
612if the type is not mentioned as an @var{on-state} here. Changes
613in this variable do not take effect immediately, because the variable
614is examined only when you specify a cursor type for a frame.
615@end defvar
616
617These frame parameters are semi-obsolete in that they are automatically 692These frame parameters are semi-obsolete in that they are automatically
618equivalent to particular face attributes of particular faces. 693equivalent to particular face attributes of particular faces.
619 694
@@ -1150,7 +1225,7 @@ they are currently being displayed or not, and this function returns
1150@end defun 1225@end defun
1151 1226
1152 The visibility status of a frame is also available as a frame 1227 The visibility status of a frame is also available as a frame
1153parameter. You can read or change it as such. @xref{Window Frame 1228parameter. You can read or change it as such. @xref{Management
1154Parameters}. 1229Parameters}.
1155 1230
1156 The user can iconify and deiconify frames with the window manager. 1231 The user can iconify and deiconify frames with the window manager.
@@ -1195,7 +1270,7 @@ that the minibuffer window is in.
1195 1270
1196You can also enable auto-raise (raising automatically when a frame is 1271You can also enable auto-raise (raising automatically when a frame is
1197selected) or auto-lower (lowering automatically when it is deselected) 1272selected) or auto-lower (lowering automatically when it is deselected)
1198for any frame using frame parameters. @xref{Window Frame Parameters}. 1273for any frame using frame parameters. @xref{Management Parameters}.
1199 1274
1200@node Frame Configurations 1275@node Frame Configurations
1201@section Frame Configurations 1276@section Frame Configurations
@@ -1504,7 +1579,7 @@ is over mouse-sensitive text.
1504 These variables affect newly created frames. They do not normally 1579 These variables affect newly created frames. They do not normally
1505affect existing frames; however, if you set the mouse color of a frame, 1580affect existing frames; however, if you set the mouse color of a frame,
1506that also updates its pointer shapes based on the current values of 1581that also updates its pointer shapes based on the current values of
1507these variables. @xref{Window Frame Parameters}. 1582these variables. @xref{Color Parameters}.
1508 1583
1509 The values you can use, to specify either of these pointer shapes, are 1584 The values you can use, to specify either of these pointer shapes, are
1510defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos 1585defined in the file @file{lisp/term/x-win.el}. Use @kbd{M-x apropos