Mercurial > emacs
annotate lisp/mouse.el @ 1803:5752a95053f2
* xterm.c (x_window_to_scrollbar): Search frames'
condemned_scrollbars list as well; input might arrive during
redisplay.
(x_scrollbar_report_motion): Don't forget to BLOCK_INPUT.
(XTjudge_scrollbars): Clear the condemned scrollbar list before
traversing it, so we don't try to process an event on a scrollbar
we've killed.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Sat, 16 Jan 1993 05:58:15 +0000 |
parents | 1cc3ee5afc82 |
children | 04fb1d3d6992 |
rev | line source |
---|---|
659
505130d1ddf8
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
1 ;;; mouse.el --- window system-independent mouse support. |
791
203c23c9f22c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
758
diff
changeset
|
2 |
840
113281b361ec
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
791
diff
changeset
|
3 ;;; Copyright (C) 1988, 1992 Free Software Foundation, Inc. |
113281b361ec
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
791
diff
changeset
|
4 |
791
203c23c9f22c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
758
diff
changeset
|
5 ;; Maintainer: FSF |
203c23c9f22c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
758
diff
changeset
|
6 ;; Keywords: hardware |
203c23c9f22c
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
758
diff
changeset
|
7 |
465 | 8 ;;; This file is part of GNU Emacs. |
66 | 9 |
465 | 10 ;;; GNU Emacs is free software; you can redistribute it and/or modify |
11 ;;; it under the terms of the GNU General Public License as published by | |
705 | 12 ;;; the Free Software Foundation; either version 2, or (at your option) |
465 | 13 ;;; any later version. |
66 | 14 |
465 | 15 ;;; GNU Emacs is distributed in the hope that it will be useful, |
16 ;;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
17 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
18 ;;; GNU General Public License for more details. | |
66 | 19 |
465 | 20 ;;; You should have received a copy of the GNU General Public License |
21 ;;; along with GNU Emacs; see the file COPYING. If not, write to | |
22 ;;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. | |
66 | 23 |
24 | |
465 | 25 ;;; Utility functions. |
26 | |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
27 (defsubst mouse-movement-p (object) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
28 "Return non-nil if OBJECT is a mouse movement event." |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
29 (and (consp object) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
30 (eq (car object) 'mouse-movement))) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
31 |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
32 (defsubst event-start (event) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
33 "Return the starting position of EVENT. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
34 If EVENT is a mouse press or a mouse click, this returns the location |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
35 of the event. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
36 If EVENT is a drag, this returns the drag's starting position. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
37 The return value is of the form |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
38 (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
39 The `posn-' functions access elements of such lists." |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
40 (nth 1 event)) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
41 |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
42 (defsubst event-end (event) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
43 "Return the ending location of EVENT. EVENT should be a drag event. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
44 The return value is of the form |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
45 (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
46 The `posn-' functions access elements of such lists." |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
47 (nth 2 event)) |
465 | 48 |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
49 (defsubst posn-window (position) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
50 "Return the window in POSITION. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
51 POSITION should be a list of the form |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
52 (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
53 as returned by the `event-start' and `event-end' functions." |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
54 (nth 0 position)) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
55 |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
56 (defsubst posn-point (position) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
57 "Return the buffer location in POSITION. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
58 POSITION should be a list of the form |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
59 (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
60 as returned by the `event-start' and `event-end' functions." |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
61 (nth 1 position)) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
62 |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
63 (defsubst posn-col-row (position) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
64 "Return the row and column in POSITION. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
65 POSITION should be a list of the form |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
66 (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
67 as returned by the `event-start' and `event-end' functions." |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
68 (nth 2 position)) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
69 |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
70 (defsubst posn-timestamp (position) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
71 "Return the timestamp of POSITION. |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
72 POSITION should be a list of the form |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
73 (WINDOW BUFFER-POSITION (COL . ROW) TIMESTAMP) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
74 nas returned by the `event-start' and `event-end' functions." |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
75 (nth 3 position)) |
66 | 76 |
465 | 77 ;;; Indent track-mouse like progn. |
78 (put 'track-mouse 'lisp-indent-function 0) | |
66 | 79 |
465 | 80 |
81 (defun mouse-delete-window (click) | |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
82 "Delete the window you click on. |
465 | 83 This must be bound to a mouse click." |
1113 | 84 (interactive "e") |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
85 (delete-window (posn-window (event-start click)))) |
465 | 86 |
1421
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
87 (defun mouse-tear-off-window (click) |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
88 "Delete the window clicked on, and create a new frame displaying its buffer." |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
89 (interactive "e") |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
90 (let* ((window (posn-window (event-start click))) |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
91 (buf (window-buffer window)) |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
92 (frame (new-frame))) |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
93 (select-frame frame) |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
94 (switch-to-buffer buf) |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
95 (delete-window window))) |
a8378792a31d
* mouse.el (mouse-tear-off-window): New function.
Jim Blandy <jimb@redhat.com>
parents:
1420
diff
changeset
|
96 |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
97 (defun mouse-delete-other-windows () |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
98 "Delete all window except the one you click on." |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
99 (interactive "@") |
66 | 100 (delete-other-windows)) |
101 | |
465 | 102 (defun mouse-split-window-vertically (click) |
103 "Select Emacs window mouse is on, then split it vertically in half. | |
104 The window is split at the line clicked on. | |
105 This command must be bound to a mouse click." | |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
106 (interactive "@e") |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
107 (let ((start (event-start click))) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
108 (select-window (posn-window start)) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
109 (split-window-vertically (1+ (cdr (posn-col-row click)))))) |
66 | 110 |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
111 (defun mouse-split-window-horizontally (click) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
112 "Select Emacs window mouse is on, then split it horizontally in half. |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
113 The window is split at the column clicked on. |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
114 This command must be bound to a mouse click." |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
115 (interactive "@e") |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
116 (split-window-horizontally (1+ (car (mouse-coords click))))) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
117 |
465 | 118 (defun mouse-set-point (click) |
119 "Move point to the position clicked on with the mouse. | |
120 This must be bound to a mouse click." | |
1113 | 121 (interactive "e") |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
122 (let ((posn (event-start click))) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
123 (select-window (posn-window posn)) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
124 (if (numberp (posn-point posn)) |
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
125 (goto-char (posn-point posn))))) |
66 | 126 |
1420
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
127 (defun mouse-set-region (click) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
128 "Set the region to the text that the mouse is dragged over. |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
129 This must be bound to a mouse click." |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
130 (interactive "e") |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
131 (let ((posn (event-start click)) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
132 (end (event-end click))) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
133 (select-window (posn-window posn)) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
134 (if (numberp (posn-point posn)) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
135 (goto-char (posn-point posn))) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
136 (sit-for 1) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
137 (push-mark) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
138 (if (numberp (posn-point end)) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
139 (goto-char (posn-point end))))) |
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
140 |
465 | 141 (defun mouse-set-mark (click) |
142 "Set mark at the position clicked on with the mouse. | |
143 Display cursor at that position for a second. | |
144 This must be bound to a mouse click." | |
1113 | 145 (interactive "e") |
66 | 146 (let ((point-save (point))) |
147 (unwind-protect | |
465 | 148 (progn (mouse-set-point click) |
66 | 149 (push-mark nil t) |
191 | 150 (sit-for 1)) |
66 | 151 (goto-char point-save)))) |
152 | |
465 | 153 (defun mouse-kill (click) |
154 "Kill the region between point and the mouse click. | |
155 The text is saved in the kill ring, as with \\[kill-region]." | |
1113 | 156 (interactive "e") |
1765
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
157 (let ((click-posn (posn-point (event-start click)))) |
1039 | 158 (if (numberp click-posn) |
159 (kill-region (min (point) click-posn) | |
160 (max (point) click-posn))))) | |
66 | 161 |
705 | 162 (defun mouse-yank-at-click (click arg) |
163 "Insert the last stretch of killed text at the position clicked on. | |
164 Prefix arguments are interpreted as with \\[yank]." | |
1113 | 165 (interactive "e\nP") |
705 | 166 (mouse-set-point click) |
167 (yank arg)) | |
168 | |
169 (defun mouse-kill-ring-save (click) | |
465 | 170 "Copy the region between point and the mouse click in the kill ring. |
171 This does not delete the region; it acts like \\[kill-ring-save]." | |
1113 | 172 (interactive "e") |
465 | 173 (mouse-set-mark click) |
705 | 174 (call-interactively 'kill-ring-save)) |
66 | 175 |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
176 (defun mouse-save-then-kill (click) |
1765
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
177 "Save text to point in kill ring; the second time, kill the text. |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
178 If the text between point and the mouse is the same as what's |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
179 at the front of the kill ring, this deletes the text. |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
180 Otherwise, it adds the text to the kill ring, like \\[kill-ring-save], |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
181 which prepares for a second click to delete the text." |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
182 (interactive "e") |
1765
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
183 (let ((click-posn (posn-point (event-start click)))) |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
184 (if (string= (buffer-substring (point) click-posn) (car kill-ring)) |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
185 ;; If this text was already saved in kill ring, |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
186 ;; now delete it from the buffer. |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
187 (progn |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
188 (let ((buffer-undo-list t)) |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
189 (delete-region (point) (mark))) |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
190 ;; Make the undo list by hand so it is shared. |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
191 (setq buffer-undo-list |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
192 (cons (cons (car kill-ring) (point)) buffer-undo-list))) |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
193 ;; Otherwise, save this region. |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
194 (mouse-set-mark click) |
1cc3ee5afc82
(mouse-save-then-kill): When deleting, avoid delay
Richard M. Stallman <rms@gnu.org>
parents:
1728
diff
changeset
|
195 (call-interactively 'kill-ring-save)))) |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
196 |
1056
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
197 (defun mouse-buffer-menu (event) |
1728
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
198 "Pop up a menu of buffers for selection with the mouse. |
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
199 This switches buffers in the window that you clicked on, |
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
200 and selects that window." |
1113 | 201 (interactive "e") |
1056
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
202 (let ((menu |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
203 (list "Buffer Menu" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
204 (cons "Select Buffer" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
205 (let ((tail (buffer-list)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
206 head) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
207 (while tail |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
208 (let ((elt (car tail))) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
209 (if (not (string-match "^ " |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
210 (buffer-name elt))) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
211 (setq head (cons |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
212 (cons |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
213 (format |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
214 "%14s %s" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
215 (buffer-name elt) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
216 (or (buffer-file-name elt) "")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
217 elt) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
218 head)))) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
219 (setq tail (cdr tail))) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
220 (reverse head)))))) |
1728
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
221 (let ((buf (x-popup-menu event menu)) |
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
222 (window (posn-window (event-start event)))) |
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
223 (if buf |
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
224 (progn |
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
225 (select-window window) |
2a49d509b30d
(mouse-buffer-menu): Select the window clicked on.
Richard M. Stallman <rms@gnu.org>
parents:
1421
diff
changeset
|
226 (switch-to-buffer buf)))))) |
66 | 227 |
228 ;; Commands for the scroll bar. | |
229 | |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
230 (defun mouse-scroll-down (click) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
231 (interactive "@e") |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
232 (scroll-down (1+ (cdr (mouse-coords click))))) |
66 | 233 |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
234 (defun mouse-scroll-up (click) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
235 (interactive "@e") |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
236 (scroll-up (1+ (cdr (mouse-coords click))))) |
66 | 237 |
238 (defun mouse-scroll-down-full () | |
239 (interactive "@") | |
240 (scroll-down nil)) | |
241 | |
242 (defun mouse-scroll-up-full () | |
243 (interactive "@") | |
244 (scroll-up nil)) | |
245 | |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
246 (defun mouse-scroll-move-cursor (click) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
247 (interactive "@e") |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
248 (move-to-window-line (1+ (cdr (mouse-coords click))))) |
66 | 249 |
250 (defun mouse-scroll-absolute (event) | |
251 (interactive "@e") | |
252 (let* ((pos (car event)) | |
253 (position (car pos)) | |
254 (length (car (cdr pos)))) | |
255 (if (<= length 0) (setq length 1)) | |
256 (let* ((scale-factor (max 1 (/ length (/ 8000000 (buffer-size))))) | |
257 (newpos (* (/ (* (/ (buffer-size) scale-factor) | |
258 position) | |
259 length) | |
260 scale-factor))) | |
261 (goto-char newpos) | |
262 (recenter '(4))))) | |
263 | |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
264 (defun mouse-scroll-left (click) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
265 (interactive "@e") |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
266 (scroll-left (1+ (car (mouse-coords click))))) |
66 | 267 |
1363
f34d8e4d1d7b
* mouse.el: Begin adapting this to the new event format.
Jim Blandy <jimb@redhat.com>
parents:
1214
diff
changeset
|
268 (defun mouse-scroll-right (click) |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
269 (interactive "@e") |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
270 (scroll-right (1+ (car (mouse-coords click))))) |
66 | 271 |
272 (defun mouse-scroll-left-full () | |
273 (interactive "@") | |
274 (scroll-left nil)) | |
275 | |
276 (defun mouse-scroll-right-full () | |
277 (interactive "@") | |
278 (scroll-right nil)) | |
279 | |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
280 (defun mouse-scroll-move-cursor-horizontally (click) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
281 (interactive "@e") |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
282 (move-to-column (1+ (car (mouse-coords click))))) |
66 | 283 |
284 (defun mouse-scroll-absolute-horizontally (event) | |
285 (interactive "@e") | |
286 (let* ((pos (car event)) | |
287 (position (car pos)) | |
288 (length (car (cdr pos)))) | |
289 (set-window-hscroll (selected-window) 33))) | |
290 | |
1060
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
291 (global-set-key [scroll-bar mouse-1] 'mouse-scroll-up) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
292 (global-set-key [scroll-bar mouse-2] 'mouse-scroll-absolute) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
293 (global-set-key [scroll-bar mouse-3] 'mouse-scroll-down) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
294 |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
295 (global-set-key [vertical-slider mouse-1] 'mouse-scroll-move-cursor) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
296 (global-set-key [vertical-slider mouse-2] 'mouse-scroll-move-cursor) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
297 (global-set-key [vertical-slider mouse-3] 'mouse-scroll-move-cursor) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
298 |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
299 (global-set-key [thumbup mouse-1] 'mouse-scroll-up-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
300 (global-set-key [thumbup mouse-2] 'mouse-scroll-up-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
301 (global-set-key [thumbup mouse-3] 'mouse-scroll-up-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
302 |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
303 (global-set-key [thumbdown mouse-1] 'mouse-scroll-down-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
304 (global-set-key [thumbdown mouse-2] 'mouse-scroll-down-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
305 (global-set-key [thumbdown mouse-3] 'mouse-scroll-down-full) |
66 | 306 |
1060
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
307 (global-set-key [horizontal-scroll-bar mouse-1] 'mouse-scroll-left) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
308 (global-set-key [horizontal-scroll-bar mouse-2] |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
309 'mouse-scroll-absolute-horizontally) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
310 (global-set-key [horizontal-scroll-bar mouse-3] 'mouse-scroll-right) |
66 | 311 |
1060
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
312 (global-set-key [horizontal-slider mouse-1] |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
313 'mouse-scroll-move-cursor-horizontally) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
314 (global-set-key [horizontal-slider mouse-2] |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
315 'mouse-scroll-move-cursor-horizontally) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
316 (global-set-key [horizontal-slider mouse-3] |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
317 'mouse-scroll-move-cursor-horizontally) |
66 | 318 |
1060
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
319 (global-set-key [thumbleft mouse-1] 'mouse-scroll-left-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
320 (global-set-key [thumbleft mouse-2] 'mouse-scroll-left-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
321 (global-set-key [thumbleft mouse-3] 'mouse-scroll-left-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
322 |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
323 (global-set-key [thumbright mouse-1] 'mouse-scroll-right-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
324 (global-set-key [thumbright mouse-2] 'mouse-scroll-right-full) |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
325 (global-set-key [thumbright mouse-3] 'mouse-scroll-right-full) |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
326 |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
327 (global-set-key [horizontal-scroll-bar S-mouse-2] |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
328 'mouse-split-window-horizontally) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
329 (global-set-key [mode-line S-mouse-2] |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
330 'mouse-split-window-horizontally) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
331 (global-set-key [vertical-scroll-bar S-mouse-2] |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
332 'mouse-split-window) |
1060
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
333 |
303 | 334 ;;;; |
335 ;;;; Here are experimental things being tested. Mouse events | |
336 ;;;; are of the form: | |
337 ;;;; ((x y) window screen-part key-sequence timestamp) | |
66 | 338 ;; |
303 | 339 ;;;; |
340 ;;;; Dynamically track mouse coordinates | |
341 ;;;; | |
66 | 342 ;; |
303 | 343 ;;(defun track-mouse (event) |
344 ;; "Track the coordinates, absolute and relative, of the mouse." | |
345 ;; (interactive "@e") | |
346 ;; (while mouse-grabbed | |
347 ;; (let* ((pos (read-mouse-position (selected-screen))) | |
348 ;; (abs-x (car pos)) | |
349 ;; (abs-y (cdr pos)) | |
350 ;; (relative-coordinate (coordinates-in-window-p | |
351 ;; (list (car pos) (cdr pos)) | |
352 ;; (selected-window)))) | |
353 ;; (if (consp relative-coordinate) | |
354 ;; (message "mouse: [%d %d], (%d %d)" abs-x abs-y | |
355 ;; (car relative-coordinate) | |
356 ;; (car (cdr relative-coordinate))) | |
357 ;; (message "mouse: [%d %d]" abs-x abs-y))))) | |
66 | 358 |
359 ;; | |
360 ;; Dynamically put a box around the line indicated by point | |
361 ;; | |
758 | 362 ;; |
363 ;;(require 'backquote) | |
364 ;; | |
365 ;;(defun mouse-select-buffer-line (event) | |
366 ;; (interactive "@e") | |
367 ;; (let ((relative-coordinate | |
368 ;; (coordinates-in-window-p (car event) (selected-window))) | |
369 ;; (abs-y (car (cdr (car event))))) | |
370 ;; (if (consp relative-coordinate) | |
371 ;; (progn | |
372 ;; (save-excursion | |
373 ;; (move-to-window-line (car (cdr relative-coordinate))) | |
374 ;; (x-draw-rectangle | |
375 ;; (selected-screen) | |
376 ;; abs-y 0 | |
377 ;; (save-excursion | |
378 ;; (move-to-window-line (car (cdr relative-coordinate))) | |
379 ;; (end-of-line) | |
380 ;; (push-mark nil t) | |
381 ;; (beginning-of-line) | |
382 ;; (- (region-end) (region-beginning))) 1)) | |
383 ;; (sit-for 1) | |
384 ;; (x-erase-rectangle (selected-screen)))))) | |
385 ;; | |
386 ;;(defvar last-line-drawn nil) | |
387 ;;(defvar begin-delim "[^ \t]") | |
388 ;;(defvar end-delim "[^ \t]") | |
389 ;; | |
390 ;;(defun mouse-boxing (event) | |
391 ;; (interactive "@e") | |
392 ;; (save-excursion | |
393 ;; (let ((screen (selected-screen))) | |
394 ;; (while (= (x-mouse-events) 0) | |
395 ;; (let* ((pos (read-mouse-position screen)) | |
396 ;; (abs-x (car pos)) | |
397 ;; (abs-y (cdr pos)) | |
398 ;; (relative-coordinate | |
399 ;; (coordinates-in-window-p (` ((, abs-x) (, abs-y))) | |
400 ;; (selected-window))) | |
401 ;; (begin-reg nil) | |
402 ;; (end-reg nil) | |
403 ;; (end-column nil) | |
404 ;; (begin-column nil)) | |
405 ;; (if (and (consp relative-coordinate) | |
406 ;; (or (not last-line-drawn) | |
407 ;; (not (= last-line-drawn abs-y)))) | |
408 ;; (progn | |
409 ;; (move-to-window-line (car (cdr relative-coordinate))) | |
410 ;; (if (= (following-char) 10) | |
411 ;; () | |
412 ;; (progn | |
413 ;; (setq begin-reg (1- (re-search-forward end-delim))) | |
414 ;; (setq begin-column (1- (current-column))) | |
415 ;; (end-of-line) | |
416 ;; (setq end-reg (1+ (re-search-backward begin-delim))) | |
417 ;; (setq end-column (1+ (current-column))) | |
418 ;; (message "%s" (buffer-substring begin-reg end-reg)) | |
419 ;; (x-draw-rectangle screen | |
420 ;; (setq last-line-drawn abs-y) | |
421 ;; begin-column | |
422 ;; (- end-column begin-column) 1)))))))))) | |
423 ;; | |
424 ;;(defun mouse-erase-box () | |
425 ;; (interactive) | |
426 ;; (if last-line-drawn | |
427 ;; (progn | |
428 ;; (x-erase-rectangle (selected-screen)) | |
429 ;; (setq last-line-drawn nil)))) | |
66 | 430 |
465 | 431 ;;; (defun test-x-rectangle () |
432 ;;; (use-local-mouse-map (setq rectangle-test-map (make-sparse-keymap))) | |
433 ;;; (define-key rectangle-test-map mouse-motion-button-left 'mouse-boxing) | |
434 ;;; (define-key rectangle-test-map mouse-button-left-up 'mouse-erase-box)) | |
66 | 435 |
436 ;; | |
437 ;; Here is how to do double clicking in lisp. About to change. | |
438 ;; | |
439 | |
440 (defvar double-start nil) | |
441 (defconst double-click-interval 300 | |
442 "Max ticks between clicks") | |
443 | |
444 (defun double-down (event) | |
445 (interactive "@e") | |
446 (if double-start | |
447 (let ((interval (- (nth 4 event) double-start))) | |
448 (if (< interval double-click-interval) | |
449 (progn | |
450 (backward-up-list 1) | |
451 ;; (message "Interval %d" interval) | |
452 (sleep-for 1))) | |
453 (setq double-start nil)) | |
454 (setq double-start (nth 4 event)))) | |
455 | |
456 (defun double-up (event) | |
457 (interactive "@e") | |
458 (and double-start | |
459 (> (- (nth 4 event ) double-start) double-click-interval) | |
460 (setq double-start nil))) | |
461 | |
465 | 462 ;;; (defun x-test-doubleclick () |
463 ;;; (use-local-mouse-map (setq doubleclick-test-map (make-sparse-keymap))) | |
464 ;;; (define-key doubleclick-test-map mouse-button-left 'double-down) | |
465 ;;; (define-key doubleclick-test-map mouse-button-left-up 'double-up)) | |
66 | 466 |
467 ;; | |
468 ;; This scrolls while button is depressed. Use preferable in scrollbar. | |
469 ;; | |
470 | |
471 (defvar scrolled-lines 0) | |
472 (defconst scroll-speed 1) | |
473 | |
474 (defun incr-scroll-down (event) | |
475 (interactive "@e") | |
476 (setq scrolled-lines 0) | |
477 (incremental-scroll scroll-speed)) | |
478 | |
479 (defun incr-scroll-up (event) | |
480 (interactive "@e") | |
481 (setq scrolled-lines 0) | |
482 (incremental-scroll (- scroll-speed))) | |
483 | |
484 (defun incremental-scroll (n) | |
485 (while (= (x-mouse-events) 0) | |
486 (setq scrolled-lines (1+ (* scroll-speed scrolled-lines))) | |
487 (scroll-down n) | |
488 (sit-for 300 t))) | |
489 | |
490 (defun incr-scroll-stop (event) | |
491 (interactive "@e") | |
492 (message "Scrolled %d lines" scrolled-lines) | |
493 (setq scrolled-lines 0) | |
494 (sleep-for 1)) | |
495 | |
465 | 496 ;;; (defun x-testing-scroll () |
497 ;;; (let ((scrolling-map (function mouse-vertical-scroll-bar-prefix))) | |
498 ;;; (define-key scrolling-map mouse-button-left 'incr-scroll-down) | |
499 ;;; (define-key scrolling-map mouse-button-right 'incr-scroll-up) | |
500 ;;; (define-key scrolling-map mouse-button-left-up 'incr-scroll-stop) | |
501 ;;; (define-key scrolling-map mouse-button-right-up 'incr-scroll-stop))) | |
66 | 502 |
503 ;; | |
504 ;; Some playthings suitable for picture mode? They need work. | |
505 ;; | |
506 | |
507 (defun mouse-kill-rectangle (event) | |
508 "Kill the rectangle between point and the mouse cursor." | |
509 (interactive "@e") | |
510 (let ((point-save (point))) | |
511 (save-excursion | |
512 (mouse-set-point event) | |
513 (push-mark nil t) | |
514 (if (> point-save (point)) | |
515 (kill-rectangle (point) point-save) | |
516 (kill-rectangle point-save (point)))))) | |
517 | |
518 (defun mouse-open-rectangle (event) | |
519 "Kill the rectangle between point and the mouse cursor." | |
520 (interactive "@e") | |
521 (let ((point-save (point))) | |
522 (save-excursion | |
523 (mouse-set-point event) | |
524 (push-mark nil t) | |
525 (if (> point-save (point)) | |
526 (open-rectangle (point) point-save) | |
527 (open-rectangle point-save (point)))))) | |
528 | |
529 ;; Must be a better way to do this. | |
530 | |
531 (defun mouse-multiple-insert (n char) | |
532 (while (> n 0) | |
533 (insert char) | |
534 (setq n (1- n)))) | |
535 | |
536 ;; What this could do is not finalize until button was released. | |
537 | |
538 (defun mouse-move-text (event) | |
539 "Move text from point to cursor position, inserting spaces." | |
540 (interactive "@e") | |
541 (let* ((relative-coordinate | |
542 (coordinates-in-window-p (car event) (selected-window)))) | |
543 (if (consp relative-coordinate) | |
544 (cond ((> (current-column) (car relative-coordinate)) | |
545 (delete-char | |
546 (- (car relative-coordinate) (current-column)))) | |
547 ((< (current-column) (car relative-coordinate)) | |
548 (mouse-multiple-insert | |
549 (- (car relative-coordinate) (current-column)) " ")) | |
550 ((= (current-column) (car relative-coordinate)) (ding)))))) | |
1100
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
551 |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
552 ;; Font selection. |
465 | 553 |
1100
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
554 (defvar x-fixed-font-alist |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
555 '("Font menu" |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
556 ("Misc" |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
557 ("fixed" "fixed") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
558 ("6x10" "6x10") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
559 ("6x12" "6x12") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
560 ("6x13" "6x13") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
561 ("7x13" "7x13") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
562 ("7x14" "7x14") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
563 ("8x13" "8x13") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
564 ("8x13 bold" "8x13bold") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
565 ("8x16" "8x16") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
566 ("9x15" "9x15") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
567 ("9x15 bold" "9x15bold") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
568 ("10x20" "10x20") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
569 ("11x18" "11x18") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
570 ("12x24" "12x24")) |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
571 ;;; We don't seem to have these; who knows what they are. |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
572 ;;; ("fg-18" "fg-18") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
573 ;;; ("fg-25" "fg-25") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
574 ;;; ("lucidasanstypewriter-12" "lucidasanstypewriter-12") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
575 ;;; ("lucidasanstypewriter-bold-14" "lucidasanstypewriter-bold-14") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
576 ;;; ("lucidasanstypewriter-bold-24" "lucidasanstypewriter-bold-24") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
577 ;;; ("lucidatypewriter-bold-r-24" "-b&h-lucidatypewriter-bold-r-normal-sans-24-240-75-75-m-140-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
578 ;;; ("fixed-medium-20" "-misc-fixed-medium-*-*-*-20-*-*-*-*-*-*-*") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
579 ("Courier" |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
580 ("8" "-adobe-courier-medium-r-normal--8-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
581 ("10" "-adobe-courier-medium-r-normal--10-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
582 ("12" "-adobe-courier-medium-r-normal--12-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
583 ("14" "-adobe-courier-medium-r-normal--14-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
584 ("18" "-adobe-courier-medium-r-normal--18-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
585 ("24" "-adobe-courier-medium-r-normal--24-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
586 ("8 bold" "-adobe-courier-bold-r-normal--8-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
587 ("10 bold" "-adobe-courier-bold-r-normal--10-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
588 ("12 bold" "-adobe-courier-bold-r-normal--12-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
589 ("14 bold" "-adobe-courier-bold-r-normal--14-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
590 ("18 bold" "-adobe-courier-bold-r-normal--18-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
591 ("24 bold" "-adobe-courier-bold-r-normal--24-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
592 ("8 slant" "-adobe-courier-medium-o-normal--8-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
593 ("10 slant" "-adobe-courier-medium-o-normal--10-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
594 ("12 slant" "-adobe-courier-medium-o-normal--12-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
595 ("14 slant" "-adobe-courier-medium-o-normal--14-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
596 ("18 slant" "-adobe-courier-medium-o-normal--18-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
597 ("24 slant" "-adobe-courier-medium-o-normal--24-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
598 ("8 bold slant" "-adobe-courier-bold-o-normal--8-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
599 ("10 bold slant" "-adobe-courier-bold-o-normal--10-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
600 ("12 bold slant" "-adobe-courier-bold-o-normal--12-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
601 ("14 bold slant" "-adobe-courier-bold-o-normal--14-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
602 ("18 bold slant" "-adobe-courier-bold-o-normal--18-*-*-*-m-*-iso8859-1") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
603 ("24 bold slant" "-adobe-courier-bold-o-normal--24-*-*-*-m-*-iso8859-1")) |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
604 ) |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
605 "X fonts suitable for use in Emacs.") |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
606 |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
607 (defun mouse-set-font (font) |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
608 "Select an emacs font from a list of known good fonts" |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
609 (interactive |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
610 (x-popup-menu last-nonmenu-event x-fixed-font-alist)) |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
611 (modify-frame-parameters (selected-frame) |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
612 (list (cons 'font font)))) |
465 | 613 |
614 ;;; Bindings for mouse commands. | |
615 | |
1060
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
616 ;; This won't be needed once the drag and down events |
1057
d9775f33488d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1056
diff
changeset
|
617 ;; are properly implemented. |
d9775f33488d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1056
diff
changeset
|
618 (global-set-key [mouse-1] 'mouse-set-point) |
d9775f33488d
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1056
diff
changeset
|
619 |
1420
4005f73e5712
(mouse-set-region): New command. Bind drag-mouse-1 to it.
Richard M. Stallman <rms@gnu.org>
parents:
1363
diff
changeset
|
620 (global-set-key [drag-mouse-1] 'mouse-set-region) |
705 | 621 (global-set-key [mouse-2] 'mouse-yank-at-click) |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
622 (global-set-key [mouse-3] 'mouse-save-then-kill) |
705 | 623 |
1056
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
624 (global-set-key [C-mouse-1] 'mouse-buffer-menu) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
625 |
1100
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
626 (global-set-key [C-mouse-3] 'mouse-set-font) |
5b3b202a84c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1064
diff
changeset
|
627 |
1056
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
628 ;; Replaced with dragging mouse-1 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
629 ;; (global-set-key [S-mouse-1] 'mouse-set-mark) |
1214
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
630 |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
631 (global-set-key [mode-line mouse-1] 'mouse-delete-other-windows) |
467833df795b
(mouse-split-window-vertically): Use @.
Richard M. Stallman <rms@gnu.org>
parents:
1113
diff
changeset
|
632 (global-set-key [mode-line mouse-3] 'mouse-delete-window) |
1056
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
633 |
1060
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
634 ;; Define the mouse help menu tree. |
af78c65921c8
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1058
diff
changeset
|
635 |
1056
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
636 (defvar help-menu-map '(keymap "Help")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
637 (global-set-key [C-mouse-2] help-menu-map) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
638 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
639 (defvar help-apropos-map '(keymap "Is there a command that...")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
640 (defvar help-keys-map '(keymap "Key Commands <==> Functions")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
641 (defvar help-manual-map '(keymap "Manual and tutorial")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
642 (defvar help-misc-map '(keymap "Odds and ends")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
643 (defvar help-modes-map '(keymap "Modes")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
644 (defvar help-admin-map '(keymap "Administrivia")) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
645 |
1058
19c6978ab218
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1057
diff
changeset
|
646 (define-key help-menu-map [apropos] |
1064
e699ce19609f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1060
diff
changeset
|
647 (cons "@Is there a command that..." help-apropos-map)) |
1058
19c6978ab218
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1057
diff
changeset
|
648 (define-key help-menu-map [keys] |
1064
e699ce19609f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1060
diff
changeset
|
649 (cons "@Key Commands <==> Functions" help-keys-map)) |
1058
19c6978ab218
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1057
diff
changeset
|
650 (define-key help-menu-map [manuals] |
1064
e699ce19609f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1060
diff
changeset
|
651 (cons "@Manual and tutorial" help-manual-map)) |
1058
19c6978ab218
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1057
diff
changeset
|
652 (define-key help-menu-map [misc] |
1064
e699ce19609f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1060
diff
changeset
|
653 (cons "@Odds and ends" help-misc-map)) |
1058
19c6978ab218
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1057
diff
changeset
|
654 (define-key help-menu-map [modes] |
1064
e699ce19609f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1060
diff
changeset
|
655 (cons "@Modes" help-modes-map)) |
1058
19c6978ab218
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1057
diff
changeset
|
656 (define-key help-menu-map [admin] |
1064
e699ce19609f
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1060
diff
changeset
|
657 (cons "@Administrivia" help-admin-map)) |
1056
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
658 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
659 (define-key help-apropos-map "c" '("Command Apropos" . command-apropos)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
660 (define-key help-apropos-map "a" '("Apropos" . apropos)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
661 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
662 (define-key help-keys-map "b" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
663 '("List all keystroke commands" . describe-bindings)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
664 (define-key help-keys-map "c" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
665 '("Describe key briefly" . describe-key-briefly)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
666 (define-key help-keys-map "k" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
667 '("Describe key verbose" . describe-key)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
668 (define-key help-keys-map "f" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
669 '("Describe Lisp function" . describe-function)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
670 (define-key help-keys-map "w" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
671 '("Where is this command" . where-is)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
672 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
673 (define-key help-manual-map "i" '("Info system" . info)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
674 (define-key help-manual-map "t" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
675 '("Invoke Emacs tutorial" . help-with-tutorial)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
676 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
677 (define-key help-misc-map "l" '("Last 100 Keystrokes" . view-lossage)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
678 (define-key help-misc-map "s" '("Describe syntax table" . describe-syntax)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
679 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
680 (define-key help-modes-map "m" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
681 '("Describe current major mode" . describe-mode)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
682 (define-key help-modes-map "b" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
683 '("List all keystroke commands" . describe-bindings)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
684 |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
685 (define-key help-admin-map "n" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
686 '("view Emacs news" . view-emacs-news)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
687 (define-key help-admin-map "l" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
688 '("View the GNU Emacs license" . describe-copying)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
689 (define-key help-admin-map "d" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
690 '("Describe distribution" . describe-distribution)) |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
691 (define-key help-admin-map "w" |
a7fc54083464
*** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents:
1039
diff
changeset
|
692 '("Describe (non)warranty" . describe-no-warranty)) |
584 | 693 |
694 (provide 'mouse) | |
695 | |
659
505130d1ddf8
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
584
diff
changeset
|
696 ;;; mouse.el ends here |