2 * Copyright 2012 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.tizenopensource.org/license
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include "mcfconfig.h"
20 #include "mcfstructs.h"
21 #include "mcfkeydefines.h"
22 #include <Ecore_IMF.h>
24 /* This prevents "deprecated conversion" warnings.. */
25 #pragma GCC diagnostic ignored "-Wwrite-strings"
27 #ifndef __MCF_RESOURCE_H__
28 #define __MCF_RESOURCE_H__
30 #define FONT_PROPERTIES_FILE "fontprop.dat"
32 #define PORTRAIT_DEFAULT_BG_IMG "textinput_panel_bg.png"
33 #define LANDSCAPE_DEFAULT_BG_IMG "textinput_panel_land_bg.png"
35 #define POPUP_BG_IMG "B09_bg_Popup.png"
37 #define RESOURCE_DATA_LABEL_LEN 10
38 #define RESOURCE_DATA_IMG_PATH_LEN 50
39 #define RESOURCE_DATA_KEY_VALUE_LEN 8
40 #define RESOURCE_DATA_AUTOPOPUP_KEY_LEN 4
42 /* User defined key list */
43 typedef enum _MCFUserDefinedKey {
44 UD_MVK_START = (MVK_RESERVED_KEY + 1), /* KEY_TYPE_CONTROL */
53 UD_MVK_PREDICTION_ONOFF,
62 UD_MVK_COMPLETION_MUL_abc,
63 UD_MVK_COMPLETION_MUL_Abc,
64 UD_MVK_COMPLETION_MUL_ABC,
68 #ifdef SUPPORTS_VOICE_INPUT
71 UD_MVK_END /* End of the user defined key value*/
74 /* Custom ID for setting private keys */
83 SUBLAYOUTID_NONE = -1,
84 SUBLAYOUTID_DEFAULT = 0,
85 SUBLAYOUTID_WITH_VOICE,
94 /**@brief Layout definition */
95 typedef enum _MCFLayout {
97 LYT_PORTRAIT_4X4_DEFAULT = 0,
99 LYT_PORTRAIT_4X4_IPv6_123,
100 LYT_PORTRAIT_4X4_IPv6_ABC,
101 LYT_PORTRAIT_4X4_NUMONLY,
102 LYT_PORTRAIT_4X4_MONTH,
103 LYT_PORTRAIT_QTY_DEFAULT,
104 LYT_PORTRAIT_AZT_DEFAULT,
105 LYT_PORTRAIT_QTY_URL,
106 LYT_PORTRAIT_QTY_EMAIL,
108 LYT_PORTRAIT_QTY_RUSSIAN,
109 LYT_LANDSCAPE_QTY_RUSSIAN,
110 /*Landscape Layouts*/
111 LYT_LANDSCAPE_QTY_DEFAULT,
112 LYT_LANDSCAPE_AZT_FRENCH,
113 LYT_LANDSCAPE_QTY_URL,
114 LYT_LANDSCAPE_QTY_EMAIL,
115 LYT_LANDSCAPE_4X4_NUM,
116 LYT_LANDSCAPE_4X4_PASSWD,
117 LYT_LANDSCAPE_4X4_IPv6_123,
118 LYT_LANDSCAPE_4X4_IPv6_ABC,
119 LYT_LANDSCAPE_4X4_NUMONLY,
122 LYT_PORTRAIT_4X4_TEXTMODE_POPUP,
124 LYT_PUNCTUATION_POPUP,
131 extern McfLayout mcf_layout[MAX_LAYOUT];
133 /**@brief Input Mode definition */
134 typedef enum _MCFInputMode {
135 /* base input mode */
136 INPUT_MODE_4X4_ENGLISH = 0,
138 INPUT_MODE_4X4_SYM_1,
139 INPUT_MODE_4X4_SYM_2,
140 INPUT_MODE_4X4_SYM_3,
141 INPUT_MODE_4X4_SYM_4,
142 INPUT_MODE_4X4_SYM_5,
143 INPUT_MODE_4X4_TELEPHONE,
145 INPUT_MODE_4X4_EMAIL,
146 INPUT_MODE_4X4_PASSWD,
147 INPUT_MODE_4X4_IPv6_123,
148 INPUT_MODE_4X4_IPv6_ABC,
149 INPUT_MODE_4X4_NUMONLY,
150 INPUT_MODE_4X4_MONTH,
152 INPUT_MODE_4X4_FRENCH,
153 INPUT_MODE_4X4_SPANISH,
154 INPUT_MODE_4X4_ITALIAN,
155 INPUT_MODE_4X4_DUTCH,
156 INPUT_MODE_4X4_PORTUGUESE,
157 INPUT_MODE_4X4_GERMAN,
159 INPUT_MODE_4X4_TURKISH,
160 INPUT_MODE_4X4_GREEK,
161 INPUT_MODE_4X4_RUSSIAN,
163 INPUT_MODE_QTY_ENGLISH,
165 INPUT_MODE_QTY_EMAIL,
166 INPUT_MODE_QTY_SYM_1,
167 INPUT_MODE_QTY_SYM_2,
168 INPUT_MODE_QTY_SYM_3,
169 INPUT_MODE_QTY_SYM_4,
171 INPUT_MODE_QTY_FRENCH,
172 /* Below 5 modes are equivalent to english mode */
173 INPUT_MODE_QTY_SPANISH,
174 INPUT_MODE_QTY_ITALIAN,
175 INPUT_MODE_QTY_DUTCH,
176 INPUT_MODE_QTY_PORTUGUESE,
177 INPUT_MODE_QTY_GERMAN,
179 INPUT_MODE_QTY_TURKISH,
180 INPUT_MODE_QTY_GREEK,
181 INPUT_MODE_QTY_RUSSIAN,
186 extern McfInputModeConfigure mcf_input_mode_configure[MAX_INPUT_MODE];
188 typedef enum _MCFInputModePopup {
189 /* add popup input mode */
190 INPUT_MODE_4X4_TEXTMODE_POPUP,
191 INPUT_MODE_PUNCTUATION_POPUP,
192 INPUT_MODE_EMOTICON_POPUP,
193 INPUT_MODE_URL_POPUP,
194 INPUT_MODE_SCENETEXT_POPUP,
198 extern McfInputModePopupConfigure mcf_input_mode_popup_configure[MAX_INPUT_MODE_POPUP];
199 extern mcfboolean mcf_sublayout_support_table[MAX_INPUT_MODE][SUBLAYOUTID_MAX];
201 #define DEFAULT_FONT_NAME "SLP:style=medium"
202 #define DEFAULT_FONT_SIZE 40
204 typedef enum _MCFLabelProperties {
205 LABEL_PROPERTIES_4X4_DEFAULT_TYPE = 0,
206 LABEL_PROPERTIES_4X4_SIDE_BUTTON_TYPE,
207 LABEL_PROPERTIES_4X4_SIDE_UIITEM_TYPE,
208 LABEL_PROPERTIES_4X4_SOFTKEYBAR_TYPE,
209 LABEL_PROPERTIES_4X4_NUM_TYPE,
210 LABEL_PROPERTIES_4X4_SYM_PAGELABEL,
211 LABEL_PROPERTIES_QTY_DEFAULT_TYPE,
212 LABEL_PROPERTIES_QTY_BOTTOM_LINE_TYPE,
213 LABEL_PROPERTIES_QTY_BOTTOM_LINE_IMAGE_TYPE,
214 LABEL_PROPERTIES_TEXTMODE_POPUP_TYPE,
215 LABEL_PROPERTIES_4X4_ASTERISK_TYPE,
216 LABEL_PROPERTIES_QTY_WWW_TYPE,
217 LABEL_PROPERTIES_4x4_WWW_TYPE,
218 LABEL_PROPERTIES_LANGNAME,
219 LABEL_PROPERTIES_LAND_DEFAULT_TYPE,
220 LABEL_PROPERTIES_LAND_DEFAULT_IMAGE_TYPE,
221 LABEL_PROPERTIES_LAND_MODE_CHANGE_LABEL_TYPE,
222 LABEL_PROPERTIES_LAND_SYMBOL_LABEL_TYPE,
223 LABEL_PROPERTIES_LAND_WWW_TYPE,
224 LABEL_PROPERTIES_4X4_INDIC_TYPE,
225 LABEL_PROPERTIES_4x4_MONTH_TYPE,
226 LABEL_PROPERTIES_LAND_IP_ABC,
227 LABEL_PROPERTIES_LAND_MONTH,
229 LABEL_PROPERTIES_PUNTUATION_BUTTON_TYPE,
230 LABEL_PROPERTIES_QTY_SPACE_KEY_TYPE,
231 LABEL_PROPERTIES_QTY_DOT_BUTTON_TYPE,
232 LABEL_PROPERTIES_QTY_NUM_DEFAULT_TYPE,
237 #define COLOR_1 { 255, 255, 255, 255}
238 #define COLOR_2 { 0, 0, 0 , 255}
239 #define COLOR_25 { 0, 186, 255 , 255}
240 #define COLOR_61 { 28, 31, 36 , 255}
241 #define COLOR_49 { 36, 36, 36 , 255}
242 #define COLOR_18 { 0, 161, 253 , 255}
243 #define COLOR_71 { 75, 75, 75, 255}
245 #define COLOR_242 { 255, 255, 255, 255}
246 #define COLOR_PRESSED { 226, 226, 226, 255}
247 #define COLOR_LIGHTGRAY { 150, 150, 150, 255}
248 #define COLOR_SPACE { 255, 255, 255, 255}
250 #define COLOR_LABEL_PRESSED { 120, 120, 120, 255 }
251 #define COLOR_LABEL_DISABLED { 96, 96, 96, 255 }
253 #define COLOR_NORMAL {40,40,40,255}
254 #define COLOR_NORMAL_LONGKEY {150,150,150,255}
255 #define COLOR_SHIFT_STATE_COLOR {255,180,0,255}
256 #define COLOR_FUNCTION { 255, 255, 255, 255}
257 #define COLOR_PHONENUMBER_TEXT { 150,150,150,255 }
258 #define COLOR_DISABLED { 178, 178, 178, 255 }
260 static McfLabelProperties mcf_key_label_properties[MAX_LABEL_PROPERTIES][MAX_SIZE_OF_LABEL_FOR_ONE] = {
261 /* fValid, fontName, fontSize, normalColor, activeColor, selectedColor, alignment, padding, shadowDistance, shadowDirection, shadowColor */
262 /* LABEL_PROPERTIES_4X4_DEFAULT_TYPE */
264 {USED, DEFAULT_FONT_NAME, 30,
266 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
267 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
268 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
270 LABEL_ALIGN_CENTER_TOP, 0, 10},
271 {USED, DEFAULT_FONT_NAME, 21,
273 {COLOR_PHONENUMBER_TEXT, COLOR_PRESSED, COLOR_LABEL_DISABLED},
274 {COLOR_PHONENUMBER_TEXT, COLOR_PRESSED, COLOR_LABEL_DISABLED},
275 {COLOR_PHONENUMBER_TEXT, COLOR_PRESSED, COLOR_LABEL_DISABLED},
276 },LABEL_ALIGN_CENTER_TOP, 0, 42},
279 /* LABEL_PROPERTIES_4X4_SIDE_BUTTON_TYPE*/
281 {USED, DEFAULT_FONT_NAME, 35,
283 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
284 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
285 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
286 },LABEL_ALIGN_CENTER_MIDDLE, 0},
289 /* LABEL_PROPERTIES_4X4_SIDE_UIITEM_TYPE*/
291 {USED, DEFAULT_FONT_NAME, 35,
293 {COLOR_DISABLED, COLOR_DISABLED, COLOR_DISABLED},
294 {COLOR_DISABLED, COLOR_DISABLED, COLOR_DISABLED},
295 {COLOR_DISABLED, COLOR_DISABLED, COLOR_DISABLED},
297 LABEL_ALIGN_CENTER_MIDDLE, 0},
300 /* LABEL_PROPERTIES_4X4_SOFTKEYBAR_TYPE*/
302 {USED, DEFAULT_FONT_NAME, 24,
304 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
305 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
306 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
307 },LABEL_ALIGN_CENTER_MIDDLE, 0},
310 /* LABEL_PROPERTIES_4X4_NUM_TYPE*/
312 {USED, DEFAULT_FONT_NAME, 44,
314 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
315 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
316 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
317 },LABEL_ALIGN_CENTER_MIDDLE, 0},
320 /* LABEL_PROPERTIES_4X4_SYM_PAGELABEL*/
322 {USED, DEFAULT_FONT_NAME, 30,
324 {COLOR_242, COLOR_242, COLOR_LABEL_DISABLED},
325 {COLOR_242, COLOR_242, COLOR_LABEL_DISABLED},
326 {COLOR_242, COLOR_242, COLOR_LABEL_DISABLED},
327 },LABEL_ALIGN_CENTER_MIDDLE, 0},
330 /* LABEL_PROPERTIES_QTY_DEFAULT_TYPE */
332 {USED, DEFAULT_FONT_NAME, 42,
334 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
335 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
336 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
338 LABEL_ALIGN_CENTER_MIDDLE, 0},
339 {USED, DEFAULT_FONT_NAME, 23,
341 {COLOR_NORMAL_LONGKEY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
342 {COLOR_NORMAL_LONGKEY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
343 {COLOR_NORMAL_LONGKEY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
345 LABEL_ALIGN_RIGHT_TOP, 8, 2},
348 /* LABEL_PROPERTIES_QTY_BOTTOM_LINE_TYPE */
350 {USED, DEFAULT_FONT_NAME, 26,
352 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
353 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
354 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
355 },LABEL_ALIGN_CENTER_MIDDLE, 0},
356 {USED, DEFAULT_FONT_NAME, 28,
358 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
359 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
360 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
361 },LABEL_ALIGN_CENTER_TOP, 0, 10},
362 {USED, DEFAULT_FONT_NAME, 42,
364 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
365 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
366 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
367 },LABEL_ALIGN_CENTER_BOTTOM, 0, 10},
370 /* LABEL_PROPERTIES_QTY_BOTTOM_LINE_IMAGE_TYPE */
372 {USED, DEFAULT_FONT_NAME, 22,
374 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
375 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
376 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
377 },LABEL_ALIGN_CENTER_BOTTOM, 10, 6},
380 /* LABEL_PROPERTIES_TEXTMODE_POPUP_TYPE */
382 {USED, DEFAULT_FONT_NAME, 22,
384 {COLOR_49, COLOR_PRESSED, COLOR_LABEL_DISABLED},
385 {COLOR_49, COLOR_PRESSED, COLOR_LABEL_DISABLED},
386 {COLOR_49, COLOR_PRESSED, COLOR_LABEL_DISABLED},
387 },LABEL_ALIGN_CENTER_MIDDLE, 0},
390 /* LABEL_PROPERTIES_4X4_ASTERISK_TYPE */
392 {USED, DEFAULT_FONT_NAME, 34,
394 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
395 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
396 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
397 },LABEL_ALIGN_CENTER_MIDDLE, 0},
398 {USED, DEFAULT_FONT_NAME, 34,
400 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
401 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
402 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
403 },LABEL_ALIGN_LEFT_MIDDLE, 30, 5},
404 {USED, DEFAULT_FONT_NAME, 34,
406 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
407 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
408 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
409 },LABEL_ALIGN_CENTER_MIDDLE, 15, 0},
412 /* LABEL_PROPERTIES_QTY_WWW_TYPE */
414 {USED, DEFAULT_FONT_NAME, 32,
416 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
417 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
418 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
419 },LABEL_ALIGN_CENTER_MIDDLE, 0},
423 /* LABEL_PROPERTIES_4x4_WWW_TYPE */
425 {USED, DEFAULT_FONT_NAME, 32,
427 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
428 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
429 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
430 },LABEL_ALIGN_CENTER_MIDDLE, 0},
433 /* LABEL_PROPERTIES_LANGNAME */
435 {USED, DEFAULT_FONT_NAME, 20,
437 {COLOR_LABEL_PRESSED, COLOR_PRESSED, COLOR_LABEL_DISABLED},
438 {COLOR_LABEL_PRESSED, COLOR_PRESSED, COLOR_LABEL_DISABLED},
439 {COLOR_LABEL_PRESSED, COLOR_PRESSED, COLOR_LABEL_DISABLED},
440 },LABEL_ALIGN_LEFT_MIDDLE, 0},
444 /*LABEL_PROPERTIES_LAND_DEFAULT_TYPE*/
446 {USED, DEFAULT_FONT_NAME, 42,
448 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
449 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
450 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
451 }, LABEL_ALIGN_CENTER_MIDDLE, 0},
452 {USED, DEFAULT_FONT_NAME, 23,
454 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
455 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
456 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
457 },LABEL_ALIGN_RIGHT_TOP, 7, 2},
462 /*LABEL_PROPERTIES_LAND_DEFAULT_IMAGE_TYPE*/
464 {USED, DEFAULT_FONT_NAME, 26,
466 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
467 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
468 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
469 },LABEL_ALIGN_RIGHT_MIDDLE, 20, 10},
473 /*LABEL_PROPERTIES_LAND_MODE_CHANGE_LABEL_TYPE*/
475 {USED, DEFAULT_FONT_NAME, 32,
477 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
478 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
479 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
480 }, LABEL_ALIGN_CENTER_MIDDLE, 0},
484 /*LABEL_PROPERTIES_LAND_SYMBOL_LABEL_TYPE*/
486 {USED, DEFAULT_FONT_NAME, 42,
488 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
489 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
490 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
491 },LABEL_ALIGN_CENTER_BOTTOM, 0, 5},
492 {USED, DEFAULT_FONT_NAME, 28,
494 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
495 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
496 {COLOR_LIGHTGRAY, COLOR_PRESSED, COLOR_LABEL_DISABLED},
497 },LABEL_ALIGN_CENTER_TOP, 0, 5},
498 {USED, DEFAULT_FONT_NAME, 42,
500 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
501 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
502 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
503 },LABEL_ALIGN_CENTER_BOTTOM, 0, 5},
507 /* LABEL_PROPERTIES_LAND_WWW_TYPE */
509 {USED, DEFAULT_FONT_NAME, 30,
511 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
512 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
513 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
514 }, LABEL_ALIGN_CENTER_MIDDLE, 0},
517 /* LABEL_PROPERTIES_4X4_INDIC_TYPE */
519 {USED, DEFAULT_FONT_NAME, 30,
521 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
522 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
523 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
525 LABEL_ALIGN_CENTER_TOP, 0, 10},
526 {USED, DEFAULT_FONT_NAME, 21,
528 {COLOR_PHONENUMBER_TEXT, COLOR_PRESSED, COLOR_LABEL_DISABLED},
529 {COLOR_PHONENUMBER_TEXT, COLOR_PRESSED, COLOR_LABEL_DISABLED},
530 {COLOR_PHONENUMBER_TEXT, COLOR_PRESSED, COLOR_LABEL_DISABLED},
531 },LABEL_ALIGN_CENTER_TOP, 0, 42},
534 /* LABEL_PROPERTIES_4X4_MONTH_TYPE */
536 {USED, DEFAULT_FONT_NAME, 32,
538 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
539 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
540 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
542 LABEL_ALIGN_CENTER_MIDDLE, 0},
545 /* LABEL_PROPERTIES_LAND_IP_ABC */
547 {USED, DEFAULT_FONT_NAME, 44,
549 {COLOR_FUNCTION, COLOR_PRESSED, COLOR_LABEL_DISABLED},
550 {COLOR_FUNCTION, COLOR_PRESSED, COLOR_LABEL_DISABLED},
551 {COLOR_FUNCTION, COLOR_PRESSED, COLOR_LABEL_DISABLED},
553 LABEL_ALIGN_CENTER_MIDDLE, 0},
556 /* LABEL_PROPERTIES_LAND_MONTH */
558 {USED, DEFAULT_FONT_NAME, 32,
560 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
561 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
562 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
564 LABEL_ALIGN_CENTER_MIDDLE, 0},
567 /* LABEL_PROPERTIES_PUNTUATION_BUTTON_TYPE*/
569 {USED, DEFAULT_FONT_NAME, 48,
571 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
572 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
573 {COLOR_242, COLOR_PRESSED, COLOR_LABEL_DISABLED},
574 }, LABEL_ALIGN_CENTER_MIDDLE, 0},
577 /* LABEL_PROPERTIES_QTY_SPACE_KEY_TYPE */
579 {TRUE, DEFAULT_FONT_NAME, 25,
581 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
582 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
583 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
585 LABEL_ALIGN_CENTER_MIDDLE, 0},
586 {TRUE, DEFAULT_FONT_NAME, 25,
588 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
589 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
590 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
592 LABEL_ALIGN_LEFT_TOP, 9, 0},
593 {TRUE, DEFAULT_FONT_NAME, 25,
595 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
596 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
597 {COLOR_SPACE, COLOR_PRESSED, COLOR_DISABLED},
599 LABEL_ALIGN_RIGHT_TOP, 9, 0},
602 /* LABEL_PROPERTIES_QTY_DOT_BUTTON_TYPE */
604 {USED, DEFAULT_FONT_NAME, 56,
606 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
607 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
608 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
610 LABEL_ALIGN_CENTER_BOTTOM, 0, 9},
613 /* LABEL_PROPERTIES_QTY_NUM_DEFAULT_TYPE */
615 {USED, DEFAULT_FONT_NAME, 30,
617 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
618 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
619 {COLOR_NORMAL, COLOR_PRESSED, COLOR_LABEL_DISABLED},
621 LABEL_ALIGN_CENTER_MIDDLE, 0},
626 typedef enum _McfKeyset {
628 KEYSET_PORTRAIT_4X4_ENGLISH = 0,
629 KEYSET_PORTRAIT_4X4_NUM,
630 KEYSET_PORTRAIT_4X4_SYM_1,
631 KEYSET_PORTRAIT_4X4_SYM_2,
632 KEYSET_PORTRAIT_4X4_SYM_3,
633 KEYSET_PORTRAIT_4X4_SYM_4,
634 KEYSET_PORTRAIT_4X4_SYM_5,
635 KEYSET_PORTRAIT_4x4_TELEPHONE,
636 KEYSET_PORTRAIT_4X4_URL,
637 KEYSET_PORTRAIT_4X4_EMAIL,
638 KEYSET_PORTRAIT_4X4_PASSWD,
639 KEYSET_PORTRAIT_4X4_IPv6_123,
640 KEYSET_PORTRAIT_4X4_IPv6_ABC,
641 KEYSET_PORTRAIT_4X4_NUMONLY,
642 KEYSET_PORTRAIT_4X4_MONTH,
644 KEYSET_PORTRAIT_4X4_FRENCH,
645 KEYSET_PORTRAIT_4X4_SPANISH,
646 KEYSET_PORTRAIT_4X4_ITALIAN,
647 KEYSET_PORTRAIT_4X4_DUTCH,
648 KEYSET_PORTRAIT_4X4_PORTUGUESE,
649 KEYSET_PORTRAIT_4X4_GERMAN,
651 KEYSET_PORTRAIT_4X4_TURKISH,
652 KEYSET_PORTRAIT_4X4_GREEK,
653 KEYSET_PORTRAIT_4X4_RUSSIAN,
655 KEYSET_PORTRAIT_QTY_ENGLISH,
656 KEYSET_PORTRAIT_QTY_URL,
657 KEYSET_PORTRAIT_QTY_EMAIL,
658 KEYSET_PORTRAIT_QTY_SYM_1,
659 KEYSET_PORTRAIT_QTY_SYM_2,
660 KEYSET_PORTRAIT_QTY_SYM_3,
661 KEYSET_PORTRAIT_QTY_SYM_4,
663 KEYSET_PORTRAIT_QTY_FRENCH,
664 KEYSET_PORTRAIT_QTY_SPANISH,
665 KEYSET_PORTRAIT_QTY_ITALIAN,
666 KEYSET_PORTRAIT_QTY_DUTCH,
667 KEYSET_PORTRAIT_QTY_PORTUGUESE,
668 KEYSET_PORTRAIT_QTY_GERMAN,
670 KEYSET_PORTRAIT_QTY_TURKISH,
671 KEYSET_PORTRAIT_QTY_GREEK,
672 KEYSET_PORTRAIT_QTY_RUSSIAN,
674 KEYSET_LANDSCAPE_QTY_ENGLISH,
675 KEYSET_LANDSCAPE_QTY_URL,
676 KEYSET_LANDSCAPE_QTY_EMAIL,
678 KEYSET_LANDSCAPE_QTY_FRENCH,
679 KEYSET_LANDSCAPE_QTY_SPANISH,
680 KEYSET_LANDSCAPE_QTY_ITALIAN,
681 KEYSET_LANDSCAPE_QTY_DUTCH,
682 KEYSET_LANDSCAPE_QTY_PORTUGUESE,
683 KEYSET_LANDSCAPE_QTY_GERMAN,
685 KEYSET_LANDSCAPE_QTY_TURKISH,
686 KEYSET_LANDSCAPE_QTY_GREEK,
687 KEYSET_LANDSCAPE_QTY_RUSSIAN,
689 KEYSET_LANDSCAPE_4X4_NUM,
690 KEYSET_LANDSCAPE_4X4_PASSWD,
691 KEYSET_LANDSCAPE_4X4_IPv6_123,
692 KEYSET_LANDSCAPE_4X4_IPv6_ABC,
693 KEYSET_LANDSCAPE_4X4_NUMONLY,
694 KEYSET_LANDSCAPE_4X4_MONTH,
696 KEYSET_EMOTICON_POPUP,
697 KEYSET_PUNCTUATION_POPUP,
699 KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4,
704 static McfLayoutKeyset mcf_layout_keyset[] = {
706 {INPUT_MODE_4X4_ENGLISH, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_ENGLISH},
707 {INPUT_MODE_4X4_NUM, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_NUM},
708 {INPUT_MODE_4X4_SYM_1, LYT_PORTRAIT_4X4_SYM, KEYSET_PORTRAIT_4X4_SYM_1},
709 {INPUT_MODE_4X4_SYM_2, LYT_PORTRAIT_4X4_SYM, KEYSET_PORTRAIT_4X4_SYM_2},
710 {INPUT_MODE_4X4_SYM_3, LYT_PORTRAIT_4X4_SYM, KEYSET_PORTRAIT_4X4_SYM_3},
711 {INPUT_MODE_4X4_SYM_4, LYT_PORTRAIT_4X4_SYM, KEYSET_PORTRAIT_4X4_SYM_4},
712 {INPUT_MODE_4X4_SYM_5, LYT_PORTRAIT_4X4_SYM, KEYSET_PORTRAIT_4X4_SYM_5},
713 {INPUT_MODE_4X4_TELEPHONE, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4x4_TELEPHONE},
714 {INPUT_MODE_4X4_URL, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_URL},
715 {INPUT_MODE_4X4_EMAIL, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_EMAIL},
716 {INPUT_MODE_4X4_PASSWD, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_PASSWD},
717 {INPUT_MODE_4X4_IPv6_123, LYT_PORTRAIT_4X4_IPv6_123, KEYSET_PORTRAIT_4X4_IPv6_123},
718 {INPUT_MODE_4X4_IPv6_ABC, LYT_PORTRAIT_4X4_IPv6_ABC, KEYSET_PORTRAIT_4X4_IPv6_ABC},
719 {INPUT_MODE_4X4_NUMONLY, LYT_PORTRAIT_4X4_NUMONLY, KEYSET_PORTRAIT_4X4_NUMONLY},
720 {INPUT_MODE_4X4_MONTH, LYT_PORTRAIT_4X4_MONTH, KEYSET_PORTRAIT_4X4_MONTH},
722 {INPUT_MODE_4X4_FRENCH, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_FRENCH},
723 {INPUT_MODE_4X4_SPANISH, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_SPANISH},
724 {INPUT_MODE_4X4_ITALIAN, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_ITALIAN},
725 {INPUT_MODE_4X4_DUTCH, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_DUTCH},
726 {INPUT_MODE_4X4_PORTUGUESE, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_PORTUGUESE},
727 {INPUT_MODE_4X4_GERMAN, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_GERMAN},
729 {INPUT_MODE_4X4_TURKISH, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_TURKISH},
730 {INPUT_MODE_4X4_GREEK, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_GREEK},
731 {INPUT_MODE_4X4_RUSSIAN, LYT_PORTRAIT_4X4_DEFAULT, KEYSET_PORTRAIT_4X4_RUSSIAN},
734 {INPUT_MODE_QTY_ENGLISH, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_ENGLISH},
735 {INPUT_MODE_QTY_URL, LYT_PORTRAIT_QTY_URL, KEYSET_PORTRAIT_QTY_URL},
736 {INPUT_MODE_QTY_EMAIL, LYT_PORTRAIT_QTY_EMAIL, KEYSET_PORTRAIT_QTY_EMAIL},
737 {INPUT_MODE_QTY_SYM_1, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_1},
738 {INPUT_MODE_QTY_SYM_2, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_2},
739 {INPUT_MODE_QTY_SYM_3, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_3},
740 {INPUT_MODE_QTY_SYM_4, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_4},
742 {INPUT_MODE_QTY_FRENCH, LYT_PORTRAIT_AZT_DEFAULT, KEYSET_PORTRAIT_QTY_FRENCH},
743 {INPUT_MODE_QTY_SPANISH, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SPANISH},
744 {INPUT_MODE_QTY_ITALIAN, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_ITALIAN},
745 {INPUT_MODE_QTY_DUTCH, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_DUTCH},
746 {INPUT_MODE_QTY_PORTUGUESE, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_PORTUGUESE},
747 {INPUT_MODE_QTY_GERMAN, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_GERMAN},
749 {INPUT_MODE_QTY_TURKISH, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_TURKISH},
750 {INPUT_MODE_QTY_GREEK, LYT_PORTRAIT_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_GREEK},
751 {INPUT_MODE_QTY_RUSSIAN, LYT_PORTRAIT_QTY_RUSSIAN, KEYSET_PORTRAIT_QTY_RUSSIAN},
754 {INPUT_MODE_4X4_ENGLISH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_ENGLISH},
756 {INPUT_MODE_4X4_FRENCH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_FRENCH},
757 {INPUT_MODE_4X4_SPANISH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_SPANISH},
758 {INPUT_MODE_4X4_ITALIAN, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_ITALIAN},
759 {INPUT_MODE_4X4_DUTCH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_DUTCH},
760 {INPUT_MODE_4X4_PORTUGUESE, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_PORTUGUESE},
761 {INPUT_MODE_4X4_GERMAN, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_GERMAN},
763 {INPUT_MODE_4X4_TURKISH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_TURKISH},
764 {INPUT_MODE_4X4_GREEK, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_GREEK},
765 {INPUT_MODE_4X4_RUSSIAN, LYT_LANDSCAPE_QTY_RUSSIAN, KEYSET_LANDSCAPE_QTY_RUSSIAN},
767 {INPUT_MODE_4X4_NUM, LYT_LANDSCAPE_4X4_NUM, KEYSET_LANDSCAPE_4X4_NUM},
768 {INPUT_MODE_4X4_TELEPHONE, LYT_LANDSCAPE_4X4_NUM, KEYSET_LANDSCAPE_4X4_NUM},
770 {INPUT_MODE_4X4_SYM_1, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_1},
771 {INPUT_MODE_4X4_SYM_2, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_1},
772 {INPUT_MODE_4X4_SYM_3, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_1},
773 {INPUT_MODE_4X4_SYM_4, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_1},
774 {INPUT_MODE_4X4_SYM_5, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_1},
776 {INPUT_MODE_4X4_URL, LYT_LANDSCAPE_QTY_URL, KEYSET_LANDSCAPE_QTY_URL},
777 {INPUT_MODE_4X4_EMAIL, LYT_LANDSCAPE_QTY_URL, KEYSET_LANDSCAPE_QTY_EMAIL},
778 {INPUT_MODE_4X4_PASSWD, LYT_LANDSCAPE_4X4_PASSWD, KEYSET_LANDSCAPE_4X4_PASSWD},
779 {INPUT_MODE_4X4_IPv6_123, LYT_LANDSCAPE_4X4_IPv6_123, KEYSET_LANDSCAPE_4X4_IPv6_123},
780 {INPUT_MODE_4X4_IPv6_ABC, LYT_LANDSCAPE_4X4_IPv6_ABC, KEYSET_LANDSCAPE_4X4_IPv6_ABC},
781 {INPUT_MODE_4X4_NUMONLY, LYT_LANDSCAPE_4X4_NUMONLY, KEYSET_LANDSCAPE_4X4_NUMONLY},
782 {INPUT_MODE_4X4_MONTH, LYT_LANDSCAPE_4X4_NUM, KEYSET_LANDSCAPE_4X4_MONTH},
784 {INPUT_MODE_QTY_ENGLISH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_ENGLISH},
785 {INPUT_MODE_QTY_URL, LYT_LANDSCAPE_QTY_URL, KEYSET_LANDSCAPE_QTY_URL},
786 {INPUT_MODE_QTY_EMAIL, LYT_LANDSCAPE_QTY_EMAIL, KEYSET_LANDSCAPE_QTY_EMAIL},
788 {INPUT_MODE_QTY_FRENCH, LYT_LANDSCAPE_AZT_FRENCH, KEYSET_LANDSCAPE_QTY_FRENCH},
789 {INPUT_MODE_QTY_SPANISH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_SPANISH},
790 {INPUT_MODE_QTY_ITALIAN, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_ITALIAN},
791 {INPUT_MODE_QTY_DUTCH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_DUTCH},
792 {INPUT_MODE_QTY_PORTUGUESE, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_PORTUGUESE},
793 {INPUT_MODE_QTY_GERMAN, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_GERMAN},
795 {INPUT_MODE_QTY_TURKISH, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_TURKISH},
796 {INPUT_MODE_QTY_GREEK, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_LANDSCAPE_QTY_GREEK},
797 {INPUT_MODE_QTY_RUSSIAN, LYT_LANDSCAPE_QTY_RUSSIAN, KEYSET_LANDSCAPE_QTY_RUSSIAN},
800 {INPUT_MODE_QTY_SYM_1, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_1},
801 {INPUT_MODE_QTY_SYM_2, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_2},
802 {INPUT_MODE_QTY_SYM_3, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_3},
803 {INPUT_MODE_QTY_SYM_4, LYT_LANDSCAPE_QTY_DEFAULT, KEYSET_PORTRAIT_QTY_SYM_4},
806 {INPUT_MODE_4X4_ENGLISH, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
808 {INPUT_MODE_4X4_NUM, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
810 {INPUT_MODE_4X4_FRENCH, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
811 {INPUT_MODE_4X4_SPANISH, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
812 {INPUT_MODE_4X4_ITALIAN, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
813 {INPUT_MODE_4X4_DUTCH, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
814 {INPUT_MODE_4X4_PORTUGUESE, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
815 {INPUT_MODE_4X4_GERMAN, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
817 {INPUT_MODE_4X4_TURKISH, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
818 {INPUT_MODE_4X4_GREEK, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
819 {INPUT_MODE_4X4_RUSSIAN, LYT_PORTRAIT_4X4_TEXTMODE_POPUP, KEYSET_PORTRAIT_TEXTMODEPOPUP_4X4},
821 {INPUT_MODE_QTY_ENGLISH, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
822 {INPUT_MODE_QTY_FRENCH, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
823 {INPUT_MODE_QTY_SPANISH, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
824 {INPUT_MODE_QTY_ITALIAN, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
825 {INPUT_MODE_QTY_DUTCH, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
826 {INPUT_MODE_QTY_PORTUGUESE, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
827 {INPUT_MODE_QTY_GERMAN, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
828 {INPUT_MODE_QTY_TURKISH, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
829 {INPUT_MODE_QTY_GREEK, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
830 {INPUT_MODE_QTY_RUSSIAN, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
832 {INPUT_MODE_QTY_ENGLISH, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
833 {INPUT_MODE_QTY_FRENCH, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
834 {INPUT_MODE_QTY_SPANISH, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
835 {INPUT_MODE_QTY_ITALIAN, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
836 {INPUT_MODE_QTY_DUTCH, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
837 {INPUT_MODE_QTY_PORTUGUESE, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
838 {INPUT_MODE_QTY_GERMAN, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
839 {INPUT_MODE_QTY_TURKISH, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
840 {INPUT_MODE_QTY_GREEK, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
841 {INPUT_MODE_QTY_RUSSIAN, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
843 {INPUT_MODE_QTY_URL, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
844 {INPUT_MODE_QTY_EMAIL, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
845 {INPUT_MODE_QTY_SYM_1, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
846 {INPUT_MODE_QTY_SYM_2, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
847 {INPUT_MODE_QTY_SYM_3, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
848 {INPUT_MODE_QTY_SYM_4, LYT_PUNCTUATION_POPUP, KEYSET_PUNCTUATION_POPUP},
850 {INPUT_MODE_QTY_URL, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
851 {INPUT_MODE_QTY_EMAIL, LYT_EMOTICON_POPUP, KEYSET_EMOTICON_POPUP},
853 {INPUT_MODE_QTY_URL, LYT_URL_POPUP, KEYSET_URL_POPUP},
854 {INPUT_MODE_QTY_EMAIL, LYT_URL_POPUP, KEYSET_URL_POPUP},
855 {INPUT_MODE_QTY_ENGLISH, LYT_URL_POPUP, KEYSET_URL_POPUP},
856 {INPUT_MODE_QTY_SYM_1, LYT_URL_POPUP, KEYSET_URL_POPUP},
857 {INPUT_MODE_QTY_SYM_2, LYT_URL_POPUP, KEYSET_URL_POPUP},
858 {INPUT_MODE_QTY_SYM_3, LYT_URL_POPUP, KEYSET_URL_POPUP},
859 {INPUT_MODE_QTY_SYM_4, LYT_URL_POPUP, KEYSET_URL_POPUP},
860 {INPUT_MODE_QTY_FRENCH, LYT_URL_POPUP, KEYSET_URL_POPUP},
861 {INPUT_MODE_QTY_SPANISH, LYT_URL_POPUP, KEYSET_URL_POPUP},
862 {INPUT_MODE_QTY_ITALIAN, LYT_URL_POPUP, KEYSET_URL_POPUP},
863 {INPUT_MODE_QTY_DUTCH, LYT_URL_POPUP, KEYSET_URL_POPUP},
864 {INPUT_MODE_QTY_PORTUGUESE, LYT_URL_POPUP, KEYSET_URL_POPUP},
865 {INPUT_MODE_QTY_GERMAN, LYT_URL_POPUP, KEYSET_URL_POPUP},
866 {INPUT_MODE_QTY_TURKISH, LYT_URL_POPUP, KEYSET_URL_POPUP},
867 {INPUT_MODE_QTY_GREEK, LYT_URL_POPUP, KEYSET_URL_POPUP},
868 {INPUT_MODE_QTY_RUSSIAN, LYT_URL_POPUP, KEYSET_URL_POPUP},
873 static McfSWButtonStyle mcf_swbutton_style[] = {
876 {{255, 255, 255},{255, 255, 255}},
877 {{155, 155, 155},{255, 0, 0}},
883 typedef enum _McfSWButtonStyleSet {
885 }McfSWButtonStyleSet;
887 const McfDefaultConfigure mcf_default_configure = {
889 INPUT_MODE_QTY_ENGLISH,
896 {TOUCH_OFFSET_LEVEL_1,TOUCH_OFFSET_LEVEL_2},
900 static McfLabelProperties CAND_LABEL_PROP = {
901 USED, DEFAULT_FONT_NAME, DEFAULT_FONT_SIZE, {{0 , 0, 0, 255}, {0, 0, 255, 255}}, LABEL_ALIGN_CENTER_MIDDLE
904 static McfLabelProperties ZOOMING_LABEL_PROP = {
905 USED, DEFAULT_FONT_NAME, 80, {{0 , 0, 0, 255}, {0, 0, 255, 255}}, LABEL_ALIGN_CENTER_MIDDLE
908 static McfLabelProperties AUTOPOPUP_LABEL_PROP = {
909 USED, DEFAULT_FONT_NAME, 54, {
910 {{255, 255, 255, 255}, COLOR_SHIFT_STATE_COLOR},
911 {COLOR_SHIFT_STATE_COLOR, { 255, 255, 255, 255}},
912 {COLOR_SHIFT_STATE_COLOR, { 255, 255, 255, 255}},
913 }, LABEL_ALIGN_CENTER_MIDDLE, 0, 0
916 extern McfAutoPopupConfigure mcf_autopopup_configure;
917 extern McfDimWndConfigure mcf_dim_window_configure;
919 #define MAX_PRELOAD_IMG_CNT 0
920 static const mcfchar* mcf_preload_image[MAX_PRELOAD_IMG_CNT] = {
923 static const McfNinePatchInfo mcf_nine_patch_info[] = {
924 {"textinput_moa_button1_nml.png", 3, 3, 3, 3},
925 {"textinput_moa_button1_function.png", 3, 3, 3, 3},
926 {"textinput_moa_button1_press.png", 3, 3, 3, 3},
927 {"textinput_moa_button1_press_drag.png", 3, 3, 3, 3},
928 {"textinput_moa_button1_press_drag_back.png", 3, 3, 3, 3},
929 {"textinput_moa_button1_press_drag_back_Diagonal.png", 3, 3, 3, 3},
930 {"textinput_moa_button2_nml.png", 3, 3, 3, 3},
931 {"textinput_moa_button2_press.png", 3, 3, 3, 3},
932 {"textinput_moa_button2_press_drag.png", 3, 3, 3, 3},
933 {"textinput_moa_button2_press_drag_back.png", 3, 3, 3, 3},
934 {"textinput_qwerty_button_nml.png", 3, 3, 3, 3},
935 {"textinput_qwerty_button_function.png", 3, 3, 3, 3},
936 {"textinput_qwerty_button_press.png", 3, 3, 3, 3},
937 {"textinput_qwerty_button_capslock_press.png", 3, 3, 3, 3},
938 {"textinput_bottom_button_nml.png", 3, 3, 3, 3},
939 {"textinput_bottom_button_function.png", 3, 3, 3, 3},
940 {"textinput_bottom_button_press.png", 3, 3, 3, 3},
941 {"textinput_popup_button_nml.png", 3, 3, 3, 3},
942 {"textinput_popup_button_press.png", 3, 3, 3, 3},
943 {"textinput_3x4_button_nml.png", 3, 3, 3, 3},
944 {"textinput_3x4_button_function.png", 3, 3, 3, 3},
945 {"textinput_3x4_button_press.png", 3, 3, 3, 3},
946 {"textinput_land_button_nml.png", 3, 3, 3, 3},
947 {"textinput_land_button_function.png", 3, 3, 3, 3},
948 {"textinput_land_button_press.png", 3, 3, 3, 3},
949 {"textinput_land_button_capslock_press.png", 3, 3, 3, 3},
950 {"textinput_land_button_press_drag.png", 3, 3, 3, 3},
951 {"textinput_land_button_press_drag_back.png", 3, 3, 3, 3},
952 {"B09_bg_Popup.png", 13, 13, 9, 9},
953 {"B09_bubble_bg.png", 7, 7, 9, 9},
954 {"B09_key_btn_01.png", 8, 8, 0, 0},
955 {"B09_key_btn_02.png", 8, 8, 0, 0},
956 {"B09_key_btn_press.png", 8, 8, 0, 0},
957 {"B09_Qwerty_btn_01.png", 8, 8, 0, 0},
958 {"B09_Qwerty_btn_02.png", 8, 8, 0, 0},
959 {"B09_Qwerty_btn_press.png", 8, 8, 0, 0},
960 {"B09_Qwerty_l_btn_01.png", 8, 8, 0, 0},
961 {"B09_Qwerty_l_btn_02.png", 8, 8, 0, 0},
962 {"B09_Qwerty_l_btn_press.png", 8, 8, 0, 0},
965 typedef enum _MCFModifierDecoration {
966 MODIFIER_DECORATION_NONE = 0, // The 0 value decoration will never be drawn
967 MODIFIER_DECORATION_NUM
968 }MCFModifierDecoration;
970 extern McfModifierDecoration mcf_modifier_decoration[MODIFIER_DECORATION_NUM];
972 const mcfdouble DEFAULT_SW_BTN_RECTANGLE_RADIUS = 10;