Mercurial > emacs
annotate lisp/tooltip.el @ 58195:c12b583f54b9
Fixed these problems:
** Clicking on partially visible lines fails
From: David Kastrup <dak@gnu.org>
Date: 27 Apr 2004 16:42:58 +0200
I had gnus display a mouse-highlighted line (a URL from browse-url)
partially at the bottom of its window. If I click with middle mouse
key on it, the window gets recentered while I hold the mouse key
pressed. If I release it, the window returns into its old position
(cursor in top row) and nothing happens, presumably because the click
was not registered on the line itself, but on the magically
recentered version.
That is a nuisance. Recentering of even partially visible click
targets should only happen if window-point moves there, but not at
the time of the click. From the moment I hold down a key until it
gets released, the displayed window portion should not change, with
the sole exception of scrolling when dragging at the edge of the
screen.
(progn
(setq line-spacing 4)
(dotimes (i (window-height))
(insert "\n" (int-to-string i)))
(forward-line -2)
(recenter -1))
** Can't drag modeline when mouse-autoselect-window is set
From: Klaus Zeitler <kzeitler@lucent.com>
Date: Mon, 11 Oct 2004 11:14:49 +0200
1. start emacs -q --no-site-file
2. set variable mouse-autoselect-window to t
3. split-window-vertically
now I can drag the modeline only upwards but not downwards
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Sat, 13 Nov 2004 01:40:36 +0000 |
parents | 7048d946d9df |
children | 02e7f3437fea cb7f41387eb3 |
rev | line source |
---|---|
45236 | 1 ;;; tooltip.el --- show tooltip windows |
25003 | 2 |
58155 | 3 ;; Copyright (C) 1997, 1999, 2000, 2001, 2004 Free Software Foundation, Inc. |
25003 | 4 |
5 ;; Author: Gerd Moellmann <gerd@acm.org> | |
6 ;; Keywords: help c mouse tools | |
7 | |
8 ;; This file is part of GNU Emacs. | |
9 | |
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 | |
12 ;; the Free Software Foundation; either version 2, or (at your option) | |
13 ;; any later version. | |
14 | |
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. | |
19 | |
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 the | |
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
23 ;; Boston, MA 02111-1307, USA. | |
24 | |
25 ;;; Commentary: | |
26 | |
27 ;;; Code: | |
28 | |
58163
7048d946d9df
(require): Explain why CL is needed.
Nick Roberts <nickrob@snap.net.nz>
parents:
58155
diff
changeset
|
29 (eval-when-compile (require 'cl)) ; for case macro |
58155 | 30 |
25003 | 31 |
32 ;;; Customizable settings | |
33 | |
34 (defgroup tooltip nil | |
35 "Customization group for the `tooltip' package." | |
36 :group 'help | |
37755
cf803b8f08ad
(tooltip) <defgroup>: Put it in `gud' group instead
Gerd Moellmann <gerd@gnu.org>
parents:
35401
diff
changeset
|
37 :group 'gud |
25003 | 38 :group 'mouse |
39 :group 'tools | |
25332
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
40 :version "21.1" |
25003 | 41 :tag "Tool Tips") |
42 | |
25332
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
43 (defvar tooltip-mode) |
25003 | 44 |
40679
3c4df1ce9e4c
(tooltip-delay): Decrease to 0.7.
Eli Zaretskii <eliz@gnu.org>
parents:
40376
diff
changeset
|
45 (defcustom tooltip-delay 0.7 |
25003 | 46 "Seconds to wait before displaying a tooltip the first time." |
47 :tag "Delay" | |
48 :type 'number | |
49 :group 'tooltip) | |
50 | |
51 (defcustom tooltip-short-delay 0.1 | |
52 "Seconds to wait between subsequent tooltips on different items." | |
53 :tag "Short delay" | |
54 :type 'number | |
55 :group 'tooltip) | |
56 | |
57 (defcustom tooltip-recent-seconds 1 | |
25332
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
58 "Display tooltips if changing tip items within this many seconds. |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
59 Do so after `tooltip-short-delay'." |
25003 | 60 :tag "Recent seconds" |
61 :type 'number | |
62 :group 'tooltip) | |
63 | |
40679
3c4df1ce9e4c
(tooltip-delay): Decrease to 0.7.
Eli Zaretskii <eliz@gnu.org>
parents:
40376
diff
changeset
|
64 (defcustom tooltip-hide-delay 10 |
35401
c00e94a506a2
(tooltip-hide-delay): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
35069
diff
changeset
|
65 "Hide tooltips automatically after this many seconds." |
c00e94a506a2
(tooltip-hide-delay): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
35069
diff
changeset
|
66 :tag "Hide delay" |
c00e94a506a2
(tooltip-hide-delay): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
35069
diff
changeset
|
67 :type 'number |
c00e94a506a2
(tooltip-hide-delay): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
35069
diff
changeset
|
68 :group 'tooltip) |
c00e94a506a2
(tooltip-hide-delay): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
35069
diff
changeset
|
69 |
33587
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
70 (defcustom tooltip-x-offset nil |
46025
ce0d438fe05e
(tooltip-x-offset, tooltip-y-offset): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
45571
diff
changeset
|
71 "X offset, in pixels, for the display of tooltips. |
33587
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
72 The offset is relative to the position of the mouse. It must |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
73 be chosen so that the tooltip window doesn't contain the mouse |
40173
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
74 when it pops up. If the value is nil, the default offset is 5 |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
75 pixels. |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
76 |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
77 If `tooltip-frame-parameters' includes the `left' parameter, |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
78 the value of `tooltip-x-offset' is ignored." |
33587
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
79 :tag "X offset" |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
80 :type '(choice (const :tag "Default" nil) |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
81 (integer :tag "Offset" :value 1)) |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
82 :group 'tooltip) |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
83 |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
84 (defcustom tooltip-y-offset nil |
46025
ce0d438fe05e
(tooltip-x-offset, tooltip-y-offset): Doc fixes.
Richard M. Stallman <rms@gnu.org>
parents:
45571
diff
changeset
|
85 "Y offset, in pixels, for the display of tooltips. |
33587
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
86 The offset is relative to the position of the mouse. It must |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
87 be chosen so that the tooltip window doesn't contain the mouse |
40173
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
88 when it pops up. If the value is nil, the default offset is -10 |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
89 pixels. |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
90 |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
91 If `tooltip-frame-parameters' includes the `top' parameter, |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
92 the value of `tooltip-y-offset' is ignored." |
33587
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
93 :tag "Y offset" |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
94 :type '(choice (const :tag "Default" nil) |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
95 (integer :tag "Offset" :value 1)) |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
96 :group 'tooltip) |
7d4c3fcd3421
(tooltip-x-offset, tooltip-y-offset): New user-options.
Gerd Moellmann <gerd@gnu.org>
parents:
33356
diff
changeset
|
97 |
25003 | 98 (defcustom tooltip-frame-parameters |
99 '((name . "tooltip") | |
100 (internal-border-width . 5) | |
101 (border-width . 1)) | |
40173
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
102 "Frame parameters used for tooltips. |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
103 |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
104 If `left' or `top' parameters are included, they specify the absolute |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
105 position to pop up the tooltip." |
25003 | 106 :type 'sexp |
107 :tag "Frame Parameters" | |
108 :group 'tooltip) | |
109 | |
35043
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
110 (defface tooltip |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
111 '((((class color)) |
52031
5163fa137977
(defface tooltip): Inherit from variable-pitch.
John Paul Wallington <jpw@pobox.com>
parents:
49597
diff
changeset
|
112 :background "lightyellow" |
5163fa137977
(defface tooltip): Inherit from variable-pitch.
John Paul Wallington <jpw@pobox.com>
parents:
49597
diff
changeset
|
113 :foreground "black" |
5163fa137977
(defface tooltip): Inherit from variable-pitch.
John Paul Wallington <jpw@pobox.com>
parents:
49597
diff
changeset
|
114 :inherit variable-pitch) |
5163fa137977
(defface tooltip): Inherit from variable-pitch.
John Paul Wallington <jpw@pobox.com>
parents:
49597
diff
changeset
|
115 (t |
5163fa137977
(defface tooltip): Inherit from variable-pitch.
John Paul Wallington <jpw@pobox.com>
parents:
49597
diff
changeset
|
116 :inherit variable-pitch)) |
35043
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
117 "Face for tooltips." |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
118 :group 'tooltip) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
119 |
25003 | 120 (defcustom tooltip-gud-tips-p nil |
48651
572f41d9a2ea
(tooltip-gud-tips-p): Undo previous change.
Richard M. Stallman <rms@gnu.org>
parents:
48601
diff
changeset
|
121 "*Non-nil means show tooltips in GUD sessions." |
25003 | 122 :type 'boolean |
123 :tag "GUD" | |
33140
61f4c87b845c
(tooltip-gud-tips-setup): New function.
Miles Bader <miles@gnu.org>
parents:
32431
diff
changeset
|
124 :set #'(lambda (symbol on) |
48572
67d16fb6f6c8
(tooltip-gud-tips-setup): Remove.
Nick Roberts <nickrob@snap.net.nz>
parents:
48517
diff
changeset
|
125 (setq tooltip-gud-tips-p on)) |
25003 | 126 :group 'tooltip) |
127 | |
128 (defcustom tooltip-gud-modes '(gud-mode c-mode c++-mode) | |
129 "List of modes for which to enable GUD tips." | |
130 :type 'sexp | |
131 :tag "GUD modes" | |
132 :group 'tooltip) | |
133 | |
134 (defcustom tooltip-gud-display | |
135 '((eq (tooltip-event-buffer tooltip-gud-event) | |
136 (marker-buffer overlay-arrow-position))) | |
137 "List of forms determining where GUD tooltips are displayed. | |
138 | |
139 Forms in the list are combined with AND. The default is to display | |
140 only tooltips in the buffer containing the overlay arrow." | |
141 :type 'sexp | |
142 :tag "GUD buffers predicate" | |
143 :group 'tooltip) | |
144 | |
32431
a35cc9700ff7
* tooltip.el (tooltip-use-echo-area): New user variable.
Sam Steingold <sds@gnu.org>
parents:
30481
diff
changeset
|
145 (defcustom tooltip-use-echo-area nil |
33923 | 146 "Use the echo area instead of tooltip frames. |
147 This is only relevant GUD display, since otherwise it is equivalent to | |
148 turning off Tooltip mode." | |
32431
a35cc9700ff7
* tooltip.el (tooltip-use-echo-area): New user variable.
Sam Steingold <sds@gnu.org>
parents:
30481
diff
changeset
|
149 :type 'boolean |
33925 | 150 :tag "Use echo area" |
32431
a35cc9700ff7
* tooltip.el (tooltip-use-echo-area): New user variable.
Sam Steingold <sds@gnu.org>
parents:
30481
diff
changeset
|
151 :group 'tooltip) |
a35cc9700ff7
* tooltip.el (tooltip-use-echo-area): New user variable.
Sam Steingold <sds@gnu.org>
parents:
30481
diff
changeset
|
152 |
25003 | 153 |
154 ;;; Variables that are not customizable. | |
155 | |
156 (defvar tooltip-hook nil | |
157 "Functions to call to display tooltips. | |
158 Each function is called with one argument EVENT which is a copy of | |
159 the last mouse movement event that occurred.") | |
160 | |
161 (defvar tooltip-timeout-id nil | |
162 "The id of the timeout started when Emacs becomes idle.") | |
163 | |
164 (defvar tooltip-last-mouse-motion-event nil | |
165 "A copy of the last mouse motion event seen.") | |
166 | |
167 (defvar tooltip-hide-time nil | |
168 "Time when the last tooltip was hidden.") | |
169 | |
170 | |
171 ;;; Event accessors | |
172 | |
173 (defun tooltip-event-buffer (event) | |
174 "Return the buffer over which event EVENT occurred. | |
175 This might return nil if the event did not occur over a buffer." | |
176 (let ((window (posn-window (event-end event)))) | |
177 (and window (window-buffer window)))) | |
178 | |
179 | |
180 ;;; Switching tooltips on/off | |
181 | |
182 ;; We don't set track-mouse globally because this is a big redisplay | |
183 ;; problem in buffers having a pre-command-hook or such installed, | |
184 ;; which does a set-buffer, like the summary buffer of Gnus. Calling | |
185 ;; set-buffer prevents redisplay optimizations, so every mouse motion | |
186 ;; would be accompanied by a full redisplay. | |
187 | |
188 ;;;###autoload | |
189 (defun tooltip-mode (&optional arg) | |
190 "Mode for tooltip display. | |
191 With ARG, turn tooltip mode on if and only if ARG is positive." | |
192 (interactive "P") | |
34689
e045e0e60223
(tooltip-mode): Signal an error if x-show-tip
Gerd Moellmann <gerd@gnu.org>
parents:
34540
diff
changeset
|
193 (unless (fboundp 'x-show-tip) |
e045e0e60223
(tooltip-mode): Signal an error if x-show-tip
Gerd Moellmann <gerd@gnu.org>
parents:
34540
diff
changeset
|
194 (error "Sorry, tooltips are not yet available on this system")) |
25003 | 195 (let* ((on (if arg |
196 (> (prefix-numeric-value arg) 0) | |
197 (not tooltip-mode))) | |
198 (hook-fn (if on 'add-hook 'remove-hook))) | |
199 (setq tooltip-mode on) | |
200 (funcall hook-fn 'change-major-mode-hook 'tooltip-change-major-mode) | |
201 (tooltip-activate-mouse-motions-if-enabled) | |
202 (funcall hook-fn 'pre-command-hook 'tooltip-hide) | |
203 (funcall hook-fn 'tooltip-hook 'tooltip-gud-tips) | |
204 (funcall hook-fn 'tooltip-hook 'tooltip-help-tips) | |
205 (setq show-help-function (if on 'tooltip-show-help-function nil)) | |
206 ;; `ignore' is the default binding for mouse movements. | |
207 (define-key global-map [mouse-movement] | |
48572
67d16fb6f6c8
(tooltip-gud-tips-setup): Remove.
Nick Roberts <nickrob@snap.net.nz>
parents:
48517
diff
changeset
|
208 (if on 'tooltip-mouse-motion 'ignore)))) |
25003 | 209 |
210 | |
211 ;;; Timeout for tooltip display | |
212 | |
213 (defun tooltip-delay () | |
214 "Return the delay in seconds for the next tooltip." | |
215 (let ((delay tooltip-delay) | |
30481 | 216 (now (float-time))) |
25003 | 217 (when (and tooltip-hide-time |
218 (< (- now tooltip-hide-time) tooltip-recent-seconds)) | |
219 (setq delay tooltip-short-delay)) | |
220 delay)) | |
221 | |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
222 (defun tooltip-cancel-delayed-tip () |
25003 | 223 "Disable the tooltip timeout." |
224 (when tooltip-timeout-id | |
225 (disable-timeout tooltip-timeout-id) | |
226 (setq tooltip-timeout-id nil))) | |
227 | |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
228 (defun tooltip-start-delayed-tip () |
25003 | 229 "Add a one-shot timeout to call function tooltip-timeout." |
230 (setq tooltip-timeout-id | |
231 (add-timeout (tooltip-delay) 'tooltip-timeout nil))) | |
232 | |
233 (defun tooltip-timeout (object) | |
234 "Function called when timer with id tooltip-timeout-id fires." | |
235 (run-hook-with-args-until-success 'tooltip-hook | |
236 tooltip-last-mouse-motion-event)) | |
237 | |
238 | |
239 ;;; Reacting on mouse movements | |
240 | |
241 (defun tooltip-change-major-mode () | |
242 "Function added to `change-major-mode-hook' when tooltip mode is on." | |
243 (add-hook 'post-command-hook 'tooltip-activate-mouse-motions-if-enabled)) | |
244 | |
245 (defun tooltip-activate-mouse-motions-if-enabled () | |
246 "Reconsider for all buffers whether mouse motion events are desired." | |
247 (remove-hook 'post-command-hook 'tooltip-activate-mouse-motions-if-enabled) | |
248 (let ((buffers (buffer-list))) | |
249 (save-excursion | |
250 (while buffers | |
251 (set-buffer (car buffers)) | |
252 (if (and tooltip-mode | |
253 tooltip-gud-tips-p | |
254 (memq major-mode tooltip-gud-modes)) | |
255 (tooltip-activate-mouse-motions t) | |
256 (tooltip-activate-mouse-motions nil)) | |
257 (setq buffers (cdr buffers)))))) | |
258 | |
45571
04484b8dacdc
(tooltip-mouse-motions-active): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45236
diff
changeset
|
259 (defvar tooltip-mouse-motions-active nil |
04484b8dacdc
(tooltip-mouse-motions-active): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45236
diff
changeset
|
260 "Locally t in a buffer if tooltip processing of mouse motion is enabled.") |
25003 | 261 |
262 (defun tooltip-activate-mouse-motions (activatep) | |
263 "Activate/deactivate mouse motion events for the current buffer. | |
264 ACTIVATEP non-nil means activate mouse motion events." | |
265 (if activatep | |
266 (progn | |
45571
04484b8dacdc
(tooltip-mouse-motions-active): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45236
diff
changeset
|
267 (make-local-variable 'tooltip-mouse-motions-active) |
04484b8dacdc
(tooltip-mouse-motions-active): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45236
diff
changeset
|
268 (setq tooltip-mouse-motions-active t) |
25003 | 269 (make-local-variable 'track-mouse) |
270 (setq track-mouse t)) | |
45571
04484b8dacdc
(tooltip-mouse-motions-active): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45236
diff
changeset
|
271 (when tooltip-mouse-motions-active |
04484b8dacdc
(tooltip-mouse-motions-active): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45236
diff
changeset
|
272 (kill-local-variable 'tooltip-mouse-motions-active) |
04484b8dacdc
(tooltip-mouse-motions-active): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
45236
diff
changeset
|
273 (kill-local-variable 'track-mouse)))) |
25003 | 274 |
275 (defun tooltip-mouse-motion (event) | |
276 "Command handler for mouse movement events in `global-map'." | |
277 (interactive "e") | |
278 (tooltip-hide) | |
279 (when (car (mouse-pixel-position)) | |
280 (setq tooltip-last-mouse-motion-event (copy-sequence event)) | |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
281 (tooltip-start-delayed-tip))) |
25003 | 282 |
283 | |
284 ;;; Displaying tips | |
285 | |
35043
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
286 (defun tooltip-set-param (alist key value) |
40178
1dab42ecd751
(tooltip-set-param): Doc fix.
Eli Zaretskii <eliz@gnu.org>
parents:
40173
diff
changeset
|
287 "Change the value of KEY in alist ALIST to VALUE. |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48925
diff
changeset
|
288 If there's no association for KEY in ALIST, add one, otherwise |
35043
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
289 change the existing association. Value is the resulting alist." |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
290 (let ((param (assq key alist))) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
291 (if (consp param) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
292 (setcdr param value) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
293 (push (cons key value) alist)) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
294 alist)) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
295 |
25003 | 296 (defun tooltip-show (text) |
40173
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
297 "Show a tooltip window displaying TEXT. |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
298 |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
299 Text larger than `x-max-tooltip-size' (which see) is clipped. |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
300 |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
301 If the alist in `tooltip-frame-parameters' includes `left' and `top' |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
302 parameters, they determine the x and y position where the tooltip |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
303 is displayed. Otherwise, the tooltip pops at offsets specified by |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
304 `tooltip-x-offset' and `tooltip-y-offset' from the current mouse |
c4955867228d
(tooltip-x-offset, tooltip-y-offset): Mention in the
Eli Zaretskii <eliz@gnu.org>
parents:
37755
diff
changeset
|
305 position." |
32431
a35cc9700ff7
* tooltip.el (tooltip-use-echo-area): New user variable.
Sam Steingold <sds@gnu.org>
parents:
30481
diff
changeset
|
306 (if tooltip-use-echo-area |
a35cc9700ff7
* tooltip.el (tooltip-use-echo-area): New user variable.
Sam Steingold <sds@gnu.org>
parents:
30481
diff
changeset
|
307 (message "%s" text) |
34540
e1e4704de6ed
(tooltip-show): If an error is signaled in
Gerd Moellmann <gerd@gnu.org>
parents:
33925
diff
changeset
|
308 (condition-case error |
35043
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
309 (let ((params (copy-sequence tooltip-frame-parameters)) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
310 (fg (face-attribute 'tooltip :foreground)) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
311 (bg (face-attribute 'tooltip :background))) |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
312 (when (stringp fg) |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
313 (setq params (tooltip-set-param params 'foreground-color fg)) |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
314 (setq params (tooltip-set-param params 'border-color fg))) |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
315 (when (stringp bg) |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
316 (setq params (tooltip-set-param params 'background-color bg))) |
35043
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
317 (x-show-tip (propertize text 'face 'tooltip) |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
318 (selected-frame) |
35044 | 319 params |
35401
c00e94a506a2
(tooltip-hide-delay): New user-option.
Gerd Moellmann <gerd@gnu.org>
parents:
35069
diff
changeset
|
320 tooltip-hide-delay |
35043
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
321 tooltip-x-offset |
f7ca93e40e16
(tooltip-frame-parameters): Remove colors.
Gerd Moellmann <gerd@gnu.org>
parents:
34689
diff
changeset
|
322 tooltip-y-offset)) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48925
diff
changeset
|
323 (error |
34540
e1e4704de6ed
(tooltip-show): If an error is signaled in
Gerd Moellmann <gerd@gnu.org>
parents:
33925
diff
changeset
|
324 (message "Error while displaying tooltip: %s" error) |
e1e4704de6ed
(tooltip-show): If an error is signaled in
Gerd Moellmann <gerd@gnu.org>
parents:
33925
diff
changeset
|
325 (sit-for 1) |
e1e4704de6ed
(tooltip-show): If an error is signaled in
Gerd Moellmann <gerd@gnu.org>
parents:
33925
diff
changeset
|
326 (message "%s" text))))) |
e1e4704de6ed
(tooltip-show): If an error is signaled in
Gerd Moellmann <gerd@gnu.org>
parents:
33925
diff
changeset
|
327 |
25003 | 328 (defun tooltip-hide (&optional ignored-arg) |
329 "Hide a tooltip, if one is displayed. | |
330 Value is non-nil if tooltip was open." | |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
331 (tooltip-cancel-delayed-tip) |
25003 | 332 (when (x-hide-tip) |
30481 | 333 (setq tooltip-hide-time (float-time)))) |
25003 | 334 |
335 | |
336 ;;; Debugger-related functions | |
337 | |
338 (defun tooltip-identifier-from-point (point) | |
339 "Extract the identifier at POINT, if any. | |
340 Value is nil if no identifier exists at point. Identifier extraction | |
341 is based on the current syntax table." | |
342 (save-excursion | |
343 (goto-char point) | |
344 (let ((start (progn (skip-syntax-backward "w_") (point)))) | |
345 (unless (looking-at "[0-9]") | |
346 (skip-syntax-forward "w_") | |
347 (when (> (point) start) | |
348 (buffer-substring start (point))))))) | |
349 | |
350 (defmacro tooltip-region-active-p () | |
351 "Value is non-nil if the region is currently active." | |
352 (if (string-match "^GNU" (emacs-version)) | |
353 `(and transient-mark-mode mark-active) | |
354 `(region-active-p))) | |
355 | |
356 (defun tooltip-expr-to-print (event) | |
357 "Return an expression that should be printed for EVENT. | |
358 If a region is active and the mouse is inside the region, print | |
359 the region. Otherwise, figure out the identifier around the point | |
360 where the mouse is." | |
361 (save-excursion | |
362 (set-buffer (tooltip-event-buffer event)) | |
363 (let ((point (posn-point (event-end event)))) | |
364 (if (tooltip-region-active-p) | |
365 (when (and (<= (region-beginning) point) (<= point (region-end))) | |
366 (buffer-substring (region-beginning) (region-end))) | |
367 (tooltip-identifier-from-point point))))) | |
368 | |
369 (defun tooltip-process-prompt-regexp (process) | |
370 "Return regexp matching the prompt of PROCESS at the end of a string. | |
371 The prompt is taken from the value of COMINT-PROMPT-REGEXP in the buffer | |
372 of PROCESS." | |
373 (let ((prompt-regexp (save-excursion | |
374 (set-buffer (process-buffer process)) | |
375 comint-prompt-regexp))) | |
376 ;; Most start with `^' but the one for `sdb' cannot be easily | |
377 ;; stripped. Code the prompt for `sdb' fixed here. | |
378 (if (= (aref prompt-regexp 0) ?^) | |
379 (setq prompt-regexp (substring prompt-regexp 1)) | |
380 (setq prompt-regexp "\\*")) | |
381 (concat "\n*" prompt-regexp "$"))) | |
382 | |
383 (defun tooltip-strip-prompt (process output) | |
384 "Return OUTPUT with any prompt of PROCESS stripped from its end." | |
385 (let ((prompt-regexp (tooltip-process-prompt-regexp process))) | |
386 (save-match-data | |
387 (when (string-match prompt-regexp output) | |
388 (setq output (substring output 0 (match-beginning 0))))) | |
389 output)) | |
390 | |
391 | |
392 ;;; Tips for `gud' | |
393 | |
394 (defvar tooltip-gud-original-filter nil | |
395 "Process filter to restore after GUD output has been received.") | |
396 | |
397 (defvar tooltip-gud-dereference nil | |
398 "Non-nil means print expressions with a `*' in front of them. | |
399 For C this would dereference a pointer expression.") | |
400 | |
401 (defvar tooltip-gud-event nil | |
402 "The mouse movement event that led to a tooltip display. | |
403 This event can be examined by forms in TOOLTIP-GUD-DISPLAY.") | |
404 | |
405 (defun tooltip-gud-toggle-dereference () | |
27582
42b52d8b6703
(tooltip-gud-tips-p, tooltip-gud-toggle-dereference):
Dave Love <fx@gnu.org>
parents:
25332
diff
changeset
|
406 "Toggle whether tooltips should show `* expr' or `expr'." |
25003 | 407 (interactive) |
408 (setq tooltip-gud-dereference (not tooltip-gud-dereference)) | |
409 (when (interactive-p) | |
410 (message "Dereferencing is now %s." | |
411 (if tooltip-gud-dereference "on" "off")))) | |
412 | |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48925
diff
changeset
|
413 ; This will only display data that comes in one chunk. |
48601
ac47e19224b0
(tooltip-gud-process-output): Handle annotations that
Nick Roberts <nickrob@snap.net.nz>
parents:
48580
diff
changeset
|
414 ; Larger arrays (say 400 elements) are displayed in |
48925
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
415 ; the tootip incompletely and spill over into the gud buffer. |
48601
ac47e19224b0
(tooltip-gud-process-output): Handle annotations that
Nick Roberts <nickrob@snap.net.nz>
parents:
48580
diff
changeset
|
416 ; Switching the process-filter creates timing problems and |
48925
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
417 ; it may be difficult to do better. gdba in gdb-ui.el |
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
418 ; gets round this problem. |
25003 | 419 (defun tooltip-gud-process-output (process output) |
420 "Process debugger output and show it in a tooltip window." | |
421 (set-process-filter process tooltip-gud-original-filter) | |
48925
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
422 (tooltip-show (tooltip-strip-prompt process output))) |
25003 | 423 |
424 (defun tooltip-gud-print-command (expr) | |
425 "Return a suitable command to print the expression EXPR. | |
426 If TOOLTIP-GUD-DEREFERENCE is t, also prepend a `*' to EXPR." | |
427 (when tooltip-gud-dereference | |
428 (setq expr (concat "*" expr))) | |
48572
67d16fb6f6c8
(tooltip-gud-tips-setup): Remove.
Nick Roberts <nickrob@snap.net.nz>
parents:
48517
diff
changeset
|
429 (case gud-minor-mode |
67d16fb6f6c8
(tooltip-gud-tips-setup): Remove.
Nick Roberts <nickrob@snap.net.nz>
parents:
48517
diff
changeset
|
430 ((gdb gdba) (concat "server print " expr)) |
48517
2941d71711f3
(tooltip-gud-print-command): Add server prefix to the
Nick Roberts <nickrob@snap.net.nz>
parents:
46025
diff
changeset
|
431 (dbx (concat "print " expr)) |
25003 | 432 (xdb (concat "p " expr)) |
433 (sdb (concat expr "/")) | |
434 (perldb expr))) | |
30481 | 435 |
25003 | 436 (defun tooltip-gud-tips (event) |
25332
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
437 "Show tip for identifier or selection under the mouse. |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
438 The mouse must either point at an identifier or inside a selected |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
439 region for the tip window to be shown. If tooltip-gud-dereference is t, |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
440 add a `*' in front of the printed expression. |
25003 | 441 |
442 This function must return nil if it doesn't handle EVENT." | |
443 (let (gud-buffer process) | |
444 (when (and (eventp event) | |
445 tooltip-gud-tips-p | |
446 (boundp 'gud-comint-buffer) | |
447 (setq gud-buffer gud-comint-buffer) | |
448 (setq process (get-buffer-process gud-buffer)) | |
449 (posn-point (event-end event)) | |
450 (progn (setq tooltip-gud-event event) | |
451 (eval (cons 'and tooltip-gud-display)))) | |
452 (let ((expr (tooltip-expr-to-print event))) | |
453 (when expr | |
33140
61f4c87b845c
(tooltip-gud-tips-setup): New function.
Miles Bader <miles@gnu.org>
parents:
32431
diff
changeset
|
454 (let ((cmd (tooltip-gud-print-command expr))) |
61f4c87b845c
(tooltip-gud-tips-setup): New function.
Miles Bader <miles@gnu.org>
parents:
32431
diff
changeset
|
455 (unless (null cmd) ; CMD can be nil if unknown debugger |
48925
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
456 (case gud-minor-mode |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48925
diff
changeset
|
457 (gdba (gdb-enqueue-input |
48925
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
458 (list (concat cmd "\n") 'gdb-tooltip-print))) |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48925
diff
changeset
|
459 (t |
48925
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
460 (setq tooltip-gud-original-filter (process-filter process)) |
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
461 (set-process-filter process 'tooltip-gud-process-output) |
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
462 (gud-basic-call cmd))) |
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
463 expr))))))) |
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
464 |
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
465 (defun gdb-tooltip-print () |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48925
diff
changeset
|
466 (tooltip-show |
48925
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
467 (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer) |
cd1c70649388
(tooltip-gud-tips): Output tooltip without switching
Nick Roberts <nickrob@snap.net.nz>
parents:
48651
diff
changeset
|
468 (buffer-string)))) |
25003 | 469 |
470 | |
471 ;;; Tooltip help. | |
472 | |
473 (defvar tooltip-help-message nil | |
474 "The last help message received via `tooltip-show-help-function'.") | |
475 | |
476 (defun tooltip-show-help-function (msg) | |
477 "Function installed as `show-help-function'. | |
478 MSG is either a help string to display, or nil to cancel the display." | |
479 (let ((previous-help tooltip-help-message)) | |
480 (setq tooltip-help-message msg) | |
481 (cond ((null msg) | |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
482 ;; Cancel display. This also cancels a delayed tip, if |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
483 ;; there is one. |
25003 | 484 (tooltip-hide)) |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
485 ((equal previous-help msg) |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
486 ;; Same help as before (but possibly the mouse has moved). |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
487 ;; Keep what we have. |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
488 ) |
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
489 (t |
49597
e88404e8f2cf
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48925
diff
changeset
|
490 ;; A different help. Remove a previous tooltip, and |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
491 ;; display a new one, with some delay. |
25003 | 492 (tooltip-hide) |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
493 (tooltip-start-delayed-tip))))) |
25003 | 494 |
495 (defun tooltip-help-tips (event) | |
496 "Hook function to display a help tooltip. | |
35069
d19eadb47c76
(tooltip-cancel-delayed-tip)
Gerd Moellmann <gerd@gnu.org>
parents:
35044
diff
changeset
|
497 This is installed on the hook `tooltip-hook', which is run when |
42706 | 498 the timer with ID `tooltip-timeout-id' fires. |
25003 | 499 Value is non-nil if this function handled the tip." |
500 (when (stringp tooltip-help-message) | |
501 (tooltip-show tooltip-help-message) | |
502 t)) | |
503 | |
504 | |
33356
73a360d50e18
(tooltip-mode): Add a comment about startup.el
Gerd Moellmann <gerd@gnu.org>
parents:
33140
diff
changeset
|
505 ;;; Do this after all functions have been defined that are called from |
73a360d50e18
(tooltip-mode): Add a comment about startup.el
Gerd Moellmann <gerd@gnu.org>
parents:
33140
diff
changeset
|
506 ;;; `tooltip-mode'. The actual default value of `tooltip-mode' is set |
73a360d50e18
(tooltip-mode): Add a comment about startup.el
Gerd Moellmann <gerd@gnu.org>
parents:
33140
diff
changeset
|
507 ;;; in startup.el. |
25332
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
508 |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
509 ;;;###autoload |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
510 (defcustom tooltip-mode nil |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
511 "Toggle tooltip-mode. |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
512 Setting this variable directly does not take effect; |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
513 use either \\[customize] or the function `tooltip-mode'." |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
514 :set (lambda (symbol value) |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
515 (tooltip-mode (or value 0))) |
c09e05be2f4b
(tooltip-mode): Customize this, per convention.
Dave Love <fx@gnu.org>
parents:
25003
diff
changeset
|
516 :initialize 'custom-initialize-default |
25003 | 517 :type 'boolean |
518 :require 'tooltip | |
519 :group 'tooltip) | |
520 | |
48601
ac47e19224b0
(tooltip-gud-process-output): Handle annotations that
Nick Roberts <nickrob@snap.net.nz>
parents:
48580
diff
changeset
|
521 (provide 'tooltip) |
25003 | 522 |
58155 | 523 ;; arch-tag: 3d61135e-4618-4a78-af28-183f6df5636f |
25003 | 524 ;;; tooltip.el ends here |