efl_ui_text: scroller mode clean up
simplify code, and reduce calls: It is only required to set scroll mode in two cases: - When creating scroller - When changing multiline property Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de> Differential Revision: https://phab.enlightenment.org/D10981
This commit is contained in:
parent
20b7c515d1
commit
3cc8ea77fa
|
@ -63,7 +63,6 @@ _efl_ui_internal_text_scroller_efl_object_constructor(Eo *obj,
|
||||||
Efl_Ui_Internal_Text_Scroller_Data *sd EINA_UNUSED)
|
Efl_Ui_Internal_Text_Scroller_Data *sd EINA_UNUSED)
|
||||||
{
|
{
|
||||||
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
obj = efl_constructor(efl_super(obj, MY_CLASS));
|
||||||
//EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, psd, NULL);
|
|
||||||
efl_ui_scrollbar_bar_mode_set(obj,
|
efl_ui_scrollbar_bar_mode_set(obj,
|
||||||
EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
|
EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
|
||||||
|
|
||||||
|
@ -138,7 +137,6 @@ _efl_ui_internal_text_scroller_efl_object_finalize(Eo *obj,
|
||||||
efl_ui_scrollbar_bar_mode_set(obj,
|
efl_ui_scrollbar_bar_mode_set(obj,
|
||||||
EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
|
EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
|
||||||
efl_content_set(obj, sd->text_table);
|
efl_content_set(obj, sd->text_table);
|
||||||
|
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -170,16 +168,15 @@ _efl_ui_internal_text_scroller_scroller_mode_set(Eo *obj,
|
||||||
Efl_Ui_Internal_Text_Scroller_Data *sd,
|
Efl_Ui_Internal_Text_Scroller_Data *sd,
|
||||||
Efl_Ui_Text_Scroller_Mode mode)
|
Efl_Ui_Text_Scroller_Mode mode)
|
||||||
{
|
{
|
||||||
EFL_UI_SCROLLER_DATA_GET_OR_RETURN(obj, psd);
|
|
||||||
sd->mode = mode;
|
sd->mode = mode;
|
||||||
if (mode == EFL_UI_TEXT_SCROLLER_MODE_MULTILINE)
|
if (mode == EFL_UI_TEXT_SCROLLER_MODE_MULTILINE)
|
||||||
{
|
{
|
||||||
efl_ui_scrollbar_bar_mode_set(psd->smanager,
|
efl_ui_scrollbar_bar_mode_set(obj,
|
||||||
EFL_UI_SCROLLBAR_MODE_AUTO, EFL_UI_SCROLLBAR_MODE_AUTO);
|
EFL_UI_SCROLLBAR_MODE_AUTO, EFL_UI_SCROLLBAR_MODE_AUTO);
|
||||||
}
|
}
|
||||||
else // default (single-line)
|
else // default (single-line)
|
||||||
{
|
{
|
||||||
efl_ui_scrollbar_bar_mode_set(psd->smanager,
|
efl_ui_scrollbar_bar_mode_set(obj,
|
||||||
EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
|
EFL_UI_SCROLLBAR_MODE_OFF, EFL_UI_SCROLLBAR_MODE_OFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -816,24 +816,10 @@ _efl_ui_textbox_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Textbox_Data *s
|
||||||
|
|
||||||
if (sd->scroll)
|
if (sd->scroll)
|
||||||
{
|
{
|
||||||
if (!efl_text_multiline_get(obj))
|
|
||||||
{
|
|
||||||
efl_ui_internal_text_scroller_mode_set(sd->scroller,
|
|
||||||
EFL_UI_TEXT_SCROLLER_MODE_SINGLELINE);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
efl_ui_internal_text_scroller_mode_set(sd->scroller,
|
|
||||||
EFL_UI_TEXT_SCROLLER_MODE_MULTILINE);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
efl_canvas_group_calculate(sd->scroller);
|
efl_canvas_group_calculate(sd->scroller);
|
||||||
min = efl_gfx_hint_size_min_get(sd->scroller);
|
min = efl_gfx_hint_size_min_get(sd->scroller);
|
||||||
if (!efl_text_multiline_get(obj))
|
if (!efl_text_multiline_get(obj))
|
||||||
{
|
{
|
||||||
efl_ui_internal_text_scroller_mode_set(sd->scroller,
|
|
||||||
EFL_UI_TEXT_SCROLLER_MODE_SINGLELINE);
|
|
||||||
edje_object_size_min_calc(wd->resize_obj, &edmin.w, &edmin.h);
|
edje_object_size_min_calc(wd->resize_obj, &edmin.w, &edmin.h);
|
||||||
min.w = edmin.w;
|
min.w = edmin.w;
|
||||||
min.h = edmin.h;
|
min.h = edmin.h;
|
||||||
|
@ -2137,6 +2123,26 @@ _efl_ui_textbox_efl_object_destructor(Eo *obj, Efl_Ui_Textbox_Data *sd)
|
||||||
efl_destructor(efl_super(obj, MY_CLASS));
|
efl_destructor(efl_super(obj, MY_CLASS));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EOLIAN static void
|
||||||
|
_efl_ui_textbox_efl_text_format_multiline_set(Eo *obj, Efl_Ui_Textbox_Data *sd, Eina_Bool enabled)
|
||||||
|
{
|
||||||
|
enabled = !!enabled;
|
||||||
|
if (efl_text_multiline_get(obj) == enabled) return;
|
||||||
|
efl_text_multiline_set(sd->text_obj, enabled);
|
||||||
|
|
||||||
|
if (sd->scroller)
|
||||||
|
{
|
||||||
|
if (enabled)
|
||||||
|
{
|
||||||
|
efl_ui_internal_text_scroller_mode_set(sd->scroller, EFL_UI_TEXT_SCROLLER_MODE_MULTILINE);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
efl_ui_internal_text_scroller_mode_set(sd->scroller, EFL_UI_TEXT_SCROLLER_MODE_SINGLELINE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_textbox_efl_text_format_password_set(Eo *obj, Efl_Ui_Textbox_Data *sd, Eina_Bool password)
|
_efl_ui_textbox_efl_text_format_password_set(Eo *obj, Efl_Ui_Textbox_Data *sd, Eina_Bool password)
|
||||||
{
|
{
|
||||||
|
@ -2429,7 +2435,7 @@ _efl_ui_textbox_cnp_mode_get(const Eo *obj EINA_UNUSED, Efl_Ui_Textbox_Data *sd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_textbox_scrollable_set(Eo *obj EINA_UNUSED, Efl_Ui_Textbox_Data *sd, Eina_Bool scroll)
|
_efl_ui_textbox_scrollable_set(Eo *obj, Efl_Ui_Textbox_Data *sd, Eina_Bool scroll)
|
||||||
{
|
{
|
||||||
if (sd->scroll == scroll) return;
|
if (sd->scroll == scroll) return;
|
||||||
sd->scroll = scroll;
|
sd->scroll = scroll;
|
||||||
|
@ -2440,7 +2446,12 @@ _efl_ui_textbox_scrollable_set(Eo *obj EINA_UNUSED, Efl_Ui_Textbox_Data *sd, Ein
|
||||||
sd->scroller = efl_add(EFL_UI_INTERNAL_TEXT_SCROLLER_CLASS, obj,
|
sd->scroller = efl_add(EFL_UI_INTERNAL_TEXT_SCROLLER_CLASS, obj,
|
||||||
efl_ui_internal_text_scroller_initialize(efl_added,
|
efl_ui_internal_text_scroller_initialize(efl_added,
|
||||||
sd->text_obj, sd->text_table));
|
sd->text_obj, sd->text_table));
|
||||||
efl_ui_scrollbar_bar_mode_set(sd->scroller, EFL_UI_SCROLLBAR_MODE_AUTO, EFL_UI_SCROLLBAR_MODE_AUTO);
|
|
||||||
|
if (efl_text_multiline_get(obj))
|
||||||
|
efl_ui_internal_text_scroller_mode_set(sd->scroller, EFL_UI_TEXT_SCROLLER_MODE_MULTILINE);
|
||||||
|
else
|
||||||
|
efl_ui_internal_text_scroller_mode_set(sd->scroller, EFL_UI_TEXT_SCROLLER_MODE_SINGLELINE);
|
||||||
|
|
||||||
efl_content_set(efl_part(sd->entry_edje, "efl.text"), sd->scroller);
|
efl_content_set(efl_part(sd->entry_edje, "efl.text"), sd->scroller);
|
||||||
efl_canvas_object_clipper_set(sd->cursor,
|
efl_canvas_object_clipper_set(sd->cursor,
|
||||||
efl_ui_internal_text_scroller_viewport_clip_get(sd->scroller));
|
efl_ui_internal_text_scroller_viewport_clip_get(sd->scroller));
|
||||||
|
@ -3711,11 +3722,11 @@ _part_is_efl_ui_text_part(const Eo *obj EINA_UNUSED, const char *part)
|
||||||
//FIXME
|
//FIXME
|
||||||
//ELM_PART_OVERRIDE_PARTIAL(efl_ui_text, EFL_UI_TEXTBOX, Efl_Ui_Textbox_Data, _part_is_efl_ui_text_part)
|
//ELM_PART_OVERRIDE_PARTIAL(efl_ui_text, EFL_UI_TEXTBOX, Efl_Ui_Textbox_Data, _part_is_efl_ui_text_part)
|
||||||
EOLIAN static Efl_Object *
|
EOLIAN static Efl_Object *
|
||||||
_efl_ui_textbox_efl_part_part_get(const Eo *obj, Efl_Ui_Textbox_Data *priv EINA_UNUSED, const char *part)
|
_efl_ui_textbox_efl_part_part_get(const Eo *obj, Efl_Ui_Textbox_Data *priv EINA_UNUSED, const char *part)
|
||||||
{
|
{
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
|
||||||
if (_part_is_efl_ui_text_part(obj, part)) return ELM_PART_IMPLEMENT(EFL_UI_TEXT_PART_CLASS, obj, part);
|
if (_part_is_efl_ui_text_part(obj, part)) return ELM_PART_IMPLEMENT(EFL_UI_TEXT_PART_CLASS, obj, part);
|
||||||
return efl_part_get(efl_super(obj, EFL_UI_TEXTBOX_CLASS), part);
|
return efl_part_get(efl_super(obj, EFL_UI_TEXTBOX_CLASS), part);
|
||||||
}
|
}
|
||||||
|
|
||||||
//FIXME
|
//FIXME
|
||||||
|
|
|
@ -103,6 +103,7 @@ class @beta Efl.Ui.Textbox extends Efl.Ui.Layout_Base implements Efl.Input.Click
|
||||||
Efl.Ui.Widget.interest_region { get; }
|
Efl.Ui.Widget.interest_region { get; }
|
||||||
Efl.Ui.Widget.disabled {set;}
|
Efl.Ui.Widget.disabled {set;}
|
||||||
Efl.Text_Format.password {set;}
|
Efl.Text_Format.password {set;}
|
||||||
|
Efl.Text_Format.multiline {set;}
|
||||||
//Efl.Ui.Widget.widget_sub_object_del;
|
//Efl.Ui.Widget.widget_sub_object_del;
|
||||||
//Elm.Interface_Scrollable.policy { set; }
|
//Elm.Interface_Scrollable.policy { set; }
|
||||||
//Elm.Interface_Scrollable.bounce_allow { set; }
|
//Elm.Interface_Scrollable.bounce_allow { set; }
|
||||||
|
|
Loading…
Reference in New Issue