abouttreesummaryrefslogcommitdiff
diff options
context:
space:
mode:
authorJules Aguillon2024-01-28 19:38:29 +0100
committerJules Aguillon2024-01-28 19:38:29 +0100
commitbbc622683961a04a2e3fd41d043ad54855c6c131 (patch)
tree27b75ad4dd6306363eb0bca5832248151ed504fe
parentc5f2c0b727c0ef70a76e897402e0247f148553fc (diff)
downloadunexpected-keyboard-bbc622683961a04a2e3fd41d043ad54855c6c131.tar.gz
unexpected-keyboard-bbc622683961a04a2e3fd41d043ad54855c6c131.zip
Redefined the key margin options in percent
Define the key margin options relative to the baseline dimensions of keys. This removes the doubling of the horizontal margin in landscape mode.
-rw-r--r--res/xml/settings.xml4
-rw-r--r--srcs/juloo.keyboard2/Config.java15
-rw-r--r--srcs/juloo.keyboard2/Keyboard2View.java12
3 files changed, 16 insertions, 15 deletions
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index f5a7eed..eedac32 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -44,7 +44,7 @@
<juloo.keyboard2.prefs.IntSlideBarPreference android:key="horizontal_margin_landscape" android:title="@string/pref_landscape" android:summary="%sdp" android:defaultValue="28" min="0" max="200"/>
</PreferenceScreen>
<juloo.keyboard2.prefs.SlideBarPreference android:key="character_size" android:title="@string/pref_character_size_title" android:summary="@string/pref_character_size_summary" android:defaultValue="1.0" min="0.75" max="1.5"/>
- <juloo.keyboard2.prefs.IntSlideBarPreference android:key="key_vertical_space" android:title="@string/pref_key_vertical_space" android:summary="%sdp" android:defaultValue="2" min="0" max="8"/>
- <juloo.keyboard2.prefs.IntSlideBarPreference android:key="key_horizontal_space" android:title="@string/pref_key_horizontal_space" android:summary="%sdp" android:defaultValue="2" min="0" max="8"/>
+ <juloo.keyboard2.prefs.SlideBarPreference android:key="key_vertical_margin" android:title="@string/pref_key_vertical_space" android:summary="%s%%" android:defaultValue="1.5" min="0" max="5"/>
+ <juloo.keyboard2.prefs.SlideBarPreference android:key="key_horizontal_margin" android:title="@string/pref_key_horizontal_space" android:summary="%s%%" android:defaultValue="2" min="0" max="5"/>
</PreferenceCategory>
</PreferenceScreen>
diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java
index b24210e..d41e6fc 100644
--- a/srcs/juloo.keyboard2/Config.java
+++ b/srcs/juloo.keyboard2/Config.java
@@ -47,8 +47,8 @@ public final class Config
public float margin_bottom;
public float keyHeight;
public float horizontal_margin;
- public float keyVerticalInterval;
- public float keyHorizontalInterval;
+ public float key_vertical_margin;
+ public float key_horizontal_margin;
public int labelBrightness; // 0 - 255
public int keyboardOpacity; // 0 - 255
public int keyOpacity; // 0 - 255
@@ -105,8 +105,6 @@ public final class Config
// The height of the keyboard is relative to the height of the screen.
// This is the height of the keyboard if it have 4 rows.
int keyboardHeightPercent;
- // Scale some dimensions depending on orientation
- float horizontalIntervalScale = 1.f;
float characterSizeScale = 1.f;
String show_numpad_s = _prefs.getString("show_numpad", "never");
show_numpad = "always".equals(show_numpad_s);
@@ -115,7 +113,6 @@ public final class Config
if ("landscape".equals(show_numpad_s))
show_numpad = true;
keyboardHeightPercent = _prefs.getInt("keyboard_height_landscape", 50);
- horizontalIntervalScale = 2.f;
characterSizeScale = 1.25f;
}
else
@@ -139,16 +136,16 @@ public final class Config
longPressTimeout = _prefs.getInt("longpress_timeout", 600);
longPressInterval = _prefs.getInt("longpress_interval", 65);
margin_bottom = get_dip_pref_oriented(dm, "margin_bottom", 7, 3);
- keyVerticalInterval = get_dip_pref(dm, "key_vertical_space", 2);
- keyHorizontalInterval = get_dip_pref(dm, "key_horizontal_space", 2) * horizontalIntervalScale;
+ key_vertical_margin = get_dip_pref(dm, "key_vertical_margin", 1.5f) / 100;
+ key_horizontal_margin = get_dip_pref(dm, "key_horizontal_margin", 2) / 100;
// Label brightness is used as the alpha channel
labelBrightness = _prefs.getInt("label_brightness", 100) * 255 / 100;
// Keyboard opacity
keyboardOpacity = _prefs.getInt("keyboard_opacity", 100) * 255 / 100;
keyOpacity = _prefs.getInt("key_opacity", 100) * 255 / 100;
keyActivatedOpacity = _prefs.getInt("key_activated_opacity", 100) * 255 / 100;
- // Do not substract keyVerticalInterval from keyHeight because this is done
- // during rendered.
+ // Do not substract key_vertical_margin from keyHeight because this is done
+ // during rendering.
keyHeight = dm.heightPixels * keyboardHeightPercent / 100 / 4;
horizontal_margin =
get_dip_pref_oriented(dm, "horizontal_margin", 3, 28);
diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java
index a4cfeb0..8c9a035 100644
--- a/srcs/juloo.keyboard2/Keyboard2View.java
+++ b/srcs/juloo.keyboard2/Keyboard2View.java
@@ -299,16 +299,20 @@ public class Keyboard2View extends View
_theme.keyBgPaint.setAlpha(_config.keyOpacity);
_theme.keyDownBgPaint.setAlpha(_config.keyActivatedOpacity);
_theme.keyBorderPaint.setAlpha(_config.keyOpacity);
- float y = _config.marginTop + _config.keyVerticalInterval / 2;
+ float key_vertical_margin = _config.key_vertical_margin * _config.keyHeight;
+ float key_horizontal_margin = _config.key_horizontal_margin * _keyWidth;
+ // Add half of the key margin on the left and on the top as it's then added
+ // on the right and on the bottom of every keys.
+ float y = _config.marginTop + key_vertical_margin / 2;
for (KeyboardData.Row row : _keyboard.rows)
{
y += row.shift * _config.keyHeight;
- float x = _config.horizontal_margin + _config.keyHorizontalInterval / 2;
- float keyH = row.height * _config.keyHeight - _config.keyVerticalInterval;
+ float x = _config.horizontal_margin + key_horizontal_margin / 2;
+ float keyH = row.height * _config.keyHeight - key_vertical_margin;
for (KeyboardData.Key k : row.keys)
{
x += k.shift * _keyWidth;
- float keyW = _keyWidth * k.width - _config.keyHorizontalInterval;
+ float keyW = _keyWidth * k.width - key_horizontal_margin;
boolean isKeyDown = _pointers.isKeyDown(k);
drawKeyFrame(canvas, x, y, keyW, keyH, isKeyDown);
if (k.keys[0] != null)