]> code.delx.au - gnu-emacs/blobdiff - lisp/tooltip.el
Auto-commit of generated files.
[gnu-emacs] / lisp / tooltip.el
index f135d98d716e07ad19c9b053cb0d96429ac0c6cf..261e34b440eec95a9cb94ebd707a3fc4299fce65 100644 (file)
@@ -1,6 +1,6 @@
 ;;; tooltip.el --- show tooltip windows
 
-;; Copyright (C) 1997, 1999-2011 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1999-2013 Free Software Foundation, Inc.
 
 ;; Author: Gerd Moellmann <gerd@acm.org>
 ;; Keywords: help c mouse tools
@@ -25,6 +25,8 @@
 
 ;;; Code:
 
+(require 'syntax)
+
 (defvar comint-prompt-regexp)
 
 (defgroup tooltip nil
 
 (define-minor-mode tooltip-mode
   "Toggle Tooltip mode.
-With ARG, turn Tooltip mode on if and only if ARG is positive.
-When this minor mode is enabled, Emacs displays help text
-in a pop-up window for buttons and menu items that you put the mouse on.
-\(However, if `tooltip-use-echo-area' is non-nil, this and
-all pop-up help appears in the echo area.)
-
-When Tooltip mode is disabled, Emacs displays one line of
-the help text in the echo area, and does not make a pop-up window."
+With a prefix argument ARG, enable Tooltip mode if ARG is positive,
+and disable it otherwise.  If called from Lisp, enable the mode
+if ARG is omitted or nil.
+
+When this global minor mode is enabled, Emacs displays help
+text (e.g. for buttons and menu items that you put the mouse on)
+in a pop-up window.
+
+When Tooltip mode is disabled, Emacs displays help text in the
+echo area, instead of making a pop-up window."
   :global t
   ;; Even if we start on a text-only terminal, make this non-nil by
   ;; default because we can open a graphical frame later (multi-tty).
@@ -141,14 +145,19 @@ of the `tooltip' face are used instead."
 
 (defcustom tooltip-use-echo-area nil
   "Use the echo area instead of tooltip frames for help and GUD tooltips.
-To display multi-line help text in the echo area, set this to t
-and enable `tooltip-mode'."
+This variable is obsolete; instead of setting it to t, disable
+`tooltip-mode' (which has a similar effect)."
   :type 'boolean
   :group 'tooltip)
 
+(make-obsolete-variable 'tooltip-use-echo-area
+                       "disable Tooltip mode instead" "24.1")
+
 \f
 ;;; Variables that are not customizable.
 
+(define-obsolete-variable-alias 'tooltip-hook 'tooltip-functions "23.1")
+
 (defvar tooltip-functions nil
   "Functions to call to display tooltips.
 Each function is called with one argument EVENT which is a copy
@@ -156,8 +165,6 @@ of the last mouse movement event that occurred.  If one of these
 functions displays the tooltip, it should return non-nil and the
 rest are not called.")
 
-(define-obsolete-variable-alias 'tooltip-hook 'tooltip-functions "23.1")
-
 (defvar tooltip-timeout-id nil
   "The id of the timeout started when Emacs becomes idle.")
 
@@ -198,7 +205,7 @@ This might return nil if the event did not occur over a buffer."
   (setq tooltip-timeout-id
        (add-timeout (tooltip-delay) 'tooltip-timeout nil)))
 
-(defun tooltip-timeout (object)
+(defun tooltip-timeout (_object)
   "Function called when timer with id `tooltip-timeout-id' fires."
   (run-hook-with-args-until-success 'tooltip-functions
                                    tooltip-last-mouse-motion-event))
@@ -256,7 +263,7 @@ in echo area."
 
 (declare-function x-hide-tip "xfns.c" ())
 
-(defun tooltip-hide (&optional ignored-arg)
+(defun tooltip-hide (&optional _ignored-arg)
   "Hide a tooltip, if one is displayed.
 Value is non-nil if tooltip was open."
   (tooltip-cancel-delayed-tip)
@@ -272,8 +279,11 @@ Value is nil if no identifier exists at point.  Identifier extraction
 is based on the current syntax table."
   (save-excursion
     (goto-char point)
-    (let ((start (progn (skip-syntax-backward "w_") (point))))
-      (unless (looking-at "[0-9]")
+    (let* ((start (progn (skip-syntax-backward "w_") (point)))
+          (pstate (syntax-ppss)))
+      (unless (or (looking-at "[0-9]")
+                 (nth 3 pstate)
+                 (nth 4 pstate))
        (skip-syntax-forward "w_")
        (when (> (point) start)
          (buffer-substring start (point)))))))
@@ -373,7 +383,7 @@ MSG is either a help string to display, or nil to cancel the display."
     ;; On text-only displays, try `tooltip-show-help-non-mode'.
     (tooltip-show-help-non-mode msg)))
 
-(defun tooltip-help-tips (event)
+(defun tooltip-help-tips (_event)
   "Hook function to display a help tooltip.
 This is installed on the hook `tooltip-functions', which
 is run when the timer with id `tooltip-timeout-id' fires.