}\r
}\r
\r
+static void\r
+_resize_button(Evas_Object *btn, Evas_Object *label, Evas_Coord *realw, Evas_Coord *vieww)\r
+{\r
+ Evas_Coord rw, vw;\r
+ Evas_Coord w_label, h_label, w_btn, h_btn, padding_outer, padding_inner;\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
+ rw = w_btn;\r
+ vw =(MAX_W_BTN < w_btn) ? MAX_W_BTN : w_btn; \r
+\r
+ //resize btn and label\r
+ evas_object_resize(btn, vw, h_btn);\r
+ evas_object_size_hint_min_set(btn, vw, h_btn);\r
+ if ( (rw != vw) && (vw - 2*padding_outer - 2*padding_inner >=0))\r
+ {\r
+ evas_object_resize(label, vw - 2*padding_outer - 2*padding_inner, h_label); \r
+ elm_label_wrap_width_set(label, vw - 2*padding_outer - 2*padding_inner ); \r
+ }\r
+\r
+ if(realw) *realw = rw;\r
+ if(vieww) *vieww = vw;\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
+ //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
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
+ Evas_Coord rw, vw;\r
+ _resize_button(btn, label, &rw, &vw);\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->rw = rw;\r
+ item->vw = vw; \r
item->visible = EINA_TRUE;\r
\r
switch(pos)\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); // will be removed!\r
evas_object_smart_callback_call(obj, "item,added", item);\r
\r
{\r
Evas_Object *label = edje_object_part_swallow_get(_item->button, "elm.label");\r
if (label) elm_label_label_set (label, str);\r
+ _resize_button(_item->button, label, &_item->rw, &_item->vw);\r
break;\r
}\r
}\r