HOME


sh-3ll 1.0
DIR:/proc/self/root/usr/share/emacs/26.1/lisp/
Upload File :
Current File : //proc/self/root/usr/share/emacs/26.1/lisp/svg.elc
;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

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


(byte-code "\300\301!\210\300\302!\210\300\303!\207" [require cl-lib xml dom] 2)
#@189 Create a new, empty SVG image with dimensions WIDTHxHEIGHT.
ARGS can be used to provide `stroke' and `stroke-width' parameters to
any further elements added.

(fn WIDTH HEIGHT &rest ARGS)
(defalias 'svg-create #[642 "\300\301\302B\303B\304\305\306\307\"BBBB\"\207" [dom-node svg width height (version . "1.1") (xmlns . "http://www.w3.org/2000/svg") svg--arguments nil] 12 (#$ . 490)])
#@130 Add a gradient with ID to SVG.
TYPE is `linear' or `radial'.  STOPS is a list of percentage/color
pairs.

(fn SVG ID TYPE STOPS)
(defalias 'svg-gradient #[1028 "\300\301\302\303=\203\304\202\305\306B\307B\310\311\"$\"\207" [svg--def apply dom-node linear linearGradient radialGradient id ((x1 . 0) (x2 . 0) (y1 . 0) (y2 . 1)) mapcar #[257 "\300\301\302\303\304@\"B\305ABD\"\207" [dom-node stop offset format "%s%%" stop-color] 7 "\n\n(fn STOP)"]] 13 (#$ . 886)])
#@277 Create a rectangle on SVG, starting at position X/Y, of WIDTH/HEIGHT.
ARGS is a plist of modifiers.  Possible values are

:stroke-width PIXELS.  The line width.
:stroke-color COLOR.  The line color.
:gradient ID.  The gradient ID to use.

(fn SVG X Y WIDTH HEIGHT &rest ARGS)
(defalias 'svg-rectangle #[1413 "\300\301\302\303B\304B\305B\306B\307\n\"BBBB\"\"\207" [svg--append dom-node rect width height x y svg--arguments] 17 (#$ . 1368)])
#@104 Create a circle of RADIUS on SVG.
X/Y denote the center of the circle.

(fn SVG X Y RADIUS &rest ARGS)
(defalias 'svg-circle #[1156 "\300\301\302\303B\304B\305B\306\f	\"BBB\"\"\207" [svg--append dom-node circle cx cy r svg--arguments] 15 (#$ . 1828)])
#@129 Create an ellipse of X-RADIUS/Y-RADIUS on SVG.
X/Y denote the center of the ellipse.

(fn SVG X Y X-RADIUS Y-RADIUS &rest ARGS)
(defalias 'svg-ellipse #[1413 "\300\301\302\303	B\304	B\305	B\306	B\307\n\"BBBB\"\"\207" [svg--append dom-node ellipse cx cy rx ry svg--arguments] 17 (#$ . 2096)])
#@94 Create a line of starting in X1/Y1, ending at X2/Y2 in SVG.

(fn SVG X1 Y1 X2 Y2 &rest ARGS)
(defalias 'svg-line #[1413 "\300\301\302\303	B\304B\305\nB\306	B\307\n\"BBBB\"\"\207" [svg--append dom-node line x1 x2 y1 y2 svg--arguments] 17 (#$ . 2403)])
#@107 Create a polyline going through POINTS on SVG.
POINTS is a list of x/y pairs.

(fn SVG POINTS &rest ARGS)
(defalias 'svg-polyline #[642 "\300\301\302\303\304\305\306#B\307\"B\"\"\207" [svg--append dom-node polyline points mapconcat #[257 "\300\301@A#\207" [format "%s %s"] 5 "\n\n(fn PAIR)"] ", " svg--arguments] 12 (#$ . 2671)])
#@106 Create a polygon going through POINTS on SVG.
POINTS is a list of x/y pairs.

(fn SVG POINTS &rest ARGS)
(defalias 'svg-polygon #[642 "\300\301\302\303\304\305\306#B\307\"B\"\"\207" [svg--append dom-node polygon points mapconcat #[257 "\300\301@A#\207" [format "%s %s"] 5 "\n\n(fn PAIR)"] ", " svg--arguments] 12 (#$ . 3017)])
#@230 Insert IMAGE into the SVG structure.
IMAGE should be a file name if DATAP is nil, and a binary string
otherwise.  IMAGE-TYPE should be a MIME image type, like
"image/jpeg" or the like.

(fn SVG IMAGE IMAGE-TYPE DATAP &rest ARGS)
(defalias 'svg-embed #[1156 "\300\301\302\303\304			#B\305\n\"B\"\"\207" [svg--append dom-node image xlink:href svg--image-data svg--arguments] 14 (#$ . 3360)])
#@44 Add TEXT to SVG.

(fn SVG TEXT &rest ARGS)
(defalias 'svg-text #[642 "\300\301\302\303\"#\"\207" [svg--append dom-node text svg--arguments] 10 (#$ . 3763)])
#@17 

(fn SVG NODE)
(defalias 'svg--append #[514 "\300\211@:\203\211@A@\262\202\211A@\262\236A\205;\301\302\303\300\211@:\2030\211@A@\262\2025\211A@\262\236A!\304Q\"\211\203H\211@A\241\210\202M\305\"\210\210\306!\207" [id dom-by-id "\\`" regexp-quote "\\'" dom-append-child svg-possibly-update-image] 9 (#$ . 3933)])
#@31 

(fn IMAGE IMAGE-TYPE DATAP)
(defalias 'svg--image-data #[771 "\300\301!r\211q\210\302\303\304\305\306!\307\"\310$\216\311\312!\210\203!c\210\202%\313!\210\314ed\315#\210eb\210\316\317\261\210\320 *\207" [generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 set-buffer-multibyte nil insert-file-contents base64-encode-region t "data:" ";base64," buffer-string] 10 (#$ . 4272)])
#@17 

(fn SVG ARGS)
(defalias 'svg--arguments #[514 "\301\302\"\206\303\211@:\203\211@A@\262\202\211A@\262\236A\301\304\"\206>\305\211@:\2037\211@A@\262\202<\211A@\262\236A\301\306\"\307\203N\303BB\262\203Y\310BB\262\203d\311BB\262\301\312\"\203\200\313\314\315\316\317\311\320\321\301
\312\"\"B\257\"\262\307\211\211:\203\265\262\211A\262\242\262\211@\262\322>\204\255\323\324!\325\307O\"BB\262AA\262\202\204\266\207" [obarray plist-get :stroke-width stroke-width :stroke-color stroke-color :fill-color nil stroke fill :gradient append (x1 . 0) (x2 . 0) (y1 . 0) (y2 . 1) format "url(#%s)" (:stroke-color :stroke-width :gradient :fill-color) intern symbol-name 1] 17 (#$ . 4733)])
#@16 

(fn SVG DEF)
(defalias 'svg--def #[514 "\300\301\302\"\206\303\302!\304\"\210\211\262\"\210\207" [dom-append-child dom-by-tag defs dom-node dom-add-child-before] 7 (#$ . 5476)])
#@112 Return an image object from SVG.
PROPS is passed on to `create-image' as its PROPS list.

(fn SVG &rest PROPS)
(defalias 'svg-image #[385 "\300\301\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216\313!\210\314 *\262\315\316%\207" [apply create-image generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2 svg-print buffer-string svg t] 11 (#$ . 5671)])
#@105 Insert SVG as an image at point.
If the SVG is later changed, the image will also be updated.

(fn SVG)
(defalias 'svg-insert-image #[257 "\300!\301 \302!\210\303\304#\207" [svg-image point-marker insert-image dom-set-attribute :image] 7 (#$ . 6107)])
#@12 

(fn SVG)
(defalias 'svg-possibly-update-image #[257 "\300\211@:\203\211@A@\262\202\211A@\262\236A\211\2055\301\302!!\2055r\302!q\210\303\211T\304\305!$)\207" [:image buffer-live-p marker-buffer put-text-property display svg-image] 8 (#$ . 6369)])
#@72 Convert DOM into a string containing the xml representation.

(fn DOM)
(defalias 'svg-print #[257 "\211;\203\211c\207\300\301@\"c\210\211A@\211\2034\211@\300\302@\"\303H\304U\204-\300\305@A#c\210A\266\202\202\210\306c\210\211AA\211\203O\211@\307c\210\310!\210A\266\202\202;\210\300\311@\"c\207" [format "<%s" "%s" 0 58 " %s=\"%s\"" ">" " " svg-print "</%s>"] 7 (#$ . 6638)])
#@60 Remove the element identified by ID from SVG.

(fn SVG ID)
(defalias 'svg-remove #[514 "\300\301\302!\303Q\"@\211\205\304\"\207" [dom-by-id "\\`" regexp-quote "\\'" dom-remove-node] 7 (#$ . 7035)])
(provide 'svg)