diff options
| author | Jules Aguillon | 2024-01-28 19:38:29 +0100 |
|---|---|---|
| committer | Jules Aguillon | 2024-01-28 19:38:29 +0100 |
| commit | bbc622683961a04a2e3fd41d043ad54855c6c131 (patch) | |
| tree | 27b75ad4dd6306363eb0bca5832248151ed504fe | |
| parent | c5f2c0b727c0ef70a76e897402e0247f148553fc (diff) | |
| download | unexpected-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.xml | 4 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Config.java | 15 | ||||
| -rw-r--r-- | srcs/juloo.keyboard2/Keyboard2View.java | 12 |
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) |
