annotate lisp/ruler-mode.el @ 76022:e892213b9815

(w32_set_scroll_bar_thumb): Don't resize scroll-bar handle while dragging, except when we get close to eob. Fix position and size calculations so we don't scroll backwards just by clicking on the handle.
author Kim F. Storm <storm@cua.dk>
date Mon, 19 Feb 2007 14:45:39 +0000
parents 26181d6e6a87
children 5872a3a471bd 95d0cdf160ea
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42836
c6bcb27e426f (ruler-mode): New keyword. Fix :version.
Pavel Janík <Pavel@Janik.cz>
parents: 42706
diff changeset
1 ;;; ruler-mode.el --- display a ruler in the header line
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2
75229
26181d6e6a87 (ruler-mode-ruler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 73777
diff changeset
3 ;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006,
26181d6e6a87 (ruler-mode-ruler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 73777
diff changeset
4 ;; 2007 Free Software Foundation, Inc.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6 ;; Author: David Ponce <david@dponce.com>
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7 ;; Maintainer: David Ponce <david@dponce.com>
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
8 ;; Created: 24 Mar 2001
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
9 ;; Version: 1.6
47183
865837df3fe7 (defgroup ruler-mode): Use `convenience' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 45255
diff changeset
10 ;; Keywords: convenience
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
11
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
12 ;; This file is part of GNU Emacs.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
13
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
14 ;; This program is free software; you can redistribute it and/or
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
15 ;; modify it under the terms of the GNU General Public License as
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
16 ;; published by the Free Software Foundation; either version 2, or (at
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
17 ;; your option) any later version.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
18
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
19 ;; This program is distributed in the hope that it will be useful, but
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
20 ;; WITHOUT ANY WARRANTY; without even the implied warranty of
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
21 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
22 ;; General Public License for more details.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
23
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
24 ;; You should have received a copy of the GNU General Public License
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
25 ;; along with this program; see the file COPYING. If not, write to
64091
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63201
diff changeset
26 ;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
6fb026ad601f Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63201
diff changeset
27 ;; Boston, MA 02110-1301, USA.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
28
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
29 ;;; Commentary:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
30
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
31 ;; This library provides a minor mode to display a ruler in the header
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
32 ;; line. It works only on Emacs 21.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
33 ;;
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
34 ;; You can use the mouse to change the `fill-column' `comment-column',
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
35 ;; `goal-column', `window-margins' and `tab-stop-list' settings:
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
36 ;;
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
37 ;; [header-line (shift down-mouse-1)] set left margin end to the ruler
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
38 ;; graduation where the mouse pointer is on.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
39 ;;
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
40 ;; [header-line (shift down-mouse-3)] set right margin beginning to
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
41 ;; the ruler graduation where the mouse pointer is on.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
42 ;;
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
43 ;; [header-line down-mouse-2] Drag the `fill-column', `comment-column'
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
44 ;; or `goal-column' to a ruler graduation.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
45 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
46 ;; [header-line (control down-mouse-1)] add a tab stop to the ruler
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
47 ;; graduation where the mouse pointer is on.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
48 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
49 ;; [header-line (control down-mouse-3)] remove the tab stop at the
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
50 ;; ruler graduation where the mouse pointer is on.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
51 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
52 ;; [header-line (control down-mouse-2)] or M-x
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
53 ;; `ruler-mode-toggle-show-tab-stops' toggle showing and visually
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
54 ;; editing `tab-stop-list' setting. The `ruler-mode-show-tab-stops'
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
55 ;; option controls if the ruler shows tab stops by default.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
56 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
57 ;; In the ruler the character `ruler-mode-current-column-char' shows
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
58 ;; the `current-column' location, `ruler-mode-fill-column-char' shows
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
59 ;; the `fill-column' location, `ruler-mode-comment-column-char' shows
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
60 ;; the `comment-column' location, `ruler-mode-goal-column-char' shows
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
61 ;; the `goal-column' and `ruler-mode-tab-stop-char' shows tab stop
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
62 ;; locations. Graduations in `window-margins' and `window-fringes'
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
63 ;; areas are shown with a different foreground color.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
64 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
65 ;; It is also possible to customize the following characters:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
66 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
67 ;; - `ruler-mode-basic-graduation-char' character used for basic
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
68 ;; graduations ('.' by default).
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
69 ;; - `ruler-mode-inter-graduation-char' character used for
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
70 ;; intermediate graduations ('!' by default).
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
71 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
72 ;; The following faces are customizable:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
73 ;;
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
74 ;; - `ruler-mode-default' the ruler default face.
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
75 ;; - `ruler-mode-fill-column' the face used to highlight the
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
76 ;; `fill-column' character.
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
77 ;; - `ruler-mode-comment-column' the face used to highlight the
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
78 ;; `comment-column' character.
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
79 ;; - `ruler-mode-goal-column' the face used to highlight the
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
80 ;; `goal-column' character.
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
81 ;; - `ruler-mode-current-column' the face used to highlight the
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
82 ;; `current-column' character.
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
83 ;; - `ruler-mode-tab-stop' the face used to highlight tab stop
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
84 ;; characters.
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
85 ;; - `ruler-mode-margins' the face used to highlight graduations
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
86 ;; in the `window-margins' areas.
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
87 ;; - `ruler-mode-fringes' the face used to highlight graduations
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
88 ;; in the `window-fringes' areas.
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
89 ;; - `ruler-mode-column-number' the face used to highlight the
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
90 ;; numbered graduations.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
91 ;;
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
92 ;; `ruler-mode-default' inherits from the built-in `default' face.
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
93 ;; All `ruler-mode' faces inherit from `ruler-mode-default'.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
94 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
95 ;; WARNING: To keep ruler graduations aligned on text columns it is
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
96 ;; important to use the same font family and size for ruler and text
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
97 ;; areas.
54399
ad02f6299e9a 2004-03-15 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 52889
diff changeset
98 ;;
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
99 ;; You can override the ruler format by defining an appropriate
54399
ad02f6299e9a 2004-03-15 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 52889
diff changeset
100 ;; function as the buffer-local value of `ruler-mode-ruler-function'.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
101
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
102 ;; Installation
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
103 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
104 ;; To automatically display the ruler in specific major modes use:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
105 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
106 ;; (add-hook '<major-mode>-hook 'ruler-mode)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
107 ;;
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
108
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
109 ;;; History:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
110 ;;
41461
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
111
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
112 ;;; Code:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
113 (eval-when-compile
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
114 (require 'wid-edit))
54399
ad02f6299e9a 2004-03-15 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 52889
diff changeset
115 (require 'scroll-bar)
ad02f6299e9a 2004-03-15 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 52889
diff changeset
116 (require 'fringe)
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
117
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
118 (defgroup ruler-mode nil
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
119 "Display a ruler in the header line."
59996
aac0a33f5772 Change release version from 21.4 to 22.1 throughout.
Kim F. Storm <storm@cua.dk>
parents: 54440
diff changeset
120 :version "22.1"
47183
865837df3fe7 (defgroup ruler-mode): Use `convenience' as parent.
Richard M. Stallman <rms@gnu.org>
parents: 45255
diff changeset
121 :group 'convenience)
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
122
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
123 (defcustom ruler-mode-show-tab-stops nil
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
124 "*If non-nil the ruler shows tab stop positions.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
125 Also allowing to visually change `tab-stop-list' setting using
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
126 <C-down-mouse-1> and <C-down-mouse-3> on the ruler to respectively add
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
127 or remove a tab stop. \\[ruler-mode-toggle-show-tab-stops] or
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
128 <C-down-mouse-2> on the ruler toggles showing/editing of tab stops."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
129 :group 'ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
130 :type 'boolean)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
131
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
132 ;; IMPORTANT: This function must be defined before the following
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
133 ;; defcustoms because it is used in their :validate clause.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
134 (defun ruler-mode-character-validate (widget)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
135 "Ensure WIDGET value is a valid character value."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
136 (save-excursion
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
137 (let ((value (widget-value widget)))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
138 (if (char-valid-p value)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
139 nil
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
140 (widget-put widget :error
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
141 (format "Invalid character value: %S" value))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
142 widget))))
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
143
52430
8ab45ba34207 (ruler-mode-fill-column-char)
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
144 (defcustom ruler-mode-fill-column-char (if (char-displayable-p ?¶)
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
145 ?\¶
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
146 ?\|)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
147 "*Character used at the `fill-column' location."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
148 :group 'ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
149 :type '(choice
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
150 (character :tag "Character")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
151 (integer :tag "Integer char value"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
152 :validate ruler-mode-character-validate)))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
153
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
154 (defcustom ruler-mode-comment-column-char ?\#
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
155 "*Character used at the `comment-column' location."
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
156 :group 'ruler-mode
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
157 :type '(choice
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
158 (character :tag "Character")
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
159 (integer :tag "Integer char value"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
160 :validate ruler-mode-character-validate)))
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
161
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
162 (defcustom ruler-mode-goal-column-char ?G
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
163 "*Character used at the `goal-column' location."
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
164 :group 'ruler-mode
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
165 :type '(choice
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
166 (character :tag "Character")
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
167 (integer :tag "Integer char value"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
168 :validate ruler-mode-character-validate)))
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
169
52430
8ab45ba34207 (ruler-mode-fill-column-char)
Dave Love <fx@gnu.org>
parents: 52401
diff changeset
170 (defcustom ruler-mode-current-column-char (if (char-displayable-p ?¦)
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
171 ?\¦
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
172 ?\@)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
173 "*Character used at the `current-column' location."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
174 :group 'ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
175 :type '(choice
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
176 (character :tag "Character")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
177 (integer :tag "Integer char value"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
178 :validate ruler-mode-character-validate)))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
179
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
180 (defcustom ruler-mode-tab-stop-char ?\T
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
181 "*Character used at `tab-stop-list' locations."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
182 :group 'ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
183 :type '(choice
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
184 (character :tag "Character")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
185 (integer :tag "Integer char value"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
186 :validate ruler-mode-character-validate)))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
187
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
188 (defcustom ruler-mode-basic-graduation-char ?\.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
189 "*Character used for basic graduations."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
190 :group 'ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
191 :type '(choice
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
192 (character :tag "Character")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
193 (integer :tag "Integer char value"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
194 :validate ruler-mode-character-validate)))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
195
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
196 (defcustom ruler-mode-inter-graduation-char ?\!
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
197 "*Character used for intermediate graduations."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
198 :group 'ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
199 :type '(choice
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
200 (character :tag "Character")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
201 (integer :tag "Integer char value"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
202 :validate ruler-mode-character-validate)))
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
203
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
204 (defcustom ruler-mode-set-goal-column-ding-flag t
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
205 "*Non-nil means do `ding' when `goal-column' is set."
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
206 :group 'ruler-mode
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
207 :type 'boolean)
41461
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
208
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
209 (defface ruler-mode-default
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
210 '((((type tty))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
211 (:inherit default
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
212 :background "grey64"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
213 :foreground "grey50"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
214 ))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
215 (t
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
216 (:inherit default
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
217 :background "grey76"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
218 :foreground "grey64"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
219 :box (:color "grey76"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
220 :line-width 1
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
221 :style released-button)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
222 )))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
223 "Default face used by the ruler."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
224 :group 'ruler-mode)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
225
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
226 (defface ruler-mode-pad
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
227 '((((type tty))
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
228 (:inherit ruler-mode-default
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
229 :background "grey50"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
230 ))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
231 (t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
232 (:inherit ruler-mode-default
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
233 :background "grey64"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
234 )))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
235 "Face used to pad inactive ruler areas."
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
236 :group 'ruler-mode)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
237
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
238 (defface ruler-mode-margins
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
239 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
240 (:inherit ruler-mode-default
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
241 :foreground "white"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
242 )))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
243 "Face used to highlight margin areas."
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
244 :group 'ruler-mode)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
245
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
246 (defface ruler-mode-fringes
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
247 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
248 (:inherit ruler-mode-default
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
249 :foreground "green"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
250 )))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
251 "Face used to highlight fringes areas."
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
252 :group 'ruler-mode)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
253
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
254 (defface ruler-mode-column-number
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
255 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
256 (:inherit ruler-mode-default
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
257 :foreground "black"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
258 )))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
259 "Face used to highlight number graduations."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
260 :group 'ruler-mode)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
261
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
262 (defface ruler-mode-fill-column
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
263 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
264 (:inherit ruler-mode-default
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
265 :foreground "red"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
266 )))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
267 "Face used to highlight the fill column character."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
268 :group 'ruler-mode)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
269
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
270 (defface ruler-mode-comment-column
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
271 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
272 (:inherit ruler-mode-default
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
273 :foreground "red"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
274 )))
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
275 "Face used to highlight the comment column character."
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
276 :group 'ruler-mode)
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
277
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
278 (defface ruler-mode-goal-column
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
279 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
280 (:inherit ruler-mode-default
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
281 :foreground "red"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
282 )))
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
283 "Face used to highlight the goal column character."
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
284 :group 'ruler-mode)
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
285
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
286 (defface ruler-mode-tab-stop
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
287 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
288 (:inherit ruler-mode-default
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
289 :foreground "steelblue"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
290 )))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
291 "Face used to highlight tab stop characters."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
292 :group 'ruler-mode)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
293
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
294 (defface ruler-mode-current-column
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
295 '((t
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
296 (:inherit ruler-mode-default
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
297 :weight bold
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
298 :foreground "yellow"
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
299 )))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
300 "Face used to highlight the `current-column' character."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
301 :group 'ruler-mode)
41461
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
302
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
303
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
304 (defsubst ruler-mode-full-window-width ()
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
305 "Return the full width of the selected window."
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
306 (let ((edges (window-edges)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
307 (- (nth 2 edges) (nth 0 edges))))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
308
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
309 (defsubst ruler-mode-window-col (n)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
310 "Return a column number relative to the selected window.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
311 N is a column number relative to selected frame."
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
312 (- n
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
313 (car (window-edges))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
314 (or (car (window-margins)) 0)
54401
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
315 (fringe-columns 'left)
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
316 (scroll-bar-columns 'left)))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
317
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
318 (defun ruler-mode-mouse-set-left-margin (start-event)
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
319 "Set left margin end to the graduation where the mouse pointer is on.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
320 START-EVENT is the mouse click event."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
321 (interactive "e")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
322 (let* ((start (event-start start-event))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
323 (end (event-end start-event))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
324 col w lm rm)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
325 (when (eq start end) ;; mouse click
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
326 (save-selected-window
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
327 (select-window (posn-window start))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
328 (setq col (- (car (posn-col-row start)) (car (window-edges))
54401
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
329 (scroll-bar-columns 'left))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
330 w (- (ruler-mode-full-window-width)
54401
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
331 (scroll-bar-columns 'left)
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
332 (scroll-bar-columns 'right)))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
333 (when (and (>= col 0) (< col w))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
334 (setq lm (window-margins)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
335 rm (or (cdr lm) 0)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
336 lm (or (car lm) 0))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
337 (message "Left margin set to %d (was %d)" col lm)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
338 (set-window-margins nil col rm))))))
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
339
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
340 (defun ruler-mode-mouse-set-right-margin (start-event)
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
341 "Set right margin beginning to the graduation where the mouse pointer is on.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
342 START-EVENT is the mouse click event."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
343 (interactive "e")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
344 (let* ((start (event-start start-event))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
345 (end (event-end start-event))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
346 col w lm rm)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
347 (when (eq start end) ;; mouse click
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
348 (save-selected-window
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
349 (select-window (posn-window start))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
350 (setq col (- (car (posn-col-row start)) (car (window-edges))
54401
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
351 (scroll-bar-columns 'left))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
352 w (- (ruler-mode-full-window-width)
54401
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
353 (scroll-bar-columns 'left)
7f6dab15e141 2004-03-15 David Ponce <david@dponce.com>
Masatake YAMATO <jet@gyve.org>
parents: 54399
diff changeset
354 (scroll-bar-columns 'right)))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
355 (when (and (>= col 0) (< col w))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
356 (setq lm (window-margins)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
357 rm (or (cdr lm) 0)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
358 lm (or (car lm) 0)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
359 col (- w col 1))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
360 (message "Right margin set to %d (was %d)" col rm)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
361 (set-window-margins nil lm col))))))
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
362
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
363 (defvar ruler-mode-dragged-symbol nil
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
364 "Column symbol dragged in the ruler.
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
365 That is `fill-column', `comment-column', `goal-column', or nil when
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
366 nothing is dragged.")
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
367
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
368 (defun ruler-mode-mouse-grab-any-column (start-event)
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
369 "Drag a column symbol on the ruler.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
370 Start dragging on mouse down event START-EVENT, and update the column
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
371 symbol value with the current value of the ruler graduation while
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
372 dragging. See also the variable `ruler-mode-dragged-symbol'."
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
373 (interactive "e")
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
374 (setq ruler-mode-dragged-symbol nil)
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
375 (let* ((start (event-start start-event))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
376 col newc oldc)
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
377 (save-selected-window
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
378 (select-window (posn-window start))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
379 (setq col (ruler-mode-window-col (car (posn-col-row start)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
380 newc (+ col (window-hscroll)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
381 (and
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
382 (>= col 0) (< col (window-width))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
383 (cond
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
384
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
385 ;; Handle the fill column.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
386 ((eq newc fill-column)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
387 (setq oldc fill-column
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
388 ruler-mode-dragged-symbol 'fill-column)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
389 t) ;; Start dragging
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
390
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
391 ;; Handle the comment column.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
392 ((eq newc comment-column)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
393 (setq oldc comment-column
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
394 ruler-mode-dragged-symbol 'comment-column)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
395 t) ;; Start dragging
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
396
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
397 ;; Handle the goal column.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
398 ;; A. On mouse down on the goal column character on the ruler,
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
399 ;; update the `goal-column' value while dragging.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
400 ;; B. If `goal-column' is nil, set the goal column where the
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
401 ;; mouse is clicked.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
402 ;; C. On mouse click on the goal column character on the
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
403 ;; ruler, unset the goal column.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
404 ((eq newc goal-column) ; A. Drag the goal column.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
405 (setq oldc goal-column
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
406 ruler-mode-dragged-symbol 'goal-column)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
407 t) ;; Start dragging
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
408
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
409 ((null goal-column) ; B. Set the goal column.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
410 (setq oldc goal-column
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
411 goal-column newc)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
412 ;; mouse-2 coming AFTER drag-mouse-2 invokes `ding'. This
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
413 ;; `ding' flushes the next messages about setting goal
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
414 ;; column. So here I force fetch the event(mouse-2) and
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
415 ;; throw away.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
416 (read-event)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
417 ;; Ding BEFORE `message' is OK.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
418 (when ruler-mode-set-goal-column-ding-flag
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
419 (ding))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
420 (message "Goal column set to %d (click on %s again to unset it)"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
421 newc
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
422 (propertize (char-to-string ruler-mode-goal-column-char)
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
423 'face 'ruler-mode-goal-column))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
424 nil) ;; Don't start dragging.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
425 )
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
426 (if (eq 'click (ruler-mode-mouse-drag-any-column-iteration
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
427 (posn-window start)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
428 (when (eq 'goal-column ruler-mode-dragged-symbol)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
429 ;; C. Unset the goal column.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
430 (set-goal-column t))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
431 ;; At end of dragging, report the updated column symbol.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
432 (message "%s is set to %d (was %d)"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
433 ruler-mode-dragged-symbol
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
434 (symbol-value ruler-mode-dragged-symbol)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
435 oldc))))))
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
436
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
437 (defun ruler-mode-mouse-drag-any-column-iteration (window)
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
438 "Update the ruler while dragging the mouse.
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
439 WINDOW is the window where occurred the last down-mouse event.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
440 Return the symbol `drag' if the mouse has been dragged, or `click' if
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
441 the mouse has been clicked."
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
442 (let ((drags 0)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
443 event)
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
444 (track-mouse
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
445 (while (mouse-movement-p (setq event (read-event)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
446 (setq drags (1+ drags))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
447 (when (eq window (posn-window (event-end event)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
448 (ruler-mode-mouse-drag-any-column event)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
449 (force-mode-line-update))))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
450 (if (and (zerop drags) (eq 'click (car (event-modifiers event))))
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
451 'click
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
452 'drag)))
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
453
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
454 (defun ruler-mode-mouse-drag-any-column (start-event)
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
455 "Update the value of the symbol dragged on the ruler.
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
456 Called on each mouse motion event START-EVENT."
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
457 (let* ((start (event-start start-event))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
458 (end (event-end start-event))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
459 col newc)
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
460 (save-selected-window
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
461 (select-window (posn-window start))
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
462 (setq col (ruler-mode-window-col (car (posn-col-row end)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
463 newc (+ col (window-hscroll)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
464 (when (and (>= col 0) (< col (window-width)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
465 (set ruler-mode-dragged-symbol newc)))))
41461
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
466
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
467 (defun ruler-mode-mouse-add-tab-stop (start-event)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
468 "Add a tab stop to the graduation where the mouse pointer is on.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
469 START-EVENT is the mouse click event."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
470 (interactive "e")
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
471 (when ruler-mode-show-tab-stops
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
472 (let* ((start (event-start start-event))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
473 (end (event-end start-event))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
474 col ts)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
475 (when (eq start end) ;; mouse click
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
476 (save-selected-window
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
477 (select-window (posn-window start))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
478 (setq col (ruler-mode-window-col (car (posn-col-row start)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
479 ts (+ col (window-hscroll)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
480 (and (>= col 0) (< col (window-width))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
481 (not (member ts tab-stop-list))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
482 (progn
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
483 (message "Tab stop set to %d" ts)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
484 (setq tab-stop-list (sort (cons ts tab-stop-list)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
485 #'<)))))))))
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
486
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
487 (defun ruler-mode-mouse-del-tab-stop (start-event)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
488 "Delete tab stop at the graduation where the mouse pointer is on.
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
489 START-EVENT is the mouse click event."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
490 (interactive "e")
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
491 (when ruler-mode-show-tab-stops
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
492 (let* ((start (event-start start-event))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
493 (end (event-end start-event))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
494 col ts)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
495 (when (eq start end) ;; mouse click
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
496 (save-selected-window
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
497 (select-window (posn-window start))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
498 (setq col (ruler-mode-window-col (car (posn-col-row start)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
499 ts (+ col (window-hscroll)))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
500 (and (>= col 0) (< col (window-width))
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
501 (member ts tab-stop-list)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
502 (progn
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
503 (message "Tab stop at %d deleted" ts)
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
504 (setq tab-stop-list (delete ts tab-stop-list)))))))))
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
505
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
506 (defun ruler-mode-toggle-show-tab-stops ()
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
507 "Toggle showing of tab stops on the ruler."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
508 (interactive)
41461
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
509 (setq ruler-mode-show-tab-stops (not ruler-mode-show-tab-stops))
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
510 (force-mode-line-update))
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
511
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
512 (defvar ruler-mode-map
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
513 (let ((km (make-sparse-keymap)))
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
514 (define-key km [header-line down-mouse-1]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
515 #'ignore)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
516 (define-key km [header-line down-mouse-3]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
517 #'ignore)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
518 (define-key km [header-line down-mouse-2]
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
519 #'ruler-mode-mouse-grab-any-column)
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
520 (define-key km [header-line (shift down-mouse-1)]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
521 #'ruler-mode-mouse-set-left-margin)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
522 (define-key km [header-line (shift down-mouse-3)]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
523 #'ruler-mode-mouse-set-right-margin)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
524 (define-key km [header-line (control down-mouse-1)]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
525 #'ruler-mode-mouse-add-tab-stop)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
526 (define-key km [header-line (control down-mouse-3)]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
527 #'ruler-mode-mouse-del-tab-stop)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
528 (define-key km [header-line (control down-mouse-2)]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
529 #'ruler-mode-toggle-show-tab-stops)
73777
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
530 (define-key km [header-line (shift mouse-1)]
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
531 'ignore)
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
532 (define-key km [header-line (shift mouse-3)]
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
533 'ignore)
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
534 (define-key km [header-line (control mouse-1)]
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
535 'ignore)
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
536 (define-key km [header-line (control mouse-3)]
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
537 'ignore)
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
538 (define-key km [header-line (control mouse-2)]
461d1ed79b75 (ruler-mode-map): Add bindings for up-events so that they aren't undefined.
Richard M. Stallman <rms@gnu.org>
parents: 68651
diff changeset
539 'ignore)
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
540 km)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
541 "Keymap for ruler minor mode.")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
542
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
543 (defvar ruler-mode-header-line-format-old nil
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
544 "Hold previous value of `header-line-format'.")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
545
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
546 (defvar ruler-mode-ruler-function 'ruler-mode-ruler
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
547 "Function to call to return ruler header line format.
54399
ad02f6299e9a 2004-03-15 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 52889
diff changeset
548 This variable is expected to be made buffer-local by modes.")
ad02f6299e9a 2004-03-15 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 52889
diff changeset
549
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
550 (defconst ruler-mode-header-line-format
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
551 '(:eval (funcall ruler-mode-ruler-function))
54399
ad02f6299e9a 2004-03-15 Masatake YAMATO <jet@gyve.org>
Masatake YAMATO <jet@gyve.org>
parents: 52889
diff changeset
552 "`header-line-format' used in ruler mode.
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
553 Call `ruler-mode-ruler-function' to compute the ruler value.")
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
554
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
555 ;;;###autoload
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
556 (define-minor-mode ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
557 "Display a ruler in the header line if ARG > 0."
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
558 nil nil
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
559 ruler-mode-map
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
560 :group 'ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
561 (if ruler-mode
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
562 (progn
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
563 ;; When `ruler-mode' is on save previous header line format
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
564 ;; and install the ruler header line format.
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
565 (when (local-variable-p 'header-line-format)
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
566 (set (make-local-variable 'ruler-mode-header-line-format-old)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
567 header-line-format))
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
568 (setq header-line-format ruler-mode-header-line-format)
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
569 (add-hook 'post-command-hook 'force-mode-line-update nil t))
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
570 ;; When `ruler-mode' is off restore previous header line format if
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
571 ;; the current one is the ruler header line format.
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
572 (when (eq header-line-format ruler-mode-header-line-format)
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
573 (kill-local-variable 'header-line-format)
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
574 (when (local-variable-p 'ruler-mode-header-line-format-old)
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
575 (setq header-line-format ruler-mode-header-line-format-old)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
576 (kill-local-variable 'ruler-mode-header-line-format-old)))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
577 (remove-hook 'post-command-hook 'force-mode-line-update t)))
41461
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
578
42706
be541feb06cc Fix typo.
Pavel Janík <Pavel@Janik.cz>
parents: 42020
diff changeset
579 ;; Add ruler-mode to the minor mode menu in the mode line
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
580 (define-key mode-line-mode-menu [ruler-mode]
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
581 `(menu-item "Ruler" ruler-mode
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
582 :button (:toggle . ruler-mode)))
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
583
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
584 (defconst ruler-mode-ruler-help-echo
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
585 "\
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
586 S-mouse-1/3: set L/R margin, \
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
587 mouse-2: set goal column, \
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
588 C-mouse-2: show tabs"
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
589 "Help string shown when mouse is over the ruler.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
590 `ruler-mode-show-tab-stops' is nil.")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
591
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
592 (defconst ruler-mode-ruler-help-echo-when-goal-column
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
593 "\
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
594 S-mouse-1/3: set L/R margin, \
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
595 C-mouse-2: show tabs"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
596 "Help string shown when mouse is over the ruler.
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
597 `goal-column' is set and `ruler-mode-show-tab-stops' is nil.")
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
598
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
599 (defconst ruler-mode-ruler-help-echo-when-tab-stops
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
600 "\
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
601 C-mouse1/3: set/unset tab, \
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
602 C-mouse-2: hide tabs"
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
603 "Help string shown when mouse is over the ruler.
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
604 `ruler-mode-show-tab-stops' is non-nil.")
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
605
49195
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
606 (defconst ruler-mode-fill-column-help-echo
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
607 "drag-mouse-2: set fill column"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
608 "Help string shown when mouse is on the fill column character.")
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
609
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
610 (defconst ruler-mode-comment-column-help-echo
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
611 "drag-mouse-2: set comment column"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
612 "Help string shown when mouse is on the comment column character.")
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
613
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
614 (defconst ruler-mode-goal-column-help-echo
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
615 "\
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
616 drag-mouse-2: set goal column, \
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
617 mouse-2: unset goal column"
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
618 "Help string shown when mouse is on the goal column character.")
c297d31ef382 (ruler-mode-comment-column-char, ruler-mode-goal-column-char)
Juanma Barranquero <lekktu@gmail.com>
parents: 47425
diff changeset
619
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
620 (defconst ruler-mode-margin-help-echo
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
621 "%s margin %S"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
622 "Help string shown when mouse is over a margin area.")
42020
6e891121e1cc (ruler-mode-extra-left-cols): Removed.
Richard M. Stallman <rms@gnu.org>
parents: 42003
diff changeset
623
51389
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
624 (defconst ruler-mode-fringe-help-echo
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
625 "%s fringe %S"
a8b686f386db Version 1.6
Juanma Barranquero <lekktu@gmail.com>
parents: 49769
diff changeset
626 "Help string shown when mouse is over a fringe area.")
52889
615ebe291578 (ruler-mode-left-fringe-cols): Add new optional
Richard M. Stallman <rms@gnu.org>
parents: 52430
diff changeset
627
615ebe291578 (ruler-mode-left-fringe-cols): Add new optional
Richard M. Stallman <rms@gnu.org>
parents: 52430
diff changeset
628 (defsubst ruler-mode-space (width &rest props)
615ebe291578 (ruler-mode-left-fringe-cols): Add new optional
Richard M. Stallman <rms@gnu.org>
parents: 52430
diff changeset
629 "Return a single space string of WIDTH times the normal character width.
615ebe291578 (ruler-mode-left-fringe-cols): Add new optional
Richard M. Stallman <rms@gnu.org>
parents: 52430
diff changeset
630 Optional argument PROPS specifies other text properties to apply."
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
631 (apply 'propertize " " 'display (list 'space :width width) props))
41461
5507024cc13c Add pagination.
Richard M. Stallman <rms@gnu.org>
parents: 39731
diff changeset
632
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
633 (defun ruler-mode-ruler ()
75229
26181d6e6a87 (ruler-mode-ruler): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 73777
diff changeset
634 "Compute and return a header line ruler."
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
635 (let* ((w (window-width))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
636 (m (window-margins))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
637 (f (window-fringes))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
638 (i 0)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
639 (j (window-hscroll))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
640 ;; Setup the scrollbar, fringes, and margins areas.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
641 (lf (ruler-mode-space
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
642 'left-fringe
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
643 'face 'ruler-mode-fringes
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
644 'help-echo (format ruler-mode-fringe-help-echo
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
645 "Left" (or (car f) 0))))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
646 (rf (ruler-mode-space
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
647 'right-fringe
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
648 'face 'ruler-mode-fringes
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
649 'help-echo (format ruler-mode-fringe-help-echo
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
650 "Right" (or (cadr f) 0))))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
651 (lm (ruler-mode-space
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
652 'left-margin
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
653 'face 'ruler-mode-margins
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
654 'help-echo (format ruler-mode-margin-help-echo
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
655 "Left" (or (car m) 0))))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
656 (rm (ruler-mode-space
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
657 'right-margin
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
658 'face 'ruler-mode-margins
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
659 'help-echo (format ruler-mode-margin-help-echo
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
660 "Right" (or (cdr m) 0))))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
661 (sb (ruler-mode-space
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
662 'scroll-bar
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
663 'face 'ruler-mode-pad))
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
664 ;; Remember the scrollbar vertical type.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
665 (sbvt (car (window-current-scroll-bars)))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
666 ;; Create an "clean" ruler.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
667 (ruler
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
668 (propertize
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
669 (make-string w ruler-mode-basic-graduation-char)
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
670 'face 'ruler-mode-default
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
671 'local-map ruler-mode-map
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
672 'help-echo (cond
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
673 (ruler-mode-show-tab-stops
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
674 ruler-mode-ruler-help-echo-when-tab-stops)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
675 (goal-column
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
676 ruler-mode-ruler-help-echo-when-goal-column)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
677 (ruler-mode-ruler-help-echo))))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
678 k c)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
679 ;; Setup the active area.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
680 (while (< i w)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
681 ;; Graduations.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
682 (cond
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
683 ;; Show a number graduation.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
684 ((= (mod j 10) 0)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
685 (setq c (number-to-string (/ j 10))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
686 m (length c)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
687 k i)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
688 (put-text-property
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
689 i (1+ i) 'face 'ruler-mode-column-number
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
690 ruler)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
691 (while (and (> m 0) (>= k 0))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
692 (aset ruler k (aref c (setq m (1- m))))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
693 (setq k (1- k))))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
694 ;; Show an intermediate graduation.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
695 ((= (mod j 5) 0)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
696 (aset ruler i ruler-mode-inter-graduation-char)))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
697 ;; Special columns.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
698 (cond
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
699 ;; Show the `current-column' marker.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
700 ((= j (current-column))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
701 (aset ruler i ruler-mode-current-column-char)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
702 (put-text-property
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
703 i (1+ i) 'face 'ruler-mode-current-column
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
704 ruler))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
705 ;; Show the `goal-column' marker.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
706 ((and goal-column (= j goal-column))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
707 (aset ruler i ruler-mode-goal-column-char)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
708 (put-text-property
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
709 i (1+ i) 'face 'ruler-mode-goal-column
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
710 ruler)
62651
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
711 (put-text-property
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
712 i (1+ i) 'mouse-face 'mode-line-highlight
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
713 ruler)
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
714 (put-text-property
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
715 i (1+ i) 'help-echo ruler-mode-goal-column-help-echo
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
716 ruler))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
717 ;; Show the `comment-column' marker.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
718 ((= j comment-column)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
719 (aset ruler i ruler-mode-comment-column-char)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
720 (put-text-property
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
721 i (1+ i) 'face 'ruler-mode-comment-column
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
722 ruler)
62651
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
723 (put-text-property
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
724 i (1+ i) 'mouse-face 'mode-line-highlight
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
725 ruler)
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
726 (put-text-property
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
727 i (1+ i) 'help-echo ruler-mode-comment-column-help-echo
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
728 ruler))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
729 ;; Show the `fill-column' marker.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
730 ((= j fill-column)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
731 (aset ruler i ruler-mode-fill-column-char)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
732 (put-text-property
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
733 i (1+ i) 'face 'ruler-mode-fill-column
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
734 ruler)
62651
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
735 (put-text-property
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
736 i (1+ i) 'mouse-face 'mode-line-highlight
8d965863dd8c Supprot mouse-face on mode-line.
Masatake YAMATO <jet@gyve.org>
parents: 59996
diff changeset
737 ruler)
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
738 (put-text-property
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
739 i (1+ i) 'help-echo ruler-mode-fill-column-help-echo
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
740 ruler))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
741 ;; Show the `tab-stop-list' markers.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
742 ((and ruler-mode-show-tab-stops (member j tab-stop-list))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
743 (aset ruler i ruler-mode-tab-stop-char)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
744 (put-text-property
63201
c1af317747bc Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-372
Miles Bader <miles@gnu.org>
parents: 62651
diff changeset
745 i (1+ i) 'face 'ruler-mode-tab-stop
54440
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
746 ruler)))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
747 (setq i (1+ i)
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
748 j (1+ j)))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
749 ;; Return the ruler propertized string. Using list here,
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
750 ;; instead of concat visually separate the different areas.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
751 (if (nth 2 (window-fringes))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
752 ;; fringes outside margins.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
753 (list "" (and (eq 'left sbvt) sb) lf lm
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
754 ruler rm rf (and (eq 'right sbvt) sb))
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
755 ;; fringes inside margins.
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
756 (list "" (and (eq 'left sbvt) sb) lm lf
aabf30299e6c From David Ponce <david@dponce.com>
Kim F. Storm <storm@cua.dk>
parents: 54401
diff changeset
757 ruler rf rm (and (eq 'right sbvt) sb)))))
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
758
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
759 (provide 'ruler-mode)
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
760
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
761 ;; Local Variables:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
762 ;; coding: iso-latin-1
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
763 ;; End:
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
764
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51389
diff changeset
765 ;;; arch-tag: b2f24546-5605-44c4-b67b-c9a4eeba3ee8
39731
0fbd04880396 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
766 ;;; ruler-mode.el ends here