View file File name : svg.elc Content :;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>