Mercurial > hg > xemacs
annotate shared/motion.el @ 34:034ed479179e
new news server, needs acct/pwd in ~/.authinfo
author | Henry S Thompson <ht@inf.ed.ac.uk> |
---|---|
date | Tue, 21 Nov 2023 15:52:12 +0000 |
parents | 107d592c5f4a |
children |
rev | line source |
---|---|
0
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
1 ;;; Copyright (C) 1990 Alan M. Carroll |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
2 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
3 ;;; This file is for use with Epoch, a modified version of GNU Emacs. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
4 ;;; Requires Epoch 3.2 or later. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
5 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
6 ;;; This code is distributed in the hope that it will be useful, |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
7 ;;; bute WITHOUT ANY WARRANTY. No author or distributor accepts |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
8 ;;; responsibility to anyone for the consequences of using this code |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
9 ;;; or for whether it serves any particular purpose or works at all, |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
10 ;;; unless explicitly stated in a written agreement. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
11 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
12 ;;; Everyone is granted permission to copy, modify and redistribute |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
13 ;;; this code, but only under the conditions described in the |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
14 ;;; GNU Emacs General Public License, except the original author nor his |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
15 ;;; agents are bound by the License in their use of this code. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
16 ;;; (These special rights for the author in no way restrict the rights of |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
17 ;;; others given in the License or this prologue) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
18 ;;; A copy of this license is supposed to have been given to you along |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
19 ;;; with Epoch so you can know your rights and responsibilities. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
20 ;;; It should be in a file named COPYING. Among other things, the |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
21 ;;; copyright notice and this notice must be preserved on all copies. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
22 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
23 (provide 'motion) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
24 (require 'button) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
25 (require 'mouse) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
26 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
27 ;;; version tohandle mouse stuff |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
28 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
29 ;;; [cjl] now use primitive epoch::move-button when possible. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
30 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
31 (defvar horizontal-drag-inc 5 "Number of columns to scroll when the pointer is to the left or right of the window") |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
32 (defvar vertical-drag-inc 2 "Number of lines to scroll when the pointer is above or below the edge of the window") |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
33 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
34 (defvar mouse::downp nil "State variable for mouse dragging internals") |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
35 (defvar mouse::last-point -1 "Last location of a motion event") |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
36 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
37 (make-variable-buffer-local 'drag-button) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
38 (make-variable-buffer-local 'mouse-down-marker) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
39 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
40 (defvar motion::attribute (reserve-attribute) "Attribute for drag buttons") |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
41 (setq epoch::buttons-modify-buffer nil) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
42 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
43 (defvar motion::style nil "style used by drag buttons") |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
44 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
45 ;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
46 ;; Set window-setup-hook to call motion::init(), which sets default |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
47 ;; style for button dragging |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
48 ;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
49 (epoch-add-setup-hook 'motion::init) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
50 (defun motion::init () |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
51 (and (not motion::style) (setq motion::style (make-style))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
52 (set-style-foreground motion::style (foreground)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
53 (set-style-background motion::style (background)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
54 (set-style-underline motion::style (foreground)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
55 (set-attribute-style motion::attribute motion::style) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
56 ;; enable the handler |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
57 (push-event 'motion 'motion::handler) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
58 ;; set up hints on all the current screens |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
59 (dolist (s (screen-list t)) (epoch::set-motion-hints t s)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
60 ;; enable hints on future screens |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
61 (push '(motion-hints t) epoch::screen-properties) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
62 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
63 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
64 (setq-default drag-button nil) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
65 (setq-default mouse-down-marker nil) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
66 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
67 ;;; ------------------------------------------------------------------------ |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
68 (defun set-mouse-marker (&optional location) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
69 (if (null mouse-down-marker) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
70 (setq mouse-down-marker (make-marker)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
71 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
72 (set-marker mouse-down-marker (or location (point))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
73 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
74 ;;; -------------------------------------------------------------------------- |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
75 ;;; generic arg is a list of ( POINT BUFFER WINDOW SCREEN ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
76 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
77 (defun end-mouse-drag (arg) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
78 (setq mouse::last-point -1) ;always do this cleanup |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
79 (when mouse::downp |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
80 (setq mouse::downp nil) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
81 (mouse::copy-button drag-button) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
82 (if (buttonp drag-button) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
83 (if (<= (point) (button-start drag-button)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
84 (progn |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
85 (push-mark (button-end drag-button) t) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
86 (goto-char (button-start drag-button)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
87 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
88 ;; ELSE point is past drag button start |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
89 (progn |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
90 (push-mark (button-start drag-button) t) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
91 (goto-char (button-end drag-button)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
92 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
93 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
94 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
95 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
96 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
97 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
98 (defun start-mouse-drag (arg) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
99 (when arg |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
100 (setq mouse::downp 'start) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
101 (mouse::set-point arg) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
102 (set-mouse-marker) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
103 (setq mouse::last-point (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
104 (if drag-button |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
105 (progn (delete-button drag-button) (setq drag-button nil) ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
106 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
107 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
108 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
109 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
110 (defun extend-mouse-drag (arg) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
111 (setq mouse::downp 'extend) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
112 (let |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
113 ( |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
114 (m1 (and drag-button (button-start drag-button))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
115 (m2 (and drag-button (button-end drag-button))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
116 (spot (car arg)) ;point of the mouse click. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
117 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
118 (if (null m1) (setq m1 0)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
119 (if (null m2) (setq m2 0)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
120 (cond |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
121 ((or (null drag-button) (null mouse-down-marker)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
122 (setq drag-button (add-button (point) spot motion::attribute) ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
123 (set-mouse-marker) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
124 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
125 ((<= spot m1) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
126 (setq drag-button (move-button drag-button spot m2) ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
127 (set-mouse-marker m2) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
128 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
129 ((>= spot m2) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
130 (setq drag-button (move-button drag-button m1 spot) ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
131 (set-mouse-marker m1) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
132 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
133 ((<= mouse-down-marker spot) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
134 (setq drag-button (move-button drag-button m1 spot) ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
135 (set-mouse-marker m1) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
136 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
137 (t |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
138 (setq drag-button (move-button drag-button spot m2) ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
139 (set-mouse-marker m2) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
140 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
141 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
142 (epoch::redisplay-screen) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
143 (setq mouse::last-point (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
144 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
145 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
146 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
147 ;;; ------------------------------------------------------------------------ |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
148 ;;; Define the handler |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
149 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
150 (defun motion::handler (type value scr) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
151 (if (null mouse-down-marker) (set-mouse-marker)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
152 (if (and (boundp 'mouse::downp) mouse::downp) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
153 (mouse-sweep-update) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
154 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
155 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
156 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
157 (defun mouse-sweep-update() |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
158 (let* |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
159 (x y pos drag-m1 drag-m2 pnt orig-m1 orig-m2 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
160 (out-of-bounds t) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
161 (epoch::event-handler-abort nil) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
162 (w (selected-window)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
163 (w-edges (window-edges w)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
164 (left (car w-edges)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
165 (top (elt w-edges 1)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
166 (right (- (elt w-edges 2) (+ 2 left))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
167 (bottom (- (elt w-edges 3) (+ 2 top))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
168 ever |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
169 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
170 (if drag-button |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
171 (progn (setq orig-m1 (or (button-start drag-button) -1)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
172 (setq orig-m2 (or (button-end drag-button) -1))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
173 (progn (setq orig-m1 mouse-down-marker) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
174 (setq orig-m2 (point)))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
175 (while |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
176 (and |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
177 out-of-bounds |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
178 (setq pos (query-mouse)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
179 (/= 0 (logand mouse-any-mask (elt pos 2))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
180 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
181 ;;convert to window relative co-ordinates |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
182 (setq x (- (car pos) left)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
183 (setq y (- (elt pos 1) top)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
184 (setq out-of-bounds |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
185 (not (and (<= 0 y) (<= y bottom) (<= 0 x) (<= x right))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
186 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
187 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
188 ;; scrolling conditions |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
189 (condition-case errno |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
190 (progn |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
191 (if (< y 0) (scroll-down vertical-drag-inc)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
192 (if (> y bottom) (scroll-up vertical-drag-inc)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
193 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
194 (error ) ;nothing, just catch it |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
195 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
196 (if (< x 0) (scroll-right horizontal-drag-inc)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
197 (if (> x right) (scroll-left horizontal-drag-inc)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
198 (setq y (max 0 (min bottom y))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
199 (setq x (max 0 (min right x))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
200 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
201 (setq pnt (car (epoch::coords-to-point (+ x left) (+ y top)))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
202 (when (/= mouse::last-point pnt) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
203 (if (> mouse-down-marker pnt) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
204 (progn |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
205 (setq drag-m1 pnt) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
206 (setq drag-m2 (marker-position mouse-down-marker)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
207 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
208 (progn |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
209 (setq drag-m1 (marker-position mouse-down-marker)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
210 (setq drag-m2 pnt) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
211 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
212 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
213 ;; don't move for trivial reasons |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
214 (when (or ever (/= drag-m1 orig-m1) (/= drag-m2 orig-m2)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
215 (setq ever t) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
216 (if (not drag-button) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
217 (setq drag-button |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
218 (add-button mouse-down-marker |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
219 (point) motion::attribute ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
220 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
221 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
222 (move-button drag-button drag-m1 drag-m2) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
223 (epoch::redisplay-screen) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
224 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
225 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
226 (setq mouse::last-point pnt) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
227 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
228 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
229 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
230 ;;; ------------------------------------------------------------------------ |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
231 ;;; Code for selecting lines using motion events. Assumes that the line is |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
232 ;;; left unmarked on button up |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
233 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
234 (defvar mouse::line-button nil "Button for selected line") |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
235 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
236 (defun mouse-select-line-start (arg) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
237 (mouse::set-point arg) ;go there |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
238 (setq mouse::last-point (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
239 (let ( bol ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
240 (save-excursion |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
241 (beginning-of-line) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
242 (setq bol (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
243 (end-of-line) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
244 (setq mouse::line-button (add-button bol (point) motion::attribute)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
245 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
246 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
247 (push-event 'motion 'mouse-select-line-update) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
248 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
249 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
250 (defun mouse-select-line-end (arg) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
251 (setq mouse::last-point -1) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
252 (when mouse::line-button (delete-button mouse::line-button)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
253 (pop-event 'motion) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
254 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
255 ;;; |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
256 (defun mouse-select-line-update (type value scr) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
257 (let* |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
258 ( |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
259 y |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
260 pos |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
261 bol |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
262 (out-of-bounds t) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
263 (epoch::event-handler-abort nil) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
264 (w-edges (window-edges (selected-window))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
265 (top (elt w-edges 1)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
266 (bottom (- (elt w-edges 3) (+ 2 top))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
267 max-vscroll |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
268 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
269 (while |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
270 (and |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
271 out-of-bounds |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
272 (setq pos (query-mouse)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
273 (/= 0 (logand mouse-any-mask (elt pos 2))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
274 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
275 ;;convert to window relative co-ordinates |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
276 (setq y (- (elt pos 1) top)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
277 (setq out-of-bounds (not (and (<= 0 y) (<= y bottom)))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
278 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
279 ;; Scrolling hard, because of possibly shrink-wrapped windows. |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
280 ;; set max-vscroll to be the most we could scroll down and not have |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
281 ;; empty lines at the bottom |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
282 (save-excursion |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
283 (move-to-window-line bottom) ;go to the last line in the window |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
284 (setq max-vscroll |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
285 (- vertical-drag-inc (forward-line vertical-drag-inc)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
286 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
287 (if (and (> max-vscroll 0) (eobp) (= 0 (current-column))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
288 (decf max-vscroll) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
289 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
290 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
291 (condition-case errno |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
292 (progn |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
293 (if (< y 0) (scroll-down vertical-drag-inc)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
294 (if (> y bottom) (scroll-up (min max-vscroll vertical-drag-inc))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
295 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
296 ;; CONDITIONS |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
297 (error) ;nothing, just want to catch it |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
298 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
299 (setq y (max 0 (min bottom y))) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
300 |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
301 ;;move to the new point |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
302 (move-to-window-line y) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
303 (beginning-of-line) (setq bol (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
304 (end-of-line) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
305 (when (/= mouse::last-point (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
306 (move-button mouse::line-button bol (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
307 (epoch::redisplay-screen) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
308 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
309 (setq mouse::last-point (point)) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
310 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
311 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
312 ) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
313 ;;; -------------------------------------------------------------------------- |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
314 ;;; install all our variouse handlers |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
315 (global-set-mouse mouse-left mouse-down 'start-mouse-drag) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
316 (global-set-mouse mouse-left mouse-up 'end-mouse-drag) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
317 (global-set-mouse mouse-right mouse-down 'extend-mouse-drag) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
318 (global-set-mouse mouse-right mouse-up 'end-mouse-drag) |
107d592c5f4a
DICE versions, used by pers/common, recursive, I think/hope
Henry S. Thompson <ht@inf.ed.ac.uk>
parents:
diff
changeset
|
319 (global-set-mouse mouse-middle mouse-down 'mouse::paste-cut-buffer) |