diff options
Diffstat (limited to 'srcs/res')
| -rw-r--r-- | srcs/res/SvgToVector.java | 32 | ||||
| -rw-r--r-- | srcs/res/doc_key.svg | 192 | ||||
| -rw-r--r-- | srcs/res/gen_doc_key_drawables.sh | 25 |
3 files changed, 249 insertions, 0 deletions
diff --git a/srcs/res/SvgToVector.java b/srcs/res/SvgToVector.java new file mode 100644 index 0000000..78486fe --- /dev/null +++ b/srcs/res/SvgToVector.java @@ -0,0 +1,32 @@ +package srcs.res; + +import com.android.ide.common.vectordrawable.Svg2Vector; +import java.io.File; +import java.io.FileOutputStream; + +/** Inspired from Bernard Ladenthin's answer: + https://stackoverflow.com/a/78898372 */ +public class SvgToVector +{ + public static void main(String[] args) + { + if (args.length != 2) + { + System.out.println("Usage: svg_to_vector <input_file> <output_file>"); + return; + } + try + { + File input_file = new File(args[0]); + FileOutputStream output_stream = new FileOutputStream(args[1]); + String warnings; + warnings = Svg2Vector.parseSvgToXml(input_file, output_stream); + System.err.println(warnings); + } + catch (Exception e) + { + e.printStackTrace(); + System.exit(2); + } + } +} diff --git a/srcs/res/doc_key.svg b/srcs/res/doc_key.svg new file mode 100644 index 0000000..73e6a2a --- /dev/null +++ b/srcs/res/doc_key.svg @@ -0,0 +1,192 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + width="35mm" + height="40mm" + viewBox="0 0 35 40" + version="1.1" + id="svg1" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="doc_key.svg" + inkscape:export-filename="key_u.svg" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns="http://www.w3.org/2000/svg" + xmlns:svg="http://www.w3.org/2000/svg"> + <sodipodi:namedview + id="namedview1" + pagecolor="#1b1b1b" + bordercolor="#000000" + borderopacity="0.25" + inkscape:showpageshadow="2" + inkscape:pageopacity="0.0" + inkscape:pagecheckerboard="0" + inkscape:deskcolor="#1b1b1b" + inkscape:document-units="mm" + inkscape:zoom="4.6038101" + inkscape:cx="160.95364" + inkscape:cy="75.69817" + inkscape:window-width="2560" + inkscape:window-height="1440" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="layer2"> + <inkscape:page + x="0" + y="0" + width="35" + height="40" + id="page1" + margin="0" + bleed="0" + inkscape:label="g" /> + <inkscape:page + x="45" + y="0" + width="35" + height="40" + id="page2" + margin="0" + bleed="0" + inkscape:label="u" /> + </sodipodi:namedview> + <defs + id="defs1" /> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="U" + style="display:inline"> + <g + inkscape:label="Background" + inkscape:groupmode="layer" + id="layer1" + style="display:inline" + transform="translate(42.916821,-9.9998472)"> + <rect + style="display:inline;fill:#333333;fill-opacity:1;stroke:#404040;stroke-width:0.251;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + id="rect1" + width="14.749311" + height="19.74971" + x="12.208678" + y="20.125347" + ry="1.1332803" + inkscape:label="rect1" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.48996px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;display:inline;fill:#fdfdfd;fill-opacity:1;stroke:none;stroke-width:0.265729;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + x="59.864403" + y="22.246796" + id="text1" + inkscape:label="text1" + inkscape:transform-center-x="-0.00074323194" + inkscape:transform-center-y="-0.001350474" + transform="scale(1.0003873,0.99961285)"><tspan + id="tspan1" + sodipodi:role="line" + x="59.864403" + y="22.246796" + style="stroke-width:0.265729">u</tspan><tspan + id="tspan2" + sodipodi:role="line" + x="59.864403" + y="32.859245" + style="stroke-width:0.265729" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;display:inline;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.265728;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + x="55.882885" + y="28.802013" + id="text3" + transform="scale(1.0003873,0.99961285)" + inkscape:label="text3"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;fill:#cccccc;fill-opacity:1;stroke-width:0.265729" + x="55.882885" + y="28.802013" + id="tspan4">&</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;display:inline;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.265728;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + x="65.686905" + y="15.189408" + id="text5" + transform="scale(1.0003873,0.99961285)"><tspan + sodipodi:role="line" + id="tspan5" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;fill:#cccccc;fill-opacity:1;stroke-width:0.265729" + x="65.686905" + y="15.189408">7</tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="G" + style="display:inline"> + <g + inkscape:label="Background" + inkscape:groupmode="layer" + id="g2" + style="display:inline"> + <rect + style="display:inline;fill:#333333;fill-opacity:1;stroke:#404040;stroke-width:0.251;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + id="rect2" + width="14.749311" + height="19.74971" + x="10.125345" + y="10.125347" + ry="1.1332803" + inkscape:label="rect1" /> + </g> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;display:inline;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.265728;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + x="10.887006" + y="27.77977" + id="text3-3" + transform="scale(1.0003873,0.99961285)" + inkscape:label="text3"><tspan + sodipodi:role="line" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;fill:#cccccc;fill-opacity:1;stroke-width:0.265729" + x="10.887006" + y="27.77977" + id="tspan4-7">_</tspan></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:8.48996px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;display:inline;fill:#fdfdfd;fill-opacity:1;stroke:none;stroke-width:0.265729;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + x="14.868526" + y="22.204519" + id="text1-2" + inkscape:label="text1" + inkscape:transform-center-x="-0.00074323194" + inkscape:transform-center-y="-0.001350474" + transform="scale(1.0003873,0.99961285)"><tspan + id="tspan1-0" + sodipodi:role="line" + x="14.868526" + y="22.204519" + style="stroke-width:0.265729">g</tspan><tspan + id="tspan2-2" + sodipodi:role="line" + x="14.868526" + y="32.816971" + style="stroke-width:0.265729" /></text> + <text + xml:space="preserve" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;display:inline;fill:#cccccc;fill-opacity:1;stroke:none;stroke-width:0.265728;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke" + x="20.691027" + y="15.147132" + id="text5-5" + transform="scale(1.0003873,0.99961285)"><tspan + sodipodi:role="line" + id="tspan5-9" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.65997px;font-family:'Fira Code';-inkscape-font-specification:'Fira Code, @wght=500';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;font-variation-settings:'wght' 500;fill:#cccccc;fill-opacity:1;stroke-width:0.265729" + x="20.691027" + y="15.147132">-</tspan></text> + </g> +</svg> diff --git a/srcs/res/gen_doc_key_drawables.sh b/srcs/res/gen_doc_key_drawables.sh new file mode 100644 index 0000000..ff89793 --- /dev/null +++ b/srcs/res/gen_doc_key_drawables.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -e +cd "$(dirname $0)" + +DRAWABLE_DIR=../../res/drawable +ANDROID_LIB=$ANDROID_SDK_ROOT/tools/lib + +first () { echo "$1"; } +JAVA_ARGS=( + -classpath + "$(first $ANDROID_LIB/sdk-common-*.jar):$(first $ANDROID_LIB/common-*.jar)" +) +svg_to_vector () +{ + java "${JAVA_ARGS[@]}" SvgToVector.java "$@" +} + +TMP=`mktemp -d` +trap "rm -r '$TMP'" EXIT +set -x + +inkscape doc_key.svg -o "$TMP/doc_key_u.svg" -C --export-page 2 --export-plain-svg --export-text-to-path + +svg_to_vector "$TMP/doc_key_u.svg" "$DRAWABLE_DIR/doc_key_u.xml" |
