;ELC   
;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:53:25 2003
;;; from file /home/pot/gnu/emacs-pretest.new/lisp/wid-browse.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 "`wid-browse.el' was compiled for Emacs 19.29 or later"))

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


(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310\311%\207" [require easymenu custom wid-edit custom-declare-group widget-browse nil "Customization support for browsing widgets." :group widgets] 6)
#@34 Keymap for `widget-browse-mode'.
(defvar widget-browse-mode-map nil (#$ . 842))
(byte-code "\204 \302 \303	\"\210\304\305\306#\210\302\207" [widget-browse-mode-map widget-keymap make-sparse-keymap set-keymap-parent define-key "q" bury-buffer] 4)
#@38 Menu used in widget browser buffers.
(defvar widget-browse-mode-customize-menu nil (#$ . 1099))
(byte-code "\301\302\303\304\305!$\207" [widget-browse-mode-map easy-menu-do-define widget-browse-mode-customize-menu "Menu used in widget browser buffers." customize-menu-create widgets] 6)
#@38 Menu used in widget browser buffers.
(defvar widget-browse-mode-menu nil (#$ . 1393))
(easy-menu-do-define 'widget-browse-mode-menu widget-browse-mode-map "Menu used in widget browser buffers." '("Widget" ["Browse" widget-browse t] ["Browse At" widget-browse-at t]))
#@47 Hook called when entering widget-browse-mode.
(custom-declare-variable 'widget-browse-mode-hook 'nil '(#$ . 1666) :type 'hook :group 'widget-browse)
#@410 Major mode for widget browser buffers.

The following commands are available:

\[widget-forward]		Move to next button or editable field.
\[widget-backward]		Move to previous button or editable field.
\[widget-button-click]		Activate button under the mouse pointer.
\[widget-button-press]		Activate button under point.

Entry to this mode calls the value of `widget-browse-mode-hook'
if that value is non-nil.
(defalias 'widget-browse-mode #[nil "\305 \210\306\307\310\n!\210\311!\210\311\f!\210\312\313!\207" [major-mode mode-name widget-browse-mode-map widget-browse-mode-customize-menu widget-browse-mode-menu kill-all-local-variables widget-browse-mode "Widget" use-local-map easy-menu-add run-hooks widget-browse-mode-hook] 2 (#$ . 1822)])
(put 'widget-browse-mode 'mode-class 'special)
#@32 Browse the widget under point.
(defalias 'widget-browse-at #[(pos) "\306\301\"\306\302\"\306\307\"	\203 \310\202( \n\203 \311\202( \203' \312\202( \313	\2062 \n\2062 \211\203; \314!\210\315\f!-\207" [pos field button doc text widget get-char-property widget-doc "This is an editable text area." "This is an active area." "This is documentation text." "This is unidentified text." widget-browse message] 4 (#$ . 2622) "d"])
(byte-code "\301B\302\301!\204\f \303\303\207" [current-load-list widget-browse-history boundp nil] 2)
#@37 Create a widget browser for WIDGET.
(defalias 'widget-browse #[(widget) ";\203	 \306!9\203 \307N\202  :\203# \211@)\307N\204' \310\311!\2109\203A \312\313\"\314\315	!!\210\316\315	!!\210)\202M \314\315\317!!\210\316\315\317!!\210\320 \210<\203\\ \321\322!\210\202~ \321\323!\210\324\325\326\327\330\331N&\210h\332=\204v \321\333!\210\321\334!\210\307N@A\335\211\211$\324\325\326\336$$\210\321\333!\210\203\303 @A@\f\337N\206\251 \340AA\321\333\341\f!\342#\210\n\f#\210\321\333!\210\202\227 -\343 \210eb\207" [widget buffer printer value key items intern widget-type error "Not a widget" format "*Browse %s Widget*" kill-buffer get-buffer-create switch-to-buffer "*Browse Widget*" widget-browse-mode widget-insert "Widget object browser.\n\nClass: " "Widget class browser.\n\n" widget-create widget-browse :format "%[%v%]\n%d" :doc widget-documentation 10 "\n" "\nSuper: " nil "%[%v%]" widget-keyword-printer widget-browse-sexp symbol-name "\n	" widget-setup name] 8 (#$ . 3170) (list (completing-read "Widget: " obarray (lambda (symbol) (get symbol 'widget-type)) t nil 'widget-browse-history))])
#@49 Show widget browser for WIDGET in other window.
(defalias 'widget-browse-other-window #[(&optional widget) "\302 \303\304!\210	\203 \305	!\210\202 \306\305!\210\307!)\207" [window widget selected-window switch-to-buffer-other-window "*Browse Widget*" widget-browse call-interactively select-window] 2 (#$ . 4309) nil])
(define-widget 'widget-browse 'push-button "Button for creating a widget browser.\nThe :value of the widget shuld be the widget to be browsed." :format "%[[%v]%]" :value-create 'widget-browse-value-create :action 'widget-browse-action)
(defalias 'widget-browse-action #[(widget &optional event) "\301\302\303\"!\207" [widget widget-browse widget-get :value] 4])
(defalias 'widget-browse-value-create #[(widget) "\302\303\"\2119\203 \304	!c\202# 	:\203! \304	\211@)!c\202# \305c)\207" [widget value widget-get :value symbol-name "strange"] 4])
#@76 Insert description of WIDGET's KEY VALUE.
VALUE is assumed to be a widget.
(defalias 'widget-browse-widget #[(widget key value) "\301\302\"\207" [value widget-create widget-browse] 3 (#$ . 5186)])
#@85 Insert description of WIDGET's KEY VALUE.
VALUE is assumed to be a list of widgets.
(defalias 'widget-browse-widgets #[(widget key value) "\205 \301\302@\"\210A\211\203  \303\304!\210\202  \207" [value widget-create widget-browse widget-insert " "] 4 (#$ . 5390)])
#@75 Insert description of WIDGET's KEY VALUE.
Nothing is assumed about value.
(defalias 'widget-browse-sexp #[(widget key value) "\301\302\303\217\304\305\"\203 \306GSO\304\307\"\204* G\310 iZV\204* \311!\2023 \312\313\314\315\316\317&)\207" [pp signal (pp-to-string value) ((error (prin1-to-string signal))) string-match "\n\\'" 0 "\n" window-width widget-insert widget-create push-button :tag "show" :action #[(widget &optional event) "\301\220\302\303\304\"!\221\207" [widget "*Pp Eval Output*" princ widget-get :value] 5]] 7 (#$ . 5666)])
#@85 Insert description of WIDGET's KEY VALUE.
VALUE is assumed to be a list of widgets.
(defalias 'widget-browse-sexps #[(widget key value) "i	\205 \304\n	@#\210	A\211\203 \305\306\307\310\"\"\210\202 )\207" [target value widget key widget-browse-sexp widget-insert "\n" make-string 32] 6 (#$ . 6223)])
(byte-code "\300\301\302\303#\210\300\304\302\305#\210\300\306\302\305#\210\300\307\302\303#\210\300\310\302\311#\207" [put :parent widget-keyword-printer widget-browse-widget :children widget-browse-widgets :buttons :button :args widget-browse-sexps] 4)
#@41 I non-nil, we are in Widget Minor Mode.
(defvar widget-minor-mode nil (#$ . 6790))
(make-variable-buffer-local 'widget-minor-mode)
#@35 Keymap used in Widget Minor Mode.
(defvar widget-minor-mode-map nil (#$ . 6927))
(byte-code "\204\f \302 \303	\"\210\302\207" [widget-minor-mode-map widget-keymap make-sparse-keymap set-keymap-parent] 3)
#@104 Togle minor mode for traversing widgets.
With arg, turn widget mode on if and only if arg is positive.
(defalias 'widget-minor-mode #[(&optional arg) "\204\n 	?\202 \302X\203 \303\202 \304\305 \207" [arg widget-minor-mode 0 nil t force-mode-line-update] 2 (#$ . 7141) "P"])
(byte-code "\301\302\303\"\210\301\304\305B\"\210\306\307!\207" [widget-minor-mode-map add-to-list minor-mode-alist (widget-minor-mode " Widget") minor-mode-map-alist widget-minor-mode provide wid-browse] 4)
