tizen 2.3 release
[apps/home/settings.git] / setting-font / include / setting-font.h
1 /*
2  * setting
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
5  *
6  * Contact: MyoungJune Park <mj2004.park@samsung.com>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 #ifndef __SETTING_FONT_H__
22 #define __SETTING_FONT_H__
23
24 #include <stdio.h>
25 #include <Elementary.h>
26
27 #include <glib-object.h>
28
29 #include <setting-common-draw-widget.h>
30 #include <setting-common-view.h>
31 #include <system_settings.h>
32
33 typedef struct _SettingFontUG SettingFontUG;
34
35 typedef enum
36 {
37         FONT_SIZE_AND_FONT_SEL_UG,
38         FONT_SEL_VIEW_APPCONTROL,
39         FONT_SIZE_VIEW_APPCONTROL,
40 }FontUGViewMode;
41
42 typedef enum
43 {
44         SELECTED_FONT_CHANGE_NONE,
45         SELECTED_FONT_CHANGE_IN_PROCESS,
46         SELECTED_FONT_CHANGE_DONE
47 }FontChangStatus;
48
49 typedef enum
50 {
51         FONT_EXPAND_STATE_NONE,
52         FONT_EXPAND_STATE_FONT_TYPE,
53         FONT_EXPAND_STATE_FONT_SIZE,
54 }FontExpandState;
55
56
57 /**
58  * Setting Font UG context
59  * all UG function has void* as an agument. this is casted back to SettingFontUG
60  * and the functions access app context.
61  */
62 struct _SettingFontUG {
63         ui_gadget_h ug;
64
65         /* add more variables here (move your appdata to here) */
66         Evas *evas;
67         Evas_Object *win_main_layout;
68         Evas_Object *win_get;
69
70         Evas_Object *ly_main;
71
72         Evas_Object *genlist;
73         Evas_Object *navibar;
74         Elm_Object_Item *navi_it_font;
75         Elm_Object_Item *navi_it_font_size;
76
77
78         /* font setting */
79         Evas_Object *main_popup;
80         Evas_Object *size_popup;
81
82         Elm_Genlist_Item_Class itc_2text_3_parent;
83         Elm_Genlist_Item_Class itc_1icon_1text_sub;
84         Elm_Genlist_Item_Class itc_1text_1icon_2;
85         Elm_Genlist_Item_Class itc_1text_1icon_2_font_size;
86         Elm_Genlist_Item_Class itc_2text_2;
87         Elm_Genlist_Item_Class itc_group_item;
88         Elm_Genlist_Item_Class itc_bg_1icon;
89         Elm_Genlist_Item_Class itc_seperator;
90
91         Setting_GenGroupItem_Data *subitem;
92         Setting_GenGroupItem_Data *font_type;
93         Setting_GenGroupItem_Data *font_size;
94
95         // font type
96         int prev_font;
97         char *font_name;
98
99         int ret_font_size;
100
101         FontUGViewMode viewmode;
102
103         // Font Size & Sel
104         Evas_Object *size_rdg;
105         setting_view *view_to_load;
106
107         Elm_Object_Item *cur_focus_item;
108         Eina_List *font_type_list;
109
110         Ecore_Timer *font_size_idler;
111         Ecore_Timer *font_type_timer;
112
113         FontChangStatus font_change_status;
114         FontExpandState font_expand_state;
115 };
116
117 extern setting_view setting_view_font_main;
118 extern setting_view setting_view_font_font_size;
119
120
121 #endif                          /* __SETTING_FONT_H__ */