aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2011-07-01 22:53:42 +0900
committerTadashi G. Takaoka <takaoka@google.com>2011-07-01 23:02:47 +0900
commit17a1676e7266527eb675525117e24d591d60771e (patch)
treeeb88569078afe14f43103717866a126d6c6efd95 /java/src
parent7f3e5979d7b91b1b614bd377eac2d1d43f5d1914 (diff)
downloadlatinime-17a1676e7266527eb675525117e24d591d60771e.tar.gz
latinime-17a1676e7266527eb675525117e24d591d60771e.tar.xz
latinime-17a1676e7266527eb675525117e24d591d60771e.zip
Add top padding to mini keyboard
Because Key only has bottom padding, to make mini keyboard vertically symmetric and looks nicer, we should add mini keyboard top padding that equals to Key bottom padding (a.k.a. vertical gap). Change-Id: Icceb687d50edfa48e0f0830a60a1e230836c982f
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
index 1e67eec70..0507554a3 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/MiniKeyboardBuilder.java
@@ -43,6 +43,7 @@ public class MiniKeyboardBuilder {
public final int mNumColumns;
public final int mLeftKeys;
public final int mRightKeys; // includes default key.
+ public final int mTopPadding;
/**
* The object holding mini keyboard layout parameters.
@@ -53,14 +54,17 @@ public class MiniKeyboardBuilder {
* @param rowHeight mini keyboard row height in pixel, including vertical gap.
* @param coordXInParent coordinate x of the popup key in parent keyboard.
* @param parentKeyboardWidth parent keyboard width in pixel.
+ * @param topPadding top padding of mini keyboard, maybe equals to vertical gap of the
+ * parent keyboard.
*/
public MiniKeyboardLayoutParams(int numKeys, int maxColumns, int keyWidth, int rowHeight,
- int coordXInParent, int parentKeyboardWidth) {
+ int coordXInParent, int parentKeyboardWidth, int topPadding) {
if (parentKeyboardWidth / keyWidth < maxColumns)
throw new IllegalArgumentException("Keyboard is too small to hold mini keyboard: "
+ parentKeyboardWidth + " " + keyWidth + " " + maxColumns);
mKeyWidth = keyWidth;
mRowHeight = rowHeight;
+ mTopPadding = topPadding;
final int numRows = (numKeys + maxColumns - 1) / maxColumns;
mNumRows = numRows;
@@ -170,7 +174,7 @@ public class MiniKeyboardBuilder {
}
public int getY(int row) {
- return (mNumRows - 1 - row) * mRowHeight;
+ return (mNumRows - 1 - row) * mRowHeight + mTopPadding;
}
public int getRowFlags(int row) {
@@ -183,6 +187,14 @@ public class MiniKeyboardBuilder {
private boolean isTopRow(int rowCount) {
return rowCount == mNumRows - 1;
}
+
+ public int getKeyboardHeight() {
+ return mNumRows * mRowHeight + mTopPadding;
+ }
+
+ public int getKeyboardWidth() {
+ return mNumColumns * mKeyWidth;
+ }
}
public MiniKeyboardBuilder(KeyboardView view, int layoutTemplateResId, Key parentKey,
@@ -199,12 +211,12 @@ public class MiniKeyboardBuilder {
mPopupCharacters.length, parentKey.mMaxPopupColumn,
keyWidth, parentKeyboard.getRowHeight(),
parentKey.mX + (parentKey.mWidth + parentKey.mGap) / 2 - keyWidth / 2,
- view.getMeasuredWidth());
+ view.getMeasuredWidth(), keyboard.getVerticalGap());
mParams = params;
keyboard.setRowHeight(params.mRowHeight);
- keyboard.setHeight(params.mNumRows * params.mRowHeight);
- keyboard.setMinWidth(params.mNumColumns * params.mKeyWidth);
+ keyboard.setHeight(params.getKeyboardHeight());
+ keyboard.setMinWidth(params.getKeyboardWidth());
keyboard.setDefaultCoordX(params.getDefaultKeyCoordX() + params.mKeyWidth / 2);
}