aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim F. Storm2004-09-29 12:39:43 +0000
committerKim F. Storm2004-09-29 12:39:43 +0000
commit90801c687bf41d074a37cf5636160ecbed004f48 (patch)
treeaf2488fedfcd1924df07e458a68de6d0a40091b2
parentf2a54fbc7a0e8cafd720d646f3fb3eea4b6349ca (diff)
downloademacs-90801c687bf41d074a37cf5636160ecbed004f48.tar.gz
emacs-90801c687bf41d074a37cf5636160ecbed004f48.zip
(Fringe Bitmaps): Use symbols rather than numbers
to identify bitmaps. Remove -fringe-bitmap suffix for standard fringe bitmap symbols, as they now have their own namespace. (Customizing Bitmaps) <define-fringe-bitmap>: Clarify bit ordering vs. pixels. Signal error if no free bitmap slots. (Pixel Specification): Change IMAGE to @var{image}.
-rw-r--r--lispref/display.texi84
1 files changed, 27 insertions, 57 deletions
diff --git a/lispref/display.texi b/lispref/display.texi
index 2163ae725af..00b91fe1fd8 100644
--- a/lispref/display.texi
+++ b/lispref/display.texi
@@ -2615,73 +2615,49 @@ fringe.
2615fringe (on a graphic display) to indicate truncated or continued 2615fringe (on a graphic display) to indicate truncated or continued
2616lines, buffer boundaries, overlay arrow, etc. The fringe bitmaps are 2616lines, buffer boundaries, overlay arrow, etc. The fringe bitmaps are
2617shared by all frames and windows. You can redefine the built-in 2617shared by all frames and windows. You can redefine the built-in
2618fringe bitmaps, and you can define new fringe bitmaps. However, Emacs 2618fringe bitmaps, and you can define new fringe bitmaps.
2619can handle only 255 different fringe bitmaps.
2620 2619
2621 The way to display a bitmap in the left or right fringes for a given 2620 The way to display a bitmap in the left or right fringes for a given
2622line in a window is by specifying the @code{display} property for one 2621line in a window is by specifying the @code{display} property for one
2623of the characters that appears in it. Use a display specification of 2622of the characters that appears in it. Use a display specification of
2624the form @code{(left-fringe @var{bitmap} [@var{face}])} or 2623the form @code{(left-fringe @var{bitmap} [@var{face}])} or
2625@code{(right-fringe @var{bitmap} [@var{face}])} (@pxref{Display 2624@code{(right-fringe @var{bitmap} [@var{face}])} (@pxref{Display
2626Property}). Here, @var{bitmap} is an integer identifying the bitmap 2625Property}). Here, @var{bitmap} is a symbol identifying the bitmap
2627you want, and @var{face} (which is optional) is the name of the face 2626you want, and @var{face} (which is optional) is the name of the face
2628whose colors should be used for displaying the bitmap. 2627whose colors should be used for displaying the bitmap.
2629@c ??? Shouldn't the symbol name be used?
2630 2628
2631 These are the symbols identify the standard fringe bitmaps. 2629 These are the symbols identify the standard fringe bitmaps.
2632Evaluate @code{(require 'fringe)} to define them. Each symbol's 2630Evaluate @code{(require 'fringe)} to define them. Fringe bitmap
2633value is an integer that identifies the corresponding bitmap. 2631symbols have their own name space.
2634 2632
2635@table @asis 2633@table @asis
2636@item Truncation and continuation line bitmaps: 2634@item Truncation and continuation line bitmaps:
2637@code{left-truncation-fringe-bitmap}, 2635@code{left-truncation}, @code{right-truncation},
2638@code{right-truncation-fringe-bitmap}, 2636@code{continued-line}, @code{continuation-line}.
2639@code{continued-line-fringe-bitmap},
2640@code{continuation-line-fringe-bitmap}.
2641 2637
2642@item Buffer indication bitmaps: 2638@item Buffer indication bitmaps:
2643@code{up-arrow-fringe-bitmap}, 2639@code{up-arrow}, @code{down-arrow},
2644@code{down-arrow-fringe-bitmap}, 2640@code{top-left-angle}, @code{top-right-angle},
2645@code{top-left-angle-fringe-bitmap}, 2641@code{bottom-left-angle}, @code{bottom-right-angle},
2646@code{top-right-angle-fringe-bitmap}, 2642@code{left-bracket}, @code{right-bracket}.
2647@code{bottom-left-angle-fringe-bitmap},
2648@code{bottom-right-angle-fringe-bitmap},
2649@code{left-bracket-fringe-bitmap},
2650@code{right-bracket-fringe-bitmap}.
2651 2643
2652@item Empty line indication bitmap: 2644@item Empty line indication bitmap:
2653@code{empty-line-fringe-bitmap}. 2645@code{empty-line}.
2654 2646
2655@item Overlay arrow bitmap: 2647@item Overlay arrow bitmap:
2656@code{overlay-arrow-fringe-bitmap}. 2648@code{overlay-arrow}.
2657 2649
2658@item Bitmaps for displaying the cursor in right fringe: 2650@item Bitmaps for displaying the cursor in right fringe:
2659@code{filled-box-cursor-fringe-bitmap}, 2651@code{filled-box-cursor}, @code{hollow-box-cursor}, @code{hollow-square},
2660@code{hollow-box-cursor-fringe-bitmap}, 2652@code{bar-cursor}, @code{hbar-cursor}.
2661@code{hollow-square-fringe-bitmap}, @code{bar-cursor-fringe-bitmap},
2662@code{hbar-cursor-fringe-bitmap}.
2663
2664@item Value indicating that no fringe bitmap is present:
2665@code{no-fringe-bitmap}.
2666@c ??? I don't understand what that means.
2667@c ??? Where would you find that value?
2668
2669@item Value indicating a reference to an undefined bitmap:
2670@code{undef-fringe-bitmap}.
2671@c ??? I don't understand what that means.
2672@c ??? Where would you find that value?
2673@end table 2653@end table
2674 2654
2675@defun fringe-bitmaps-at-pos &optional pos window 2655@defun fringe-bitmaps-at-pos &optional pos window
2676This function returns the fringe bitmaps of the display line 2656This function returns the fringe bitmaps of the display line
2677containing position @var{pos} in window @var{window}. The return 2657containing position @var{pos} in window @var{window}. The return
2678value has the form @code{(@var{left} . @var{right})}, where @var{left} 2658value has the form @code{(@var{left} . @var{right})}, where @var{left}
2679is a list of fringe bitmap numbers for left fringe, and @var{right} is 2659is the symbol for the fringe bitmap in the left fringe (or @code{nil}
2680similar for the right fringe. These bitmap numbers are usually values 2660if no bitmap), and @var{right} is similar for the right fringe.
2681of symbols such as the ones listed above.
2682
2683@c ??? Why not return a list of symbols that identify the bitmaps?
2684@c ??? This is Lisp, not C.
2685 2661
2686The value is @code{nil} if @var{pos} is not visible in @var{window}. 2662The value is @code{nil} if @var{pos} is not visible in @var{window}.
2687If @var{window} is @code{nil}, that stands for the selected window. 2663If @var{window} is @code{nil}, that stands for the selected window.
@@ -2692,18 +2668,15 @@ If @var{pos} is @code{nil}, that stands for the value of point in
2692@node Customizing Bitmaps 2668@node Customizing Bitmaps
2693@section Customizing Fringe Bitmaps 2669@section Customizing Fringe Bitmaps
2694 2670
2695@c ??? Why not pass a symbol as the first argument 2671@defun define-fringe-bitmap bitmap bits &optional height width align
2696@c ??? and define that symbol. It would be cleaner. 2672This function defines the symbol @var{bitmap} as a new fringe bitmap,
2697 2673or replaces an existing bitmap with that name.
2698@defun define-fringe-bitmap bits &optional height width align bitmap
2699This function defines a new fringe bitmap, or replaces an existing
2700bitmap.
2701 2674
2702The argument @var{bits} specifies the image to use. It should be 2675The argument @var{bits} specifies the image to use. It should be
2703either a string or a vector of integers, where each element (an 2676either a string or a vector of integers, where each element (an
2704integer) corresponds to one row of the bitmap. Each bit of an integer 2677integer) corresponds to one row of the bitmap. Each bit of an integer
2705corresponds to one pixel of the bitmap. 2678corresponds to one pixel of the bitmap, where the low bit corresponds
2706@c ??? Is the low bit the leftmost or the rightmost bit? 2679to the rightmost pixel of the bitmap.
2707 2680
2708The height is normally the length of @var{bits}. However, you 2681The height is normally the length of @var{bits}. However, you
2709can specify a different height with non-@code{nil} @var{height}. The width 2682can specify a different height with non-@code{nil} @var{height}. The width
@@ -2721,14 +2694,11 @@ If @var{periodic} is non-@code{nil}, it specifies that the rows in
2721@code{bits} should be repeated enough times to reach the specified 2694@code{bits} should be repeated enough times to reach the specified
2722height. 2695height.
2723 2696
2724The argument @var{bitmap} specifies an existing bitmap to redefine.
2725You should pass the value of the symbol that identifies the bitmap.
2726
2727The return value on success is an integer identifying the new bitmap. 2697The return value on success is an integer identifying the new bitmap.
2728You should save that integer in a variable so it can be used to select 2698You should save that integer in a variable so it can be used to select
2729this bitmap. The value can also be @code{nil} of there are no more 2699this bitmap.
2730free bitmap slots. 2700
2731@c ??? Why not signal an error? That would be cleaner. 2701This function signals an error if there are no more free bitmap slots.
2732@end defun 2702@end defun
2733 2703
2734@defun destroy-fringe-bitmap bitmap 2704@defun destroy-fringe-bitmap bitmap
@@ -2954,7 +2924,7 @@ as an absolute number of pixels.
2954 2924
2955@example 2925@example
2956@group 2926@group
2957 @var{expr} ::= @var{num} | (@var{num}) | @var{unit} | @var{elem} | @var{pos} | IMAGE | @var{form} 2927 @var{expr} ::= @var{num} | (@var{num}) | @var{unit} | @var{elem} | @var{pos} | @var{image} | @var{form}
2958 @var{num} ::= @var{integer} | @var{float} | @var{symbol} 2928 @var{num} ::= @var{integer} | @var{float} | @var{symbol}
2959 @var{unit} ::= in | mm | cm | width | height 2929 @var{unit} ::= in | mm | cm | width | height
2960 @var{elem} ::= left-fringe | right-fringe | left-margin | right-margin 2930 @var{elem} ::= left-fringe | right-fringe | left-margin | right-margin
@@ -2973,7 +2943,7 @@ buffer-local variable binding is used.
2973 The @code{in}, @code{mm}, and @code{cm} units specify the number of 2943 The @code{in}, @code{mm}, and @code{cm} units specify the number of
2974pixels per inch, millimeter, and centimeter, respectively. The 2944pixels per inch, millimeter, and centimeter, respectively. The
2975@code{width} and @code{height} units correspond to the default width 2945@code{width} and @code{height} units correspond to the default width
2976and height of the current face. An image specification @code{IMAGE} 2946and height of the current face. An image specification @code{image}
2977corresponds to the width or height of the image. 2947corresponds to the width or height of the image.
2978 2948
2979 The @code{left-fringe}, @code{right-fringe}, @code{left-margin}, 2949 The @code{left-fringe}, @code{right-fringe}, @code{left-margin},
@@ -3003,7 +2973,7 @@ header-line aligns with the first text column in the text area.
3003 A value of the form @code{(@var{num} . @var{expr})} stands 2973 A value of the form @code{(@var{num} . @var{expr})} stands
3004multiplying the values of @var{num} and @var{expr}. For example, 2974multiplying the values of @var{num} and @var{expr}. For example,
3005@code{(2 . in)} specifies a width of 2 inches, while @code{(0.5 . 2975@code{(2 . in)} specifies a width of 2 inches, while @code{(0.5 .
3006IMAGE)} specifies half the width (or height) of the specified image. 2976@var{image})} specifies half the width (or height) of the specified image.
3007 2977
3008 The form @code{(+ @var{expr} ...)} adds up the value of the 2978 The form @code{(+ @var{expr} ...)} adds up the value of the
3009expressions. The form @code{(- @var{expr} ...)} negates or subtracts 2979expressions. The form @code{(- @var{expr} ...)} negates or subtracts