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

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


(require 'eudc)
#@32 Keymap for multimedia objects.
(defvar eudc-bob-generic-keymap nil (#$ . 638))
#@27 Keymap for inline images.
(defvar eudc-bob-image-keymap nil (#$ . 723))
#@27 Keymap for inline sounds.
(defvar eudc-bob-sound-keymap nil (#$ . 801))
#@27 Keymap for inline images.
(defvar eudc-bob-url-keymap nil (#$ . 879))
(byte-code "\301B\304\302B\305\306\307	AABBB\303B\310\311\312	AABBB\301\207" [current-load-list eudc-bob-generic-menu eudc-bob-image-menu eudc-bob-sound-menu ("EUDC Binary Object Menu" ["---" nil nil] ["Pipe to external program" eudc-bob-pipe-object-to-external-program t] ["Save object" eudc-bob-save-object t]) "EUDC Image Menu" ["---" nil nil] ["Toggle inline display" eudc-bob-toggle-inline-display (eudc-bob-can-display-inline-images)] "EUDC Sound Menu" ["---" nil nil] ["Play sound" eudc-bob-play-sound-at-point (fboundp 'play-sound)]] 4)
#@52 Jump to the window and point where EVENT occurred.
(defalias 'eudc-jump-to-event #[(event) "\203	 \303	!b\207\304	\305	8)\306\n8)!q\210	\305	8)\305\n8:\203- \305\n8@\2020 \305\n8)b\207" [eudc-xemacs-p event position event-closest-point window-buffer 1 0] 3 (#$ . 1509)])
#@52 Get property PROP from one of the overlays around.
(defalias 'eudc-bob-get-overlay-prop #[(prop) "\305\306`S!\306`!\"\307\211\310\203, @\211\203, \311\n\f\"\211\203& \307A\202 	,\207" [notfound value overlay overlays prop append overlays-at nil t overlay-get] 4 (#$ . 1791)])
#@49 Return non-nil if we can display images inline.
(defalias 'eudc-bob-can-display-inline-images #[nil "\203 \301 \302>\205 \303\304!\207\305\306!\205 \306 \207" [eudc-xemacs-p console-type (x mswindows) fboundp make-glyph boundp display-graphic-p] 2 (#$ . 2085)])
#@108 Create a button with LABEL.
Attach KEYMAP, MENU and properties from PLIST to a new overlay covering
LABEL.
(defalias 'eudc-bob-make-button #[(label keymap &optional menu plist) "\306`\306\211\fc\210\307\n`\310\311$\210\312\n`\"\313\314\315#\210\313\305#\210\313\316#\210\313\317#\210\205O @A\211@A\313	#\210\2020 ,\207" [val prop p overlay label keymap nil put-text-property face bold make-overlay overlay-put mouse-face highlight local-map menu plist] 6 (#$ . 2358)])
#@114 Display the JPEG DATA at point.
If INLINE is non-nil, try to inline the image otherwise simply
display a button.
(defalias 'eudc-bob-display-jpeg #[(data inline) "\203. \306 \205 \307\310\311\312	#\313D!\314\315\f\302\n\316\205 \n\317\320\321\322\320\323\320\324	\257$)\207\325\326!\205^ \326	\327\320#\324	\330F\203V \331\311!\203V \332D\244\314\333\f$*\207" [eudc-xemacs-p data glyph eudc-bob-image-keymap eudc-bob-image-menu inline eudc-bob-can-display-inline-images make-glyph vector jpeg :data [string :data "[JPEG Picture]"] eudc-bob-make-button "[JPEG Picture]" end-glyph duplicable t invisible start-open end-open object-data boundp create-image nil eudc-image image-type-available-p display "[Picture]" image props] 18 (#$ . 2863)])
#@36 Toggle inline display of an image.
(defalias 'eudc-bob-toggle-inline-display #[nil "\306 \205\232 \203W \307\310`S!\310`!\"\311\211\211@\211\2031 \312\n\301\"\211\2041 A\211@\211\204 \n\205U \312\n\313\"\203J \314\n\313\311#\210\314\n\315\311#\202U \314\n\313	#\210\314\n\315\316#+\207\307\310`S!\310`!\"\311\203\204 \f\204\204 \312@\317\"\211\242\304=\203} \202\200 A)\202c \205\231 @\314\n\320\312\n\320\"?\205\227 \f#)*\207" [eudc-xemacs-p glyph overlay overlays image prop eudc-bob-can-display-inline-images append overlays-at nil overlay-get end-glyph overlay-put invisible t eudc-image display] 7 (#$ . 3635) nil])
#@34 Display a button for audio DATA.
(defalias 'eudc-bob-display-audio #[(data) "\303\304	\305\306\307\306\310\306\311\n\257$\207" [eudc-bob-sound-keymap eudc-bob-sound-menu data eudc-bob-make-button "[Audio Sound]" duplicable t start-open end-open object-data] 12 (#$ . 4284)])
#@48 Display a button for unidentified binary DATA.
(defalias 'eudc-bob-display-generic-binary #[(data) "\303\304	\305\306\307\306\310\306\311\n\257$\207" [eudc-bob-generic-keymap eudc-bob-generic-menu data eudc-bob-make-button "[Binary Data]" duplicable t start-open end-open object-data] 12 (#$ . 4567)])
#@55 Play the sound data contained in the button at point.
(defalias 'eudc-bob-play-sound-at-point #[nil "\303\304\305!\211\204 \306\307!\202B 	\2032 \310\302!\203 \n\204$ \306\311!\202B \312\313E\nB\303\314\315\217\202B \316\317!\204< \306\320!\210\317\300\321E!)\207" [sound eudc-xemacs-p sound-alist nil eudc-bob-get-overlay-prop object-data error "No sound data available here" boundp "Don't know how to play sound on this Emacs version" eudc-sound :sound (byte-code "\300\301!\207" [play-sound eudc-sound] 2) ((t (byte-code "A\211\207" [sound-alist] 2))) fboundp play-sound "Playing sounds not supported on this system" :data] 4 (#$ . 4877) nil])
#@67 Play the sound data contained in the button where EVENT occurred.
(defalias 'eudc-bob-play-sound-at-mouse #[(event) "\212\301!\210\302 )\207" [event eudc-jump-to-event eudc-bob-play-sound-at-point] 2 (#$ . 5539) "e"])
#@46 Save the object data of the button at point.
(defalias 'eudc-bob-save-object #[nil "\302\303!\304\305!\212\306\307!\203 \307\310!\210q\210	c\210\311 \210)\312!*\207" [buffer data eudc-bob-get-overlay-prop object-data generate-new-buffer "*eudc-tmp*" fboundp set-buffer-file-coding-system binary save-buffer kill-buffer] 3 (#$ . 5764) nil])
#@69 Pipe the object data of the button at point to an external program.
(defalias 'eudc-bob-pipe-object-to-external-program #[nil "\304\305!\306\307!\310\211\310\311\312\217,\207" [viewer program buffer data eudc-bob-get-overlay-prop object-data generate-new-buffer "*eudc-tmp*" nil (byte-code "\212\305\306!\203 \306\307!\210q\210	c\210\310\311\n\"\312\n\"\211\203, \313ed\fA@\fAA$\2021 \313ed#)\207" [buffer data eudc-external-viewers program viewer fboundp set-buffer-file-coding-system binary completing-read "Viewer: " assoc call-process-region] 5) ((t (kill-buffer buffer)))] 4 (#$ . 6115) nil])
#@48 Retrieve the menu attached to a binary object.
(defalias 'eudc-bob-menu #[nil "\300\301!\207" [eudc-bob-get-overlay-prop menu] 2 (#$ . 6729)])
#@44 Pop-up a menu of EUDC multimedia commands.
(defalias 'eudc-bob-popup-menu #[(event) "\304\305!\210\306!\210	\203 \304\307!\210\310\311 !\207\312\313\311 \"\314\211\205- \315\311 \316\317\"\"\320\n!*\207" [event eudc-xemacs-p command result run-hooks activate-menubar-hook eudc-jump-to-event activate-popup-menu-hook popup-menu eudc-bob-menu x-popup-menu t nil lookup-key apply vector command-execute] 6 (#$ . 6878) "@e"])
(byte-code "\306 \307\310\311#\210\307	\203 \312\202 \313\314#\210)\306 \307\315\316#\210)\306 \307\317\320#\210\307	\2039 \321\202: \322\323#\210)\306 \307\324\325#\210\307	\203S \326\202T \327\330#\210)\331\n\"\210\331\f\n\"\210#\203\300 \332$B$\333\332\334\335#\210\336\332!\204~ \337\340\332\n\335$\210\341$B$\333\341\334\335#\210\336\341!\204\233 \337!\340\341\335!$\210\342$B$\333\342\334\335#\210\336\342!\204\270 \337\"\340\342\f\335\"$\210\337\207" [map eudc-xemacs-p eudc-bob-generic-keymap eudc-bob-image-keymap eudc-bob-sound-keymap eudc-bob-url-keymap make-sparse-keymap define-key "s" eudc-bob-save-object [button3] [down-mouse-3] eudc-bob-popup-menu "t" eudc-bob-toggle-inline-display [return] eudc-bob-play-sound-at-point [button2] [down-mouse-2] eudc-bob-play-sound-at-mouse [return] browse-url-at-point [button2] [down-mouse-2] browse-url-at-mouse set-keymap-parent eudc-bob-generic-menu put variable-documentation "" boundp nil easy-menu-do-define eudc-bob-image-menu eudc-bob-sound-menu eudc-emacs-p current-load-list] 5)
#@48 Display a button for unidentified binary DATA.
(defalias 'eudc-display-generic-binary #[(data) "\301!\207" [data eudc-bob-display-generic-binary] 2 (#$ . 8392)])
#@36 Display URL and make it clickable.
(defalias 'eudc-display-url #[(url) "\302\303!\210\304	\"\207" [url eudc-bob-url-keymap require browse-url eudc-bob-make-button] 3 (#$ . 8561)])
#@42 Display a button to play the sound DATA.
(defalias 'eudc-display-sound #[(data) "\301!\207" [data eudc-bob-display-audio] 2 (#$ . 8748)])
#@52 Display the JPEG DATA inline at point if possible.
(defalias 'eudc-display-jpeg-inline #[(data) "\301\302 \"\207" [data eudc-bob-display-jpeg eudc-bob-can-display-inline-images] 3 (#$ . 8893)])
#@37 Display a button for the JPEG DATA.
(defalias 'eudc-display-jpeg-as-button #[(data) "\301\302\"\207" [data eudc-bob-display-jpeg nil] 3 (#$ . 9094)])
