Compare commits
23 Commits
greek_diac
...
master
Author | SHA1 | Date | |
---|---|---|---|
|
997b7be4c0 | ||
|
23097921cf | ||
|
237c4e2cc2 | ||
|
9bf0a20226 | ||
|
354c0a6f1c | ||
|
46408572bc | ||
|
0d51f7ea1e | ||
|
fcbaa23ccf | ||
|
70365b48d4 | ||
|
3c30e8248e | ||
|
73742a853f | ||
|
24a6dd0f2c | ||
|
2233250e4d | ||
|
c4a88e4d5b | ||
|
cd2932bde1 | ||
|
6fae23a432 | ||
|
6e2494ca0b | ||
|
8a6dc34b2c | ||
|
9f0cf15d2e | ||
|
700ec23bd4 | ||
|
fb93d841a5 | ||
|
a1be402638 | ||
|
9f22e53a3b |
@ -25,7 +25,7 @@ Usage: to apply the symbols located in the corners of each key, slide your finge
|
|||||||
| <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" alt="Screenshot-4" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" alt="Screenshot-5" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" alt="Screenshot-6" /> |
|
| <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" alt="Screenshot-4" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" alt="Screenshot-5" /> | <img src="/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" alt="Screenshot-6" /> |
|
||||||
|
|
||||||
## Similar apps
|
## Similar apps
|
||||||
* [Calculator++](https://github.com/Bubu/android-calculatorpp) - Calculator with a similar UX, swipe to corners for advanced math symbols and operators. Works up to Android 13 but maybe unmaintained.
|
* [Calculator++](https://git.bubu1.eu/Bubu/android-calculatorpp) - Calculator with a similar UX, swipe to corners for advanced math symbols and operators.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
13
build.gradle
@ -2,6 +2,10 @@ plugins {
|
|||||||
id 'com.android.application' version '8.1.1'
|
id 'com.android.application' version '8.1.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
testImplementation "junit:junit:4.13.2"
|
||||||
|
}
|
||||||
|
|
||||||
android {
|
android {
|
||||||
namespace 'juloo.keyboard2'
|
namespace 'juloo.keyboard2'
|
||||||
compileSdk 34
|
compileSdk 34
|
||||||
@ -17,10 +21,14 @@ android {
|
|||||||
sourceSets {
|
sourceSets {
|
||||||
main {
|
main {
|
||||||
manifest.srcFile 'AndroidManifest.xml'
|
manifest.srcFile 'AndroidManifest.xml'
|
||||||
java.srcDirs = ['srcs']
|
java.srcDirs = ['srcs/juloo.keyboard2']
|
||||||
res.srcDirs = ['res', 'build/generated-resources']
|
res.srcDirs = ['res', 'build/generated-resources']
|
||||||
assets.srcDirs = ['assets']
|
assets.srcDirs = ['assets']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test {
|
||||||
|
java.srcDirs = ['test']
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
signingConfigs {
|
signingConfigs {
|
||||||
@ -84,9 +92,6 @@ android {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.register('buildKeyboardFont') {
|
tasks.register('buildKeyboardFont') {
|
||||||
println "\nBuilding assets/special_font.ttf"
|
println "\nBuilding assets/special_font.ttf"
|
||||||
mkdir "$buildDir"
|
mkdir "$buildDir"
|
||||||
|
@ -36,6 +36,15 @@ Layout includes some ASCII punctuation but not all, missing: $, &, *, ., /, <, >
|
|||||||
# cyrl_yaverti
|
# cyrl_yaverti
|
||||||
Layout includes some ASCII punctuation but not all, missing: ~
|
Layout includes some ASCII punctuation but not all, missing: ~
|
||||||
1 warnings
|
1 warnings
|
||||||
|
# cyrl_yqukeng_tj
|
||||||
|
Layout doesn't define some important keys, missing: loc esc, loc tab
|
||||||
|
These keys are now added automatically, unexpected: f11_placeholder, f12_placeholder
|
||||||
|
2 warnings
|
||||||
|
# cyrl_yxukeng_os
|
||||||
|
Layout includes some ASCII punctuation but not all, missing: ", #, $, &, ', @, [, ], ~
|
||||||
|
Layout doesn't define some important keys, missing: loc esc, loc tab
|
||||||
|
These keys are now added automatically, unexpected: f11_placeholder, f12_placeholder
|
||||||
|
3 warnings
|
||||||
# deva_alt
|
# deva_alt
|
||||||
Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', (, ), +, ., /, :, <, =, >, [, \, ], ^, _, `, {, |, }, ~
|
Layout includes some ASCII punctuation but not all, missing: #, $, %, &, ', (, ), +, ., /, :, <, =, >, [, \, ], ^, _, `, {, |, }, ~
|
||||||
Layout doesn't define some important keys, missing: loc esc, loc tab
|
Layout doesn't define some important keys, missing: loc esc, loc tab
|
||||||
|
@ -46,7 +46,8 @@ These keys are sent to apps, which are free to ignore them. The keyboard does no
|
|||||||
`page_up`, `page_down`,
|
`page_up`, `page_down`,
|
||||||
`home`, `end`,
|
`home`, `end`,
|
||||||
`backspace`, `delete`,
|
`backspace`, `delete`,
|
||||||
`insert`, `f1`-`f12`,
|
`insert`, `scroll_lock`,
|
||||||
|
`f1`-`f12`,
|
||||||
`tab`, `copy`,
|
`tab`, `copy`,
|
||||||
`paste`, `cut`,
|
`paste`, `cut`,
|
||||||
`selectAll`, `pasteAsPlainText`,
|
`selectAll`, `pasteAsPlainText`,
|
||||||
@ -119,7 +120,7 @@ Keys ending in `_placeholder` are normally hidden unless the Fn key is pressed.
|
|||||||
`ole`, `ole_placeholder`,
|
`ole`, `ole_placeholder`,
|
||||||
`meteg`, `meteg_placeholder`
|
`meteg`, `meteg_placeholder`
|
||||||
|
|
||||||
## Unexpected Keyboard specific
|
## Keyboard behavior keys
|
||||||
Value | Meaning
|
Value | Meaning
|
||||||
:--------------------- | :------
|
:--------------------- | :------
|
||||||
`config` | Gear icon; opens Unexpected Keyboard settings.
|
`config` | Gear icon; opens Unexpected Keyboard settings.
|
||||||
@ -148,3 +149,42 @@ These keys are known to do nothing.
|
|||||||
These keys are normally hidden unless the Fn modifier is activated.
|
These keys are normally hidden unless the Fn modifier is activated.
|
||||||
|
|
||||||
`f11_placeholder` | `f12_placeholder`
|
`f11_placeholder` | `f12_placeholder`
|
||||||
|
|
||||||
|
## Complex keys
|
||||||
|
|
||||||
|
More complex keys are of this form:
|
||||||
|
|
||||||
|
```
|
||||||
|
:<kind> <attributes>:<payload>
|
||||||
|
```
|
||||||
|
|
||||||
|
Where `<kind>` is one of the kinds documented below and `<attributes>` is a
|
||||||
|
space separated list of attributes. `<payload>` depends on the `<kind>`.
|
||||||
|
|
||||||
|
Attributes are:
|
||||||
|
- `symbol='Sym'` specifies the symbol to be shown on the keyboard.
|
||||||
|
- `flags='<flags>'` changes the behavior of the key.
|
||||||
|
`<flags>` is a coma separated list of:
|
||||||
|
+ `dim`: Make the symbol dimmer.
|
||||||
|
+ `small`: Make the symbol smaller.
|
||||||
|
|
||||||
|
### Kind `str`
|
||||||
|
|
||||||
|
Defines a key that outputs an arbitrary string. `<payload>` is a string wrapped
|
||||||
|
in single-quotes (`'`), escaping of other single quotes is allowed with `\'`.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
- `:str:'Arbitrary string with a \' inside'`
|
||||||
|
- `:str symbol='Symbol':'Output string'`
|
||||||
|
|
||||||
|
### Kind `char`
|
||||||
|
|
||||||
|
Defines a key that outputs a single character. `<payload>` is the character to
|
||||||
|
output, unquoted.
|
||||||
|
This kind of key can be used to define a character key with a different symbol
|
||||||
|
on it. `char` keys can be modified by `ctrl` and other modifiers, unlike `str`
|
||||||
|
keys.
|
||||||
|
|
||||||
|
For example:
|
||||||
|
- `:char symbol='q':љ`, which is used to implement `ctrl` shortcuts in cyrillic
|
||||||
|
layouts.
|
||||||
|
25
res/drawable/doc_anim_swipe.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt">
|
||||||
|
<aapt:attr name="android:drawable">
|
||||||
|
<vector android:name="vector" android:width="35dp" android:height="40dp" android:viewportWidth="35" android:viewportHeight="40">
|
||||||
|
<path android:name="trace" android:pathData="M 0 0" android:fillColor="#09b3f1" android:strokeColor="#09b3f1" android:strokeWidth="2" android:strokeLineCap="round"/>
|
||||||
|
</vector>
|
||||||
|
</aapt:attr>
|
||||||
|
<target android:name="trace">
|
||||||
|
<aapt:attr name="android:animation">
|
||||||
|
<set>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:duration="100" android:valueFrom="0" android:valueTo="1" android:valueType="floatType" android:interpolator="@android:interpolator/fast_out_slow_in"/>
|
||||||
|
<objectAnimator
|
||||||
|
android:propertyName="pathData"
|
||||||
|
android:duration="700"
|
||||||
|
android:valueFrom="M 17.5 20.0 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 17.5,20.0"
|
||||||
|
android:valueTo=" M 31 4 m 2,0 a 2,2 0 1,1 -4,0 a 2,2 0 1,1 4,0 M 17.5 20.0 L 31 ,4"
|
||||||
|
android:valueType="pathType"
|
||||||
|
android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="fillAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
<objectAnimator android:propertyName="strokeAlpha" android:startOffset="900" android:duration="400" android:valueFrom="1" android:valueTo="0" android:valueType="floatType" android:interpolator="@android:interpolator/linear_out_slow_in"/>
|
||||||
|
</set>
|
||||||
|
</aapt:attr>
|
||||||
|
</target>
|
||||||
|
</animated-vector>
|
25
res/drawable/doc_key_u.xml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="35dp"
|
||||||
|
android:height="40dp"
|
||||||
|
android:viewportWidth="35.0"
|
||||||
|
android:viewportHeight="40.0">
|
||||||
|
<path
|
||||||
|
android:pathData="M11.26,10.13L23.74,10.13A1.13,1.13 0,0 1,24.87 11.26L24.87,28.74A1.13,1.13 0,0 1,23.74 29.88L11.26,29.88A1.13,1.13 0,0 1,10.13 28.74L10.13,11.26A1.13,1.13 0,0 1,11.26 10.13z"
|
||||||
|
android:fillAlpha="1"
|
||||||
|
android:strokeColor="#404040"
|
||||||
|
android:fillColor="#333333"
|
||||||
|
android:strokeWidth="0.251"
|
||||||
|
android:strokeAlpha="1"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m16.64,17.64l0,3.21q0,0.41 0.16,0.58 0.17,0.17 0.5,0.17 0.31,0 0.61,-0.19 0.29,-0.19 0.46,-0.46l0,-3.33l0.98,0l0,4.6l-0.84,0l-0.06,-0.59q-0.26,0.34 -0.65,0.53 -0.39,0.18 -0.8,0.18 -0.67,0 -1,-0.37 -0.33,-0.37 -0.33,-1.01l0,-3.33z"
|
||||||
|
android:fillColor="#fdfdfd"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m12.52,24.71q0.3,0 0.54,0.09 0.25,0.09 0.49,0.35l-0.37,0.33q-0.14,-0.16 -0.28,-0.23 -0.14,-0.08 -0.34,-0.08 -0.27,0 -0.41,0.15 -0.14,0.15 -0.14,0.39 0,0.17 0.08,0.31 0.08,0.14 0.23,0.22 0.15,0.08 0.33,0.08l1.58,0l0,0.46l-0.47,0l0,1.56q-0.1,0.12 -0.26,0.24 -0.16,0.12 -0.41,0.21 -0.24,0.08 -0.58,0.08 -0.45,0 -0.75,-0.17 -0.3,-0.17 -0.44,-0.45 -0.15,-0.28 -0.15,-0.6 0,-0.46 0.24,-0.74 0.24,-0.28 0.66,-0.37l0,-0.02q-0.25,-0.06 -0.4,-0.18 -0.15,-0.12 -0.22,-0.3 -0.07,-0.17 -0.07,-0.37 0,-0.26 0.14,-0.48 0.14,-0.22 0.4,-0.35 0.26,-0.13 0.6,-0.13zM13.18,26.79l-0.58,0q-0.28,0 -0.45,0.12 -0.17,0.12 -0.26,0.32 -0.08,0.19 -0.08,0.39 0,0.2 0.08,0.37 0.08,0.17 0.24,0.28 0.16,0.1 0.42,0.1 0.21,0 0.37,-0.07 0.16,-0.07 0.26,-0.19z"
|
||||||
|
android:fillColor="#cccccc"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
<path
|
||||||
|
android:pathData="m22.12,15.25 l-0.61,-0.19 1.54,-3.37l-1.84,0l0,-0.51l2.49,0l0,0.47z"
|
||||||
|
android:fillColor="#cccccc"
|
||||||
|
android:strokeWidth="0.265729"/>
|
||||||
|
</vector>
|
@ -4,7 +4,7 @@
|
|||||||
<TextView style="@style/paragraph" android:text="@string/launcher_description"/>
|
<TextView style="@style/paragraph" android:text="@string/launcher_description"/>
|
||||||
<Button style="@style/paragraph" android:text="@string/launcher_button_imesettings" android:onClick="launch_imesettings" android:layout_width="wrap_content"/>
|
<Button style="@style/paragraph" android:text="@string/launcher_button_imesettings" android:onClick="launch_imesettings" android:layout_width="wrap_content"/>
|
||||||
<Button style="@style/paragraph" android:text="@string/launcher_button_imepicker" android:onClick="launch_imepicker" android:layout_width="wrap_content"/>
|
<Button style="@style/paragraph" android:text="@string/launcher_button_imepicker" android:onClick="launch_imepicker" android:layout_width="wrap_content"/>
|
||||||
<VideoView android:id="@+id/launcher_intro_video" android:layout_width="240dp" android:layout_height="wrap_content" android:layout_gravity="center"/>
|
<ImageView style="@style/anim" android:id="@+id/launcher_anim_swipe" android:background="@drawable/doc_key_u" android:src="@drawable/doc_anim_swipe"/>
|
||||||
<TextView android:id="@+id/launcher_tryhere_text" style="@style/paragraph" android:text="@string/launcher_tryhere"/>
|
<TextView android:id="@+id/launcher_tryhere_text" style="@style/paragraph" android:text="@string/launcher_tryhere"/>
|
||||||
<EditText android:id="@+id/launcher_tryhere_area" style="@style/paragraph" android:inputType="text" android:hint="@string/launcher_tryhere_hint" android:importantForAutofill="no"/>
|
<EditText android:id="@+id/launcher_tryhere_area" style="@style/paragraph" android:inputType="text" android:hint="@string/launcher_tryhere_hint" android:importantForAutofill="no"/>
|
||||||
<TextView style="@style/paragraph" android:text="@string/launcher_sourcecode"/>
|
<TextView style="@style/paragraph" android:text="@string/launcher_sourcecode"/>
|
||||||
|
@ -71,6 +71,7 @@ Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je
|
|||||||
<string name="pref_theme_e_monet">Monet (dle systému)</string>
|
<string name="pref_theme_e_monet">Monet (dle systému)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (Světlý)</string>
|
<string name="pref_theme_e_monetlight">Monet (Světlý)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (Tmavý)</string>
|
<string name="pref_theme_e_monetdark">Monet (Tmavý)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Velmi krátká</string>
|
<string name="pref_swipe_dist_e_very_short">Velmi krátká</string>
|
||||||
<string name="pref_swipe_dist_e_short">Krátká</string>
|
<string name="pref_swipe_dist_e_short">Krátká</string>
|
||||||
<string name="pref_swipe_dist_e_default">Běžná</string>
|
<string name="pref_swipe_dist_e_default">Běžná</string>
|
||||||
@ -120,6 +121,7 @@ Tato aplikace neobsahuje žádné reklamy, nevyužívá připojení k síti a je
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<string name="key_descr_clipboard">Správce schránky</string>
|
<string name="key_descr_clipboard">Správce schránky</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">Nedávno kopírovaný text</string>
|
<string name="clipboard_history_heading">Nedávno kopírovaný text</string>
|
||||||
<string name="clipboard_pin_heading">Připnout</string>
|
<string name="clipboard_pin_heading">Připnout</string>
|
||||||
<string name="clipboard_remove_confirm">Odebrat ze schránky?</string>
|
<string name="clipboard_remove_confirm">Odebrat ze schránky?</string>
|
||||||
|
@ -71,6 +71,7 @@ Diese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quell
|
|||||||
<string name="pref_theme_e_monet">Monet (System)</string>
|
<string name="pref_theme_e_monet">Monet (System)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (Hell)</string>
|
<string name="pref_theme_e_monetlight">Monet (Hell)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (Dunkel)</string>
|
<string name="pref_theme_e_monetdark">Monet (Dunkel)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Sehr kurz</string>
|
<string name="pref_swipe_dist_e_very_short">Sehr kurz</string>
|
||||||
<string name="pref_swipe_dist_e_short">Kurz</string>
|
<string name="pref_swipe_dist_e_short">Kurz</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@ -120,6 +121,7 @@ Diese App enthält keine Werbung, benötigt keinen Netzwerkzugriff und ist quell
|
|||||||
<string name="key_descr_home">Pos1</string>
|
<string name="key_descr_home">Pos1</string>
|
||||||
<string name="key_descr_end">Ende</string>
|
<string name="key_descr_end">Ende</string>
|
||||||
<string name="key_descr_clipboard">Clipboard-Manager</string>
|
<string name="key_descr_clipboard">Clipboard-Manager</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">Zuletzt kopierter Text</string>
|
<string name="clipboard_history_heading">Zuletzt kopierter Text</string>
|
||||||
<string name="clipboard_pin_heading">Angeheftet</string>
|
<string name="clipboard_pin_heading">Angeheftet</string>
|
||||||
<string name="clipboard_remove_confirm">Aus der Zwischenablage entfernen?</string>
|
<string name="clipboard_remove_confirm">Aus der Zwischenablage entfernen?</string>
|
||||||
|
@ -71,6 +71,7 @@ La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y
|
|||||||
<string name="pref_theme_e_monet">Monet (de sistema)</string>
|
<string name="pref_theme_e_monet">Monet (de sistema)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (claro)</string>
|
<string name="pref_theme_e_monetlight">Monet (claro)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (oscuro)</string>
|
<string name="pref_theme_e_monetdark">Monet (oscuro)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Muy corta</string>
|
<string name="pref_swipe_dist_e_very_short">Muy corta</string>
|
||||||
<string name="pref_swipe_dist_e_short">Corta</string>
|
<string name="pref_swipe_dist_e_short">Corta</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@ -120,6 +121,7 @@ La misma no contiene ningún anuncio/publicidad, no realiza peticiones de red y
|
|||||||
<string name="key_descr_home">Inicio</string>
|
<string name="key_descr_home">Inicio</string>
|
||||||
<string name="key_descr_end">Fin</string>
|
<string name="key_descr_end">Fin</string>
|
||||||
<string name="key_descr_clipboard">Arreglar portapapeles</string>
|
<string name="key_descr_clipboard">Arreglar portapapeles</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">Textos recién copiados</string>
|
<string name="clipboard_history_heading">Textos recién copiados</string>
|
||||||
<string name="clipboard_pin_heading">Pegado</string>
|
<string name="clipboard_pin_heading">Pegado</string>
|
||||||
<string name="clipboard_remove_confirm">¿Sacar este portapapeles?</string>
|
<string name="clipboard_remove_confirm">¿Sacar este portapapeles?</string>
|
||||||
|
@ -71,6 +71,7 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">بسیار کوتاه</string>
|
<string name="pref_swipe_dist_e_very_short">بسیار کوتاه</string>
|
||||||
<string name="pref_swipe_dist_e_short">کوتاه</string>
|
<string name="pref_swipe_dist_e_short">کوتاه</string>
|
||||||
<string name="pref_swipe_dist_e_default">عادی</string>
|
<string name="pref_swipe_dist_e_default">عادی</string>
|
||||||
@ -120,6 +121,7 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
@ -71,6 +71,7 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="pref_theme_e_monet">Monet (Système)</string>
|
<string name="pref_theme_e_monet">Monet (Système)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (Clair)</string>
|
<string name="pref_theme_e_monetlight">Monet (Clair)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (Sombre)</string>
|
<string name="pref_theme_e_monetdark">Monet (Sombre)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Très courte</string>
|
<string name="pref_swipe_dist_e_very_short">Très courte</string>
|
||||||
<string name="pref_swipe_dist_e_short">Courte</string>
|
<string name="pref_swipe_dist_e_short">Courte</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normale</string>
|
<string name="pref_swipe_dist_e_default">Normale</string>
|
||||||
@ -120,6 +121,7 @@ Cette application ne contient pas de publicité, n'accède pas au réseau et est
|
|||||||
<string name="key_descr_home">Début</string>
|
<string name="key_descr_home">Début</string>
|
||||||
<string name="key_descr_end">Fin</string>
|
<string name="key_descr_end">Fin</string>
|
||||||
<string name="key_descr_clipboard">Presse-papiers</string>
|
<string name="key_descr_clipboard">Presse-papiers</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">Texte récemment copié</string>
|
<string name="clipboard_history_heading">Texte récemment copié</string>
|
||||||
<string name="clipboard_pin_heading">Épinglé</string>
|
<string name="clipboard_pin_heading">Épinglé</string>
|
||||||
<string name="clipboard_remove_confirm">Supprimer ce presse-papiers ?</string>
|
<string name="clipboard_remove_confirm">Supprimer ce presse-papiers ?</string>
|
||||||
|
@ -71,6 +71,7 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Veramente breve</string>
|
<string name="pref_swipe_dist_e_very_short">Veramente breve</string>
|
||||||
<string name="pref_swipe_dist_e_short">Breve</string>
|
<string name="pref_swipe_dist_e_short">Breve</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normale</string>
|
<string name="pref_swipe_dist_e_default">Normale</string>
|
||||||
@ -120,6 +121,7 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
@ -72,6 +72,7 @@ PCキーボードでの半角入力を再現しています。日本語入力、
|
|||||||
<string name="pref_theme_e_monet">Monet (システム)</string>
|
<string name="pref_theme_e_monet">Monet (システム)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (ライト)</string>
|
<string name="pref_theme_e_monetlight">Monet (ライト)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (ダーク)</string>
|
<string name="pref_theme_e_monetdark">Monet (ダーク)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">短い</string>
|
<string name="pref_swipe_dist_e_very_short">短い</string>
|
||||||
<string name="pref_swipe_dist_e_short">やや短い</string>
|
<string name="pref_swipe_dist_e_short">やや短い</string>
|
||||||
<string name="pref_swipe_dist_e_default">普通</string>
|
<string name="pref_swipe_dist_e_default">普通</string>
|
||||||
@ -121,6 +122,7 @@ PCキーボードでの半角入力を再現しています。日本語入力、
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<string name="key_descr_clipboard">クリップボード</string>
|
<string name="key_descr_clipboard">クリップボード</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">最近コピーしたテキスト</string>
|
<string name="clipboard_history_heading">最近コピーしたテキスト</string>
|
||||||
<string name="clipboard_pin_heading">お気に入り</string>
|
<string name="clipboard_pin_heading">お気に入り</string>
|
||||||
<string name="clipboard_remove_confirm">クリップボードから削除しますか?</string>
|
<string name="clipboard_remove_confirm">クリップボードから削除しますか?</string>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="pref_theme_e_monet">모네트 (시스템)</string>
|
<string name="pref_theme_e_monet">모네트 (시스템)</string>
|
||||||
<string name="pref_theme_e_monetlight">모네트 (라이트)</string>
|
<string name="pref_theme_e_monetlight">모네트 (라이트)</string>
|
||||||
<string name="pref_theme_e_monetdark">모네트 (다크)</string>
|
<string name="pref_theme_e_monetdark">모네트 (다크)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">매우 짧음</string>
|
<string name="pref_swipe_dist_e_very_short">매우 짧음</string>
|
||||||
<string name="pref_swipe_dist_e_short">짧음</string>
|
<string name="pref_swipe_dist_e_short">짧음</string>
|
||||||
<string name="pref_swipe_dist_e_default">보통</string>
|
<string name="pref_swipe_dist_e_default">보통</string>
|
||||||
@ -120,6 +121,7 @@
|
|||||||
<string name="key_descr_home">홈</string>
|
<string name="key_descr_home">홈</string>
|
||||||
<string name="key_descr_end">종료</string>
|
<string name="key_descr_end">종료</string>
|
||||||
<string name="key_descr_clipboard">클립보드 관리자</string>
|
<string name="key_descr_clipboard">클립보드 관리자</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">최근에 복사한 텍스트</string>
|
<string name="clipboard_history_heading">최근에 복사한 텍스트</string>
|
||||||
<string name="clipboard_pin_heading">고정</string>
|
<string name="clipboard_pin_heading">고정</string>
|
||||||
<string name="clipboard_remove_confirm">이 클립보드를 제거하시겠습니까?</string>
|
<string name="clipboard_remove_confirm">이 클립보드를 제거하시겠습니까?</string>
|
||||||
|
@ -71,6 +71,7 @@ Tagad lieliski piemērota izmantošanai ikdienā.
|
|||||||
<string name="pref_theme_e_monet">Monē (sistēmas)</string>
|
<string name="pref_theme_e_monet">Monē (sistēmas)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monē (gaišs)</string>
|
<string name="pref_theme_e_monetlight">Monē (gaišs)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monē (tumšs)</string>
|
<string name="pref_theme_e_monetdark">Monē (tumšs)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Ļoti tuvs</string>
|
<string name="pref_swipe_dist_e_very_short">Ļoti tuvs</string>
|
||||||
<string name="pref_swipe_dist_e_short">Tuvs</string>
|
<string name="pref_swipe_dist_e_short">Tuvs</string>
|
||||||
<string name="pref_swipe_dist_e_default">Vidējs</string>
|
<string name="pref_swipe_dist_e_default">Vidējs</string>
|
||||||
@ -122,6 +123,7 @@ Tagad lieliski piemērota izmantošanai ikdienā.
|
|||||||
<string name="key_descr_home">Sākums</string>
|
<string name="key_descr_home">Sākums</string>
|
||||||
<string name="key_descr_end">Beigas</string>
|
<string name="key_descr_end">Beigas</string>
|
||||||
<string name="key_descr_clipboard">Starpliktuves pārvaldnieks</string>
|
<string name="key_descr_clipboard">Starpliktuves pārvaldnieks</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">Nesen starpliktuvē ievietots teksts</string>
|
<string name="clipboard_history_heading">Nesen starpliktuvē ievietots teksts</string>
|
||||||
<string name="clipboard_pin_heading">Piesprausts</string>
|
<string name="clipboard_pin_heading">Piesprausts</string>
|
||||||
<string name="clipboard_remove_confirm">Noņemt šo starpliktuves vienumu?</string>
|
<string name="clipboard_remove_confirm">Noņemt šo starpliktuves vienumu?</string>
|
||||||
|
@ -71,6 +71,7 @@ Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źród
|
|||||||
<string name="pref_theme_e_monet">Monet (Systemowy)</string>
|
<string name="pref_theme_e_monet">Monet (Systemowy)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (Jasny)</string>
|
<string name="pref_theme_e_monetlight">Monet (Jasny)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (Ciemny)</string>
|
<string name="pref_theme_e_monetdark">Monet (Ciemny)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Bardzo mała</string>
|
<string name="pref_swipe_dist_e_very_short">Bardzo mała</string>
|
||||||
<string name="pref_swipe_dist_e_short">Mała</string>
|
<string name="pref_swipe_dist_e_short">Mała</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normalna</string>
|
<string name="pref_swipe_dist_e_default">Normalna</string>
|
||||||
@ -120,6 +121,7 @@ Aplikacja nie zawiera reklam, nie żąda dostępu do internetu, a jej kod źród
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<string name="key_descr_clipboard">Zarządzanie schowkiem</string>
|
<string name="key_descr_clipboard">Zarządzanie schowkiem</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">Ostatnio skopiowane elementy</string>
|
<string name="clipboard_history_heading">Ostatnio skopiowane elementy</string>
|
||||||
<string name="clipboard_pin_heading">Przypięte</string>
|
<string name="clipboard_pin_heading">Przypięte</string>
|
||||||
<string name="clipboard_remove_confirm">Usunąć ten element ze schowka?</string>
|
<string name="clipboard_remove_confirm">Usunąć ten element ze schowka?</string>
|
||||||
|
@ -71,6 +71,7 @@ Este aplicativo não contém anúncios, não faz nenhuma solicitação de rede e
|
|||||||
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Bem curto</string>
|
<string name="pref_swipe_dist_e_very_short">Bem curto</string>
|
||||||
<string name="pref_swipe_dist_e_short">Curto</string>
|
<string name="pref_swipe_dist_e_short">Curto</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@ -120,6 +121,7 @@ Este aplicativo não contém anúncios, não faz nenhuma solicitação de rede e
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
@ -71,6 +71,7 @@ Această aplicație nu conține publicitate, nu folosește rețeaua deloc și e
|
|||||||
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Foarte apropiată</string>
|
<string name="pref_swipe_dist_e_very_short">Foarte apropiată</string>
|
||||||
<string name="pref_swipe_dist_e_short">Apropiată</string>
|
<string name="pref_swipe_dist_e_short">Apropiată</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normală</string>
|
<string name="pref_swipe_dist_e_default">Normală</string>
|
||||||
@ -120,6 +121,7 @@ Această aplicație nu conține publicitate, nu folosește rețeaua deloc și e
|
|||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="pref_theme_e_monet">Моне (системная)</string>
|
<string name="pref_theme_e_monet">Моне (системная)</string>
|
||||||
<string name="pref_theme_e_monetlight">Моне (светлая)</string>
|
<string name="pref_theme_e_monetlight">Моне (светлая)</string>
|
||||||
<string name="pref_theme_e_monetdark">Моне (темная)</string>
|
<string name="pref_theme_e_monetdark">Моне (темная)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Очень короткая</string>
|
<string name="pref_swipe_dist_e_very_short">Очень короткая</string>
|
||||||
<string name="pref_swipe_dist_e_short">Короткая</string>
|
<string name="pref_swipe_dist_e_short">Короткая</string>
|
||||||
<string name="pref_swipe_dist_e_default">Обычная</string>
|
<string name="pref_swipe_dist_e_default">Обычная</string>
|
||||||
@ -120,6 +121,7 @@
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<string name="key_descr_clipboard">Менеджер буфера обмена</string>
|
<string name="key_descr_clipboard">Менеджер буфера обмена</string>
|
||||||
|
<string name="key_descr_combining">Сочетание диакритических знаков</string>
|
||||||
<string name="clipboard_history_heading">Недавно скопированный текст</string>
|
<string name="clipboard_history_heading">Недавно скопированный текст</string>
|
||||||
<string name="clipboard_pin_heading">Закреплено</string>
|
<string name="clipboard_pin_heading">Закреплено</string>
|
||||||
<string name="clipboard_remove_confirm">Удалить этот буфер обмена?</string>
|
<string name="clipboard_remove_confirm">Удалить этот буфер обмена?</string>
|
||||||
|
@ -71,6 +71,7 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."</str
|
|||||||
<string name="pref_theme_e_monet">Monet (Sisteme uyarla)</string>
|
<string name="pref_theme_e_monet">Monet (Sisteme uyarla)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (Açık)</string>
|
<string name="pref_theme_e_monetlight">Monet (Açık)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (Koyu)</string>
|
<string name="pref_theme_e_monetdark">Monet (Koyu)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Çok kısa</string>
|
<string name="pref_swipe_dist_e_very_short">Çok kısa</string>
|
||||||
<string name="pref_swipe_dist_e_short">Kısa</string>
|
<string name="pref_swipe_dist_e_short">Kısa</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@ -120,6 +121,7 @@ Bu uygulama açık kaynaklıdır. Reklam içermez ve internete bağlanmaz."</str
|
|||||||
<string name="key_descr_home">BAŞ(Sol yön tuşu)</string>
|
<string name="key_descr_home">BAŞ(Sol yön tuşu)</string>
|
||||||
<string name="key_descr_end">SON(Sağ yön tuşu)</string>
|
<string name="key_descr_end">SON(Sağ yön tuşu)</string>
|
||||||
<string name="key_descr_clipboard">Pano</string>
|
<string name="key_descr_clipboard">Pano</string>
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<string name="clipboard_history_heading">Son kopyalanan metin</string>
|
<string name="clipboard_history_heading">Son kopyalanan metin</string>
|
||||||
<string name="clipboard_pin_heading">Sabitlendi</string>
|
<string name="clipboard_pin_heading">Sabitlendi</string>
|
||||||
<string name="clipboard_remove_confirm">Bu sabitlemeyi sil</string>
|
<string name="clipboard_remove_confirm">Bu sabitlemeyi sil</string>
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<string name="pref_theme_e_monet">Моне (Системна)</string>
|
<string name="pref_theme_e_monet">Моне (Системна)</string>
|
||||||
<string name="pref_theme_e_monetlight">Моне (Світла)</string>
|
<string name="pref_theme_e_monetlight">Моне (Світла)</string>
|
||||||
<string name="pref_theme_e_monetdark">Моне (Темна)</string>
|
<string name="pref_theme_e_monetdark">Моне (Темна)</string>
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Дуже коротка</string>
|
<string name="pref_swipe_dist_e_very_short">Дуже коротка</string>
|
||||||
<string name="pref_swipe_dist_e_short">Коротка</string>
|
<string name="pref_swipe_dist_e_short">Коротка</string>
|
||||||
<string name="pref_swipe_dist_e_default">Звичайна</string>
|
<string name="pref_swipe_dist_e_default">Звичайна</string>
|
||||||
@ -120,6 +121,7 @@
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<string name="key_descr_clipboard">Менеджер буфера обміну</string>
|
<string name="key_descr_clipboard">Менеджер буфера обміну</string>
|
||||||
|
<string name="key_descr_combining">Комбінування діакритики</string>
|
||||||
<string name="clipboard_history_heading">Нещодавно скопійований текст</string>
|
<string name="clipboard_history_heading">Нещодавно скопійований текст</string>
|
||||||
<string name="clipboard_pin_heading">Закріплено</string>
|
<string name="clipboard_pin_heading">Закріплено</string>
|
||||||
<string name="clipboard_remove_confirm">Видалити цей буфер обміну?</string>
|
<string name="clipboard_remove_confirm">Видалити цей буфер обміну?</string>
|
||||||
|
@ -71,6 +71,7 @@ Bây giờ đã hoàn hảo cho việc sử dụng hàng ngày.
|
|||||||
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">Rất gần</string>
|
<string name="pref_swipe_dist_e_very_short">Rất gần</string>
|
||||||
<string name="pref_swipe_dist_e_short">Gần</string>
|
<string name="pref_swipe_dist_e_short">Gần</string>
|
||||||
<string name="pref_swipe_dist_e_default">Trungbình</string>
|
<string name="pref_swipe_dist_e_default">Trungbình</string>
|
||||||
@ -120,6 +121,7 @@ Bây giờ đã hoàn hảo cho việc sử dụng hàng ngày.
|
|||||||
<!-- <string name="key_descr_home">Home</string> -->
|
<!-- <string name="key_descr_home">Home</string> -->
|
||||||
<!-- <string name="key_descr_end">End</string> -->
|
<!-- <string name="key_descr_end">End</string> -->
|
||||||
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
<!-- <string name="pref_theme_e_monet">Monet (System)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
<!-- <string name="pref_theme_e_monetlight">Monet (Light)</string> -->
|
||||||
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
<!-- <string name="pref_theme_e_monetdark">Monet (Dark)</string> -->
|
||||||
|
<!-- <string name="pref_theme_e_rosepine">Rosé Pine</string> -->
|
||||||
<string name="pref_swipe_dist_e_very_short">非常短</string>
|
<string name="pref_swipe_dist_e_very_short">非常短</string>
|
||||||
<string name="pref_swipe_dist_e_short">短</string>
|
<string name="pref_swipe_dist_e_short">短</string>
|
||||||
<string name="pref_swipe_dist_e_default">中(默认)</string>
|
<string name="pref_swipe_dist_e_default">中(默认)</string>
|
||||||
@ -120,6 +121,7 @@
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
<!-- <string name="key_descr_clipboard">Clipboard manager</string> -->
|
||||||
|
<!-- <string name="key_descr_combining">Combining diacritic</string> -->
|
||||||
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
<!-- <string name="clipboard_history_heading">Recently copied text</string> -->
|
||||||
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
<!-- <string name="clipboard_pin_heading">Pinned</string> -->
|
||||||
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
<!-- <string name="clipboard_remove_confirm">Remove this clipboard?</string> -->
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
<item>@string/pref_theme_e_monet</item>
|
<item>@string/pref_theme_e_monet</item>
|
||||||
<item>@string/pref_theme_e_monetlight</item>
|
<item>@string/pref_theme_e_monetlight</item>
|
||||||
<item>@string/pref_theme_e_monetdark</item>
|
<item>@string/pref_theme_e_monetdark</item>
|
||||||
|
<item>@string/pref_theme_e_rosepine</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="pref_theme_values">
|
<string-array name="pref_theme_values">
|
||||||
<item>system</item>
|
<item>system</item>
|
||||||
@ -45,6 +46,7 @@
|
|||||||
<item>monet</item>
|
<item>monet</item>
|
||||||
<item>monetlight</item>
|
<item>monetlight</item>
|
||||||
<item>monetdark</item>
|
<item>monetdark</item>
|
||||||
|
<item>rosepine</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="pref_swipe_dist_entries">
|
<string-array name="pref_swipe_dist_entries">
|
||||||
<item>@string/pref_swipe_dist_e_very_short</item>
|
<item>@string/pref_swipe_dist_e_very_short</item>
|
||||||
|
@ -20,6 +20,8 @@
|
|||||||
<item>cyrl_lynyertz_sr</item>
|
<item>cyrl_lynyertz_sr</item>
|
||||||
<item>cyrl_ueishsht</item>
|
<item>cyrl_ueishsht</item>
|
||||||
<item>cyrl_yaverti</item>
|
<item>cyrl_yaverti</item>
|
||||||
|
<item>cyrl_yqukeng_tj</item>
|
||||||
|
<item>cyrl_yxukeng_os</item>
|
||||||
<item>deva_alt</item>
|
<item>deva_alt</item>
|
||||||
<item>deva_inscript</item>
|
<item>deva_inscript</item>
|
||||||
<item>grek_qwerty</item>
|
<item>grek_qwerty</item>
|
||||||
@ -78,6 +80,8 @@
|
|||||||
<item>ЉЊЕРТЗ (Српски)</item>
|
<item>ЉЊЕРТЗ (Српски)</item>
|
||||||
<item>УЕИШЩ (Български, БДС)</item>
|
<item>УЕИШЩ (Български, БДС)</item>
|
||||||
<item>ЯВЕРТЪ</item>
|
<item>ЯВЕРТЪ</item>
|
||||||
|
<item>Tajiki Persian (Тоҷикӣ)</item>
|
||||||
|
<item>Old Church Slavonic (Црькъвьнословѣньскъ ѩзыкъ)</item>
|
||||||
<item>देवनागरी (हिंदी)-2</item>
|
<item>देवनागरी (हिंदी)-2</item>
|
||||||
<item>देवनागरी (हिंदी)-1</item>
|
<item>देवनागरी (हिंदी)-1</item>
|
||||||
<item>QWERTY (Greek)</item>
|
<item>QWERTY (Greek)</item>
|
||||||
@ -136,6 +140,8 @@
|
|||||||
<item>@xml/cyrl_lynyertz_sr</item>
|
<item>@xml/cyrl_lynyertz_sr</item>
|
||||||
<item>@xml/cyrl_ueishsht</item>
|
<item>@xml/cyrl_ueishsht</item>
|
||||||
<item>@xml/cyrl_yaverti</item>
|
<item>@xml/cyrl_yaverti</item>
|
||||||
|
<item>@xml/cyrl_yqukeng_tj</item>
|
||||||
|
<item>@xml/cyrl_yxukeng_os</item>
|
||||||
<item>@xml/deva_alt</item>
|
<item>@xml/deva_alt</item>
|
||||||
<item>@xml/deva_inscript</item>
|
<item>@xml/deva_inscript</item>
|
||||||
<item>@xml/grek_qwerty</item>
|
<item>@xml/grek_qwerty</item>
|
||||||
|
@ -71,6 +71,7 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<string name="pref_theme_e_monet">Monet (System)</string>
|
<string name="pref_theme_e_monet">Monet (System)</string>
|
||||||
<string name="pref_theme_e_monetlight">Monet (Light)</string>
|
<string name="pref_theme_e_monetlight">Monet (Light)</string>
|
||||||
<string name="pref_theme_e_monetdark">Monet (Dark)</string>
|
<string name="pref_theme_e_monetdark">Monet (Dark)</string>
|
||||||
|
<string name="pref_theme_e_rosepine">Rosé Pine</string>
|
||||||
<string name="pref_swipe_dist_e_very_short">Very short</string>
|
<string name="pref_swipe_dist_e_very_short">Very short</string>
|
||||||
<string name="pref_swipe_dist_e_short">Short</string>
|
<string name="pref_swipe_dist_e_short">Short</string>
|
||||||
<string name="pref_swipe_dist_e_default">Normal</string>
|
<string name="pref_swipe_dist_e_default">Normal</string>
|
||||||
@ -120,6 +121,7 @@ This application contains no ads, doesn't make any network requests and is Open
|
|||||||
<string name="key_descr_home">Home</string>
|
<string name="key_descr_home">Home</string>
|
||||||
<string name="key_descr_end">End</string>
|
<string name="key_descr_end">End</string>
|
||||||
<string name="key_descr_clipboard">Clipboard manager</string>
|
<string name="key_descr_clipboard">Clipboard manager</string>
|
||||||
|
<string name="key_descr_combining">Combining diacritic</string>
|
||||||
<string name="clipboard_history_heading">Recently copied text</string>
|
<string name="clipboard_history_heading">Recently copied text</string>
|
||||||
<string name="clipboard_pin_heading">Pinned</string>
|
<string name="clipboard_pin_heading">Pinned</string>
|
||||||
<string name="clipboard_remove_confirm">Remove this clipboard?</string>
|
<string name="clipboard_remove_confirm">Remove this clipboard?</string>
|
||||||
|
@ -56,5 +56,12 @@
|
|||||||
<item name="android:layout_marginHorizontal">16dp</item>
|
<item name="android:layout_marginHorizontal">16dp</item>
|
||||||
<item name="android:layout_gravity">center</item>
|
<item name="android:layout_gravity">center</item>
|
||||||
</style>
|
</style>
|
||||||
|
<style name="anim">
|
||||||
|
<item name="android:layout_width">100dp</item>
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
<item name="android:layout_marginVertical">16dp</item>
|
||||||
|
<item name="android:layout_gravity">center</item>
|
||||||
|
<item name="android:adjustViewBounds">true</item>
|
||||||
|
</style>
|
||||||
<style name="appTheme" parent="@android:style/Theme.DeviceDefault.DayNight"/>
|
<style name="appTheme" parent="@android:style/Theme.DeviceDefault.DayNight"/>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -203,4 +203,23 @@
|
|||||||
<item name="emoji_button_bg">?colorKeyActivated</item>
|
<item name="emoji_button_bg">?colorKeyActivated</item>
|
||||||
<item name="emoji_color">@android:color/system_accent1_900</item>
|
<item name="emoji_color">@android:color/system_accent1_900</item>
|
||||||
</style>
|
</style>
|
||||||
|
<style name="RosePine" parent="BaseTheme">
|
||||||
|
<item name="android:isLightTheme">false</item>
|
||||||
|
<item name="colorKeyboard">#191724</item>
|
||||||
|
<item name="colorKey">#26233a</item>
|
||||||
|
<item name="colorKeyActivated">#403d52</item>
|
||||||
|
<item name="keyBorderWidth">0dp</item>
|
||||||
|
<item name="keyBorderWidthActivated">1dp</item>
|
||||||
|
<item name="keyBorderColorLeft">#6e6a86</item>
|
||||||
|
<item name="keyBorderColorTop">#6e6a86</item>
|
||||||
|
<item name="keyBorderColorRight">#6e6a86</item>
|
||||||
|
<item name="keyBorderColorBottom">#6e6a86</item>
|
||||||
|
<item name="colorLabel">#e0def4</item>
|
||||||
|
<item name="colorLabelActivated">#c4a7e7</item>
|
||||||
|
<item name="colorLabelLocked">#31748f</item>
|
||||||
|
<item name="colorSubLabel">#6e6a86</item>
|
||||||
|
<item name="keyBorderRadius">1dp</item>
|
||||||
|
<item name="emoji_button_bg">#26233a</item>
|
||||||
|
<item name="emoji_color">#e0def4</item>
|
||||||
|
</style>
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
<subtype android:label="%s" android:languageTag="da" android:imeSubtypeLocale="da_DK" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_da,extra_keys=€|æ|å|ø"/>
|
<subtype android:label="%s" android:languageTag="da" android:imeSubtypeLocale="da_DK" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_da,extra_keys=€|æ|å|ø"/>
|
||||||
<subtype android:label="%s" android:languageTag="de" android:imeSubtypeLocale="de_DE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_de,extra_keys=accent_trema:ä:ö:ü@u|ß|€"/>
|
<subtype android:label="%s" android:languageTag="de" android:imeSubtypeLocale="de_DE" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwertz_de,extra_keys=accent_trema:ä:ö:ü@u|ß|€"/>
|
||||||
<subtype android:label="%s" android:languageTag="el" android:imeSubtypeLocale="el" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=grek_qwerty,extra_keys=£@l|€"/>
|
<subtype android:label="%s" android:languageTag="el" android:imeSubtypeLocale="el" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=grek_qwerty,extra_keys=£@l|€"/>
|
||||||
|
<subtype android:label="%s" android:languageTag="en-AU" android:imeSubtypeLocale="en_AU" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us"/>
|
||||||
<subtype android:label="%s" android:languageTag="en-CA" android:imeSubtypeLocale="en_CA" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us"/>
|
<subtype android:label="%s" android:languageTag="en-CA" android:imeSubtypeLocale="en_CA" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us"/>
|
||||||
<subtype android:label="%s" android:languageTag="en-GB" android:imeSubtypeLocale="en_GB" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_gb,extra_keys=£@l"/>
|
<subtype android:label="%s" android:languageTag="en-GB" android:imeSubtypeLocale="en_GB" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_gb,extra_keys=£@l"/>
|
||||||
<subtype android:label="%s" android:languageTag="en-US" android:imeSubtypeLocale="en_US" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us"/>
|
<subtype android:label="%s" android:languageTag="en-US" android:imeSubtypeLocale="en_US" android:imeSubtypeMode="keyboard" android:isAsciiCapable="true" android:imeSubtypeExtraValue="script=latin,default_layout=latn_qwerty_us"/>
|
||||||
|
@ -1,17 +1,52 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "á",
|
"a": "á",
|
||||||
"c": "ć",
|
"c": "ć",
|
||||||
"e": "é",
|
"e": "é",
|
||||||
|
"g": "ǵ",
|
||||||
"i": "í",
|
"i": "í",
|
||||||
|
"k": "ḱ",
|
||||||
"l": "ĺ",
|
"l": "ĺ",
|
||||||
"ń": "ń",
|
"m": "ḿ",
|
||||||
|
"n": "ń",
|
||||||
"o": "ó",
|
"o": "ó",
|
||||||
|
"p": "ṕ",
|
||||||
"r": "ŕ",
|
"r": "ŕ",
|
||||||
"s": "ś",
|
"s": "ś",
|
||||||
"u": "ú",
|
"u": "ú",
|
||||||
|
"w": "ẃ",
|
||||||
"y": "ý",
|
"y": "ý",
|
||||||
"z": "ź",
|
"z": "ź",
|
||||||
|
// extended latin (multiple diacritics)
|
||||||
|
"â": "ấ",
|
||||||
|
"ă": "ắ",
|
||||||
|
"å": "ǻ",
|
||||||
|
"æ": "ǽ",
|
||||||
|
"ç": "ḉ",
|
||||||
|
"ê": "ế",
|
||||||
|
"ē": "ḗ",
|
||||||
|
"ï": "ḯ",
|
||||||
|
"ô": "ố",
|
||||||
|
"ơ": "ớ",
|
||||||
|
"õ": "ṍ",
|
||||||
|
"ō": "ṓ",
|
||||||
|
"ø": "ǿ",
|
||||||
|
"ṡ": "ṥ",
|
||||||
"ü": "ǘ",
|
"ü": "ǘ",
|
||||||
|
"ư": "ứ",
|
||||||
|
"ũ": "ṹ",
|
||||||
|
// greek
|
||||||
|
"α": "ά",
|
||||||
|
"ε": "έ",
|
||||||
|
"η": "ή",
|
||||||
|
"ι": "ί",
|
||||||
|
"ο": "ό",
|
||||||
|
"υ": "ύ",
|
||||||
|
// cyrillic
|
||||||
|
"к": "ќ",
|
||||||
|
"г": "ѓ",
|
||||||
|
// combining character
|
||||||
|
"ą": "ą\u0301",
|
||||||
"j": "j\u0301",
|
"j": "j\u0301",
|
||||||
"у": "у\u0301",
|
"у": "у\u0301",
|
||||||
"е": "е\u0301",
|
"е": "е\u0301",
|
||||||
|
@ -1,8 +1,12 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
|
"2": "ƻ",
|
||||||
"b": "ƀ",
|
"b": "ƀ",
|
||||||
"c": "ꞓ",
|
"c": "ꞓ",
|
||||||
"d": "đ",
|
"d": "đ",
|
||||||
|
"f": "ꞙ",
|
||||||
"g": "ǥ",
|
"g": "ǥ",
|
||||||
|
"h": "ħ",
|
||||||
"i": "ɨ",
|
"i": "ɨ",
|
||||||
"j": "ɉ",
|
"j": "ɉ",
|
||||||
"k": "ꝁ",
|
"k": "ꝁ",
|
||||||
@ -14,5 +18,13 @@
|
|||||||
"t": "ŧ",
|
"t": "ŧ",
|
||||||
"u": "ʉ",
|
"u": "ʉ",
|
||||||
"y": "ɏ",
|
"y": "ɏ",
|
||||||
"z": "ƶ"
|
"z": "ƶ",
|
||||||
|
// extended latin
|
||||||
|
"ȷ": "ɟ",
|
||||||
|
// cyrillic
|
||||||
|
"о": "ө",
|
||||||
|
"ӧ": "ӫ",
|
||||||
|
"ү": "ұ",
|
||||||
|
"ь": "ҍ",
|
||||||
|
"х": "ӿ"
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,14 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ǎ",
|
"a": "ǎ",
|
||||||
"c": "č",
|
"c": "č",
|
||||||
"d": "ď",
|
"d": "ď",
|
||||||
"e": "ě",
|
"e": "ě",
|
||||||
|
"g": "ǧ",
|
||||||
|
"h": "ȟ",
|
||||||
"i": "ǐ",
|
"i": "ǐ",
|
||||||
|
"j": "ǰ", // no uppercase
|
||||||
|
"k": "ǩ",
|
||||||
"l": "ľ",
|
"l": "ľ",
|
||||||
"n": "ň",
|
"n": "ň",
|
||||||
"o": "ǒ",
|
"o": "ǒ",
|
||||||
@ -12,5 +17,17 @@
|
|||||||
"t": "ť",
|
"t": "ť",
|
||||||
"u": "ǔ",
|
"u": "ǔ",
|
||||||
"z": "ž",
|
"z": "ž",
|
||||||
"ü": "ǚ"
|
// extended latin
|
||||||
|
"ṡ": "ṧ",
|
||||||
|
"ü": "ǚ",
|
||||||
|
"ʒ": "ǯ",
|
||||||
|
// combining character
|
||||||
|
"в": "в\u030C",
|
||||||
|
"г": "г\u030C",
|
||||||
|
"ғ": "ғ\u030C",
|
||||||
|
"д": "д\u030C",
|
||||||
|
"з": "з\u030C",
|
||||||
|
"р": "р\u030C",
|
||||||
|
"т": "т\u030C",
|
||||||
|
"х": "х\u030C"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"c": "ç",
|
"c": "ç",
|
||||||
"d": "ḑ",
|
"d": "ḑ",
|
||||||
"e": "ȩ",
|
"e": "ȩ",
|
||||||
@ -9,5 +10,8 @@
|
|||||||
"n": "ņ",
|
"n": "ņ",
|
||||||
"r": "ŗ",
|
"r": "ŗ",
|
||||||
"s": "ş",
|
"s": "ş",
|
||||||
"t": "ţ"
|
"t": "ţ",
|
||||||
|
// extended latin
|
||||||
|
"ć": "ḉ",
|
||||||
|
"ĕ": "ḝ"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{
|
{
|
||||||
|
"+": "⨣",
|
||||||
|
"≈": "⩯",
|
||||||
|
// latin
|
||||||
"a": "â",
|
"a": "â",
|
||||||
"c": "ĉ",
|
"c": "ĉ",
|
||||||
"e": "ê",
|
"e": "ê",
|
||||||
@ -9,7 +12,27 @@
|
|||||||
"o": "ô",
|
"o": "ô",
|
||||||
"ŝ": "ŝ",
|
"ŝ": "ŝ",
|
||||||
"u": "û",
|
"u": "û",
|
||||||
|
"w": "ŵ",
|
||||||
|
"x": "x̂",
|
||||||
|
"y": "ŷ",
|
||||||
"z": "ẑ",
|
"z": "ẑ",
|
||||||
|
// extended latin
|
||||||
|
"á": "ấ",
|
||||||
|
"à": "ầ",
|
||||||
|
"ã": "ẫ",
|
||||||
|
"ạ": "ậ",
|
||||||
|
"ả": "ẩ",
|
||||||
|
"é": "ế",
|
||||||
|
"è": "ề",
|
||||||
|
"ẽ": "ễ",
|
||||||
|
"ẹ": "ệ",
|
||||||
|
"ẻ": "ể",
|
||||||
|
"ó": "ố",
|
||||||
|
"ò": "ồ",
|
||||||
|
"ơ": "ổ",
|
||||||
|
"õ": "ỗ",
|
||||||
|
"ọ": "ộ",
|
||||||
|
// combining characters
|
||||||
"а": "а\u0302",
|
"а": "а\u0302",
|
||||||
"е": "е\u0302",
|
"е": "е\u0302",
|
||||||
"и": "и\u0302",
|
"и": "и\u0302",
|
||||||
|
@ -17,5 +17,40 @@
|
|||||||
"w": "ẇ",
|
"w": "ẇ",
|
||||||
"x": "ẋ",
|
"x": "ẋ",
|
||||||
"y": "ẏ",
|
"y": "ẏ",
|
||||||
"z": "ż"
|
"z": "ż",
|
||||||
|
// remove dot since i and j already have one
|
||||||
|
"i": "ı",
|
||||||
|
"j": "ȷ",
|
||||||
|
// extended latin
|
||||||
|
"ā": "ǡ",
|
||||||
|
"ō": "ȱ",
|
||||||
|
"ś": "ṥ",
|
||||||
|
"ṣ": "ṩ",
|
||||||
|
"š": "ṧ",
|
||||||
|
"ſ": "ẛ",
|
||||||
|
// combining character
|
||||||
|
"k": "k\u0307",
|
||||||
|
"l": "l\u0307",
|
||||||
|
"q": "q\u0307",
|
||||||
|
"u": "u\u0307",
|
||||||
|
"v": "v\u0307",
|
||||||
|
"0": "0\u0307",
|
||||||
|
"1": "1\u0307",
|
||||||
|
"2": "2\u0307",
|
||||||
|
"3": "3\u0307",
|
||||||
|
"4": "4\u0307",
|
||||||
|
"5": "5\u0307",
|
||||||
|
"6": "6\u0307",
|
||||||
|
"7": "7\u0307",
|
||||||
|
"8": "8\u0307",
|
||||||
|
"9": "9\u0307",
|
||||||
|
// math
|
||||||
|
"∈": "⋵",
|
||||||
|
"⨯": "⨰",
|
||||||
|
"∧": "⩑",
|
||||||
|
"∨": "⩒",
|
||||||
|
"≡": "⩧",
|
||||||
|
"~": "⩪",
|
||||||
|
"⊆": "⫃",
|
||||||
|
"⊇": "⫄"
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,34 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ạ",
|
"a": "ạ",
|
||||||
|
"b": "ḅ",
|
||||||
|
"d": "ḍ",
|
||||||
|
"e": "ẹ",
|
||||||
|
"h": "ḥ",
|
||||||
|
"i": "ị",
|
||||||
|
"k": "ḳ",
|
||||||
|
"l": "ḷ",
|
||||||
|
"m": "ṃ",
|
||||||
|
"n": "ṇ",
|
||||||
|
"o": "ọ",
|
||||||
|
"r": "ṛ",
|
||||||
|
"s": "ṣ",
|
||||||
|
"t": "ṭ",
|
||||||
|
"u": "ụ",
|
||||||
|
"v": "ṿ",
|
||||||
|
"w": "ẉ",
|
||||||
|
"y": "ỵ",
|
||||||
|
"z": "ẓ",
|
||||||
|
// extended latin
|
||||||
"ă": "ặ",
|
"ă": "ặ",
|
||||||
"â": "ậ",
|
"â": "ậ",
|
||||||
"e": "ẹ",
|
|
||||||
"ê": "ệ",
|
"ê": "ệ",
|
||||||
"i": "ị",
|
|
||||||
"o": "ọ",
|
|
||||||
"ô": "ộ",
|
"ô": "ộ",
|
||||||
"ơ": "ợ",
|
"ơ": "ợ",
|
||||||
"u": "ụ",
|
"ṡ": "ṩ",
|
||||||
"ư": "ự",
|
"ư": "ự",
|
||||||
"y": "ỵ"
|
// math
|
||||||
|
"-": "⨪",
|
||||||
|
"+": "⨥",
|
||||||
|
"=": "⩦"
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
" ": "˝",
|
||||||
|
// latin
|
||||||
"o": "ő",
|
"o": "ő",
|
||||||
"u": "ű",
|
"u": "ű",
|
||||||
" ": "˝",
|
// cyrillic
|
||||||
|
"у": "ӳ",
|
||||||
|
// combining character
|
||||||
"a": "a\u030b",
|
"a": "a\u030b",
|
||||||
"e": "e\u030b",
|
"e": "e\u030b",
|
||||||
"i": "i\u030b",
|
"i": "i\u030b",
|
||||||
|
@ -1,8 +1,38 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "à",
|
"a": "à",
|
||||||
"e": "è",
|
"e": "è",
|
||||||
"i": "ì",
|
"i": "ì",
|
||||||
|
"n": "ǹ",
|
||||||
"o": "ò",
|
"o": "ò",
|
||||||
"u": "ù",
|
"u": "ù",
|
||||||
"ü": "ǜ"
|
"w": "ẁ",
|
||||||
|
"y": "ỳ",
|
||||||
|
// extended latin
|
||||||
|
"â": "ầ",
|
||||||
|
"ă": "ằ",
|
||||||
|
"ê": "ề",
|
||||||
|
"ē": "ḕ",
|
||||||
|
"ơ": "ờ",
|
||||||
|
"ô": "ồ",
|
||||||
|
"ō": "ṑ",
|
||||||
|
"ü": "ǜ",
|
||||||
|
"ư": "ừ",
|
||||||
|
// greek (technically not a grave, but a varia)
|
||||||
|
"α": "ὰ",
|
||||||
|
"ε": "ὲ",
|
||||||
|
"η": "ὴ",
|
||||||
|
"ι": "ὶ",
|
||||||
|
"ο": "ὸ",
|
||||||
|
"υ": "ὺ",
|
||||||
|
"ω": "ὼ",
|
||||||
|
// there is more like ἒ, ᾣ, etc
|
||||||
|
// cyrillic
|
||||||
|
"е": "ѐ",
|
||||||
|
"и": "ѝ",
|
||||||
|
// combining character
|
||||||
|
"ɔ": "ɔ\u0300",
|
||||||
|
"s": "s\u0300",
|
||||||
|
"ʌ": "ʌ\u0300",
|
||||||
|
"z": "z\u0300"
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,35 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ā",
|
"a": "ā",
|
||||||
"e": "ē",
|
"e": "ē",
|
||||||
|
"g": "ḡ",
|
||||||
"i": "ī",
|
"i": "ī",
|
||||||
"o": "ō",
|
"o": "ō",
|
||||||
"u": "ū",
|
"u": "ū",
|
||||||
"ü": "ǖ"
|
"y": "ȳ",
|
||||||
|
// extended latin
|
||||||
|
"æ": "ǣ",
|
||||||
|
"ä": "ǟ",
|
||||||
|
"ȧ": "ǡ",
|
||||||
|
"è": "ḕ",
|
||||||
|
"é": "ḗ",
|
||||||
|
"ḷ": "ḹ",
|
||||||
|
"ṛ": "ṝ",
|
||||||
|
"ö": "ȫ",
|
||||||
|
"ȯ": "ȱ",
|
||||||
|
"ǫ": "ǭ",
|
||||||
|
"õ": "ȭ",
|
||||||
|
"ò": "ṑ",
|
||||||
|
"ó": "ṓ",
|
||||||
|
"ü": "ǖ", // there is also ṻ
|
||||||
|
// cyrillic
|
||||||
|
"и": "ӣ",
|
||||||
|
"у": "ӯ",
|
||||||
|
// greek
|
||||||
|
"α": "ᾱ",
|
||||||
|
"ι": "ῑ",
|
||||||
|
"υ": "ῡ",
|
||||||
|
// combining characters
|
||||||
|
"l": "l\u0304",
|
||||||
|
"r": "r\u0304"
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ą",
|
"a": "ą",
|
||||||
"e": "ę",
|
"e": "ę",
|
||||||
"i": "į",
|
"i": "į",
|
||||||
"k": "ķ",
|
|
||||||
"l": "ļ",
|
|
||||||
"n": "ņ",
|
|
||||||
"o": "ǫ",
|
"o": "ǫ",
|
||||||
"u": "ų"
|
"u": "ų",
|
||||||
|
// extended latin
|
||||||
|
"ō": "ǭ"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,11 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "å",
|
"a": "å",
|
||||||
"u": "ů"
|
"u": "ů",
|
||||||
|
"w": "ẘ", // no uppercase
|
||||||
|
"y": "ẙ", // no uppercase
|
||||||
|
// extended latin
|
||||||
|
"á": "ǻ",
|
||||||
|
// extra
|
||||||
|
"~": "⸛"
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,11 @@
|
|||||||
"l": "ł",
|
"l": "ł",
|
||||||
"n": "ꞥ",
|
"n": "ꞥ",
|
||||||
"o": "ø",
|
"o": "ø",
|
||||||
|
"ó": "ǿ",
|
||||||
|
"ɔ": "ꬿ",
|
||||||
"r": "ꞧ",
|
"r": "ꞧ",
|
||||||
"s": "ꞩ",
|
"s": "ꞩ",
|
||||||
"t": "ⱦ"
|
"t": "ⱦ",
|
||||||
|
"u": "ꞹ",
|
||||||
|
"v": "ꝟ"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
|
// arabic numbers
|
||||||
|
"0": "₀",
|
||||||
"1": "₁",
|
"1": "₁",
|
||||||
"2": "₂",
|
"2": "₂",
|
||||||
"3": "₃",
|
"3": "₃",
|
||||||
@ -8,12 +10,13 @@
|
|||||||
"7": "₇",
|
"7": "₇",
|
||||||
"8": "₈",
|
"8": "₈",
|
||||||
"9": "₉",
|
"9": "₉",
|
||||||
"0": "₀",
|
// math operators
|
||||||
"+": "₊",
|
"+": "₊",
|
||||||
"-": "₋",
|
"-": "₋",
|
||||||
"=": "₌",
|
"=": "₌",
|
||||||
"(": "₍",
|
"(": "₍",
|
||||||
")": "₎",
|
")": "₎",
|
||||||
|
// latin
|
||||||
"a": "ₐ",
|
"a": "ₐ",
|
||||||
"e": "ₑ",
|
"e": "ₑ",
|
||||||
"h": "ₕ",
|
"h": "ₕ",
|
||||||
@ -30,5 +33,13 @@
|
|||||||
"t": "ₜ",
|
"t": "ₜ",
|
||||||
"u": "ᵤ",
|
"u": "ᵤ",
|
||||||
"v": "ᵥ",
|
"v": "ᵥ",
|
||||||
"x": "ₓ"
|
"x": "ₓ",
|
||||||
|
// extended latin
|
||||||
|
"ə": "ₔ",
|
||||||
|
// greek
|
||||||
|
"β": "ᵦ",
|
||||||
|
"γ": "ᵧ",
|
||||||
|
"ρ": "ᵨ",
|
||||||
|
"φ": "ᵩ",
|
||||||
|
"χ": "ᵪ"
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
|
// numbers
|
||||||
|
"0": "⁰",
|
||||||
"1": "¹",
|
"1": "¹",
|
||||||
"2": "²",
|
"2": "²",
|
||||||
"3": "³",
|
"3": "³",
|
||||||
@ -8,12 +10,18 @@
|
|||||||
"7": "⁷",
|
"7": "⁷",
|
||||||
"8": "⁸",
|
"8": "⁸",
|
||||||
"9": "⁹",
|
"9": "⁹",
|
||||||
"0": "⁰",
|
// math operators
|
||||||
"+": "⁺",
|
"+": "⁺",
|
||||||
"-": "⁻",
|
"-": "⁻",
|
||||||
"=": "⁼",
|
"=": "⁼",
|
||||||
"(": "⁽",
|
"(": "⁽",
|
||||||
")": "⁾",
|
")": "⁾",
|
||||||
|
// latin
|
||||||
|
"n": "ⁿ",
|
||||||
|
|
||||||
|
// since there are no more "superscript" characters,
|
||||||
|
// we substitute with "modifier letter small"s which looks the same
|
||||||
|
// latin
|
||||||
"a": "ᵃ",
|
"a": "ᵃ",
|
||||||
"b": "ᵇ",
|
"b": "ᵇ",
|
||||||
"c": "ᶜ",
|
"c": "ᶜ",
|
||||||
@ -26,10 +34,11 @@
|
|||||||
"j": "ʲ",
|
"j": "ʲ",
|
||||||
"k": "ᵏ",
|
"k": "ᵏ",
|
||||||
"l": "ˡ",
|
"l": "ˡ",
|
||||||
|
// see above for n
|
||||||
"m": "ᵐ",
|
"m": "ᵐ",
|
||||||
"n": "ⁿ",
|
|
||||||
"o": "ᵒ",
|
"o": "ᵒ",
|
||||||
"p": "ᵖ",
|
"p": "ᵖ",
|
||||||
|
"q": "ꟴ", // there is no proper lowercase superscript q
|
||||||
"r": "ʳ",
|
"r": "ʳ",
|
||||||
"s": "ˢ",
|
"s": "ˢ",
|
||||||
"t": "ᵗ",
|
"t": "ᵗ",
|
||||||
@ -38,5 +47,47 @@
|
|||||||
"w": "ʷ",
|
"w": "ʷ",
|
||||||
"x": "ˣ",
|
"x": "ˣ",
|
||||||
"y": "ʸ",
|
"y": "ʸ",
|
||||||
"z": "ᶻ"
|
"z": "ᶻ",
|
||||||
|
// extended latin
|
||||||
|
"ɐ": "ᵄ",
|
||||||
|
"ᴂ": "ᵆ",
|
||||||
|
"ɕ": "ᶝ",
|
||||||
|
"ə": "ᵊ",
|
||||||
|
"ɛ": "ᵋ",
|
||||||
|
"ɜ": "ᶟ", // turned open e, ↓ not the same
|
||||||
|
"ᴈ": "ᵌ", // reversed open e
|
||||||
|
"ɥ": "ᶣ",
|
||||||
|
"ɦ": "ʱ",
|
||||||
|
"ᴉ": "ᵎ",
|
||||||
|
"ɨ": "ᶤ",
|
||||||
|
"ɟ": "ᶡ",
|
||||||
|
"ɱ": "ᶬ",
|
||||||
|
"ɯ": "ᵚ",
|
||||||
|
"ɰ": "ᶭ",
|
||||||
|
"ŋ": "ᵑ",
|
||||||
|
"ᴝ": "ᵙ",
|
||||||
|
"ɵ": "ᶱ",
|
||||||
|
"œ": "ꟹ",
|
||||||
|
"ɔ": "ᵓ",
|
||||||
|
"ɹ": "ʴ",
|
||||||
|
"ɻ": "ʵ",
|
||||||
|
"ʁ": "ʶ",
|
||||||
|
"ʂ": "ᶳ",
|
||||||
|
"ʉ": "ᶶ",
|
||||||
|
"ʃ": "ᶴ",
|
||||||
|
"ʒ": "ᶾ",
|
||||||
|
"ʍ": "ꭩ",
|
||||||
|
// greek
|
||||||
|
"ɒ": "ᶛ",
|
||||||
|
"β": "ᵝ",
|
||||||
|
"ɣ": "ˠ",
|
||||||
|
"δ": "ᵟ",
|
||||||
|
"φ": "ᵠ",
|
||||||
|
"χ": "ᵡ",
|
||||||
|
"ι": "ᶥ",
|
||||||
|
"ʊ": "ᶷ",
|
||||||
|
"ʌ": "ᶺ",
|
||||||
|
"θ": "ᶿ",
|
||||||
|
// cyrillic
|
||||||
|
"ө": "ᶱ"
|
||||||
}
|
}
|
||||||
|
@ -1,13 +1,21 @@
|
|||||||
{
|
{
|
||||||
|
// latin
|
||||||
"a": "ã",
|
"a": "ã",
|
||||||
"e": "ẽ",
|
"e": "ẽ",
|
||||||
"i": "ĩ",
|
"i": "ĩ",
|
||||||
"n": "ñ",
|
"n": "ñ",
|
||||||
"o": "õ",
|
"o": "õ",
|
||||||
"u": "ũ",
|
"u": "ũ",
|
||||||
|
"v": "ṽ",
|
||||||
|
"y": "ỹ",
|
||||||
|
// extended latin
|
||||||
"ă": "ẵ",
|
"ă": "ẵ",
|
||||||
"â": "ẫ",
|
"â": "ẫ",
|
||||||
"ê": "ễ",
|
"ê": "ễ",
|
||||||
"ơ": "ỡ",
|
"ơ": "ỡ",
|
||||||
"ư": "ữ"
|
"ō": "ȭ",
|
||||||
|
"ó": "ṍ",
|
||||||
|
"ö": "ṏ",
|
||||||
|
"ư": "ữ",
|
||||||
|
"ú": "ṹ"
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,54 @@
|
|||||||
{
|
{
|
||||||
|
// fun
|
||||||
|
"~": "⍨",
|
||||||
|
"*": "⍣",
|
||||||
|
"∇": "⍢",
|
||||||
|
"°": "⍤",
|
||||||
|
// latin
|
||||||
"a": "ä",
|
"a": "ä",
|
||||||
"e": "ë",
|
"e": "ë",
|
||||||
|
"h": "ḧ",
|
||||||
"i": "ï",
|
"i": "ï",
|
||||||
"o": "ö",
|
"o": "ö",
|
||||||
|
"t": "ẗ",
|
||||||
"u": "ü",
|
"u": "ü",
|
||||||
"y": "ÿ"
|
"w": "ẅ",
|
||||||
|
"x": "ẍ",
|
||||||
|
"y": "ÿ",
|
||||||
|
// extended latin
|
||||||
|
"ā": "ǟ",
|
||||||
|
"ō": "ȫ",
|
||||||
|
"õ": "ṏ",
|
||||||
|
"í": "ḯ",
|
||||||
|
"ū": "ǖ", // there is also ṻ
|
||||||
|
"ú": "ǘ",
|
||||||
|
"ù": "ǜ",
|
||||||
|
"ǔ": "ǚ",
|
||||||
|
// greek
|
||||||
|
"ι": "ϊ",
|
||||||
|
"υ": "ϋ",
|
||||||
|
"ὺ": "ῢ",
|
||||||
|
"ύ": "ΰ",
|
||||||
|
"ῦ": "ῧ",
|
||||||
|
"ϒ": "ϔ",
|
||||||
|
// cyrillic
|
||||||
|
"а": "ӓ",
|
||||||
|
"ә": "ӛ",
|
||||||
|
"ж": "ӝ",
|
||||||
|
"з": "ӟ",
|
||||||
|
"и": "ӥ",
|
||||||
|
"о": "ӧ",
|
||||||
|
"ө": "ӫ",
|
||||||
|
"э": "ӭ",
|
||||||
|
"у": "ӱ",
|
||||||
|
"ч": "ӵ",
|
||||||
|
"ы": "ӹ",
|
||||||
|
// combining character
|
||||||
|
"c": "c\u0308",
|
||||||
|
"j": "j\u0308",
|
||||||
|
"k": "k\u0308",
|
||||||
|
"l": "l\u0308",
|
||||||
|
"m": "m\u0308",
|
||||||
|
"n": "n\u0308",
|
||||||
|
"s": "s\u0308"
|
||||||
}
|
}
|
||||||
|
@ -99,9 +99,12 @@ def strip_cstyle_comments(inp):
|
|||||||
|
|
||||||
# Parse from a json file containing a dictionary sequence → result string.
|
# Parse from a json file containing a dictionary sequence → result string.
|
||||||
def parse_sequences_file_json(fname):
|
def parse_sequences_file_json(fname):
|
||||||
with open(fname, "r") as inp:
|
try:
|
||||||
seqs = json.loads(strip_cstyle_comments(inp))
|
with open(fname, "r") as inp:
|
||||||
return list(seqs.items())
|
seqs = json.loads(strip_cstyle_comments(inp))
|
||||||
|
return list(seqs.items())
|
||||||
|
except Exception as e:
|
||||||
|
print("Failed parsing '%s': %s" % (fname, str(e)), file=sys.stderr)
|
||||||
|
|
||||||
# Format of the sequences file is determined by its extension
|
# Format of the sequences file is determined by its extension
|
||||||
def parse_sequences_file(fname, xkb_char_extra_names={}):
|
def parse_sequences_file(fname, xkb_char_extra_names={}):
|
||||||
|
168
srcs/compose/compose/cyrillic.json
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
{
|
||||||
|
"\"": {
|
||||||
|
"і": "ї"
|
||||||
|
},
|
||||||
|
",": {
|
||||||
|
"г": "ӻ",
|
||||||
|
"к": "ӄ",
|
||||||
|
"л": "ԓ",
|
||||||
|
"н": "ӈ",
|
||||||
|
"х": "ӽ",
|
||||||
|
"ѧ": "ӊ"
|
||||||
|
},
|
||||||
|
".": {
|
||||||
|
"г": "ӷ",
|
||||||
|
"ж": "җ",
|
||||||
|
"й": "ҋ",
|
||||||
|
"к": "қ",
|
||||||
|
"л": "ԯ",
|
||||||
|
"м": "ӎ",
|
||||||
|
"н": "ӊ",
|
||||||
|
"х": "ҳ",
|
||||||
|
"ч": "ҷ",
|
||||||
|
"і": "ї"
|
||||||
|
},
|
||||||
|
"а": {
|
||||||
|
"е": "ѣ",
|
||||||
|
"у": "ѡ",
|
||||||
|
"ч": "combining_acute",
|
||||||
|
"ы": "ѣ",
|
||||||
|
"ь": "ꙙ",
|
||||||
|
"ꙋ": "ꙍ",
|
||||||
|
"ꙑ": "ѣ"
|
||||||
|
},
|
||||||
|
"б": {
|
||||||
|
"ч": "combining_slavonic_psili"
|
||||||
|
},
|
||||||
|
"г": {
|
||||||
|
",": "ӻ",
|
||||||
|
".": "ӷ",
|
||||||
|
"й": "ғ",
|
||||||
|
"к": "ґ",
|
||||||
|
"х": "ҁ",
|
||||||
|
"ј": "ғ"
|
||||||
|
},
|
||||||
|
"д": {
|
||||||
|
"е": "ꙉ",
|
||||||
|
"ж": "џ",
|
||||||
|
"з": "ꙃ",
|
||||||
|
"й": "ꙉ",
|
||||||
|
"ј": "ꙉ",
|
||||||
|
"ѥ": "ђ"
|
||||||
|
},
|
||||||
|
"е": {
|
||||||
|
"ч": "combining_trema"
|
||||||
|
},
|
||||||
|
"ж": {
|
||||||
|
".": "җ"
|
||||||
|
},
|
||||||
|
"з": {
|
||||||
|
"ф": "ҙ"
|
||||||
|
},
|
||||||
|
"и": {
|
||||||
|
"и": "ӣ",
|
||||||
|
"у": "ѵ"
|
||||||
|
},
|
||||||
|
"й": {
|
||||||
|
".": "ҋ",
|
||||||
|
"ч": "combining_breve"
|
||||||
|
},
|
||||||
|
"к": {
|
||||||
|
",": "ӄ",
|
||||||
|
".": "қ",
|
||||||
|
"г": "ґ",
|
||||||
|
"с": "ѯ",
|
||||||
|
"х": "ҁ",
|
||||||
|
"ш": "ѯ"
|
||||||
|
},
|
||||||
|
"л": {
|
||||||
|
",": "ԓ",
|
||||||
|
".": "ԯ",
|
||||||
|
"ь": "љ"
|
||||||
|
},
|
||||||
|
"м": {
|
||||||
|
".": "ӎ"
|
||||||
|
},
|
||||||
|
"н": {
|
||||||
|
",": "ӈ",
|
||||||
|
"·": "ԩ",
|
||||||
|
"ч": "combining_titlo",
|
||||||
|
"ь": "њ"
|
||||||
|
},
|
||||||
|
"о": {
|
||||||
|
"т": "ѿ",
|
||||||
|
"у": "ѹ",
|
||||||
|
"ч": "combining_inverted_breve"
|
||||||
|
},
|
||||||
|
"п": {
|
||||||
|
"с": "ѱ"
|
||||||
|
},
|
||||||
|
"т": {
|
||||||
|
"й": "ћ",
|
||||||
|
"ф": "ѳ",
|
||||||
|
"ј": "ћ"
|
||||||
|
},
|
||||||
|
"у": {
|
||||||
|
"и": "ѵ",
|
||||||
|
"й": "ў",
|
||||||
|
"у": "ӯ",
|
||||||
|
"ч": "combining_porkrytie",
|
||||||
|
"і": "ѵ",
|
||||||
|
"ј": "ў"
|
||||||
|
},
|
||||||
|
"х": {
|
||||||
|
",": "ӽ",
|
||||||
|
".": "ҳ",
|
||||||
|
"ч": "combining_slavonic_dasia"
|
||||||
|
},
|
||||||
|
"ч": {
|
||||||
|
".": "ҷ",
|
||||||
|
"а": "combining_acute",
|
||||||
|
"б": "combining_slavonic_psili",
|
||||||
|
"е": "combining_trema",
|
||||||
|
"й": "combining_breve",
|
||||||
|
"н": "combining_titlo",
|
||||||
|
"о": "combining_inverted_breve",
|
||||||
|
"у": "combining_pokrytie",
|
||||||
|
"х": "combining_slavonic_dasia",
|
||||||
|
"ч": "combining_payerok",
|
||||||
|
"ч": "combining_payerok",
|
||||||
|
"ъ": "combining_vertical_tilde",
|
||||||
|
"ю": "combining_grave",
|
||||||
|
"ј": "combining_breve",
|
||||||
|
"ѧ": "combining_vzmet"
|
||||||
|
},
|
||||||
|
"ш": {
|
||||||
|
"т": "щ"
|
||||||
|
},
|
||||||
|
"ъ": {
|
||||||
|
"ч": "combining_vertical_tilde"
|
||||||
|
},
|
||||||
|
"ю": {
|
||||||
|
"а": "ꙓ",
|
||||||
|
"е": "ё",
|
||||||
|
"м": "ѭ",
|
||||||
|
"н": "ѩ",
|
||||||
|
"ч": "combining_grave"
|
||||||
|
},
|
||||||
|
"я": {
|
||||||
|
"ь": "ꙝ"
|
||||||
|
},
|
||||||
|
"і": {
|
||||||
|
"\"": "ї",
|
||||||
|
".": "ї",
|
||||||
|
"у": "ѵ",
|
||||||
|
"і": "ӣ"
|
||||||
|
},
|
||||||
|
"ј": {
|
||||||
|
"а": "ꙗ",
|
||||||
|
"ч": "combining_breve",
|
||||||
|
"ѣ": "ꙝ"
|
||||||
|
},
|
||||||
|
"ѡ": {
|
||||||
|
"т": "ѿ"
|
||||||
|
},
|
||||||
|
"ѧ": {
|
||||||
|
"ч": "combining_vzmet"
|
||||||
|
}
|
||||||
|
}
|
@ -37,6 +37,7 @@
|
|||||||
"†": "‡",
|
"†": "‡",
|
||||||
"×": "∙",
|
"×": "∙",
|
||||||
" ": "nbsp",
|
" ": "nbsp",
|
||||||
|
|
||||||
// arrows
|
// arrows
|
||||||
"↖": "⇖",
|
"↖": "⇖",
|
||||||
"↑": "⇑",
|
"↑": "⇑",
|
||||||
@ -87,6 +88,7 @@
|
|||||||
"⊂": "⊆",
|
"⊂": "⊆",
|
||||||
"⊃": "⊇",
|
"⊃": "⊇",
|
||||||
"±": "∓",
|
"±": "∓",
|
||||||
|
|
||||||
// hebrew niqqud
|
// hebrew niqqud
|
||||||
"ק": "qamats", // kamatz
|
"ק": "qamats", // kamatz
|
||||||
"ר": "hataf_qamats", // reduced kamatz
|
"ר": "hataf_qamats", // reduced kamatz
|
||||||
@ -101,6 +103,7 @@
|
|||||||
"ס": "segol",
|
"ס": "segol",
|
||||||
"ב": "hataf_segol", // reduced segol
|
"ב": "hataf_segol", // reduced segol
|
||||||
"צ": "tsere",
|
"צ": "tsere",
|
||||||
|
|
||||||
// Devanagari symbols
|
// Devanagari symbols
|
||||||
"ए": "ऍ",
|
"ए": "ऍ",
|
||||||
"े": "ॅ",
|
"े": "ॅ",
|
||||||
@ -157,6 +160,7 @@
|
|||||||
"ं": "ॕ",
|
"ं": "ॕ",
|
||||||
"़": "ॎ",
|
"़": "ॎ",
|
||||||
"ऽ": "ॽ",
|
"ऽ": "ॽ",
|
||||||
|
|
||||||
// Persian numbers
|
// Persian numbers
|
||||||
"۱": "f1",
|
"۱": "f1",
|
||||||
"۲": "f2",
|
"۲": "f2",
|
||||||
@ -178,5 +182,38 @@
|
|||||||
"٧": "f7",
|
"٧": "f7",
|
||||||
"٨": "f8",
|
"٨": "f8",
|
||||||
"٩": "f9",
|
"٩": "f9",
|
||||||
"٠": "f10"
|
"٠": "f10",
|
||||||
|
|
||||||
|
// Cyrillic
|
||||||
|
"ꙑ": "ы",
|
||||||
|
"ы": "ꙑ",
|
||||||
|
"ш": "ѱ",
|
||||||
|
"з": "ꙁ",
|
||||||
|
"и": "і",
|
||||||
|
"і": "и",
|
||||||
|
"я": "ꙗ",
|
||||||
|
"е": "ѥ",
|
||||||
|
"ѡ": "ꙍ",
|
||||||
|
"о": "ѻ",
|
||||||
|
"а": "ѣ",
|
||||||
|
"э": "є",
|
||||||
|
"ъ": "ь",
|
||||||
|
"ь": "ъ",
|
||||||
|
"й": "ј",
|
||||||
|
"ꙉ": "ђ",
|
||||||
|
"ч": "ћ",
|
||||||
|
"ҁ": "қ",
|
||||||
|
"қ": "ҁ",
|
||||||
|
"џ": "ҷ",
|
||||||
|
"ҷ": "џ",
|
||||||
|
"ј": "й",
|
||||||
|
"у": "ꙋ",
|
||||||
|
"м": "ѫ",
|
||||||
|
"н": "ѧ",
|
||||||
|
"с": "ѕ",
|
||||||
|
"л": "ԯ",
|
||||||
|
"ԓ": "ԯ",
|
||||||
|
"\ua67d": "\u0483",
|
||||||
|
"\u0487": "\ua66f",
|
||||||
|
"ӈ": "ԩ"
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,38 @@
|
|||||||
"┐": "╗",
|
"┐": "╗",
|
||||||
"─": "═",
|
"─": "═",
|
||||||
"│": "║",
|
"│": "║",
|
||||||
|
// superscript
|
||||||
|
"ᵃ": "ᴬ",
|
||||||
|
"ᵇ": "ᴮ",
|
||||||
|
"ᶜ": "ꟲ",
|
||||||
|
"ᵈ": "ᴰ",
|
||||||
|
"ᵉ": "ᴱ",
|
||||||
|
"ᶠ": "ꟳ",
|
||||||
|
"ᵍ": "ᴳ",
|
||||||
|
"ʰ": "ᴴ",
|
||||||
|
"ⁱ": "ᴵ",
|
||||||
|
"ʲ": "ᴶ",
|
||||||
|
"ᵏ": "ᴷ",
|
||||||
|
"ˡ": "ᴸ",
|
||||||
|
"ᵐ": "ᴹ",
|
||||||
|
"ⁿ": "ᴺ",
|
||||||
|
"ᵒ": "ᴼ",
|
||||||
|
"ᵖ": "ᴾ",
|
||||||
|
"ʳ": "ᴿ",
|
||||||
|
"ᵗ": "ᵀ",
|
||||||
|
"ᵘ": "ᵁ",
|
||||||
|
"ᵛ": "ⱽ",
|
||||||
|
"ʷ": "ᵂ",
|
||||||
|
"ᶾ": "ᴣ",
|
||||||
|
"ᵠ": "ᶲ",
|
||||||
|
// german eszett has an uppercase, but because it is uncommon, java doesn't know about it
|
||||||
"ß": "ẞ",
|
"ß": "ẞ",
|
||||||
|
// these characters don't have a preapplied uppercase version, so we use combining characters
|
||||||
|
"ẗ": "T\u0308",
|
||||||
|
"ẘ": "W\u030A",
|
||||||
|
"ẙ": "Y\u030A",
|
||||||
|
"ǰ": "J\u030C",
|
||||||
|
"ȷ": "J\u0307",
|
||||||
// In Turkish, upper case of 'iı' is 'İI' but Java's toUpperCase will
|
// In Turkish, upper case of 'iı' is 'İI' but Java's toUpperCase will
|
||||||
// return 'II'. To make 'İ' accessible, make it the shift of 'ı'. This
|
// return 'II'. To make 'İ' accessible, make it the shift of 'ı'. This
|
||||||
// has the inconvenient of swapping i and ı on the keyboard.
|
// has the inconvenient of swapping i and ı on the keyboard.
|
||||||
|
@ -210,8 +210,7 @@ public final class Config
|
|||||||
KeyValue action_key()
|
KeyValue action_key()
|
||||||
{
|
{
|
||||||
// Update the name to avoid caching in KeyModifier
|
// Update the name to avoid caching in KeyModifier
|
||||||
return (actionLabel == null) ? null :
|
return (actionLabel == null) ? null : KeyValue.makeActionKey(actionLabel);
|
||||||
KeyValue.getKeyByName("action").withSymbol(actionLabel);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Update the layout according to the configuration.
|
/** Update the layout according to the configuration.
|
||||||
@ -302,10 +301,10 @@ public final class Config
|
|||||||
});
|
});
|
||||||
if (show_numpad)
|
if (show_numpad)
|
||||||
kw = kw.addNumPad(modify_numpad(num_pad, kw));
|
kw = kw.addNumPad(modify_numpad(num_pad, kw));
|
||||||
if (added_number_row != null)
|
|
||||||
kw = kw.insert_row(added_number_row, 0);
|
|
||||||
if (extra_keys.size() > 0)
|
if (extra_keys.size() > 0)
|
||||||
kw = kw.addExtraKeys(extra_keys.entrySet().iterator());
|
kw = kw.addExtraKeys(extra_keys.entrySet().iterator());
|
||||||
|
if (added_number_row != null)
|
||||||
|
kw = kw.insert_row(added_number_row, 0);
|
||||||
return kw;
|
return kw;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -422,6 +421,7 @@ public final class Config
|
|||||||
if ((night_mode & Configuration.UI_MODE_NIGHT_NO) != 0)
|
if ((night_mode & Configuration.UI_MODE_NIGHT_NO) != 0)
|
||||||
return R.style.MonetLight;
|
return R.style.MonetLight;
|
||||||
return R.style.MonetDark;
|
return R.style.MonetDark;
|
||||||
|
case "rosepine": return R.style.RosePine;
|
||||||
default:
|
default:
|
||||||
case "system":
|
case "system":
|
||||||
if ((night_mode & Configuration.UI_MODE_NIGHT_NO) != 0)
|
if ((night_mode & Configuration.UI_MODE_NIGHT_NO) != 0)
|
||||||
|
@ -60,10 +60,10 @@ public final class KeyEventHandler
|
|||||||
{
|
{
|
||||||
if (key == null)
|
if (key == null)
|
||||||
return;
|
return;
|
||||||
|
// Stop auto capitalisation when pressing some keys
|
||||||
switch (key.getKind())
|
switch (key.getKind())
|
||||||
{
|
{
|
||||||
case Modifier:
|
case Modifier:
|
||||||
// Stop auto capitalisation when activating a system modifier
|
|
||||||
switch (key.getModifier())
|
switch (key.getModifier())
|
||||||
{
|
{
|
||||||
case CTRL:
|
case CTRL:
|
||||||
@ -73,6 +73,9 @@ public final class KeyEventHandler
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case Compose_pending:
|
||||||
|
_autocap.stop();
|
||||||
|
break;
|
||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -97,6 +100,7 @@ public final class KeyEventHandler
|
|||||||
_recv.set_compose_pending(true);
|
_recv.set_compose_pending(true);
|
||||||
break;
|
break;
|
||||||
case Cursor_move: move_cursor(key.getCursorMove()); break;
|
case Cursor_move: move_cursor(key.getCursorMove()); break;
|
||||||
|
case Complex: send_complex_key(key.getComplexKind(), key.getComplex()); break;
|
||||||
}
|
}
|
||||||
update_meta_state(old_mods);
|
update_meta_state(old_mods);
|
||||||
}
|
}
|
||||||
@ -215,6 +219,16 @@ public final class KeyEventHandler
|
|||||||
conn.performContextMenuAction(id);
|
conn.performContextMenuAction(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void send_complex_key(KeyValue.Complex.Kind kind, KeyValue.Complex val)
|
||||||
|
{
|
||||||
|
switch (kind)
|
||||||
|
{
|
||||||
|
case StringWithSymbol:
|
||||||
|
send_text(((KeyValue.Complex.StringWithSymbol)val).str);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressLint("InlinedApi")
|
@SuppressLint("InlinedApi")
|
||||||
void handle_editing_key(KeyValue.Editing ev)
|
void handle_editing_key(KeyValue.Editing ev)
|
||||||
{
|
{
|
||||||
|
@ -211,7 +211,6 @@ public final class KeyModifier
|
|||||||
case Keyevent: name = apply_fn_keyevent(k.getKeyevent()); break;
|
case Keyevent: name = apply_fn_keyevent(k.getKeyevent()); break;
|
||||||
case Event: name = apply_fn_event(k.getEvent()); break;
|
case Event: name = apply_fn_event(k.getEvent()); break;
|
||||||
case Placeholder: name = apply_fn_placeholder(k.getPlaceholder()); break;
|
case Placeholder: name = apply_fn_placeholder(k.getPlaceholder()); break;
|
||||||
case Cursor_move: name = apply_fn_cursormove(k.getCursorMove()); break;
|
|
||||||
}
|
}
|
||||||
return (name == null) ? k : KeyValue.getKeyByName(name);
|
return (name == null) ? k : KeyValue.getKeyByName(name);
|
||||||
}
|
}
|
||||||
@ -257,16 +256,6 @@ public final class KeyModifier
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String apply_fn_cursormove(short cur)
|
|
||||||
{
|
|
||||||
switch (cur)
|
|
||||||
{
|
|
||||||
case -1 : return "home"; // cursor_left
|
|
||||||
case 1 : return "end"; // cursor_right
|
|
||||||
default: return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static KeyValue apply_ctrl(KeyValue k)
|
private static KeyValue apply_ctrl(KeyValue k)
|
||||||
{
|
{
|
||||||
if (_modmap != null)
|
if (_modmap != null)
|
||||||
|
@ -91,7 +91,8 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
{
|
{
|
||||||
Char, String, Keyevent, Event, Compose_pending, Hangul_initial,
|
Char, String, Keyevent, Event, Compose_pending, Hangul_initial,
|
||||||
Hangul_medial, Modifier, Editing, Placeholder,
|
Hangul_medial, Modifier, Editing, Placeholder,
|
||||||
Cursor_move // Value is encoded as a 16-bit integer
|
Cursor_move, // Value is encoded as a 16-bit integer.
|
||||||
|
Complex, // [_payload] is a [KeyValue.Complex], value is [Complex.Kind].
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final int FLAGS_OFFSET = 19;
|
private static final int FLAGS_OFFSET = 19;
|
||||||
@ -129,7 +130,13 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
check((((Kind.values().length - 1) << KIND_OFFSET) & ~KIND_BITS) == 0);
|
check((((Kind.values().length - 1) << KIND_OFFSET) & ~KIND_BITS) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final String _symbol;
|
/**
|
||||||
|
* The symbol that is rendered on the keyboard as a [String].
|
||||||
|
* Except for keys of kind:
|
||||||
|
* - [String], this is also the string to output.
|
||||||
|
* - [Complex], this is an instance of [KeyValue.Complex].
|
||||||
|
*/
|
||||||
|
private final Object _payload;
|
||||||
|
|
||||||
/** This field encodes three things: Kind, flags and value. */
|
/** This field encodes three things: Kind, flags and value. */
|
||||||
private final int _code;
|
private final int _code;
|
||||||
@ -153,7 +160,9 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
When [getKind() == Kind.String], also the string to send. */
|
When [getKind() == Kind.String], also the string to send. */
|
||||||
public String getString()
|
public String getString()
|
||||||
{
|
{
|
||||||
return _symbol;
|
if (getKind() == Kind.Complex)
|
||||||
|
return ((Complex)_payload).getSymbol();
|
||||||
|
return (String)_payload;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Defined only when [getKind() == Kind.Char]. */
|
/** Defined only when [getKind() == Kind.Char]. */
|
||||||
@ -211,25 +220,32 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
return (short)(_code & VALUE_BITS);
|
return (short)(_code & VALUE_BITS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Defined only when [getKind() == Kind.Complex]. */
|
||||||
|
public Complex getComplex()
|
||||||
|
{
|
||||||
|
return (Complex)_payload;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Defined only when [getKind() == Kind.Complex]. */
|
||||||
|
public Complex.Kind getComplexKind()
|
||||||
|
{
|
||||||
|
return Complex.Kind.values()[(_code & VALUE_BITS)];
|
||||||
|
}
|
||||||
|
|
||||||
/* Update the char and the symbol. */
|
/* Update the char and the symbol. */
|
||||||
public KeyValue withChar(char c)
|
public KeyValue withChar(char c)
|
||||||
{
|
{
|
||||||
return new KeyValue(String.valueOf(c), Kind.Char, c, getFlags());
|
return new KeyValue(String.valueOf(c), Kind.Char, c, getFlags());
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyValue withSymbol(String s)
|
|
||||||
{
|
|
||||||
return new KeyValue(s, (_code & KIND_BITS), (_code & VALUE_BITS), getFlags());
|
|
||||||
}
|
|
||||||
|
|
||||||
public KeyValue withKeyevent(int code)
|
public KeyValue withKeyevent(int code)
|
||||||
{
|
{
|
||||||
return new KeyValue(_symbol, Kind.Keyevent, code, getFlags());
|
return new KeyValue(getString(), Kind.Keyevent, code, getFlags());
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyValue withFlags(int f)
|
public KeyValue withFlags(int f)
|
||||||
{
|
{
|
||||||
return new KeyValue(_symbol, (_code & KIND_BITS), (_code & VALUE_BITS), f);
|
return new KeyValue(_payload, (_code & KIND_BITS), (_code & VALUE_BITS), f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -247,7 +263,9 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
d = _code - snd._code;
|
d = _code - snd._code;
|
||||||
if (d != 0)
|
if (d != 0)
|
||||||
return d;
|
return d;
|
||||||
return _symbol.compareTo(snd._symbol);
|
if (getKind() == Kind.Complex)
|
||||||
|
return ((Complex)_payload).compareTo((Complex)snd._payload);
|
||||||
|
return ((String)_payload).compareTo((String)snd._payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Type-safe alternative to [equals]. */
|
/** Type-safe alternative to [equals]. */
|
||||||
@ -255,24 +273,36 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
{
|
{
|
||||||
if (snd == null)
|
if (snd == null)
|
||||||
return false;
|
return false;
|
||||||
return _symbol.equals(snd._symbol) && _code == snd._code;
|
return _code == snd._code && _payload.equals(snd._payload);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int hashCode()
|
public int hashCode()
|
||||||
{
|
{
|
||||||
return _symbol.hashCode() + _code;
|
return _payload.hashCode() + _code;
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyValue(String s, int kind, int value, int flags)
|
public String toString()
|
||||||
{
|
{
|
||||||
_symbol = s;
|
int value = _code & VALUE_BITS;
|
||||||
|
return "[KeyValue " + getKind().toString() + "+" + getFlags() + "+" + value + " \"" + getString() + "\"]";
|
||||||
|
}
|
||||||
|
|
||||||
|
private KeyValue(Object p, int kind, int value, int flags)
|
||||||
|
{
|
||||||
|
_payload = p;
|
||||||
_code = (kind & KIND_BITS) | (flags & FLAGS_BITS) | (value & VALUE_BITS);
|
_code = (kind & KIND_BITS) | (flags & FLAGS_BITS) | (value & VALUE_BITS);
|
||||||
}
|
}
|
||||||
|
|
||||||
public KeyValue(String s, Kind k, int v, int f)
|
public KeyValue(Complex p, Complex.Kind value, int flags)
|
||||||
{
|
{
|
||||||
this(s, (k.ordinal() << KIND_OFFSET), v, f);
|
this((Object)p, (Kind.Complex.ordinal() << KIND_OFFSET), value.ordinal(),
|
||||||
|
flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public KeyValue(String p, Kind k, int v, int f)
|
||||||
|
{
|
||||||
|
this(p, (k.ordinal() << KIND_OFFSET), v, f);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static KeyValue charKey(String symbol, char c, int flags)
|
private static KeyValue charKey(String symbol, char c, int flags)
|
||||||
@ -363,7 +393,19 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
|
|
||||||
public static KeyValue makeCharKey(char c)
|
public static KeyValue makeCharKey(char c)
|
||||||
{
|
{
|
||||||
return new KeyValue(String.valueOf(c), Kind.Char, c, 0);
|
return makeCharKey(c, null, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static KeyValue makeCharKey(char c, String symbol, int flags)
|
||||||
|
{
|
||||||
|
if (symbol == null)
|
||||||
|
symbol = String.valueOf(c);
|
||||||
|
return new KeyValue(symbol, Kind.Char, c, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static KeyValue makeCharKey(int symbol, char c, int flags)
|
||||||
|
{
|
||||||
|
return makeCharKey(c, String.valueOf((char)symbol), flags | FLAG_KEY_FONT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static KeyValue makeComposePending(String symbol, int state, int flags)
|
public static KeyValue makeComposePending(String symbol, int state, int flags)
|
||||||
@ -397,6 +439,11 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
return KeyValue.makeCharKey((char)precomposed);
|
return KeyValue.makeCharKey((char)precomposed);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static KeyValue makeActionKey(String symbol)
|
||||||
|
{
|
||||||
|
return eventKey(symbol, Event.ACTION, FLAG_SMALLER_FONT);
|
||||||
|
}
|
||||||
|
|
||||||
/** Make a key that types a string. A char key is returned for a string of
|
/** Make a key that types a string. A char key is returned for a string of
|
||||||
length 1. */
|
length 1. */
|
||||||
public static KeyValue makeStringKey(String str, int flags)
|
public static KeyValue makeStringKey(String str, int flags)
|
||||||
@ -407,12 +454,36 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
return new KeyValue(str, Kind.String, 0, flags | FLAG_SMALLER_FONT);
|
return new KeyValue(str, Kind.String, 0, flags | FLAG_SMALLER_FONT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static KeyValue makeStringKeyWithSymbol(String str, String symbol, int flags)
|
||||||
|
{
|
||||||
|
return new KeyValue(new Complex.StringWithSymbol(str, symbol),
|
||||||
|
Complex.Kind.StringWithSymbol, flags);
|
||||||
|
}
|
||||||
|
|
||||||
/** Make a modifier key for passing to [KeyModifier]. */
|
/** Make a modifier key for passing to [KeyModifier]. */
|
||||||
public static KeyValue makeInternalModifier(Modifier mod)
|
public static KeyValue makeInternalModifier(Modifier mod)
|
||||||
{
|
{
|
||||||
return new KeyValue("", Kind.Modifier, mod.ordinal(), 0);
|
return new KeyValue("", Kind.Modifier, mod.ordinal(), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static KeyValue parseKeyDefinition(String str)
|
||||||
|
{
|
||||||
|
if (str.length() < 2 || str.charAt(0) != ':')
|
||||||
|
return makeStringKey(str);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return KeyValueParser.parse(str);
|
||||||
|
}
|
||||||
|
catch (KeyValueParser.ParseError _e)
|
||||||
|
{
|
||||||
|
return makeStringKey(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a key by its name. If the given name doesn't correspond to a key
|
||||||
|
* defined in this function, it is passed to [parseStringKey] as a fallback.
|
||||||
|
*/
|
||||||
public static KeyValue getKeyByName(String name)
|
public static KeyValue getKeyByName(String name)
|
||||||
{
|
{
|
||||||
switch (name)
|
switch (name)
|
||||||
@ -456,6 +527,38 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
case "fn": return modifierKey("Fn", Modifier.FN, 0);
|
case "fn": return modifierKey("Fn", Modifier.FN, 0);
|
||||||
case "meta": return modifierKey("Meta", Modifier.META, 0);
|
case "meta": return modifierKey("Meta", Modifier.META, 0);
|
||||||
|
|
||||||
|
/* Combining diacritics */
|
||||||
|
/* Glyphs is the corresponding dead-key + 0x0100. */
|
||||||
|
case "combining_dot_above": return makeCharKey(0xE15A, '\u0307', 0);
|
||||||
|
case "combining_double_aigu": return makeCharKey(0xE15B, '\u030B', 0);
|
||||||
|
case "combining_slash": return makeCharKey(0xE15C, '\u0337', 0);
|
||||||
|
case "combining_arrow_right": return makeCharKey(0xE15D, '\u20D7', 0);
|
||||||
|
case "combining_breve": return makeCharKey(0xE15E, '\u0306', 0);
|
||||||
|
case "combining_bar": return makeCharKey(0xE15F, '\u0335', 0);
|
||||||
|
case "combining_aigu": return makeCharKey(0xE150, '\u0301', 0);
|
||||||
|
case "combining_caron": return makeCharKey(0xE151, '\u030C', 0);
|
||||||
|
case "combining_cedille": return makeCharKey(0xE152, '\u0327', 0);
|
||||||
|
case "combining_circonflexe": return makeCharKey(0xE153, '\u0302', 0);
|
||||||
|
case "combining_grave": return makeCharKey(0xE154, '\u0300', 0);
|
||||||
|
case "combining_macron": return makeCharKey(0xE155, '\u0304', 0);
|
||||||
|
case "combining_ring": return makeCharKey(0xE156, '\u030A', 0);
|
||||||
|
case "combining_tilde": return makeCharKey(0xE157, '\u0303', 0);
|
||||||
|
case "combining_trema": return makeCharKey(0xE158, '\u0308', 0);
|
||||||
|
case "combining_ogonek": return makeCharKey(0xE159, '\u0328', 0);
|
||||||
|
case "combining_dot_below": return makeCharKey(0xE160, '\u0323', 0);
|
||||||
|
case "combining_horn": return makeCharKey(0xE161, '\u031B', 0);
|
||||||
|
case "combining_hook_above": return makeCharKey(0xE162, '\u0309', 0);
|
||||||
|
/* Combining diacritics that do not have a corresponding dead keys start
|
||||||
|
at 0xE200. */
|
||||||
|
case "combining_vertical_tilde": return makeCharKey(0xE200, '\u033E', 0);
|
||||||
|
case "combining_inverted_breve": return makeCharKey(0xE201, '\u0311', 0);
|
||||||
|
case "combining_pokrytie": return makeCharKey(0xE202, '\u0487', 0);
|
||||||
|
case "combining_slavonic_psili": return makeCharKey(0xE203, '\u0486', 0);
|
||||||
|
case "combining_slavonic_dasia": return makeCharKey(0xE204, '\u0485', 0);
|
||||||
|
case "combining_payerok": return makeCharKey(0xE205, '\uA67D', 0);
|
||||||
|
case "combining_titlo": return makeCharKey(0xE206, '\u0483', 0);
|
||||||
|
case "combining_vzmet": return makeCharKey(0xE207, '\uA66F', 0);
|
||||||
|
|
||||||
/* Special event keys */
|
/* Special event keys */
|
||||||
case "config": return eventKey(0xE004, Event.CONFIG, FLAG_SMALLER_FONT);
|
case "config": return eventKey(0xE004, Event.CONFIG, FLAG_SMALLER_FONT);
|
||||||
case "switch_text": return eventKey("ABC", Event.SWITCH_TEXT, FLAG_SMALLER_FONT);
|
case "switch_text": return eventKey("ABC", Event.SWITCH_TEXT, FLAG_SMALLER_FONT);
|
||||||
@ -483,8 +586,8 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
case "left": return keyeventKey(0xE008, KeyEvent.KEYCODE_DPAD_LEFT, 0);
|
case "left": return keyeventKey(0xE008, KeyEvent.KEYCODE_DPAD_LEFT, 0);
|
||||||
case "page_up": return keyeventKey(0xE002, KeyEvent.KEYCODE_PAGE_UP, 0);
|
case "page_up": return keyeventKey(0xE002, KeyEvent.KEYCODE_PAGE_UP, 0);
|
||||||
case "page_down": return keyeventKey(0xE003, KeyEvent.KEYCODE_PAGE_DOWN, 0);
|
case "page_down": return keyeventKey(0xE003, KeyEvent.KEYCODE_PAGE_DOWN, 0);
|
||||||
case "home": return keyeventKey(0xE00B, KeyEvent.KEYCODE_MOVE_HOME, 0);
|
case "home": return keyeventKey(0xE00B, KeyEvent.KEYCODE_MOVE_HOME, FLAG_SMALLER_FONT);
|
||||||
case "end": return keyeventKey(0xE00C, KeyEvent.KEYCODE_MOVE_END, 0);
|
case "end": return keyeventKey(0xE00C, KeyEvent.KEYCODE_MOVE_END, FLAG_SMALLER_FONT);
|
||||||
case "backspace": return keyeventKey(0xE011, KeyEvent.KEYCODE_DEL, 0);
|
case "backspace": return keyeventKey(0xE011, KeyEvent.KEYCODE_DEL, 0);
|
||||||
case "delete": return keyeventKey(0xE010, KeyEvent.KEYCODE_FORWARD_DEL, 0);
|
case "delete": return keyeventKey(0xE010, KeyEvent.KEYCODE_FORWARD_DEL, 0);
|
||||||
case "insert": return keyeventKey("Ins", KeyEvent.KEYCODE_INSERT, FLAG_SMALLER_FONT);
|
case "insert": return keyeventKey("Ins", KeyEvent.KEYCODE_INSERT, FLAG_SMALLER_FONT);
|
||||||
@ -502,6 +605,7 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
case "f12": return keyeventKey("F12", KeyEvent.KEYCODE_F12, FLAG_SMALLER_FONT);
|
case "f12": return keyeventKey("F12", KeyEvent.KEYCODE_F12, FLAG_SMALLER_FONT);
|
||||||
case "tab": return keyeventKey(0xE00F, KeyEvent.KEYCODE_TAB, FLAG_SMALLER_FONT);
|
case "tab": return keyeventKey(0xE00F, KeyEvent.KEYCODE_TAB, FLAG_SMALLER_FONT);
|
||||||
case "menu": return keyeventKey("Menu", KeyEvent.KEYCODE_MENU, FLAG_SMALLER_FONT);
|
case "menu": return keyeventKey("Menu", KeyEvent.KEYCODE_MENU, FLAG_SMALLER_FONT);
|
||||||
|
case "scroll_lock": return keyeventKey("Scrl", KeyEvent.KEYCODE_SCROLL_LOCK, FLAG_SMALLER_FONT);
|
||||||
|
|
||||||
/* Spaces */
|
/* Spaces */
|
||||||
case "\\t": return charKey("\\t", '\t', 0); // Send the tab character
|
case "\\t": return charKey("\\t", '\t', 0); // Send the tab character
|
||||||
@ -599,8 +703,8 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
case "ㅍ": return makeHangulInitial("ㅍ", 17);
|
case "ㅍ": return makeHangulInitial("ㅍ", 17);
|
||||||
case "ㅎ": return makeHangulInitial("ㅎ", 18);
|
case "ㅎ": return makeHangulInitial("ㅎ", 18);
|
||||||
|
|
||||||
/* Fallback to a string key that types its name */
|
/* The key is not one of the special ones. */
|
||||||
default: return makeStringKey(name);
|
default: return parseKeyDefinition(name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -610,4 +714,49 @@ public final class KeyValue implements Comparable<KeyValue>
|
|||||||
if (!b)
|
if (!b)
|
||||||
throw new RuntimeException("Assertion failure");
|
throw new RuntimeException("Assertion failure");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static abstract class Complex
|
||||||
|
{
|
||||||
|
public abstract String getSymbol();
|
||||||
|
|
||||||
|
/** [compareTo] can assume that [snd] is an instance of the same class. */
|
||||||
|
public abstract int compareTo(Complex snd);
|
||||||
|
|
||||||
|
public boolean equals(Object snd)
|
||||||
|
{
|
||||||
|
if (snd instanceof Complex)
|
||||||
|
return compareTo((Complex)snd) == 0;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** [hashCode] will be called on this class. */
|
||||||
|
|
||||||
|
/** The kind is stored in the [value] field of the key. */
|
||||||
|
public static enum Kind
|
||||||
|
{
|
||||||
|
StringWithSymbol,
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class StringWithSymbol extends Complex
|
||||||
|
{
|
||||||
|
public final String str;
|
||||||
|
private final String _symbol;
|
||||||
|
|
||||||
|
public StringWithSymbol(String _str, String _sym)
|
||||||
|
{
|
||||||
|
str = _str;
|
||||||
|
_symbol = _sym;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSymbol() { return _symbol; }
|
||||||
|
|
||||||
|
public int compareTo(Complex _snd)
|
||||||
|
{
|
||||||
|
StringWithSymbol snd = (StringWithSymbol)_snd;
|
||||||
|
int d = str.compareTo(snd.str);
|
||||||
|
if (d != 0) return d;
|
||||||
|
return _symbol.compareTo(snd._symbol);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
148
srcs/juloo.keyboard2/KeyValueParser.java
Normal file
@ -0,0 +1,148 @@
|
|||||||
|
package juloo.keyboard2;
|
||||||
|
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Parse a key definition. The syntax for a key definition is:
|
||||||
|
- [:(kind) (attributes):(payload)].
|
||||||
|
- If [str] doesn't start with a [:] character, it is interpreted as an
|
||||||
|
arbitrary string key.
|
||||||
|
|
||||||
|
For the different kinds and attributes, see doc/Possible-key-values.md.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
- [:str flags=dim,small symbol='MyKey':'My arbitrary string'].
|
||||||
|
- [:str:'My arbitrary string'].
|
||||||
|
|
||||||
|
*/
|
||||||
|
public final class KeyValueParser
|
||||||
|
{
|
||||||
|
static Pattern START_PAT;
|
||||||
|
static Pattern ATTR_PAT;
|
||||||
|
static Pattern QUOTED_PAT;
|
||||||
|
static Pattern PAYLOAD_START_PAT;
|
||||||
|
static Pattern SINGLE_CHAR_PAT;
|
||||||
|
|
||||||
|
static public KeyValue parse(String str) throws ParseError
|
||||||
|
{
|
||||||
|
String symbol = null;
|
||||||
|
int flags = 0;
|
||||||
|
init();
|
||||||
|
// Kind
|
||||||
|
Matcher m = START_PAT.matcher(str);
|
||||||
|
if (!m.lookingAt())
|
||||||
|
parseError("Expected kind, for example \":str ...\".", m);
|
||||||
|
String kind = m.group(1);
|
||||||
|
// Attributes
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
if (!match(m, ATTR_PAT))
|
||||||
|
break;
|
||||||
|
String attr_name = m.group(1);
|
||||||
|
String attr_value = parseSingleQuotedString(m);
|
||||||
|
switch (attr_name)
|
||||||
|
{
|
||||||
|
case "flags":
|
||||||
|
flags = parseFlags(attr_value, m);
|
||||||
|
break;
|
||||||
|
case "symbol":
|
||||||
|
symbol = attr_value;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
parseError("Unknown attribute "+attr_name, m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Payload
|
||||||
|
if (!match(m, PAYLOAD_START_PAT))
|
||||||
|
parseError("Unexpected character", m);
|
||||||
|
switch (kind)
|
||||||
|
{
|
||||||
|
case "str":
|
||||||
|
String str_payload = parseSingleQuotedString(m);
|
||||||
|
if (symbol == null)
|
||||||
|
return KeyValue.makeStringKey(str_payload, flags);
|
||||||
|
return KeyValue.makeStringKeyWithSymbol(str_payload, symbol, flags);
|
||||||
|
|
||||||
|
case "char":
|
||||||
|
char char_payload = parseOneChar(m);
|
||||||
|
return KeyValue.makeCharKey(char_payload, symbol, flags);
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
parseError("Unknown kind '"+kind+"'", m, 1);
|
||||||
|
return null; // Unreachable
|
||||||
|
}
|
||||||
|
|
||||||
|
static String parseSingleQuotedString(Matcher m) throws ParseError
|
||||||
|
{
|
||||||
|
if (!match(m, QUOTED_PAT))
|
||||||
|
parseError("Expected quoted string", m);
|
||||||
|
return m.group(1).replace("\\'", "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
static char parseOneChar(Matcher m) throws ParseError
|
||||||
|
{
|
||||||
|
if (!match(m, SINGLE_CHAR_PAT))
|
||||||
|
parseError("Expected a character", m);
|
||||||
|
return m.group(0).charAt(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int parseFlags(String s, Matcher m) throws ParseError
|
||||||
|
{
|
||||||
|
int flags = 0;
|
||||||
|
for (String f : s.split(","))
|
||||||
|
{
|
||||||
|
switch (f)
|
||||||
|
{
|
||||||
|
case "dim": flags |= KeyValue.FLAG_SECONDARY; break;
|
||||||
|
case "small": flags |= KeyValue.FLAG_SMALLER_FONT; break;
|
||||||
|
default: parseError("Unknown flag "+f, m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
static boolean match(Matcher m, Pattern pat)
|
||||||
|
{
|
||||||
|
try { m.region(m.end(), m.regionEnd()); } catch (Exception _e) {}
|
||||||
|
m.usePattern(pat);
|
||||||
|
return m.lookingAt();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void init()
|
||||||
|
{
|
||||||
|
if (START_PAT != null)
|
||||||
|
return;
|
||||||
|
START_PAT = Pattern.compile(":(\\w+)");
|
||||||
|
ATTR_PAT = Pattern.compile("\\s*(\\w+)\\s*=");
|
||||||
|
QUOTED_PAT = Pattern.compile("'(([^'\\\\]+|\\\\')*)'");
|
||||||
|
PAYLOAD_START_PAT = Pattern.compile("\\s*:");
|
||||||
|
SINGLE_CHAR_PAT = Pattern.compile(".");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void parseError(String msg, Matcher m) throws ParseError
|
||||||
|
{
|
||||||
|
parseError(msg, m, m.regionStart());
|
||||||
|
}
|
||||||
|
|
||||||
|
static void parseError(String msg, Matcher m, int i) throws ParseError
|
||||||
|
{
|
||||||
|
StringBuilder msg_ = new StringBuilder("Syntax error");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
char c = m.group(0).charAt(0);
|
||||||
|
msg_.append(" at character '").append(c).append("'");
|
||||||
|
} catch (IllegalStateException _e) {}
|
||||||
|
msg_.append(" at position ");
|
||||||
|
msg_.append(i);
|
||||||
|
msg_.append(": ");
|
||||||
|
msg_.append(msg);
|
||||||
|
throw new ParseError(msg_.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ParseError extends Exception
|
||||||
|
{
|
||||||
|
public ParseError(String msg) { super(msg); }
|
||||||
|
};
|
||||||
|
}
|
@ -193,21 +193,22 @@ public final class KeyboardData
|
|||||||
/** Load a layout from a resource ID. Returns [null] on error. */
|
/** Load a layout from a resource ID. Returns [null] on error. */
|
||||||
public static KeyboardData load(Resources res, int id)
|
public static KeyboardData load(Resources res, int id)
|
||||||
{
|
{
|
||||||
KeyboardData l = _layoutCache.get(id);
|
if (_layoutCache.containsKey(id))
|
||||||
if (l == null)
|
return _layoutCache.get(id);
|
||||||
|
KeyboardData l = null;
|
||||||
|
XmlResourceParser parser = null;
|
||||||
|
try
|
||||||
{
|
{
|
||||||
try
|
parser = res.getXml(id);
|
||||||
{
|
l = parse_keyboard(parser);
|
||||||
XmlResourceParser parser = res.getXml(id);
|
|
||||||
l = parse_keyboard(parser);
|
|
||||||
parser.close();
|
|
||||||
_layoutCache.put(id, l);
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Logs.exn("Failed to load layout id " + id, e);
|
||||||
|
}
|
||||||
|
if (parser != null)
|
||||||
|
parser.close();
|
||||||
|
_layoutCache.put(id, l);
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,11 +3,14 @@ package juloo.keyboard2;
|
|||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.graphics.drawable.Animatable;
|
||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.MediaPlayer;
|
import android.media.MediaPlayer;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build.VERSION;
|
import android.os.Build.VERSION;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
|
import android.os.Handler;
|
||||||
|
import android.os.Message;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.Menu;
|
import android.view.Menu;
|
||||||
@ -15,28 +18,49 @@ import android.view.MenuItem;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.inputmethod.InputMethodManager;
|
import android.view.inputmethod.InputMethodManager;
|
||||||
import android.widget.EditText;
|
import android.widget.EditText;
|
||||||
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.VideoView;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class LauncherActivity extends Activity
|
public class LauncherActivity extends Activity implements Handler.Callback
|
||||||
{
|
{
|
||||||
/** Text is replaced when receiving key events. */
|
/** Text is replaced when receiving key events. */
|
||||||
VideoView _intro_video;
|
|
||||||
TextView _tryhere_text;
|
TextView _tryhere_text;
|
||||||
EditText _tryhere_area;
|
EditText _tryhere_area;
|
||||||
|
/** Periodically restart the animations. */
|
||||||
|
List<Animatable> _animations;
|
||||||
|
Handler _handler;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState)
|
public void onCreate(Bundle savedInstanceState)
|
||||||
{
|
{
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.launcher_activity);
|
setContentView(R.layout.launcher_activity);
|
||||||
_intro_video = (VideoView)findViewById(R.id.launcher_intro_video);
|
|
||||||
_tryhere_text = (TextView)findViewById(R.id.launcher_tryhere_text);
|
_tryhere_text = (TextView)findViewById(R.id.launcher_tryhere_text);
|
||||||
_tryhere_area = (EditText)findViewById(R.id.launcher_tryhere_area);
|
_tryhere_area = (EditText)findViewById(R.id.launcher_tryhere_area);
|
||||||
if (VERSION.SDK_INT >= 28)
|
if (VERSION.SDK_INT >= 28)
|
||||||
_tryhere_area.addOnUnhandledKeyEventListener(
|
_tryhere_area.addOnUnhandledKeyEventListener(
|
||||||
this.new Tryhere_OnUnhandledKeyEventListener());
|
this.new Tryhere_OnUnhandledKeyEventListener());
|
||||||
setup_intro_video(_intro_video);
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart()
|
||||||
|
{
|
||||||
|
super.onStart();
|
||||||
|
_animations = new ArrayList<Animatable>();
|
||||||
|
_animations.add(find_anim(R.id.launcher_anim_swipe));
|
||||||
|
_handler = new Handler(getMainLooper(), this);
|
||||||
|
_handler.sendEmptyMessageDelayed(0, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean handleMessage(Message _msg)
|
||||||
|
{
|
||||||
|
for (Animatable anim : _animations)
|
||||||
|
anim.start();
|
||||||
|
_handler.sendEmptyMessageDelayed(0, 3000);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -70,31 +94,10 @@ public class LauncherActivity extends Activity
|
|||||||
imm.showInputMethodPicker();
|
imm.showInputMethodPicker();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void setup_intro_video(final VideoView v)
|
Animatable find_anim(int id)
|
||||||
{
|
{
|
||||||
if (VERSION.SDK_INT >= 26)
|
ImageView img = (ImageView)findViewById(id);
|
||||||
v.setAudioFocusRequest(AudioManager.AUDIOFOCUS_NONE);
|
return (Animatable)img.getDrawable();
|
||||||
v.setVideoURI(Uri.parse("android.resource://" +
|
|
||||||
v.getContext().getPackageName() + "/" + R.raw.intro_video));
|
|
||||||
v.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public void onPrepared(MediaPlayer mp)
|
|
||||||
{
|
|
||||||
mp.setLooping(true);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
v.setOnErrorListener(new MediaPlayer.OnErrorListener()
|
|
||||||
{
|
|
||||||
@Override
|
|
||||||
public boolean onError(MediaPlayer mp, int what, int extra)
|
|
||||||
{
|
|
||||||
v.stopPlayback();
|
|
||||||
v.setVisibility(View.GONE);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
v.start();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@TargetApi(28)
|
@TargetApi(28)
|
||||||
|
@ -110,7 +110,7 @@ public final class Pointers implements Handler.Callback
|
|||||||
if (latched)
|
if (latched)
|
||||||
add_fake_pointer(key, kv, lock);
|
add_fake_pointer(key, kv, lock);
|
||||||
}
|
}
|
||||||
else if ((ptr.flags & FLAG_P_FAKE) != 0)
|
else if ((ptr.flags & FLAG_P_FAKE) == 0)
|
||||||
{} // Key already latched but not by a fake ptr, do nothing.
|
{} // Key already latched but not by a fake ptr, do nothing.
|
||||||
else if (lock)
|
else if (lock)
|
||||||
{
|
{
|
||||||
|
@ -40,7 +40,7 @@ public class CustomExtraKeysPreference extends ListGroupPreference<String>
|
|||||||
if (key_names != null)
|
if (key_names != null)
|
||||||
{
|
{
|
||||||
for (String key_name : key_names)
|
for (String key_name : key_names)
|
||||||
kvs.put(KeyValue.makeStringKey(key_name), KeyboardData.PreferredPos.DEFAULT);
|
kvs.put(KeyValue.parseKeyDefinition(key_name), KeyboardData.PreferredPos.DEFAULT);
|
||||||
}
|
}
|
||||||
return kvs;
|
return kvs;
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,34 @@ public class ExtraKeysPreference extends PreferenceCategory
|
|||||||
"f11_placeholder",
|
"f11_placeholder",
|
||||||
"f12_placeholder",
|
"f12_placeholder",
|
||||||
"menu",
|
"menu",
|
||||||
|
"scroll_lock",
|
||||||
|
"combining_dot_above",
|
||||||
|
"combining_double_aigu",
|
||||||
|
"combining_slash",
|
||||||
|
"combining_arrow_right",
|
||||||
|
"combining_breve",
|
||||||
|
"combining_bar",
|
||||||
|
"combining_aigu",
|
||||||
|
"combining_caron",
|
||||||
|
"combining_cedille",
|
||||||
|
"combining_circonflexe",
|
||||||
|
"combining_grave",
|
||||||
|
"combining_macron",
|
||||||
|
"combining_ring",
|
||||||
|
"combining_tilde",
|
||||||
|
"combining_trema",
|
||||||
|
"combining_ogonek",
|
||||||
|
"combining_dot_below",
|
||||||
|
"combining_horn",
|
||||||
|
"combining_hook_above",
|
||||||
|
"combining_vertical_tilde",
|
||||||
|
"combining_inverted_breve",
|
||||||
|
"combining_pokrytie",
|
||||||
|
"combining_slavonic_psili",
|
||||||
|
"combining_slavonic_dasia",
|
||||||
|
"combining_payerok",
|
||||||
|
"combining_titlo",
|
||||||
|
"combining_vzmet"
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Whether an extra key is enabled by default. */
|
/** Whether an extra key is enabled by default. */
|
||||||
@ -121,6 +149,36 @@ public class ExtraKeysPreference extends PreferenceCategory
|
|||||||
case "ª": id = R.string.key_descr_ª; break;
|
case "ª": id = R.string.key_descr_ª; break;
|
||||||
case "º": id = R.string.key_descr_º; break;
|
case "º": id = R.string.key_descr_º; break;
|
||||||
case "switch_clipboard": id = R.string.key_descr_clipboard; break;
|
case "switch_clipboard": id = R.string.key_descr_clipboard; break;
|
||||||
|
|
||||||
|
case "combining_dot_above":
|
||||||
|
case "combining_double_aigu":
|
||||||
|
case "combining_slash":
|
||||||
|
case "combining_arrow_right":
|
||||||
|
case "combining_breve":
|
||||||
|
case "combining_bar":
|
||||||
|
case "combining_aigu":
|
||||||
|
case "combining_caron":
|
||||||
|
case "combining_cedille":
|
||||||
|
case "combining_circonflexe":
|
||||||
|
case "combining_grave":
|
||||||
|
case "combining_macron":
|
||||||
|
case "combining_ring":
|
||||||
|
case "combining_tilde":
|
||||||
|
case "combining_trema":
|
||||||
|
case "combining_ogonek":
|
||||||
|
case "combining_dot_below":
|
||||||
|
case "combining_horn":
|
||||||
|
case "combining_hook_above":
|
||||||
|
case "combining_vertical_tilde":
|
||||||
|
case "combining_inverted_breve":
|
||||||
|
case "combining_pokrytie":
|
||||||
|
case "combining_slavonic_psili":
|
||||||
|
case "combining_slavonic_dasia":
|
||||||
|
case "combining_payerok":
|
||||||
|
case "combining_titlo":
|
||||||
|
case "combining_vzmet":
|
||||||
|
id = R.string.key_descr_combining;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
if (id == 0)
|
if (id == 0)
|
||||||
return null;
|
return null;
|
||||||
|
@ -8,32 +8,32 @@
|
|||||||
<fn a="у" b="у̂" />
|
<fn a="у" b="у̂" />
|
||||||
<fn a="cursor_left" b="home" />
|
<fn a="cursor_left" b="home" />
|
||||||
<fn a="cursor_right" b="end" />
|
<fn a="cursor_right" b="end" />
|
||||||
<ctrl a="љ" b="q" />
|
<ctrl a="љ" b=":char symbol='љ':q" />
|
||||||
<ctrl a="њ" b="w" />
|
<ctrl a="њ" b=":char symbol='њ':w" />
|
||||||
<ctrl a="е" b="e" />
|
<ctrl a="е" b=":char symbol='е':e" />
|
||||||
<ctrl a="р" b="r" />
|
<ctrl a="р" b=":char symbol='р':r" />
|
||||||
<ctrl a="т" b="t" />
|
<ctrl a="т" b=":char symbol='т':t" />
|
||||||
<ctrl a="ж" b="y" />
|
<ctrl a="ж" b=":char symbol='ж':y" />
|
||||||
<ctrl a="у" b="u" />
|
<ctrl a="у" b=":char symbol='у':u" />
|
||||||
<ctrl a="и" b="i" />
|
<ctrl a="и" b=":char symbol='и':i" />
|
||||||
<ctrl a="о" b="o" />
|
<ctrl a="о" b=":char symbol='о':o" />
|
||||||
<ctrl a="п" b="p" />
|
<ctrl a="п" b=":char symbol='п':p" />
|
||||||
<ctrl a="а" b="a" />
|
<ctrl a="а" b=":char symbol='а':a" />
|
||||||
<ctrl a="с" b="s" />
|
<ctrl a="с" b=":char symbol='с':s" />
|
||||||
<ctrl a="д" b="d" />
|
<ctrl a="д" b=":char symbol='д':d" />
|
||||||
<ctrl a="ф" b="f" />
|
<ctrl a="ф" b=":char symbol='ф':f" />
|
||||||
<ctrl a="г" b="g" />
|
<ctrl a="г" b=":char symbol='г':g" />
|
||||||
<ctrl a="х" b="h" />
|
<ctrl a="х" b=":char symbol='х':h" />
|
||||||
<ctrl a="ј" b="j" />
|
<ctrl a="ј" b=":char symbol='ј':j" />
|
||||||
<ctrl a="к" b="k" />
|
<ctrl a="к" b=":char symbol='к':k" />
|
||||||
<ctrl a="л" b="l" />
|
<ctrl a="л" b=":char symbol='л':l" />
|
||||||
<ctrl a="з" b="z" />
|
<ctrl a="з" b=":char symbol='з':z" />
|
||||||
<ctrl a="џ" b="x" />
|
<ctrl a="џ" b=":char symbol='џ':x" />
|
||||||
<ctrl a="ц" b="c" />
|
<ctrl a="ц" b=":char symbol='ц':c" />
|
||||||
<ctrl a="в" b="v" />
|
<ctrl a="в" b=":char symbol='в':v" />
|
||||||
<ctrl a="б" b="b" />
|
<ctrl a="б" b=":char symbol='б':b" />
|
||||||
<ctrl a="н" b="n" />
|
<ctrl a="н" b=":char symbol='н':n" />
|
||||||
<ctrl a="м" b="m" />
|
<ctrl a="м" b=":char symbol='м':m" />
|
||||||
</modmap>
|
</modmap>
|
||||||
<row>
|
<row>
|
||||||
<key key0="љ" ne="1" se="loc esc"/>
|
<key key0="љ" ne="1" se="loc esc"/>
|
||||||
|
42
srcs/layouts/cyrl_yqukeng_tj.xml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<keyboard name="Tajiki Persian (Тоҷикӣ)" script="cyrillic">
|
||||||
|
<row>
|
||||||
|
<key key0="й" key7="esc" key4="delete" />
|
||||||
|
<key key0="қ" key7="-" key8="_" />
|
||||||
|
<key key0="у" key7="\@" key8="ӯ" />
|
||||||
|
<key key0="к" key7="=" key8="+" />
|
||||||
|
<key key0="е" key8="ё" key7="!" />
|
||||||
|
<key key0="н" key7="$" key8="%"/>
|
||||||
|
<key key0="г" key7="^" key8="ғ" />
|
||||||
|
<key key0="ш" key3="(" key2=")" />
|
||||||
|
<key key0="ҳ" key3="[" key2="]" />
|
||||||
|
<key key0="з" key3="{" key2="}" />
|
||||||
|
<key key0="х" key7="tab" key3="backspace" />
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<key key0="ф" key7="1" />
|
||||||
|
<key key0="ҷ" key7="2" />
|
||||||
|
<key key0="в" key7="3" />
|
||||||
|
<key key0="а" key7="4" />
|
||||||
|
<key key0="п" key7="5" />
|
||||||
|
<key key0="р" key7="6" />
|
||||||
|
<key key0="о" key7="7" />
|
||||||
|
<key key0="л" key7="8" />
|
||||||
|
<key key0="д" key7="9" key8="f11_placeholder" />
|
||||||
|
<key key0="ж" key7="0" key8="f12_placeholder" />
|
||||||
|
<key key0="э" key7="\?" key3="/" />
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<key width="1.18" key0="shift" key2="loc capslock" />
|
||||||
|
<key width="0.96" key0="я" key7="`" key8=";" />
|
||||||
|
<key width="0.96" key0="ч" key7="*" key8=":" />
|
||||||
|
<key width="0.96" key0="с" key7="&" key8="\#" />
|
||||||
|
<key width="0.96" key0="м" key7="|" key8="\\" />
|
||||||
|
<key width="0.96" key0="и" key7="~" />
|
||||||
|
<key width="0.96" key0="т" key7="ц" />
|
||||||
|
<key width="0.96" key0="ӣ" key3="<" key2=">" />
|
||||||
|
<key width="0.96" key0="б" key7="ъ" key8="ы" />
|
||||||
|
<key width="0.96" key0="ю" key7=""" key8="'"/>
|
||||||
|
<key width="1.18" key0="." key7="," />
|
||||||
|
</row>
|
||||||
|
</keyboard>
|
42
srcs/layouts/cyrl_yxukeng_os.xml
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<keyboard name="Old Church Slavonic (Црькъвьнословѣньскъ ѩзыкъ)" script="cyrillic">
|
||||||
|
<row>
|
||||||
|
<key key0="й" key7="esc" key4="delete" />
|
||||||
|
<key key0="ѯ" key7="=" key8="+" />
|
||||||
|
<key key0="у" key8="ѵ" key7="!" />
|
||||||
|
<key key0="к" key7="%" key8="*" />
|
||||||
|
<key key0="е" key7="ё" key8="combining_trema" />
|
||||||
|
<key key0="н" key7="ѩ" key8="combining_titlo" />
|
||||||
|
<key key0="г" key7="^" key8="combining_payerok" />
|
||||||
|
<key key0="ш" key7="щ" key8="combining_vzmet" />
|
||||||
|
<key key0="ѳ" key3="combining_slavonic_dasia" key2="combining_slavonic_psili" />
|
||||||
|
<key key0="з" key3="combining_grave" key2="combining_aigu" />
|
||||||
|
<key key0="х" key7="ҁ" key3="backspace" />
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<key key0="ф" key7="1" key4="tab" />
|
||||||
|
<key key0="ꙉ" key7="2" key8="ъ" />
|
||||||
|
<key key0="в" key7="3" key8="ꙑ" />
|
||||||
|
<key key0="а" key7="4" key8="ь" />
|
||||||
|
<key key0="п" key7="5" />
|
||||||
|
<key key0="р" key7="6" />
|
||||||
|
<key key0="о" key7="7" key8="ѡ" />
|
||||||
|
<key key0="л" key7="8" />
|
||||||
|
<key key0="д" key7="9" key8="f11_placeholder" />
|
||||||
|
<key key0="ж" key7="0" key8="f12_placeholder" />
|
||||||
|
<key key0="э" key7="/" key8="|" />
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<key width="1.18" key0="shift" />
|
||||||
|
<key width="0.96" key0="ꙗ" key7="combining_breve" key8=";" />
|
||||||
|
<key width="0.96" key0="ч" key7="combining_pokrytie" key8=":" />
|
||||||
|
<key width="0.96" key0="с" key7="combining_inverted_breve" key8="`" />
|
||||||
|
<key width="0.96" key0="м" key7="ѭ" />
|
||||||
|
<key width="0.96" key0="и" key7="combining_vertical_tilde" key8="-" />
|
||||||
|
<key width="0.96" key0="т" key7="\?" key8="\\" />
|
||||||
|
<key width="0.96" key0="ц" key3="<" key2=">" />
|
||||||
|
<key width="0.96" key0="б" key3="(" key2=")" />
|
||||||
|
<key width="0.96" key0="ю" key3="{" key2="}" />
|
||||||
|
<key width="1.18" key0="." key7="," key8="_" />
|
||||||
|
</row>
|
||||||
|
</keyboard>
|
32
srcs/res/SvgToVector.java
Normal file
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
192
srcs/res/doc_key.svg
Normal file
@ -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>
|
After Width: | Height: | Size: 9.4 KiB |
25
srcs/res/gen_doc_key_drawables.sh
Normal file
@ -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"
|
@ -1,9 +1,7 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<?xml version="1.0" standalone="no"?>
|
||||||
viewBox="-10 0 750 1000"
|
<!-- Modified from DejaVuSans -->
|
||||||
fill="currentColor">
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
<!-- created by @sdrapha - https://github.com/sdrapha/IconFontSVG
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1726 2048">
|
||||||
License - LICENSE: CC BY-SA 4.0 -->
|
<path fill="currentColor"
|
||||||
<!-- derived from Entypo+ arrow-left-bold by Daniel Bruce -->
|
d="M1613 63v169h-1322v1324h-169v-1493h1491zM412 416l63 -63h556v169h-330l862 862l-120 120l-862 -862v330h-169v-556z" />
|
||||||
<title>arrow-home</title>
|
|
||||||
<path d="M0 165h50v669h-50v-669zM378 830l-328 -330l328 -330v190h352v278h-352v192z" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 450 B |
@ -1,9 +1,7 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<?xml version="1.0" standalone="no"?>
|
||||||
viewBox="-10 0 750 1000"
|
<!-- Modified from DejaVuSans -->
|
||||||
fill="currentColor">
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
<!-- created by @sdrapha - https://github.com/sdrapha/IconFontSVG
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1726 2048">
|
||||||
License - LICENSE: CC BY-SA 4.0 -->
|
<path fill="currentColor"
|
||||||
<!-- derived from Entypo+ arrow-right-bold by Daniel Bruce -->
|
d="M122 1556v-169h1322v-1324h169v1493h-1491zM1323 1203l-63 63h-556v-169h330l-862 -862l120 -120l862 862v-330h169v556z" />
|
||||||
<title>arrow-end</title>
|
|
||||||
<path d="M680 170h50v660h-50v-660zM350 170l330 330l-330 330v-192h-350v-278h350v-190z" />
|
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 384 B After Width: | Height: | Size: 453 B |
41
srcs/special_font/150.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="50.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.43103287"
|
||||||
|
inkscape:cx="573.04214"
|
||||||
|
inkscape:cy="259.84097"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 650 1541 L 465 1275 L 613 1275 L 882 1535 L 880 1541 L 650 1541 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97689 1122.8994 292.60787 1080.177 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90998 956.37142 266.88672 931.52279 266.88672 930.65039 C 344.48318 990.80911 427.7482 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031653 841.68937 2.2696687 735.33339 -9.0625 614.16211 L 90.332031 614.16211 C 101.6658 709.19571 137.41295 791.15224 197.57227 860.0293 C 197.57227 860.90169 187.54483 871.80024 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34667559 391.03054 42.335595 282.09919 118.98047 190.58398 C 123.06104 195.44428 144.50061 217.66171 189.72656 263.66797 C 132.18314 335.1603 99.052766 419.73181 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37616 38.28987 396.36145 -7.0487922 516.67969 -14.896484 L 516.67969 84.498047 C 423.38876 94.961136 337.50938 130.2728 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
41
srcs/special_font/151.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="51.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.32224737"
|
||||||
|
inkscape:cx="1238.1792"
|
||||||
|
inkscape:cy="301.01099"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 240 1543 L 240 1523 L 494 1280 L 613 1280 L 870 1525 L 870 1543 L 700 1543 L 553 1395 L 406 1543 L 240 1543 z M 788.03711 1185.4141 L 788.03711 835.18945 L 884.67969 835.18945 L 884.67969 1185.4141 L 788.03711 1185.4141 z M 516.67773 1130.9434 C 398.97689 1123.0967 292.60787 1080.3743 197.57227 1002.7773 L 194.95703 1005.3926 C 242.90998 956.56869 266.88672 931.72006 266.88672 930.84766 C 344.48318 991.00638 427.7482 1024.5739 516.67773 1031.5488 L 516.67773 1130.9434 z M 121.71875 938.69531 L 127.9043 933.74805 L 125.64258 936.08008 L 121.71875 938.69531 z M 127.9043 933.74805 L 128.2207 933.42188 C 128.2327 933.43587 128.24581 933.45084 128.25781 933.46484 L 127.9043 933.74805 z M 128.2207 933.42188 C 48.031653 841.88664 2.2696687 735.53065 -9.0625 614.35938 L 90.332031 614.35938 C 101.6658 709.39298 137.41295 791.3495 197.57227 860.22656 C 197.57227 861.09895 187.54483 871.99751 167.49219 892.92188 L 128.2207 933.42188 z M 788.03711 733.23242 L 788.03711 383.00977 L 884.67969 383.00977 L 884.67969 733.23242 L 788.03711 733.23242 z M -9.0605469 517.58008 C -0.34667559 391.2278 42.335595 282.29646 118.98047 190.78125 C 123.06104 195.64155 144.50061 217.85898 189.72656 263.86523 C 132.18314 335.35756 99.052766 419.92908 90.333984 517.58008 L -9.0605469 517.58008 z M 118.98047 190.78125 C 118.49847 190.20715 115.08964 186.70508 115.18164 186.70508 L 119.10352 190.62891 C 119.06152 190.67891 119.02242 190.73095 118.98047 190.78125 z M 788.03711 281.05273 L 788.03711 -69.171875 L 884.67969 -69.171875 L 884.67969 281.05273 L 788.03711 281.05273 z M 259.04102 190.62891 L 189.72656 121.31445 C 287.37616 38.487136 396.36145 -6.8515266 516.67969 -14.699219 L 516.67969 84.695312 C 423.38876 95.158402 337.50938 130.47007 259.04102 190.62891 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
41
srcs/special_font/152.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="52.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.28469254"
|
||||||
|
inkscape:cx="1053.7684"
|
||||||
|
inkscape:cy="540.93444"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 788.03711 1185.3613 L 788.03711 835.13672 L 884.67969 835.13672 L 884.67969 1185.3613 L 788.03711 1185.3613 z M 516.67773 1130.8906 C 398.97689 1123.0439 292.60787 1080.3215 197.57227 1002.7246 L 194.95703 1005.3398 C 242.90998 956.51595 266.88672 931.66732 266.88672 930.79492 C 344.48318 990.95364 427.7482 1024.5212 516.67773 1031.4961 L 516.67773 1130.8906 z M 121.71875 938.64258 L 127.9043 933.69531 L 125.64258 936.02734 L 121.71875 938.64258 z M 127.9043 933.69531 L 128.2207 933.36914 C 128.2327 933.38314 128.24581 933.39811 128.25781 933.41211 L 127.9043 933.69531 z M 128.2207 933.36914 C 48.031653 841.8339 2.2696687 735.47792 -9.0625 614.30664 L 90.332031 614.30664 C 101.6658 709.34025 137.41295 791.29677 197.57227 860.17383 C 197.57227 861.04622 187.54483 871.94477 167.49219 892.86914 L 128.2207 933.36914 z M 788.03711 733.17969 L 788.03711 382.95703 L 884.67969 382.95703 L 884.67969 733.17969 L 788.03711 733.17969 z M -9.0605469 517.52734 C -0.34667559 391.17507 42.335595 282.24372 118.98047 190.72852 C 123.06104 195.58881 144.50061 217.80625 189.72656 263.8125 C 132.18314 335.30483 99.052766 419.87634 90.333984 517.52734 L -9.0605469 517.52734 z M 118.98047 190.72852 C 118.49847 190.15442 115.08964 186.65234 115.18164 186.65234 L 119.10352 190.57617 C 119.06152 190.62617 119.02242 190.67822 118.98047 190.72852 z M 788.03711 281 L 788.03711 -69.224609 L 884.67969 -69.224609 L 884.67969 281 L 788.03711 281 z M 259.04102 190.57617 L 189.72656 121.26172 C 278.02009 46.370309 375.61486 2.2381133 482.44141 -11.353516 L 451 -144 C 508.99994 -148.66667 550.00002 -157.33334 574 -170 C 597.99998 -182.66666 610 -205.00003 610 -237 C 610 -269.66664 595.3333 -294.16669 566 -310.5 C 536.6667 -326.83331 497.99995 -335 450 -335 L 457 -444 C 554.9999 -444 630.33338 -424.99996 683 -387 C 735.66662 -349.00004 762 -297.99994 762 -234 C 762 -180.66672 747.66664 -140.3333 719 -113 C 690.33336 -85.666694 654.33329 -68.333326 611 -61 L 623 -9 L 516.67969 -9 L 516.67969 84.642578 C 423.38876 95.105668 337.50938 130.41733 259.04102 190.57617 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
41
srcs/special_font/153.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="53.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.43330418"
|
||||||
|
inkscape:cx="964.68028"
|
||||||
|
inkscape:cy="925.44687"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 495 1542 L 249 1305 L 249 1279 L 409 1279 L 555 1427 L 702 1279 L 863 1279 L 863 1304 L 615 1542 L 495 1542 z M 788.03711 1186.0098 L 788.03711 835.78516 L 884.67969 835.78516 L 884.67969 1186.0098 L 788.03711 1186.0098 z M 516.67773 1131.5391 C 398.97689 1123.6924 292.60787 1080.97 197.57227 1003.373 L 194.95703 1005.9883 C 242.90998 957.16439 266.88672 932.31576 266.88672 931.44336 C 344.48318 991.60208 427.7482 1025.1696 516.67773 1032.1445 L 516.67773 1131.5391 z M 121.71875 939.29102 L 127.9043 934.34375 L 125.64258 936.67578 L 121.71875 939.29102 z M 127.9043 934.34375 L 128.2207 934.01758 C 128.2327 934.03158 128.24581 934.04655 128.25781 934.06055 L 127.9043 934.34375 z M 128.2207 934.01758 C 48.031653 842.48234 2.2696687 736.12636 -9.0625 614.95508 L 90.332031 614.95508 C 101.6658 709.98868 137.41295 791.9452 197.57227 860.82227 C 197.57227 861.69465 187.54483 872.59321 167.49219 893.51758 L 128.2207 934.01758 z M 788.03711 733.82812 L 788.03711 383.60547 L 884.67969 383.60547 L 884.67969 733.82812 L 788.03711 733.82812 z M -9.0605469 518.17578 C -0.34667559 391.82351 42.335595 282.89216 118.98047 191.37695 C 123.06104 196.23725 144.50061 218.45468 189.72656 264.46094 C 132.18314 335.95327 99.052766 420.52478 90.333984 518.17578 L -9.0605469 518.17578 z M 118.98047 191.37695 C 118.49847 190.80285 115.08964 187.30078 115.18164 187.30078 L 119.10352 191.22461 C 119.06152 191.27461 119.02242 191.32665 118.98047 191.37695 z M 788.03711 281.64844 L 788.03711 -68.576172 L 884.67969 -68.576172 L 884.67969 281.64844 L 788.03711 281.64844 z M 259.04102 191.22461 L 189.72656 121.91016 C 287.37616 39.082839 396.36145 -6.2558235 516.67969 -14.103516 L 516.67969 85.291016 C 423.38876 95.754105 337.50938 131.06577 259.04102 191.22461 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
41
srcs/special_font/154.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="54.combined.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.43113456"
|
||||||
|
inkscape:cx="354.87761"
|
||||||
|
inkscape:cy="635.53245"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 233 1545 L 230 1539 L 480 1279 L 638 1279 L 463 1545 L 233 1545 z M 788.03711 1185.8887 L 788.03711 835.66406 L 884.67969 835.66406 L 884.67969 1185.8887 L 788.03711 1185.8887 z M 516.67773 1131.418 C 398.97701 1123.5713 292.60777 1080.8489 197.57227 1003.252 L 194.95703 1005.8672 C 242.90993 957.04333 266.88672 932.19466 266.88672 931.32227 C 344.4831 991.48093 427.74829 1025.0485 516.67773 1032.0234 L 516.67773 1131.418 z M 121.71875 939.16992 L 127.9043 934.22266 L 125.64258 936.55469 L 121.71875 939.16992 z M 127.9043 934.22266 L 128.2207 933.89648 C 128.2327 933.91048 128.24581 933.92545 128.25781 933.93945 L 127.9043 934.22266 z M 128.2207 933.89648 C 48.031733 842.36134 2.2696587 736.00514 -9.0625 614.83398 L 90.332031 614.83398 C 101.66579 709.86749 137.41301 791.82417 197.57227 860.70117 C 197.57227 861.57355 187.54481 872.47214 167.49219 893.39648 L 128.2207 933.89648 z M 788.03711 733.70703 L 788.03711 383.48438 L 884.67969 383.48438 L 884.67969 733.70703 L 788.03711 733.70703 z M -9.0605469 518.05469 C -0.34668559 391.70251 42.335665 282.77107 118.98047 191.25586 C 123.06103 196.11615 144.50066 218.33369 189.72656 264.33984 C 132.1832 335.83217 99.052766 420.40379 90.333984 518.05469 L -9.0605469 518.05469 z M 118.98047 191.25586 C 118.49847 190.68176 115.08964 187.17969 115.18164 187.17969 L 119.10352 191.10352 C 119.06152 191.15352 119.02242 191.20556 118.98047 191.25586 z M 788.03711 281.52734 L 788.03711 -68.697266 L 884.67969 -68.697266 L 884.67969 281.52734 L 788.03711 281.52734 z M 259.04102 191.10352 L 189.72656 121.78906 C 287.37606 38.961745 396.36157 -6.3769172 516.67969 -14.224609 L 516.67969 85.169922 C 423.38885 95.633011 337.5093 130.94478 259.04102 191.10352 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
41
srcs/special_font/155.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="55.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.30430685"
|
||||||
|
inkscape:cx="433.77268"
|
||||||
|
inkscape:cy="368.04955"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 204.5 1464 L 204.5 1318 L 925.5 1318 L 925.5 1464 L 204.5 1464 z M 788.03711 1185.3613 L 788.03711 835.13672 L 884.67969 835.13672 L 884.67969 1185.3613 L 788.03711 1185.3613 z M 516.67773 1130.8906 C 398.97713 1123.0439 292.60767 1080.3214 197.57227 1002.7246 L 194.95703 1005.3398 C 242.90988 956.51602 266.88672 931.66731 266.88672 930.79492 C 344.48302 990.95352 427.74838 1024.5212 516.67773 1031.4961 L 516.67773 1130.8906 z M 121.71875 938.64258 L 127.9043 933.69531 L 125.64258 936.02734 L 121.71875 938.64258 z M 127.9043 933.69531 L 128.2207 933.36914 C 128.2327 933.38314 128.24581 933.39811 128.25781 933.41211 L 127.9043 933.69531 z M 128.2207 933.36914 C 48.031813 841.83409 2.2696487 735.47762 -9.0625 614.30664 L 90.332031 614.30664 C 101.66578 709.34005 137.41307 791.2969 197.57227 860.17383 C 197.57227 861.04621 187.54479 871.94482 167.49219 892.86914 L 128.2207 933.36914 z M 788.03711 733.17969 L 788.03711 382.95703 L 884.67969 382.95703 L 884.67969 733.17969 L 788.03711 733.17969 z M -9.0605469 517.52734 C -0.34669559 391.17527 42.335735 282.24362 118.98047 190.72852 C 123.06102 195.58871 144.50071 217.80645 189.72656 263.8125 C 132.18326 335.30483 99.052766 419.87654 90.333984 517.52734 L -9.0605469 517.52734 z M 118.98047 190.72852 C 118.49847 190.15442 115.08964 186.65234 115.18164 186.65234 L 119.10352 190.57617 C 119.06152 190.62617 119.02242 190.67822 118.98047 190.72852 z M 788.03711 281 L 788.03711 -69.224609 L 884.67969 -69.224609 L 884.67969 281 L 788.03711 281 z M 259.04102 190.57617 L 189.72656 121.26172 C 287.37596 38.434402 396.36169 -6.904261 516.67969 -14.751953 L 516.67969 84.642578 C 423.38894 95.105668 337.50922 130.41753 259.04102 190.57617 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
41
srcs/special_font/156.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="56.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.53396301"
|
||||||
|
inkscape:cx="475.68839"
|
||||||
|
inkscape:cy="1151.7652"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 554 1581 C 505.33338 1581 463.8333 1564.8333 429.5 1532.5 C 395.1667 1500.1667 378 1460 378 1412 C 378 1364 395.00003 1324.6667 429 1294 C 462.99997 1263.3333 504.66672 1248 554 1248 C 601.99995 1248 642.83336 1263.1667 676.5 1293.5 C 710.16664 1323.8333 727 1363.3333 727 1412 C 727 1460 710.16664 1500.1667 676.5 1532.5 C 642.83336 1564.8333 601.99995 1581 554 1581 z M 554 1489 C 573.99998 1489 591.16668 1481.5 605.5 1466.5 C 619.83332 1451.5 627 1433.3333 627 1412 C 627 1390.6667 619.83332 1373 605.5 1359 C 591.16668 1345 573.99998 1338 554 1338 C 533.33335 1338 515.49999 1345.1667 500.5 1359.5 C 485.50002 1373.8333 478 1391.3333 478 1412 C 478 1433.3333 485.33334 1451.5 500 1466.5 C 514.66666 1481.5 532.66669 1489 554 1489 z M 788.03711 1185.4902 L 788.03711 835.26562 L 884.67969 835.26562 L 884.67969 1185.4902 L 788.03711 1185.4902 z M 516.67773 1131.0195 C 398.97725 1123.1728 292.60757 1080.4502 197.57227 1002.8535 L 194.95703 1005.4688 C 242.90983 956.64502 266.88672 931.79622 266.88672 930.92383 C 344.48294 991.08237 427.74852 1024.6501 516.67773 1031.625 L 516.67773 1131.0195 z M 121.71875 938.77148 L 127.9043 933.82422 L 125.64258 936.15625 L 121.71875 938.77148 z M 127.9043 933.82422 L 128.2207 933.49805 C 128.2327 933.51205 128.24581 933.52702 128.25781 933.54102 L 127.9043 933.82422 z M 128.2207 933.49805 C 48.031893 841.96309 2.2696387 735.60645 -9.0625 614.43555 L 90.332031 614.43555 C 101.66577 709.4689 137.41313 791.42587 197.57227 860.30273 C 197.57227 861.17511 187.54477 872.07375 167.49219 892.99805 L 128.2207 933.49805 z M 788.03711 733.30859 L 788.03711 383.08594 L 884.67969 383.08594 L 884.67969 733.30859 L 788.03711 733.30859 z M -9.0605469 517.65625 C -0.34670559 391.30438 42.335805 282.37243 118.98047 190.85742 C 123.06101 195.71762 144.50076 217.93535 189.72656 263.94141 C 132.18332 335.43363 99.052766 420.00555 90.333984 517.65625 L -9.0605469 517.65625 z M 118.98047 190.85742 C 118.49847 190.28332 115.08964 186.78125 115.18164 186.78125 L 119.10352 190.70508 C 119.06152 190.75508 119.02242 190.80712 118.98047 190.85742 z M 788.03711 281.12891 L 788.03711 -69.095703 L 884.67969 -69.095703 L 884.67969 281.12891 L 788.03711 281.12891 z M 259.04102 190.70508 L 189.72656 121.39062 C 287.37586 38.563408 396.36181 -6.7753547 516.67969 -14.623047 L 516.67969 84.771484 C 423.38898 95.234574 337.50914 130.54644 259.04102 190.70508 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
41
srcs/special_font/157.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="57.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.39618502"
|
||||||
|
inkscape:cx="355.89432"
|
||||||
|
inkscape:cy="224.64252"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 794 1554 C 794 1522.6667 783.99998 1496.1667 764 1474.5 C 744.00002 1452.8333 720.3333 1442 693 1442 C 658.33336 1442 612.99994 1457.6667 557 1489 C 501.00006 1520.3333 454.33329 1536 417 1536 C 356.33339 1536 306.33329 1513.1667 267 1467.5 C 227.66671 1421.8333 208 1367.9999 208 1306 L 316 1280 C 316 1310.6667 325.66669 1336.8333 345 1358.5 C 364.33331 1380.1667 388.33336 1391 417 1391 C 450.99997 1391 493.66672 1375.5 545 1344.5 C 596.33328 1313.5 645.66672 1298 693 1298 C 752.99994 1298 802.83337 1319.6667 842.5 1363 C 882.16663 1406.3333 902 1459.3334 902 1522 L 794 1554 z M 788.03711 1185.2617 L 788.03711 835.03711 L 884.67969 835.03711 L 884.67969 1185.2617 L 788.03711 1185.2617 z M 516.67773 1130.791 C 398.97725 1122.9443 292.60757 1080.2217 197.57227 1002.625 L 194.95703 1005.2402 C 242.90983 956.4165 266.88672 931.5677 266.88672 930.69531 C 344.48294 990.85385 427.74847 1024.4216 516.67773 1031.3965 L 516.67773 1130.791 z M 121.71875 938.54297 L 127.9043 933.5957 L 125.64258 935.92773 L 121.71875 938.54297 z M 127.9043 933.5957 L 128.2207 933.26953 C 128.2327 933.28353 128.24581 933.2985 128.25781 933.3125 L 127.9043 933.5957 z M 128.2207 933.26953 C 48.031893 841.73457 2.2696387 735.37793 -9.0625 614.20703 L 90.332031 614.20703 C 101.66577 709.24044 137.41313 791.19736 197.57227 860.07422 C 197.57227 860.9466 187.54477 871.84523 167.49219 892.76953 L 128.2207 933.26953 z M 788.03711 733.08008 L 788.03711 382.85742 L 884.67969 382.85742 L 884.67969 733.08008 L 788.03711 733.08008 z M -9.0605469 517.42773 C -0.34670859 391.07586 42.335805 282.14391 118.98047 190.62891 C 123.06101 195.4891 144.50076 217.70684 189.72656 263.71289 C 132.18332 335.20512 99.052766 419.77703 90.333984 517.42773 L -9.0605469 517.42773 z M 118.98047 190.62891 C 118.49847 190.05481 115.08964 186.55273 115.18164 186.55273 L 119.10352 190.47656 C 119.06152 190.52656 119.02242 190.57861 118.98047 190.62891 z M 788.03711 280.90039 L 788.03711 -69.324219 L 884.67969 -69.324219 L 884.67969 280.90039 L 788.03711 280.90039 z M 259.04102 190.47656 L 189.72656 121.16211 C 287.37586 38.334892 396.36181 -7.0038703 516.67969 -14.851562 L 516.67969 84.542969 C 423.38903 95.006058 337.50914 130.31792 259.04102 190.47656 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
41
srcs/special_font/158.svg
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="58.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.45672531"
|
||||||
|
inkscape:cx="477.31097"
|
||||||
|
inkscape:cy="821.06244"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 211 1483 L 211 1283 L 430 1283 L 430 1483 L 211 1483 z M 681 1483 L 681 1283 L 900 1283 L 900 1483 L 681 1483 z M 788.03711 1185.3984 L 788.03711 835.17383 L 884.67969 835.17383 L 884.67969 1185.3984 L 788.03711 1185.3984 z M 516.67773 1130.9277 C 398.97725 1123.081 292.60757 1080.3584 197.57227 1002.7617 L 194.95703 1005.377 C 242.90983 956.55322 266.88672 931.70442 266.88672 930.83203 C 344.48294 990.99057 427.74847 1024.5583 516.67773 1031.5332 L 516.67773 1130.9277 z M 121.71875 938.67969 L 127.9043 933.73242 L 125.64258 936.06445 L 121.71875 938.67969 z M 127.9043 933.73242 L 128.2207 933.40625 C 128.2327 933.42025 128.24581 933.43522 128.25781 933.44922 L 127.9043 933.73242 z M 128.2207 933.40625 C 48.031893 841.87129 2.2696387 735.51465 -9.0625 614.34375 L 90.332031 614.34375 C 101.66577 709.37715 137.41313 791.33408 197.57227 860.21094 C 197.57227 861.08332 187.54477 871.98195 167.49219 892.90625 L 128.2207 933.40625 z M 788.03711 733.2168 L 788.03711 382.99414 L 884.67969 382.99414 L 884.67969 733.2168 L 788.03711 733.2168 z M -9.0605469 517.56445 C -0.34670859 391.21258 42.335805 282.28063 118.98047 190.76562 C 123.06101 195.62582 144.50076 217.84356 189.72656 263.84961 C 132.18332 335.34184 99.052766 419.91375 90.333984 517.56445 L -9.0605469 517.56445 z M 118.98047 190.76562 C 118.49847 190.19153 115.08964 186.68945 115.18164 186.68945 L 119.10352 190.61328 C 119.06152 190.66328 119.02242 190.71533 118.98047 190.76562 z M 788.03711 281.03711 L 788.03711 -69.1875 L 884.67969 -69.1875 L 884.67969 281.03711 L 788.03711 281.03711 z M 259.04102 190.61328 L 189.72656 121.29883 C 287.37586 38.471611 396.36181 -6.8671516 516.67969 -14.714844 L 516.67969 84.679688 C 423.38903 95.142777 337.50914 130.45464 259.04102 190.61328 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
39
srcs/special_font/159.svg
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="59.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.46013612"
|
||||||
|
inkscape:cx="608.51559"
|
||||||
|
inkscape:cy="660.67407"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 788.03711 1185.4375 L 788.03711 835.21289 L 884.67969 835.21289 L 884.67969 1185.4375 L 788.03711 1185.4375 z M 516.67773 1130.9668 C 398.97725 1123.1201 292.60757 1080.3975 197.57227 1002.8008 L 194.95703 1005.416 C 242.90983 956.59228 266.88672 931.74348 266.88672 930.87109 C 344.48294 991.02963 427.74847 1024.5974 516.67773 1031.5723 L 516.67773 1130.9668 z M 121.71875 938.71875 L 127.9043 933.77148 L 125.64258 936.10352 L 121.71875 938.71875 z M 127.9043 933.77148 L 128.2207 933.44531 C 128.2327 933.45931 128.24581 933.47428 128.25781 933.48828 L 127.9043 933.77148 z M 128.2207 933.44531 C 48.031893 841.91036 2.2696387 735.55369 -9.0625 614.38281 L 90.332031 614.38281 C 101.66577 709.41622 137.41313 791.37317 197.57227 860.25 C 197.57227 861.1224 187.54477 872.02103 167.49219 892.94531 L 128.2207 933.44531 z M 788.03711 733.25586 L 788.03711 383.0332 L 884.67969 383.0332 L 884.67969 733.25586 L 788.03711 733.25586 z M -9.0605469 517.60352 C -0.34670859 391.25164 42.335805 282.3197 118.98047 190.80469 C 123.06101 195.66488 144.50076 217.88262 189.72656 263.88867 C 132.18332 335.3809 99.052766 419.95281 90.333984 517.60352 L -9.0605469 517.60352 z M 118.98047 190.80469 C 118.49847 190.23059 115.08964 186.72852 115.18164 186.72852 L 119.10352 190.65234 C 119.06152 190.70234 119.02242 190.75439 118.98047 190.80469 z M 788.03711 281.07617 L 788.03711 -14.900391 C 764.18598 -32.716589 743.96402 -51.406452 727.5 -71 C 687.16671 -118.99995 667 -169.66672 667 -223 C 667 -288.99993 687.16671 -340.33337 727.5 -377 C 767.83329 -413.66663 819.66673 -432 883 -432 C 922.99996 -432 957.50003 -427.83332 986.5 -419.5 C 1015.5 -411.16668 1042 -400.66666 1066 -388 L 1033 -265 C 1015.6667 -272.33332 999.33331 -278.50001 984 -283.5 C 968.66669 -288.49999 951.99998 -291 934 -291 C 900.00003 -291 875.49999 -282.99998 860.5 -267 C 845.50001 -251.00002 838 -228.99997 838 -201 C 838 -165.00004 851.1667 -131.16664 877.5 -99.5 C 903.8333 -67.833365 940.33338 -34.666632 987 0 L 915 57 C 904.55355 52.39369 894.45123 47.70424 884.67969 42.935547 L 884.67969 281.07617 L 788.03711 281.07617 z M 259.04102 190.65234 L 189.72656 121.33789 C 287.37586 38.510673 396.36181 -6.8280891 516.67969 -14.675781 L 516.67969 84.71875 C 423.38903 95.18184 337.50914 130.4937 259.04102 190.65234 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
40
srcs/special_font/15A.svg
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="5A.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.37732464"
|
||||||
|
inkscape:cx="-129.86165"
|
||||||
|
inkscape:cy="667.85991"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 430 1484 L 430 1283 L 648 1283 L 648 1484 L 430 1484 z M 788.03711 1185.416 L 788.03711 835.19141 L 884.67969 835.19141 L 884.67969 1185.416 L 788.03711 1185.416 z M 516.67773 1130.9453 C 398.97652 1123.0986 292.60817 1080.3765 197.57227 1002.7793 L 194.95703 1005.3945 C 242.91011 956.57037 266.88672 931.722 266.88672 930.84961 C 344.48341 991.00851 427.74788 1024.5759 516.67773 1031.5508 L 516.67773 1130.9453 z M 121.71875 938.69727 L 127.9043 933.75 L 125.64258 936.08203 L 121.71875 938.69727 z M 127.9043 933.75 L 128.2207 933.42383 C 128.23324 933.43814 128.24527 933.45248 128.25781 933.4668 L 127.9043 933.75 z M 128.2207 933.42383 C 48.031429 841.88827 2.2697163 735.53293 -9.0625 614.36133 L 90.332031 614.36133 C 101.66582 709.39523 137.4128 791.35125 197.57227 860.22852 C 197.57227 861.10091 187.5449 871.99938 167.49219 892.92383 L 128.2207 933.42383 z M 788.03711 733.23438 L 788.03711 383.01172 L 884.67969 383.01172 L 884.67969 733.23438 L 788.03711 733.23438 z M -9.0605469 517.58203 C -0.34660748 391.22954 42.335356 282.29867 118.98047 190.7832 C 123.06106 195.64351 144.50052 217.86093 189.72656 263.86719 C 132.18302 335.35979 99.052776 419.9308 90.333984 517.58203 L -9.0605469 517.58203 z M 118.98047 190.7832 C 118.49846 190.20909 115.08955 186.70703 115.18164 186.70703 L 119.10352 190.63086 C 119.06141 190.6811 119.02256 190.73295 118.98047 190.7832 z M 788.03711 281.05469 L 788.03711 -69.169922 L 884.67969 -69.169922 L 884.67969 281.05469 L 788.03711 281.05469 z M 259.04102 190.63086 L 189.72656 121.31641 C 287.37646 38.488822 396.36114 -6.8496068 516.67969 -14.697266 L 516.67969 84.697266 C 423.38845 95.160388 337.50961 130.47205 259.04102 190.63086 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
39
srcs/special_font/15B.svg
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1184 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="5B.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.58198807"
|
||||||
|
inkscape:cx="-51.547448"
|
||||||
|
inkscape:cy="554.99419"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 530 1545 L 346 1279 L 503 1279 L 743 1540 L 741 1545 L 530 1545 z M 856 1545 L 615 1284 L 617 1279 L 788 1279 L 1088 1539 L 1085 1545 L 856 1545 z M 788.03711 1185.6328 L 788.03711 835.4082 L 884.67969 835.4082 L 884.67969 1185.6328 L 788.03711 1185.6328 z M 516.67773 1131.1621 C 398.97665 1123.3154 292.60807 1080.5932 197.57227 1002.9961 L 194.95703 1005.6113 C 242.91008 956.78728 266.88672 931.93881 266.88672 931.06641 C 344.48334 991.22525 427.74802 1024.7927 516.67773 1031.7676 L 516.67773 1131.1621 z M 121.71875 938.91406 L 127.9043 933.9668 L 125.64258 936.29883 L 121.71875 938.91406 z M 127.9043 933.9668 L 128.2207 933.64062 C 128.2327 933.65462 128.24581 933.66959 128.25781 933.68359 L 127.9043 933.9668 z M 128.2207 933.64062 C 48.031483 842.10519 2.2696887 735.7496 -9.0625 614.57812 L 90.332031 614.57812 C 101.66582 709.61193 137.41283 791.56811 197.57227 860.44531 C 197.57227 861.3177 187.54487 872.2162 167.49219 893.14062 L 128.2207 933.64062 z M 788.03711 733.45117 L 788.03711 383.22852 L 884.67969 383.22852 L 884.67969 733.45117 L 788.03711 733.45117 z M -9.0605469 517.79883 C -0.34665559 391.44635 42.335445 282.51541 118.98047 191 C 123.06106 195.8603 144.50051 218.07773 189.72656 264.08398 C 132.18302 335.57651 99.052776 420.14763 90.333984 517.79883 L -9.0605469 517.79883 z M 118.98047 191 C 118.49847 190.4259 115.08964 186.92383 115.18164 186.92383 L 119.10352 190.84766 C 119.06152 190.89766 119.02247 190.9497 118.98047 191 z M 788.03711 281.27148 L 788.03711 -68.953125 L 884.67969 -68.953125 L 884.67969 281.27148 L 788.03711 281.27148 z M 259.04102 190.84766 L 189.72656 121.5332 C 287.37636 38.705686 396.36121 -6.6327766 516.67969 -14.480469 L 516.67969 84.914062 C 423.38858 95.377152 337.50954 130.68882 259.04102 190.84766 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.8 KiB |
35
srcs/special_font/15C.svg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 2068 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="5C.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.35727934"
|
||||||
|
inkscape:cx="487.01389"
|
||||||
|
inkscape:cy="1116.7732"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 859 327 L 847.23828 350.84375 L 788.03711 350.84375 L 788.03711 470.84766 L 332.91602 1393.4121 C 307.63186 1379.6959 282.94923 1363.9585 259.04102 1345.6289 L 189.72656 1414.9434 C 221.4138 1441.8208 254.31629 1464.6838 288.39062 1483.666 L 195.91211 1671.127 L 325 1671 L 395.0625 1528.9902 C 434.23639 1540.8294 474.75335 1548.2224 516.67969 1550.957 L 516.67969 1451.5625 C 490.70085 1448.6488 465.35862 1443.6034 440.5293 1436.8359 L 803.53125 701.06836 L 884.67969 701.06836 L 884.67969 536.58789 L 988.02539 327.11719 L 859 327 z M 516.67773 405.31445 C 398.97685 413.16115 292.60797 455.88345 197.57227 533.48047 L 194.95703 530.86523 C 242.91008 579.68919 266.88672 604.53776 266.88672 605.41016 C 344.48324 545.25142 427.74812 511.68388 516.67773 504.70898 L 516.67773 405.31445 z M 121.71875 597.5625 L 127.9043 602.50977 L 125.64258 600.17773 L 121.71875 597.5625 z M 127.9043 602.50977 L 128.2207 602.83594 C 128.2327 602.82194 128.24581 602.80697 128.25781 602.79297 L 127.9043 602.50977 z M 128.2207 602.83594 C 48.031583 694.37125 2.2696887 800.72706 -9.0625 921.89844 L 90.332031 921.89844 C 101.66582 826.86473 137.41283 744.90838 197.57227 676.03125 C 197.57227 675.15885 187.54487 664.26032 167.49219 643.33594 L 128.2207 602.83594 z M 788.03711 803.02539 L 788.03711 1153.248 L 884.67969 1153.248 L 884.67969 803.02539 L 788.03711 803.02539 z M -9.0605469 1018.6777 C -0.34675559 1145.0301 42.335445 1253.9613 118.98047 1345.4766 C 123.06106 1340.6163 144.50051 1318.3988 189.72656 1272.3926 C 132.18302 1200.9001 99.052776 1116.3288 90.333984 1018.6777 L -9.0605469 1018.6777 z M 118.98047 1345.4766 C 118.49847 1346.0507 115.08964 1349.5527 115.18164 1349.5527 L 119.10352 1345.6289 C 119.06152 1345.5789 119.02247 1345.5269 118.98047 1345.4766 z M 788.03711 1255.2051 L 788.03711 1605.4297 L 884.67969 1605.4297 L 884.67969 1255.2051 L 788.03711 1255.2051 z " />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.9 KiB |
35
srcs/special_font/15D.svg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 2068 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="5D.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.62756232"
|
||||||
|
inkscape:cx="627.8261"
|
||||||
|
inkscape:cy="640.57383"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 648.50391 102.80469 C 665.95442 139.28078 695.10226 173.54949 735.94922 205.61133 L 197.83203 205.61133 L 197.83203 242.91797 L 735.94922 242.91797 C 695.29759 275.16974 666.14976 309.56907 648.50391 346.11523 L 687.38281 346.11523 C 737.74609 294.33536 807.73007 256.89125 897.33398 233.7832 L 897.33398 215.13672 C 807.59067 192.08467 737.60669 154.64057 687.38281 102.80469 L 648.50391 102.80469 z M 788.03711 350.66797 L 788.03711 700.89258 L 884.67969 700.89258 L 884.67969 350.66797 L 788.03711 350.66797 z M 516.67773 405.13867 C 398.97677 412.98536 292.60797 455.70767 197.57227 533.30469 L 194.95703 530.68945 C 242.91003 579.51342 266.88672 604.36198 266.88672 605.23438 C 344.48326 545.0756 427.74811 511.5081 516.67773 504.5332 L 516.67773 405.13867 z M 121.71875 597.38672 L 127.9043 602.33398 L 125.64258 600.00195 L 121.71875 597.38672 z M 127.9043 602.33398 L 128.2207 602.66016 C 128.2327 602.64616 128.24581 602.63119 128.25781 602.61719 L 127.9043 602.33398 z M 128.2207 602.66016 C 48.031563 694.19549 2.2696777 800.5513 -9.0625 921.72266 L 90.332031 921.72266 C 101.66581 826.68894 137.41289 744.7326 197.57227 675.85547 C 197.57227 674.98308 187.54485 664.08456 167.49219 643.16016 L 128.2207 602.66016 z M 788.03711 802.84961 L 788.03711 1153.0723 L 884.67969 1153.0723 L 884.67969 802.84961 L 788.03711 802.84961 z M -9.0605469 1018.502 C -0.34666459 1144.8543 42.335515 1253.7855 118.98047 1345.3008 C 123.06105 1340.4405 144.50056 1318.2231 189.72656 1272.2168 C 132.18308 1200.7244 99.052776 1116.1531 90.333984 1018.502 L -9.0605469 1018.502 z M 118.98047 1345.3008 C 118.49847 1345.8749 115.08964 1349.377 115.18164 1349.377 L 119.10352 1345.4531 C 119.06152 1345.4031 119.02242 1345.3511 118.98047 1345.3008 z M 788.03711 1255.0293 L 788.03711 1605.2539 L 884.67969 1605.2539 L 884.67969 1255.0293 L 788.03711 1255.0293 z M 259.04102 1345.4531 L 189.72656 1414.7676 C 287.37626 1497.595 396.36133 1542.9336 516.67969 1550.7812 L 516.67969 1451.3867 C 423.38867 1440.9236 337.50946 1405.612 259.04102 1345.4531 z " />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
39
srcs/special_font/15E.svg
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="5E.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.40851537"
|
||||||
|
inkscape:cx="851.86512"
|
||||||
|
inkscape:cy="670.72139"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 282 1496 C 282 1416.0001 309.66673 1351.3333 365 1302 C 420.33327 1252.6667 492.66676 1228 582 1228 C 671.33324 1228 743.50005 1252.5 798.5 1301.5 C 853.49995 1350.5 881 1415.3334 881 1496 L 731 1496 C 731 1448.6667 717.8333 1412 691.5 1386 C 665.1667 1360 628.66662 1347 582 1347 C 533.33338 1347 496.3333 1360.1667 471 1386.5 C 445.6667 1412.8333 433 1449.3333 433 1496 L 282 1496 z M 788.03711 1185.3828 L 788.03711 835.1582 L 884.67969 835.1582 L 884.67969 1185.3828 L 788.03711 1185.3828 z M 516.67773 1130.9121 C 398.97677 1123.0654 292.60797 1080.3431 197.57227 1002.7461 L 194.95703 1005.3613 C 242.91003 956.53736 266.88672 931.68881 266.88672 930.81641 C 344.48326 990.97519 427.74811 1024.5427 516.67773 1031.5176 L 516.67773 1130.9121 z M 121.71875 938.66406 L 127.9043 933.7168 L 125.64258 936.04883 L 121.71875 938.66406 z M 127.9043 933.7168 L 128.2207 933.39062 C 128.2327 933.40462 128.24581 933.41959 128.25781 933.43359 L 127.9043 933.7168 z M 128.2207 933.39062 C 48.031566 841.85529 2.2696787 735.49948 -9.0625 614.32812 L 90.332031 614.32812 C 101.66581 709.36184 137.41289 791.31818 197.57227 860.19531 C 197.57227 861.0677 187.54485 871.96623 167.49219 892.89062 L 128.2207 933.39062 z M 788.03711 733.20117 L 788.03711 382.97852 L 884.67969 382.97852 L 884.67969 733.20117 L 788.03711 733.20117 z M -9.0605469 517.54883 C -0.34666559 391.19645 42.33552 282.26531 118.98047 190.75 C 123.06105 195.6103 144.50056 217.82773 189.72656 263.83398 C 132.18308 335.32641 99.052768 419.89773 90.333984 517.54883 L -9.0605469 517.54883 z M 118.98047 190.75 C 118.49847 190.1759 115.08964 186.67383 115.18164 186.67383 L 119.10352 190.59766 C 119.06152 190.64766 119.02242 190.6997 118.98047 190.75 z M 788.03711 281.02148 L 788.03711 -69.203125 L 884.67969 -69.203125 L 884.67969 281.02148 L 788.03711 281.02148 z M 259.04102 190.59766 L 189.72656 121.2832 C 287.37626 38.455786 396.36133 -6.8827766 516.67969 -14.730469 L 516.67969 84.664062 C 423.38867 95.127152 337.50946 130.43882 259.04102 190.59766 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
35
srcs/special_font/15F.svg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-55 0 2103 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="5F.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.25394675"
|
||||||
|
inkscape:cx="-94.508002"
|
||||||
|
inkscape:cy="1764.1494"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 787.98633 350.56836 L 787.98633 700.79297 L 884.62891 700.79297 L 884.62891 350.56836 L 787.98633 350.56836 z M 516.62695 405.03906 C 398.92614 412.88575 292.55709 455.60816 197.52148 533.20508 L 194.90625 530.58984 C 242.8592 579.41373 266.83594 604.26237 266.83594 605.13477 C 344.4324 544.97605 427.69745 511.40849 516.62695 504.43359 L 516.62695 405.03906 z M 121.66797 597.28711 L 127.85352 602.23438 L 125.5918 599.90234 L 121.66797 597.28711 z M 127.85352 602.23438 L 128.16992 602.56055 C 128.18192 602.54655 128.19503 602.53158 128.20703 602.51758 L 127.85352 602.23438 z M 128.16992 602.56055 C 81.861876 655.42086 47.107033 713.25568 23.761719 776 L -45 776 L -45 926 L 787.98633 926 L 787.98633 1152.9727 L 884.62891 1152.9727 L 884.62891 926 L 1180 926 L 1180 776 L 131.81445 776 C 148.94241 740.02777 170.65788 706.51229 197.52148 675.75586 C 197.52148 674.88347 187.49405 663.98492 167.44141 643.06055 L 128.16992 602.56055 z M -9.1113281 1018.4023 C -0.39745673 1144.7546 42.284816 1253.686 118.92969 1345.2012 C 123.01026 1340.3409 144.44983 1318.1234 189.67578 1272.1172 C 132.13236 1200.6249 99.001984 1116.0533 90.283203 1018.4023 L -9.1113281 1018.4023 z M 118.92969 1345.2012 C 118.44769 1345.7753 115.03886 1349.2773 115.13086 1349.2773 L 119.05273 1345.3535 C 119.01073 1345.3035 118.97164 1345.2515 118.92969 1345.2012 z M 787.98633 1254.9297 L 787.98633 1605.1543 L 884.62891 1605.1543 L 884.62891 1254.9297 L 787.98633 1254.9297 z M 258.99023 1345.3535 L 189.67578 1414.668 C 287.32538 1497.4953 396.31066 1542.8339 516.62891 1550.6816 L 516.62891 1451.2871 C 423.33797 1440.824 337.4586 1405.5124 258.99023 1345.3535 z " />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
35
srcs/special_font/160.svg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="60.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.37535628"
|
||||||
|
inkscape:cx="383.63552"
|
||||||
|
inkscape:cy="548.81192"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 788.69727 486.45312 L 788.69727 836.67773 L 885.33984 836.67773 L 885.33984 486.45312 L 788.69727 486.45312 z M 517.33789 540.92383 C 399.63741 548.77052 293.26773 591.49312 198.23242 669.08984 L 195.61719 666.47461 C 243.56999 715.29834 267.54688 740.14714 267.54688 741.01953 C 345.1431 680.86099 428.40863 647.29325 517.33789 640.31836 L 517.33789 540.92383 z M 122.37891 733.17188 L 128.56445 738.11914 L 126.30273 735.78711 L 122.37891 733.17188 z M 128.56445 738.11914 L 128.88086 738.44531 C 128.89286 738.43131 128.90597 738.41634 128.91797 738.40234 L 128.56445 738.11914 z M 128.88086 738.44531 C 48.692048 829.98027 2.9297945 936.33689 -8.4023438 1057.5078 L 90.992188 1057.5078 C 102.32593 962.47439 138.07328 880.51749 198.23242 811.64062 C 198.23242 810.76825 188.20492 799.86961 168.15234 778.94531 L 128.88086 738.44531 z M 788.69727 938.63477 L 788.69727 1288.8574 L 885.33984 1288.8574 L 885.33984 938.63477 L 788.69727 938.63477 z M -8.4003906 1154.2871 C 0.31344766 1280.639 42.99596 1389.5709 119.64062 1481.0859 C 123.72117 1476.2257 145.16091 1454.008 190.38672 1408.002 C 132.84348 1336.5097 99.712919 1251.9378 90.994141 1154.2871 L -8.4003906 1154.2871 z M 119.64062 1481.0859 C 119.15863 1481.66 115.7498 1485.1621 115.8418 1485.1621 L 119.76367 1481.2383 C 119.72167 1481.1883 119.68257 1481.1362 119.64062 1481.0859 z M 788.69727 1390.8145 L 788.69727 1741.0391 L 885.33984 1741.0391 L 885.33984 1390.8145 L 788.69727 1390.8145 z M 259.70117 1481.2383 L 190.38672 1550.5527 C 288.03602 1633.38 397.02196 1678.7187 517.33984 1686.5664 L 517.33984 1587.1719 C 424.04919 1576.7088 338.16929 1541.3969 259.70117 1481.2383 z M 430 1838 L 430 2039 L 648 2039 L 648 1838 L 430 1838 z " />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.7 KiB |
35
srcs/special_font/161.svg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
viewBox="0 0 1168 2048"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="61.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.48567467"
|
||||||
|
inkscape:cx="413.85729"
|
||||||
|
inkscape:cy="951.25406"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 896 399.05469 C 856.00004 399.05469 821.49997 403.22137 792.5 411.55469 C 763.50003 419.88801 736.99998 430.38803 713 443.05469 L 746 566.05469 C 763.33331 558.72136 779.66669 552.55468 795 547.55469 C 810.33331 542.55469 827.00002 540.05469 845 540.05469 C 878.99997 540.05469 903.50001 548.0547 918.5 564.05469 C 933.49999 580.05467 941 602.05472 941 630.05469 C 941 666.05465 927.8333 699.88805 901.5 731.55469 C 891.57047 743.49526 880.18776 755.65046 867.36719 768.01758 L 788.08008 768.01758 L 788.08008 1118.2422 L 884.72266 1118.2422 L 884.72266 878.56055 C 958.90913 843.53244 1014.5404 804.03965 1051.5 760.05469 C 1091.8333 712.05474 1112 661.38796 1112 608.05469 C 1112 542.05475 1091.8333 490.72132 1051.5 454.05469 C 1011.1667 417.38805 959.33327 399.05469 896 399.05469 z M 516.7207 822.48828 C 399.02022 830.33497 292.65054 873.05757 197.61523 950.6543 L 195 948.03906 C 242.9528 996.86281 266.92969 1021.7116 266.92969 1022.584 C 344.52591 962.42538 427.79144 928.85771 516.7207 921.88281 L 516.7207 822.48828 z M 121.76172 1014.7363 L 127.94727 1019.6836 L 125.68555 1017.3516 L 121.76172 1014.7363 z M 127.94727 1019.6836 L 128.26367 1020.0098 C 128.27567 1019.9958 128.28878 1019.9808 128.30078 1019.9668 L 127.94727 1019.6836 z M 128.26367 1020.0098 C 48.074862 1111.5447 2.3126074 1217.9014 -9.0195312 1339.0723 L 90.375 1339.0723 C 101.70874 1244.0389 137.45609 1162.0819 197.61523 1093.2051 C 197.61523 1092.3327 187.58774 1081.434 167.53516 1060.5098 L 128.26367 1020.0098 z M 788.08008 1220.1992 L 788.08008 1570.4219 L 884.72266 1570.4219 L 884.72266 1220.1992 L 788.08008 1220.1992 z M -9.0175781 1435.8516 C -0.30373683 1562.2034 42.378774 1671.1354 119.02344 1762.6504 C 123.10398 1757.7902 144.54373 1735.5725 189.76953 1689.5664 C 132.22629 1618.0742 99.095736 1533.5023 90.376953 1435.8516 L -9.0175781 1435.8516 z M 119.02344 1762.6504 C 118.54144 1763.2245 115.13261 1766.7266 115.22461 1766.7266 L 119.14648 1762.8027 C 119.10448 1762.7527 119.06539 1762.7007 119.02344 1762.6504 z M 788.08008 1672.3789 L 788.08008 2022.6035 L 884.72266 2022.6035 L 884.72266 1672.3789 L 788.08008 1672.3789 z M 259.08398 1762.8027 L 189.76953 1832.1172 C 287.41883 1914.9444 396.40478 1960.2832 516.72266 1968.1309 L 516.72266 1868.7363 C 423.432 1858.2732 337.55211 1822.9614 259.08398 1762.8027 z " />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
35
srcs/special_font/162.svg
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
version="1.1"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="62.combining.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.19331922"
|
||||||
|
inkscape:cx="160.35653"
|
||||||
|
inkscape:cy="1675.9844"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="svg1" />
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 457 405.05469 L 450 514.05469 C 497.99995 514.05469 536.6667 522.22137 566 538.55469 C 595.3333 554.888 610 579.38805 610 612.05469 C 610 644.05466 597.99998 666.38803 574 679.05469 C 550.00002 691.72134 508.99994 700.38802 451 705.05469 L 482.48242 837.87305 C 378.30073 851.10971 283.30749 892.62964 197.57227 962.63281 L 194.95703 960.01758 C 242.90983 1008.8413 266.88672 1033.6901 266.88672 1034.5625 C 344.48294 974.40397 427.74847 940.83622 516.67773 933.86133 L 516.67773 840.05469 L 623 840.05469 L 611 788.05469 C 654.33329 780.72136 690.33336 763.38799 719 736.05469 C 747.66664 708.72138 762 668.38796 762 615.05469 C 762 551.05475 735.66662 500.05465 683 462.05469 C 630.33338 424.05473 554.9999 405.05469 457 405.05469 z M 788.03711 779.99609 L 788.03711 1130.2207 L 884.67969 1130.2207 L 884.67969 779.99609 L 788.03711 779.99609 z M 121.71875 1026.7148 L 127.9043 1031.6621 L 125.64258 1029.3301 L 121.71875 1026.7148 z M 127.9043 1031.6621 L 128.2207 1031.9883 C 128.2327 1031.9743 128.24581 1031.9593 128.25781 1031.9453 L 127.9043 1031.6621 z M 128.2207 1031.9883 C 48.031893 1123.5232 2.2696387 1229.8799 -9.0625 1351.0508 L 90.332031 1351.0508 C 101.66577 1256.0174 137.41313 1174.0604 197.57227 1105.1836 C 197.57227 1104.3112 187.54477 1093.4126 167.49219 1072.4883 L 128.2207 1031.9883 z M 788.03711 1232.1777 L 788.03711 1582.4004 L 884.67969 1582.4004 L 884.67969 1232.1777 L 788.03711 1232.1777 z M -9.0605469 1447.8301 C -0.34670859 1574.182 42.335805 1683.1139 118.98047 1774.6289 C 123.06101 1769.7687 144.50076 1747.551 189.72656 1701.5449 C 132.18332 1630.0527 99.052766 1545.4808 90.333984 1447.8301 L -9.0605469 1447.8301 z M 118.98047 1774.6289 C 118.49847 1775.203 115.08964 1778.7051 115.18164 1778.7051 L 119.10352 1774.7812 C 119.06152 1774.7313 119.02242 1774.6792 118.98047 1774.6289 z M 788.03711 1684.3574 L 788.03711 2034.582 L 884.67969 2034.582 L 884.67969 1684.3574 L 788.03711 1684.3574 z M 259.04102 1774.7812 L 189.72656 1844.0957 C 287.37586 1926.9229 396.36181 1972.2617 516.67969 1980.1094 L 516.67969 1880.7148 C 423.38903 1870.2518 337.50914 1834.9399 259.04102 1774.7812 z " />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.1 KiB |
42
srcs/special_font/200.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_verticle_tilde.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="371.08093"
|
||||||
|
inkscape:cy="528.96319"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 729.01953 1637.9062 C 673.81839 1637.9062 629.59877 1626.6276 596.35938 1604.0723 C 562.52642 1582.1105 545.60938 1551.2451 545.60938 1511.4766 C 545.60938 1475.2694 556.88806 1441.4372 579.44336 1409.9785 C 601.99866 1379.1134 613.27539 1351.5118 613.27539 1327.1758 C 613.27539 1314.1174 607.63703 1301.9495 596.35938 1290.6719 C 584.48816 1279.9878 568.16525 1274.6465 547.39062 1274.6465 L 547.39062 1172.2559 C 669.66411 1172.2559 730.80078 1216.7745 730.80078 1305.8086 C 730.80078 1342.0158 720.71036 1376.145 700.5293 1408.1973 C 679.75468 1440.8431 669.36719 1468.4427 669.36719 1490.998 C 669.36719 1520.6761 689.25097 1535.5156 729.01953 1535.5156 L 729.01953 1637.9062 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
42
srcs/special_font/201.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_inverted_breve.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="354.94698"
|
||||||
|
inkscape:cy="731.79004"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 638.20508 1465.1797 C 556.29371 1465.1797 491.59618 1442.9213 444.11133 1398.4043 C 396.03292 1354.4808 371.99219 1297.4972 371.99219 1227.457 L 505.54492 1227.457 C 505.54492 1262.4771 515.63535 1293.0454 535.81641 1319.1621 C 555.40391 1345.8723 589.53311 1359.2285 638.20508 1359.2285 C 685.68993 1359.2285 719.81913 1345.8723 740.59375 1319.1621 C 760.77481 1293.0454 770.86523 1262.4771 770.86523 1227.457 L 904.41797 1227.457 C 904.41797 1297.4972 880.6743 1354.4808 833.18945 1398.4043 C 785.7046 1442.9213 720.71 1465.1797 638.20508 1465.1797 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.3 KiB |
42
srcs/special_font/202.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_pokrytie.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="354.94698"
|
||||||
|
inkscape:cy="862.01409"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 539.37695 1555.1035 C 460.43339 1555.1035 399.59379 1537.2972 356.85742 1501.6836 C 314.12106 1466.07 292.75195 1419.1787 292.75195 1361.0098 L 292.75195 1328.957 L 406.7168 1328.957 L 406.7168 1344.9824 C 406.7168 1377.6283 418.88472 1401.669 443.2207 1417.1016 C 467.55669 1433.1277 496.04753 1441.1406 528.69336 1441.1406 C 586.8623 1441.1406 633.15942 1431.6424 667.58594 1412.6484 C 702.01245 1394.2481 733.76905 1375.8476 762.85352 1357.4473 C 791.93799 1339.0469 827.55056 1329.8477 869.69336 1329.8477 L 1024.6133 1329.8477 L 1024.6133 1442.9199 L 881.26758 1442.9199 C 849.80887 1442.9199 819.83466 1452.1211 791.34375 1470.5215 C 762.85284 1489.5154 729.31777 1508.2129 690.73633 1526.6133 C 652.15489 1545.6072 601.70082 1555.1035 539.37695 1555.1035 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
42
srcs/special_font/203.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_slavonic_psili.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="327.28877"
|
||||||
|
inkscape:cy="594.65143"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 590.95117 1515.4414 L 591.83984 1390.7949 L 540.20117 1287.5156 L 607.86719 1229.6426 L 752.10156 1405.0391 L 752.10156 1515.4414 L 590.95117 1515.4414 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
42
srcs/special_font/204.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_slavonic_dasia.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="306.54512"
|
||||||
|
inkscape:cy="724.87549"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 484.10938 1515.4414 L 484.10938 1405.0391 L 627.45508 1229.6426 L 696.90039 1287.5156 L 643.48047 1390.7949 L 644.37109 1515.4414 L 484.10938 1515.4414 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
42
srcs/special_font/205.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_payerok.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="306.54512"
|
||||||
|
inkscape:cy="797.47828"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 363.19922 1511.4766 C 357.26361 1437.2815 378.3337 1378.8164 426.41211 1336.0801 C 474.49052 1293.3437 534.14382 1271.9746 605.37109 1271.9746 C 628.51996 1271.9746 651.37243 1275.2404 673.92773 1281.7695 L 645.4375 1175.8184 L 767.41406 1175.8184 L 842.20117 1455.3848 L 720.22461 1455.3848 L 702.41797 1387.7188 C 690.54676 1381.7831 677.4896 1376.7389 663.24414 1372.584 C 648.40513 1369.0226 630.29982 1367.2422 608.93164 1367.2422 C 561.44679 1367.2422 527.91172 1381.7847 508.32422 1410.8691 C 488.73672 1440.5472 479.53554 1474.0822 480.72266 1511.4766 L 363.19922 1511.4766 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.4 KiB |
42
srcs/special_font/206.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_titlo.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="306.54512"
|
||||||
|
inkscape:cy="862.01409"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 818.94531 1532.8457 L 819.83398 1436.6875 L 339.05078 1436.6875 L 338.16016 1229.2383 L 485.95703 1228.3477 L 485.95703 1340.5312 L 965.85156 1340.5312 L 965.85156 1531.9551 L 818.94531 1532.8457 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
42
srcs/special_font/207.svg
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Accent from Roboto font family (Regular). Apache License, Version 2.0. -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
version="1.1"
|
||||||
|
viewBox="-20 0 1168 2048"
|
||||||
|
id="svg1"
|
||||||
|
sodipodi:docname="combining_vzmet.svg"
|
||||||
|
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)"
|
||||||
|
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">
|
||||||
|
<defs
|
||||||
|
id="defs1" />
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="namedview1"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
inkscape:zoom="0.86773523"
|
||||||
|
inkscape:cx="306.54512"
|
||||||
|
inkscape:cy="630.37662"
|
||||||
|
inkscape:window-width="2736"
|
||||||
|
inkscape:window-height="1744"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:current-layer="g1"
|
||||||
|
showgrid="false" />
|
||||||
|
<g
|
||||||
|
transform="matrix(1 0 0 -1 0 1536)"
|
||||||
|
id="g1">
|
||||||
|
<path
|
||||||
|
id="path1"
|
||||||
|
d="M 66.349609 1512.25 L 66.349609 1109.8164 L 207.02344 1109.8164 L 207.02344 1376.918 L 971.82812 1376.918 L 971.82812 1109.8164 L 1113.3926 1109.8164 L 1113.3926 1512.25 L 66.349609 1512.25 z M 788.03711 1185.2168 L 788.03711 834.99219 L 884.67969 834.99219 L 884.67969 1185.2168 L 788.03711 1185.2168 z M 516.67773 1130.7461 C 398.97701 1122.8994 292.60777 1080.1769 197.57227 1002.5801 L 194.95703 1005.1953 C 242.90993 956.37148 266.88672 931.52279 266.88672 930.65039 C 344.4831 990.80905 427.74829 1024.3767 516.67773 1031.3516 L 516.67773 1130.7461 z M 121.71875 938.49805 L 127.9043 933.55078 L 125.64258 935.88281 L 121.71875 938.49805 z M 127.9043 933.55078 L 128.2207 933.22461 C 128.2327 933.23861 128.24581 933.25358 128.25781 933.26758 L 127.9043 933.55078 z M 128.2207 933.22461 C 48.031736 841.68946 2.2696574 735.33327 -9.0625 614.16211 L 90.332031 614.16211 C 101.66579 709.19561 137.41301 791.15231 197.57227 860.0293 C 197.57227 860.90169 187.54481 871.80026 167.49219 892.72461 L 128.2207 933.22461 z M 788.03711 733.03516 L 788.03711 382.8125 L 884.67969 382.8125 L 884.67969 733.03516 L 788.03711 733.03516 z M -9.0605469 517.38281 C -0.34668428 391.03067 42.33567 282.0991 118.98047 190.58398 C 123.06103 195.44428 144.50066 217.66175 189.72656 263.66797 C 132.1832 335.16023 99.052758 419.73191 90.333984 517.38281 L -9.0605469 517.38281 z M 118.98047 190.58398 C 118.49847 190.00988 115.08964 186.50781 115.18164 186.50781 L 119.10352 190.43164 C 119.06152 190.48164 119.02242 190.53368 118.98047 190.58398 z M 788.03711 280.85547 L 788.03711 -69.369141 L 884.67969 -69.369141 L 884.67969 280.85547 L 788.03711 280.85547 z M 259.04102 190.43164 L 189.72656 121.11719 C 287.37606 38.28995 396.36157 -7.0488004 516.67969 -14.896484 L 516.67969 84.498047 C 423.38885 94.961125 337.5093 130.27286 259.04102 190.43164 z " />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.0 KiB |
61
test/juloo.keyboard2/KeyValueParserTest.java
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
package juloo.keyboard2;
|
||||||
|
|
||||||
|
import juloo.keyboard2.KeyValue;
|
||||||
|
import juloo.keyboard2.KeyValueParser;
|
||||||
|
import org.junit.Test;
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
|
public class KeyValueParserTest
|
||||||
|
{
|
||||||
|
public KeyValueParserTest() {}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void parseStr() throws Exception
|
||||||
|
{
|
||||||
|
Utils.parse(":str:'Foo'", KeyValue.makeStringKey("Foo"));
|
||||||
|
Utils.parse(":str flags='dim':'Foo'", KeyValue.makeStringKey("Foo", KeyValue.FLAG_SECONDARY));
|
||||||
|
Utils.parse(":str symbol='Symbol':'Foo'", KeyValue.makeStringKeyWithSymbol("Foo", "Symbol", 0));
|
||||||
|
Utils.parse(":str symbol='Symbol' flags='dim':'Foo'", KeyValue.makeStringKeyWithSymbol("Foo", "Symbol", KeyValue.FLAG_SECONDARY));
|
||||||
|
Utils.parse(":str flags='dim,small':'Foo'", KeyValue.makeStringKey("Foo", KeyValue.FLAG_SECONDARY | KeyValue.FLAG_SMALLER_FONT));
|
||||||
|
Utils.parse(":str flags=',,':'Foo'", KeyValue.makeStringKey("Foo")); // Unintentional
|
||||||
|
Utils.expect_error(":unknown:Foo"); // Unknown kind
|
||||||
|
Utils.expect_error(":str:Foo"); // Unquoted string
|
||||||
|
Utils.expect_error(":str flags:'Foo'"); // Malformed flags
|
||||||
|
Utils.expect_error(":str flags=dim:'Foo'"); // Unquoted flags
|
||||||
|
Utils.expect_error(":str unknown='foo':'Foo'"); // Unknown flags
|
||||||
|
// Unterminated
|
||||||
|
Utils.expect_error(":str");
|
||||||
|
Utils.expect_error(":str ");
|
||||||
|
Utils.expect_error(":str flags");
|
||||||
|
Utils.expect_error(":str flags=");
|
||||||
|
Utils.expect_error(":str flags='");
|
||||||
|
Utils.expect_error(":str flags='' ");
|
||||||
|
Utils.expect_error(":str flags='':");
|
||||||
|
Utils.expect_error(":str flags='':'");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void parseChar() throws Exception
|
||||||
|
{
|
||||||
|
Utils.parse(":char symbol='a':b", KeyValue.makeCharKey('b', "a", 0));
|
||||||
|
Utils.parse(":char:b", KeyValue.makeCharKey('b', "b", 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** JUnit removes these functions from stacktraces. */
|
||||||
|
static class Utils
|
||||||
|
{
|
||||||
|
static void parse(String key_descr, KeyValue ref) throws Exception
|
||||||
|
{
|
||||||
|
assertEquals(ref, KeyValueParser.parse(key_descr));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void expect_error(String key_descr)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
fail("Expected failure but got " + KeyValueParser.parse(key_descr));
|
||||||
|
}
|
||||||
|
catch (KeyValueParser.ParseError e) {}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|