changeset 42020:6e891121e1cc

(ruler-mode-extra-left-cols): Removed. (ruler-mode-left-fringe-cols): New macro. (ruler-mode-right-fringe-cols): New macro. (ruler-mode-left-scroll-bar-cols): New macro. (ruler-mode-right-scroll-bar-cols): New macro. (ruler-mode-ruler): Use above new macros.
author Richard M. Stallman <rms@gnu.org>
date Fri, 14 Dec 2001 07:54:28 +0000
parents 9a71f3b2b0be
children ddb97861a688
files lisp/ruler-mode.el
diffstat 1 files changed, 29 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ruler-mode.el	Fri Dec 14 07:54:12 2001 +0000
+++ b/lisp/ruler-mode.el	Fri Dec 14 07:54:28 2001 +0000
@@ -438,24 +438,35 @@
   "Right margin %S"
   "Help string shown when mouse is over the right margin area.")
 
-(defun ruler-mode-extra-left-cols ()
-  "Return number of extra columns on the left side of selected frame.
-That is the number of columns occupied by the left fringe area and
-vertical scrollbar on the left side of the selected frame."
-  (let ((w  (frame-first-window))
-        (xy (cons 0 0)))
-    (with-current-buffer (window-buffer w)
-      (let (header-line-format)
-        (while (not (listp (coordinates-in-window-p xy w)))
-          (setcar xy (1+ (car xy))))
-        (car xy)))))
+(defmacro ruler-mode-left-fringe-cols ()
+  "Return the width, measured in columns, of the left fringe area."
+  '(round (or (frame-parameter nil 'left-fringe) 0)
+          (frame-char-width)))
+
+(defmacro ruler-mode-right-fringe-cols ()
+  "Return the width, measured in columns, of the right fringe area."
+  '(round (or (frame-parameter nil 'right-fringe) 0)
+          (frame-char-width)))
+
+(defmacro ruler-mode-left-scroll-bar-cols ()
+  "Return the width, measured in columns, of the left vertical scrollbar."
+  '(if (eq (frame-parameter nil 'vertical-scroll-bars) 'left)
+       (round (or (frame-parameter nil 'scroll-bar-width) 0)
+              (frame-char-width))
+     0))
+
+(defmacro ruler-mode-right-scroll-bar-cols ()
+  "Return the width, measured in columns, of the right vertical scrollbar."
+  '(if (eq (frame-parameter nil 'vertical-scroll-bars) 'right)
+       (round (or (frame-parameter nil 'scroll-bar-width) 0)
+              (frame-char-width))
+     0))
 
 (defun ruler-mode-ruler ()
   "Return a string ruler."
   (if ruler-mode
-      (let* ((j     (ruler-mode-extra-left-cols))
-             (k     (/ (or (frame-parameter nil 'right-fringe) 0)
-                       (frame-char-width)))
+      (let* ((j     (+ (ruler-mode-left-fringe-cols)
+                       (ruler-mode-left-scroll-bar-cols)))
              (w     (+ (window-width) j))
              (m     (window-margins))
              (l     (or (car m) 0))
@@ -466,8 +477,10 @@
                      ;; unit graduations
                      (make-string w ruler-mode-basic-graduation-char)
                      ;; extra space to fill the header line
-                     (make-string k ?\ )))
-             c)
+                     (make-string (+ (ruler-mode-right-fringe-cols)
+                                     (ruler-mode-right-scroll-bar-cols))
+                                  ?\ )))
+             c k)
 
         ;; Setup default face and help echo.
         (put-text-property 0 (length ruler)