XEmacs 21.4.9 "Informed Management".
[chise/xemacs-chise.git.1] / lisp / toolbar.el
index 772abf5..4ddc1e0 100644 (file)
@@ -32,8 +32,8 @@
 
 (defcustom toolbar-visible-p ;; added for the options menu - dverna apr. 98
   (specifier-instance default-toolbar-visible-p)
-  "Whether the default toolbar is globally visible. This option can be
-customized through the options menu."
+  "Whether the default toolbar is globally visible.
+This option can be customized through the options menu."
   :group 'display
   :type 'boolean
   :set #'(lambda (var val)
@@ -43,8 +43,8 @@ customized through the options menu."
 
 (defcustom toolbar-captioned-p ;; added for the options menu - dverna apr. 98
   (specifier-instance toolbar-buttons-captioned-p)
-  "Whether the toolbars buttons are globally captioned. This option can be
-customized through the options menu."
+  "Whether the toolbars buttons are globally captioned.
+This option can be customized through the options menu."
   :group 'display
   :type 'boolean
   :set #'(lambda (var val)
@@ -54,8 +54,9 @@ customized through the options menu."
 
 (defcustom default-toolbar-position ;; added for the options menu - dverna
   (default-toolbar-position)
-  "The location of the default toolbar. It can be 'top, 'bottom, 'left or
-'right. This option can be customized through the options menu."
+  "The location of the default toolbar.
+It can be 'top, 'bottom, 'left or 'right. This option can be
+customized through the options menu."
   :group 'display
   :type '(choice (const :tag "top" top)
                 (const :tag "bottom" bottom)
@@ -70,7 +71,7 @@ customized through the options menu."
   "If non-nil help is echoed for toolbar buttons.")
 
 (defvar toolbar-icon-directory nil
-  "Location of standard toolbar icon bitmaps.")
+  "Location of standard toolbar icon bitmaps, with trailing path separator.")
 
 (defun toolbar-make-button-list (up &optional down disabled cap-up cap-down cap-disabled)
   "Call make-glyph on each arg and return a list of the results."
@@ -123,6 +124,9 @@ customized through the options menu."
 (defvar last-pressed-toolbar-button nil)
 (defvar toolbar-active nil)
 
+(defvar toolbar-blank-press-function nil
+  "Function to call if a blank area of the toolbar is pressed.")
+
 ;;
 ;; It really sucks that we also have to tie onto
 ;; default-mouse-motion-handler to make sliding buttons work right.
@@ -143,9 +147,8 @@ an argument if press is over a blank area of the toolbar."
          (setq last-pressed-toolbar-button button))
       ;; Added by Bob Weiner, Motorola Inc., 10/6/95, to handle
       ;; presses on blank portions of toolbars.
-      (and (boundp 'toolbar-blank-press-function)
-          (functionp toolbar-blank-press-function)
-          (funcall toolbar-blank-press-function event)))))
+      (when (functionp toolbar-blank-press-function)
+       (funcall toolbar-blank-press-function event)))))
 
 (defun release-and-activate-toolbar-button (event)
   "Release a toolbar button and activate its callback.
@@ -198,4 +201,21 @@ as an argument if release is over a blank area of the toolbar."
   (setq zmacs-region-stays t)
   (release-toolbar-button-internal event nil))
 
+(defun make-toolbar-specifier (spec-list)
+  "Return a new `toolbar' specifier object with the given specification list.
+SPEC-LIST can be a list of specifications (each of which is a cons of a
+locale and a list of instantiators), a single instantiator, or a list
+of instantiators.  See `make-specifier' for more information about
+specifiers.
+
+Toolbar specifiers are used to specify the format of a toolbar.
+The values of the variables `default-toolbar', `top-toolbar',
+`left-toolbar', `right-toolbar', and `bottom-toolbar' are always
+toolbar specifiers.
+
+Valid toolbar instantiators are called \"toolbar descriptors\"
+and are lists of vectors.  See `default-toolbar' for a description
+of the exact format."
+  (make-specifier-and-init 'toolbar spec-list))
+
 ;;; toolbar.el ends here