Cách tạo một skin cho Resco Keyboard
RKbdSkin
Skin là thư mục con của thư mục “Skins” trong thư mục cài đặt. Skin được thiết kế để hỗ trợ cho cả QVGA (240x320) và VGA (480x640).Cần có 2 thư mục “MySkin” và “MySkin_VGA”. Tùy theo thiết bị QVGA hay VGA,thư mục thứ hai sẽ bị xóa.
Thư mục skin chứa các mục sau:
* Skin.ini :file mô tả
* Các file .PNG
* KeyZoom.png: button xem trước(chủ yếu dùng cho Use Corrections giống như CHM keyboard)
Các file ảnh:
Default.png:Chữ
NumSmall.png:Số
NumLarge.png:Số lớn
Fx.png:Nhóm từ thường sử dụng
Calc.png:Calculator
KeyZoom.png:Button xem trước
Skin của bạn có các ảnh dùng chung cho QVGA và VGA (chung cho landscape mode nếu không thiết kế thêm):
Default_L.png, NumSmall_L.png, NumLarge_L.png, Fx_L.png, Calc_L.png
Image
Thí dụ đây là file của Touch
Blue skin
Ảnh trong skin là file có định dạng .PNG . It is recommended to save it as “indexed color” PNG image (having 8-bit color palette) to save the storage. 24-bit (true-color) PNG images are also supported.
Mỗi PNG có 3 phần xếp theo chiều ngang và có kích thước như nhau:
1. Mặt nạ mã
2. Ảnh phím chưa nhấn
3. Ảnh phím đã nhấn
1. Map section
Mặt nạ mã là ảnh .PNG . Nó được sử dụng nếu file Skin.ini đặt giá trị HasMap = 1 trong phần [General].
Mặt nạ mã sẽ xác định internal code cho mỗi phím. Nếu không sử dụng mặt nạ mã,file Skin.ini sẽ phải mô tả các phím trong ảnh .PNG (xem Skin.ini).
Mặt nạ mã có biên màu đen (RGB 0,0,0) và màu RGB cho mỗi phím. R = 255, G = 0, và B là internal code. Mã này xác định trong file .MAP .
Thí dụ: Lấy skin có tên là “Default” để minh họa. Vùng đỏ thứ hai phía trên (khoanh tròn) có màu RGB là 255,0,2. Hãy xem trong Languages\US.map ( US English keyboard layout). Dòng thứ hai là “2 1 ! ¿ ¿”. Có nghĩa phím có màu RGB là 255,0,2 có internal code là 2 và đó là số “1” (US) (là “!” khi nhấn “Shift” và “¿” khi nhấn “áÜ”).
Keyboard Map
2. Normal section
Mỗi ảnh PNG phải có Normal section. Tiếp theo là ảnh khi phím bị nhấn.Hiện tại không hỗ trợ transparency
3. Pressed state section
Trạng thái bị nhấn được sủ dụng khi giá trị HasPressedState được đặt bằng 1 trong [General] section. Mỗi phím là một hình chữ nhật xác định trong file Skin.ini . Nếu phím khôn phải là hinh chữ nhật (như phím Enter trong Default skin), phím này sẽ được xác định bằng mặt nạ mã
Skin.ini file
[General] section
HasMap(0/1)(1 - nếu dùng mặt nạ mã (xem default skin)
HasPressedState (0/1) trạng thái bị nhấn
LandscapeSupport(0/1)(1 - sử dụng riêng cho landscape mode(có phần đuôi là “_L” )
TextColor(màu chữ: hệ thập phân hoặc hecxa)
CalcResultColor(Màu kết quả tính toán hệ thập phân hoặc hecxa)
ModifSwitchColor(hệ thập phân hoặc hecxa)
NoDiakrColor(hệ thập phân hoặc hecxa)
HideLabels(0/1)ẩn nhãn
ButtonPreview(0/1)skin hỗ trợ xem trước button ( KeyZoom.png)
CharsReturnFromNum(0/1) numeric layout đóng lại khi gõ ký tự không phải số
IncompatibleLanguages:danh sách các ngôn ngữ không phù hợp (không hiện đầy đủ các ký tự)
AzertyFix; sử lỗi cho French/Belgian layout (đặt "m" thay cho ",")
[Font] section
Mặc định của font(có thể thay đổi trong Options)
Size
Font size (height)
Bold (0/1)Bold font
ClearType (0/1)
PNG layout section
Cách xác định một phím InternalCode=x,y,width,height.
Thí dụ: Bạn có button “q” trong Default.png ở vị trí 1,8 có chiều rộng 20 và cao 30 (pixel). Ở mục [Default] trong file Skin.ini sẽ có 1 dòng:
16=1,8,20,30
(16 là mã cho “q” (xem US.map)).
Internal codes
Internal codes là số sử dụng để xác định button. Nó được xác định bởi file Skin.ini hoặc file .PNG của mặt nạ mã.
Mỗi ngôn ngữ được xác định bằng file MAP trong thư mục “Languages”. Numeric modes, Fx modes và Calculator sử dụng file .map riêng (xem bên dưới).
Text mode (internal codes for Default.png)
Bảng sau đây cho danh sách internal codes cho tiếng Anh Mỹ( English US):
1 123 (Num mode)
2 “1”
3 “2”
4 “3”
5 “4”
6 “5
7 “6”
8 “7”
9 “8”
10 “9”
11 “0”
12 “-“
13 “=”
14 Bksp/Del
15 Tab
16 “q”
17 “w”
18 “e”
19 “r”
20 “t”
21 “y”
22 “u”
23 “i”
24 “o”
25 “p”
26 “[“
27 “]”
28 CAPS
29 “a”
30 “s”
31 “d”
32 “f”
33 “g”
34 “h”
35 “j”
36 “k”
37 “l”
38 “;”
39 “'”
40 Enter
41 Shift
42 “z”
43 “x”
44 “c”
45 “v”
46 “b”
47 “n”
48 “m”
49 “,”
50 “.:
51 “/”
52 Ctrl
53 Fx
54 “áÜ” modifier
55 “`”
56 “\”
57 Lang switch
58 Down
59 Up
60 Left
61 Right
62 Modif Switch (see iSkin)
Numeric mode (internal codes for SmallNum.png and LargeNum.png)
Các số sử dụng internal codes đặc biệt. They are defined in the Numeric map. Xem danh sách sau:
1 abc (Text mode)
2 [
3 ]
4 {
5 }
6 7
7 8
8 9
9 #
10 %
11 =
12 Bksp
13 Calc
14 ,
15 .
16 <
17 >
18 4
19 5
20 6
21 +
22 -
23 *
24 /
25 ±
26 °
27 :
28 \
29 |
30 1
31 2
32 3
33 Down
34 Up
35 Left
36 Right
37 $
38 ¢
39 €
40 £
41 ¥
42 (
43 0
44 )
45 Tab
46 Space
47 Enter
63 &
64 @
65 "
66 ?
67 !
68 '
Calculator mode (internal codes cho Calc.png)
Máy tính sử dụng internal codes sau đây:
1 abc (Text mode)
2 write mode
3 Result box
4 MS
5 M+
6 MC
7 MR
8 Bksp
9 C
10 CE
11 7
12 8
13 9
14 4
15 5
16 6
17 1
18 2
19 3
20 +/-
21 0
22 .
23 /
24 1/x
25 *
26 %
27 –
28 √
29 +
30 =
64 123 (Num mode)
Fx mode (internal codes cho Fx.png)
Fx mode có internal codes là:1, 2, …, 12.
Appendix A – Thí dụ file Skin.ini
[General]
HasMap=0
HasPressedState=0
LandscapeSupport=1
TextColor=0
CalcResultColor=0
ModifSwitchColor=0xFFFFFF
NoDiakrColor=0xA0A0A0
HideLabels=1
ButtonPreview=1
CharsReturnFromNum=1
IncompatibleLanguages=AR,BG,CS,IL,JP,RU,TA,TH,UA
AzertyFix=1
[Font]
Size=12
Bold=1
ClearType=1
[Default]
16=1,8,20,30
17=25,8,20,30
…
(xem Skins\iSkin\Skin.ini)
[NumSmall]
30=1,2,22,38
31=25,2,22,38
…
(xem Skins\iSkin\Skin.ini)
[Calc]
11=120,6,22,34
12=144,6,22,34
…
(xem Skins\iSkin\Skin.ini)
[Default_L]
16=1,7,27,27
17=33,7,27,27
…
(xem Skins\iSkin\Skin.ini)
[Default_L]
16=1,7,27,27
17=33,7,27,27
…
(xem Skins\iSkin\Skin.ini)
[NumSmall_L]
30=0,2,30,34
31=32,2,30,34
…
(xem Skins\iSkin\Skin.ini)
[Calc_L]
11=160,6,29,29
12=192,6,29,29
...
(xem Skins\iSkin\Skin.ini