The visible signal should be called when it is reloaded in _theme_hook_item.
[framework/uifw/elementary.git] / src / lib / elc_multibuttonentry.c
index ab34839..431aad8 100644 (file)
@@ -2,7 +2,7 @@
 #include "elm_priv.h"
 
 #define MAX_STR 256
-#define MIN_W_ENTRY 10
+#define MIN_W_ENTRY 160
 
 typedef enum _Multibuttonentry_Pos
   {
@@ -270,6 +270,7 @@ _signal_mouse_clicked(void *data, Evas_Object *obj __UNUSED__, const char *emiss
    _view_update(data);
 
    elm_entry_input_panel_show(wd->entry);
+   elm_object_focus_set(wd->entry, EINA_TRUE);
 
    evas_object_smart_callback_call(data, SIG_CLICKED, NULL);
 }
@@ -590,7 +591,7 @@ _set_label(Evas_Object *obj, const char *str)
         Evas_Coord width, height, sum_width = 0;
         evas_object_size_hint_min_set(wd->label, 0, 0);
         evas_object_resize(wd->label, 0, 0);
-        edje_object_part_text_set(wd->label, "mbe.label", str);
+        edje_object_part_text_escaped_set(wd->label, "mbe.label", str);
 
         if (!strcmp(str, ""))
           {
@@ -636,7 +637,7 @@ _set_guidetext(Evas_Object *obj, const char *str)
         evas_object_size_hint_weight_set(wd->guidetext, 0.0, EVAS_HINT_EXPAND);
         evas_object_size_hint_align_set(wd->guidetext, EVAS_HINT_FILL,
                                                            EVAS_HINT_FILL);
-        edje_object_part_text_set(wd->guidetext, "elm.text", str);
+        edje_object_part_text_escaped_set(wd->guidetext, "elm.text", str);
         _view_update(obj);
      }
 }
@@ -703,7 +704,7 @@ _button_clicked(void *data, Evas_Object *obj, const char *emission __UNUSED__, c
    Elm_Multibuttonentry_Item *item = NULL;
    if (!wd || wd->view_state == MULTIBUTTONENTRY_VIEW_SHRINK) return;
 
-   _change_current_button(data, obj);
+   _select_button(data, obj);
 
    if (wd->selected_it)
      if ((item = (Elm_Multibuttonentry_Item *)wd->selected_it) != NULL)
@@ -848,7 +849,7 @@ _add_button_item(Evas_Object *obj, const char *str, Multibuttonentry_Pos pos, co
    elm_object_text_set(wd->entry, "");
 
    _elm_theme_object_set(obj, btn, "multibuttonentry", "btn", elm_widget_style_get(obj));
-   edje_object_part_text_set(btn, "elm.btn.text", str_utf8);
+   edje_object_part_text_escaped_set(btn, "elm.btn.text", str_utf8);
    edje_object_part_geometry_get(btn, "elm.btn.text", NULL, NULL, &width, &height);
 
    evas_object_size_hint_min_set(btn, width, height);
@@ -1115,17 +1116,14 @@ static void
 _entry_resized_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
 {
    Evas_Coord en_x, en_y, en_w, en_h;
-   Evas_Coord bx_x, bx_y;
 
    Widget_Data *wd = elm_widget_data_get(data);
    if (!wd) return;
 
    evas_object_geometry_get(wd->entry, &en_x, &en_y, &en_w, &en_h);
-   evas_object_geometry_get(wd->box, &bx_x, &bx_y, NULL, NULL);
 
    if (wd->focused)
-     elm_widget_show_region_set(wd->box, en_x - bx_x, en_y - bx_y, en_w,
-                                en_h, EINA_TRUE);
+     elm_widget_show_region_set(wd->entry, en_x, en_y, en_w, en_h, EINA_TRUE);
 }
 
 static void
@@ -1157,6 +1155,7 @@ _view_init(Evas_Object *obj)
      {
         wd->entry = elm_entry_add(obj);
         if (!wd->entry) return;
+        elm_entry_scrollable_set(wd->entry, EINA_TRUE);
         elm_entry_single_line_set(wd->entry, EINA_TRUE);
         elm_object_text_set(wd->entry, "");
         elm_entry_input_panel_enabled_set(wd->entry, EINA_FALSE);
@@ -1226,6 +1225,9 @@ _calculate_box_min_size(Evas_Object *box, Evas_Object_Box_Data *priv)
 
         if (wx)
           {
+             if ((elm_widget_is(opt->obj)) && (!(strcmp(elm_widget_type_get(opt->obj), "entry"))) && (mnw == -1))
+               mnw = MIN_W_ENTRY;
+
              if (mnw != -1 && (w - cw) >= mnw)
                ww = w - cw;
              else
@@ -1267,6 +1269,9 @@ _calculate_item_max_height(Evas_Object *box, Evas_Object_Box_Data *priv, int obj
 
         if (wx)
           {
+             if ((elm_widget_is(opt->obj)) && (!(strcmp(elm_widget_type_get(opt->obj), "entry"))) && (mnw == -1))
+               mnw = MIN_W_ENTRY;
+
              if (mnw != -1 && (w - cw) >= mnw)
                 ww = w - cw;
              else
@@ -1341,6 +1346,9 @@ _box_layout_cb(Evas_Object *o, Evas_Object_Box_Data *priv, void *data __UNUSED__
 
         if (wx)
           {
+             if ((elm_widget_is(obj)) && (!(strcmp(elm_widget_type_get(obj), "entry"))) && (mnw == -1))
+               mnw = MIN_W_ENTRY;
+
              if (mnw != -1 && (w - cw) >= mnw)
                 ww = w - cw;
              else
@@ -1383,7 +1391,7 @@ _item_text_set_hook(Elm_Object_Item *it, const char *part, const char *label)
    if (part && strcmp(part, "default")) return;
    if (!label) return;
    item = (Elm_Multibuttonentry_Item *)it;
-   edje_object_part_text_set(item->button, "elm.btn.text", label);
+   edje_object_part_text_escaped_set(item->button, "elm.btn.text", label);
    _resize_button(item->button, &item->rw, &item->vw);
 }