;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:53:08 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/tooltip.el
;;; in Emacs version 21.3
;;; with bytecomp version 2.85.4.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.
(if (and (boundp 'emacs-version)
	 (< (aref emacs-version (1- (length emacs-version))) ?A)
	 (or (and (boundp 'epoch::version) epoch::version)
	     (string-lessp emacs-version "19.29")))
    (error "`tooltip.el' was compiled for Emacs 19.29 or later"))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


(byte-code "\301\302!\210\303\302\304\305\306\307\306\310\306\311\306\312\313\314\315\316&\210\317B\304\207" [current-load-list provide tooltip custom-declare-group nil "Customization group for the `tooltip' package." :group help gud mouse tools :version "21.1" :tag "Tool Tips" tooltip-mode] 16)
#@61 Seconds to wait before displaying a tooltip the first time.
(custom-declare-variable 'tooltip-delay '0.7 '(#$ . 916) :tag "Delay" :type 'number :group 'tooltip)
#@65 Seconds to wait between subsequent tooltips on different items.
(custom-declare-variable 'tooltip-short-delay '0.1 '(#$ . 1083) :tag "Short delay" :type 'number :group 'tooltip)
#@101 Display tooltips if changing tip items within this many seconds.
Do so after `tooltip-short-delay'.
(custom-declare-variable 'tooltip-recent-seconds '1 '(#$ . 1268) :tag "Recent seconds" :type 'number :group 'tooltip)
#@54 Hide tooltips automatically after this many seconds.
(custom-declare-variable 'tooltip-hide-delay '10 '(#$ . 1492) :tag "Hide delay" :type 'number :group 'tooltip)
#@364 Specify an X offset, in pixels, for the display of tooltips.
The offset is relative to the position of the mouse.  It must
be chosen so that the tooltip window doesn't contain the mouse
when it pops up.  If the value is nil, the default offset is 5
pixels.

If `tooltip-frame-parameters' includes the `left' parameter,
the value of `tooltip-x-offset' is ignored.
(custom-declare-variable 'tooltip-x-offset 'nil '(#$ . 1663) :tag "X offset" :type '(choice (const :tag "Default" nil) (integer :tag "Offset" :value 1)) :group 'tooltip)
#@364 Specify a Y offset, in pixels, for the display of tooltips.
The offset is relative to the position of the mouse.  It must
be chosen so that the tooltip window doesn't contain the mouse
when it pops up.  If the value is nil, the default offset is -10
pixels.

If `tooltip-frame-parameters' includes the `top' parameter,
the value of `tooltip-y-offset' is ignored.
(custom-declare-variable 'tooltip-y-offset 'nil '(#$ . 2203) :tag "Y offset" :type '(choice (const :tag "Default" nil) (integer :tag "Offset" :value 1)) :group 'tooltip)
#@140 Frame parameters used for tooltips.

If `left' or `top' parameters are included, they specify the absolute
position to pop up the tooltip.
(custom-declare-variable 'tooltip-frame-parameters ''((name . "tooltip") (internal-border-width . 5) (border-width . 1)) '(#$ . 2743) :type 'sexp :tag "Frame Parameters" :group 'tooltip)
(custom-declare-face 'tooltip '((((class color)) (:background "lightyellow" :foreground "black")) (t nil)) "Face for tooltips." :group 'tooltip)
#@47 *Non-nil means show tooltips in GUD sessions.
(custom-declare-variable 'tooltip-gud-tips-p 'nil '(#$ . -3220) :type 'boolean :tag "GUD" :set #'(lambda (symbol on) (setq tooltip-gud-tips-p on) (if on (tooltip-gud-tips-setup))) :group 'tooltip)
#@45 List of modes for which to enable GUD tips.
(custom-declare-variable 'tooltip-gud-modes ''(gud-mode c-mode c++-mode) '(#$ . 3469) :type 'sexp :tag "GUD modes" :group 'tooltip)
#@188 List of forms determining where GUD tooltips are displayed.

Forms in the list are combined with AND.  The default is to display
only tooltips in the buffer containing the overlay arrow.
(custom-declare-variable 'tooltip-gud-display ''((eq (tooltip-event-buffer tooltip-gud-event) (marker-buffer overlay-arrow-position))) '(#$ . 3652) :type 'sexp :tag "GUD buffers predicate" :group 'tooltip)
#@143 Use the echo area instead of tooltip frames.
This is only relevant GUD display, since otherwise it is equivalent to
turning off Tooltip mode.
(custom-declare-variable 'tooltip-use-echo-area 'nil '(#$ . 4052) :type 'boolean :tag "Use echo area" :group 'tooltip)
#@152 Functions to call to display tooltips.
Each function is called with one argument EVENT which is a copy of
the last mouse movement event that occurred.
(defvar tooltip-hook nil (#$ . 4320))
#@56 The id of the timeout started when Emacs becomes idle.
(defvar tooltip-timeout-id nil (#$ . 4515))
#@45 A copy of the last mouse motion event seen.
(defvar tooltip-last-mouse-motion-event nil (#$ . 4620))
#@40 Time when the last tooltip was hidden.
(defvar tooltip-hide-time nil (#$ . 4727))
#@42 The debugger for which we show tooltips.
(defvar tooltip-gud-debugger nil (#$ . 4815))
#@116 Return the buffer over which event EVENT occurred.
This might return nil if the event did not occur over a buffer.
(defalias 'tooltip-event-buffer #[(event) "\3038:\203 \303\202 \3048)\305	8)\211\205 \306\n!)\207" [event position window 2 1 0 window-buffer] 3 (#$ . 4909)])
#@90 Mode for tooltip display.
With ARG, turn tooltip mode on if and only if ARG is positive.
(defalias 'tooltip-mode #[(&optional arg) "\306\307!\204\n \310\311!\210\203 \312!\313V\202 	?\211\203! \314\202\" \315\n\316\317\"\210\320 \210\321\322\"\210\323\324\"\210\323\325\"\210\n\205A \326\327\330\n\203M \331\202N \332#\210\333 *\207" [arg tooltip-mode on hook-fn show-help-function global-map fboundp x-show-tip error "Sorry, tooltips are not yet available on this system" prefix-numeric-value 0 add-hook remove-hook change-major-mode-hook tooltip-change-major-mode tooltip-activate-mouse-motions-if-enabled pre-command-hook tooltip-hide tooltip-hook tooltip-gud-tips tooltip-help-tips tooltip-show-help-function define-key [mouse-movement] tooltip-mouse-motion ignore tooltip-gud-tips-setup] 5 (#$ . 5198) "P"])
#@41 Setup debugger mode-hooks for tooltips.
(defalias 'tooltip-gud-tips-setup #[nil "\205% 	\205% \302\303\304\"\210\305\306\307\"\210\305\310\311\"\210\305\312\313\"\210\305\314\315\"\210\305\316\317\"\207" [tooltip-mode tooltip-gud-tips-p global-set-key [S-mouse-3] tooltip-gud-toggle-dereference add-hook gdb-mode-hook #[nil "\301\211\207" [tooltip-gud-debugger gdb] 2] sdb-mode-hook #[nil "\301\211\207" [tooltip-gud-debugger sdb] 2] dbx-mode-hook #[nil "\301\211\207" [tooltip-gud-debugger dbx] 2] xdb-mode-hook #[nil "\301\211\207" [tooltip-gud-debugger xdb] 2] perldb-mode-hook #[nil "\301\211\207" [tooltip-gud-debugger perldb] 2]] 3 (#$ . 6030)])
#@51 Return the delay in seconds for the next tooltip.
(defalias 'tooltip-delay #[nil "\306 \203 	Z\fW\203 \n*\207" [tooltip-delay now delay tooltip-hide-time tooltip-recent-seconds tooltip-short-delay float-time] 2 (#$ . 6694)])
#@30 Disable the tooltip timeout.
(defalias 'tooltip-cancel-delayed-tip #[nil "\205 \301!\210\302\211\207" [tooltip-timeout-id disable-timeout nil] 2 (#$ . 6934)])
#@58 Add a one-shot timeout to call function tooltip-timeout.
(defalias 'tooltip-start-delayed-tip #[nil "\301\302 \303\304#\211\207" [tooltip-timeout-id add-timeout tooltip-delay tooltip-timeout nil] 4 (#$ . 7103)])
#@62 Function called when timer with id tooltip-timeout-id fires.
(defalias 'tooltip-timeout #[(object) "\301\302\"\207" [tooltip-last-mouse-motion-event run-hook-with-args-until-success tooltip-hook] 3 (#$ . 7322)])
#@69 Function added to `change-major-mode-hook' when tooltip mode is on.
(defalias 'tooltip-change-major-mode #[nil "\300\301\302\"\207" [add-hook post-command-hook tooltip-activate-mouse-motions-if-enabled] 3 (#$ . 7541)])
#@69 Reconsider for all buffers whether mouse motion events are desired.
(defalias 'tooltip-activate-mouse-motions-if-enabled #[nil "\305\306\307\"\210\310 \212\2052 @q\210	\203& \n\203& \f>\203& \311\312!\210\202* \311\313!\210A\211\204 \313*\207" [buffers tooltip-mode tooltip-gud-tips-p major-mode tooltip-gud-modes remove-hook post-command-hook tooltip-activate-mouse-motions-if-enabled buffer-list tooltip-activate-mouse-motions t nil] 4 (#$ . 7766)])
#@119 Activate/deactivate mouse motion events for the current buffer.
ACTIVATEP non-nil means activate mouse motion events.
(defalias 'tooltip-activate-mouse-motions #[(activatep) "\203\f \302\301!\210\303\211\207\304\301!\207" [activatep track-mouse make-local-variable t kill-local-variable] 2 (#$ . 8232)])
#@60 Command handler for mouse movement events in `global-map'.
(defalias 'tooltip-mouse-motion #[(event) "\302 \210\303 @\205 \304!\305 \207" [event tooltip-last-mouse-motion-event tooltip-hide mouse-pixel-position copy-sequence tooltip-start-delayed-tip] 2 (#$ . 8544) "e"])
#@178 Change the value of KEY in alist ALIST to VALUE.
If there's no association for KEY in ALIST, add one, otherwise 
change the existing association.  Value is the resulting alist.
(defalias 'tooltip-set-param #[(alist key value) "	\236\211:\203 \n\241\210\202 B	B	)\207" [key alist param value] 3 (#$ . 8826)])
#@381 Show a tooltip window displaying TEXT.

Text larger than `x-max-tooltip-size' (which see) is clipped.

If the alist in `tooltip-frame-parameters' includes `left' and `top'
parameters, they determine the x and y position where the tooltip
is displayed.  Otherwise, the tooltip pops at offsets specified by
`tooltip-x-offset' and `tooltip-y-offset' from the current mouse
position.
(defalias 'tooltip-show #[(text) "\203	 \302\303	\"\207\304\305\306\217\207" [tooltip-use-echo-area text message "%s" error (byte-code "\306!\307\310\311\"\307\310\312\"\n;\203 \313\314\n#\313\315\n#	;\203* \313\316	#\317\320\f\321\310#\322 &+\207" [tooltip-frame-parameters bg fg params text tooltip-hide-delay copy-sequence face-attribute tooltip :foreground :background tooltip-set-param foreground-color border-color background-color x-show-tip propertize face selected-frame tooltip-x-offset tooltip-y-offset] 7) ((error (byte-code "\302\303\"\210\304\305!\210\302\306	\"\207" [error text message "Error while displaying tooltip: %s" sit-for 1 "%s"] 3)))] 3 (#$ . 9149)])
#@76 Hide a tooltip, if one is displayed.
Value is non-nil if tooltip was open.
(defalias 'tooltip-hide #[(&optional ignored-arg) "\301 \210\302 \205\f \303 \211\207" [tooltip-hide-time tooltip-cancel-delayed-tip x-hide-tip float-time] 2 (#$ . 10232)])
#@150 Extract the identifier at POINT, if any.
Value is nil if no identifier exists at point.  Identifier extraction
is based on the current syntax table.
(defalias 'tooltip-identifier-from-point #[(point) "\212b\210\302\303!\210`\304\305!?\205 \306\303!\210`	V\205 	`{*\207" [point start skip-syntax-backward "w_" looking-at "[0-9]" skip-syntax-forward] 2 (#$ . 10488)])
#@53 Value is non-nil if the region is currently active.
(defalias 'tooltip-region-active-p '(macro . #[nil "\300\301\302 \"\203\n \303\207\304\207" [string-match "^GNU" emacs-version (and transient-mark-mode mark-active) (region-active-p)] 3 (#$ . 10864)]))
#@207 Return an expression that should be printed for EVENT.
If a region is active and the mouse is inside the region, print
the region.  Otherwise, figure out the identifier around the point
where the mouse is.
(defalias 'tooltip-expr-to-print #[(event) "\212\305!q\210\3068:\203 \306\202 \3078)\307	8:\203& \307	8@\202) \307	8)\203I \f\203I \310 \nX\205L \n\311 X\205L \310 \311 {\202L \312\n!*\207" [event position point transient-mark-mode mark-active tooltip-event-buffer 2 1 region-beginning region-end tooltip-identifier-from-point] 2 (#$ . 11125)])
#@155 Return regexp matching the prompt of PROCESS at the end of a string.
The prompt is taken from the value of COMINT-PROMPT-REGEXP in the buffer
of PROCESS.
(defalias 'tooltip-process-prompt-regexp #[(process) "\212\303!q\210	)\211\304H\305U\203 \n\306\307O\202 \310\311\n\312Q)\207" [process comint-prompt-regexp prompt-regexp process-buffer 0 94 1 nil "\\*" "\n*" "$"] 4 (#$ . 11693)])
#@65 Return OUTPUT with any prompt of PROCESS stripped from its end.
(defalias 'tooltip-strip-prompt #[(process output) "\304!\305 \306\216\307	\"\203 \310\211\224O*)\207" [process prompt-regexp save-match-data-internal output tooltip-process-prompt-regexp match-data ((set-match-data save-match-data-internal)) string-match 0] 3 (#$ . 12090)])
#@63 Process filter to restore after GUD output has been received.
(defvar tooltip-gud-original-filter nil (#$ . 12444))
#@113 Non-nil means print expressions with a `*' in front of them.
For C this would dereference a pointer expression.
(defvar tooltip-gud-dereference nil (#$ . 12567))
#@117 The mouse movement event that led to a tooltip display.
This event can be examined by forms in TOOLTIP-GUD-DISPLAY.
(defvar tooltip-gud-event nil (#$ . 12736))
#@53 A symbol describing the debugger running under GUD.
(defvar tooltip-gud-debugger nil (#$ . 12902))
#@57 Toggle whether tooltips should show `* expr' or `expr'.
(defalias 'tooltip-gud-toggle-dereference #[nil "?t\205 \301\302\203 \303\202 \304\"\207" [tooltip-gud-dereference message "Dereferencing is now %s." "on" "off"] 3 (#$ . 13007) nil])
#@58 Process debugger output and show it in a tooltip window.
(defalias 'tooltip-gud-process-output #[(process output) "\303	\"\210\304\305\n\"!\207" [process tooltip-gud-original-filter output set-process-filter tooltip-show tooltip-strip-prompt] 4 (#$ . 13258)])
#@118 Return a suitable command to print the expression EXPR.
If TOOLTIP-GUD-DEREFERENCE is t, also prepend a `*' to EXPR.
(defalias 'tooltip-gud-print-command #[(expr) "\203 \303	P\n\304>\203 \305	P\207\n\306=\203 \307	P\207\n\310=\203& 	\311P\207\n\312=\205- 	\207" [tooltip-gud-dereference expr tooltip-gud-debugger "*" (gdb dbx) "print " xdb "p " sdb "/" perldb] 2 (#$ . 13527)])
#@299 Show tip for identifier or selection under the mouse.
The mouse must either point at an identifier or inside a selected
region for the tip window to be shown.  If tooltip-gud-dereference is t,
add a `*' in front of the printed expression.

This function must return nil if it doesn't handle EVENT.
(defalias 'tooltip-gud-tips #[(event) "\306\211\n\211\250\206% 9\203 \307N\206% :\205% @9\205% @\307N)\205\236 \f\205\236 \310\305!\205\236 \211\205\236 \311	!\211\205\236 \n\312\n8:\203N \312\202O \313\n8)\3138:\203d \3138@\202h \3138)\205\236 \n\314\315B!\205\236 \316\n!\211\205\235 \317!\211\205\234 \320!\321\322\"\210\323!\210))*\207" [process gud-buffer event obj tooltip-gud-tips-p gud-comint-buffer nil event-symbol-elements boundp get-buffer-process 2 1 eval and tooltip-expr-to-print tooltip-gud-print-command process-filter set-process-filter tooltip-gud-process-output gud-basic-call position tooltip-gud-event tooltip-gud-display expr cmd tooltip-gud-original-filter] 4 (#$ . 13917)])
#@66 The last help message received via `tooltip-show-help-function'.
(defvar tooltip-help-message nil (#$ . 14959))
#@115 Function installed as `show-help-function'.
MSG is either a help string to display, or nil to cancel the display.
(defalias 'tooltip-show-help-function #[(msg) "\n\n\204 \303 \202 	\n\232\206 \303 \210\304 )\207" [tooltip-help-message previous-help msg tooltip-hide tooltip-start-delayed-tip] 2 (#$ . 15078)])
#@203 Hook function to display a help tooltip.
This is installed on the hook `tooltip-hook', which is run when
the timer with ID `tooltip-timeout-id' fires.
Value is non-nil if this function handled the tip.
(defalias 'tooltip-help-tips #[(event) ";\205\n \301!\210\302\207" [tooltip-help-message tooltip-show t] 2 (#$ . 15401)])
#@131 Toggle tooltip-mode.
Setting this variable directly does not take effect;
use either \[customize] or the function `tooltip-mode'.
(custom-declare-variable 'tooltip-mode 'nil '(#$ . 15734) :set (lambda (symbol value) (tooltip-mode (or value 0))) :initialize 'custom-initialize-default :type 'boolean :require 'tooltip :group 'tooltip)
