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
}\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
// pack buttons only 1line\r
w = wd->w_box;\r
\r
- if (wd->rect)\r
- {\r
- elm_box_pack_end(wd->box, wd->rect);\r
- evas_object_size_hint_min_get(wd->rect, &w_tmp, NULL);\r
- w -= w_tmp;\r
- w -= box_inner_item_width_padding;\r
- }\r
-\r
if (wd->label)\r
{\r
elm_box_pack_end(wd->box, wd->label);\r
\r
// pack buttons only 1line\r
\r
- if (wd->rect) elm_box_pack_end(wd->box, wd->rect);\r
if (wd->label) elm_box_pack_end(wd->box, wd->label);\r
\r
// pack remain btns\r
static void\r
_view_update(Evas_Object *obj)\r
{\r
- Evas_Coord room = 0, w = 0;\r
+ Evas_Coord width = 1, height = 1;\r
Widget_Data *wd = elm_widget_data_get(obj);\r
if (!wd || !wd->box || !wd->entry || !(wd->w_box > 0)) return;\r
\r
- room = wd->w_box;\r
- room -= MIN_W_ENTRY;\r
-\r
- if (wd->rect)\r
- {\r
- evas_object_size_hint_min_get (wd->rect, &w, NULL);\r
- room -= w;\r
- }\r
-\r
// update label\r
if (wd->label)\r
{\r
elm_box_unpack(wd->box, wd->label);\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
- evas_object_show(wd->label);\r
- elm_label_wrap_width_set(wd->label, room);\r
- evas_object_size_hint_min_get(wd->label, &w, NULL);\r
- room -= w;\r
+ elm_box_pack_start(wd->box, wd->label);\r
+ evas_object_size_hint_min_get(wd->label, &width, &height);\r
}\r
\r
if (wd->guidetext)\r
- evas_object_size_hint_min_set(wd->guidetext, room, 0);\r
+ {\r
+ Evas_Coord guide_text_width = wd->w_box - width;\r
+ evas_object_size_hint_min_set(wd->guidetext, guide_text_width, height);\r
+ }\r
\r
// update buttons in contracted mode\r
if (wd->contracted == 1)\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
+ 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_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
- }\r
+ if (wd->label)\r
+ {\r
+ Evas_Coord width, height, sum_width = 0;\r
+ evas_object_size_hint_min_set(wd->label, 0, 0);\r
+ evas_object_resize(wd->label, 0, 0);\r
+ edje_object_part_text_set(wd->label, "mbe.label", str);\r
\r
- if (wd->label) elm_label_label_set(wd->label, str);\r
+ if (!strcmp(str, ""))\r
+ {\r
+ /* FIXME: not work yet */\r
+ edje_object_signal_emit(wd->label, "elm,mbe,clear_text", "");\r
+ edje_object_part_geometry_get(wd->label, "mbe.label", NULL, NULL, &width, &height);\r
+ sum_width += width;\r
+ }\r
+ else\r
+ {\r
+ edje_object_signal_emit(wd->label, "elm,mbe,set_text", "");\r
+ edje_object_part_geometry_get(wd->label, "mbe.label", NULL, NULL, &width, &height);\r
+ sum_width += width;\r
+\r
+ edje_object_part_geometry_get(wd->label, "mbe.label.left.padding", NULL, NULL, &width, NULL);\r
+ sum_width += width;\r
+\r
+ edje_object_part_geometry_get(wd->label, "mbe.label.right.padding", NULL, NULL, &width, NULL);\r
+ sum_width += width;\r
+ }\r
+ evas_object_size_hint_min_set(wd->label, sum_width, height);\r
+ }\r
+ evas_object_show(wd->label);\r
_view_update(obj);\r
}\r
\r
case MULTIBUTONENTRY_POS_START:\r
wd->items = eina_list_prepend(wd->items, item);\r
if(wd->label) elm_box_pack_after(wd->box, btn, wd->label);\r
- else if(wd->rect) elm_box_pack_after(wd->box, btn, wd->rect);\r
else elm_box_pack_start(wd->box, btn);\r
_view_update(obj);\r
break;\r
edje_object_part_swallow(wd->base, "box.swallow", wd->box);\r
}\r
\r
- if (!wd->rect)\r
+ if (!wd->label)\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
+ if (!(wd->label = edje_object_add(evas_object_evas_get(obj)))) return;\r
+ _elm_theme_object_set(obj, wd->label, "multibuttonentry", "label", elm_widget_style_get(obj));\r
+ _set_label(obj, "");\r
}\r
\r
if (!wd->entry)\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
+ if (wd->label) return edje_object_part_text_get(wd->guidetext, "elm.text");\r
return NULL;\r
}\r
\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
+ if (wd->guidetext) return edje_object_part_text_get(wd->guidetext, "elm.text");\r
return NULL;\r
}\r
\r