comparison lisp/scroll-all.el @ 44821:4ebf66bb8850

(scroll-all-function-all): New function to do the work of scrolling other windows. (scroll-all-scroll-down-all, scroll-all-scroll-up-all, scroll-all-page-down-all, scroll-all-page-up-all, scroll-all-beginning-of-buffer-all, scroll-all-end-of-buffer-all): Make them use scroll-all-function-all.
author Glenn Morris <rgm@gnu.org>
date Wed, 24 Apr 2002 20:37:04 +0000
parents 5d3c147b760a
children 348e184769b0
comparison
equal deleted inserted replaced
44820:f524b541925b 44821:4ebf66bb8850
44 ;;;###autoload 44 ;;;###autoload
45 (defcustom scroll-all-mode nil 45 (defcustom scroll-all-mode nil
46 "Control/track scroll locking. 46 "Control/track scroll locking.
47 47
48 Setting this variable directly does not take effect; 48 Setting this variable directly does not take effect;
49 use either M-x customize or the function `scroll-all-mode'." 49 use either \\[customize] or the function `scroll-all-mode'."
50 :set (lambda (symbol value) (scroll-all-mode (if value 1 0))) 50 :set (lambda (symbol value) (scroll-all-mode (if value 1 0)))
51 :initialize 'custom-initialize-default 51 :initialize 'custom-initialize-default
52 :require 'scroll-all 52 :require 'scroll-all
53 :type 'boolean 53 :type 'boolean
54 :group 'windows) 54 :group 'windows)
57 (add-minor-mode 'scroll-all-mode " *SL*") 57 (add-minor-mode 'scroll-all-mode " *SL*")
58 (or (assq 'scroll-all-mode minor-mode-alist) 58 (or (assq 'scroll-all-mode minor-mode-alist)
59 (setq minor-mode-alist 59 (setq minor-mode-alist
60 (cons '(scroll-all-mode " *SL*") minor-mode-alist)))) 60 (cons '(scroll-all-mode " *SL*") minor-mode-alist))))
61 61
62 (defun scroll-all-scroll-down-all (arg) 62 (defun scroll-all-function-all (func arg)
63 "Scroll down all visible windows." 63 "Apply function FUNC with argument ARG to all visible windows."
64 (interactive "P")
65 (let ((num-windows (count-windows))
66 (count 1))
67 (when (> num-windows 1)
68 (other-window 1)
69 (while (< count num-windows)
70 (if (not (eq (point) (point-max)))
71 (call-interactively 'next-line))
72 (other-window 1)
73 (setq count (1+ count))))))
74
75 (defun scroll-all-scroll-up-all (arg)
76 "Scroll up all visible windows."
77 (interactive "P")
78 (let ((num-windows (count-windows))
79 (count 1))
80 (when (> num-windows 1)
81 (other-window 1)
82 (while (< count num-windows)
83 (if (not (eq (point) (point-min)))
84 (call-interactively 'previous-line))
85 (other-window 1)
86 (setq count (1+ count))))))
87
88 (defun scroll-all-page-down-all (arg)
89 "Page down in all visible windows."
90 (interactive "P")
91 (let ((num-windows (count-windows)) 64 (let ((num-windows (count-windows))
92 (count 1)) 65 (count 1))
93 (when (> num-windows 1) 66 (when (> num-windows 1)
94 (other-window 1) 67 (other-window 1)
95 (while (< count num-windows) 68 (while (< count num-windows)
96 (condition-case nil 69 (condition-case nil
97 (call-interactively 'scroll-up) (end-of-buffer nil)) 70 (funcall func arg)
71 ;; Ignore beginning- or end-of-buffer error in other windows.
72 (error nil)
73 )
98 (other-window 1) 74 (other-window 1)
99 (setq count (1+ count)))))) 75 (setq count (1+ count))))))
76
77 (defun scroll-all-scroll-down-all (arg)
78 "Scroll down in all visible windows."
79 (interactive "p")
80 (scroll-all-function-all 'next-line arg))
81
82 (defun scroll-all-scroll-up-all (arg)
83 "Scroll up in all visible windows."
84 (interactive "p")
85 (scroll-all-function-all 'previous-line arg))
86
87 (defun scroll-all-page-down-all (arg)
88 "Page down in all visible windows."
89 (interactive "P")
90 (scroll-all-function-all 'scroll-up arg))
100 91
101 (defun scroll-all-page-up-all (arg) 92 (defun scroll-all-page-up-all (arg)
102 "Page up in all visible windows." 93 "Page up in all visible windows."
103 (interactive "P") 94 (interactive "P")
104 (let ((num-windows (count-windows)) 95 (scroll-all-function-all 'scroll-down arg))
105 (count 1))
106 (when (> num-windows 1)
107 (other-window 1)
108 (while (< count num-windows)
109 (condition-case nil
110 (call-interactively 'scroll-down) (beginning-of-buffer nil))
111 (other-window 1)
112 (setq count (1+ count))))))
113 96
114 (defun scroll-all-beginning-of-buffer-all (arg) 97 (defun scroll-all-beginning-of-buffer-all (arg)
115 "Go to the beginning of the buffer in all visible windows." 98 "Go to the beginning of the buffer in all visible windows."
116 (interactive "P") 99 (interactive "P")
117 (let ((num-windows (count-windows)) 100 (scroll-all-function-all 'beginning-of-buffer arg))
118 (count 1))
119 (when (> num-windows 1)
120 (other-window 1)
121 (while (< count num-windows)
122 (call-interactively 'beginning-of-buffer)
123 (other-window 1)
124 (setq count (1+ count))))))
125 101
126 (defun scroll-all-end-of-buffer-all (arg) 102 (defun scroll-all-end-of-buffer-all (arg)
127 "Go to the end of the buffer in all visible windows." 103 "Go to the end of the buffer in all visible windows."
128 (interactive "P") 104 (interactive "P")
129 (let ((num-windows (count-windows)) 105 (scroll-all-function-all 'end-of-buffer arg))
130 (count 1))
131 (when (> num-windows 1)
132 (other-window 1)
133 (while (< count num-windows)
134 (call-interactively 'end-of-buffer)
135 (other-window 1)
136 (setq count (1+ count))))))
137 106
138 107
139 (defun scroll-all-check-to-scroll () 108 (defun scroll-all-check-to-scroll ()
140 "Check `this-command' to see if a scroll is to be done." 109 "Check `this-command' to see if a scroll is to be done."
141 (cond ((eq this-command 'next-line) 110 (cond ((eq this-command 'next-line)