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.
17 #include "browser-settings-plugin-view.h"
19 Browser_Settings_Plugin_View::Browser_Settings_Plugin_View(Browser_Settings_Main_View *main_view)
23 ,m_run_plugins_check_button(NULL)
24 ,m_main_view(main_view)
26 BROWSER_LOGD("[%s]", __func__);
29 Browser_Settings_Plugin_View::~Browser_Settings_Plugin_View(void)
31 BROWSER_LOGD("[%s]", __func__);
34 Eina_Bool Browser_Settings_Plugin_View::init(void)
36 BROWSER_LOGD("[%s]", __func__);
38 if (!_create_main_layout()) {
39 BROWSER_LOGE("_create_main_layout failed");
46 void Browser_Settings_Plugin_View::__run_plugins_check_button_changed_cb(void *data,
47 Evas_Object *obj, void *event_info)
49 BROWSER_LOGD("[%s]", __func__);
53 Browser_Settings_Plugin_View *plugin_view = (Browser_Settings_Plugin_View *)data;
55 const char *key = RUN_PLUGINS_KEY;
56 Eina_Bool state = elm_check_state_get(obj);
57 if (vconf_set_bool(key, state) != 0)
58 BROWSER_LOGE("Key: [%s], FAILED\n", key);
61 Evas_Object *Browser_Settings_Plugin_View::__genlist_icon_get(void *data,
62 Evas_Object *obj, const char *part)
67 genlist_callback_data *callback_data = (genlist_callback_data *)data;
68 Browser_Settings_Plugin_View::menu_type type = callback_data->type;
69 Browser_Settings_Plugin_View *plugin_view = (Browser_Settings_Plugin_View *)callback_data->user_data;
70 if (type == BR_RUN_PLUGINS) {
71 if (!strncmp(part, "elm.icon", strlen("elm.icon"))) {
72 plugin_view->m_run_plugins_check_button = elm_check_add(obj);
73 if (!plugin_view->m_run_plugins_check_button) {
74 BROWSER_LOGD("elm_check_add failed");
77 elm_object_style_set(plugin_view->m_run_plugins_check_button, "on&off");
78 evas_object_propagate_events_set(plugin_view->m_run_plugins_check_button, EINA_FALSE);
81 if (vconf_get_bool(RUN_PLUGINS_KEY, &run_plugins) < 0)
82 BROWSER_LOGE("vconf_get_bool failed");
83 elm_check_state_set(plugin_view->m_run_plugins_check_button, run_plugins);
84 evas_object_smart_callback_add(plugin_view->m_run_plugins_check_button, "changed",
85 __run_plugins_check_button_changed_cb, plugin_view);
86 return plugin_view->m_run_plugins_check_button;
93 char *Browser_Settings_Plugin_View::__genlist_label_get(void *data,
94 Evas_Object *obj, const char *part)
99 genlist_callback_data *callback_data = (genlist_callback_data *)data;
100 Browser_Settings_Plugin_View::menu_type type = callback_data->type;
101 if (type == BR_RUN_PLUGINS) {
102 if (!strncmp(part, "elm.text", strlen("elm.text"))) {
103 return strdup(BR_STRING_ENABLE_PLUGINS);
108 void Browser_Settings_Plugin_View::__item_selected_cb(void *data, Evas_Object *obj, void *event_info)
110 BROWSER_LOGD("[%s]", __func__);
114 genlist_callback_data *callback_data = (genlist_callback_data *)data;
115 Browser_Settings_Plugin_View::menu_type type = callback_data->type;
116 Browser_Settings_Plugin_View *plugin_view = (Browser_Settings_Plugin_View *)callback_data->user_data;
118 if (type == BR_RUN_PLUGINS) {
119 int value = elm_check_state_get(plugin_view->m_run_plugins_check_button);
120 elm_check_state_set(plugin_view->m_run_plugins_check_button, !value);
122 __run_plugins_check_button_changed_cb(plugin_view, plugin_view->m_run_plugins_check_button, NULL);
124 elm_genlist_item_selected_set(plugin_view->m_run_plugins_callback_data.it, EINA_FALSE);
128 void Browser_Settings_Plugin_View::__back_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
130 BROWSER_LOGD("[%s]", __func__);
132 if (elm_naviframe_bottom_item_get(m_navi_bar)
133 != elm_naviframe_top_item_get(m_navi_bar))
134 elm_naviframe_item_pop(m_navi_bar);
137 Eina_Bool Browser_Settings_Plugin_View::_create_main_layout(void)
139 BROWSER_LOGD("[%s]", __func__);
141 m_genlist = elm_genlist_add(m_navi_bar);
143 BROWSER_LOGE("elm_genlist_add failed");
147 m_seperator_item_class.item_style = "dialogue/seperator";
148 m_seperator_item_class.func.text_get = NULL;
149 m_seperator_item_class.func.content_get = NULL;
150 m_seperator_item_class.func.del = NULL;
151 m_seperator_item_class.func.state_get = NULL;
153 Elm_Object_Item *it = elm_genlist_item_append(m_genlist, &m_seperator_item_class,
154 NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
155 elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
157 m_1_text_1_icon_item_class.item_style = "dialogue/1text.1icon";
158 m_1_text_1_icon_item_class.func.text_get = __genlist_label_get;
159 m_1_text_1_icon_item_class.func.content_get = __genlist_icon_get;
160 m_1_text_1_icon_item_class.func.del = NULL;
161 m_1_text_1_icon_item_class.func.state_get = NULL;
163 m_run_plugins_callback_data.type = BR_RUN_PLUGINS;
164 m_run_plugins_callback_data.user_data = this;
165 m_run_plugins_callback_data.it = elm_genlist_item_append(m_genlist, &m_1_text_1_icon_item_class, &m_run_plugins_callback_data,
166 NULL, ELM_GENLIST_ITEM_NONE, __item_selected_cb, &m_run_plugins_callback_data);
168 evas_object_show(m_genlist);
170 m_back_button = elm_button_add(m_genlist);
171 if (!m_back_button) {
172 BROWSER_LOGE("elm_button_add failed");
175 elm_object_style_set(m_back_button, "browser/bookmark_controlbar_back");
176 evas_object_show(m_back_button);
177 evas_object_smart_callback_add(m_back_button, "clicked", __back_button_clicked_cb, this);
179 Elm_Object_Item *navi_it = elm_naviframe_item_push(m_navi_bar, BR_STRING_PLUGINS,
180 m_back_button, NULL, m_genlist, "browser_titlebar");