initial upload
[apps/home/ug-setting-gallery-efl.git] / src / ug-setting-gallery.c
index 2d41e5f..30e4d50 100755 (executable)
-/*
-  * Copyright 2012  Samsung Electronics Co., Ltd
-  *
-  * Licensed under the Flora License, Version 1.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://www.tizenopensource.org/license
-  *
-  * Unless required by applicable law or agreed to in writing, software
-  * 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.
-  */
-
-#ifndef UG_MODULE_API
-#define UG_MODULE_API __attribute__ ((visibility("default")))
-#endif
-
-
-#include <stdio.h>
-#include <stdbool.h>
-
-#include <Elementary.h>
-#include <bundle.h>
-#include <ui-gadget-module.h>
-#include <vconf.h>
-
-
-#include "ui-gadget.h"
-#include "sg-keys.h"
-#include "sg-debug.h"
-#include "ug-setting-gallery.h"
-
-
-static void
-_gallery_quit_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       gallery_ret_if( data == NULL);
-
-       struct ug_data *ugd;
-       ugd = (struct ug_data *)data;
-
-       if(ugd->ug)
-       {
-               ug_destroy_me(ugd->ug);
-       }
-}
-
-static double
-_gallery_get_fabs(double vconf_value1, double vconf_value2)
-{
-       double temp = 0;
-       temp = vconf_value1 - vconf_value2;
-       if(temp < 0)
-       {
-               return  vconf_value2 - vconf_value1 ;
-       }
-
-       return temp;
-}
-
-static char *
-_gallery_genlist_text_get(void *data, Evas_Object *obj, const char *part)
-{
-       gallery_retv_if( part == NULL, NULL);
-
-       int param = (int )data;
-
-       char *txt = NULL;
-       double time_value = 0;
-       int input_len = 0;
-       input_len = strlen(part);
-
-       if (input_len == strlen("elm.text.1") && strncmp(part, "elm.text.1", input_len) == 0 )
-       {
-               if(param == GALLERY_MAIN_MENU_TIME)
-               {
-                       txt = SGUG_TR_PESF;
-               }
-       }
-       // get sub item of interval-timer
-       else if (input_len == strlen("elm.text.2") && strncmp(part, "elm.text.2", input_len) == 0 )
-       {
-               if(param == GALLERY_MAIN_MENU_TIME)
-               {
-                       gallery_key_init_current_time(&time_value);
-
-                       int radio_value =0;
-                       for(radio_value =0;radio_value < GALLERY_SUB_TIME_COUNT; radio_value++)
-                       {
-                               if(_gallery_get_fabs(time_value, gallery_key_get_time_vconf_value(radio_value))<0.1)
-                               {
-                                       break;
-                               }
-                       }
-                       if(radio_value >= 0)
-                       {
-                               txt = gallery_key_menu_get(radio_value);
-                       }
-               }
-       }
-       else if (input_len == strlen("elm.text") && strncmp(part, "elm.text", input_len) == 0 )
-       {
-               if(param == GALLERY_MAIN_MENU_REPEAT)
-               {
-                       txt = SGUG_TR_REPEAT;
-               }
-               else if(param == GALLERY_MAIN_MENU_SHUFFLE)
-               {
-                       txt = SGUG_TR_SHUFFLE;
-               }
-               else if(param == GALLERY_MAIN_MENU_TITLE)
-               {
-                       txt = SGUG_TR_SLIDESHOW;
-               }
-               else if(param == GALLERY_MAIN_MENU_SUBTITLE_TITLE)
-               {
-                       txt = SGUG_TR_SUBTITLE_TITLE;
-               }
-               else if(param == GALLERY_MAIN_MENU_SUBTITLE_ON_OFF)
-               {
-                       txt = SGUG_TR_SUBTITLE;
-               }
-       }
-
-       if(txt)
-       {
-               return strdup(txt);
-       }
-       else
-       {
-               return NULL;
-       }
-}
-
-static char *
-_gallery_time_text_get(void *data, Evas_Object *obj, const char *part)
-{
-       gallery_retv_if(!part, NULL);
-
-       int param = (int )data;
-
-       char *txt = NULL;
-       int input_len = 0;
-
-       input_len = strlen(part);
-
-       if (input_len == strlen("elm.text") && strncmp(part, "elm.text", input_len) == 0 )
-       {
-               if(param>=0 && param <GALLERY_SUB_TIME_COUNT)
-               {
-                       txt = gallery_key_menu_get(param);
-               }
-               if(txt)
-               {
-                       return strdup(txt);
-               }
-       }
-
-       return NULL;
-}
-
-static Evas_Object*
-_gallery_time_content_get(void *data, Evas_Object *obj, const char *part)
-{
-       gallery_retv_if(!part, NULL);
-
-       int param = (int )data;
-
-       struct ug_data *ugd = evas_object_data_get(obj, "ugd");
-       gallery_retvm_if(!ugd, NULL, "INVALID param");
-
-       int radio_value = 0;
-
-       if (strncmp(part, "elm.icon", strlen(part)) == 0 )
-       {
-               double time_value = 0;
-
-               Evas_Object *radio_btn = elm_radio_add(obj);
-               evas_object_propagate_events_set(radio_btn, EINA_TRUE);
-
-               elm_radio_state_value_set(radio_btn, param);
-               elm_radio_group_add(radio_btn, ugd->radio_group);
-
-               gallery_key_init_current_time(&time_value);
-
-               for(radio_value =0;radio_value <GALLERY_SUB_TIME_COUNT; radio_value++)
-               {
-                       if(_gallery_get_fabs(time_value, gallery_key_get_time_vconf_value(radio_value))<0.1)
-                       {
-                               break;
-                       }
-               }
-
-               if(ugd->radio_group)
-               {
-                       elm_radio_value_set(ugd->radio_group, radio_value);
-               }
-
-               evas_object_smart_callback_add(radio_btn, "changed", NULL, NULL);//gallery_key_set_time_vconf
-               evas_object_show(radio_btn);
-
-               return radio_btn;
-       }
-
-       return NULL;
-}
-
-static void
-_gallery_genlist_icon_cb(void *data,  Evas_Object *obj, void *event_info)
-{
-       gallery_ret_if(NULL == data);
-       struct ug_data *ugd = (struct ug_data *)data;
-
-       int state = 0;
-       int index = (int )data;
-
-       if (index == GALLERY_MAIN_MENU_REPEAT)
-       {
-               gallery_key_init_repeat_state(&state);
-
-               if (vconf_set_bool(VCONFKEY_GALLERY_REPEAT_STATE, !state))
-               {
-                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);
-               }
-       }
-       else if(index == GALLERY_MAIN_MENU_SHUFFLE)
-       {
-               gallery_key_init_shuffle_state(&state);
-
-               if(vconf_set_bool(VCONFKEY_GALLERY_SHUFFLE_STATE, !state))
-               {
-                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);
-               }
-       }
-       else if(index == GALLERY_MAIN_MENU_SUBTITLE_ON_OFF)
-       {
-               gallery_key_init_subtitle_state(&state);
-
-               if(vconf_set_bool(VCONFKEY_GALLERY_SUBTITLE_STATE, !state))
-               {
-                       gallery_key_text_popup(ugd, SGUG_TR_FAILED);
-               }
-       }
-}
-
-static Evas_Object*
-_gallery_genlist_content_get(void *data, Evas_Object *obj, const char *part)
-{
-
-       gallery_retv_if(NULL == data , NULL);
-       gallery_retv_if(NULL == part, NULL);
-
-       struct ug_data *ugd = NULL;
-
-       ugd = evas_object_data_get(obj, "ugd");
-       gallery_retvm_if(!ugd, NULL, "INVALID param");
-
-       int index = (int )data;
-
-       if (0 == strncmp(part, "elm.icon", strlen(part)))
-       {
-               if (index == GALLERY_MAIN_MENU_REPEAT)
-               {
-                       Evas_Object *check;
-                       check  = elm_check_add(obj);
-
-                       ugd->repeat_btn= check;
-
-                       gallery_key_init_repeat_state(&ugd->repeat_state);
-                       elm_check_state_set( ugd->repeat_btn, (bool)ugd->repeat_state);
-
-                       elm_object_style_set(check, "on&off");
-
-                       evas_object_propagate_events_set(check, EINA_FALSE);
-                       evas_object_smart_callback_add(check, "changed", _gallery_genlist_icon_cb, (void *)index);
-
-                       return ugd->repeat_btn;
-
-               }
-               else if(index == GALLERY_MAIN_MENU_SHUFFLE)
-               {
-                       Evas_Object *check;
-                       check  = elm_check_add(obj);
-
-                       ugd->shuffle_btn= check;
-
-                       gallery_key_init_shuffle_state(&ugd->shuffle_state);
-                       elm_check_state_set( ugd->shuffle_btn, (bool)ugd->shuffle_state);
-
-                       elm_object_style_set(check, "on&off");
-
-                       evas_object_propagate_events_set(check, EINA_FALSE);
-                       evas_object_smart_callback_add(check, "changed", _gallery_genlist_icon_cb, (void *)index);
-
-                       return ugd->shuffle_btn;
-               }
-               else if(index == GALLERY_MAIN_MENU_SUBTITLE_ON_OFF)
-               {
-                       Evas_Object *check;
-                       check  = elm_check_add(obj);
-
-                       ugd->subtitle_btn= check;
-
-                       gallery_key_init_subtitle_state(&ugd->subtitle_state);
-                       elm_check_state_set( ugd->subtitle_btn, (bool)ugd->subtitle_state);
-
-                       elm_object_style_set(check, "on&off");
-
-                       evas_object_propagate_events_set(check, EINA_FALSE);
-                       evas_object_smart_callback_add(check, "changed", _gallery_genlist_icon_cb, (void *)index);
-
-                       return ugd->subtitle_btn;
-               }
-       }
-
-       return NULL;
-
-       }
-
-static void
-_gallery_time_select_cb(void *data, Evas_Object *obj, void *event_info)
-{
-
-       struct ug_data *ugd = evas_object_data_get(obj, "ugd");
-       gallery_ret_if(!ugd);
-
-       int param = (int )data;
-       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
-       int index = GALLERY_MAIN_MENU_TIME;
-
-       elm_genlist_item_selected_set(item, EINA_FALSE);
-
-       if(vconf_set_dbl(VCONFKEY_GALLERY_INTERVAL_TIME, gallery_key_get_time_vconf_value(param)))
-       {
-               gallery_key_text_popup(ugd,SGUG_TR_FAILED);
-       }
-
-       elm_radio_value_set(ugd->radio_group, param);
-       elm_genlist_item_update(ugd->gl_it[index]);
-
-}
-
-
-
-static void
-_gallery_genlist_con(void *data, Evas_Object *obj, void *event_info)
-{
-       gallery_ret_if( event_info == NULL);
-
-       Elm_Object_Item *item = event_info;
-       elm_genlist_item_subitems_clear(item);
-}
-
-static void
-_gallery_genlist_time_select_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       struct ug_data *ugd = evas_object_data_get(obj, "ugd");
-       gallery_ret_if(ugd == NULL);
-
-       int index = 0;
-       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
-       elm_genlist_item_selected_set(item, EINA_FALSE);
-
-       Evas_Object *gl = elm_object_item_widget_get(item);
-
-       ugd->check_time_itc.item_style = "dialogue/1text.1icon/expandable2";
-       ugd->check_time_itc.func.text_get = _gallery_time_text_get;
-       ugd->check_time_itc.func.content_get = _gallery_time_content_get;
-       ugd->check_time_itc.func.state_get = NULL;
-       ugd->check_time_itc.func.del = NULL;
-
-       ugd->radio_group = elm_radio_add(gl);
-       for (index = 0; gallery_key_menu_get(index); index++)
-       {
-               elm_genlist_item_append(gl,&ugd->check_time_itc, (void *)index, item,
-                               ELM_GENLIST_ITEM_NONE, _gallery_time_select_cb,  (void *)index);
-       }
-
-}
-
-static void
-_gallery_genlist_exp(void *data, Evas_Object *obj, void *event_info)
-{
-       gallery_ret_if( NULL == obj);
-
-       struct ug_data *ugd = evas_object_data_get(obj, "ugd");
-       gallery_ret_if(NULL == ugd);
-
-       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
-       elm_genlist_item_selected_set(item, EINA_FALSE);
-
-       if(item == ugd->gl_it[GALLERY_MAIN_MENU_TIME])
-       {
-               _gallery_genlist_time_select_cb(data, obj, event_info);
-
-       }
-}
-
-static void
-_gallery_genlist_select_cb(void *data, Evas_Object *obj, void *event_info)
-{
-       struct ug_data *ugd = evas_object_data_get(obj, "ugd");
-       gallery_ret_if(ugd == NULL);
-
-       int param = (int )data;
-
-       int icon_state = 0;
-       bool expand_state = false;
-
-       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
-
-       elm_genlist_item_selected_set(item, EINA_FALSE);
-
-       if(param == GALLERY_MAIN_MENU_TIME)
-       {
-               expand_state = elm_genlist_item_expanded_get(item);
-
-               if(!expand_state)
-               {
-                       elm_genlist_item_expanded_set(item,EINA_TRUE);
-               }
-               else
-               {
-                       elm_genlist_item_expanded_set(item,EINA_FALSE);
-               }
-       }
-       else if(param == GALLERY_MAIN_MENU_REPEAT)
-       {
-               gallery_key_init_repeat_state(&icon_state);
-               icon_state = !icon_state;
-
-               if(vconf_set_bool(VCONFKEY_GALLERY_REPEAT_STATE, icon_state))
-               {
-                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);
-
-               }
-
-               elm_check_state_set(ugd->repeat_btn, (bool)icon_state);
-       }
-       else if(param == GALLERY_MAIN_MENU_SHUFFLE)
-       {
-               gallery_key_init_shuffle_state(&icon_state);
-               icon_state = !icon_state;
-
-               if(vconf_set_bool(VCONFKEY_GALLERY_SHUFFLE_STATE, icon_state))
-               {
-                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);
-
-               }
-
-               elm_check_state_set(ugd->shuffle_btn,(bool)icon_state);
-       }
-       else if(param == GALLERY_MAIN_MENU_SUBTITLE_ON_OFF)
-       {
-               gallery_key_init_subtitle_state(&icon_state);
-               icon_state = !icon_state;
-
-               if(vconf_set_bool(VCONFKEY_GALLERY_SUBTITLE_STATE, icon_state))
-               {
-                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);
-                       return;
-
-               }
-
-               elm_check_state_set(ugd->subtitle_btn,(bool)icon_state);
-       }
-}
-
-static Evas_Object *
-_gallery_genlist_items_add (Evas_Object *parent, struct ug_data *ugd)
-{
-       Evas_Object *main_genlist;
-       Elm_Object_Item *it = NULL;
-
-       int index = 0;
-
-       main_genlist = elm_genlist_add(parent);
-
-       evas_object_size_hint_weight_set(main_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       evas_object_size_hint_align_set(main_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
-
-       ugd->genlist = main_genlist;
-
-       ugd->title_itc.item_style = "dialogue/title";
-       ugd->title_itc.func.text_get = _gallery_genlist_text_get;
-       ugd->title_itc.func.content_get = NULL;
-       ugd->title_itc.func.state_get = NULL;
-       ugd->title_itc.func.del = NULL;
-
-       ugd->expandable_itc.item_style = "dialogue/2text.3/expandable";
-       ugd->expandable_itc.func.text_get = _gallery_genlist_text_get;
-       ugd->expandable_itc.func.content_get = NULL;
-       ugd->expandable_itc.func.state_get = NULL;
-       ugd->expandable_itc.func.del = NULL;
-
-       ugd->txt_icon_itc.item_style = "dialogue/1text.1icon";
-       ugd->txt_icon_itc.func.text_get = _gallery_genlist_text_get;
-       ugd->txt_icon_itc.func.content_get = _gallery_genlist_content_get;
-       ugd->txt_icon_itc.func.state_get = NULL;
-       ugd->txt_icon_itc.func.del = NULL;
-
-       for (index = GALLERY_MAIN_MENU_TITLE; index < GALLERY_MAIN_MENU_ITEM_MAX; index++)
-       {
-               //expandable genlist
-               if (index == GALLERY_MAIN_MENU_TIME)
-               {
-                       ugd->gl_it[index] = elm_genlist_item_append(main_genlist, &ugd->expandable_itc,
-                                                                                       (void *)index, NULL, ELM_GENLIST_ITEM_TREE,
-                                                                                       _gallery_genlist_select_cb, (void *)index);
-               }
-               // repeat&shuffle 1txt .1icon
-               else if (index == GALLERY_MAIN_MENU_REPEAT ||
-                                       index == GALLERY_MAIN_MENU_SHUFFLE ||
-                                       index == GALLERY_MAIN_MENU_SUBTITLE_ON_OFF)
-               {
-                       ugd->gl_it[index] = elm_genlist_item_append(main_genlist, &ugd->txt_icon_itc,
-                                                                                       (void *)index, NULL, ELM_GENLIST_ITEM_NONE,
-                                                                                       _gallery_genlist_select_cb, (void *)index);
-               }
-               //title
-               else if (index == GALLERY_MAIN_MENU_TITLE)
-               {
-                       it = elm_genlist_item_append(main_genlist, &ugd->title_itc,
-                                                                                       (void *)index, NULL, ELM_GENLIST_ITEM_NONE,
-                                                                                       NULL, NULL);
-                       elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-               }
-               //subtitle title
-               else if (index == GALLERY_MAIN_MENU_SUBTITLE_TITLE)
-               {
-                       it = elm_genlist_item_append(main_genlist, &ugd->title_itc,
-                                                                                       (void *)index, NULL, ELM_GENLIST_ITEM_NONE,
-                                                                                       NULL, NULL);
-                       elm_genlist_item_select_mode_set(it, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
-               }
-       }
-
-       evas_object_smart_callback_add(main_genlist, "expanded", _gallery_genlist_exp, ugd);
-       evas_object_smart_callback_add(main_genlist, "contracted", _gallery_genlist_con, ugd);
-
-       return main_genlist;
-}
-
-
-static Evas_Object *
-_gallery_create_fullview(Evas_Object *parent, struct ug_data *ugd)
-{
-       gallery_retv_if( parent == NULL, NULL);
-
-       Evas_Object *base;
-       base = elm_layout_add(parent);
-       gallery_retv_if( base == NULL, NULL );
-
-       elm_layout_theme_set(base, "layout", "application", "default");
-       edje_object_signal_emit(_EDJ(base), "elm,state,show,indicator", "elm");
-       elm_object_part_content_set(base, "elm.swallow.bg", ugd->bg);
-
-       return base;
-}
-
-static Evas_Object*
-_gallery_create_naviframe(Evas_Object* parent)
-{
-       gallery_retv_if( parent == NULL, NULL);
-
-       Evas_Object *naviframe = NULL;
-       naviframe = elm_naviframe_add( parent );
-       elm_object_part_content_set( parent, "elm.swallow.content", naviframe );
-       evas_object_show(naviframe);
-
-       return naviframe;
-}
-
-static Evas_Object *_gallery_create_bg(Evas_Object *parent)
-{
-       Evas_Object *bg = elm_bg_add(parent);
-       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-       elm_win_resize_object_add(parent, bg);
-       evas_object_show(bg);
-
-    return bg;
-}
-
-static void *
-_on_create(struct ui_gadget *ug, enum ug_mode mode, bundle *data, void *priv)
-{
-       Evas_Object *parent = NULL;
-       struct ug_data *ugd = NULL;
-
-       gallery_retvm_if((!ug || !priv), NULL, "handle or ui_gadget pointer is NULL, check it !!");
-
-       ugd = (struct ug_data *)priv;
-       ugd->ug = ug;
-
-       /* Bind text domain for internalization */
-       bindtextdomain("ug-setting-gallery-efl" , "/opt/ug/res/locale");
-
-       parent = (Evas_Object *)ug_get_parent_layout(ug);
-       gallery_retvm_if(parent == NULL, NULL, "parent layout is NULL");
-
-       ugd->bg = _gallery_create_bg(parent);
-
-       if (mode == UG_MODE_FULLVIEW)
-       {
-               ugd->main_layout = _gallery_create_fullview(parent, ugd);
-       }
-       else
-       {
-               ugd->main_layout = NULL;
-       }
-
-       if(ugd->main_layout)
-       {
-               ugd->naviframe = _gallery_create_naviframe(ugd->main_layout);
-               evas_object_data_set(ugd->naviframe, "ugd", ugd);
-       }
-
-       ugd->genlist = _gallery_genlist_items_add(ugd->naviframe,ugd);
-
-       evas_object_data_set(ugd->genlist, "ugd", ugd);
-
-       ugd->backbtn = elm_button_add(ugd->naviframe);
-       evas_object_smart_callback_add(ugd->backbtn, "clicked", _gallery_quit_cb, ugd);
-       elm_naviframe_item_push(ugd->naviframe, SGUG_TR_GALLERY, ugd->backbtn,
-                               NULL, ugd->genlist, NULL);
-       elm_object_style_set(ugd->backbtn, "naviframe/end_btn/default");
-
-       evas_object_show(ugd->main_layout);
-
-       return ugd->main_layout;
-}
-
-static void
-_on_message(struct ui_gadget *ug, bundle *msg, bundle *data, void *priv)
-{
-}
-
-static void
-_on_event(struct ui_gadget *ug, enum ug_event event, bundle *data, void *priv)
-{
-
-       //struct ug_data *ugd = (struct ug_data *)priv;
-
-       switch (event) {
-       case UG_EVENT_LOW_MEMORY:
-               break;
-       case UG_EVENT_LOW_BATTERY:
-               break;
-       case UG_EVENT_LANG_CHANGE:
-               break;
-       case UG_EVENT_ROTATE_PORTRAIT:
-               break;
-       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:
-               break;
-       case UG_EVENT_ROTATE_LANDSCAPE:
-               break;
-       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:
-               break;
-       default:
-               break;
-       }
-}
-
-static void
-_on_start(struct ui_gadget *ug, bundle *data, void *priv)
-{
-}
-
-static void
-_on_pause(struct ui_gadget *ug, bundle *data, void *priv)
-{
-
-}
-
-static void
-_on_resume(struct ui_gadget *ug, bundle *data, void *priv)
-{
-
-}
-
-static void
-_on_destroy(struct ui_gadget *ug, bundle *data, void *priv)
-{
-       struct ug_data *ugd;
-
-       if (!ug || !priv)
-       {
-               return;
-       }
-
-       ugd = priv;
-       if(ugd->main_layout)
-       {
-               evas_object_del(ugd->main_layout);
-               ugd->main_layout = NULL;
-       }
-}
-
-static void
-_on_key_event(struct ui_gadget *ug, enum ug_key_event event, bundle *data, void *priv)
-{
-
-}
-
-
-UG_MODULE_API int
-UG_MODULE_INIT(struct ug_module_ops *ops)
-{
-       struct ug_data *ugd;
-
-       if (!ops)
-       {
-               return -1;
-       }
-
-       ugd = calloc(1, sizeof(struct ug_data));
-       if (!ugd)
-       {
-               return -1;
-       }
-
-       ops->create = _on_create;
-       ops->start = _on_start;
-       ops->pause = _on_pause;
-       ops->resume = _on_resume;
-       ops->destroy = _on_destroy;
-       ops->message = _on_message;
-       ops->key_event = _on_key_event;
-       ops->event = _on_event;
-       ops->priv = ugd;
-       ops->opt = UG_OPT_INDICATOR_PORTRAIT_ONLY;
-
-       return 0;
-}
-
-UG_MODULE_API int setting_plugin_reset(bundle *data, void *priv)
-{
-       gallery_info("Reset the settings start");
-
-       int ret = 0;
-       ret += gallery_key_reset_current_time();
-       ret += gallery_key_reset_repeat_state();
-       ret += gallery_key_reset_shuffle_state();
-       ret += gallery_key_reset_subtitle_state();
-       ret += gallery_key_reset_slideshow_effect();
-
-       gallery_info("Finished");
-
-       return ret;
-}
-
-UG_MODULE_API void
-UG_MODULE_EXIT(struct ug_module_ops *ops)
-{
-       struct ug_data *ugd;
-
-       if (!ops)
-       {
-               return;
-       }
-
-       ugd = ops->priv;
-       if (ugd)
-       {
-               free(ugd);
-       }
-}
+/*\r
+ * Copyright 2012  Samsung Electronics Co., Ltd\r
+ *\r
+ * Licensed under the Flora License, Version 1.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ *       http://www.tizenopensource.org/license\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+#ifndef UG_MODULE_API\r
+#define UG_MODULE_API __attribute__ ((visibility("default")))\r
+#endif\r
+\r
+\r
+#include <stdio.h>\r
+#include <stdbool.h>\r
+\r
+#include <Elementary.h>\r
+#include <ui-gadget-module.h>\r
+#include <vconf.h>\r
+\r
+\r
+#include "sg-keys.h"\r
+#include "sg-debug.h"\r
+#include "ug-setting-gallery.h"\r
+\r
+#define MAX_PRECISION  0.1\r
+\r
+typedef int (*Init_State_Func) (int *data);\r
+\r
+static void\r
+_gallery_quit_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       gallery_ret_if(!data);\r
+\r
+       struct ug_data *ugd;\r
+       ugd = (struct ug_data *)data;\r
+\r
+       if(ugd->ug)\r
+       {\r
+               ug_destroy_me(ugd->ug);\r
+       }\r
+}\r
+\r
+static char *_gallery_get_menu_elm_text(int param)\r
+{\r
+       char *text = NULL;\r
+\r
+       switch(param)\r
+       {\r
+               case GALLERY_MAIN_MENU_TIME:\r
+                       text = SGUG_TR_PESF;\r
+                       break;\r
+\r
+               case GALLERY_MAIN_MENU_REPEAT:\r
+                       text = SGUG_TR_REPEAT;\r
+                       break;\r
+\r
+               case GALLERY_MAIN_MENU_SHUFFLE:\r
+                       text = SGUG_TR_SHUFFLE;\r
+                       break;\r
+\r
+               case GALLERY_MAIN_MENU_TITLE:\r
+                       text = SGUG_TR_SLIDESHOW;\r
+                       break;\r
+\r
+               default:\r
+                       break;\r
+       }\r
+\r
+       return text;\r
+}\r
+\r
+static int _gallery_get_time_radio_value(void)\r
+{\r
+       int radio_value = 0;\r
+       double time_value = 0;\r
+\r
+       gallery_key_init_current_time(&time_value);\r
+\r
+       for(radio_value = 0; radio_value < GALLERY_SUB_TIME_COUNT; radio_value++)\r
+       {\r
+               if(abs(time_value - gallery_key_get_time_vconf_value(radio_value)) < MAX_PRECISION)\r
+                       break;\r
+       }\r
+\r
+       return radio_value;\r
+}\r
+\r
+static char *_gallery_get_menu_time_text(void)\r
+{\r
+       int radio_value = 0;\r
+       radio_value =_gallery_get_time_radio_value();\r
+\r
+       return gallery_key_time_menu_get(radio_value);\r
+}\r
+\r
+static char *_gallery_get_menu_sub_elm_text(int param)\r
+{\r
+       char *text = NULL;\r
+\r
+       switch(param)\r
+       {\r
+               case GALLERY_MAIN_MENU_TIME:\r
+                       text = _gallery_get_menu_time_text();\r
+                       break;\r
+\r
+               default:\r
+                       break;\r
+       }\r
+\r
+       return text;\r
+}\r
+\r
+static char *\r
+_gallery_genlist_text_get(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       gallery_retv_if(!part, NULL);\r
+\r
+       int param = (int )data;\r
+\r
+       char *txt = NULL;\r
+       int input_len = 0;\r
+       input_len = strlen(part);\r
+\r
+       if (input_len == strlen("elm.text.1") && strncmp(part, "elm.text.1", input_len) == 0 )\r
+       {\r
+               txt = _gallery_get_menu_elm_text(param);\r
+       }\r
+       else if (input_len == strlen("elm.text.2") && strncmp(part, "elm.text.2", input_len) == 0 )\r
+       {\r
+               txt = _gallery_get_menu_sub_elm_text(param);\r
+       }\r
+       else if (input_len == strlen("elm.text") && strncmp(part, "elm.text", input_len) == 0 )\r
+       {\r
+               txt = _gallery_get_menu_elm_text(param);\r
+       }\r
+\r
+       if(txt)\r
+               return strdup(txt);\r
+       else\r
+               return NULL;\r
+}\r
+\r
+static char *\r
+_gallery_expand_common_text_get(const char *part, void *data, gallery_main_menu_item_t mitem)\r
+{\r
+       gallery_retv_if(!part, NULL);\r
+\r
+       int param = (int )data;\r
+       char *txt = NULL;\r
+       int input_len = 0;\r
+\r
+       input_len = strlen(part);\r
+\r
+       if (input_len == strlen("elm.text") && strncmp(part, "elm.text", input_len) == 0 )\r
+       {\r
+               switch(mitem)\r
+               {\r
+                       case GALLERY_MAIN_MENU_TIME:\r
+                               txt = gallery_key_time_menu_get(param);\r
+                               break;\r
+\r
+                       default:\r
+                               break;\r
+               }\r
+\r
+               if(txt)\r
+                       return strdup(txt);\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static char *\r
+_gallery_time_text_get(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       gallery_retv_if(!part, NULL);\r
+\r
+       return _gallery_expand_common_text_get(part, data, GALLERY_MAIN_MENU_TIME);\r
+}\r
+\r
+\r
+static Evas_Object*\r
+_gallery_expand_common_icon_get(Evas_Object *obj, const char *part, int param, int radio_value, Evas_Object *radio_group)\r
+{\r
+       gallery_retv_if(!part, NULL);\r
+       gallery_retv_if(!obj, NULL);\r
+\r
+       if (strncmp(part, "elm.icon", strlen(part)) == 0 )\r
+       {\r
+               Evas_Object *radio_btn = elm_radio_add(obj);\r
+               evas_object_propagate_events_set(radio_btn, EINA_TRUE);\r
+               elm_radio_state_value_set(radio_btn, param);\r
+               elm_radio_group_add(radio_btn, radio_group);\r
+               elm_radio_value_set(radio_group, radio_value);\r
+               evas_object_show(radio_btn);\r
+\r
+               return radio_btn;\r
+       }\r
+\r
+       return NULL;\r
+}\r
+\r
+static Evas_Object*\r
+_gallery_time_content_get(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       gallery_retv_if(!part, NULL);\r
+\r
+       struct ug_data *ugd = evas_object_data_get(obj, "ugd");\r
+       gallery_retvm_if(!ugd, NULL, "INVALID param");\r
+\r
+       int radio_value = 0;\r
+       radio_value = _gallery_get_time_radio_value();\r
+\r
+       return _gallery_expand_common_icon_get(obj, part, (int )data, radio_value, ugd->radio_group);\r
+}\r
+\r
+static void\r
+_gallery_genlist_icon_cb(void *data,  Evas_Object *obj, void *event_info)\r
+{\r
+       gallery_ret_if(!data);\r
+       struct ug_data *ugd = evas_object_data_get(obj, "ugd");\r
+\r
+       int state = 0;\r
+       int index = (int )data;\r
+\r
+       if (index == GALLERY_MAIN_MENU_REPEAT)\r
+       {\r
+               gallery_key_init_repeat_state(&state);\r
+\r
+               if (gallery_key_set_repeat_state(!state))\r
+               {\r
+                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);\r
+               }\r
+       }\r
+       else if(index == GALLERY_MAIN_MENU_SHUFFLE)\r
+       {\r
+               gallery_key_init_shuffle_state(&state);\r
+\r
+               if(gallery_key_set_shuffle_state(!state))\r
+               {\r
+                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);\r
+               }\r
+       }\r
+\r
+}\r
+\r
+static Evas_Object *_gallery_create_check(Evas_Object *obj, struct ug_data *ugd, int index, Init_State_Func func, int *state)\r
+{\r
+       gallery_retvm_if(!obj, NULL, "obj is NULL");\r
+       gallery_retvm_if(!ugd, NULL, "ugd is NULL");\r
+       gallery_retvm_if(!state, NULL, "state is NULL");\r
+\r
+       if(func && state)\r
+               func(state);\r
+\r
+       Evas_Object *check = NULL;\r
+       check  = elm_check_add(obj);\r
+       evas_object_data_set(check, "ugd", ugd);\r
+       elm_check_state_set( check, (bool)*state);\r
+       elm_object_style_set(check, "on&off");\r
+       evas_object_propagate_events_set(check, EINA_FALSE);\r
+       evas_object_smart_callback_add(check, "changed", _gallery_genlist_icon_cb, (void *)index);\r
+\r
+       return check;\r
+}\r
+\r
+static Evas_Object*\r
+_gallery_genlist_icon_get(void *data, Evas_Object *obj, const char *part)\r
+{\r
+       gallery_retv_if(!data, NULL);\r
+       gallery_retv_if(!part, NULL);\r
+\r
+       struct ug_data *ugd = NULL;\r
+\r
+       ugd = evas_object_data_get(obj, "ugd");\r
+       gallery_retvm_if(!ugd, NULL, "INVALID param");\r
+\r
+       int index = (int )data;\r
+       Evas_Object *check = NULL;\r
+\r
+       if (strncmp(part, "elm.icon", strlen(part)) == 0)\r
+       {\r
+               if (index == GALLERY_MAIN_MENU_REPEAT)\r
+               {\r
+                       check = _gallery_create_check(obj, ugd, index, gallery_key_init_repeat_state, &ugd->repeat_state);\r
+                       ugd->repeat_btn = check;\r
+               }\r
+               else if(index == GALLERY_MAIN_MENU_SHUFFLE)\r
+               {\r
+                       check = _gallery_create_check(obj, ugd, index, gallery_key_init_shuffle_state, &ugd->shuffle_state);\r
+                       ugd->shuffle_btn = check;\r
+               }\r
+\r
+       }\r
+\r
+       return check;\r
+}\r
+\r
+static void\r
+_gallery_time_select_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       struct ug_data *ugd = evas_object_data_get(obj, "ugd");\r
+       gallery_ret_if(!ugd);\r
+\r
+       int param = (int )data;\r
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;\r
+\r
+       int index = GALLERY_MAIN_MENU_TIME;\r
+\r
+       elm_genlist_item_selected_set(item, EINA_FALSE);\r
+\r
+       if(gallery_key_set_current_time(gallery_key_get_time_vconf_value(param)))\r
+       {\r
+               gallery_key_text_popup(ugd,SGUG_TR_FAILED);\r
+       }\r
+\r
+       elm_radio_value_set(ugd->radio_group, param);\r
+       elm_genlist_item_update(ugd->gl_it[index]);\r
+\r
+}\r
+\r
+static void\r
+_gallery_genlist_con(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       gallery_ret_if(!event_info);\r
+\r
+       Elm_Object_Item *item = event_info;\r
+       elm_genlist_item_subitems_clear(item);\r
+}\r
+\r
+static void\r
+_gallery_genlist_time_select_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       struct ug_data *ugd = evas_object_data_get(obj, "ugd");\r
+       gallery_ret_if(!ugd);\r
+\r
+       int index = 0;\r
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;\r
+\r
+       elm_genlist_item_selected_set(item, EINA_FALSE);\r
+\r
+       Evas_Object *gl = elm_object_item_widget_get(item);\r
+\r
+       ugd->check_time_itc.item_style = "dialogue/1text.1icon/expandable2";\r
+       ugd->check_time_itc.func.text_get = _gallery_time_text_get;\r
+       ugd->check_time_itc.func.content_get = _gallery_time_content_get;\r
+       ugd->check_time_itc.func.state_get = NULL;\r
+       ugd->check_time_itc.func.del = NULL;\r
+\r
+       ugd->radio_group = elm_radio_add(gl);\r
+       for (index = 0; gallery_key_time_menu_get(index); index++)\r
+       {\r
+               elm_genlist_item_append(gl,&ugd->check_time_itc, (void *)index, item,\r
+                               ELM_GENLIST_ITEM_NONE, _gallery_time_select_cb,  (void *)index);\r
+       }\r
+\r
+}\r
+\r
+static void\r
+_gallery_genlist_exp(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       gallery_ret_if(!obj);\r
+\r
+       struct ug_data *ugd = evas_object_data_get(obj, "ugd");\r
+       gallery_ret_if(!ugd);\r
+\r
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;\r
+\r
+       elm_genlist_item_selected_set(item, EINA_FALSE);\r
+\r
+       if(item == ugd->gl_it[GALLERY_MAIN_MENU_TIME])\r
+       {\r
+               _gallery_genlist_time_select_cb(data, obj, event_info);\r
+       }\r
+}\r
+\r
+static void\r
+_gallery_genlist_select_cb(void *data, Evas_Object *obj, void *event_info)\r
+{\r
+       struct ug_data *ugd = evas_object_data_get(obj, "ugd");\r
+       gallery_ret_if(!ugd);\r
+\r
+       int param = (int )data;\r
+\r
+       int icon_state = 0;\r
+       bool expand_state = false;\r
+\r
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;\r
+\r
+       elm_genlist_item_selected_set(item, EINA_FALSE);\r
+\r
+       if(param == GALLERY_MAIN_MENU_TIME)\r
+       {\r
+               expand_state = elm_genlist_item_expanded_get(item);\r
+               elm_genlist_item_expanded_set(item, !expand_state);\r
+       }\r
+       else if(param == GALLERY_MAIN_MENU_REPEAT)\r
+       {\r
+               gallery_key_init_repeat_state(&icon_state);\r
+               icon_state = !icon_state;\r
+\r
+               if(gallery_key_set_repeat_state(icon_state))\r
+               {\r
+                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);\r
+               }\r
+\r
+               elm_check_state_set(ugd->repeat_btn, (bool)icon_state);\r
+       }\r
+       else if(param == GALLERY_MAIN_MENU_SHUFFLE)\r
+       {\r
+               gallery_key_init_shuffle_state(&icon_state);\r
+               icon_state = !icon_state;\r
+\r
+               if(gallery_key_set_shuffle_state(icon_state))\r
+               {\r
+                       gallery_key_text_popup(ugd,SGUG_TR_FAILED);\r
+               }\r
+\r
+               elm_check_state_set(ugd->shuffle_btn,(bool)icon_state);\r
+       }\r
+}\r
+\r
+static Evas_Object *\r
+_gallery_genlist_items_add (Evas_Object *parent, struct ug_data *ugd)\r
+{\r
+       Evas_Object *main_genlist;\r
+       Elm_Object_Item *sep;\r
+\r
+       int index = 0;\r
+\r
+       main_genlist = elm_genlist_add(parent);\r
+\r
+       elm_object_style_set(main_genlist, "dialogue");\r
+\r
+       evas_object_size_hint_weight_set(main_genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+       evas_object_size_hint_align_set(main_genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+\r
+       ugd->genlist = main_genlist;\r
+\r
+       ugd->title_itc.item_style = "dialogue/title";\r
+       ugd->title_itc.func.text_get = _gallery_genlist_text_get;\r
+       ugd->title_itc.func.content_get = NULL;\r
+       ugd->title_itc.func.state_get = NULL;\r
+       ugd->title_itc.func.del = NULL;\r
+\r
+       ugd->expandable_itc.item_style = "dialogue/2text.3/expandable";\r
+       ugd->expandable_itc.func.text_get = _gallery_genlist_text_get;\r
+       ugd->expandable_itc.func.content_get = NULL;\r
+       ugd->expandable_itc.func.state_get = NULL;\r
+       ugd->expandable_itc.func.del = NULL;\r
+\r
+       ugd->txt_icon_itc.item_style = "dialogue/1text.1icon";\r
+       ugd->txt_icon_itc.func.text_get = _gallery_genlist_text_get;\r
+       ugd->txt_icon_itc.func.content_get = _gallery_genlist_icon_get;\r
+       ugd->txt_icon_itc.func.state_get = NULL;\r
+       ugd->txt_icon_itc.func.del = NULL;\r
+\r
+       ugd->seperator_itc.item_style = "grouptitle.dialogue.seperator";\r
+       ugd->seperator_itc.func.text_get = NULL;\r
+       ugd->seperator_itc.func.content_get = NULL;\r
+       ugd->seperator_itc.func.state_get = NULL;\r
+       ugd->seperator_itc.func.del = NULL;\r
+\r
+       ugd->seperator_end_itc.item_style = "dialogue/separator/end";\r
+       ugd->seperator_end_itc.func.text_get = NULL;\r
+       ugd->seperator_end_itc.func.content_get = NULL;\r
+       ugd->seperator_end_itc.func.state_get = NULL;\r
+       ugd->seperator_end_itc.func.del = NULL;\r
+\r
+       sep = elm_genlist_item_append(main_genlist, &ugd->seperator_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);\r
+       elm_genlist_item_select_mode_set(sep, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);\r
+\r
+       for (index = GALLERY_MAIN_MENU_TITLE; index < GALLERY_MAIN_MENU_ITEM_MAX; index++)\r
+       {\r
+               //expandable genlist\r
+               if (index == GALLERY_MAIN_MENU_TIME)\r
+               {\r
+                       ugd->gl_it[index] = elm_genlist_item_append(main_genlist, &ugd->expandable_itc,\r
+                                                                   (void *)index, NULL,\r
+                                                                   ELM_GENLIST_ITEM_TREE,\r
+                                                                   _gallery_genlist_select_cb,\r
+                                                                   (void *)index);\r
+               }\r
+               // repeat&shuffle 1txt .1icon\r
+               else if (index == GALLERY_MAIN_MENU_REPEAT ||\r
+                        index == GALLERY_MAIN_MENU_SHUFFLE)\r
+               {\r
+                       ugd->gl_it[index] = elm_genlist_item_append(main_genlist, &ugd->txt_icon_itc,\r
+                                                                   (void *)index, NULL,\r
+                                                                   ELM_GENLIST_ITEM_NONE,\r
+                                                                   _gallery_genlist_select_cb,\r
+                                                                   (void *)index);\r
+               }\r
+       }\r
+\r
+       sep = elm_genlist_item_append(main_genlist, &ugd->seperator_end_itc, NULL, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);\r
+       elm_genlist_item_select_mode_set(sep, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);\r
+\r
+       evas_object_smart_callback_add(main_genlist, "expanded", _gallery_genlist_exp, ugd);\r
+       evas_object_smart_callback_add(main_genlist, "contracted", _gallery_genlist_con, ugd);\r
+\r
+       return main_genlist;\r
+}\r
+\r
+\r
+static Evas_Object *\r
+_gallery_create_fullview(Evas_Object *parent, struct ug_data *ugd)\r
+{\r
+       gallery_retv_if(!parent, NULL);\r
+\r
+       Evas_Object *base;\r
+       base = elm_layout_add(parent);\r
+       gallery_retv_if( base == NULL, NULL );\r
+\r
+       elm_layout_theme_set(base, "layout", "application", "default");\r
+       edje_object_signal_emit(_EDJ(base), "elm,state,show,indicator", "elm");\r
+       elm_object_part_content_set(base, "elm.swallow.bg", ugd->bg);\r
+\r
+       return base;\r
+}\r
+\r
+static Evas_Object*\r
+_gallery_create_naviframe(Evas_Object* parent)\r
+{\r
+       gallery_retv_if(!parent, NULL);\r
+\r
+       Evas_Object *naviframe = NULL;\r
+       naviframe = elm_naviframe_add( parent );\r
+       elm_object_part_content_set( parent, "elm.swallow.content", naviframe );\r
+       evas_object_show(naviframe);\r
+\r
+       return naviframe;\r
+}\r
+\r
+static Evas_Object *_gallery_create_bg(Evas_Object *parent)\r
+{\r
+       Evas_Object *bg = elm_bg_add(parent);\r
+       evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+       elm_win_resize_object_add(parent, bg);\r
+       evas_object_show(bg);\r
+\r
+    return bg;\r
+}\r
+\r
+static void *\r
+_on_create(ui_gadget_h ug, enum ug_mode mode, service_h data, void *priv)\r
+{\r
+       gallery_retvm_if(!ug, NULL, "ug is NULL, check it !!");\r
+       gallery_retvm_if(!priv, NULL, "priv is NULL, check it !!");\r
+\r
+       Evas_Object *parent = NULL;\r
+       struct ug_data *ugd = NULL;\r
+\r
+       ugd = (struct ug_data *)priv;\r
+       ugd->ug = ug;\r
+\r
+       /* Bind text domain for internalization */\r
+       bindtextdomain("ug-setting-gallery-efl" , "/opt/ug/res/locale");\r
+\r
+       parent = (Evas_Object *)ug_get_parent_layout(ug);\r
+       gallery_retvm_if(parent == NULL, NULL, "parent layout is NULL");\r
+\r
+       ugd->bg = _gallery_create_bg(parent);\r
+\r
+       if (mode == UG_MODE_FULLVIEW)\r
+       {\r
+               ugd->main_layout = _gallery_create_fullview(parent, ugd);\r
+       }\r
+       else\r
+       {\r
+               ugd->main_layout = NULL;\r
+       }\r
+\r
+       if(ugd->main_layout)\r
+       {\r
+               ugd->naviframe = _gallery_create_naviframe(ugd->main_layout);\r
+               evas_object_data_set(ugd->naviframe, "ugd", ugd);\r
+       }\r
+\r
+       ugd->genlist = _gallery_genlist_items_add(ugd->naviframe,ugd);\r
+\r
+       evas_object_data_set(ugd->genlist, "ugd", ugd);\r
+\r
+       ugd->backbtn = elm_button_add(ugd->naviframe);\r
+       evas_object_smart_callback_add(ugd->backbtn, "clicked", _gallery_quit_cb, ugd);\r
+       elm_naviframe_item_push(ugd->naviframe, SGUG_TR_GALLERY, ugd->backbtn,\r
+                               NULL, ugd->genlist, NULL);\r
+       elm_object_style_set(ugd->backbtn, "naviframe/end_btn/default");\r
+\r
+       evas_object_show(ugd->main_layout);\r
+\r
+       return ugd->main_layout;\r
+}\r
+\r
+static void\r
+_on_message(ui_gadget_h ug, service_h msg, service_h data, void *priv)\r
+{\r
+}\r
+\r
+static void\r
+_on_event(ui_gadget_h ug, enum ug_event event, service_h data, void *priv)\r
+{\r
+       //struct ug_data *ugd = (struct ug_data *)priv;\r
+\r
+       switch (event) {\r
+       case UG_EVENT_LOW_MEMORY:\r
+               break;\r
+       case UG_EVENT_LOW_BATTERY:\r
+               break;\r
+       case UG_EVENT_LANG_CHANGE:\r
+               break;\r
+       case UG_EVENT_ROTATE_PORTRAIT:\r
+               break;\r
+       case UG_EVENT_ROTATE_PORTRAIT_UPSIDEDOWN:\r
+               break;\r
+       case UG_EVENT_ROTATE_LANDSCAPE:\r
+               break;\r
+       case UG_EVENT_ROTATE_LANDSCAPE_UPSIDEDOWN:\r
+               break;\r
+       default:\r
+               break;\r
+       }\r
+}\r
+\r
+static void\r
+_on_start(ui_gadget_h ug, service_h data, void *priv)\r
+{\r
+}\r
+\r
+static void\r
+_on_pause(ui_gadget_h ug, service_h data, void *priv)\r
+{\r
+\r
+}\r
+\r
+static void\r
+_on_resume(ui_gadget_h ug, service_h data, void *priv)\r
+{\r
+\r
+}\r
+\r
+static void\r
+_on_destroy(ui_gadget_h ug, service_h data, void *priv)\r
+{\r
+       struct ug_data *ugd;\r
+\r
+       gallery_retm_if(!ug, "ug is NULL, check it !!");\r
+       gallery_retm_if(!priv, "priv is NULL, check it !!");\r
+\r
+       ugd = priv;\r
+       if(ugd->main_layout)\r
+       {\r
+               evas_object_del(ugd->main_layout);\r
+               ugd->main_layout = NULL;\r
+       }\r
+}\r
+\r
+static void\r
+_on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h data, void *priv)\r
+{\r
+\r
+}\r
+\r
+UG_MODULE_API int\r
+UG_MODULE_INIT(struct ug_module_ops *ops)\r
+{\r
+       gallery_retvm_if(!ops, -1, "ops is NULL");\r
+\r
+       struct ug_data *ugd = NULL;\r
+       ugd = calloc(1, sizeof(struct ug_data));\r
+       gallery_retvm_if(!ugd, -1, "ugd is NULL");\r
+\r
+       ops->create = _on_create;\r
+       ops->start = _on_start;\r
+       ops->pause = _on_pause;\r
+       ops->resume = _on_resume;\r
+       ops->destroy = _on_destroy;\r
+       ops->message = _on_message;\r
+       ops->key_event = _on_key_event;\r
+       ops->event = _on_event;\r
+       ops->priv = ugd;\r
+       ops->opt = UG_OPT_INDICATOR_PORTRAIT_ONLY;\r
+\r
+       return 0;\r
+}\r
+\r
+UG_MODULE_API int setting_plugin_reset(service_h data, void *priv)\r
+{\r
+       gallery_info("Reset the settings start");\r
+\r
+       int ret = 0;\r
+       ret += gallery_key_set_current_time(DEFAULT_TIMER);\r
+       ret += gallery_key_set_repeat_state(DEFAULT_REPEAT);\r
+       ret += gallery_key_set_shuffle_state(DEFAULT_SHUFFLE);\r
+\r
+       gallery_info("Finished");\r
+\r
+       return ret;\r
+}\r
+\r
+UG_MODULE_API void\r
+UG_MODULE_EXIT(struct ug_module_ops *ops)\r
+{\r
+       gallery_retm_if(!ops, "ops is NULL");\r
+\r
+       struct ug_data *ugd;\r
+\r
+       ugd = ops->priv;\r
+       if (ugd)\r
+       {\r
+               free(ugd);\r
+       }\r
+}\r
+\r