abouttreesummaryrefslogcommitdiff
path: root/srcs/juloo.keyboard2/Theme.java
blob: 60c9b880c8bd6f13665afffa863c1eb15a447c2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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);
  }
}