[elm_stackedicon.c elm_multibuttonentry.c] Indentation fixed.
authorSeunggyun Kim <sgyun.kim@samsung.com>
Wed, 8 Dec 2010 02:56:28 +0000 (11:56 +0900)
committerSeunggyun Kim <sgyun.kim@samsung.com>
Wed, 8 Dec 2010 02:56:28 +0000 (11:56 +0900)
src/lib/elm_multibuttonentry.c
src/lib/elm_stackedicon.c

index df79b9d..b3b9ffb 100644 (file)
  *\r
  * This is a Multibuttonentry.\r
  */\r
-               \r
-\r
-#define MAX_STR 256            \r
-#define MAX_W_BTN 200          \r
-#define MIN_W_ENTRY 20 \r
-\r
+      \r
+#define MAX_STR 256      \r
+#define MAX_W_BTN 200      \r
+#define MIN_W_ENTRY 20   \r
 \r
 typedef enum _Multibuttonentry_Pos\r
 {\r
- MULTIBUTONENTRY_POS_START,\r
- MULTIBUTONENTRY_POS_END,\r
- MULTIBUTONENTRY_POS_BEFORE,\r
- MULTIBUTONENTRY_POS_AFTER,\r
- MULTIBUTONENTRY_POS_NUM\r
-}Multibuttonentry_Pos;\r
  MULTIBUTONENTRY_POS_START,\r
  MULTIBUTONENTRY_POS_END,\r
  MULTIBUTONENTRY_POS_BEFORE,\r
  MULTIBUTONENTRY_POS_AFTER,\r
  MULTIBUTONENTRY_POS_NUM\r
+} Multibuttonentry_Pos;\r
 \r
 typedef enum _Multibuttonentry_Button_State\r
 {\r
- MULTIBUTONENTRY_BUTTON_STATE_DEFAULT,\r
- MULTIBUTONENTRY_BUTTON_STATE_SELECTED,\r
- MULTIBUTONENTRY_BUTTON_STATE_NUM\r
-}Multibuttonentry_Button_State;\r
-\r
-\r
-struct _Multibuttonentry_Item {\r
-       Evas_Object *multibuttonentry;\r
-       Evas_Object *button;\r
-       Evas_Object *label;\r
-       void *data;\r
-       Evas_Coord vw, rw; // vw: visual width, real width\r
-       Eina_Bool  visible: 1;  \r
  MULTIBUTONENTRY_BUTTON_STATE_DEFAULT,\r
  MULTIBUTONENTRY_BUTTON_STATE_SELECTED,\r
  MULTIBUTONENTRY_BUTTON_STATE_NUM\r
+} Multibuttonentry_Button_State;\r
+\r
+struct _Multibuttonentry_Item \r
+   {\r
+   Evas_Object *multibuttonentry;\r
+   Evas_Object *button;\r
+   Evas_Object *label;\r
+   void *data;\r
+   Evas_Coord vw, rw; // vw: visual width, real width\r
+   Eina_Bool  visible: 1;   \r
 };\r
 \r
 typedef struct _Widget_Data Widget_Data;\r
-struct _Widget_Data {\r
-       Evas_Object *base;\r
-       Evas_Object *box;\r
-       Evas_Object *rect;\r
-       Evas_Object *entry;\r
-       Evas_Object *label;\r
-       Evas_Object *guidetext;\r
-       Evas_Object *end;       // used to represent the total number of invisible buttons\r
-\r
-       Eina_List *items;\r
-       Eina_List *current;\r
-\r
-       int n_str;\r
-\r
-       Evas_Coord w_box, h_box;\r
-       int  contracted;        \r
-       Eina_Bool  focused: 1;  \r
+struct _Widget_Data \r
+   {\r
+   Evas_Object *base;\r
+   Evas_Object *box;\r
+   Evas_Object *rect;\r
+   Evas_Object *entry;\r
+   Evas_Object *label;\r
+   Evas_Object *guidetext;\r
+   Evas_Object *end;   // used to represent the total number of invisible buttons\r
+\r
+   Eina_List *items;\r
+   Eina_List *current;\r
+\r
+   int n_str;\r
+\r
+   Evas_Coord w_box, h_box;\r
+   int  contracted;   \r
+   Eina_Bool  focused: 1;   \r
 };\r
 \r
 static const char *widtype = NULL;\r
-\r
 static void _del_hook(Evas_Object *obj);\r
 static void _theme_hook(Evas_Object *obj);\r
 static void _on_focus_hook(void *data __UNUSED__, Evas_Object *obj);\r
 static void _sizing_eval(Evas_Object *obj);\r
 static void _changed_size_hint_cb(void *data, Evas *evas, Evas_Object *obj, void *event);\r
 static void _resize_cb(void *data, Evas *evas, Evas_Object *obj, void *event);\r
-static void    _event_init(Evas_Object *obj);\r
+static void   _event_init(Evas_Object *obj);\r
 static void _contracted_state_set(Evas_Object *obj, int contracted);\r
 static void _view_update(Evas_Object *obj);\r
-static void    _set_label(Evas_Object *obj, const char* str);\r
+static void   _set_label(Evas_Object *obj, const char* str);\r
 static void _change_current_button_state(Evas_Object *obj, Multibuttonentry_Button_State state);\r
-static void    _change_current_button(Evas_Object *obj, Evas_Object *btn);\r
-static void    _button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);\r
-static void    _del_button_obj(Evas_Object *obj, Evas_Object *btn);\r
-static void    _del_button_item(Elm_Multibuttonentry_Item *item);\r
-static void    _del_button(Evas_Object *obj);\r
+static void   _change_current_button(Evas_Object *obj, Evas_Object *btn);\r
+static void   _button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source);\r
+static void   _del_button_obj(Evas_Object *obj, Evas_Object *btn);\r
+static void   _del_button_item(Elm_Multibuttonentry_Item *item);\r
+static void   _del_button(Evas_Object *obj);\r
 static Elm_Multibuttonentry_Item* _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, const Elm_Multibuttonentry_Item *reference, void *data);\r
-static void    _add_button(Evas_Object *obj, char *str);\r
-static void    _evas_key_up_cb(void *data, Evas *e , Evas_Object *obj , void *event_info );\r
-static void    _view_init(Evas_Object *obj);\r
+static void   _add_button(Evas_Object *obj, char *str);\r
+static void   _evas_key_up_cb(void *data, Evas *e , Evas_Object *obj , void *event_info );\r
+static void   _view_init(Evas_Object *obj);\r
 //static void _entry_focused(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__);\r
 //static void _entry_unfocused(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__);\r
 \r
-\r
 static void\r
 _del_hook(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if(!wd) return;\r
-\r
-       if (wd->items) {\r
-               Elm_Multibuttonentry_Item *item;\r
-               EINA_LIST_FREE(wd->items, item) {\r
-                       _del_button_obj(obj, item->button);\r
-                       free(item);\r
-               }\r
-               wd->items = NULL;\r
-       }\r
-       wd->current = NULL;\r
-\r
-       if(wd->rect) evas_object_del(wd->rect);\r
-       if(wd->entry) evas_object_del(wd->entry);\r
-       if(wd->label) evas_object_del(wd->label);\r
-       if(wd->guidetext) evas_object_del(wd->guidetext);\r
-       if(wd->end) evas_object_del(wd->end);   \r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
+\r
+   if (wd->items) \r
+     {\r
+        Elm_Multibuttonentry_Item *item;\r
+        EINA_LIST_FREE(wd->items, item) \r
+          {\r
+             _del_button_obj(obj, item->button);\r
+             free(item);\r
+          }\r
+        wd->items = NULL;\r
+     }\r
+   wd->current = NULL;\r
+\r
+   if (wd->rect) evas_object_del (wd->rect);\r
+   if (wd->entry) evas_object_del (wd->entry);\r
+   if (wd->label) evas_object_del (wd->label);\r
+   if (wd->guidetext) evas_object_del (wd->guidetext);\r
+   if (wd->end) evas_object_del (wd->end);   \r
 }\r
 \r
 static void\r
 _theme_hook(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *item;\r
-       if (!wd) return;\r
-       \r
-       _elm_theme_object_set(obj, wd->base, "multibuttonentry", "base", elm_widget_style_get(obj));\r
-       if(wd->box)     edje_object_part_swallow(wd->base, "box.swallow", wd->box);\r
-       edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale);\r
-\r
-       EINA_LIST_FOREACH(wd->items, l, item) {\r
-               if(item->button)        _elm_theme_object_set(obj, item->button, "multibuttonentry", "btn", elm_widget_style_get(obj));\r
-               if(item->label)         edje_object_part_swallow(item->button, "elm.label", item->label);\r
-               edje_object_scale_set(item->button, elm_widget_scale_get(obj) * _elm_config->scale);\r
-       }\r
-\r
-       _sizing_eval(obj);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd) return;\r
+   \r
+   _elm_theme_object_set(obj, wd->base, "multibuttonentry", "base", elm_widget_style_get(obj));\r
+   if (wd->box)   edje_object_part_swallow (wd->base, "box.swallow", wd->box);\r
+   edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale);\r
+\r
+   EINA_LIST_FOREACH(wd->items, l, item) \r
+     {\r
+        if (item->button)   \r
+         _elm_theme_object_set (obj, item->button, "multibuttonentry", "btn", elm_widget_style_get (obj));\r
+        if (item->label)      \r
+         edje_object_part_swallow (item->button, "elm.label", item->label);\r
+        edje_object_scale_set(item->button, elm_widget_scale_get(obj) * _elm_config->scale);\r
+     }\r
+\r
+   _sizing_eval(obj);\r
 }\r
 \r
 static void\r
@@ -135,583 +137,634 @@ _on_focus_hook(void *data __UNUSED__, Evas_Object *obj)
 {\r
    Widget_Data *wd = elm_widget_data_get(obj);\r
    if (!wd) return;\r
-\r
    _view_update(obj);\r
 }\r
 \r
 static void\r
 _sizing_eval(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Evas_Coord minw = -1, minh = -1;\r
-       Evas_Coord left, right, top, bottom;\r
-       if (!wd) return;\r
-\r
-       evas_object_size_hint_min_get(wd->box, &minw, &minh);\r
-       edje_object_part_geometry_get(wd->base, "top.left.pad", NULL, NULL, &left, &top);\r
-       edje_object_part_geometry_get(wd->base, "bottom.right.pad", NULL, NULL, &right, &bottom);       \r
-\r
-       minw += (left + right);\r
-       minh += (top + bottom);\r
-       \r
-       evas_object_size_hint_min_set(obj, minw, minh);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Evas_Coord minw = -1, minh = -1;\r
+   Evas_Coord left, right, top, bottom;\r
+   if (!wd) return;\r
+\r
+   evas_object_size_hint_min_get(wd->box, &minw, &minh);\r
+   edje_object_part_geometry_get(wd->base, "top.left.pad", NULL, NULL, &left, &top);\r
+   edje_object_part_geometry_get(wd->base, "bottom.right.pad", NULL, NULL, &right, &bottom);   \r
+\r
+   minw += (left + right);\r
+   minh += (top + bottom);\r
+   \r
+   evas_object_size_hint_min_set(obj, minw, minh);\r
 }\r
 \r
 static void \r
 _changed_size_hint_cb(void *data, Evas *evas, Evas_Object *obj, void *event)\r
 {\r
-       Evas_Object *eo = (Evas_Object *)data;\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       if (!wd) return;\r
-\r
-       _sizing_eval(eo);\r
+   Evas_Object *eo = (Evas_Object *)data;\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   if (!wd) return;\r
+   _sizing_eval(eo);\r
 }\r
 \r
 static void \r
 _resize_cb(void *data, Evas *evas, Evas_Object *obj, void *event)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       Evas_Coord w, h;\r
-       if (!wd) return;\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   Evas_Coord w, h;\r
+   if (!wd) return;\r
 \r
-       evas_object_geometry_get(wd->box, NULL, NULL, &w, &h);\r
+   evas_object_geometry_get(wd->box, NULL, NULL, &w, &h);\r
 \r
-       if(wd->h_box < h) evas_object_smart_callback_call(data, "expanded", NULL);\r
-       else if(wd->h_box > h) evas_object_smart_callback_call(data, "contracted", NULL);\r
-       else ;\r
+   if (wd->h_box < h) evas_object_smart_callback_call (data, "expanded", NULL);\r
+   else if (wd->h_box > h) evas_object_smart_callback_call (data, "contracted", NULL);\r
+   else ;\r
 \r
-       wd->w_box = w;\r
-       wd->h_box = h;\r
+   wd->w_box = w;\r
+   wd->h_box = h;\r
 \r
-       _view_update(data);\r
+   _view_update(data);\r
 }\r
 \r
 static void\r
 _event_init(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if(!wd || !wd->base)    return;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !wd->base)   return;\r
 \r
-       if(wd->box){\r
-               evas_object_event_callback_add(wd->box, EVAS_CALLBACK_RESIZE, _resize_cb, obj);\r
-               evas_object_event_callback_add(wd->box, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hint_cb, obj);\r
-       }\r
+   if (wd->box)\r
+     {\r
+        evas_object_event_callback_add(wd->box, EVAS_CALLBACK_RESIZE, _resize_cb, obj);\r
+        evas_object_event_callback_add(wd->box, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _changed_size_hint_cb, obj);\r
+     }\r
 \r
 /*\r
-       if(wd->entry){\r
-               evas_object_smart_callback_add(wd->entry, "focused", _entry_focused, obj);\r
-               evas_object_smart_callback_add(wd->entry, "unfocused", _entry_unfocused, obj);\r
-       }\r
+   if (wd->entry)\r
+   {\r
+      evas_object_smart_callback_add(wd->entry, "focused", _entry_focused, obj);\r
+      evas_object_smart_callback_add(wd->entry, "unfocused", _entry_unfocused, obj);\r
+   }\r
 */\r
 }\r
 \r
 static void\r
 _contracted_state_set(Evas_Object *obj, int contracted)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *item;\r
-       if (!wd || !wd->box) return;\r
-\r
-       if(wd->contracted == contracted) return;\r
-\r
-       elm_scrolled_entry_entry_set(wd->entry, "");\r
-\r
-       if(contracted == 1){            \r
-               Evas_Coord w=0, w_tmp=0;\r
-               \r
-               // unpack all items and entry\r
-               EINA_LIST_FOREACH(wd->items, l, item) {\r
-                       if (item) {\r
-                               elm_box_unpack(wd->box, item->button);\r
-                               evas_object_hide(item->button);\r
-                               item->visible = EINA_FALSE;\r
-                       }\r
-               }\r
-               elm_box_unpack(wd->box, wd->entry);\r
-               evas_object_hide(wd->entry);\r
-\r
-               \r
-               // pack buttons only 1line\r
-               w = wd->w_box;\r
-\r
-               // w -= w_rect\r
-               if(wd->rect) evas_object_geometry_get(wd->rect, NULL, NULL, &w_tmp, NULL);\r
-               w -= w_tmp;\r
-\r
-               // w -= w_label\r
-               if(wd->label) evas_object_geometry_get(wd->label, NULL, NULL, &w_tmp, NULL);\r
-               w -= w_tmp;\r
-\r
-               // w -= w_btns          \r
-               item = NULL;\r
-               int count = eina_list_count(wd->items);\r
-               EINA_LIST_FOREACH(wd->items, l, item) {\r
-                       if (item) {\r
-                               int w_label_count = 0;\r
-                               char buf[MAX_STR] = {0,};\r
-\r
-                               elm_box_pack_end(wd->box, item->button);\r
-                               evas_object_show(item->button);\r
-                               item->visible = EINA_TRUE;\r
-                               \r
-                               w -= item->vw;\r
-                               count--;\r
-                               \r
-                               if(count > 0){\r
-                                       snprintf(buf, sizeof(buf), "... + %d", count);\r
-                                       elm_label_label_set(wd->end, buf);\r
-                                       evas_object_size_hint_min_get(wd->end, &w_label_count, NULL);\r
-                               }\r
-\r
-                               if(w < 0 || w < w_label_count){\r
-                                       elm_box_unpack(wd->box, item->button);\r
-                                       evas_object_hide(item->button);\r
-                                       item->visible = EINA_FALSE;\r
-\r
-                                       count++;\r
-                                       snprintf(buf, sizeof(buf), "... + %d", count);\r
-                                       elm_label_label_set(wd->end, buf);\r
-                                       evas_object_size_hint_min_get(wd->end, &w_label_count, NULL);\r
-\r
-                                       elm_box_pack_end(wd->box, wd->end);\r
-                                       evas_object_show(wd->end);\r
-\r
-                                       break;\r
-                               }\r
-                       }\r
-               }\r
-\r
-       }else{\r
-               // unpack last label\r
-               elm_box_unpack(wd->box, wd->end);\r
-               evas_object_hide(wd->end);\r
-\r
-               // pack remain btns\r
-               item = NULL;\r
-               EINA_LIST_FOREACH(wd->items, l, item) {\r
-                       if (item && !item->visible){\r
-                               elm_box_pack_end(wd->box, item->button);\r
-                               evas_object_show(item->button);\r
-                       }\r
-               }\r
-\r
-               // pack entry\r
-               elm_box_pack_end(wd->box, wd->entry);\r
-               evas_object_show(wd->entry);\r
-       }\r
-\r
-       wd->contracted = contracted;\r
-       evas_object_smart_callback_call(obj, "contracted,state,changed", wd->contracted);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd || !wd->box) return;\r
+\r
+   if (wd->contracted == contracted) return;\r
+\r
+   elm_scrolled_entry_entry_set(wd->entry, "");\r
+\r
+   if (contracted == 1)\r
+     {      \r
+        Evas_Coord w=0, w_tmp=0;\r
+        \r
+        // unpack all items and entry\r
+        EINA_LIST_FOREACH(wd->items, l, item) \r
+          {\r
+             if (item) \r
+               {\r
+                  elm_box_unpack(wd->box, item->button);\r
+                  evas_object_hide(item->button);\r
+                  item->visible = EINA_FALSE;\r
+               }\r
+          }\r
+        elm_box_unpack(wd->box, wd->entry);\r
+        evas_object_hide(wd->entry);\r
+\r
+        \r
+        // pack buttons only 1line\r
+        w = wd->w_box;\r
+\r
+        // w -= w_rect\r
+        if (wd->rect) evas_object_geometry_get (wd->rect, NULL, NULL, &w_tmp, NULL);\r
+        w -= w_tmp;\r
+\r
+        // w -= w_label\r
+        if (wd->label) evas_object_geometry_get (wd->label, NULL, NULL, &w_tmp, NULL);\r
+        w -= w_tmp;\r
+\r
+        // w -= w_btns      \r
+        item = NULL;\r
+        int count = eina_list_count(wd->items);\r
+        EINA_LIST_FOREACH(wd->items, l, item) \r
+          {\r
+             if (item) \r
+               {\r
+                  int w_label_count = 0;\r
+                  char buf[MAX_STR] = {0,};\r
+\r
+                  elm_box_pack_end(wd->box, item->button);\r
+                  evas_object_show(item->button);\r
+                  item->visible = EINA_TRUE;\r
+                  \r
+                  w -= item->vw;\r
+                  count--;\r
+                  \r
+                  if (count > 0)\r
+                    {\r
+                       snprintf(buf, sizeof(buf), "... + %d", count);\r
+                       elm_label_label_set(wd->end, buf);\r
+                       evas_object_size_hint_min_get(wd->end, &w_label_count, NULL);\r
+                    }\r
+\r
+                  if (w < 0 || w < w_label_count)\r
+                    {\r
+                       elm_box_unpack(wd->box, item->button);\r
+                       evas_object_hide(item->button);\r
+                       item->visible = EINA_FALSE;\r
+\r
+                       count++;\r
+                       snprintf(buf, sizeof(buf), "... + %d", count);\r
+                       elm_label_label_set(wd->end, buf);\r
+                       evas_object_size_hint_min_get(wd->end, &w_label_count, NULL);\r
+\r
+                       elm_box_pack_end(wd->box, wd->end);\r
+                       evas_object_show(wd->end);\r
+\r
+                       break;\r
+                    }\r
+               }\r
+          }\r
+\r
+     }\r
+   else\r
+     {\r
+        // unpack last label\r
+        elm_box_unpack(wd->box, wd->end);\r
+        evas_object_hide(wd->end);\r
+\r
+        // pack remain btns\r
+        item = NULL;\r
+        EINA_LIST_FOREACH(wd->items, l, item) \r
+          {\r
+             if (item && !item->visible)\r
+               {\r
+                  elm_box_pack_end(wd->box, item->button);\r
+                  evas_object_show(item->button);\r
+               }\r
+          }\r
+\r
+        // pack entry\r
+        elm_box_pack_end(wd->box, wd->entry);\r
+        evas_object_show(wd->entry);\r
+     }\r
+\r
+   wd->contracted = contracted;\r
+   evas_object_smart_callback_call(obj, "contracted,state,changed", wd->contracted);\r
 }\r
 \r
 static void \r
 _view_update(Evas_Object *obj)\r
-{      \r
-       Widget_Data *wd = elm_widget_data_get(obj);     \r
-       if (!wd || !wd->box || !wd->entry) return;\r
-\r
-       if(wd->contracted == 1){\r
-               _contracted_state_set(obj, 0);\r
-               _contracted_state_set(obj, 1);\r
-       }\r
-\r
-       if (wd->guidetext && (wd->contracted != 1)){\r
-               if(!eina_list_count(wd->items)){\r
-                       if(elm_widget_focus_get(obj)){\r
-                               elm_box_unpack(wd->box, wd->entry);\r
-                               elm_box_unpack(wd->box, wd->guidetext);\r
-                               evas_object_hide(wd->guidetext);\r
-                                                       \r
-                               elm_box_pack_end(wd->box, wd->entry);\r
-                               evas_object_show(wd->entry);\r
-                               \r
-                               //elm_widget_focus_set(wd->entry, EINA_TRUE);   //FIXME\r
-                       }else{\r
-                               elm_box_unpack(wd->box, wd->guidetext);\r
-                               elm_box_unpack(wd->box, wd->entry);\r
-                               evas_object_hide(wd->entry);\r
-\r
-                               elm_box_pack_end(wd->box, wd->guidetext);                                                       \r
-                               evas_object_show(wd->guidetext);\r
-                       }\r
-               }else{\r
-                       elm_box_unpack(wd->box, wd->entry);\r
-                       elm_box_unpack(wd->box, wd->guidetext);\r
-                       evas_object_hide(wd->guidetext);\r
-                                               \r
-                       elm_box_pack_end(wd->box, wd->entry);\r
-                       evas_object_show(wd->entry);\r
-               }\r
-       }\r
+{   \r
+   Widget_Data *wd = elm_widget_data_get(obj);   \r
+   if (!wd || !wd->box || !wd->entry) return;\r
+\r
+   if (wd->contracted == 1)\r
+     {\r
+        _contracted_state_set(obj, 0);\r
+        _contracted_state_set(obj, 1);\r
+     }\r
+\r
+   if (wd->guidetext && (wd->contracted != 1))\r
+     {\r
+        if (!eina_list_count (wd->items))\r
+          {\r
+             if (elm_widget_focus_get (obj))\r
+               {\r
+                  elm_box_unpack(wd->box, wd->entry);\r
+                  elm_box_unpack(wd->box, wd->guidetext);\r
+                  evas_object_hide(wd->guidetext);\r
+                           \r
+                  elm_box_pack_end(wd->box, wd->entry);\r
+                  evas_object_show(wd->entry);\r
+                  \r
+                  //elm_widget_focus_set(wd->entry, EINA_TRUE);   //FIXME\r
+               }\r
+             else\r
+               {\r
+                  elm_box_unpack(wd->box, wd->guidetext);\r
+                  elm_box_unpack(wd->box, wd->entry);\r
+                  evas_object_hide(wd->entry);\r
+\r
+                  elm_box_pack_end(wd->box, wd->guidetext);                     \r
+                  evas_object_show(wd->guidetext);\r
+               }\r
+          }\r
+        else\r
+          {\r
+             elm_box_unpack(wd->box, wd->entry);\r
+             elm_box_unpack(wd->box, wd->guidetext);\r
+             evas_object_hide(wd->guidetext);\r
+                      \r
+             elm_box_pack_end(wd->box, wd->entry);\r
+             evas_object_show(wd->entry);\r
+          }\r
+     }\r
 }\r
 \r
 /*\r
 static void\r
 _entry_focused(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)\r
 {\r
-       printf("\n>>>>>>[%s][%d]\n", __FUNCTION__, __LINE__);\r
-       //if(data) _view_update(data);\r
+   printf("\n>>>>>>[%s][%d]\n", __FUNCTION__, __LINE__);\r
+   //if (data) _view_update (data);\r
 }\r
 \r
 static void\r
 _entry_unfocused(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)\r
 {\r
-       printf("\n>>>>>>[%s][%d]\n", __FUNCTION__, __LINE__);\r
-       //if(data) _view_update(data);\r
+   printf("\n>>>>>>[%s][%d]\n", __FUNCTION__, __LINE__);\r
+   //if (data) _view_update (data);\r
 }\r
 */\r
 \r
 static void\r
 _set_label(Evas_Object *obj, const char* str)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if(!wd || !str) return;\r
-\r
-       if(!wd->label){\r
-               if(!(wd->label = elm_label_add(obj))) return;\r
-               elm_object_style_set(wd->label, "extended/multibuttonentry_default");\r
-               elm_label_ellipsis_set(wd->label, EINA_TRUE);\r
-               elm_label_wrap_width_set(wd->label, 180);\r
-               elm_label_text_align_set(wd->label, "left");\r
-               evas_object_size_hint_weight_set(wd->label, 0.0, EVAS_HINT_EXPAND);\r
-               evas_object_size_hint_align_set(wd->label, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
-               if(wd->box){\r
-                       if(wd->rect) elm_box_pack_after(wd->box, wd->label, wd->rect);\r
-                       else elm_box_pack_start(wd->box, wd->label);\r
-               }\r
-               evas_object_show(wd->label);\r
-       }\r
-\r
-       elm_label_label_set(wd->label, str);\r
-       _view_update(obj);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !str)   return;\r
+\r
+   if (!wd->label)\r
+     {\r
+        if (! (wd->label = elm_label_add (obj))) return;\r
+        elm_object_style_set(wd->label, "extended/multibuttonentry_default");\r
+        elm_label_ellipsis_set(wd->label, EINA_TRUE);\r
+        elm_label_wrap_width_set(wd->label, 180);\r
+        elm_label_text_align_set(wd->label, "left");\r
+        evas_object_size_hint_weight_set(wd->label, 0.0, EVAS_HINT_EXPAND);\r
+        evas_object_size_hint_align_set(wd->label, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+        if (wd->box)\r
+          {\r
+             if (wd->rect) elm_box_pack_after (wd->box, wd->label, wd->rect);\r
+             else elm_box_pack_start(wd->box, wd->label);\r
+          }\r
+        evas_object_show(wd->label);\r
+     }\r
+\r
+   elm_label_label_set(wd->label, str);\r
+   _view_update(obj);\r
 }\r
 \r
 static void\r
 _set_guidetext(Evas_Object *obj, const char* str)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if(!wd || !str) return;\r
-\r
-       if(!wd->guidetext){\r
-               if(!(wd->guidetext = edje_object_add(evas_object_evas_get(obj)))) return;\r
-               _elm_theme_object_set(obj, wd->guidetext, "multibuttonentry", "guidetext", elm_widget_style_get(obj));\r
-               evas_object_size_hint_min_set(wd->guidetext, 280, 0);\r
-               evas_object_size_hint_weight_set(wd->guidetext, 0.0, EVAS_HINT_EXPAND);\r
-               evas_object_size_hint_align_set(wd->guidetext, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
-       }\r
-\r
-       if(wd->guidetext) edje_object_part_text_set(wd->guidetext, "elm.text", str);\r
-       _view_update(obj);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !str)   return;\r
+\r
+   if (!wd->guidetext)\r
+     {\r
+        if (! (wd->guidetext = edje_object_add (evas_object_evas_get (obj)))) return;\r
+        _elm_theme_object_set(obj, wd->guidetext, "multibuttonentry", "guidetext", elm_widget_style_get(obj));\r
+        evas_object_size_hint_min_set(wd->guidetext, 280, 0);\r
+        evas_object_size_hint_weight_set(wd->guidetext, 0.0, EVAS_HINT_EXPAND);\r
+        evas_object_size_hint_align_set(wd->guidetext, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+     }\r
+\r
+   if (wd->guidetext) edje_object_part_text_set (wd->guidetext, "elm.text", str);\r
+   _view_update(obj);\r
 }\r
 \r
 static void\r
 _change_current_button_state(Evas_Object *obj, Multibuttonentry_Button_State state)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Multibuttonentry_Item *item = NULL;\r
-       if (!wd) return;\r
-\r
-       if(wd->current) \r
-               item = eina_list_data_get(wd->current);\r
-\r
-       if(item && item->button){\r
-               switch(state){\r
-                       case MULTIBUTONENTRY_BUTTON_STATE_DEFAULT:\r
-                               edje_object_signal_emit(item->button, "default", "");\r
-                               wd->current = NULL;\r
-                               break;\r
-                       case MULTIBUTONENTRY_BUTTON_STATE_SELECTED:\r
-                               edje_object_signal_emit(item->button, "focused", "");\r
-                               evas_object_smart_callback_call(obj, "selected", item);\r
-                               break;\r
-                       default:\r
-                               edje_object_signal_emit(item->button, "default", "");\r
-                               wd->current = NULL;\r
-                               break;\r
-               }\r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Multibuttonentry_Item *item = NULL;\r
+   if (!wd) return;\r
+\r
+   if (wd->current)   \r
+      item = eina_list_data_get(wd->current);\r
+\r
+   if (item && item->button)\r
+     {\r
+        switch(state)\r
+          {\r
+             case MULTIBUTONENTRY_BUTTON_STATE_DEFAULT:\r
+                edje_object_signal_emit(item->button, "default", "");\r
+                wd->current = NULL;\r
+                break;\r
+             case MULTIBUTONENTRY_BUTTON_STATE_SELECTED:\r
+                edje_object_signal_emit(item->button, "focused", "");\r
+                evas_object_smart_callback_call(obj, "selected", item);\r
+                break;\r
+             default:\r
+                edje_object_signal_emit(item->button, "default", "");\r
+                wd->current = NULL;\r
+                break;\r
+          }\r
+     }\r
 }\r
 \r
 static void\r
 _change_current_button(Evas_Object *obj, Evas_Object *btn)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *item;\r
-       if (!wd) return;\r
-\r
-       // change the state of previous button to "default"\r
-       _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);\r
-       \r
-       // change the current\r
-       EINA_LIST_FOREACH(wd->items, l, item) {\r
-               if(item->button == btn){\r
-                       wd->current = l;\r
-                       break;\r
-               }\r
-       }\r
-\r
-       // chagne the state of current button to "focused"\r
-       _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_SELECTED);\r
-       \r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd) return;\r
+\r
+   // change the state of previous button to "default"\r
+   _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);\r
+   \r
+   // change the current\r
+   EINA_LIST_FOREACH(wd->items, l, item) \r
+     {\r
+        if (item->button == btn)\r
+          {\r
+             wd->current = l;\r
+             break;\r
+          }\r
+     }\r
+\r
+   // chagne the state of current button to "focused"\r
+   _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_SELECTED);\r
+   \r
 }\r
 \r
 static void\r
 _button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       static char str[MAX_STR];\r
-       if (!wd) return;\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   static char str[MAX_STR];\r
+   if (!wd) return;\r
 \r
-       strncpy(str, elm_scrolled_entry_entry_get(wd->entry), MAX_STR);\r
-       str[MAX_STR - 1]= 0;\r
+   strncpy(str, elm_scrolled_entry_entry_get(wd->entry), MAX_STR);\r
+   str[MAX_STR - 1]= 0;\r
 \r
-       if(strlen(str)) \r
-               _add_button(data, str);\r
+   if (strlen (str))   \r
+      _add_button(data, str);\r
 \r
-       _change_current_button(data, obj);\r
+   _change_current_button(data, obj);\r
 }\r
 \r
 static void\r
 _del_button_obj(Evas_Object *obj, Evas_Object *btn)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Evas_Object *label;\r
-       if(!wd || !btn) return;\r
-       \r
-       if(btn){        \r
-               // del label\r
-               label = edje_object_part_swallow_get(btn, "elm.label");\r
-               edje_object_part_unswallow(btn, label);\r
-               evas_object_del(label);                         \r
-\r
-               // del button\r
-               evas_object_del(btn);           \r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Evas_Object *label;\r
+   if (!wd || !btn)   return;\r
+   \r
+   if (btn)\r
+     {   \r
+        // del label\r
+        label = edje_object_part_swallow_get(btn, "elm.label");\r
+        edje_object_part_unswallow(btn, label);\r
+        evas_object_del(label);            \r
+\r
+        // del button\r
+        evas_object_del(btn);      \r
+     }\r
 }\r
 \r
 static void\r
 _del_button_item(Elm_Multibuttonentry_Item *item)\r
 {\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *_item;\r
-       if(!item) return;\r
-       Widget_Data *wd;\r
-\r
-       Evas_Object *obj = item->multibuttonentry;\r
-       wd = elm_widget_data_get(obj);\r
-       if (!wd) return;\r
-\r
-       EINA_LIST_FOREACH(wd->items, l, _item) {\r
-               if (_item == item) {\r
-                       wd->items = eina_list_remove(wd->items, _item);\r
-                       elm_box_unpack(wd->box, _item->button);\r
-                       evas_object_smart_callback_call(obj, "deleted", _item);\r
-                       _del_button_obj(obj, _item->button);\r
-                       free(_item);\r
-                       if(wd->current == l)    \r
-                               wd->current = NULL;\r
-                       break;\r
-               }\r
-       }\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *_item;\r
+   if (!item) return;\r
+   Widget_Data *wd;\r
+\r
+   Evas_Object *obj = item->multibuttonentry;\r
+   wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
+\r
+   EINA_LIST_FOREACH(wd->items, l, _item) \r
+     {\r
+        if (_item == item) \r
+          {\r
+             wd->items = eina_list_remove(wd->items, _item);\r
+             elm_box_unpack(wd->box, _item->button);\r
+             evas_object_smart_callback_call(obj, "deleted", _item);\r
+             _del_button_obj(obj, _item->button);\r
+             free(_item);\r
+             if (wd->current == l)   \r
+                wd->current = NULL;\r
+             break;\r
+          }\r
+     }\r
 }\r
 \r
 static void\r
 _del_button(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Multibuttonentry_Item *item;\r
-       if(!wd || !wd->items) return;\r
-\r
-       if(!wd->current){\r
-               // let the last button focus\r
-               item = eina_list_data_get(eina_list_last(wd->items));   \r
-               if(item->button)        _change_current_button(obj, item->button);                              \r
-       }else{\r
-               item = eina_list_data_get(wd->current);\r
-               if(item){       \r
-                       _del_button_item(item);\r
-               }\r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd || !wd->items) return;\r
+\r
+   if (!wd->current)\r
+     {\r
+        // let the last button focus\r
+        item = eina_list_data_get(eina_list_last(wd->items));   \r
+        if (item->button)   _change_current_button (obj, item->button);            \r
+     }\r
+   else\r
+     {\r
+        item = eina_list_data_get(wd->current);\r
+        if (item)\r
+          {   \r
+             _del_button_item(item);\r
+          }\r
+     }\r
 }\r
 \r
 static Elm_Multibuttonentry_Item*\r
 _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, const Elm_Multibuttonentry_Item *reference, void *data)\r
 {\r
-       Elm_Multibuttonentry_Item *item;\r
-       Evas_Object *btn;\r
-       Evas_Object *label;\r
-       Evas_Coord w_label, h_label, w_btn, h_btn, padding_outer, padding_inner;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if(!wd || !wd->box || !wd->entry) return NULL;\r
-\r
-       if(wd->contracted == 1) return NULL;\r
-\r
-       // add button\r
-       btn = edje_object_add(evas_object_evas_get(obj));\r
-       _elm_theme_object_set(obj, btn, "multibuttonentry", "btn", elm_widget_style_get(obj));\r
-       edje_object_signal_callback_add(btn, "clicked", "elm", _button_clicked, obj);\r
-       evas_object_size_hint_weight_set(btn, 0.0, 0.0);\r
-       evas_object_show(btn);\r
-\r
-       // add label\r
-       label = elm_label_add(obj);\r
-       elm_object_style_set(label, "extended/multibuttonentry_button");\r
-       elm_label_label_set(label, str);\r
-       elm_label_ellipsis_set(label, EINA_TRUE);\r
-       edje_object_part_swallow(btn, "elm.label", label);\r
-\r
-       // decide the size of button\r
-       evas_object_size_hint_min_get(label, &w_label, &h_label);\r
-       edje_object_part_geometry_get(btn, "elm.base", NULL, NULL, NULL, &h_btn);\r
-       edje_object_part_geometry_get(btn, "left.padding", NULL, NULL, &padding_outer, NULL);\r
-       edje_object_part_geometry_get(btn, "left.inner.padding", NULL, NULL, &padding_inner, NULL);     \r
-       w_btn = w_label + 2*padding_outer + 2*padding_inner;    \r
-\r
-       // append item list\r
-       item = ELM_NEW(Elm_Multibuttonentry_Item);\r
-       if (item) {\r
-               item->multibuttonentry = obj;\r
-               item->button = btn;\r
-               item->label = label;\r
-               item->data = data;\r
-               item->rw = w_btn;\r
-               item->vw =(MAX_W_BTN < w_btn) ? MAX_W_BTN : w_btn;              \r
-               item->visible = EINA_TRUE;\r
-               \r
-               switch(pos){\r
-                       case MULTIBUTONENTRY_POS_START:\r
-                               wd->items = eina_list_prepend(wd->items, item);\r
-                               _view_update(obj);\r
-                               elm_box_pack_after(wd->box, btn, wd->label);\r
-                               break;\r
-                       case MULTIBUTONENTRY_POS_END:\r
-                               wd->items = eina_list_append(wd->items, item);\r
-                               _view_update(obj);\r
-                               elm_box_pack_before(wd->box, btn, wd->entry);\r
-                               break;\r
-                       case MULTIBUTONENTRY_POS_BEFORE:\r
-                               if(reference){  \r
-                                       wd->items = eina_list_prepend_relative(wd->items, item, reference);\r
-                                       _view_update(obj);\r
-                                       elm_box_pack_before(wd->box, btn, reference->button);\r
-                               }else{\r
-                                       wd->items = eina_list_append(wd->items, item);\r
-                                       _view_update(obj);\r
-                                       elm_box_pack_before(wd->box, btn, wd->entry);\r
-                               }\r
-                               break;\r
-                       case MULTIBUTONENTRY_POS_AFTER:\r
-                               if(reference){  \r
-                                       wd->items = eina_list_append_relative(wd->items, item, reference);\r
-                                       _view_update(obj);\r
-                                       elm_box_pack_after(wd->box, btn, reference->button);\r
-                               }else{  \r
-                                       wd->items = eina_list_append(wd->items, item);\r
-                                       _view_update(obj);\r
-                                       elm_box_pack_before(wd->box, btn, wd->entry);\r
-                               }\r
-                               break;\r
-                       default:\r
-                               break;\r
-               }\r
-       }\r
-\r
-       //resize btn and label\r
-       evas_object_resize(btn, item->vw, h_btn);\r
-       evas_object_size_hint_min_set(btn, item->vw, h_btn);\r
-       if((item->rw != item->vw) && (item->vw - 2*padding_outer - 2*padding_inner >=0)){\r
-               evas_object_resize(label, item->vw - 2*padding_outer - 2*padding_inner, h_label);       \r
-               elm_label_wrap_width_set(label, item->vw - 2*padding_outer - 2*padding_inner ); \r
-       }\r
-\r
-       evas_object_smart_callback_call(obj, "added", item);\r
-\r
-       return item;\r
+   Elm_Multibuttonentry_Item *item;\r
+   Evas_Object *btn;\r
+   Evas_Object *label;\r
+   Evas_Coord w_label, h_label, w_btn, h_btn, padding_outer, padding_inner;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !wd->box || !wd->entry) return NULL;\r
+\r
+   if (wd->contracted == 1) return NULL;\r
+\r
+   // add button\r
+   btn = edje_object_add(evas_object_evas_get(obj));\r
+   _elm_theme_object_set(obj, btn, "multibuttonentry", "btn", elm_widget_style_get(obj));\r
+   edje_object_signal_callback_add(btn, "clicked", "elm", _button_clicked, obj);\r
+   evas_object_size_hint_weight_set(btn, 0.0, 0.0);\r
+   evas_object_show(btn);\r
+\r
+   // add label\r
+   label = elm_label_add(obj);\r
+   elm_object_style_set(label, "extended/multibuttonentry_button");\r
+   elm_label_label_set(label, str);\r
+   elm_label_ellipsis_set(label, EINA_TRUE);\r
+   edje_object_part_swallow(btn, "elm.label", label);\r
+\r
+   // decide the size of button\r
+   evas_object_size_hint_min_get(label, &w_label, &h_label);\r
+   edje_object_part_geometry_get(btn, "elm.base", NULL, NULL, NULL, &h_btn);\r
+   edje_object_part_geometry_get(btn, "left.padding", NULL, NULL, &padding_outer, NULL);\r
+   edje_object_part_geometry_get(btn, "left.inner.padding", NULL, NULL, &padding_inner, NULL);    \r
+   w_btn = w_label + 2*padding_outer + 2*padding_inner;   \r
+\r
+   // append item list\r
+   item = ELM_NEW(Elm_Multibuttonentry_Item);\r
+   if (item) \r
+     {\r
+        item->multibuttonentry = obj;\r
+        item->button = btn;\r
+        item->label = label;\r
+        item->data = data;\r
+        item->rw = w_btn;\r
+        item->vw =(MAX_W_BTN < w_btn) ? MAX_W_BTN : w_btn;      \r
+        item->visible = EINA_TRUE;\r
+        \r
+        switch(pos)\r
+          {\r
+             case MULTIBUTONENTRY_POS_START:\r
+                wd->items = eina_list_prepend(wd->items, item);\r
+                _view_update(obj);\r
+                elm_box_pack_after(wd->box, btn, wd->label);\r
+                break;\r
+             case MULTIBUTONENTRY_POS_END:\r
+                wd->items = eina_list_append(wd->items, item);\r
+                _view_update(obj);\r
+                elm_box_pack_before(wd->box, btn, wd->entry);\r
+                break;\r
+             case MULTIBUTONENTRY_POS_BEFORE:\r
+                if (reference)\r
+                  {   \r
+                     wd->items = eina_list_prepend_relative(wd->items, item, reference);\r
+                     _view_update(obj);\r
+                     elm_box_pack_before(wd->box, btn, reference->button);\r
+                  }\r
+                else\r
+                  {\r
+                     wd->items = eina_list_append(wd->items, item);\r
+                     _view_update(obj);\r
+                     elm_box_pack_before(wd->box, btn, wd->entry);\r
+                  }\r
+                break;\r
+             case MULTIBUTONENTRY_POS_AFTER:\r
+                if (reference)\r
+                  {   \r
+                     wd->items = eina_list_append_relative(wd->items, item, reference);\r
+                     _view_update(obj);\r
+                     elm_box_pack_after(wd->box, btn, reference->button);\r
+                  }\r
+                else\r
+                  {   \r
+                     wd->items = eina_list_append(wd->items, item);\r
+                     _view_update(obj);\r
+                     elm_box_pack_before(wd->box, btn, wd->entry);\r
+                  }\r
+                break;\r
+             default:\r
+                break;\r
+          }\r
+     }\r
+\r
+   //resize btn and label\r
+   evas_object_resize(btn, item->vw, h_btn);\r
+   evas_object_size_hint_min_set(btn, item->vw, h_btn);\r
+   if ( (item->rw != item->vw) &&  (item->vw - 2*padding_outer - 2*padding_inner >=0))\r
+     {\r
+        evas_object_resize(label, item->vw - 2*padding_outer - 2*padding_inner, h_label);   \r
+        elm_label_wrap_width_set(label, item->vw - 2*padding_outer - 2*padding_inner ); \r
+     }\r
+\r
+   evas_object_smart_callback_call(obj, "added", item);\r
+\r
+   return item;\r
 }\r
 \r
 static void\r
 _add_button(Evas_Object *obj, char *str)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if(!wd) return;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
 \r
-       //remove entry text\r
-       elm_scrolled_entry_entry_set(wd->entry, "");\r
+   //remove entry text\r
+   elm_scrolled_entry_entry_set(wd->entry, "");\r
 \r
-       // add button\r
-       _add_button_item(obj, str, MULTIBUTONENTRY_POS_END, NULL, NULL);\r
+   // add button\r
+   _add_button_item(obj, str, MULTIBUTONENTRY_POS_END, NULL, NULL);\r
 }\r
 \r
 static void\r
 _evas_key_up_cb(void *data, Evas *e , Evas_Object *obj , void *event_info )\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *) event_info;\r
-       static char str[MAX_STR];       \r
-       if(!wd || !wd->base || !wd->box) return;\r
-       \r
-       strncpy(str, elm_scrolled_entry_entry_get(wd->entry), MAX_STR);\r
-       str[MAX_STR - 1]= 0;\r
-\r
-       if((wd->n_str == 0) && (strcmp(str, "") == 0) && ((strcmp(ev->keyname, "BackSpace") == 0)||(strcmp(ev->keyname, "BackSpace(") == 0))){ \r
-               _del_button(data);      \r
-       }else if((strcmp(str, "") != 0) && (strcmp(ev->keyname, "KP_Enter") == 0 ||strcmp(ev->keyname, "Return") == 0 )){\r
-               _add_button(data, str);\r
-               wd->n_str = 0;\r
-               return;\r
-       }else{\r
-               //\r
-       }\r
-\r
-       wd->n_str = strlen(str); \r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *) event_info;\r
+   static char str[MAX_STR];   \r
+   if (!wd || !wd->base || !wd->box) return;\r
+   \r
+   strncpy(str, elm_scrolled_entry_entry_get(wd->entry), MAX_STR);\r
+   str[MAX_STR - 1]= 0;\r
+\r
+   if ( (wd->n_str == 0) &&  (strcmp (str, "") == 0) &&  ( (strcmp (ev->keyname, "BackSpace") == 0)|| (strcmp (ev->keyname, "BackSpace (") == 0)))\r
+     { \r
+        _del_button(data);   \r
+     }\r
+   else if ( (strcmp (str, "") != 0) &&  (strcmp (ev->keyname, "KP_Enter") == 0 ||strcmp (ev->keyname, "Return") == 0 ))\r
+     {\r
+        _add_button(data, str);\r
+        wd->n_str = 0;\r
+        return;\r
+     }\r
+   else\r
+     {\r
+        //\r
+     }\r
+\r
+   wd->n_str = strlen(str); \r
 }\r
 \r
 static void \r
 _view_init(Evas_Object *obj)\r
-{      \r
-       Widget_Data *wd = elm_widget_data_get(obj);     \r
-       if (!wd) return;\r
-       \r
-       if(!wd->box){\r
-               if(!(wd->box = elm_box_add(obj))) return;\r
-               elm_widget_sub_object_add(obj, wd->box);\r
-               elm_box_extended_set(wd->box, EINA_TRUE);\r
-               elm_box_homogenous_set(wd->box, EINA_FALSE);\r
-               edje_object_part_swallow(wd->base, "box.swallow", wd->box);\r
-       }\r
-       \r
-       if(!wd->rect){\r
-               Evas_Coord w, h;\r
-               if(!(wd->rect = edje_object_add(evas_object_evas_get(obj)))) return;\r
-               _elm_theme_object_set(obj, wd->rect, "multibuttonentry", "rect", elm_widget_style_get(obj));\r
-               elm_widget_sub_object_add(obj, wd->rect);\r
-               edje_object_part_geometry_get(wd->rect, "elm.base", NULL, NULL, &w, &h);\r
-               evas_object_size_hint_min_set(wd->rect, w, h);          \r
-               evas_object_size_hint_weight_set(wd->rect, 0.0, EVAS_HINT_EXPAND);\r
-               evas_object_size_hint_align_set(wd->rect, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
-               if(wd->box)     elm_box_pack_start(wd->box, wd->rect);\r
-               evas_object_show(wd->rect);\r
-       }\r
-       \r
-       if(!wd->entry){\r
-               if(!(wd->entry = elm_scrolled_entry_add(obj))) return;\r
-               elm_scrolled_entry_single_line_set(wd->entry, EINA_TRUE);\r
-               elm_scrolled_entry_entry_set(wd->entry, "");\r
-               elm_scrolled_entry_cursor_end_set(wd->entry);\r
-               evas_object_size_hint_min_set(wd->entry, MIN_W_ENTRY, 0);\r
-               evas_object_event_callback_add(wd->entry, EVAS_CALLBACK_KEY_UP, _evas_key_up_cb, obj);\r
-               evas_object_size_hint_weight_set(wd->entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
-               evas_object_size_hint_align_set(wd->entry, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
-               if(wd->box)     elm_box_pack_end(wd->box, wd->entry);\r
-               evas_object_show(wd->entry);\r
-       }\r
-\r
-       if(!wd->end){\r
-               if(!(wd->end = elm_label_add(obj))) return;\r
-               elm_object_style_set(wd->end, "extended/multibuttonentry_default");\r
-       }\r
+{   \r
+   Widget_Data *wd = elm_widget_data_get(obj);   \r
+   if (!wd) return;\r
+   \r
+   if (!wd->box)\r
+     {\r
+        if (! (wd->box = elm_box_add (obj))) return;\r
+        elm_widget_sub_object_add(obj, wd->box);\r
+        elm_box_extended_set(wd->box, EINA_TRUE);\r
+        elm_box_homogenous_set(wd->box, EINA_FALSE);\r
+        edje_object_part_swallow(wd->base, "box.swallow", wd->box);\r
+     }\r
+   \r
+   if (!wd->rect)\r
+     {\r
+        Evas_Coord w, h;\r
+        if (! (wd->rect = edje_object_add (evas_object_evas_get (obj)))) return;\r
+        _elm_theme_object_set(obj, wd->rect, "multibuttonentry", "rect", elm_widget_style_get(obj));\r
+        elm_widget_sub_object_add(obj, wd->rect);\r
+        edje_object_part_geometry_get(wd->rect, "elm.base", NULL, NULL, &w, &h);\r
+        evas_object_size_hint_min_set(wd->rect, w, h);      \r
+        evas_object_size_hint_weight_set(wd->rect, 0.0, EVAS_HINT_EXPAND);\r
+        evas_object_size_hint_align_set(wd->rect, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+        if (wd->box)   elm_box_pack_start (wd->box, wd->rect);\r
+        evas_object_show(wd->rect);\r
+     }\r
+   \r
+   if (!wd->entry)\r
+     {\r
+        if (! (wd->entry = elm_scrolled_entry_add (obj))) return;\r
+        elm_scrolled_entry_single_line_set(wd->entry, EINA_TRUE);\r
+        elm_scrolled_entry_entry_set(wd->entry, "");\r
+        elm_scrolled_entry_cursor_end_set(wd->entry);\r
+        evas_object_size_hint_min_set(wd->entry, MIN_W_ENTRY, 0);\r
+        evas_object_event_callback_add(wd->entry, EVAS_CALLBACK_KEY_UP, _evas_key_up_cb, obj);\r
+        evas_object_size_hint_weight_set(wd->entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+        evas_object_size_hint_align_set(wd->entry, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+        if (wd->box)   elm_box_pack_end (wd->box, wd->entry);\r
+        evas_object_show(wd->entry);\r
+     }\r
+\r
+   if (!wd->end)\r
+     {\r
+        if (! (wd->end = elm_label_add (obj))) return;\r
+        elm_object_style_set(wd->end, "extended/multibuttonentry_default");\r
+     }\r
 }\r
 \r
 /**\r
@@ -725,35 +778,35 @@ _view_init(Evas_Object *obj)
 EAPI Evas_Object *\r
 elm_multibuttonentry_add(Evas_Object *parent)\r
 {\r
-       Evas_Object *obj;\r
-       Evas *e;\r
-       Widget_Data *wd;\r
-       if (!parent) return NULL;\r
-\r
-       wd = ELM_NEW(Widget_Data);\r
-       e = evas_object_evas_get(parent);\r
-       if (!e) return NULL; \r
-       obj = elm_widget_add(e);\r
-       ELM_SET_WIDTYPE(widtype, "multibuttonentry");\r
-       elm_widget_type_set(obj, "multibuttonentry");\r
-       elm_widget_sub_object_add(parent, obj);\r
-       elm_widget_data_set(obj, wd);\r
-\r
-       elm_widget_del_hook_set(obj, _del_hook);\r
-       elm_widget_theme_hook_set(obj, _theme_hook);\r
-       elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL);\r
-       \r
-       wd->base = edje_object_add(e);\r
-       _elm_theme_object_set(obj, wd->base, "multibuttonentry", "base", "default");\r
-       elm_widget_resize_object_set(obj, wd->base);\r
-       \r
-       wd->contracted = 0;\r
-       wd->n_str = 0;\r
-       \r
-       _view_init(obj);\r
-       _event_init(obj);\r
-\r
-       return obj;\r
+   Evas_Object *obj;\r
+   Evas *e;\r
+   Widget_Data *wd;\r
+   if (!parent) return NULL;\r
+\r
+   wd = ELM_NEW(Widget_Data);\r
+   e = evas_object_evas_get(parent);\r
+   if (!e) return NULL; \r
+   obj = elm_widget_add(e);\r
+   ELM_SET_WIDTYPE(widtype, "multibuttonentry");\r
+   elm_widget_type_set(obj, "multibuttonentry");\r
+   elm_widget_sub_object_add(parent, obj);\r
+   elm_widget_data_set(obj, wd);\r
+\r
+   elm_widget_del_hook_set(obj, _del_hook);\r
+   elm_widget_theme_hook_set(obj, _theme_hook);\r
+   elm_widget_on_focus_hook_set(obj, _on_focus_hook, NULL);\r
+   \r
+   wd->base = edje_object_add(e);\r
+   _elm_theme_object_set(obj, wd->base, "multibuttonentry", "base", "default");\r
+   elm_widget_resize_object_set(obj, wd->base);\r
+   \r
+   wd->contracted = 0;\r
+   wd->n_str = 0;\r
+   \r
+   _view_init(obj);\r
+   _event_init(obj);\r
+\r
+   return obj;\r
 }\r
 \r
 /**\r
@@ -767,11 +820,11 @@ elm_multibuttonentry_add(Evas_Object *parent)
 EAPI Evas_Object *\r
 elm_multibuttonentry_entry_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd)        return NULL;\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd)   return NULL;\r
 \r
-       return wd->entry;\r
+   return wd->entry;\r
 }\r
 \r
 /**\r
@@ -785,15 +838,11 @@ elm_multibuttonentry_entry_get(Evas_Object *obj)
 EAPI const char *\r
 elm_multibuttonentry_label_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return NULL;\r
-\r
-       if(wd->label){\r
-               return elm_label_label_get(wd->label);\r
-       }\r
-\r
-       return NULL;\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return NULL;\r
+   if (wd->label) return elm_label_label_get(wd->label);\r
+   return NULL;\r
 }\r
 \r
 /**\r
@@ -807,11 +856,10 @@ elm_multibuttonentry_label_get(Evas_Object *obj)
 EAPI void\r
 elm_multibuttonentry_label_set(Evas_Object *obj, const char *label)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype);\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd || !label) return;\r
-\r
-       _set_label(obj, label); \r
+   ELM_CHECK_WIDTYPE(obj, widtype);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !label) return;\r
+   _set_label(obj, label);   \r
 }\r
 \r
 /**\r
@@ -825,15 +873,11 @@ elm_multibuttonentry_label_set(Evas_Object *obj, const char *label)
 EAPI const char *\r
 elm_multibuttonentry_guide_text_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd)        return NULL;\r
-\r
-       if(wd->guidetext){\r
-               return elm_label_label_get(wd->guidetext);\r
-       }\r
-\r
-       return NULL;\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd)   return NULL;\r
+   if (wd->guidetext) return elm_label_label_get(wd->guidetext);\r
+   return NULL;\r
 }\r
 \r
 /**\r
@@ -847,11 +891,10 @@ elm_multibuttonentry_guide_text_get(Evas_Object *obj)
 EAPI void\r
 elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype);\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd || !guidetext) return;\r
-\r
-       _set_guidetext(obj, guidetext); \r
+   ELM_CHECK_WIDTYPE(obj, widtype);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !guidetext) return;\r
+   _set_guidetext(obj, guidetext);   \r
 }\r
 \r
 /**\r
@@ -865,11 +908,10 @@ elm_multibuttonentry_guide_text_set(Evas_Object *obj, const char *guidetext)
 EAPI int\r
 elm_multibuttonentry_contracted_state_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) -1;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return -1;\r
-\r
-       return wd->contracted;\r
+   ELM_CHECK_WIDTYPE(obj, widtype) -1;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return -1;\r
+   return wd->contracted;\r
 }\r
 \r
 /**\r
@@ -883,11 +925,10 @@ elm_multibuttonentry_contracted_state_get(Evas_Object *obj)
 EAPI void\r
 elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype);\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd || !wd->box || (wd->contracted == contracted)) return;\r
-\r
-       _contracted_state_set(obj, contracted);\r
+   ELM_CHECK_WIDTYPE(obj, widtype);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !wd->box || (wd->contracted == contracted)) return;\r
+   _contracted_state_set(obj, contracted);\r
 }\r
 \r
 /**\r
@@ -903,13 +944,12 @@ elm_multibuttonentry_contracted_state_set(Evas_Object *obj, int contracted)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Multibuttonentry_Item *item;\r
-       if (!wd || !label) return NULL;\r
-\r
-       item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_START, NULL, data);\r
-       return item; \r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd || !label) return NULL;\r
+   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_START, NULL, data);\r
+   return item; \r
 }\r
 \r
 /**\r
@@ -925,13 +965,12 @@ elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *d
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *data)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Multibuttonentry_Item *item;\r
-       if (!wd || !label) return NULL;\r
-\r
-       item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_END, NULL, data);\r
-       return item; \r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd || !label) return NULL;\r
+   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_END, NULL, data);\r
+   return item; \r
 }\r
 \r
 /**\r
@@ -949,13 +988,12 @@ elm_multibuttonentry_item_add_end(Evas_Object *obj, const char *label, void *dat
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *before, void *data)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Multibuttonentry_Item *item;\r
-       if (!wd || !label) return NULL;\r
-\r
-       item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_BEFORE, before, data);\r
-       return item; \r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd || !label) return NULL;\r
+   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_BEFORE, before, data);\r
+   return item; \r
 }\r
 \r
 /**\r
@@ -972,13 +1010,12 @@ elm_multibuttonentry_item_add_before(Evas_Object *obj, const char *label, Elm_Mu
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Multibuttonentry_Item *after, void *data)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Multibuttonentry_Item *item;\r
-       if (!wd || !label) return NULL;\r
-\r
-       item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_AFTER, after, data);\r
-       return item; \r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Multibuttonentry_Item *item;\r
+   if (!wd || !label) return NULL;\r
+   item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_AFTER, after, data);\r
+   return item; \r
 }\r
 \r
 /**\r
@@ -992,10 +1029,10 @@ elm_multibuttonentry_item_add_after(Evas_Object *obj, const char *label, Elm_Mul
 EAPI const Eina_List *\r
 elm_multibuttonentry_items_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return NULL;\r
-       return wd->items;\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return NULL;\r
+   return wd->items;\r
 }\r
 \r
 /**\r
@@ -1009,10 +1046,10 @@ elm_multibuttonentry_items_get(Evas_Object *obj)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_first_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd || !wd->items) return NULL;\r
-       return eina_list_data_get(wd->items);\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !wd->items) return NULL;\r
+   return eina_list_data_get(wd->items);\r
 }\r
 \r
 /**\r
@@ -1026,10 +1063,10 @@ elm_multibuttonentry_item_first_get(Evas_Object *obj)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_last_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd || !wd->items) return NULL;\r
-       return eina_list_data_get(eina_list_last(wd->items));\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !wd->items) return NULL;\r
+   return eina_list_data_get(eina_list_last(wd->items));\r
 }\r
 \r
 /**\r
@@ -1043,10 +1080,10 @@ elm_multibuttonentry_item_last_get(Evas_Object *obj)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_selected_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd || !wd->current) return NULL;\r
-       return eina_list_data_get(wd->current);\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || !wd->current) return NULL;\r
+   return eina_list_data_get(wd->current);\r
 }\r
 \r
 /**\r
@@ -1059,20 +1096,21 @@ elm_multibuttonentry_item_selected_get(Evas_Object *obj)
 EAPI void\r
 elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item)\r
 {\r
-       Widget_Data *wd;\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *_item;\r
-\r
-       if (!item) return;\r
-       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
-       wd = elm_widget_data_get(item->multibuttonentry);\r
-       if (!wd) return;\r
-\r
-       EINA_LIST_FOREACH(wd->items, l, _item) {\r
-               if (_item == item) {\r
-                       _change_current_button(item->multibuttonentry, item->button);\r
-               }\r
-       }\r
+   Widget_Data *wd;\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *_item;\r
+   if (!item) return;\r
+   ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
+   wd = elm_widget_data_get(item->multibuttonentry);\r
+   if (!wd) return;\r
+\r
+   EINA_LIST_FOREACH(wd->items, l, _item) \r
+     {\r
+        if (_item == item) \r
+          {\r
+             _change_current_button(item->multibuttonentry, item->button);\r
+          }\r
+     }\r
 }\r
 \r
 /**\r
@@ -1085,11 +1123,10 @@ elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item)
 EAPI void\r
 elm_multibuttonentry_item_unselect_all(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype);\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return;\r
-\r
-       _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);\r
+   ELM_CHECK_WIDTYPE(obj, widtype);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
+   _change_current_button_state(obj, MULTIBUTONENTRY_BUTTON_STATE_DEFAULT);\r
 }\r
 \r
 /**\r
@@ -1102,20 +1139,22 @@ elm_multibuttonentry_item_unselect_all(Evas_Object *obj)
 EAPI void\r
 elm_multibuttonentry_items_del(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype);\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return;\r
-       \r
-       if (wd->items){\r
-               Elm_Multibuttonentry_Item *item;\r
-               EINA_LIST_FREE(wd->items, item) {\r
-                       elm_box_unpack(wd->box, item->button);\r
-                       _del_button_obj(obj, item->button);\r
-                       free(item);\r
-               }\r
-               wd->items = NULL;\r
-       }\r
-       wd->current = NULL;\r
+   ELM_CHECK_WIDTYPE(obj, widtype);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
+   \r
+   if (wd->items)\r
+     {\r
+        Elm_Multibuttonentry_Item *item;\r
+        EINA_LIST_FREE(wd->items, item) \r
+          {\r
+             elm_box_unpack(wd->box, item->button);\r
+             _del_button_obj(obj, item->button);\r
+             free(item);\r
+          }\r
+        wd->items = NULL;\r
+     }\r
+   wd->current = NULL;\r
 }\r
 \r
 /**\r
@@ -1128,8 +1167,8 @@ elm_multibuttonentry_items_del(Evas_Object *obj)
 EAPI void\r
 elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item)\r
 {\r
-       if (!item) return;\r
-        _del_button_item(item);\r
+   if (!item) return;\r
+   _del_button_item(item);\r
 }\r
 \r
 /**\r
@@ -1143,22 +1182,22 @@ elm_multibuttonentry_item_del(Elm_Multibuttonentry_Item *item)
 EAPI const char *\r
 elm_multibuttonentry_item_label_get(Elm_Multibuttonentry_Item *item)\r
 {\r
-       Widget_Data *wd;\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *_item;\r
-\r
-       if (!item) return NULL;\r
-       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype) NULL;\r
-       wd = elm_widget_data_get(item->multibuttonentry);\r
-       if (!wd || !wd->items) return NULL;\r
-\r
-       EINA_LIST_FOREACH(wd->items, l, _item)\r
-               if (_item == item){\r
-                       Evas_Object *label = edje_object_part_swallow_get(_item->button, "elm.label");\r
-                       if(label)       return elm_label_label_get(label);\r
-               }\r
-\r
-       return NULL;\r
+   Widget_Data *wd;\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *_item;\r
+   if (!item) return NULL;\r
+   ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype) NULL;\r
+   wd = elm_widget_data_get(item->multibuttonentry);\r
+   if (!wd || !wd->items) return NULL;\r
+\r
+   EINA_LIST_FOREACH(wd->items, l, _item)\r
+      if (_item == item)\r
+        {\r
+           Evas_Object *label = edje_object_part_swallow_get(_item->button, "elm.label");\r
+           if (label)   return elm_label_label_get (label);\r
+        }\r
+\r
+   return NULL;\r
 }\r
 \r
 /**\r
@@ -1172,21 +1211,21 @@ elm_multibuttonentry_item_label_get(Elm_Multibuttonentry_Item *item)
 EAPI void\r
 elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char *str)\r
 {\r
-       Widget_Data *wd;\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *_item;\r
-\r
-       if (!item || !str) return;\r
-       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
-       wd = elm_widget_data_get(item->multibuttonentry);\r
-       if (!wd || !wd->items) return;\r
-\r
-       EINA_LIST_FOREACH(wd->items, l, _item)\r
-               if (_item == item) {\r
-                       Evas_Object *label = edje_object_part_swallow_get(_item->button, "elm.label");\r
-                       if(label)       elm_label_label_set(label, str);\r
-                       break;\r
-               }\r
+   Widget_Data *wd;\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *_item;  \r
+   if (!item || !str) return;\r
+   ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
+   wd = elm_widget_data_get(item->multibuttonentry);\r
+   if (!wd || !wd->items) return;\r
+\r
+   EINA_LIST_FOREACH(wd->items, l, _item)\r
+      if (_item == item) \r
+        {\r
+           Evas_Object *label = edje_object_part_swallow_get(_item->button, "elm.label");\r
+           if (label)   elm_label_label_set (label, str);\r
+           break;\r
+        }\r
 }\r
 \r
 /**\r
@@ -1200,22 +1239,22 @@ elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item)\r
 {\r
-       Widget_Data *wd;\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *_item;\r
-\r
-       if (!item) return NULL;\r
-       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype) NULL;\r
-       wd = elm_widget_data_get(item->multibuttonentry);\r
-       if (!wd || !wd->items) return NULL;\r
-\r
-       EINA_LIST_FOREACH(wd->items, l, _item)\r
-               if (_item == item) {\r
-                       l = eina_list_prev(l);\r
-                       if (!l) return NULL;\r
-                       return eina_list_data_get(l);\r
-               }\r
-       return NULL;\r
+   Widget_Data *wd;\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *_item;\r
+   if (!item) return NULL;\r
+   ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype) NULL;\r
+   wd = elm_widget_data_get(item->multibuttonentry);\r
+   if (!wd || !wd->items) return NULL;\r
+\r
+   EINA_LIST_FOREACH(wd->items, l, _item)\r
+      if (_item == item) \r
+        {\r
+           l = eina_list_prev(l);\r
+           if (!l) return NULL;\r
+           return eina_list_data_get(l);\r
+        }\r
+   return NULL;\r
 }\r
 \r
 /**\r
@@ -1229,22 +1268,22 @@ elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item)\r
 {\r
-       Widget_Data *wd;\r
-       Eina_List *l;\r
-       Elm_Multibuttonentry_Item *_item;\r
-\r
-       if (!item) return NULL;\r
-       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype) NULL;\r
-       wd = elm_widget_data_get(item->multibuttonentry);\r
-       if (!wd || !wd->items) return NULL;\r
-\r
-       EINA_LIST_FOREACH(wd->items, l, _item)\r
-               if (_item == item) {\r
-                       l = eina_list_next(l);\r
-                       if (!l) return NULL;\r
-                       return eina_list_data_get(l);\r
-               }\r
-       return NULL;\r
+   Widget_Data *wd;\r
+   Eina_List *l;\r
+   Elm_Multibuttonentry_Item *_item;\r
+   if (!item) return NULL;\r
+   ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype) NULL;\r
+   wd = elm_widget_data_get(item->multibuttonentry);\r
+   if (!wd || !wd->items) return NULL;\r
+\r
+   EINA_LIST_FOREACH(wd->items, l, _item)\r
+      if (_item == item) \r
+        {\r
+           l = eina_list_next(l);\r
+           if (!l) return NULL;\r
+           return eina_list_data_get(l);\r
+        }\r
+   return NULL;\r
 }\r
 \r
 /**\r
@@ -1258,8 +1297,8 @@ elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item)
 EAPI void *\r
 elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item)\r
 {\r
-       if (!item) return NULL;\r
-       return item->data;\r
+   if (!item) return NULL;\r
+   return item->data;\r
 }\r
 \r
 /**\r
@@ -1273,7 +1312,7 @@ elm_multibuttonentry_item_data_get(Elm_Multibuttonentry_Item *item)
 EAPI void\r
 elm_multibuttonentry_item_data_set(Elm_Multibuttonentry_Item *item, void *data)\r
 {\r
-       if (!item) return;\r
-       item->data = data;\r
+   if (!item) return;\r
+   item->data = data;\r
 }\r
 \r
index bb63921..f0a5316 100644 (file)
  */\r
 \r
 \r
-#define MAX_ITEM_NUM           (9)\r
-#define MAX_MOVE_INTERVAL      (0.2)\r
-#define ELM_MAX(v1, v2)        (((v1) > (v2)) ? (v1) : (v2))\r
-#define ROT_RIGHT                      (5)\r
-#define ROT_LEFT                       (-5)\r
-#define MAX_SHOWN_ITEM         (3)                     \r
-\r
-\r
-struct _Stackedicon_Item {\r
-       Evas_Object *parent;\r
-       Evas_Object *ly;\r
-       Evas_Object *ic;        \r
-       Evas_Object *pad;       \r
-       const char *path;\r
-       int index;\r
-       Evas_Coord x, y, w, h;\r
-       Evas_Coord mw, mh;      \r
-       Eina_Bool exist : 1;    \r
+#define MAX_ITEM_NUM      (9)\r
+#define MAX_MOVE_INTERVAL   (0.2)\r
+#define ELM_MAX(v1, v2)       (((v1) > (v2)) ? (v1) : (v2))\r
+#define ROT_RIGHT         (5)\r
+#define ROT_LEFT         (-5)\r
+#define MAX_SHOWN_ITEM      (3)         \r
+\r
+struct _Stackedicon_Item \r
+{\r
+   Evas_Object *parent;\r
+   Evas_Object *ly;\r
+   Evas_Object *ic;   \r
+   Evas_Object *pad;   \r
+   const char *path;\r
+   int index;\r
+   Evas_Coord x, y, w, h;\r
+   Evas_Coord mw, mh;   \r
+   Eina_Bool exist : 1;   \r
 };\r
 \r
 typedef struct _Widget_Data Widget_Data;\r
-struct _Widget_Data {  \r
-       Evas_Object *base;\r
-       int interval_x, interval_y;     \r
-       unsigned int time; \r
-       Ecore_Animator *animator;               \r
-       Eina_List *list;\r
-       Evas_Coord x, y, w, h;\r
-       Eina_Bool visible: 1;\r
-\r
-       /*  fake img */\r
-       Evas_Object *fake_img;\r
-       int r, g, b, a;\r
-       int mdx, mdy, mmx, mmy;\r
-       Eina_Bool move_start: 1;\r
-       Eina_Bool on_update;\r
+struct _Widget_Data \r
+{   \r
+   Evas_Object *base;\r
+   int interval_x, interval_y;   \r
+   unsigned int time; \r
+   Ecore_Animator *animator;      \r
+   Eina_List *list;\r
+   Evas_Coord x, y, w, h;\r
+   Eina_Bool visible: 1;\r
+\r
+   /*  fake img */\r
+   Evas_Object *fake_img;\r
+   int r, g, b, a;\r
+   int mdx, mdy, mmx, mmy;\r
+   Eina_Bool move_start: 1;\r
+   Eina_Bool on_update;\r
 };\r
 \r
 static const char *widtype = NULL;\r
-\r
-\r
 static void _del_hook(Evas_Object *obj);\r
 static void _theme_hook(Evas_Object *obj);\r
 static void _sizing_eval(Evas_Object *obj);\r
@@ -79,584 +78,615 @@ static void _show_cb(void *data, Evas * e, Evas_Object * obj, void *event_info);
 static void _hide_cb(void *data, Evas * e, Evas_Object * obj, void *event_info);\r
 static void _event_init(Evas_Object *obj);\r
 \r
-\r
-\r
-\r
 static void\r
 _del_hook(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Eina_List *l;\r
-       Elm_Stackedicon_Item *it;\r
-       if(!wd) return;\r
-       \r
-       if(wd->animator) {\r
-               ecore_animator_del(wd->animator);\r
-               wd->animator = NULL;\r
-       }\r
-\r
-       _del_all_image(wd);\r
-       \r
-       if(wd->list){\r
-               EINA_LIST_FOREACH(wd->list, l, it)\r
-                       if(it) free(it);                                \r
-               eina_list_free(wd->list);\r
-               wd->list = NULL;\r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Eina_List *l;\r
+   Elm_Stackedicon_Item *it;\r
+   if (!wd) return;\r
+   \r
+   if (wd->animator) \r
+     {\r
+        ecore_animator_del(wd->animator);\r
+        wd->animator = NULL;\r
+     }\r
+\r
+   _del_all_image(wd);\r
+   \r
+   if (wd->list)\r
+     {\r
+        EINA_LIST_FOREACH(wd->list, l, it)\r
+           if (it) free(it);            \r
+        eina_list_free(wd->list);\r
+        wd->list = NULL;\r
+     }\r
 }\r
 \r
 static void\r
 _theme_hook(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Eina_List *l;\r
-       Elm_Stackedicon_Item *it;\r
-       if (!wd) return;\r
-\r
-       _elm_theme_object_set(obj, wd->base, "stackedicon", "base", elm_widget_style_get(obj));\r
-       if(wd->fake_img) edje_object_part_swallow(wd->base, "elm.bg.swallow", wd->fake_img);\r
-       edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale);\r
-       \r
-       EINA_LIST_FOREACH(wd->list, l, it) {\r
-               if(it->ly)      _elm_theme_object_set(obj, it->ly, "stackedicon", "icon", elm_widget_style_get(obj));\r
-               if(it->ic)      edje_object_part_swallow(it->ly, "contents", it->ic);\r
-               if(it->pad)     edje_object_part_swallow(it->ly, "shadow", it->pad);\r
-               edje_object_scale_set(it->ly, elm_widget_scale_get(obj) * _elm_config->scale);\r
-       }\r
-       _update_stackedicon(obj);\r
-       _sizing_eval(obj);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Eina_List *l;\r
+   Elm_Stackedicon_Item *it;\r
+   if (!wd) return;\r
+\r
+   _elm_theme_object_set(obj, wd->base, "stackedicon", "base", elm_widget_style_get(obj));\r
+   if (wd->fake_img) edje_object_part_swallow(wd->base, "elm.bg.swallow", wd->fake_img);\r
+   edje_object_scale_set(wd->base, elm_widget_scale_get(obj) * _elm_config->scale);\r
+   \r
+   EINA_LIST_FOREACH(wd->list, l, it) \r
+     {\r
+        if (it->ly)   _elm_theme_object_set(obj, it->ly, "stackedicon", "icon", elm_widget_style_get(obj));\r
+        if (it->ic)   edje_object_part_swallow(it->ly, "contents", it->ic);\r
+        if (it->pad)   edje_object_part_swallow(it->ly, "shadow", it->pad);\r
+        edje_object_scale_set(it->ly, elm_widget_scale_get(obj) * _elm_config->scale);\r
+     }\r
+   _update_stackedicon(obj);\r
+   _sizing_eval(obj);\r
 }\r
 \r
 static void\r
 _sizing_eval(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Evas_Coord minw = -1, minh = -1;\r
-       Evas_Coord w, h;\r
-       if (!wd) return;\r
-\r
-       edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);\r
-       evas_object_size_hint_min_get(obj, &w, &h);\r
-       if (w > minw) minw = w;\r
-       if (h > minh) minh = h;\r
-       evas_object_size_hint_min_set(obj, minw, minh);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Evas_Coord minw = -1, minh = -1;\r
+   Evas_Coord w, h;\r
+   if (!wd) return;\r
+\r
+   edje_object_size_min_restricted_calc(wd->base, &minw, &minh, minw, minh);\r
+   evas_object_size_hint_min_get(obj, &w, &h);\r
+   if (w > minw) minw = w;\r
+   if (h > minh) minh = h;\r
+   evas_object_size_hint_min_set(obj, minw, minh);\r
 }\r
 \r
 static void \r
 _del_image(void *data)\r
 {\r
-       Elm_Stackedicon_Item *it = (Elm_Stackedicon_Item *)data;\r
-               \r
-       if(it->ly) {\r
-               evas_object_del(it->ly);\r
-               evas_object_del(it->ic);                                \r
-               evas_object_del(it->pad);               \r
-               it->ly = NULL;\r
-               it->ic = NULL;  \r
-               it->pad = NULL;                 \r
-               it->exist = EINA_FALSE;\r
-       }\r
+   Elm_Stackedicon_Item *it = (Elm_Stackedicon_Item *)data;\r
+      \r
+   if (it->ly) \r
+     {\r
+        evas_object_del(it->ly);\r
+        evas_object_del(it->ic);            \r
+        evas_object_del(it->pad);      \r
+        it->ly = NULL;\r
+        it->ic = NULL;   \r
+        it->pad = NULL;         \r
+        it->exist = EINA_FALSE;\r
+     }\r
 }\r
 \r
 static void \r
 _del_all_image(void *data)\r
 {\r
-       Widget_Data *wd = (Widget_Data *)data;  \r
-       Eina_List *l;\r
-       Elm_Stackedicon_Item *it = NULL;\r
-       if(!wd) return;\r
-       \r
-       EINA_LIST_FOREACH(wd->list, l, it)\r
-               if(it && it->exist) _del_image(it);\r
+   Widget_Data *wd = (Widget_Data *)data;   \r
+   Eina_List *l;\r
+   Elm_Stackedicon_Item *it = NULL;\r
+   if (!wd) return;\r
+   \r
+   EINA_LIST_FOREACH(wd->list, l, it)\r
+      if (it && it->exist) _del_image(it);\r
 }\r
 \r
 static void \r
 _icon_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
 {\r
-       Elm_Stackedicon_Item *it = data;\r
-       if(!it) return;\r
-       Widget_Data *wd = elm_widget_data_get(it->parent);\r
-       if(!wd) return;\r
-       \r
-       Evas_Coord x, y;\r
-       \r
-       if(it->exist && it->ly){\r
-               evas_object_geometry_get(obj, &x, &y, NULL, NULL);\r
-               _icon_map_pos(it->ly, it->index, x, y, it->w, it->h);   \r
-       }       \r
+   Elm_Stackedicon_Item *it = data;\r
+   if (!it)   return;\r
+   Widget_Data *wd = elm_widget_data_get(it->parent);\r
+   if (!wd) return;\r
+   \r
+   Evas_Coord x, y;\r
+   \r
+   if (it->exist && it->ly)\r
+     {\r
+        evas_object_geometry_get(obj, &x, &y, NULL, NULL);\r
+        _icon_map_pos(it->ly, it->index, x, y, it->w, it->h);   \r
+     }   \r
 }\r
 \r
 static void \r
 _fake_img_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       Evas_Event_Mouse_Down *ev = event_info;\r
-       Eina_List *l;\r
-       Elm_Stackedicon_Item *it = NULL;\r
-       if(!wd) return;\r
-\r
-       wd->mdx = ev->output.x;\r
-       wd->mdy = ev->output.y;\r
-\r
-       it = NULL;\r
-       EINA_LIST_REVERSE_FOREACH(wd->list, l, it) {\r
-               if(it){\r
-                       if(!it->exist) _add_image(data, it);\r
-                       evas_object_move(it->ly, wd->x + wd->w/2 - it->mw/2, wd->y + wd->h/2 - it->mh/2);       \r
-                       if(wd->visible) evas_object_show(it->ly);\r
-               }\r
-       }\r
-\r
-       EINA_LIST_REVERSE_FOREACH(wd->list, l, it)\r
-               if(it && it->exist) evas_object_raise(it->ly);\r
-\r
-       evas_object_color_set(wd->fake_img, 0, 0, 0, 0);        \r
-       wd->move_start = TRUE;\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   Evas_Event_Mouse_Down *ev = event_info;\r
+   Eina_List *l;\r
+   Elm_Stackedicon_Item *it = NULL;\r
+   if (!wd) return;\r
+\r
+   wd->mdx = ev->output.x;\r
+   wd->mdy = ev->output.y;\r
+\r
+   it = NULL;\r
+   EINA_LIST_REVERSE_FOREACH(wd->list, l, it) \r
+     {\r
+        if (it)\r
+          {\r
+             if (!it->exist) _add_image(data, it);\r
+             evas_object_move(it->ly, wd->x + wd->w/2 - it->mw/2, wd->y + wd->h/2 - it->mh/2);   \r
+             if (wd->visible) evas_object_show(it->ly);\r
+          }\r
+     }\r
+\r
+   EINA_LIST_REVERSE_FOREACH(wd->list, l, it)\r
+      if (it && it->exist) evas_object_raise(it->ly);\r
+\r
+   evas_object_color_set(wd->fake_img, 0, 0, 0, 0);   \r
+   wd->move_start = TRUE;\r
 }\r
 \r
 static void \r
 _fake_img_mouse_move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       Evas_Event_Mouse_Move *ev = event_info;\r
-       if(!wd || !ev->buttons) return;\r
-       \r
-       if(wd->move_start == TRUE){\r
-               evas_object_smart_callback_call(data, "drag,start", NULL);\r
-               _show_all_image(data);\r
-               wd->move_start = FALSE;\r
-       }\r
-\r
-       wd->mmx = ev->cur.output.x;\r
-       wd->mmy = ev->cur.output.y;\r
-\r
-       wd->interval_x = wd->mmx - wd->mdx;\r
-       wd->interval_y = wd->mmy - wd->mdy;     \r
-\r
-       _icon_move_map(wd, wd->x + wd->interval_x, wd->y +  wd->interval_y);\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   Evas_Event_Mouse_Move *ev = event_info;\r
+   if (!wd || !ev->buttons) return;\r
+   \r
+   if (wd->move_start == TRUE)\r
+     {\r
+        evas_object_smart_callback_call(data, "drag,start", NULL);\r
+        _show_all_image(data);\r
+        wd->move_start = FALSE;\r
+     }\r
+\r
+   wd->mmx = ev->cur.output.x;\r
+   wd->mmy = ev->cur.output.y;\r
+\r
+   wd->interval_x = wd->mmx - wd->mdx;\r
+   wd->interval_y = wd->mmy - wd->mdy;    \r
+\r
+   _icon_move_map(wd, wd->x + wd->interval_x, wd->y +  wd->interval_y);\r
 }\r
 \r
 static void \r
 _fake_img_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       double interval = 0.0;\r
-       if(!wd) return;\r
-\r
-       interval = sqrt(wd->interval_x*wd->interval_x + wd->interval_y*wd->interval_y);\r
-       \r
-       if(((double)(interval/wd->h) > MAX_MOVE_INTERVAL)){\r
-               wd->interval_x = 0;\r
-               wd->interval_y = 0;\r
-               \r
-               _icon_move_map(wd, wd->x, wd->y);               \r
-               _hide_hidden_image(data);\r
-               evas_object_smart_callback_call(data, "expanded", NULL);        \r
-               evas_object_smart_callback_call(data, "drag,stop", NULL);\r
-       }else{                  \r
-               wd->mdx = 0;\r
-               wd->mdy = 0;\r
-               wd->mmx = 0;\r
-               wd->mmx = 0;    \r
-               \r
-               if(wd->animator) {\r
-                       ecore_animator_del(wd->animator);\r
-                       wd->animator = NULL;\r
-               }\r
-               wd->time = _current_time_get();\r
-               wd->animator= ecore_animator_add(_icon_move_to_zero_cb, data);  \r
-       }       \r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   double interval = 0.0;\r
+   if (!wd) return;\r
+\r
+   interval = sqrt(wd->interval_x*wd->interval_x + wd->interval_y*wd->interval_y);\r
+   \r
+   if (((double)(interval/wd->h) > MAX_MOVE_INTERVAL))\r
+     {\r
+        wd->interval_x = 0;\r
+        wd->interval_y = 0;\r
+        \r
+        _icon_move_map(wd, wd->x, wd->y);      \r
+        _hide_hidden_image(data);\r
+        evas_object_smart_callback_call(data, "expanded", NULL);   \r
+        evas_object_smart_callback_call(data, "drag,stop", NULL);\r
+     }\r
+   else\r
+     {         \r
+        wd->mdx = 0;\r
+        wd->mdy = 0;\r
+        wd->mmx = 0;\r
+        wd->mmx = 0;   \r
+        \r
+        if (wd->animator) \r
+          {\r
+             ecore_animator_del(wd->animator);\r
+             wd->animator = NULL;\r
+          }\r
+        wd->time = _current_time_get();\r
+        wd->animator= ecore_animator_add(_icon_move_to_zero_cb, data);   \r
+     }   \r
 }\r
 \r
 static unsigned int \r
 _current_time_get(void)\r
 {\r
-       struct timeval timev;\r
-\r
-       gettimeofday(&timev, NULL);\r
-       return ((timev.tv_sec * 1000) + ((timev.tv_usec) / 1000));\r
+   struct timeval timev;\r
+   gettimeofday(&timev, NULL);\r
+   return ((timev.tv_sec * 1000) + ((timev.tv_usec) / 1000));\r
 }\r
 \r
 static void \r
 _icon_move_to_zero(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       double t;\r
-       int x, y;\r
-       if(!wd) return;\r
-       \r
-       t = ELM_MAX(0.0, _current_time_get() - wd->time) / 100;\r
-\r
-       if (t <= 1.0){\r
-               x = (1 * sin((t / 2.0) * (M_PI / 2)) * wd->interval_x);\r
-               y = (1 * sin((t / 2.0) * (M_PI / 2)) * wd->interval_y);                         \r
-       }else{\r
-               x = wd->interval_x;\r
-               y = wd->interval_y;\r
-       }\r
-       \r
-       if( y == wd->interval_y){\r
-               ecore_animator_del(wd->animator);\r
-               wd->animator = NULL;\r
-               wd->interval_x = 0;\r
-               wd->interval_y = 0;             \r
-               _icon_move_map(wd, wd->x, wd->y);\r
-               _hide_hidden_image(obj);\r
-               evas_object_smart_callback_call(obj, "clicked", NULL);\r
-               evas_object_smart_callback_call(obj, "drag,stop", NULL);\r
-       }else{  \r
-               _icon_move_map(wd, wd->x + wd->interval_x - x, wd->y + wd->interval_y - y);\r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   double t;\r
+   int x, y;\r
+   if (!wd) return;\r
+   \r
+   t = ELM_MAX(0.0, _current_time_get() - wd->time) / 100;\r
+\r
+   if (t <= 1.0)\r
+     {\r
+        x = (1 * sin((t / 2.0) * (M_PI / 2)) * wd->interval_x);\r
+        y = (1 * sin((t / 2.0) * (M_PI / 2)) * wd->interval_y);            \r
+     } \r
+   else\r
+     {\r
+        x = wd->interval_x;\r
+        y = wd->interval_y;\r
+     }\r
+   \r
+   if ( y == wd->interval_y)\r
+     {\r
+        ecore_animator_del(wd->animator);\r
+        wd->animator = NULL;\r
+        wd->interval_x = 0;\r
+        wd->interval_y = 0;      \r
+        _icon_move_map(wd, wd->x, wd->y);\r
+        _hide_hidden_image(obj);\r
+        evas_object_smart_callback_call(obj, "clicked", NULL);\r
+        evas_object_smart_callback_call(obj, "drag,stop", NULL);\r
+     }\r
+   else\r
+     {   \r
+        _icon_move_map(wd, wd->x + wd->interval_x - x, wd->y + wd->interval_y - y);\r
+     }\r
 }\r
 \r
 static Eina_Bool \r
 _icon_move_to_zero_cb(void *data)\r
 {\r
     Evas_Object *obj = (Evas_Object *)data;\r
-       _icon_move_to_zero(obj);\r
-       \r
-       return EXIT_FAILURE;\r
+   _icon_move_to_zero(obj);\r
+   \r
+   return EXIT_FAILURE;\r
 }\r
 \r
 static void \r
 _icon_move_map(void *data, int interval_x, int interval_y)\r
 {\r
-       Widget_Data *wd = (Widget_Data *)data;\r
-       int i = 0;\r
-       int num = eina_list_count(wd->list);\r
-       int x = 0, y = 0;\r
-       if(!wd) return;\r
-       \r
-       for(i =0; i  < num; i++)\r
-       {\r
-               Elm_Stackedicon_Item *it = NULL;\r
-               it = (Elm_Stackedicon_Item *)eina_list_nth(wd->list, i);\r
-\r
-               if(it != NULL){\r
-                       x = wd->x  + wd->w/2 - it->mw/2 + ((interval_x - wd->x)/num)*(num -i);\r
-                       y = wd->y + wd->h/2 - it->mh/2 + ((interval_y - wd->y)/num)*(num -i);\r
-                       evas_object_move(it->ly, x, y);\r
-               }\r
-       }\r
+   Widget_Data *wd = (Widget_Data *)data;\r
+   int i = 0;\r
+   int num = eina_list_count(wd->list);\r
+   int x = 0, y = 0;\r
+   if (!wd) return;\r
+   \r
+   for (i =0; i  < num; i++)\r
+     {\r
+        Elm_Stackedicon_Item *it = NULL;\r
+        it = (Elm_Stackedicon_Item *)eina_list_nth(wd->list, i);\r
+\r
+        if (it != NULL)\r
+          {\r
+             x = wd->x  + wd->w/2 - it->mw/2 + ((interval_x - wd->x)/num)*(num -i);\r
+             y = wd->y + wd->h/2 - it->mh/2 + ((interval_y - wd->y)/num)*(num -i);\r
+             evas_object_move(it->ly, x, y);\r
+          }\r
+     }\r
 }\r
 \r
 static void \r
 _icon_map_pos(Evas_Object *obj, int index, Evas_Coord x, Evas_Coord y, Evas_Coord w, Evas_Coord h)\r
 {\r
-       Evas_Map *m;\r
-       int degree = 0;\r
-\r
-       if((index % 3) == 1)\r
-               degree = ROT_RIGHT;\r
-       else if ((index % 3) == 2)\r
-               degree = ROT_LEFT;\r
-\r
-       m = evas_map_new(4);\r
-       evas_map_util_points_populate_from_geometry(m, x, y, w, h, 0);\r
-       evas_map_util_3d_rotate(m, 0, 0, degree, x + w/2, y + h/2, 0);\r
-       evas_map_util_3d_perspective(m, x + w/2, y + h/2, 0, 10000);\r
-       evas_map_smooth_set(m, 1);\r
-       evas_map_alpha_set(m, 1);\r
-       evas_object_map_set(obj, m);\r
-       evas_object_map_enable_set(obj, 1);\r
-       evas_map_free(m);       \r
+   Evas_Map *m;\r
+   int degree = 0;\r
+\r
+   if ((index % 3) == 1)\r
+      degree = ROT_RIGHT;\r
+   else if ((index % 3) == 2)\r
+      degree = ROT_LEFT;\r
+\r
+   m = evas_map_new(4);\r
+   evas_map_util_points_populate_from_geometry(m, x, y, w, h, 0);\r
+   evas_map_util_3d_rotate(m, 0, 0, degree, x + w/2, y + h/2, 0);\r
+   evas_map_util_3d_perspective(m, x + w/2, y + h/2, 0, 10000);\r
+   evas_map_smooth_set(m, 1);\r
+   evas_map_alpha_set(m, 1);\r
+   evas_object_map_set(obj, m);\r
+   evas_object_map_enable_set(obj, 1);\r
+   evas_map_free(m);   \r
 }\r
 \r
 static void \r
 _calc_item_size(int w, int h, int iw, int ih, int *res_w, int *res_h)\r
 {\r
-       if(iw>ih){\r
-               if(w*ih/iw > h){\r
-                       *res_w = h*iw/ih;\r
-                       *res_h = h;                                             \r
-               }else{\r
-                       *res_w = w;\r
-                       *res_h = w*ih/iw;                                               \r
-               }               \r
-       }else{\r
-               if(h*iw/ih > w){\r
-                       *res_w = w;\r
-                       *res_h = w*h/(h*iw/ih);         \r
-               }else{\r
-                       *res_w = h*iw/ih;\r
-                       *res_h = h;                             \r
-               }\r
-       }\r
+   if (iw>ih)\r
+     {\r
+        if (w*ih/iw > h)\r
+          {\r
+             *res_w = h*iw/ih;\r
+             *res_h = h;                  \r
+          }\r
+        else\r
+          {\r
+             *res_w = w;\r
+             *res_h = w*ih/iw;                  \r
+          }      \r
+     }\r
+   else\r
+     {\r
+        if (h*iw/ih > w)\r
+          {\r
+             *res_w = w;\r
+             *res_h = w*h/(h*iw/ih);      \r
+          }\r
+        else\r
+          {\r
+             *res_w = h*iw/ih;\r
+             *res_h = h;            \r
+          }\r
+     }\r
 }\r
 \r
 static void \r
 _add_image(Evas_Object *obj, void *data)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Stackedicon_Item *it = (Elm_Stackedicon_Item *)data;\r
-       Evas_Object *ly = NULL;\r
-       Evas_Object *ic = NULL;\r
-       Evas_Object *pad = NULL;        \r
-       int iw, ih;\r
-       if (!wd || !it) return;\r
-\r
-       ly = edje_object_add(evas_object_evas_get(obj));\r
-       if(!ly) return;\r
-       _elm_theme_object_set(obj, ly, "stackedicon", "icon", elm_widget_style_get(obj));\r
-       evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
-       elm_widget_sub_object_add(obj, ly); \r
-       \r
-       ic = evas_object_image_add(evas_object_evas_get(obj));\r
-       if(!ic) return;\r
-       evas_object_image_load_size_set(ic, wd->w/2, wd->h/2);\r
-       evas_object_image_file_set(ic, it->path, NULL);\r
-       evas_object_image_size_get(ic, &iw, &ih);\r
-       if(!iw || !ih) return;\r
-\r
-       _calc_item_size(wd->w - 2, wd->h - 2, iw, ih, &it->w, &it->h);\r
-\r
-       evas_object_image_fill_set(ic, 0, 0, it->w, it->h);\r
-       evas_object_size_hint_min_set(ly, it->w, it->h);\r
-       evas_object_resize(ly, it->w, it->h);\r
-\r
-       evas_object_image_filled_set(ic, 1);\r
-       edje_object_part_swallow(ly, "contents", ic);\r
-       \r
-       pad = evas_object_rectangle_add(evas_object_evas_get(obj));\r
-       if(!pad) return;\r
-       evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
-       evas_object_color_set(pad, 0, 0, 0, it->index*25);\r
-       edje_object_part_swallow(ly, "shadow", pad);\r
-       \r
-       evas_object_event_callback_add(ly, EVAS_CALLBACK_MOVE, _icon_move_cb, it);      \r
-\r
-       it->mw = it->w;\r
-       it->mh = it->h;\r
-       it->ly = ly;\r
-       it->ic = ic;            \r
-       it->pad = pad;\r
-       it->exist = EINA_TRUE;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Stackedicon_Item *it = (Elm_Stackedicon_Item *)data;\r
+   Evas_Object *ly = NULL;\r
+   Evas_Object *ic = NULL;\r
+   Evas_Object *pad = NULL;   \r
+   int iw, ih;\r
+   if (!wd || !it) return;\r
+\r
+   ly = edje_object_add(evas_object_evas_get(obj));\r
+   if (!ly) return;\r
+   _elm_theme_object_set(obj, ly, "stackedicon", "icon", elm_widget_style_get(obj));\r
+   evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+   elm_widget_sub_object_add(obj, ly); \r
+   \r
+   ic = evas_object_image_add(evas_object_evas_get(obj));\r
+   if (!ic) return;\r
+   evas_object_image_load_size_set(ic, wd->w/2, wd->h/2);\r
+   evas_object_image_file_set(ic, it->path, NULL);\r
+   evas_object_image_size_get(ic, &iw, &ih);\r
+   if (!iw || !ih) return;\r
+\r
+   _calc_item_size(wd->w - 2, wd->h - 2, iw, ih, &it->w, &it->h);\r
+\r
+   evas_object_image_fill_set(ic, 0, 0, it->w, it->h);\r
+   evas_object_size_hint_min_set(ly, it->w, it->h);\r
+   evas_object_resize(ly, it->w, it->h);\r
+\r
+   evas_object_image_filled_set(ic, 1);\r
+   edje_object_part_swallow(ly, "contents", ic);\r
+   \r
+   pad = evas_object_rectangle_add(evas_object_evas_get(obj));\r
+   if (!pad) return;\r
+   evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL);\r
+   evas_object_color_set(pad, 0, 0, 0, it->index*25);\r
+   edje_object_part_swallow(ly, "shadow", pad);\r
+   \r
+   evas_object_event_callback_add(ly, EVAS_CALLBACK_MOVE, _icon_move_cb, it);   \r
+\r
+   it->mw = it->w;\r
+   it->mh = it->h;\r
+   it->ly = ly;\r
+   it->ic = ic;      \r
+   it->pad = pad;\r
+   it->exist = EINA_TRUE;\r
 }\r
 \r
 static void \r
 _add_image_to_buffer(Evas_Object *obj, Evas* e, void *data)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Stackedicon_Item *it = (Elm_Stackedicon_Item *)data;\r
-       Evas_Object *ly = NULL;\r
-       Evas_Object *ic = NULL;\r
-       int iw, ih, res_w, res_h;\r
-       if (!wd || !it) return;\r
-\r
-       // FIXME: add an opaque rectangle because of alpha bug of evas_map.\r
-       Evas_Object* rect = evas_object_rectangle_add( e );\r
-       if(!rect) return;\r
-       evas_object_resize( rect, 1, 1);\r
-       evas_object_move(rect, wd->w/2, wd->h/2);\r
-       evas_object_color_set( rect, 0, 0, 0, 255 );\r
-       evas_object_show( rect );       \r
-\r
-       ly = edje_object_add(e);\r
-       if(!ly) return;\r
-       _elm_theme_object_set(obj, ly, "stackedicon", "icon", elm_widget_style_get(obj));\r
-       evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
-\r
-       ic = evas_object_image_add(e);\r
-       if(!ic) return;\r
-       evas_object_image_alpha_set(ic, EINA_TRUE);\r
-       evas_object_image_load_size_set(ic, wd->w/2, wd->h/2);\r
-       evas_object_image_file_set(ic, it->path, NULL);\r
-       evas_object_image_size_get(ic, &iw, &ih);\r
-       if(!iw || !ih) return;\r
-\r
-       _calc_item_size(wd->w - 2, wd->h - 2, iw, ih, &res_w, &res_h);\r
-\r
-       evas_object_image_fill_set(ic, 0, 0, res_w, res_h);             \r
-       evas_object_image_filled_set(ic, 1);\r
-       edje_object_part_swallow(ly, "contents", ic);\r
-\r
-       evas_object_resize(ly, res_w, res_h);\r
-       evas_object_move(ly, (wd->w - res_w)/2, (wd->h - res_h)/2);             \r
-       evas_object_show(ly);   \r
-\r
-       _icon_map_pos(ly, it->index, (wd->w - res_w)/2, (wd->h - res_h)/2, res_w, res_h);       \r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Stackedicon_Item *it = (Elm_Stackedicon_Item *)data;\r
+   Evas_Object *ly = NULL;\r
+   Evas_Object *ic = NULL;\r
+   int iw, ih, res_w, res_h;\r
+   if (!wd || !it) return;\r
+\r
+   // FIXME: add an opaque rectangle because of alpha bug of evas_map.\r
+   Evas_Object* rect = evas_object_rectangle_add( e );\r
+   if (!rect) return;\r
+   evas_object_resize( rect, 1, 1);\r
+   evas_object_move(rect, wd->w/2, wd->h/2);\r
+   evas_object_color_set( rect, 0, 0, 0, 255 );\r
+   evas_object_show( rect );   \r
+\r
+   ly = edje_object_add(e);\r
+   if (!ly) return;\r
+   _elm_theme_object_set(obj, ly, "stackedicon", "icon", elm_widget_style_get(obj));\r
+   evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);\r
+\r
+   ic = evas_object_image_add(e);\r
+   if (!ic) return;\r
+   evas_object_image_alpha_set(ic, EINA_TRUE);\r
+   evas_object_image_load_size_set(ic, wd->w/2, wd->h/2);\r
+   evas_object_image_file_set(ic, it->path, NULL);\r
+   evas_object_image_size_get(ic, &iw, &ih);\r
+   if (!iw || !ih) return;\r
+\r
+   _calc_item_size(wd->w - 2, wd->h - 2, iw, ih, &res_w, &res_h);\r
+\r
+   evas_object_image_fill_set(ic, 0, 0, res_w, res_h);      \r
+   evas_object_image_filled_set(ic, 1);\r
+   edje_object_part_swallow(ly, "contents", ic);\r
+\r
+   evas_object_resize(ly, res_w, res_h);\r
+   evas_object_move(ly, (wd->w - res_w)/2, (wd->h - res_h)/2);      \r
+   evas_object_show(ly);   \r
+\r
+   _icon_map_pos(ly, it->index, (wd->w - res_w)/2, (wd->h - res_h)/2, res_w, res_h);   \r
 }\r
 \r
 static Evas_Object * \r
 _create_fake_image(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Evas_Object *eo = NULL;\r
-       Eina_List *l = NULL;\r
-       Elm_Stackedicon_Item *it = NULL;\r
-       if (!wd) return NULL;\r
-\r
-       // create fake_img\r
-       eo = evas_object_image_add(evas_object_evas_get(obj));\r
-       if(!eo) return NULL;\r
-       elm_widget_sub_object_add(obj, eo);\r
-       evas_object_image_alpha_set(eo,EINA_TRUE);\r
-       evas_object_image_data_set(eo, NULL);\r
-       evas_object_image_size_set(eo, wd->w, wd->h);\r
-       evas_object_image_fill_set(eo, 0, 0, wd->w, wd->h);     \r
-       edje_object_part_swallow(wd->base, "elm.bg.swallow", eo);\r
-\r
-       // create ecore_evas (buffer)\r
-       Ecore_Evas* ee = ecore_evas_buffer_new( wd->w, wd->h );\r
-       Evas* e = ecore_evas_get( ee );\r
-\r
-       // add shown icons\r
-       EINA_LIST_REVERSE_FOREACH(wd->list, l, it) {\r
-               if(it->index >= MAX_SHOWN_ITEM) continue;\r
-               if(it) _add_image_to_buffer(obj, e, it);\r
-       }\r
-       ecore_evas_show( ee );\r
-\r
-\r
-       // copy buffer to data(mem)\r
-       unsigned char* data = (unsigned char*) calloc( 1, sizeof( unsigned char ) * 4 * wd->w * wd->h );\r
-       memcpy( data, (unsigned char*) ecore_evas_buffer_pixels_get( ee ), sizeof( unsigned char ) * 4 * wd->w * wd->h );\r
-       ecore_evas_free( ee );\r
-       \r
-       // copy data to fake_img \r
-       evas_object_image_data_copy_set(eo, data);\r
-       evas_object_image_data_update_add(eo, 0, 0, wd->w, wd->h);\r
-       evas_object_resize(eo, wd->w, wd->h);\r
-\r
-       evas_object_color_get(eo, &wd->r, &wd->g, &wd->b, &wd->a);\r
-\r
-       // add mouse events callback\r
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_DOWN, _fake_img_mouse_down_cb, obj);\r
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_MOVE, _fake_img_mouse_move_cb, obj);\r
-       evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_UP, _fake_img_mouse_up_cb, obj);\r
-\r
-       return eo;\r
-}      \r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Evas_Object *eo = NULL;\r
+   Eina_List *l = NULL;\r
+   Elm_Stackedicon_Item *it = NULL;\r
+   if (!wd) return NULL;\r
+\r
+   // create fake_img\r
+   eo = evas_object_image_add(evas_object_evas_get(obj));\r
+   if (!eo) return NULL;\r
+   elm_widget_sub_object_add(obj, eo);\r
+   evas_object_image_alpha_set(eo,EINA_TRUE);\r
+   evas_object_image_data_set(eo, NULL);\r
+   evas_object_image_size_set(eo, wd->w, wd->h);\r
+   evas_object_image_fill_set(eo, 0, 0, wd->w, wd->h);   \r
+   edje_object_part_swallow(wd->base, "elm.bg.swallow", eo);\r
+\r
+   // create ecore_evas (buffer)\r
+   Ecore_Evas* ee = ecore_evas_buffer_new( wd->w, wd->h );\r
+   Evas* e = ecore_evas_get( ee );\r
+\r
+   // add shown icons\r
+   EINA_LIST_REVERSE_FOREACH(wd->list, l, it) \r
+     {\r
+        if (it->index >= MAX_SHOWN_ITEM) continue;\r
+        if (it) _add_image_to_buffer(obj, e, it);\r
+     }\r
+   ecore_evas_show( ee );\r
+\r
+\r
+   // copy buffer to data(mem)\r
+   unsigned char* data = (unsigned char*) calloc( 1, sizeof( unsigned char ) * 4 * wd->w * wd->h );\r
+   memcpy( data, (unsigned char*) ecore_evas_buffer_pixels_get( ee ), sizeof( unsigned char ) * 4 * wd->w * wd->h );\r
+   ecore_evas_free( ee );\r
+   \r
+   // copy data to fake_img \r
+   evas_object_image_data_copy_set(eo, data);\r
+   evas_object_image_data_update_add(eo, 0, 0, wd->w, wd->h);\r
+   evas_object_resize(eo, wd->w, wd->h);\r
+\r
+   evas_object_color_get(eo, &wd->r, &wd->g, &wd->b, &wd->a);\r
+\r
+   // add mouse events callback\r
+   evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_DOWN, _fake_img_mouse_down_cb, obj);\r
+   evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_MOVE, _fake_img_mouse_move_cb, obj);\r
+   evas_object_event_callback_add(eo, EVAS_CALLBACK_MOUSE_UP, _fake_img_mouse_up_cb, obj);\r
+\r
+   return eo;\r
+}   \r
 \r
 static void \r
 _update_stackedicon(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd || ((wd->w == 1) && (wd->h == 1))) return;\r
-\r
-       if(!wd->fake_img)\r
-       {\r
-               wd->fake_img = _create_fake_image(obj);\r
-       }\r
-       else if(wd->on_update){\r
-               wd->on_update = FALSE;\r
-               elm_widget_sub_object_del(obj, wd->fake_img);\r
-               edje_object_part_unswallow(wd->base, wd->fake_img);\r
-               evas_object_del(wd->fake_img);\r
-               wd->fake_img = NULL;\r
-               wd->fake_img = _create_fake_image(obj);\r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd || ((wd->w == 1) && (wd->h == 1))) return;\r
+\r
+   if (!wd->fake_img)\r
+     {\r
+        wd->fake_img = _create_fake_image(obj);\r
+     }\r
+   else if (wd->on_update)\r
+     {\r
+        wd->on_update = FALSE;\r
+        elm_widget_sub_object_del(obj, wd->fake_img);\r
+        edje_object_part_unswallow(wd->base, wd->fake_img);\r
+        evas_object_del(wd->fake_img);\r
+        wd->fake_img = NULL;\r
+        wd->fake_img = _create_fake_image(obj);\r
+     }\r
 }\r
 \r
 static void _show_all_image(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return;\r
-       int i = 0;\r
-                       \r
-       for(i =0; i < eina_list_count(wd->list); i++)\r
-       {\r
-               Elm_Stackedicon_Item *it = NULL;\r
-               it = (Elm_Stackedicon_Item *)eina_list_nth(wd->list, i);\r
-\r
-               if(it != NULL){\r
-                       if(it->exist == EINA_TRUE){     \r
-                               evas_object_show(it->ly);                       \r
-                       }\r
-               }\r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
+   int i = 0;\r
+         \r
+   for (i =0; i < eina_list_count (wd->list); i++)\r
+     {\r
+        Elm_Stackedicon_Item *it = NULL;\r
+        it = (Elm_Stackedicon_Item *)eina_list_nth(wd->list, i);\r
+\r
+        if (it != NULL)\r
+          {\r
+             if (it->exist == EINA_TRUE)\r
+               {   \r
+                  evas_object_show(it->ly);         \r
+               }\r
+          }\r
+     }\r
 }\r
 \r
 static void _hide_all_image(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return;\r
-       int i = 0;\r
-                       \r
-       for(i =0; i < eina_list_count(wd->list); i++)\r
-       {\r
-               Elm_Stackedicon_Item *it = NULL;\r
-               it = (Elm_Stackedicon_Item *)eina_list_nth(wd->list, i);\r
-\r
-               if(it != NULL){\r
-                       if(it->exist == EINA_TRUE){     \r
-                               evas_object_hide(it->ly);                       \r
-                       }\r
-               }\r
-       }\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
+   int i = 0;\r
+         \r
+   for (i =0; i < eina_list_count (wd->list); i++)\r
+     {\r
+        Elm_Stackedicon_Item *it = NULL;\r
+        it = (Elm_Stackedicon_Item *)eina_list_nth(wd->list, i);\r
+\r
+        if (it != NULL)\r
+          {\r
+             if (it->exist == EINA_TRUE)\r
+               {   \r
+                  evas_object_hide(it->ly);         \r
+               }\r
+          }\r
+     }\r
 }\r
 \r
 static void _hide_hidden_image(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Eina_List *l;\r
-       Elm_Stackedicon_Item *it = NULL;\r
-       if (!wd) return;\r
-                       \r
-       EINA_LIST_REVERSE_FOREACH(wd->list, l, it) {\r
-               if(it->ly) evas_object_hide(it->ly);\r
-       }\r
-       evas_object_color_set(wd->fake_img, wd->r, wd->g, wd->b, wd->a);\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Eina_List *l;\r
+   Elm_Stackedicon_Item *it = NULL;\r
+   if (!wd) return;\r
+         \r
+   EINA_LIST_REVERSE_FOREACH(wd->list, l, it) \r
+     {\r
+        if (it->ly) evas_object_hide(it->ly);\r
+     }\r
+   evas_object_color_set(wd->fake_img, wd->r, wd->g, wd->b, wd->a);\r
 }\r
 \r
 static void\r
 _resize_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       Evas_Coord w, h;        \r
-       if (!wd) return;\r
-\r
-       evas_object_geometry_get(obj, NULL, NULL, &w, &h);      \r
-       wd->w = w;\r
-       wd->h = h;\r
-       \r
-       _update_stackedicon(data);\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   Evas_Coord w, h;   \r
+   if (!wd) return;\r
+\r
+   evas_object_geometry_get(obj, NULL, NULL, &w, &h);   \r
+   wd->w = w;\r
+   wd->h = h;\r
+   \r
+   _update_stackedicon(data);\r
 }\r
 \r
 static void\r
 _move_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       Evas_Coord x, y;        \r
-       if (!wd) return;\r
-\r
-       evas_object_geometry_get(obj, &x, &y, NULL, NULL);      \r
-       wd->x = x;\r
-       wd->y = y;\r
-       \r
-       _update_stackedicon(data);      \r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   Evas_Coord x, y;   \r
+   if (!wd) return;\r
+\r
+   evas_object_geometry_get(obj, &x, &y, NULL, NULL);   \r
+   wd->x = x;\r
+   wd->y = y;\r
+   \r
+   _update_stackedicon(data);   \r
 }\r
 \r
 static void\r
 _show_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       if (!wd) return;\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   if (!wd) return;\r
 \r
-       wd->visible = EINA_TRUE;\r
-       _update_stackedicon(data);      \r
+   wd->visible = EINA_TRUE;\r
+   _update_stackedicon(data);   \r
 }\r
 \r
 static void\r
 _hide_cb(void *data, Evas * e, Evas_Object * obj, void *event_info)\r
 {\r
-       Widget_Data *wd = elm_widget_data_get(data);\r
-       if (!wd) return;\r
+   Widget_Data *wd = elm_widget_data_get(data);\r
+   if (!wd) return;\r
 \r
-       wd->visible = EINA_FALSE;\r
-       _hide_all_image(data);\r
+   wd->visible = EINA_FALSE;\r
+   _hide_all_image(data);\r
 }\r
 \r
 static void\r
 _event_init(Evas_Object *obj)\r
-{              \r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return;\r
-       \r
-       evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize_cb, obj);\r
-       evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move_cb, obj); \r
-       evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _show_cb, obj);\r
-       evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide_cb, obj);\r
+{      \r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return;\r
+   \r
+   evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, _resize_cb, obj);\r
+   evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, _move_cb, obj);   \r
+   evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, _show_cb, obj);\r
+   evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, _hide_cb, obj);\r
 }\r
 \r
 /**\r
@@ -670,148 +700,149 @@ _event_init(Evas_Object *obj)
 EAPI Evas_Object *\r
 elm_stackedicon_add(Evas_Object *parent)\r
 {\r
-       Evas_Object *obj;\r
-       Evas *e;\r
-       Widget_Data *wd;\r
-\r
-       wd = ELM_NEW(Widget_Data);\r
-       e = evas_object_evas_get(parent);\r
-       obj = elm_widget_add(e);\r
-       ELM_SET_WIDTYPE(widtype, "stackedicon");\r
-       elm_widget_type_set(obj, "stackedicon");\r
-       elm_widget_sub_object_add(parent, obj);\r
-       elm_widget_data_set(obj, wd);\r
-\r
-       elm_widget_del_hook_set(obj, _del_hook);\r
-       elm_widget_theme_hook_set(obj, _theme_hook);\r
-       \r
-       wd->base = edje_object_add(e);\r
-       _elm_theme_object_set(obj, wd->base, "stackedicon", "base", "default");\r
-       elm_widget_resize_object_set(obj, wd->base);\r
-       \r
-       wd->w = 1;\r
-       wd->h = 1;\r
-       \r
-       _event_init(obj);\r
-       _sizing_eval(obj);\r
-\r
-       return obj;\r
+   Evas_Object *obj;\r
+   Evas *e;\r
+   Widget_Data *wd;\r
+\r
+   wd = ELM_NEW(Widget_Data);\r
+   e = evas_object_evas_get(parent);\r
+   obj = elm_widget_add(e);\r
+   ELM_SET_WIDTYPE(widtype, "stackedicon");\r
+   elm_widget_type_set(obj, "stackedicon");\r
+   elm_widget_sub_object_add(parent, obj);\r
+   elm_widget_data_set(obj, wd);\r
+\r
+   elm_widget_del_hook_set(obj, _del_hook);\r
+   elm_widget_theme_hook_set(obj, _theme_hook);\r
+   \r
+   wd->base = edje_object_add(e);\r
+   _elm_theme_object_set(obj, wd->base, "stackedicon", "base", "default");\r
+   elm_widget_resize_object_set(obj, wd->base);\r
+   \r
+   wd->w = 1;\r
+   wd->h = 1;\r
+   \r
+   _event_init(obj);\r
+   _sizing_eval(obj);\r
+\r
+   return obj;\r
 }\r
 \r
 /**\r
  * This appends a path to the stackedicon\r
  *\r
- * @param      obj     The stackedicon object\r
- * @param      path    The image full path\r
- * @return     The new item or NULL if it cannot be created\r
+ * @param    obj   The stackedicon object\r
+ * @param    path   The image full path\r
+ * @return   The new item or NULL if it cannot be created\r
  *\r
  * @ingroup Stackedicon\r
  */\r
 EAPI Elm_Stackedicon_Item *elm_stackedicon_item_append(Evas_Object *obj, const char *path)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Stackedicon_Item *it;\r
-       if (!wd) return NULL;\r
-       if(eina_list_count(wd->list) >= MAX_ITEM_NUM) return NULL;\r
-       \r
-       it = (Elm_Stackedicon_Item *)calloc(1, sizeof(Elm_Stackedicon_Item));\r
-       it->path = eina_stringshare_add(path);\r
-       it->parent = obj;\r
-       it->ly = NULL;\r
-       it->ic = NULL;\r
-       it->pad = NULL;\r
-       it->index = eina_list_count(wd->list);\r
-       it->exist = EINA_FALSE; \r
-       wd->list = eina_list_append(wd->list, it);\r
-\r
-       if(it->index < MAX_SHOWN_ITEM){\r
-               wd->on_update = TRUE;\r
-               _update_stackedicon(obj);\r
-       }\r
-\r
-       return it;\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Stackedicon_Item *it;\r
+   if (!wd) return NULL;\r
+   if (eina_list_count(wd->list) >= MAX_ITEM_NUM) return NULL;\r
+   \r
+   it = (Elm_Stackedicon_Item *)calloc(1, sizeof(Elm_Stackedicon_Item));\r
+   it->path = eina_stringshare_add(path);\r
+   it->parent = obj;\r
+   it->ly = NULL;\r
+   it->ic = NULL;\r
+   it->pad = NULL;\r
+   it->index = eina_list_count(wd->list);\r
+   it->exist = EINA_FALSE;   \r
+   wd->list = eina_list_append(wd->list, it);\r
+\r
+   if (it->index < MAX_SHOWN_ITEM)\r
+     {\r
+        wd->on_update = TRUE;\r
+        _update_stackedicon(obj);\r
+     }\r
+\r
+   return it;\r
 }\r
 \r
 /**\r
  * This prepends a path to the stackedicon\r
  *\r
- * @param      obj     The stackedicon object\r
- * @param      path    The image full path\r
- * @return     The new item or NULL if it cannot be created\r
+ * @param    obj   The stackedicon object\r
+ * @param    path   The image full path\r
+ * @return   The new item or NULL if it cannot be created\r
  *\r
  * @ingroup Stackedicon\r
  */\r
 EAPI Elm_Stackedicon_Item *elm_stackedicon_item_prepend(Evas_Object *obj, const char *path)\r
-{      \r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Elm_Stackedicon_Item *it;\r
-       if (!wd) return NULL;\r
-       if(eina_list_count(wd->list) >= MAX_ITEM_NUM) return NULL;\r
-       \r
-       it = (Elm_Stackedicon_Item *)calloc(1, sizeof(Elm_Stackedicon_Item));\r
-       it->path = eina_stringshare_add(path);\r
-       it->parent = obj;\r
-       it->ly = NULL;\r
-       it->ic = NULL;\r
-       it->pad = NULL;\r
-       it->index = eina_list_count(wd->list);\r
-       it->exist = EINA_FALSE; \r
-       wd->list = eina_list_prepend(wd->list, it);\r
-\r
-       if(it->index < MAX_SHOWN_ITEM){\r
-               wd->on_update = TRUE;\r
-               _update_stackedicon(obj);\r
-       }\r
-\r
-       return it;\r
+{   \r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Elm_Stackedicon_Item *it;\r
+   if (!wd) return NULL;\r
+   if (eina_list_count(wd->list) >= MAX_ITEM_NUM) return NULL;\r
+   \r
+   it = (Elm_Stackedicon_Item *)calloc(1, sizeof(Elm_Stackedicon_Item));\r
+   it->path = eina_stringshare_add(path);\r
+   it->parent = obj;\r
+   it->ly = NULL;\r
+   it->ic = NULL;\r
+   it->pad = NULL;\r
+   it->index = eina_list_count(wd->list);\r
+   it->exist = EINA_FALSE;   \r
+   wd->list = eina_list_prepend(wd->list, it);\r
+\r
+   if (it->index < MAX_SHOWN_ITEM)\r
+     {\r
+        wd->on_update = TRUE;\r
+        _update_stackedicon(obj);\r
+     }\r
+\r
+   return it;\r
 }\r
 \r
 /**\r
  * This delete a path at the stackedicon\r
  *\r
- * @param      Elm_Stackedicon_Item    The delete item\r
+ * @param    Elm_Stackedicon_Item   The delete item\r
  *\r
  * @ingroup Stackedicon\r
  */\r
 EAPI void elm_stackedicon_item_del(Elm_Stackedicon_Item *it)\r
 {\r
-       if(!it)return;\r
-       ELM_CHECK_WIDTYPE(it->parent, widtype);\r
-       Evas_Object *obj = it->parent;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       Eina_List *l;\r
-       Elm_Stackedicon_Item *_it = NULL;\r
-       int i = 0;\r
-       if (!wd) return;\r
+   if (!it)return;\r
+   ELM_CHECK_WIDTYPE(it->parent, widtype);\r
+   Evas_Object *obj = it->parent;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   Eina_List *l;\r
+   Elm_Stackedicon_Item *_it = NULL;\r
+   int i = 0;\r
+   if (!wd) return;\r
 \r
-       if(it->index < MAX_SHOWN_ITEM) wd->on_update = TRUE;\r
+   if (it->index < MAX_SHOWN_ITEM) wd->on_update = TRUE;\r
 \r
-       if(it->exist == EINA_TRUE) _del_image(it);\r
-       wd->list = eina_list_remove(wd->list, it);\r
-       free(it);\r
+   if (it->exist == EINA_TRUE) _del_image(it);\r
+   wd->list = eina_list_remove(wd->list, it);\r
+   free(it);\r
 \r
-       EINA_LIST_FOREACH(wd->list, l, _it)\r
-               if(_it->ly) _it->index = i++;\r
+   EINA_LIST_FOREACH(wd->list, l, _it)\r
+      if (_it->ly) _it->index = i++;\r
 \r
-       _update_stackedicon(obj);\r
+   _update_stackedicon(obj);\r
 }\r
 \r
 /**\r
  * Get item list from the stackedicon\r
  *\r
- * @param      obj     The stackedicon object\r
- * @return     The item list or NULL if it cannot be created \r
+ * @param    obj   The stackedicon object\r
+ * @return   The item list or NULL if it cannot be created \r
  *\r
  * @ingroup Stackedicon\r
  */\r
 EAPI Eina_List *elm_stackedicon_item_list_get(Evas_Object *obj)\r
 {\r
-       ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
-       if (!wd) return NULL;\r
-       \r
-       return wd->list;\r
+   ELM_CHECK_WIDTYPE(obj, widtype) NULL;\r
+   Widget_Data *wd = elm_widget_data_get(obj);\r
+   if (!wd) return NULL;\r
+   return wd->list;\r
 }\r
 \r