2 * Copyright (c) 2010 Samsung Electronics, Inc.
5 * This software is a confidential and proprietary information
6 * of Samsung Electronics, Inc. ("Confidential Information"). You
7 * shall not disclose such Confidential Information and shall use
8 * it only in accordance with the terms of the license agreement
9 * you entered into with Samsung Electronics.
11 #include <app_manager.h>
14 #include <vconf-keys.h>
15 #include <system_settings.h>
16 #include <pkgmgr-info.h>
18 #include <media_content.h>
19 //#include <media_info_comm_feature.h>
23 #include "setting_data_vconf.h"
24 #include "setting-homescreen.h"
25 #include "setting_view_toast.h"
28 static struct _homescreen_menu_item homescreen_menu_its[] = {
29 { "IDS_HS_MBODY_HOME_ICON_SIZE_ABB", 0, 0, _homescreen_gl_viewtype_cb },
30 { "IDS_ST_MBODY_HOME_BACKGROUND_ABB", 0, 0, _wallpaper_gl_cb },
31 { "IDS_ST_OPT_EDIT_HOME_SCREEN_ABB", 0, 0, _homescreen_gl_edit_home_cb },
35 static struct _homebg_menu_item homebg_menu_its[] = {
36 { "IDS_COM_MBODY_COLOUR_PALETTE", _show_bg_slide_cb },
37 { "IDS_ST_BODY_WALLPAPERS", _wallpaper_gl_cb },
38 { "IDS_ST_BODY_GALLERY", _gallery_gl_cb },
42 static struct _color color[] = {
43 { 255, 111, 32, "FF6F20" },
44 { 244, 102, 141, "F4668D" },
45 { 249, 55, 66, "F93742" },
46 { 167, 63, 149, "A73F95" },
47 { 132, 0, 196, "8400C4" },
48 { 3, 54, 224, "0336E0" },
49 { 0, 175, 164, "00AFA4" },
50 { 96, 192, 30, "60C01E" },
51 { 31, 147, 0, "1F9300" },
52 { 107, 58, 51 ,"6B3A33" },
53 { 48, 48, 48, "303030" },
54 { 0, 0, 0, "000000" }, //default black
58 static char * home_icon_sub_str[] = {
59 "IDS_HS_OPT_LARGE_ICONS_ABB",
60 "IDS_HS_OPT_SMALL_ICONS_ABB",
63 static char * thumb_path[] = {
64 SETTING_DEFAULT_WALLPAPER_PATH"/btn_icons/setting_icon_color_platte.png",
65 SETTING_DEFAULT_WALLPAPER_PATH"/btn_icons/setting_icon_wallpaper.png",
66 CROPPED_GALLERY_DEFAULT_WALLPAPER_PATH,
67 SETTING_DEFAULT_WALLPAPER_PATH"/wallpaper_01.png",
68 SETTING_DEFAULT_WALLPAPER_PATH"/wallpaper_02.png",
69 SETTING_DEFAULT_WALLPAPER_PATH"/wallpaper_03.png",
70 SETTING_DEFAULT_WALLPAPER_PATH"/wallpaper_04.png",
71 SETTING_DEFAULT_WALLPAPER_PATH"/wallpaper_05.png",
72 SETTING_DEFAULT_WALLPAPER_PATH"/wallpaper_06.png"
75 static void _show_viewtype_list(void* data);
76 static void _show_homebg_list(void* data);
77 static void _show_edit_home(void* data);
78 static void _show_edit_apps(void* data);
79 static void _wallpaper_vconf_color_changed_cb(keynode_t *node, void *data);
80 static void _wallpaper_vconf_wallpaper_changed_cb(keynode_t *node, void *data);
82 static appdata* temp_ad = NULL;
83 static Evas_Object * g_home_bg_genlist = NULL;
84 static int touch_mode = NONE;
85 static int gallery_img_cnt = 0;
86 static int is_prev_update = 0;
87 static char* last_img_path = NULL;
88 static bool running_gallery = false;
89 static Ecore_Timer *running_gallery_timer = NULL;
91 static Evas_Object * g_wallpaper_layout = NULL;
92 static Evas_Object * g_wallpaper_scroller = NULL;
93 static Evas_Object * g_color_page = NULL;
94 static Evas_Object * g_gallery_prv = NULL;
95 static Evas_Object * g_wallpaper_box = NULL;
96 static bool wallpaper_touched = false;
98 static int _chk_pkg_install(const char *pkgid)
101 pkgmgrinfo_pkginfo_h pkginfo_h = NULL;
103 //get pkg appinfo handler
104 ret = pkgmgrinfo_pkginfo_get_pkginfo(pkgid, &pkginfo_h);
105 if (PMINFO_R_OK != ret || NULL == pkginfo_h) {
106 DBG("un-installed pkg [%s]", pkgid);
111 pkgmgrinfo_pkginfo_destroy_pkginfo(pkginfo_h);
117 _gallery_item_cb(media_info_h item, void *user_data)
119 if( user_data == NULL )
121 DBG("user_data == NULL");
124 media_info_get_file_path(item, &last_img_path);
125 //DBG("last gallery image path[%s]", last_img_path);
130 static void _get_last_img_path()
132 Eina_List *item_list = NULL;
133 filter_h media_filter;
136 ret = media_filter_create(&media_filter);
137 if(ret != MEDIA_CONTENT_ERROR_NONE)
139 DBG("Cannot create filter. err");
142 ret = media_filter_set_condition(media_filter, "((MEDIA_TYPE=0 OR MEDIA_TYPE=1) AND (MEDIA_STORAGE_TYPE=0 OR MEDIA_STORAGE_TYPE=1 OR MEDIA_STORAGE_TYPE=101 OR MEDIA_STORAGE_TYPE=121))", MEDIA_CONTENT_COLLATE_DEFAULT);
143 if(ret != MEDIA_CONTENT_ERROR_NONE)
145 DBG("Cannot set condition. err");
148 ret = media_filter_set_order(media_filter, MEDIA_CONTENT_ORDER_DESC, "MEDIA_TIMELINE, MEDIA_DISPLAY_NAME", MEDIA_CONTENT_COLLATE_NOCASE);
149 if(ret != MEDIA_CONTENT_ERROR_NONE)
151 DBG("media_filter_set_order is failed, err");
154 media_content_connect();
157 ret = media_info_foreach_media_from_db_with_media_mode(media_filter, _gallery_item_cb, &item_list);
158 if(ret != MEDIA_CONTENT_ERROR_NONE)
160 DBG("Cannot retrive data err[%d]", ret);
163 media_content_disconnect();
164 media_filter_destroy(media_filter);
168 void _clear_homescreen_cb(void *data , Evas *e, Evas_Object *obj, void *event_info)
170 unregister_vconf_changing("db/wms/home_bg_palette", _wallpaper_vconf_color_changed_cb);
171 unregister_vconf_changing("db/wms/home_bg_mode", _wallpaper_vconf_wallpaper_changed_cb);
174 Evas_Object* layout = NULL;
175 Elm_Object_Item *nf_it = NULL;
176 layout = create_wallpaper_list(temp_ad);
177 elm_naviframe_item_pop(temp_ad->nf);
178 nf_it = elm_naviframe_item_push(temp_ad->nf, NULL, NULL, NULL, layout, NULL);
179 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
187 ret = feedback_deinitialize();
188 if(ret != FEEDBACK_ERROR_NONE){
189 DBG("feedback_deinitialize failed");
194 void _homescreen_gl_viewtype_cb(void *data, Evas_Object *obj, void *event_info)
196 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
200 _show_viewtype_list(data);
204 /* 2: home background */
205 void _homescreen_gl_homebg_cb(void *data, Evas_Object *obj, void *event_info)
207 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
211 _show_homebg_list(data);
215 /* 3: Edit home screen */
216 void _homescreen_gl_edit_home_cb(void *data, Evas_Object *obj, void *event_info)
218 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
222 _show_edit_home(data);
227 void _homescreen_gl_edit_apps_cb(void *data, Evas_Object *obj, void *event_info)
229 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
233 _show_edit_apps(data);
237 /* homescreen main list */
238 char * _gl_homescreen_title_get(void *data, Evas_Object *obj, const char *part)
241 Homescreen_Item_Data *id = data;
242 int index = id->index;
244 if( !strcmp(part, "elm.text") )
246 snprintf(buf, sizeof(buf)-1, "%s", _(homescreen_menu_its[index].name));
252 Evas_Object * _gl_homescreen_check_get(void *data, Evas_Object *obj, const char *part)
254 Evas_Object *check = NULL;
256 Homescreen_Item_Data *id = data;
257 int index = id->index;
259 if( homescreen_menu_its[index % (HOME_MENU_COUNT)].is_check_type && !strcmp(part, "elm.icon") )
261 check = elm_check_add(obj);
262 elm_check_state_set(check, (homescreen_menu_its[index % (HOME_MENU_COUNT)].state) ? EINA_TRUE : EINA_FALSE);
263 evas_object_size_hint_align_set(check, EVAS_HINT_FILL, EVAS_HINT_FILL);
264 evas_object_size_hint_weight_set(check, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
272 void _homescreen_gl_del(void *data, Evas_Object *obj)
274 Homescreen_Item_Data *id = data;
279 Evas_Object* _create_homescreen_list(void* data)
284 DBG("%s", "_create_homescreen_list - appdata is null");
287 Evas_Object * genlist = NULL;
288 struct _homescreen_menu_item * menu_its = NULL;
293 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
294 itc->item_style = "1text";
295 itc->func.text_get = _gl_homescreen_title_get;
296 itc->func.del = _homescreen_gl_del;
298 Evas_Object *layout = elm_layout_add(ad->nf);
299 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
300 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
302 genlist = elm_genlist_add(layout);
303 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
305 menu_its = homescreen_menu_its;
307 for (idx = 0; idx < HOME_MENU_COUNT; idx++)
309 Homescreen_Item_Data *id = calloc(sizeof(Homescreen_Item_Data), 1);
311 id->item = elm_genlist_item_append(
312 genlist, // genlist object
316 ELM_GENLIST_ITEM_NONE,
317 menu_its[ idx ].func, // call back
320 elm_genlist_item_class_free(itc);
321 elm_object_part_content_set(layout, "elm.genlist", genlist);
326 char * _get_homeview_type_subtitle()
329 vconf_get_int(VCONFKEY_SETAPPL_HOMESCREEN_TYPE_INT, &value);
330 DBG("VCONFKEY_SETAPPL_HOMESCREEN_TYPE_INT : %d", value);
332 char * substr = NULL;
333 substr = strdup(_(home_icon_sub_str[value]));
338 static char * _gl_viewtype_title_get(void *data, Evas_Object *obj, const char *part)
340 Item_Data *id = data;
342 if (!strcmp(part, "elm.text")){
345 snprintf(buf, sizeof(buf)-1, "%s",_("IDS_HS_OPT_LARGE_ICONS_ABB"));
349 snprintf(buf, sizeof(buf)-1, "%s",_("IDS_HS_OPT_SMALL_ICONS_ABB"));
356 static Evas_Object * _gl_viewtype_radio_get(void *data, Evas_Object *obj, const char *part)
358 Evas_Object *radio = NULL;
359 Evas_Object *radio_main = evas_object_data_get(obj, "radio_main");
360 Item_Data *id = data;
362 if( !strcmp(part, "elm.icon") )
364 radio = elm_radio_add(obj);
365 elm_object_style_set(radio, "list");
366 elm_radio_state_value_set(radio, id->index);
367 evas_object_size_hint_align_set(radio, EVAS_HINT_FILL, EVAS_HINT_FILL);
368 evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
369 evas_object_propagate_events_set(radio, EINA_FALSE);
370 evas_object_repeat_events_set(radio, EINA_TRUE);
371 elm_radio_group_add(radio, radio_main);
377 static void _viewtype_gl_del(void *data, Evas_Object *obj)
379 Item_Data *id = data;
384 static void _viewtype_gl_cb(void *data, Evas_Object *obj, void *event_info)
386 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
389 vconf_set_int(VCONFKEY_SETAPPL_HOMESCREEN_TYPE_INT, idx);
391 //elm_genlist_realized_items_update(g_screen_time_genlist);
392 elm_naviframe_item_pop(temp_ad->nf);
393 if(!temp_ad->homescreen_rdg)
395 evas_object_del(temp_ad->homescreen_rdg);
396 temp_ad->homescreen_rdg = NULL;
400 void _show_viewtype_list(void* data)
405 DBG("%s", "_show_viewtype_list - appdata is null");
408 Evas_Object *layout = NULL;
409 Evas_Object *genlist = NULL;
410 Elm_Object_Item *nf_it = NULL;
416 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
417 itc->item_style = "1text.1icon.1";
418 itc->func.text_get = _gl_viewtype_title_get;
419 itc->func.content_get = _gl_viewtype_radio_get;
420 itc->func.del = _viewtype_gl_del;
422 layout = elm_layout_add(ad->nf);
423 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
424 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
426 genlist = elm_genlist_add(layout);
427 elm_genlist_block_count_set(genlist, 14);
428 elm_genlist_mode_set(genlist, ELM_LIST_COMPRESS);
429 evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
431 for( idx = 0; idx < VIEWTYPE_COUNT; idx++ )
433 Item_Data *id = calloc(sizeof(Item_Data), 1);
435 id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, _viewtype_gl_cb, (void*)idx);
438 ad->homescreen_rdg = elm_radio_add(genlist);
439 elm_radio_state_value_set(ad->homescreen_rdg, -1);
441 vconf_get_int(VCONFKEY_SETAPPL_HOMESCREEN_TYPE_INT, &value);
442 elm_radio_value_set(ad->homescreen_rdg, value);
443 evas_object_data_set(genlist, "radio_main", ad->homescreen_rdg);
445 elm_object_part_content_set(layout, "elm.genlist", genlist);
447 elm_genlist_item_class_free(itc);
449 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
450 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
453 /* home background */
454 static char * _gl_homebg_title_get(void *data, Evas_Object *obj, const char *part)
457 Item_Data *id = data;
459 if( !strcmp(part, "elm.text") )
461 snprintf(buf, sizeof(buf)-1, "%s", _(homebg_menu_its[id->index].name));
466 static void _homebg_gl_del(void *data, Evas_Object *obj)
468 Item_Data *id = data;
473 static void _show_homebg_list(void* data)
478 DBG("%s", "_show_homebg_list - appdata is null");
481 Evas_Object *genlist = NULL;
482 Elm_Object_Item *nf_it = NULL;
483 struct _homebg_menu_item *menu_its = NULL;
488 Elm_Genlist_Item_Class *itc = elm_genlist_item_class_new();
489 itc->item_style = "1text";
490 itc->func.text_get = _gl_homebg_title_get;
491 itc->func.del = _homebg_gl_del;
493 Evas_Object *layout = elm_layout_add(ad->nf);
494 elm_layout_file_set(layout, EDJE_PATH, "setting/genlist/layout");
495 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
497 genlist = elm_genlist_add(layout);
498 elm_genlist_block_count_set(genlist, 14);
500 menu_its = homebg_menu_its;
502 for( idx = 0; idx < HOME_BG_LIST_COUNT; idx++ )
504 Item_Data *id = calloc(sizeof(Item_Data), 1);
506 id->item = elm_genlist_item_append(genlist, itc, id, NULL, ELM_GENLIST_ITEM_NONE, menu_its[ idx ].func, ad);
509 g_home_bg_genlist = genlist;
511 elm_object_part_content_set(layout, "elm.genlist", genlist);
513 elm_genlist_item_class_free(itc);
515 nf_it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout, NULL);
516 elm_naviframe_item_title_enabled_set(nf_it, EINA_FALSE, EINA_FALSE);
519 static void _layout_del_cb(void *data , Evas *e, Evas_Object *obj, void *event_info)
521 page_data *pd = data;
525 static Eina_Bool animator_cb(void *data)
527 page_data *pd = (page_data *)data;
529 //Since mapbuf is not perfect, Enable them after the size calculation is finished
531 for( idx = 0; idx < BG_COLOR_COUNT/WALLPAPER_CNT_PER_PAGE; idx++ ){
532 elm_mapbuf_enabled_set(pd->mapbuf[idx], EINA_TRUE);
534 return ECORE_CALLBACK_CANCEL;
537 static int _set_bg_color_type(int type_num)
539 if( type_num < 0 || type_num > BG_COLOR_COUNT-1 )
542 //set color -> set mode
543 vconf_set_str("db/wms/home_bg_palette", color[type_num].hex); //ex. fcb800
544 vconf_set_int("db/wms/home_bg_mode", 0);
546 //vconf_set_int(VCONFKEY_SETAPPL_HOME_BG_COLOR_TYPE_INT, type_num);
547 DBG("color [%s]", color[type_num].hex);
552 static int _set_wallpaper_path(int thumbIdx)
554 if( thumbIdx < NUM_DEFAULT_THUMB_BUTTON || thumbIdx > DEFAULT_WALLPAPER_COUNT+NUM_DEFAULT_THUMB_BUTTON )
557 if(system_settings_set_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, thumb_path[thumbIdx]) != SYSTEM_SETTINGS_ERROR_NONE)
559 DBG("Homescreen set Error : %s", thumb_path[thumbIdx]);
563 //caution : set mode after change wallpaper
564 if(gallery_img_cnt && thumbIdx==NUM_DEFAULT_THUMB_BUTTON){
566 vconf_set_str("db/wms/home_bg_wallpaper", ".bgwallpaper.jpg");
567 vconf_set_int("db/wms/home_bg_mode", 2);
571 char *wallpaper_name=NULL;
572 wallpaper_name = strstr(thumb_path[thumbIdx], "wallpaper_");
573 vconf_set_str("db/wms/home_bg_wallpaper", wallpaper_name);
574 //DBG("wallpaper_name[%s]",wallpaper_name);
576 vconf_set_int("db/wms/home_bg_mode", 1);
583 static int prev_x = 0;
585 static void _mouse_down_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
587 if(running_gallery == true){
592 touch_mode = TOUCH_DOWN;
593 Evas_Event_Mouse_Down *ev = event_info;
594 prev_x = ev->canvas.x;
597 static void _mouse_up_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
599 if( touch_mode == TOUCH_MOVE )
602 int type = (int)data;
604 DBG("Setting - BG type is %d", type);
609 feedback_play(FEEDBACK_PATTERN_TOUCH_TAP);
611 if(_set_bg_color_type(type))
613 if( temp_ad != NULL )
615 elm_naviframe_item_pop(temp_ad->nf);
619 struct _toast_data * toast = _create_toast(temp_ad, REPL(_("IDS_GALLERY_TPOP_HOME_BACKGROUND_SET"),"\n","<br>"));
621 _show_toast(temp_ad, toast);
625 DBG("Setting - BG type is wrong!!");
629 static void _mouse_move_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
631 if(running_gallery == true){
636 Evas_Event_Mouse_Move *ev = event_info;
638 int cur_x = ev->cur.canvas.x;
640 if( abs(cur_x - prev_x) > 15)
642 // todo : confirm and remove
643 touch_mode = TOUCH_MOVE;
647 static void _mouse_up_wallpaper_cb(void *data, Evas *evas, Evas_Object *obj, void *event_info)
649 if(running_gallery == true){
654 if( touch_mode == TOUCH_MOVE )
659 DBG("Setting - wallpaper idx is %d", idx);
667 feedback_play(FEEDBACK_PATTERN_TOUCH_TAP);
668 _show_bg_slide_cb(temp_ad, obj, event_info);
673 feedback_play(FEEDBACK_PATTERN_TOUCH_TAP);
674 _gallery_gl_cb(temp_ad, obj, event_info);
675 running_gallery = true;
676 elm_object_scroll_freeze_push(obj);
680 if(_set_wallpaper_path(idx))
682 feedback_play(FEEDBACK_PATTERN_TOUCH_TAP);
683 wallpaper_touched = true;
684 if( temp_ad != NULL )
686 elm_naviframe_item_pop(temp_ad->nf);
690 struct _toast_data * toast = _create_toast(temp_ad, REPL(_("IDS_GALLERY_TPOP_HOME_BACKGROUND_SET"),"\n","<br>"));
692 _show_toast(temp_ad, toast);
697 DBG("Setting - wallpaper path is wrong!!");
701 static void _page_show(void *data, Evas * e, Evas_Object * obj, void *event_info)
706 vconf_get_int(VCONFKEY_SETAPPL_HOME_BG_COLOR_TYPE_INT, &idx);
707 page = (idx-1)/WALLPAPER_CNT_PER_PAGE;
711 elm_scroller_page_show(obj, page, 0);
714 static Evas_Object* _create_index(Evas_Object* parent)
716 Evas_Object *layout, *scroller, *box, *page_layout, *page, *mapbuf;
723 layout = elm_layout_add(parent);
727 page_data *pd = calloc(1, sizeof(page_data));
731 elm_layout_file_set(layout, EDJE_PATH, "setting-test/index");
732 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
733 evas_object_show(layout);
734 evas_object_event_callback_add(layout, EVAS_CALLBACK_DEL, _layout_del_cb, pd);
736 /* Create Scroller */
737 scroller = elm_scroller_add(layout);
738 elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE);
739 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
740 evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
741 //elm_scroller_page_relative_set(scroller, 1.0, 0.0);
742 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF);
743 elm_scroller_page_scroll_limit_set(scroller, 1, 0);
744 elm_object_scroll_lock_y_set(scroller, EINA_TRUE);
745 elm_scroller_page_size_set(scroller, WIN_SIZE, WIN_SIZE);
746 elm_object_part_content_set(layout, "scroller", scroller);
747 elm_object_style_set(scroller, "effect");
748 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
749 evas_object_show(scroller);
752 box = elm_box_add(scroller);
753 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
754 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
755 elm_box_horizontal_set(box, EINA_TRUE);
756 elm_object_content_set(scroller, box);
757 evas_object_show(box);
760 int totalPageCnt = 0;
761 totalPageCnt = (BG_COLOR_COUNT+1)/NUM_MAX_THUMB_IN_PAGES;
762 for( index = 0; index < totalPageCnt; index++ )
764 page_layout = elm_layout_add(box);
765 evas_object_size_hint_weight_set(page_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
766 evas_object_size_hint_align_set(page_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
768 elm_layout_file_set(page_layout, EDJE_PATH, "thumbnail_page");
769 evas_object_show(page_layout);
772 for( thumbIdx = index*NUM_MAX_THUMB_IN_PAGES; thumbIdx < ((index*NUM_MAX_THUMB_IN_PAGES) + NUM_MAX_THUMB_IN_PAGES); thumbIdx++ )
774 Evas_Object *thumbnail_layout = elm_layout_add(page_layout);
775 evas_object_size_hint_weight_set(thumbnail_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
776 evas_object_size_hint_align_set(thumbnail_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
777 elm_layout_file_set(thumbnail_layout, EDJE_PATH, "thumbnail");
778 evas_object_show(thumbnail_layout);
781 page = evas_object_rectangle_add(evas_object_evas_get(page_layout));
782 evas_object_color_set(page, color[thumbIdx].r, color[thumbIdx].g, color[thumbIdx].b, 255);
783 evas_object_size_hint_weight_set(page, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
784 evas_object_size_hint_align_set(page, EVAS_HINT_FILL, EVAS_HINT_FILL);
786 elm_object_part_content_set(thumbnail_layout, "thumb", page);
787 evas_object_show(page);
789 switch ( thumbIdx%NUM_MAX_THUMB_IN_PAGES)
792 elm_object_part_content_set(page_layout, "thumb1", thumbnail_layout);
795 elm_object_part_content_set(page_layout, "thumb2", thumbnail_layout);
800 evas_object_event_callback_add(page, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, NULL);
801 evas_object_event_callback_add(page, EVAS_CALLBACK_MOUSE_UP, _mouse_up_cb, (void*)(thumbIdx));
802 evas_object_event_callback_add(page, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, NULL);
804 elm_box_pack_end(box, page_layout);
807 evas_object_event_callback_add(scroller, EVAS_CALLBACK_RESIZE, _page_show, NULL);
809 //ecore_animator_add(animator_cb, pd);
815 _wallpaper_layout_del_cb(void *data , Evas *e, Evas_Object *obj, void *event_info)
817 wallpaper_page_data *pd = data;
822 wallpaper_animator_cb(void *data)
824 wallpaper_page_data *pd = (wallpaper_page_data *)data;
826 //Since mapbuf is not perfect, Enable them after the size calculation is finished
828 for( idx = 0; idx < DEFAULT_WALLPAPER_COUNT/WALLPAPER_CNT_PER_PAGE; idx++ ){
829 elm_mapbuf_enabled_set(pd->mapbuf[idx], EINA_TRUE);
831 return ECORE_CALLBACK_CANCEL;
834 static void _wallpaper_page_show(void *data, Evas * e, Evas_Object * obj, void *event_info)
836 DBG("_wallpaper_page_show");
838 char* ret_wallpaper = NULL;
841 if(system_settings_get_value_string(SYSTEM_SETTINGS_KEY_WALLPAPER_HOME_SCREEN, &ret_wallpaper) != SYSTEM_SETTINGS_ERROR_NONE)
847 for( idx; idx < DEFAULT_WALLPAPER_COUNT; idx++ )
849 if (ret_wallpaper && !strcmp(ret_wallpaper, thumb_path[idx]))
851 DBG("wallpaper[%s] idx [%d]",ret_wallpaper,idx);
852 page_idx = idx / WALLPAPER_CNT_PER_PAGE;
858 //set just first page to show
860 elm_scroller_page_show(obj, page_idx, 0);
863 static void _update_wallpaper()
865 Evas_Object *page_layout, *thumbnail, *color_page, *gallery_page, *touch_eo;
866 Evas_Object *box = g_wallpaper_box;
868 if (box && !wallpaper_touched) {
870 int totalPageCnt = 0;
871 totalPageCnt = (DEFAULT_WALLPAPER_COUNT+NUM_DEFAULT_THUMB_BUTTON+gallery_img_cnt+1)/NUM_MAX_THUMB_IN_PAGES;
873 for(index = 0; index < totalPageCnt; index++ )
875 page_layout = elm_layout_add(box);
876 evas_object_size_hint_weight_set(page_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
877 evas_object_size_hint_align_set(page_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
879 elm_layout_file_set(page_layout, EDJE_PATH, "thumbnail_page");
880 evas_object_show(page_layout);
883 for( thumbIdx = index*NUM_MAX_THUMB_IN_PAGES; thumbIdx < ((index*NUM_MAX_THUMB_IN_PAGES) + NUM_MAX_THUMB_IN_PAGES); thumbIdx++ )
885 DBG("total : %d, thumbIdx : %d",DEFAULT_WALLPAPER_COUNT+NUM_DEFAULT_THUMB_BUTTON+gallery_img_cnt+1, thumbIdx);
886 if(DEFAULT_WALLPAPER_COUNT+NUM_DEFAULT_THUMB_BUTTON+gallery_img_cnt == thumbIdx)
891 Evas_Object *thumbnail_layout = elm_layout_add(page_layout);
892 evas_object_size_hint_weight_set(thumbnail_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
893 evas_object_size_hint_align_set(thumbnail_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
894 elm_layout_file_set(thumbnail_layout, EDJE_PATH, "thumbnail");
895 evas_object_show(thumbnail_layout);
896 //elm_object_signal_emit(thumbnail_layout, "thumb_bg,white", "thumb_bg");
898 // color palette - set color box
900 char *bg_color = NULL;
901 int R = 0x00, G = 0x00, B = 0x00;
902 bg_color = vconf_get_str("db/wms/home_bg_palette");
903 colorstr_to_decimal(bg_color, &R, &G, &B);
904 DBG("R : [%d] G : [%d] B : [%d]", R, G, B);
905 color_page = evas_object_rectangle_add(evas_object_evas_get(page_layout));
906 evas_object_color_set(color_page, R, G, B, 255);
907 evas_object_size_hint_weight_set(color_page, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
908 evas_object_size_hint_align_set(color_page, EVAS_HINT_FILL, EVAS_HINT_FILL);
909 elm_object_part_content_set(thumbnail_layout, "thumb", color_page);
910 evas_object_show(color_page);
911 g_color_page = color_page;
915 _get_last_img_path();
916 gallery_page = elm_image_add(page_layout);
917 elm_image_file_set(gallery_page, last_img_path, NULL);
918 elm_object_part_content_set(thumbnail_layout, "thumb", gallery_page);
919 evas_object_show(gallery_page);
924 thumbnail = elm_image_add(page_layout);//thumb_path
927 //default 1,2page thumbnail button : pallette btn, gallery btn
928 if(gallery_img_cnt || thumbIdx == 0 || thumbIdx == 1){
932 idx_arr = thumbIdx+1;
935 snprintf(buf, sizeof(buf), "%s", thumb_path[idx_arr]);
937 if ( ecore_file_exists(buf) )
939 elm_image_file_set(thumbnail, buf, NULL);
943 elm_image_file_set(thumbnail, NULL, NULL);
945 elm_image_aspect_fixed_set(thumbnail, EINA_FALSE);
946 elm_image_resizable_set(thumbnail, EINA_TRUE, EINA_TRUE);
948 if(thumbIdx == 0 || thumbIdx == 1)
949 elm_object_part_content_set(thumbnail_layout, "thumb_btn", thumbnail);
951 elm_object_part_content_set(thumbnail_layout, "thumb", thumbnail);
953 if(thumbIdx == 2 && gallery_img_cnt){
954 g_gallery_prv = thumbnail;
956 evas_object_show(thumbnail);
960 vconf_get_int("db/wms/home_bg_mode", &bg_mode);
963 char *sel_wallpaper = NULL;
964 sel_wallpaper = vconf_get_str("db/menu_widget/bgset");
965 if(buf && !strcmp(buf, sel_wallpaper)){
966 Evas_Object *selected_rect = elm_image_add(page_layout);
967 elm_image_file_set(selected_rect, SETTING_DEFAULT_WALLPAPER_PATH"/btn_icons/settings_wallpaper_selected.png", NULL);
968 elm_image_aspect_fixed_set(selected_rect, EINA_FALSE);
969 elm_image_resizable_set(selected_rect, EINA_TRUE, EINA_TRUE);
970 elm_object_part_content_set(thumbnail_layout, "thumb_select", selected_rect);
971 evas_object_show(selected_rect);
975 switch ( thumbIdx%NUM_MAX_THUMB_IN_PAGES)
978 elm_object_part_content_set(page_layout, "thumb1", thumbnail_layout);
981 elm_object_part_content_set(page_layout, "thumb2", thumbnail_layout);
987 touch_eo = color_page;
988 elm_object_signal_emit(thumbnail_layout, "thumbnail,opacity", "thumb_op");
990 else if(thumbIdx == 1){
991 touch_eo = gallery_page;
992 elm_object_signal_emit(thumbnail_layout, "thumbnail,opacity", "thumb_op");
995 touch_eo = thumbnail;
996 elm_object_signal_emit(thumbnail_layout, "thumbnail,default", "thumb_op");
999 evas_object_event_callback_add(touch_eo, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, NULL);
1000 evas_object_event_callback_add(touch_eo, EVAS_CALLBACK_MOUSE_UP, _mouse_up_wallpaper_cb, (void*)idx_arr);
1001 evas_object_event_callback_add(touch_eo, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, NULL);
1003 elm_box_pack_end(box, page_layout);
1005 //_wallpaper_page_show(NULL, NULL, g_wallpaper_scroller, NULL);
1010 static void _wallpaper_page_refresh(void *data, Evas * e, Evas_Object * obj, void *event_info)
1012 DBG("is_prev_update , %d", is_prev_update);
1015 bool _is_file_exist(const char* filepath)
1017 if ( ecore_file_exists(filepath) == EINA_TRUE)
1022 DBG("not exist %s", filepath);
1026 static void _wallpaper_vconf_color_changed_cb(keynode_t *node, void *data)
1028 char *bg_color = NULL;
1029 int R = 0x00, G = 0x00, B = 0x00;
1030 bg_color = vconf_get_str("db/wms/home_bg_palette");
1031 colorstr_to_decimal(bg_color, &R, &G, &B);
1032 evas_object_color_set(g_color_page, R, G, B, 255);
1033 evas_object_show(g_color_page);
1036 static void _wallpaper_vconf_wallpaper_changed_cb(keynode_t *node, void *data)
1038 DBG("_wallpaper_vconf_wallpaper_changed_cb");
1040 vconf_get_int("db/wms/home_bg_mode", &bg_mode);
1041 if(bg_mode == 2 && !gallery_img_cnt){
1042 DBG("gallery_img_cnt : %d",gallery_img_cnt);
1044 if(g_wallpaper_layout)
1046 evas_object_del(g_wallpaper_layout);
1047 g_wallpaper_layout = NULL;
1050 if(bg_mode == 2 && gallery_img_cnt){
1052 //char *bg_gallery = NULL;
1053 //bg_gallery = vconf_get_str(VCONFKEY_BGSET);
1054 //DBG(" bg mode 2 , gallery true , [%s]", bg_gallery);
1055 //elm_image_file_set(g_gallery_prv, bg_gallery, NULL);
1056 //evas_object_show(g_gallery_prv);
1057 _update_wallpaper();
1060 if(bg_mode == 0 || bg_mode == 1)
1062 _update_wallpaper();
1064 wallpaper_touched = false;
1067 static Evas_Object* _create_wallpaper_thumbnail(Evas_Object* parent)
1069 Evas_Object *layout, *scroller, *box, *page_layout, *thumbnail, *mapbuf, *color_page, *gallery_page;
1072 Evas_Object *touch_eo=NULL;
1077 if (_is_file_exist(CROPPED_GALLERY_DEFAULT_WALLPAPER_PATH) == true)
1079 //cropped gallery image exist or not
1080 gallery_img_cnt = 1; //fixed on 1page
1085 layout = elm_layout_add(parent);
1089 elm_layout_file_set(layout, EDJE_PATH, "setting-test/index");
1090 evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1091 evas_object_show(layout);
1092 g_wallpaper_layout = layout;
1094 /* Create Scroller */
1095 scroller = elm_scroller_add(layout);
1096 elm_scroller_loop_set(scroller, EINA_FALSE, EINA_FALSE);
1097 evas_object_size_hint_weight_set(scroller, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1098 evas_object_size_hint_align_set(scroller, EVAS_HINT_FILL, EVAS_HINT_FILL);
1099 //elm_scroller_page_relative_set(scroller, 1.0, 0.0);
1100 elm_scroller_policy_set(scroller, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_OFF);
1101 elm_scroller_page_scroll_limit_set(scroller, 1, 0);
1102 elm_object_scroll_lock_y_set(scroller, EINA_TRUE);
1103 elm_scroller_page_size_set(scroller, WIN_SIZE, WIN_SIZE);
1104 elm_object_part_content_set(layout, "scroller", scroller);
1105 elm_object_style_set(scroller, "effect");
1106 elm_scroller_bounce_set(scroller, EINA_TRUE, EINA_TRUE);
1107 evas_object_show(scroller);
1108 g_wallpaper_scroller = scroller;
1111 box = elm_box_add(scroller);
1112 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1113 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
1114 elm_box_horizontal_set(box, EINA_TRUE);
1115 elm_object_content_set(scroller, box);
1116 evas_object_show(box);
1117 g_wallpaper_box = box;
1119 int totalPageCnt = 0;
1120 totalPageCnt = (DEFAULT_WALLPAPER_COUNT+NUM_DEFAULT_THUMB_BUTTON+gallery_img_cnt+1)/NUM_MAX_THUMB_IN_PAGES;
1121 for( index = 0; index < totalPageCnt; index++ )
1123 page_layout = elm_layout_add(box);
1124 evas_object_size_hint_weight_set(page_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1125 evas_object_size_hint_align_set(page_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
1127 elm_layout_file_set(page_layout, EDJE_PATH, "thumbnail_page");
1128 evas_object_show(page_layout);
1131 for( thumbIdx = index*NUM_MAX_THUMB_IN_PAGES; thumbIdx < ((index*NUM_MAX_THUMB_IN_PAGES) + NUM_MAX_THUMB_IN_PAGES); thumbIdx++ )
1133 DBG("total : %d, thumbIdx : %d",DEFAULT_WALLPAPER_COUNT+NUM_DEFAULT_THUMB_BUTTON+gallery_img_cnt+1, thumbIdx);
1134 if(DEFAULT_WALLPAPER_COUNT+NUM_DEFAULT_THUMB_BUTTON+gallery_img_cnt == thumbIdx)
1139 Evas_Object *thumbnail_layout = elm_layout_add(page_layout);
1140 evas_object_size_hint_weight_set(thumbnail_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1141 evas_object_size_hint_align_set(thumbnail_layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
1142 elm_layout_file_set(thumbnail_layout, EDJE_PATH, "thumbnail");
1143 evas_object_show(thumbnail_layout);
1144 //elm_object_signal_emit(thumbnail_layout, "thumb_bg,white", "thumb_bg");
1146 // color palette - set color box
1148 char *bg_color = NULL;
1149 int R = 0x00, G = 0x00, B = 0x00;
1150 bg_color = vconf_get_str("db/wms/home_bg_palette");
1151 colorstr_to_decimal(bg_color, &R, &G, &B);
1152 DBG("R : [%d] G : [%d] B : [%d]", R, G, B);
1153 color_page = evas_object_rectangle_add(evas_object_evas_get(page_layout));
1154 evas_object_color_set(color_page, R, G, B, 255);
1155 evas_object_size_hint_weight_set(color_page, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
1156 evas_object_size_hint_align_set(color_page, EVAS_HINT_FILL, EVAS_HINT_FILL);
1157 elm_object_part_content_set(thumbnail_layout, "thumb", color_page);
1158 evas_object_show(color_page);
1159 g_color_page = color_page;
1163 _get_last_img_path();
1164 gallery_page = elm_image_add(page_layout);
1165 elm_image_file_set(gallery_page, last_img_path, NULL);
1166 elm_object_part_content_set(thumbnail_layout, "thumb", gallery_page);
1167 evas_object_show(gallery_page);
1172 thumbnail = elm_image_add(page_layout);//thumb_path
1175 //default 1,2page thumbnail button : pallette btn, gallery btn
1176 if(gallery_img_cnt || thumbIdx == 0 || thumbIdx == 1){
1180 idx_arr = thumbIdx+1;
1183 snprintf(buf, sizeof(buf), "%s", thumb_path[idx_arr]);
1185 if ( ecore_file_exists(buf) )
1187 elm_image_file_set(thumbnail, buf, NULL);
1191 elm_image_file_set(thumbnail, NULL, NULL);
1193 elm_image_aspect_fixed_set(thumbnail, EINA_FALSE);
1194 elm_image_resizable_set(thumbnail, EINA_TRUE, EINA_TRUE);
1196 if(thumbIdx == 0 || thumbIdx == 1)
1197 elm_object_part_content_set(thumbnail_layout, "thumb_btn", thumbnail);
1199 elm_object_part_content_set(thumbnail_layout, "thumb", thumbnail);
1201 if(thumbIdx == 2 && gallery_img_cnt){
1202 g_gallery_prv = thumbnail;
1204 evas_object_show(thumbnail);
1208 vconf_get_int("db/wms/home_bg_mode", &bg_mode);
1211 char *sel_wallpaper = NULL;
1212 sel_wallpaper = vconf_get_str("db/menu_widget/bgset");
1213 if(buf && !strcmp(buf, sel_wallpaper)){
1214 Evas_Object *selected_rect = elm_image_add(page_layout);
1215 elm_image_file_set(selected_rect, SETTING_DEFAULT_WALLPAPER_PATH"/btn_icons/settings_wallpaper_selected.png", NULL);
1216 elm_image_aspect_fixed_set(selected_rect, EINA_FALSE);
1217 elm_image_resizable_set(selected_rect, EINA_TRUE, EINA_TRUE);
1218 elm_object_part_content_set(thumbnail_layout, "thumb_select", selected_rect);
1219 evas_object_show(selected_rect);
1223 switch ( thumbIdx%NUM_MAX_THUMB_IN_PAGES)
1226 elm_object_part_content_set(page_layout, "thumb1", thumbnail_layout);
1229 elm_object_part_content_set(page_layout, "thumb2", thumbnail_layout);
1235 touch_eo = color_page;
1236 elm_object_signal_emit(thumbnail_layout, "thumbnail,opacity", "thumb_op");
1238 else if(thumbIdx == 1){
1239 touch_eo = gallery_page;
1240 elm_object_signal_emit(thumbnail_layout, "thumbnail,opacity", "thumb_op");
1243 touch_eo = thumbnail;
1244 elm_object_signal_emit(thumbnail_layout, "thumbnail,default", "thumb_op");
1247 evas_object_event_callback_add(touch_eo, EVAS_CALLBACK_MOUSE_DOWN, _mouse_down_cb, NULL);
1248 evas_object_event_callback_add(touch_eo, EVAS_CALLBACK_MOUSE_UP, _mouse_up_wallpaper_cb, (void*)idx_arr);
1249 evas_object_event_callback_add(touch_eo, EVAS_CALLBACK_MOUSE_MOVE, _mouse_move_cb, NULL);
1251 elm_box_pack_end(box, page_layout);
1254 evas_object_event_callback_add(scroller, EVAS_CALLBACK_RESIZE, _wallpaper_page_show, NULL);
1255 register_vconf_changing("db/wms/home_bg_palette", _wallpaper_vconf_color_changed_cb, NULL);
1256 register_vconf_changing("db/wms/home_bg_mode", _wallpaper_vconf_wallpaper_changed_cb, NULL);
1261 static Eina_Bool _wallpaper_pop_cb(void *data, Elm_Object_Item *it)
1263 DBG("_wallpaper_pop_cb");
1264 unregister_vconf_changing("db/wms/home_bg_palette", _wallpaper_vconf_color_changed_cb);
1265 unregister_vconf_changing("db/wms/home_bg_mode", _wallpaper_vconf_wallpaper_changed_cb);
1269 void _wallpaper_gl_cb(void *data, Evas_Object *obj, void *event_info)
1271 elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
1274 Evas_Object *layout_inner;
1275 Elm_Object_Item *it;
1277 ad = (appdata *)data;
1283 layout_inner = _create_wallpaper_thumbnail(ad->nf);
1284 it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout_inner, NULL);
1285 elm_naviframe_item_pop_cb_set(it, _wallpaper_pop_cb, ad);
1286 elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
1289 Evas_Object *create_wallpaper_list(void *data)
1292 Evas_Object *layout_inner;
1293 Elm_Object_Item *it;
1295 ad = (appdata *)data;
1302 ret = feedback_initialize();
1303 if(ret != FEEDBACK_ERROR_NONE){
1304 DBG("feedback_initialize failed");
1307 layout_inner = _create_wallpaper_thumbnail(ad->nf);
1308 return layout_inner;
1311 void _gallery_result_cb(app_control_h service, app_control_h reply, app_control_result_e result, void *data)
1313 DBG("_gallery_result_cb");
1314 if(running_gallery){
1315 running_gallery = false;
1316 elm_object_scroll_freeze_pop(data);
1320 static Eina_Bool _timer_cb(void *data) {
1321 DBG("reset gallery running flag");
1322 if(running_gallery){
1323 running_gallery = false;
1324 running_gallery_timer = NULL;
1325 elm_object_scroll_freeze_pop(data);
1327 return ECORE_CALLBACK_CANCEL;
1330 void _gallery_gl_cb(void *data, Evas_Object *obj, void *event_info)
1332 //elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
1333 DBG("_gallery_gl_cb");
1336 Evas_Object *layout_inner;
1337 Elm_Object_Item *it;
1339 ad = (appdata *)data;
1343 //app_manager_is_running("org.tizen.w-gallery.appcontrol.setting_wallpaper", &running);
1344 if(!running_gallery){
1345 app_control_h service;
1346 app_control_create(&service);
1347 app_control_set_app_id(service, "org.tizen.w-gallery.appcontrol.setting_wallpaper");
1348 app_control_send_launch_request(service, _gallery_result_cb, obj);
1349 app_control_destroy(service);
1351 if(running_gallery_timer) {
1352 ecore_timer_del(running_gallery_timer);
1353 running_gallery_timer = NULL;
1355 running_gallery_timer = ecore_timer_add(1.0, (Ecore_Task_Cb)_timer_cb, obj);
1359 void _show_bg_slide_cb(void *data, Evas_Object *obj, void *event_info)
1361 //elm_genlist_item_selected_set((Elm_Object_Item *)event_info, EINA_FALSE);
1364 Evas_Object *layout_inner;
1365 Elm_Object_Item *it;
1367 ad = (appdata *)data;
1373 layout_inner = _create_index(ad->nf);
1374 it = elm_naviframe_item_push(ad->nf, NULL, NULL, NULL, layout_inner, NULL);
1375 elm_naviframe_item_title_enabled_set(it, EINA_FALSE, EINA_FALSE);
1378 /* edit home screen */
1379 static void _show_edit_home(void* data)
1384 DBG("%s", "_show_edit_home - appdata is null");
1388 app_control_h service;
1389 app_control_create(&service);
1390 app_control_set_app_id(service, "org.tizen.w-launcher-app");
1391 app_control_add_extra_data(service, "home_op", "edit");
1392 app_control_send_launch_request(service, NULL, NULL);
1393 app_control_destroy(service);
1396 /* edit home screen */
1397 static void _show_edit_apps(void* data)
1402 DBG("%s", "_show_edit_home - appdata is null");
1406 app_control_h service;
1407 app_control_create(&service);
1408 app_control_set_app_id(service, "org.tizen.w-launcher-app");
1409 app_control_add_extra_data(service, "home_op", "apps_edit");
1410 app_control_send_launch_request(service, NULL, NULL);
1411 app_control_destroy(service);