[elm_multibuttonentry] add checking widtype
authorHyunsil Park <hyunsil.park@samsung.com>
Tue, 24 Aug 2010 07:35:30 +0000 (16:35 +0900)
committerHyunsil Park <hyunsil.park@samsung.com>
Tue, 24 Aug 2010 07:35:30 +0000 (16:35 +0900)
src/lib/elm_multibuttonentry.c

index ed24be3..613d01a 100755 (executable)
@@ -41,6 +41,7 @@ struct _Widget_Data {
        Evas_Coord w_box, h_box;\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
@@ -61,6 +62,7 @@ static void   _view_init(Evas_Object *obj);
 static void\r
 _del_hook(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
@@ -83,16 +85,21 @@ _del_hook(Evas_Object *obj)
 static void\r
 _theme_hook(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
        _elm_theme_object_set(obj, wd->base, "multibuttonentry", "base", elm_widget_style_get(obj));\r
+       // re swallow \r
+       //edje_object_scale_set(wd->btn, elm_widget_scale_get(obj) * _elm_config->scale);\r
+       // refer to button\r
        _sizing_eval(obj);\r
 }\r
 \r
 static void\r
 _sizing_eval(Evas_Object *obj)\r
 {\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        Evas_Coord minw = -1, minh = -1, minw_box = -1, minh_box = -1;\r
        Evas_Coord left_padding, right_padding, top_padding, bottom_padding;\r
@@ -114,14 +121,19 @@ _sizing_eval(Evas_Object *obj)
 static void \r
 _resize_cb(void *data, Evas *evas, Evas_Object *obj, void *event)\r
 {\r
+       ELM_CHECK_WIDTYPE(data, widtype);\r
        Widget_Data *wd = elm_widget_data_get(data);    \r
        if (!wd) return;\r
-       evas_object_geometry_get(wd->box, NULL, NULL, &wd->w_box, &wd->h_box);\r
+\r
+       evas_object_geometry_get(wd->box, NULL, NULL, &wd->w_box, &wd->h_box);  \r
+       evas_object_resize(wd->box, 0, 0);\r
+       edje_object_part_swallow(wd->base, "box.swallow", wd->box);\r
 }\r
 \r
 static void\r
 _event_init(Evas_Object *obj)\r
 {\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        if(!wd || !wd->base)    return;\r
        evas_object_event_callback_add(wd->base, EVAS_CALLBACK_RESIZE, _resize_cb, obj);\r
@@ -130,6 +142,7 @@ _event_init(Evas_Object *obj)
 static void\r
 _set_label(Evas_Object *obj, const char* str)\r
 {\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        if(!wd) return;\r
 \r
@@ -151,9 +164,10 @@ _set_label(Evas_Object *obj, const char* str)
 static void\r
 _change_current_button(Evas_Object *obj, Evas_Object *btn)\r
 {\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
+       Widget_Data *wd = elm_widget_data_get(obj);\r
        Eina_List *l;\r
        Elm_Multibuttonentry_Item *item;\r
-       Widget_Data *wd = elm_widget_data_get(obj);\r
        Evas_Object *label;\r
        if (!wd) return;\r
 \r
@@ -187,6 +201,7 @@ _change_current_button(Evas_Object *obj, Evas_Object *btn)
 static void\r
 _button_clicked(void *data, Evas_Object *obj, const char *emission, const char *source)\r
 {\r
+       ELM_CHECK_WIDTYPE(data, widtype);\r
        Widget_Data *wd = elm_widget_data_get(data);\r
        if (!wd) return;\r
 \r
@@ -196,8 +211,9 @@ _button_clicked(void *data, Evas_Object *obj, const char *emission, const char *
 static void\r
 _del_button_obj(Evas_Object *obj, Evas_Object *btn)\r
 {\r
-       Evas_Object *label;\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
+       Evas_Object *label;\r
        if(!wd || !btn) return;\r
        \r
        if(btn){        \r
@@ -219,6 +235,7 @@ _item_del(Elm_Multibuttonentry_Item *item)
        if(!item) return;\r
        Widget_Data *wd;\r
 \r
+       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
        wd = elm_widget_data_get(item->multibuttonentry);\r
        if (!wd) return;\r
 \r
@@ -239,6 +256,7 @@ _item_del(Elm_Multibuttonentry_Item *item)
 static void\r
 _del_button(Evas_Object *obj)\r
 {\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        Elm_Multibuttonentry_Item *item;\r
        if(!wd || !wd->items) return;\r
@@ -262,6 +280,7 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
        Evas_Object *btn;\r
        Evas_Object *label;\r
        Evas_Coord w_label, h_label, w_btn, h_btn, padding_outer, padding_inner;\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        if(!wd || !wd->box || !wd->entry) return NULL;\r
 \r
@@ -340,6 +359,7 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
 static void\r
 _add_button(Evas_Object *obj, char *str)\r
 {\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        if(!wd) return;\r
 \r
@@ -353,8 +373,9 @@ _add_button(Evas_Object *obj, char *str)
 static void\r
 _evas_key_up_cb(void *data, Evas *e , Evas_Object *obj , void *event_info )\r
 {\r
-    Evas_Event_Key_Up *ev = (Evas_Event_Key_Up *) event_info;\r
+       ELM_CHECK_WIDTYPE(data, widtype);\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
@@ -373,6 +394,7 @@ _evas_key_up_cb(void *data, Evas *e , Evas_Object *obj , void *event_info )
 static void \r
 _view_init(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
@@ -422,6 +444,7 @@ elm_multibuttonentry_add(Evas_Object *parent)
        wd = ELM_NEW(Widget_Data);\r
        e = evas_object_evas_get(parent);\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
@@ -452,6 +475,7 @@ elm_multibuttonentry_add(Evas_Object *parent)
 EAPI const char *\r
 elm_multibuttonentry_label_get(Evas_Object *obj)\r
 {\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        if (!wd) return NULL;\r
 \r
@@ -473,6 +497,7 @@ 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) return;\r
 \r
@@ -490,10 +515,11 @@ elm_multibuttonentry_label_set(Evas_Object *obj, const char *label)
 EAPI Evas_Object *\r
 elm_multibuttonentry_entry_get(Evas_Object *obj)\r
 {\r
-   Widget_Data *wd = elm_widget_data_get(obj);\r
-   if (!wd)    return NULL;\r
-   \r
-   return wd->entry;\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
+       Widget_Data *wd = elm_widget_data_get(obj);\r
+       if (!wd)        return NULL;\r
+\r
+       return wd->entry;\r
 }\r
 \r
 /**\r
@@ -509,8 +535,9 @@ elm_multibuttonentry_entry_get(Evas_Object *obj)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_add_start(Evas_Object *obj, const char *label, void *data)\r
 {\r
-       Elm_Multibuttonentry_Item *item;\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
+       Elm_Multibuttonentry_Item *item;\r
        if (!wd) return NULL;\r
 \r
        item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_START, NULL, data);\r
@@ -530,8 +557,9 @@ 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_Multibuttonentry_Item *item;\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
+       Elm_Multibuttonentry_Item *item;\r
        if (!wd) return NULL;\r
 \r
        item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_END, NULL, data);\r
@@ -552,8 +580,9 @@ 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_Multibuttonentry_Item *item;\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
+       Elm_Multibuttonentry_Item *item;\r
        if (!wd) return NULL;\r
 \r
        item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_BEFORE, before, data);\r
@@ -573,8 +602,9 @@ 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_Multibuttonentry_Item *item;\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
+       Elm_Multibuttonentry_Item *item;\r
        if (!wd) return NULL;\r
 \r
        item = _add_button_item(obj, label, MULTIBUTONENTRY_POS_AFTER, after, data);\r
@@ -592,6 +622,7 @@ 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);\r
        Widget_Data *wd = elm_widget_data_get(obj);\r
        if (!wd) return NULL;\r
        return wd->items;\r
@@ -608,9 +639,8 @@ elm_multibuttonentry_items_get(Evas_Object *obj)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_first_get(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd;\r
-       if (!obj) return NULL;\r
-       wd = elm_widget_data_get(obj);\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\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
@@ -626,9 +656,8 @@ elm_multibuttonentry_item_first_get(Evas_Object *obj)
 EAPI Elm_Multibuttonentry_Item *\r
 elm_multibuttonentry_item_last_get(Evas_Object *obj)\r
 {\r
-       Widget_Data *wd;\r
-       if (!obj) return NULL;\r
-       wd = elm_widget_data_get(obj);\r
+       ELM_CHECK_WIDTYPE(obj, widtype);\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
@@ -644,6 +673,7 @@ 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);\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
@@ -664,6 +694,7 @@ elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item)
        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
@@ -684,6 +715,7 @@ elm_multibuttonentry_item_selected_set(Elm_Multibuttonentry_Item *item)
 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
@@ -729,6 +761,7 @@ elm_multibuttonentry_item_label_get(Elm_Multibuttonentry_Item *item)
        Elm_Multibuttonentry_Item *_item;\r
 \r
        if (!item) return NULL;\r
+       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
        wd = elm_widget_data_get(item->multibuttonentry);\r
        if (!wd || !wd->items) return NULL;\r
 \r
@@ -757,6 +790,7 @@ elm_multibuttonentry_item_label_set(Elm_Multibuttonentry_Item *item, const char
        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
@@ -784,6 +818,7 @@ elm_multibuttonentry_item_prev(Elm_Multibuttonentry_Item *item)
        Elm_Multibuttonentry_Item *_item;\r
 \r
        if (!item) return NULL;\r
+       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
        wd = elm_widget_data_get(item->multibuttonentry);\r
        if (!wd || !wd->items) return NULL;\r
 \r
@@ -812,6 +847,7 @@ elm_multibuttonentry_item_next(Elm_Multibuttonentry_Item *item)
        Elm_Multibuttonentry_Item *_item;\r
 \r
        if (!item) return NULL;\r
+       ELM_CHECK_WIDTYPE(item->multibuttonentry, widtype);\r
        wd = elm_widget_data_get(item->multibuttonentry);\r
        if (!wd || !wd->items) return NULL;\r
 \r