abouttreesummaryrefslogcommitdiff
path: root/srcs/res
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/res')
-rw-r--r--srcs/res/SvgToVector.java32
-rw-r--r--srcs/res/doc_key.svg192
-rw-r--r--srcs/res/gen_doc_key_drawables.sh25
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">&amp;</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"