diff options
author | Youngbok Shin <youngb.shin@samsung.com> | 2016-03-22 18:14:44 +0900 |
---|---|---|
committer | Youngbok Shin <youngb.shin@samsung.com> | 2016-03-22 18:14:44 +0900 |
commit | f1930fc2a6435979d84a5257e47d2bf3706a3cce (patch) | |
tree | 1886981ca076a287c7588b8765d0c842eb013dad | |
parent | ade21280ba2788e046d6adc5d0d9029fd569cc41 (diff) | |
download | elementary-devs/youngbok/interface_next.tar.gz |
Entry: Support wrap_width concept for elm_label_wrap_width_* APIsdevs/youngbok/interface_next
The APIs are going to be deprecated.
-rw-r--r-- | src/lib/elm_entry.c | 36 | ||||
-rw-r--r-- | src/lib/elm_label.c | 18 | ||||
-rw-r--r-- | src/lib/elm_priv.h | 2 | ||||
-rw-r--r-- | src/lib/elm_widget_entry.h | 1 |
4 files changed, 40 insertions, 17 deletions
diff --git a/src/lib/elm_entry.c b/src/lib/elm_entry.c index 73a27235b..f7be44c5c 100644 --- a/src/lib/elm_entry.c +++ b/src/lib/elm_entry.c @@ -949,6 +949,30 @@ _cursor_geometry_recalc(Evas_Object *obj) } } +/* The following functions are added for + * elm_label_wrap_width_set, get APIs */ +void +_elm_entry_wrap_width_set(Eo *obj, Evas_Coord w) +{ + ELM_ENTRY_DATA_GET(obj, sd); + + if (w < 0) w = 0; + + if (sd->wrap_w == w) return; + + sd->wrap_w = w; + + elm_layout_sizing_eval(obj); +} + +Evas_Coord +_elm_entry_wrap_width_get(Eo *obj) +{ + ELM_ENTRY_DATA_GET(obj, sd); + + return sd->wrap_w; +} + static inline void _entry_sizing_eval(Eo *obj, Elm_Entry_Data *sd) { @@ -958,6 +982,9 @@ _entry_sizing_eval(Eo *obj, Elm_Entry_Data *sd) evas_object_geometry_get(obj, NULL, NULL, &resw, &resh); + if (sd->wrap_w > resw) + resw = sd->wrap_w; + if (!sd->single_line && sd->line_wrap) { if ((resw == sd->last_w) && (!sd->changed)) @@ -992,6 +1019,7 @@ _entry_sizing_eval(Eo *obj, Elm_Entry_Data *sd) edje_object_size_min_calc(sd->scr_edje, &vmw, &vmh); elm_interface_scrollable_content_viewport_geometry_get (obj, NULL, NULL, &vw, &vh); + edje_object_size_min_restricted_calc (sd->entry_edje, &minw, &minh, vw, 0); elm_coords_finger_size_adjust(1, &minw, 1, &minh); @@ -1016,6 +1044,8 @@ _entry_sizing_eval(Eo *obj, Elm_Entry_Data *sd) if (sd->single_line) h = vmh + minh; else h = vmh; + w = sd->wrap_w; + evas_object_resize(sd->entry_edje, vw, vh); evas_object_size_hint_min_set(obj, w, h); @@ -1026,7 +1056,7 @@ _entry_sizing_eval(Eo *obj, Elm_Entry_Data *sd) } else if (resw > 0) { - Evas_Coord fw = 0; + Evas_Coord obj_minw = sd->wrap_w; edje_object_size_min_restricted_calc(sd->entry_edje, &minw, &minh, resw, 0); elm_coords_finger_size_adjust(1, &minw, 1, &minh); @@ -1043,8 +1073,8 @@ _entry_sizing_eval(Eo *obj, Elm_Entry_Data *sd) sd->ent_mw = minw; sd->ent_mh = minh; - elm_coords_finger_size_adjust(1, &fw, 1, &minh); - evas_object_size_hint_min_set(obj, fw, minh); + elm_coords_finger_size_adjust(1, &obj_minw, 1, &minh); + evas_object_size_hint_min_set(obj, obj_minw, minh); evas_object_size_hint_max_set(obj, -1, -1); } diff --git a/src/lib/elm_label.c b/src/lib/elm_label.c index fe34dae6d..e9dd03800 100644 --- a/src/lib/elm_label.c +++ b/src/lib/elm_label.c @@ -332,25 +332,15 @@ _elm_label_eo_base_constructor(Eo *obj, Elm_Label_Data *_pd EINA_UNUSED) } EOLIAN static void -_elm_label_wrap_width_set(Eo *obj, Elm_Label_Data *sd, Evas_Coord w) +_elm_label_wrap_width_set(Eo *obj, Elm_Label_Data *sd EINA_UNUSED, Evas_Coord w) { - ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); - - if (w < 0) w = 0; - - if (sd->wrap_w == w) return; - - if (sd->ellipsis) - _label_format_set(obj, sd->format); - sd->wrap_w = w; - - elm_layout_sizing_eval(obj); + _elm_entry_wrap_width_set(obj, w); } EOLIAN static Evas_Coord -_elm_label_wrap_width_get(Eo *obj EINA_UNUSED, Elm_Label_Data *sd) +_elm_label_wrap_width_get(Eo *obj, Elm_Label_Data *sd EINA_UNUSED) { - return sd->wrap_w; + return _elm_entry_wrap_width_get(obj); } EOLIAN static void diff --git a/src/lib/elm_priv.h b/src/lib/elm_priv.h index 91b4285a6..4d297ff81 100644 --- a/src/lib/elm_priv.h +++ b/src/lib/elm_priv.h @@ -536,6 +536,8 @@ void _elm_dbus_menu_item_select_cb(Elm_Object_Item *obj_item); void _elm_menu_menu_bar_set(Eo *obj, Eina_Bool menu_bar); void _elm_menu_menu_bar_hide(Eo *obj); +void _elm_entry_wrap_width_set(Eo *obj, Evas_Coord w); +Evas_Coord _elm_entry_wrap_width_get(Eo *obj); /* DEPRECATED, will be removed on next release */ void _elm_icon_signal_emit(Evas_Object *obj, diff --git a/src/lib/elm_widget_entry.h b/src/lib/elm_widget_entry.h index 9bf3452c8..624c9da81 100644 --- a/src/lib/elm_widget_entry.h +++ b/src/lib/elm_widget_entry.h @@ -52,6 +52,7 @@ struct _Elm_Entry_Data Evas_Coord last_w, ent_mw, ent_mh; Evas_Coord downx, downy; Evas_Coord ox, oy; + Evas_Coord wrap_w; /** wrap width by pixel for the line wrap support **/ Eina_List *items; /** context menu item list */ Eina_List *item_providers; Eina_List *markup_filters; |