;;
;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
;; Keywords: extensions
-;; Version: 1.84
+;; Version: 1.9914
;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
;;; Commentary:
;;
;; Widget browser. See `widget.el'.
(require 'easymenu)
(require 'custom)
(require 'wid-edit)
-(require 'cl)
+(eval-when-compile (require 'cl))
(defgroup widget-browse nil
"Customization support for browsing widgets."
(defun widget-browse-at (pos)
"Browse the widget under point."
(interactive "d")
- (let* ((field (get-text-property pos 'field))
- (button (get-text-property pos 'button))
- (doc (get-text-property pos 'widget-doc))
+ (let* ((field (get-char-property pos 'field))
+ (button (get-char-property pos 'button))
+ (doc (get-char-property pos 'widget-doc))
(text (cond (field "This is an editable text area.")
(button "This is an active area.")
(doc "This is documentation text.")
(put :button 'widget-keyword-printer 'widget-browse-widget)
(put :args 'widget-keyword-printer 'widget-browse-sexps)
+;;; Widget Minor Mode.
+
+(defvar widget-minor-mode nil
+ "I non-nil, we are in Widget Minor Mode.")
+ (make-variable-buffer-local 'widget-minor-mode)
+
+(defvar widget-minor-mode-map nil
+ "Keymap used in Widget Minor Mode.")
+
+(unless widget-minor-mode-map
+ (setq widget-minor-mode-map (make-sparse-keymap))
+ (set-keymap-parent widget-minor-mode-map widget-keymap))
+
+;;;###autoload
+(defun widget-minor-mode (&optional arg)
+ "Togle minor mode for traversing widgets.
+With arg, turn widget mode on if and only if arg is positive."
+ (interactive "P")
+ (cond ((null arg)
+ (setq widget-minor-mode (not widget-minor-mode)))
+ ((<= arg 0)
+ (setq widget-minor-mode nil))
+ (t
+ (setq widget-minor-mode t)))
+ (force-mode-line-update))
+
+(add-to-list 'minor-mode-alist '(widget-minor-mode " Widget"))
+
+(add-to-list 'minor-mode-map-alist
+ (cons 'widget-minor-mode widget-minor-mode-map))
+
;;; The End:
(provide 'wid-browse)