tizen 2.4 release
[apps/home/settings.git] / setting-accessibility / setting-accessibility.c
1 /*
2  * accessibility
3  *
4  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
5  *
6  * Contact: Tomasz Olszak <t.olszak@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
22 #include "setting-accessibility.h"
23 #include <setting-cfg.h>
24 #include <setting-debug.h>
25
26 #ifndef UG_MODULE_API
27 #define UG_MODULE_API __attribute__ ((visibility("default")))
28 #endif
29
30 static void *setting_accessibility_ug_on_create(ui_gadget_h ug,
31                                                                                                 enum ug_mode mode, app_control_h service,
32                                                                                                 void *priv)
33 {
34         SETTING_TRACE_BEGIN;
35         setting_retvm_if((NULL == priv), NULL, "NULL == priv");
36         SettingAccessibilityUG *accessibilityUG = priv;
37         accessibilityUG->ug = ug;
38         accessibilityUG->win_main_layout = (Evas_Object *) ug_get_parent_layout(ug);
39         accessibilityUG->win_get = (Evas_Object *) ug_get_window();
40         evas_object_show(accessibilityUG->win_main_layout);
41         accessibilityUG->evas = evas_object_evas_get(accessibilityUG->win_main_layout);
42
43         setting_retvm_if(accessibilityUG->win_main_layout == NULL, NULL,
44                                          "cannot get main window ");
45         setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);
46
47         /* register view node table */
48         setting_view_node_table_intialize();
49         setting_view_node_table_register(&setting_view_accessibility_main, NULL);
50
51
52         setting_view_node_set_cur_view(&setting_view_accessibility_main);
53         setting_view_create(&setting_view_accessibility_main, (void *)accessibilityUG);
54
55         return accessibilityUG->ly_main;
56 }
57
58 void setting_accessibility_ug_on_start(ui_gadget_h ug, app_control_h app_control, void *priv)
59 {
60         SETTING_TRACE_BEGIN;
61         SETTING_TRACE_END;
62 }
63
64 void setting_accessibility_ug_on_pause(ui_gadget_h ug, app_control_h app_control, void *priv)
65 {
66         SETTING_TRACE_BEGIN;
67         SETTING_TRACE_END;
68 }
69
70 void setting_accessibility_ug_on_resume(ui_gadget_h ug, app_control_h app_control, void *priv)
71 {
72         SETTING_TRACE_BEGIN;
73         SETTING_TRACE_END;
74 }
75
76 void setting_accessibility_ug_on_destroy(ui_gadget_h ug, app_control_h app_control, void *priv)
77 {
78         SETTING_TRACE_BEGIN;
79         SETTING_TRACE_END;
80 }
81
82 void setting_accessibility_ug_on_message(ui_gadget_h ug, app_control_h msg, app_control_h app_control, void *priv)
83 {
84         SETTING_TRACE_BEGIN;
85         SETTING_TRACE_END;
86 }
87 void setting_accessibility_ug_on_event(ui_gadget_h ug, enum ug_event event, app_control_h app_control, void *priv)
88 {
89         SETTING_TRACE_BEGIN;
90         SETTING_TRACE_END;
91 }
92
93 void setting_accessibility_ug_on_key_event(ui_gadget_h ug, enum ug_key_event event,
94                                                                                    app_control_h app_control, void *priv)
95 {
96         SETTING_TRACE_BEGIN;
97         SETTING_TRACE_END;
98 }
99
100 UG_MODULE_API int UG_MODULE_INIT(struct ug_module_ops *ops)
101 {
102         SETTING_TRACE_BEGIN;
103
104         SettingAccessibilityUG *accessibilityUG =
105                 calloc(1, sizeof(SettingAccessibilityUG));
106         setting_retvm_if(!accessibilityUG, -1,
107                                          "Create SettingAccessibilityUG obj failed");
108
109         ops->create = setting_accessibility_ug_on_create;
110         ops->start = setting_accessibility_ug_on_start;
111         ops->pause = setting_accessibility_ug_on_pause;
112         ops->resume = setting_accessibility_ug_on_resume;
113         ops->destroy = setting_accessibility_ug_on_destroy;
114         ops->message = setting_accessibility_ug_on_message;
115         ops->event = setting_accessibility_ug_on_event;
116         ops->key_event = setting_accessibility_ug_on_key_event;
117         ops->priv = accessibilityUG;
118         ops->opt = UG_OPT_INDICATOR_ENABLE;
119
120         SETTING_TRACE_END;
121         return 0;
122 }
123
124 UG_MODULE_API void UG_MODULE_EXIT(struct ug_module_ops *ops)
125 {
126         SETTING_TRACE_BEGIN;
127
128         struct SettingAccessibilityUG *accessibilityUG;
129         setting_retm_if(!ops, "ops == NULL");
130
131         accessibilityUG = ops->priv;
132         if (accessibilityUG) {
133                 FREE(accessibilityUG);
134         }
135
136         SETTING_TRACE_END;
137 }
138
139 UG_MODULE_API int setting_plugin_search_init(app_control_h service, void *priv,
140                                                                                          char **applocale)
141 {
142         SETTING_TRACE_BEGIN;
143         int i, size;
144         Setting_Cfg_Node_T *node;
145         Eina_List **pplist = priv;
146         const Setting_Cfg_Node_T search_configs[] = {
147                 {_(DEVOPTION_STR_ACCESSIBILITY_MAGNIFIER), NULL, NULL, 0, Cfg_Item_unResetable, 0, Cfg_Item_View_Node, NULL, NULL, NULL, NULL},
148                 {_(DEVOPTION_STR_ACCESSIBILITY_SCREENREADER), NULL, NULL, 0, Cfg_Item_unResetable, 0, Cfg_Item_View_Node, NULL, NULL, NULL, NULL},
149         };
150
151         retv_if(NULL == priv, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
152         retv_if(NULL == applocale, SETTING_GENERAL_ERR_NULL_DATA_PARAMETER);
153
154         *applocale = strdup("setting:/usr/apps/org.tizen.setting/res/locale");
155
156         size = sizeof(search_configs) / sizeof(Setting_Cfg_Node_T);
157
158         for (i = 0; i < size; i++) {
159                 node = setting_plugin_search_item_subindex_add(
160                                    search_configs[i].key_name,
161                                    "viewtype:accessibility",
162                                    IMG_USBconnection,
163                                    search_configs[i].item_type,
164                                    search_configs[i].data,
165                                    "Accessibility");
166
167                 *pplist = eina_list_append(*pplist, node);
168         }
169
170         SETTING_TRACE_END;
171         return 0;
172 }
173