abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/Theme.java
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/juloo.keyboard2/Theme.java')
-rw-r--r--srcs/juloo.keyboard2/Theme.java64
1 files changed, 64 insertions, 0 deletions
diff --git a/srcs/juloo.keyboard2/Theme.java b/srcs/juloo.keyboard2/Theme.java
new file mode 100644
index 0000000..60c9b88
--- /dev/null
+++ b/srcs/juloo.keyboard2/Theme.java
@@ -0,0 +1,64 @@
+package juloo.keyboard2;
+
+import android.content.Context;
+import android.content.res.Resources;
+import android.graphics.Paint;
+import android.graphics.Typeface;
+import android.util.AttributeSet;
+
+public class Theme
+{
+ public final Paint keyBgPaint = new Paint();
+ public final Paint keyDownBgPaint = new Paint();
+ public final int lockedColor;
+ public final int activatedColor;
+ public final int labelColor;
+ public final int subLabelColor;
+ public final float labelTextSize;
+ public final float sublabelTextSize;
+
+ private final Paint _keyLabelPaint;
+ private final Paint _specialKeyLabelPaint;
+ private final Paint _keySubLabelPaint;
+ private final Paint _specialKeySubLabelPaint;
+
+ public Theme(Context context, AttributeSet attrs)
+ {
+ Resources res = context.getResources();
+ lockedColor = res.getColor(R.color.key_label_locked);
+ activatedColor = res.getColor(R.color.key_label_activated);
+ labelColor = res.getColor(R.color.key_label);
+ subLabelColor = res.getColor(R.color.key_sub_label);
+ labelTextSize = res.getDimension(R.dimen.label_text_size);
+ sublabelTextSize = res.getDimension(R.dimen.sublabel_text_size);
+ keyBgPaint.setColor(res.getColor(R.color.key_bg));
+ keyDownBgPaint.setColor(res.getColor(R.color.key_down_bg));
+ _keyLabelPaint = initLabelPaint(Paint.Align.CENTER, null);
+ _keySubLabelPaint = initLabelPaint(Paint.Align.LEFT, null);
+ Typeface specialKeysFont = ((Keyboard2)context).getSpecialKeyFont();
+ _specialKeyLabelPaint = initLabelPaint(Paint.Align.CENTER, specialKeysFont);
+ _specialKeySubLabelPaint = initLabelPaint(Paint.Align.LEFT, specialKeysFont);
+ }
+
+ public Paint labelPaint(boolean special_font)
+ {
+ Paint p = special_font ? _specialKeyLabelPaint : _keyLabelPaint;
+ return p;
+ }
+
+ public Paint subLabelPaint(boolean special_font, boolean align_right)
+ {
+ Paint p = special_font ? _specialKeySubLabelPaint : _keySubLabelPaint;
+ p.setTextAlign(align_right ? Paint.Align.RIGHT : Paint.Align.LEFT);
+ return p;
+ }
+
+ private Paint initLabelPaint(Paint.Align align, Typeface font)
+ {
+ Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
+ paint.setTextAlign(align);
+ if (font != null)
+ paint.setTypeface(font);
+ return (paint);
+ }
+}