/*
* setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
*
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
- * http://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
+ *
*/
#include <setting-common-draw-widget.h>
#include <glib.h>
#include <utilX.h>
#include <Ecore_X.h>
+#include <Elementary.h>
#include <efl_assist.h>
+extern Eina_List* elm_widget_scrollable_children_get(Evas_Object *obj);
+
+#define HALF_SCREEN_STR_LEN 20
+#define ONE_THIRD_SCREEN_STR_LEN 13
+
+#define ADD_MULTI_LANGUAGE_AUTO_UPDATE(eo_view, navi_it, title_str, lbutton_str, mbutton_str,rbutton_str) \
+{\
+ evas_object_data_set(eo_view, "navi_it", navi_it);\
+ evas_object_data_set(eo_view, "navi_title", title_str);\
+ evas_object_data_set(eo_view, "lbutton_str", lbutton_str);\
+ evas_object_data_set(eo_view, "mbutton_str", mbutton_str);\
+ evas_object_data_set(eo_view, "rbutton_str", rbutton_str);\
+ /*vconf_notify_key_changed(VCONFKEY_LANGSET, __navi_eo_view_lang_change_cb, eo_view);*/\
+ evas_object_event_callback_add(eo_view, EVAS_CALLBACK_DEL, __eo_view_del_cb, NULL);\
+}
+
+/*
+static void __navi_eo_view_lang_change_cb(keynode_t *key, void *data)
+{
+ SETTING_TRACE_BEGIN;
+ setting_retm_if(NULL == key, "key is NULL");
+ setting_retm_if(NULL == data, "data is NULL");
+ Evas_Object *eo_view = data;
+ char *vconf_name = vconf_keynode_get_name(key);
+ if (!safeStrCmp(vconf_name, VCONFKEY_LANGSET))
+ {
+ Elm_Object_Item *navi_it = evas_object_data_get(eo_view, "navi_it");
+ char *navi_title = evas_object_data_get(eo_view, "navi_title");
+ char *lbutton_str = evas_object_data_get(eo_view, "lbutton_str");
+ char *mbutton_str = evas_object_data_get(eo_view, "mbutton_str");
+ char *rbutton_str = evas_object_data_get(eo_view, "rbutton_str");
+ const char *eo_view_t = evas_object_type_get(eo_view);
+ SETTING_TRACE("navi_title [%s]:%s", _(navi_title), navi_title);
+ SETTING_TRACE("eo_view_t:%s", eo_view_t);
+ SETTING_TRACE("lbutton_str:%s", lbutton_str);
+ SETTING_TRACE("mbutton_str:%s", mbutton_str);
+ SETTING_TRACE("rbutton_str:%s", rbutton_str);
+ if (!safeStrCmp("elm_gengrid", eo_view_t))
+ elm_gengrid_realized_items_update(eo_view);
+ else if(!safeStrCmp("elm_genlist", eo_view_t))
+ elm_genlist_realized_items_update(eo_view);
+
+ if (navi_it)
+ {
+ SETTING_TRACE("Update navi_item, navi_title:%s", navi_title);
+ if (navi_title)
+ elm_object_item_text_set(navi_it, _(navi_title));
+
+ //l,m,r
+ Evas_Object *toolbar = elm_object_item_part_content_get(navi_it, "toolbar");
+
+ char *btn_str[3] = {0, };
+ int idx = 0;
+ if (lbutton_str && 0 != safeStrCmp(_(lbutton_str), _("IDS_COM_BODY_BACK")))
+ btn_str[idx++] = g_strdup(lbutton_str);
+
+ if (rbutton_str)
+ btn_str[idx++] = g_strdup(rbutton_str);
+
+ if (mbutton_str)
+ btn_str[idx++] = g_strdup(mbutton_str);
+
+
+ Elm_Object_Item *it = NULL;
+ Elm_Object_Item *next_it = NULL;
+ //char *text = NULL;
+ it = elm_toolbar_first_item_get(toolbar);
+ idx = 0;
+ while (it) {
+ next_it = elm_toolbar_item_next_get(it);
+ //text = (char *)elm_object_item_text_get(it);
+ elm_object_item_text_set(it, _(btn_str[idx]));
+ idx++;
+ it = next_it;
+ }
+ }
+ }
+}
+*/
+static void __eo_view_del_cb(void *data, Evas *e, Evas_Object *eo_view, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!eo_view);
+ //(void)vconf_ignore_key_changed(VCONFKEY_LANGSET, __navi_eo_view_lang_change_cb);
+ evas_object_data_set(eo_view, "navi_it", NULL);
+ evas_object_data_set(eo_view, "navi_title", NULL);
+ evas_object_data_set(eo_view, "lbutton_str", NULL);
+ evas_object_data_set(eo_view, "mbutton_str", NULL);
+ evas_object_data_set(eo_view, "rbutton_str", NULL);
+
+ SETTING_TRACE_END;
+}
+
+EXPORT_PUBLIC
+void setting_navi_items_update(Evas_Object *navigate_bar)
+{
+ SETTING_TRACE_BEGIN;
+ //setting_retm_if(NULL == key, "key is NULL");
+ setting_retm_if(NULL == navigate_bar, "data is NULL");
+ Eina_List * list = elm_naviframe_items_get(navigate_bar);
+ Evas_Object *eo_view = NULL;
+ Evas_Object *btn = NULL;
+ char *btn_text = NULL;
+
+ while (list) {
+ Elm_Object_Item *item = (Elm_Object_Item *) eina_list_data_get(list);
+ if (NULL == item){
+ SETTING_TRACE("item is null");
+ list = eina_list_next(list);
+ continue;
+ }
+
+ btn = elm_object_item_part_content_get(item, "title_right_btn");
+ if (btn)
+ {
+ btn_text = evas_object_data_get(btn, "text");
+ if(btn_text)
+ elm_object_text_set(btn, _(btn_text));
+ }
+
+ btn = elm_object_item_part_content_get(item, "title_left_btn");
+ if (btn)
+ {
+ btn_text = evas_object_data_get(btn, "text");
+ if(btn_text)
+ elm_object_text_set(btn, _(btn_text));
+ }
+
+ eo_view = elm_object_item_content_get(item);
+ if (NULL == eo_view){
+ SETTING_TRACE("eo_view is null");
+ list = eina_list_next(list);
+ continue;
+ }
+
+ Elm_Object_Item *navi_it = evas_object_data_get(eo_view, "navi_it");
+ if (navi_it != item){
+ SETTING_TRACE("navi_it is null");
+ list = eina_list_next(list);
+ continue;
+ }
+
+ const char *navi_title = evas_object_data_get(eo_view, "navi_title");
+ const char *lbutton_str = evas_object_data_get(eo_view, "lbutton_str");
+ const char *mbutton_str = evas_object_data_get(eo_view, "mbutton_str");
+ const char *rbutton_str = evas_object_data_get(eo_view, "rbutton_str");
+ const char *eo_view_t = evas_object_type_get(eo_view);
+ //SETTING_TRACE("navi_title [%s]:%s", _(navi_title), navi_title);
+ //SETTING_TRACE("eo_view_t:%s", eo_view_t);
+ //SETTING_TRACE("lbutton_str:%s", lbutton_str);
+ //SETTING_TRACE("mbutton_str:%s", mbutton_str);
+ //SETTING_TRACE("rbutton_str:%s", rbutton_str);
+ if (!safeStrCmp("elm_gengrid", eo_view_t))
+ elm_gengrid_realized_items_update(eo_view);
+ else if(!safeStrCmp("elm_genlist", eo_view_t))
+ elm_genlist_realized_items_update(eo_view);
+
+ if (navi_it)
+ {
+ //SETTING_TRACE("Update navi_item, navi_title:%s", navi_title);
+ if (navi_title)
+ elm_object_item_text_set(navi_it, _(navi_title));
+
+ //l,m,r
+ Evas_Object *toolbar = elm_object_item_part_content_get(navi_it, "toolbar");
+
+ char *btn_str[3] = {0, };
+ int idx = 0;
+ if (lbutton_str && 0 != safeStrCmp(_(lbutton_str), _("IDS_COM_BODY_BACK")))
+ btn_str[idx++] = g_strdup(lbutton_str);
+
+ if (rbutton_str)
+ btn_str[idx++] = g_strdup(rbutton_str);
+
+ if (mbutton_str)
+ btn_str[idx++] = g_strdup(mbutton_str);
+
+
+ Elm_Object_Item *it = NULL;
+ Elm_Object_Item *next_it = NULL;
+ //char *text = NULL;
+ it = elm_toolbar_first_item_get(toolbar);
+ idx = 0;
+ while (it) {
+ next_it = elm_toolbar_item_next_get(it);
+ //text = (char *)elm_object_item_text_get(it);
+ elm_object_item_text_set(it, _(btn_str[idx]));
+ idx++;
+ it = next_it;
+ }
+ G_FREE(btn_str[0]);
+ G_FREE(btn_str[1]);
+ G_FREE(btn_str[2]);
+ }
+
+ //if not matched,to check next node.
+ list = eina_list_next(list);
+ item = NULL;
+ }
+ SETTING_TRACE_END;
+}
+
+static void __dismissed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ Setting_Btn_Data *btn_data = data;
+ if(btn_data->ctxpopup) {
+ evas_object_del(btn_data->ctxpopup);
+ btn_data->ctxpopup = NULL;
+ }
+}
+
+static void __btn_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ Setting_Btn_Data *btn_data = data;
+ btn_data->btn_click_cb(btn_data->btn_cb_data, obj, event_info);
+ if(btn_data->ctxpopup) {
+ evas_object_del(btn_data->ctxpopup);
+ btn_data->ctxpopup = NULL;
+ }
+}
+
+static void __rotate_ctxpopup_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(data == NULL);
+ Setting_Btn_Data *btn_data = (Setting_Btn_Data *)data;
+ Evas_Coord w, h;
+ int pos = -1;
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+ pos = elm_win_rotation_get(ug_get_window());
+ SETTING_TRACE_DEBUG("pos: %d, w: %d, h: %d", pos, w, h);
+ if (pos == 90)
+ {
+ evas_object_move(btn_data->ctxpopup, 0, w);
+ }
+ else if (pos == 270)
+ {
+ evas_object_move(btn_data->ctxpopup, h, w);
+ }
+ else
+ {
+ evas_object_move(btn_data->ctxpopup, 0, h);
+ }
+}
+
+static void __ctxpopup_lang_change_cb(keynode_t *key, void *data)
+{
+ setting_retm_if(NULL == key, "key is NULL");
+ setting_retm_if(NULL == data, "data is NULL");
+ Setting_Btn_Data *btn_data = (Setting_Btn_Data *)data;
+ char *vconf_name = vconf_keynode_get_name(key);
+ if (!safeStrCmp(vconf_name, VCONFKEY_LANGSET))
+ {
+ //setting_popup_lang_update(popup);
+ int i = 0;
+ while(btn_data->btn_text[i])
+ {
+ elm_object_item_text_set(btn_data->item[i], _(btn_data->btn_text[i]));
+ i++;
+ }
+ }
+}
+
+static void __delete_rotate_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ //SETTING_TRACE_BEGIN;
+ ret_if(data == NULL);
+ Setting_Btn_Data *btn_data = (Setting_Btn_Data *)data;
+ Evas_Object *ctxpopup = btn_data->ctxpopup;
+
+ Ecore_Event_Handler *event_handler = evas_object_data_get(ctxpopup, "event_handler");
+ ecore_event_handler_del(event_handler);
+ evas_object_data_set(ctxpopup, "event_handler", NULL);
+
+ (void)vconf_ignore_key_changed(VCONFKEY_LANGSET, __ctxpopup_lang_change_cb);
+ evas_object_smart_callback_del(elm_object_top_widget_get(ctxpopup), "rotation,changed", __rotate_ctxpopup_cb);
+}
+
+static Eina_Bool __ctxpopup_key_press_cb(void *data, int type, void *event)
+{
+ SETTING_TRACE_BEGIN;
+ Evas_Event_Key_Down *ev = event;
+ if (!ev || !data) {
+ SETTING_TRACE("Invalid event object");
+ return ECORE_CALLBACK_RENEW;
+ }
+ SETTING_TRACE("Pressed %s", ev->keyname);
+ Evas_Object *ctxpopup = data;
+
+ if (!strcmp(ev->keyname, KEY_HOME))
+ {
+ elm_ctxpopup_dismiss(ctxpopup);
+ }
+ return ECORE_CALLBACK_RENEW;
+}
+
+EXPORT_PUBLIC void setting_create_more_btn_click_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ Setting_Btn_Data *btn_data = data;
+
+ if(btn_data->ctxpopup) {
+ evas_object_del(btn_data->ctxpopup);
+ btn_data->ctxpopup = NULL;
+ }
+
+ Evas_Object *ctxpopup = elm_ctxpopup_add(btn_data->parent);
+ elm_object_style_set(ctxpopup, "more/default");
+ elm_ctxpopup_auto_hide_disabled_set(ctxpopup, EINA_TRUE); //to disable the rotating dismiss issue
+ ea_object_event_callback_add(ctxpopup, EA_CALLBACK_BACK, ea_ctxpopup_back_cb, NULL); //to make ctxpopup get the "Back" key event
+ ea_object_event_callback_add(ctxpopup, EA_CALLBACK_MORE, ea_ctxpopup_back_cb, NULL);//to make ctxpopup get the "More" key event
+ Ecore_Event_Handler *event_handler = ecore_event_handler_add(ECORE_EVENT_KEY_DOWN, __ctxpopup_key_press_cb, ctxpopup);
+ evas_object_data_set(ctxpopup, "event_handler", event_handler);
+
+ evas_object_smart_callback_add(ctxpopup, "dismissed", __dismissed_cb, btn_data);
+ evas_object_event_callback_add(ctxpopup, EVAS_CALLBACK_DEL, __delete_rotate_ctxpopup_cb, btn_data);
+ evas_object_smart_callback_add(elm_object_top_widget_get(ctxpopup), "rotation,changed", __rotate_ctxpopup_cb, btn_data);
+ vconf_notify_key_changed(VCONFKEY_LANGSET, __ctxpopup_lang_change_cb, btn_data);
+
+ SETTING_TRACE("Clicked a more button, the call back of selecting objects in context popup is not the same as button callback");
+ Evas_Object *icon = NULL;
+
+ int i = 0;
+ //while(btn_data->btn_text[i])
+ for(i = 0; i < MAX_BUTTON_NUM; i++)
+ {
+ //SETTING_TRACE("btn_data->btn_text[%d]:%s", i, btn_data->btn_text[i]);
+ if (isEmptyStr(btn_data->btn_text[i])) continue;
+ if (btn_data->btn_icon[i])
+ {
+ icon = elm_image_add(ctxpopup);
+ elm_image_file_set(icon, btn_data->btn_icon[i], NULL);
+
+ }
+ btn_data->item[i] = elm_ctxpopup_item_append(ctxpopup, _(btn_data->btn_text[i]), icon, __btn_click_cb, btn_data);
+ }
+
+ btn_data->ctxpopup = ctxpopup;
+
+ Evas_Coord w , h;
+
+ int pos = -1;
+ ecore_x_window_size_get(ecore_x_window_root_first_get(), &w, &h);
+ pos = elm_win_rotation_get(ug_get_window());
+ if (pos == 90)
+ {
+ evas_object_move(ctxpopup, 0, w);
+ }
+ else if (pos == 270)
+ {
+ evas_object_move(ctxpopup, h, w);
+ }
+ else
+ {
+ evas_object_move(ctxpopup, 0, h);
+ }
+ evas_object_show(ctxpopup);
+}
+
+EXPORT_PUBLIC void setting_create_more_btn_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ Setting_Btn_Data *btn_data = data;
+
+ evas_object_smart_callback_del(btn_data->ctxpopup, "dismissed", __dismissed_cb);
+ if(btn_data->ctxpopup) {
+ evas_object_del(btn_data->ctxpopup);
+ btn_data->ctxpopup = NULL;
+ }
+ int i = 0;
+ //while(btn_data->btn_text[i])
+ for(i = 0; i < MAX_BUTTON_NUM; i++)
+ {
+ FREE(btn_data->btn_text[i]);
+ FREE(btn_data->btn_icon[i]);
+ }
+ FREE(btn_data);//delete the date.
+ SETTING_TRACE_END;
+ //evas_object_data_set(obj, "more_btn_data", NULL);
+}
+
+EXPORT_PUBLIC
Evas_Object *setting_create_win_layout(Evas_Object *win_layout,
Evas_Object *win_obj)
{
Evas_Object *layout = NULL;
-
/* Base Layout */
layout = elm_layout_add(win_obj);
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_layout_theme_set(layout, "layout", "application", "default");
- Evas_Object *bg = setting_create_bg(layout, win_obj, "group_list");
+ Evas_Object *bg = setting_create_bg(layout, win_obj, NULL);
elm_object_part_content_set(layout, "elm.swallow.bg", bg);
evas_object_show(layout);
-
return layout;
}
-#define HALF_SCREEN_STR_LEN 20
-#define ONE_THIRD_SCREEN_STR_LEN 13
+EXPORT_PUBLIC
+Elm_Object_Item *setting_create_guild_layout(Evas_Object *navi_bar,
+ char *title_str,
+ char *lbutton_str,
+ char *rbutton_str,
+ char *mbutton_str,
+ setting_call_back_func lbutton_click_cb,
+ setting_call_back_func rbutton_click_cb,
+ setting_call_back_func mbutton_click_cb,
+ char *content_str1,
+ char **png_list,
+ char *content_str2,
+ char *content_button_str,
+ setting_call_back_func content_button_click_cb,
+ void *cb_data)
+{
+ Evas_Object *scroller = elm_genlist_add(navi_bar);
+ retvm_if(scroller == NULL, NULL, "Cannot set scroller object as contento of layout");
+ elm_genlist_realization_mode_set(scroller, EINA_TRUE);
+ elm_object_style_set(scroller, "dialogue");
+ elm_genlist_clear(scroller); /* first to clear list */
+ elm_genlist_mode_set(scroller, ELM_LIST_COMPRESS);
+ evas_object_smart_callback_add(scroller, "realized", __gl_realized_cb, NULL);
+
+ ADD_GL_LABLE(scroller, content_str1);
+ ADD_GL_GIF(scroller,png_list)
+ ADD_GL_LABLE(scroller, content_str2);
+ ADD_GL_BUTTON(scroller, content_button_str, content_button_click_cb, cb_data)
+
+ return setting_push_layout_navi_bar(title_str,
+ lbutton_str, rbutton_str, NULL,
+ lbutton_click_cb,
+ rbutton_click_cb,
+ NULL, cb_data, scroller, navi_bar, NULL);
+}
+
+EXPORT_PUBLIC
+Elm_Object_Item *setting_create_guild_layout2(Evas_Object *navi_bar,
+ char *title_str,
+ char *lbutton_str,
+ char *rbutton_str,
+ char *mbutton_str,
+ setting_call_back_func lbutton_click_cb,
+ setting_call_back_func rbutton_click_cb,
+ setting_call_back_func mbutton_click_cb,
+ char *content_str1,
+ Evas_Object **ug_layout,
+ char *content_str2,
+ char *content_button_str,
+ setting_call_back_func content_button_click_cb,
+ void *cb_data)
+{
+ Evas_Object *scroller;
+ Elm_Object_Item *item = setting_push_layout_navi_bar_scroller(navi_bar,
+ title_str,
+ lbutton_str, rbutton_str,
+ lbutton_click_cb,
+ rbutton_click_cb,
+ cb_data, &scroller,
+ navi_bar);
+ Evas_Object *outer_box = setting_create_client_bx(navi_bar);
+ //add top text window..
+ if (content_str1)
+ {
+ const char *str = setting_customize_text(content_str1, 0, NULL, NULL);
+ Evas_Object *lable = setting_create_textbox(navi_bar, str);
+ setting_disable_evas_object(lable);
+ elm_box_pack_end(outer_box, lable);
+ FREE(str);
+ }
+
+ //add UG window..
+ if (ug_layout)
+ {
+ Evas_Object *ug_win = elm_layout_add(navi_bar);
+ evas_object_size_hint_weight_set(ug_win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ setting_retvm_if(ug_win == NULL, NULL, "layout == NULL");
+ elm_layout_theme_set(ug_win, "layout", "application", "default");
+ elm_object_part_content_set(ug_win, "elm.swallow.bg", setting_create_blank_rect_customize(navi_bar,720,850));
+ //elm_object_part_content_set(layout, "elm.swallow.content", navi);
+ elm_box_pack_end(outer_box, ug_win);
+ evas_object_show(ug_win);
+ *ug_layout = ug_win;
+ }
+
+ //add bottom text
+ if (content_str2)
+ {
+ const char *str = setting_customize_text(content_str2, 0, NULL, NULL);
+ Evas_Object *lable = setting_create_textbox(navi_bar, str);
+ setting_disable_evas_object(lable);
+ elm_box_pack_end(outer_box, lable);
+ FREE(str);
+ }
+
+ //add bottom button
+ if (content_button_str)
+ {
+ Evas_Object *layout = elm_layout_add(navi_bar);
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ elm_object_part_content_set(layout, "elm.swallow.bg", setting_create_blank_rect_customize(navi_bar,680,100));
+ Evas_Object *btn = elm_button_add(navi_bar);
+ elm_object_text_set(btn, content_button_str);
+ evas_object_propagate_events_set(btn, EINA_FALSE);
+ evas_object_smart_callback_add(btn, "clicked", content_button_click_cb, cb_data);
+ elm_object_part_content_set(layout, "elm.swallow.content", btn);
+ evas_object_show(btn);
+ evas_object_show(layout);
+ elm_box_pack_end(outer_box, layout);
+ }
+
+ elm_object_content_set(scroller, outer_box);
+ return item;
+}
+
+EXPORT_PUBLIC
Evas_Object *setting_create_navi_bar(Evas_Object *layout)
{
ea_object_event_callback_add(navi, EA_CALLBACK_BACK, ea_naviframe_back_cb, NULL);
ea_object_event_callback_add(navi, EA_CALLBACK_MORE, ea_naviframe_more_cb, NULL);
+ //elm_object_item_signal_callback_event(navi
if (navi == NULL) {
SETTING_TRACE(" *** elm_naviframe_add returns NULL *** ");
return navi;
}
+/**
+* The API to Create title buttons of naviframe
+* if sip is shown,the buttons created by this API will be shown,it sip is hidden,they will be hiden too
+* @return non
+* eg:
+* //4 common buttons
+* setting_append_naviframe_title_buttons(ad->navi_it, ad->navi_bar,
+* "1", "2", "3" ,"4",
+* _back_cb,
+* _back_cb,
+* _back_cb,
+* _back_cb);
+*
+* //more button +2 common buttons + '<-'button
+* setting_append_naviframe_title_buttons(ad->navi_it, ad->navi_bar,
+* NULL, "2", "3" ,NULL,
+* _back_cb,
+* _back_cb,
+* _back_cb,
+* _back_cb);
+*
+* //1common buton + '<-'button
+* setting_append_naviframe_title_buttons(ad->navi_it, ad->navi_bar,
+* NULL, NULL, _("IDS_COM_SK_DONE") ,NULL,
+* NULL,
+* NULL,
+* _back_cb,
+* _back_cb);
+*/
+EXPORT_PUBLIC
+void setting_append_naviframe_title_buttons(Elm_Object_Item *navi_it,
+ Evas_Object *navigate_bar,
+ char *more_button_str,
+ char *left_button_str,
+ char *right_button_str,
+ char *back_button_str,
+ setting_call_back_func more_button_click_cb,
+ setting_call_back_func left_button_click_cb,
+ setting_call_back_func right_button_click_cb,
+ setting_call_back_func back_button_click_cb,
+ void *cb_data)
+{
+ SETTING_TRACE_BEGIN;
+ Evas_Object *btn = NULL;
+ /* create buttons */
+ if (more_button_click_cb)
+ {
+ if (!more_button_str)
+ {
+
+ //btn = setting_create_button(navigate_bar, NULL, "naviframe/more/default", more_button_click_cb, cb_data);
+ btn = elm_button_add(navigate_bar);
+ elm_object_style_set(btn, "naviframe/more/default");
+ evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(btn,EVAS_HINT_FILL, 0.5);
+ evas_object_smart_callback_add(btn, "clicked", more_button_click_cb, cb_data);
+ evas_object_show(btn);
+ }
+ else
+ {
+ btn = setting_create_button(navigate_bar, more_button_str, "naviframe/title/default", more_button_click_cb, cb_data);
+
+ }
+ elm_object_item_part_content_set(navi_it, "title_more_btn", btn);
+ }
+
+ if (left_button_click_cb)
+ {
+ btn = setting_create_button(navigate_bar, left_button_str, "naviframe/title/default", left_button_click_cb, cb_data);
+ elm_object_item_part_content_set(navi_it, "title_toolbar_button1", btn);
+ }
+
+ if (right_button_click_cb)
+ {
+ btn = setting_create_button(navigate_bar, right_button_str, "naviframe/title/default", right_button_click_cb, cb_data);
+ elm_object_item_part_content_set(navi_it, "title_toolbar_button2", btn);
+ }
+
+ if (back_button_click_cb)
+ {
+ if (!back_button_str)
+ {
+ //btn = setting_create_button(navigate_bar, NULL, "naviframe/back_btn/default", back_button_click_cb, cb_data);
+ btn = elm_button_add(navigate_bar);
+ elm_object_style_set(btn, "naviframe/back_btn/default");
+ evas_object_size_hint_weight_set(btn, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(btn,EVAS_HINT_FILL, 0.5);
+ evas_object_smart_callback_add(btn, "clicked", back_button_click_cb, cb_data);
+ evas_object_show(btn);
+ }
+ else
+ {
+ btn = setting_create_button(navigate_bar, back_button_str, "naviframe/title/default", back_button_click_cb, cb_data);
+
+ }
+ elm_object_item_part_content_set(navi_it, "title_prev_btn", btn);
+ }
+}
+
+//"title_more_btn" won't be supported any more, so don't pass mbutton_str
+EXPORT_PUBLIC
Elm_Object_Item * setting_create_navi_bar_top_buttons(char *title_str,
char *lbutton_str,
char *rbutton_str,
Evas_Object *m_button = NULL;
Elm_Object_Item *navi_it = NULL;
- /* create buttons */
- l_button = setting_create_button(navigate_bar, lbutton_str,
- NULL,
+ if(lbutton_str)
+ {
+ /* create buttons */
+ l_button = setting_create_button(navigate_bar, lbutton_str,
+ "naviframe/toolbar/default",
lbutton_click_cb, cb_data);
-
- r_button = setting_create_button(navigate_bar, rbutton_str,
- NULL,
+ }
+ if(rbutton_str)
+ {
+ r_button = setting_create_button(navigate_bar, rbutton_str,
+ "naviframe/end_btn/default",
rbutton_click_cb, cb_data);
- m_button = setting_create_button(navigate_bar, mbutton_str,
+ }
+ if(mbutton_str)
+ {
+ m_button = setting_create_button(navigate_bar, mbutton_str,
NULL,
mbutton_click_cb, cb_data);
-
+ }
navi_it = elm_naviframe_item_push(navigate_bar, title_str,
NULL, NULL, eo_view,
NULL);
retv_if(!navi_it, NULL);
/* arrange buttons into navi_it*/
- if (l_button) {
- elm_object_item_part_content_set(navi_it, "title_left_btn", l_button);
+ if (l_button) { /* done */
+ elm_object_item_part_content_set(navi_it, "title_toolbar_button1", l_button);
}
- if (r_button) {
- elm_object_item_part_content_set(navi_it, "title_right_btn", r_button);
+ if (r_button) { /* cancel */
+ elm_object_item_part_content_set(navi_it, "title_prev_btn", r_button);
}
- if (m_button) {
+ if (m_button) { /* none */
elm_object_item_part_content_set(navi_it, "title_more_btn", m_button);
}
- //remove '<-' button
- Evas_Object *back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
- if (back_btn) {
- elm_object_item_part_content_set(navi_it, "prev_btn", NULL);
- if (back_btn) evas_object_del(back_btn);
- }
-
return navi_it;
}
+
Elm_Object_Item *__create_navi_bar_bottom_buttons(char *title_str, char *lbutton_str, char *rbutton_str,
- char *mbutton_str, setting_call_back_func lbutton_click_cb,
+ char *mbutton_str, setting_call_back_func lbutton_click_cb,/* MORE */
setting_call_back_func rbutton_click_cb,
setting_call_back_func mbutton_click_cb,
void *cb_data, Evas_Object *eo_view,/*any container obj */
{
SETTING_TRACE_BEGIN;
Elm_Object_Item *navi_it = NULL;
- Evas_Object *mbtn = NULL;
- Evas_Object *rbtn = NULL;
+ //Evas_Object *mbtn = NULL;
+ //Evas_Object *rbtn = NULL;
Evas_Object *lbtn = NULL;
Evas_Object *toolbar = NULL;
/* arrange buttons into controlbar*/
- if (0 == safeStrCmp(lbutton_str, _("IDS_COM_BODY_BACK"))) { /* do special handling */
- lbtn = setting_create_button(navigate_bar, lbutton_str,
+ if (0 == safeStrCmp(_(lbutton_str), _("IDS_COM_BODY_BACK"))) {
+ lbtn = setting_create_button(navigate_bar, _(lbutton_str),
NAVI_BACK_BUTTON_STYLE,
NULL, NULL);
//lbutton_click_cb, cb_data);
#if SUPPORT_TTS
- setting_set_tts_info(lbtn, lbutton_str, NULL, NULL, TTS_CONTENT_BACK_CLICK_INFO);
+ setting_set_tts_info(lbtn, _(lbutton_str), NULL, NULL, TTS_CONTENT_BACK_CLICK_INFO);
#endif
navi_it = elm_naviframe_item_push(navigate_bar, title_str, lbtn, NULL, eo_view, NULL); /* add new button */
- elm_object_style_set(lbtn, NAVI_BACK_BUTTON_STYLE); /* take into effect */
- elm_naviframe_item_pop_cb_set(navi_it, lbutton_click_cb, cb_data);
+ if(navi_it)
+ {
+ if(0 != safeStrCmp(title_str, dgettext(SETTING_PACKAGE, title_str)))
+ elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
+ else
+ elm_object_item_domain_text_translatable_set(navi_it, "sys_string", EINA_TRUE);
+
+ elm_object_style_set(lbtn, NAVI_BACK_BUTTON_STYLE); /* take into effect */
+ elm_naviframe_item_pop_cb_set(navi_it, (Elm_Naviframe_Item_Pop_Cb)lbutton_click_cb, cb_data);
+ ADD_MULTI_LANGUAGE_AUTO_UPDATE(eo_view, navi_it, title_str, lbutton_str, mbutton_str,rbutton_str);
+ }
// more handler
//elm_object_item_signal_callback_add(navi_it, "elm,action,more,event", more_cb, cb_data);
- toolbar = elm_toolbar_add(navigate_bar);
- elm_object_style_set(toolbar, "default");
- elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
- elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
-
if (!rbutton_str && !mbutton_str) {
//do nothing..
} else if (rbutton_str && mbutton_str) { /* both exist.. */
- elm_toolbar_item_append(toolbar, NULL, mbutton_str, mbutton_click_cb, cb_data);
- elm_toolbar_item_append(toolbar, NULL, rbutton_str, rbutton_click_cb, cb_data);
+ toolbar = elm_toolbar_add(navigate_bar);
+ if(toolbar)
+ {
+ elm_object_style_set(toolbar, "default");
+ elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ }
+ //mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
+ //rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button1", mbtn);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button2", rbtn);
} else if (rbutton_str) { /* r_btn exist.. */
- elm_toolbar_item_append(toolbar, NULL, rbutton_str, rbutton_click_cb, cb_data);
+ toolbar = elm_toolbar_add(navigate_bar);
+ if(toolbar)
+ {
+ elm_object_style_set(toolbar, "default");
+ elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ }
+ //rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button1", rbtn);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button2", setting_create_button(navigate_bar, "", NULL, NULL, NULL));
} else if (mbutton_str) { /* m_btn exist.. */
- elm_toolbar_item_append(toolbar, NULL, mbutton_str, mbutton_click_cb, cb_data);
+ toolbar = elm_toolbar_add(navigate_bar);
+ if(toolbar)
+ {
+ elm_object_style_set(toolbar, "default");
+ elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ }
+ //mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button1", mbtn);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button2", setting_create_button(navigate_bar, "", NULL, NULL, NULL));
}
return navi_it;
}
navi_it = elm_naviframe_item_push(navigate_bar, title_str, NULL, NULL, eo_view, NULL);
+ if(navi_it)
+ {
+ SETTING_TRACE("dgettext(SETTING_PACKAGE, title_str):%s", dgettext(SETTING_PACKAGE, title_str));
+ SETTING_TRACE("dgettext(SYSTEM_PACKAGE, title_str):%s", dgettext(SYSTEM_PACKAGE, title_str));
+ if(0 != safeStrCmp(title_str, dgettext(SETTING_PACKAGE, title_str)))
+ elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
+ else
+ elm_object_item_domain_text_translatable_set(navi_it, "sys_string", EINA_TRUE);
+ ADD_MULTI_LANGUAGE_AUTO_UPDATE(eo_view, navi_it, title_str, lbutton_str, mbutton_str,rbutton_str);
+ }
+ if (rbutton_str || mbutton_str){
+ toolbar = elm_toolbar_add(navigate_bar);
+ if(toolbar)
+ {
+ elm_object_style_set(toolbar, "default");
+ elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+ }
+ }
if (lbutton_str && mbutton_str && rbutton_str)
{
lbtn = setting_create_button(navigate_bar, lbutton_str, NAVI_DEF_BUTTON_STYLE, lbutton_click_cb, cb_data);
elm_object_item_part_content_set(navi_it, "toolbar_more_btn", lbtn);
- elm_toolbar_item_append(toolbar, NULL, mbutton_str, mbutton_click_cb, cb_data);
- elm_toolbar_item_append(toolbar, NULL, rbutton_str, rbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ //mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button1", mbtn);
+ //rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button2", rbtn);
+
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
+
+ if (0 == safeStrCmp(_(lbutton_str), _("IDS_COM_SK_CANCEL")))
+ elm_naviframe_item_pop_cb_set(navi_it, (Elm_Naviframe_Item_Pop_Cb)lbutton_click_cb, cb_data);
}
else
{
- bool has_btn_flag = FALSE;//first "toolbar_button1", then "toolbar_button2".
+ //bool has_btn_flag = FALSE;//first "toolbar_button1", then "toolbar_button2".
if (lbutton_str)
{
- lbtn = setting_create_button(navigate_bar, lbutton_str, NAVI_DEF_BUTTON_STYLE, lbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, "toolbar_button1", lbtn);
- has_btn_flag = TRUE;
+ //lbtn = setting_create_button(navigate_bar, lbutton_str, NAVI_DEF_BUTTON_STYLE, lbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button1", lbtn);
+ elm_toolbar_item_append(toolbar, NULL, _(lbutton_str), lbutton_click_cb, cb_data);
+ //has_btn_flag = TRUE;
+
+ if (0 == safeStrCmp(_(lbutton_str), _("IDS_COM_SK_CANCEL")))
+ elm_naviframe_item_pop_cb_set(navi_it, (Elm_Naviframe_Item_Pop_Cb)lbutton_click_cb, cb_data);
}
if (mbutton_str)
{
- mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", mbtn);
- has_btn_flag = TRUE;
+ //mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", mbtn);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
+ //has_btn_flag = TRUE;
}
if (rbutton_str)
{
- rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", rbtn);
- has_btn_flag = TRUE;
+ //rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", rbtn);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
+ //has_btn_flag = TRUE;
}
}
+ elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
return navi_it;
-
}
* @param[in] controlbar title obj of navigation bar
*
*/
+EXPORT_PUBLIC
void setting_create_navi_bar_buttons(char *title_str, char *lbutton_str, char *rbutton_str,
char *mbutton_str, setting_call_back_func lbutton_click_cb,
setting_call_back_func rbutton_click_cb,
*
* return main layout of UG or App..
*/
+EXPORT_PUBLIC
Evas_Object *setting_create_layout_navi_bar(Evas_Object *win_layout, Evas_Object *win_obj, char *title_str, char *lbutton_str, char *rbutton_str, char *mbutton_str, setting_call_back_func lbutton_click_cb, setting_call_back_func rbutton_click_cb, setting_call_back_func mbutton_click_cb, void *cb_data, Evas_Object *eo_view, /*any container obj constructed on any evas obj */
Evas_Object **navi_bar,
Evas_Object **titleobj)
*
* @return a layout with a special navigation bar and at most 2 buttons
*/
-
+EXPORT_PUBLIC
Evas_Object *setting_create_layout_navi_bar_scroller(Evas_Object *win_layout,
Evas_Object *win_obj,
char *title_str,
*
* @return a layout with a special navigation bar and at most 2 buttons
*/
+EXPORT_PUBLIC
Evas_Object *setting_create_layout_navi_bar_genlist(Evas_Object *win_layout,
Evas_Object *win_obj,
char *title_str,
*navi_bar = setting_create_navi_bar(layout);
*genlist = elm_genlist_add(*navi_bar);
- elm_object_style_set(*genlist, "dialogue");
retvm_if(*genlist == NULL, NULL,
"Cannot set scroller object as contento of layout");
+ elm_genlist_realization_mode_set(*genlist, EINA_TRUE);
+ elm_object_style_set(*genlist, "dialogue");
elm_genlist_clear(*genlist); /* first to clear list */
+ evas_object_smart_callback_add(*genlist, "realized", __gl_realized_cb, NULL);
setting_create_navi_bar_buttons(title_str,
lbutton_str, rbutton_str, NULL,
return layout;
}
-
+EXPORT_PUBLIC
Elm_Object_Item *__push_navi_bar_bottom_buttons(char *title_str,
char *lbutton_str, char *rbutton_str,
char *mbutton_str,
Evas_Object *navigate_bar, Evas_Object **titleobj)
{
Elm_Object_Item *navi_it = NULL;
- Evas_Object *mbtn = NULL;
- Evas_Object *rbtn = NULL;
+ //Evas_Object *mbtn = NULL;
+ //Evas_Object *rbtn = NULL;
Evas_Object *lbtn = NULL;
Evas_Object *toolbar = NULL;
/* arrange buttons into controlbar*/
- if (0 == safeStrCmp(lbutton_str, _("IDS_COM_BODY_BACK"))) {
- lbtn = setting_create_button(navigate_bar, lbutton_str,
+ if (0 == safeStrCmp(_(lbutton_str), _("IDS_COM_BODY_BACK"))) {
+ lbtn = setting_create_button(navigate_bar, _(lbutton_str),
NAVI_BACK_BUTTON_STYLE,
NULL, NULL);
//lbutton_click_cb, cb_data);
#if SUPPORT_TTS
- setting_set_tts_info(lbtn, lbutton_str, NULL, NULL, TTS_CONTENT_BACK_CLICK_INFO);
+ setting_set_tts_info(lbtn, _(lbutton_str), NULL, NULL, TTS_CONTENT_BACK_CLICK_INFO);
#endif
navi_it = elm_naviframe_item_push(navigate_bar, title_str, lbtn, NULL, eo_view, NULL);
+ if(0 != safeStrCmp(title_str, dgettext(SETTING_PACKAGE, title_str)))
+ elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
+ else
+ elm_object_item_domain_text_translatable_set(navi_it, "sys_string", EINA_TRUE);
+ ADD_MULTI_LANGUAGE_AUTO_UPDATE(eo_view, navi_it, title_str, lbutton_str, mbutton_str,rbutton_str);
+
elm_object_style_set(lbtn, NAVI_BACK_BUTTON_STYLE); /* take into effect */
if(lbutton_click_cb)
- elm_naviframe_item_pop_cb_set(navi_it, lbutton_click_cb, cb_data);
+ elm_naviframe_item_pop_cb_set(navi_it, (Elm_Naviframe_Item_Pop_Cb)lbutton_click_cb, cb_data);
if (!rbutton_str && !mbutton_str)
{
toolbar = elm_toolbar_add(navigate_bar);
elm_object_style_set(toolbar, "default");
+ elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
if (rbutton_str && mbutton_str) {
- if (safeStrLen(mbutton_str) <= MAX_BUTTON_TEXT_LEN
- && safeStrLen(rbutton_str) <= MAX_BUTTON_TEXT_LEN)
+ if (safeStrLen(_(mbutton_str)) <= MAX_BUTTON_TEXT_LEN
+ && safeStrLen(_(rbutton_str)) <= MAX_BUTTON_TEXT_LEN)
{
//mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
//rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
- elm_toolbar_item_append(toolbar, NULL, mbutton_str, mbutton_click_cb, cb_data);
- elm_toolbar_item_append(toolbar, NULL, rbutton_str, rbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
}
else
{
- elm_toolbar_item_append(toolbar, NULL, mbutton_str, mbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
//mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
//elm_object_item_part_content_set(navi_it, "toolbar_button1", mbtn);
- #if 0
Evas_Object *more_btn = elm_button_add(navigate_bar);
if (!more_btn) return NULL;
- //elm_object_style_set(more_btn, NAVI_MORE_BUTTON_STYLE);
+ elm_object_style_set(more_btn, NAVI_MORE_BUTTON_STYLE);
Setting_Btn_Data *btn_data = calloc(1,sizeof(Setting_Btn_Data));
setting_retvm_if(!btn_data, NULL, "calloc failed");
- btn_data->btn_text = strdup(rbutton_str);
+ btn_data->btn_text[0] = strdup(rbutton_str);
btn_data->btn_click_cb = rbutton_click_cb;
btn_data->btn_cb_data = cb_data;
btn_data->parent = navigate_bar;
//evas_object_data_set(more_btn, "more_btn_data", btn_data);
- evas_object_event_callback_add(more_btn, EVAS_CALLBACK_DEL, __more_btn_del_cb, btn_data);
- evas_object_smart_callback_add(more_btn, "clicked", __more_btn_click_cb, btn_data);
+ evas_object_event_callback_add(more_btn, EVAS_CALLBACK_DEL, setting_create_more_btn_del_cb, btn_data);
+ evas_object_smart_callback_add(more_btn, "clicked", setting_create_more_btn_click_cb, btn_data);
elm_object_item_part_content_set(navi_it, "toolbar_more_btn", more_btn);
- #endif
}
} else if (rbutton_str) {
- elm_toolbar_item_append(toolbar, NULL, rbutton_str, rbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
//rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
//elm_object_item_part_content_set(navi_it, "toolbar_button1", rbtn);
//elm_object_item_part_content_set(navi_it, "toolbar_button2", setting_create_button(navigate_bar, "", NULL, NULL, NULL));
} else if (mbutton_str) {
- elm_toolbar_item_append(toolbar, NULL, mbutton_str, mbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
//mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
}
} else { /* no need back button on navi_bar */
navi_it = elm_naviframe_item_push(navigate_bar, title_str, NULL, NULL, eo_view, NULL);
+ if(0 != safeStrCmp(title_str, dgettext(SETTING_PACKAGE, title_str)))
+ elm_object_item_domain_text_translatable_set(navi_it, SETTING_PACKAGE, EINA_TRUE);
+ else
+ elm_object_item_domain_text_translatable_set(navi_it, "sys_string", EINA_TRUE);
+ ADD_MULTI_LANGUAGE_AUTO_UPDATE(eo_view, navi_it, title_str, lbutton_str, mbutton_str,rbutton_str);
if (!lbutton_str && !rbutton_str && !mbutton_str) {
return navi_it;
}
+ toolbar = elm_toolbar_add(navigate_bar);
+ elm_object_style_set(toolbar, "default");
+ elm_toolbar_select_mode_set(toolbar, ELM_OBJECT_SELECT_MODE_NONE);
+ elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
+ elm_toolbar_transverse_expanded_set(toolbar, EINA_TRUE);
+
//remove '<-' button, insteadly using controlbar
Evas_Object *back_btn = elm_object_item_part_content_get(navi_it, "prev_btn");
elm_object_item_part_content_set(navi_it, "prev_btn", NULL);
if (lbutton_str && mbutton_str && rbutton_str)
{
- lbtn = setting_create_button(navigate_bar, lbutton_str, NAVI_DEF_BUTTON_STYLE, lbutton_click_cb, cb_data);
+ lbtn = setting_create_button(navigate_bar, _(lbutton_str), NAVI_DEF_BUTTON_STYLE, lbutton_click_cb, cb_data);
elm_object_item_part_content_set(navi_it, "toolbar_more_btn", lbtn);
//mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
//elm_object_item_part_content_set(navi_it, "toolbar_button1", mbtn);
//rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
//elm_object_item_part_content_set(navi_it, "toolbar_button2", rbtn);
- elm_toolbar_item_append(toolbar, NULL, mbutton_str, mbutton_click_cb, cb_data);
- elm_toolbar_item_append(toolbar, NULL, rbutton_str, rbutton_click_cb, cb_data);
-
- elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
}
else
{
- bool has_btn_flag = FALSE;//first "toolbar_button1", then "toolbar_button2".
+ //bool has_btn_flag = FALSE;//first "toolbar_button1", then "toolbar_button2".
if (lbutton_str)
{
- lbtn = setting_create_button(navigate_bar, lbutton_str, NAVI_DEF_BUTTON_STYLE, lbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, "toolbar_button1", lbtn);
- has_btn_flag = TRUE;
+ //lbtn = setting_create_button(navigate_bar, lbutton_str, NAVI_DEF_BUTTON_STYLE, lbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, "toolbar_button1", lbtn);
+ elm_toolbar_item_append(toolbar, NULL, _(lbutton_str), lbutton_click_cb, cb_data);
+ //has_btn_flag = TRUE;
}
if (mbutton_str)
{
- mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", mbtn);
- has_btn_flag = TRUE;
+ //mbtn = setting_create_button(navigate_bar, mbutton_str, NAVI_DEF_BUTTON_STYLE, mbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", mbtn);
+ elm_toolbar_item_append(toolbar, NULL, _(mbutton_str), mbutton_click_cb, cb_data);
+ //has_btn_flag = TRUE;
}
if (rbutton_str)
{
- rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
- elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", rbtn);
- has_btn_flag = TRUE;
+ //rbtn = setting_create_button(navigate_bar, rbutton_str, NAVI_DEF_BUTTON_STYLE, rbutton_click_cb, cb_data);
+ //elm_object_item_part_content_set(navi_it, has_btn_flag ? "toolbar_button2" : "toolbar_button1", rbtn);
+ elm_toolbar_item_append(toolbar, NULL, _(rbutton_str), rbutton_click_cb, cb_data);
+ //has_btn_flag = TRUE;
}
}
+ elm_object_item_part_content_set(navi_it, "toolbar", toolbar);
}
return navi_it;
* The general API to push any evas object(@param[eo_view]) to the specialized navi_bar,
* which contents at most 3 buttons
*/
+EXPORT_PUBLIC
Elm_Object_Item *
setting_push_layout_navi_bar(char *title_str,
char *lbutton_str, char *rbutton_str,
* which contents at most 2 buttons
*/
-void
+EXPORT_PUBLIC
+Elm_Object_Item *
setting_push_layout_navi_bar_scroller(Evas_Object *win_main, char *title_str,
char *lbutton_str, char *rbutton_str,
setting_call_back_func lbutton_click_cb,
/* create scroller */
Evas_Object *scrl = NULL;
if (scroller != NULL) {
- scrl = *scroller = elm_scroller_add(win_main);
- retm_if(*scroller == NULL,
+ scrl = *scroller = elm_scroller_add(navi_bar);
+ retvm_if(*scroller == NULL,NULL,
"Cannot set scroller as contento of layout");
elm_scroller_bounce_set(*scroller, EINA_FALSE, EINA_TRUE);
elm_scroller_policy_set(*scroller, ELM_SCROLLER_POLICY_OFF,
evas_object_show(*scroller);
}
- setting_push_layout_navi_bar(title_str,
+ return setting_push_layout_navi_bar(title_str,
lbutton_str, rbutton_str, NULL,
lbutton_click_cb,
rbutton_click_cb,
* @ The API to push a genlist object(@param[genlist]) to the specialized navi_bar,
* which contents at most 2 buttons
*/
-void
+EXPORT_PUBLIC
+Elm_Object_Item *
setting_push_layout_navi_bar_genlist(Evas_Object *win_layout,
Evas_Object *win_obj, char *title_str,
char *lbutton_str, char *rbutton_str,
/* create scroller */
Evas_Object *gl = NULL;
if (genlist != NULL) {
- gl = *genlist = elm_genlist_add(win_layout);
- elm_object_style_set(*genlist, "dialogue");
- retm_if(*genlist == NULL,
+ *genlist = elm_genlist_add(navi_bar);
+ retvm_if(*genlist == NULL,NULL,
"Cannot set scroller object as contento of layout");
+ elm_genlist_realization_mode_set(*genlist, EINA_TRUE);
+ gl = *genlist;
+ elm_object_style_set(*genlist, "dialogue");
elm_genlist_clear(gl); /* first to clear list */
+ evas_object_smart_callback_add(gl, "realized", __gl_realized_cb, NULL);
}
- setting_push_layout_navi_bar(title_str,
+ return setting_push_layout_navi_bar(title_str,
lbutton_str, rbutton_str, NULL,
lbutton_click_cb,
rbutton_click_cb,
NULL, cb_data, gl, navi_bar, NULL);
}
+EXPORT_PUBLIC
+void setting_go_to_top(Evas_Object *content)
+{
+ setting_retm_if(content == NULL, "content is NULL");
+ const char *type = elm_object_widget_type_get(content);
+ SETTING_TRACE("content type:%s", type);
+
+ if (0 == safeStrCmp(type, "elm_genlist")) {
+ Elm_Object_Item *first_item = elm_genlist_first_item_get(content);
+ if (first_item) {
+ elm_genlist_item_show(first_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+ }
+ } else if (0 == safeStrCmp(type, "elm_scroller")) {
+ elm_scroller_region_show(content, 0, 0, 0, 0);
+ } else if (0 == safeStrCmp(type, "elm_gengrid")) {
+ Elm_Object_Item *first_item = elm_gengrid_first_item_get(content);
+ if (first_item) {
+ elm_gengrid_item_show(first_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+ }
+ } else if (NULL != type) {
+ Eina_List *sub_objs = (Eina_List *)elm_widget_scrollable_children_get(content);
+ ret_if(!sub_objs);
+ Evas_Object *sub_obj = NULL;
+ Eina_List *l = NULL;
+ const char *sub_type = NULL;
+
+ //just only search the first objects level
+ EINA_LIST_FOREACH(sub_objs, l, sub_obj)
+ {
+ if (!sub_obj) {
+ continue;
+ }
+
+ sub_type = elm_object_widget_type_get(sub_obj);
+ SETTING_TRACE("sub content type :%s", sub_type);
+ if (0 == safeStrCmp(sub_type, "elm_genlist")) {
+ Elm_Object_Item *first_item = elm_genlist_first_item_get(sub_obj);
+ if (first_item) {
+ elm_genlist_item_show(first_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+ }
+ } else if (0 == safeStrCmp(sub_type, "elm_scroller")) {
+ elm_scroller_region_show(sub_obj, 0, 0, 0, 0);
+ } else if (0 == safeStrCmp(sub_type, "elm_gengrid")) {
+ Elm_Object_Item *first_item = elm_gengrid_first_item_get(sub_obj);
+ if (first_item) {
+ elm_gengrid_item_show(first_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+ }
+ } else {
+ /* do nothing */
+ }
+ }
+ } else {
+ /* do nothing */
+ }
+}
+
/*
* To go to top of list in top view of navibar.
* @param[in] navibar
*/
+EXPORT_PUBLIC
void setting_go_to_navibar_list_top(Evas_Object *navibar)
{
Elm_Object_Item *navi_it = elm_naviframe_top_item_get(navibar);
- if (navi_it)
- {
+ if (navi_it) {
Evas_Object *content = elm_object_item_part_content_get(navi_it, "default");
- Elm_Object_Item *first_item = elm_genlist_first_item_get(content);
- if (first_item)
- {
- elm_genlist_item_show(first_item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
- }
+ setting_go_to_top(content);
}
}
+EXPORT_PUBLIC void setting_nf_check_vconf_cb(keynode_t *key, void *data)
+{
+ ret_if(data == NULL);
+ Evas_Object *check = data;
+ char *vconf_name = vconf_keynode_get_name(key);
+ int status = vconf_keynode_get_bool(key);
+ SETTING_TRACE("Vconf[%s] has changed to be %d just now", vconf_name, status);
+ elm_check_state_set(check, status);
+}
+
+EXPORT_PUBLIC void setting_nf_check_change_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ const char *vconf = data;
+ Eina_Bool state = elm_check_state_get(obj);
+ vconf_set_bool(vconf, state);
+}
+
+EXPORT_PUBLIC void setting_nf_check_del_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ SETTING_TRACE_BEGIN;
+ ret_if(!data);
+ const char *vconf = data;
+ (void)vconf_ignore_key_changed(vconf, setting_nf_check_vconf_cb);
+}