bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=765c5c2a0b2c28c4b8497b28ffbd64f159a446d6

commit 765c5c2a0b2c28c4b8497b28ffbd64f159a446d6
Author: Ali Alzyod <ali198...@gmail.com>
Date:   Tue Mar 10 08:46:18 2020 +0000

    efl.ui.textbox: proxy for efl.ui.scrollable interface
    
    Allow users to use scroller functinality with efl.ui.textbox
    
    Reviewed-by: Marcel Hollerbach <m...@marcel-hollerbach.de>
    Differential Revision: https://phab.enlightenment.org/D11479
---
 src/lib/elementary/efl_ui_textbox.c  | 142 +++++++++++++++++++++++++++++++++++
 src/lib/elementary/efl_ui_textbox.eo |  14 +++-
 2 files changed, 155 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_textbox.c 
b/src/lib/elementary/efl_ui_textbox.c
index 11f79b23fd..17cd36fd4a 100644
--- a/src/lib/elementary/efl_ui_textbox.c
+++ b/src/lib/elementary/efl_ui_textbox.c
@@ -3233,6 +3233,148 @@ _efl_ui_textbox_item_factory_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Textbox_Data
    return pd->item_factory;
 }
 
+/*Efl.Ui.Scrollable*/
+EOLIAN static Eina_Size2D
+_efl_ui_textbox_efl_ui_scrollable_content_size_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd->scroller, EINA_SIZE2D(0, 0));
+   return efl_ui_scrollable_content_size_get(sd->scroller);
+}
+
+EOLIAN static Eina_Rect
+_efl_ui_textbox_efl_ui_scrollable_viewport_geometry_get(const Eo *obj 
EINA_UNUSED,
+                                                                       
Efl_Ui_Textbox_Data *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd->scroller, EINA_RECT_EMPTY());
+   return efl_ui_scrollable_viewport_geometry_get(sd->scroller);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_match_content_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Bool w, Eina_Bool h)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   return efl_ui_scrollable_match_content_set(sd->scroller, !!w, !!h);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_step_size_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Position2D step)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_step_size_set(sd->scroller, step);
+}
+
+EOLIAN static Eina_Position2D
+_efl_ui_textbox_efl_ui_scrollable_step_size_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd->scroller, EINA_POSITION2D(0, 0));
+   return efl_ui_scrollable_step_size_get(sd->scroller);
+}
+
+EOLIAN static Eina_Position2D
+_efl_ui_textbox_efl_ui_scrollable_content_pos_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd->scroller, EINA_POSITION2D(0, 0));
+   return efl_ui_scrollable_content_pos_get(sd->scroller);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_content_pos_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Position2D pos)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_content_pos_set(sd->scroller, pos);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_textbox_efl_ui_scrollable_scroll_hold_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd->scroller, EINA_FALSE);
+   return efl_ui_scrollable_scroll_hold_get(sd->scroller);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_scroll_hold_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Bool hold)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_scroll_hold_set(sd->scroller, !!hold);
+}
+
+EOLIAN static Eina_Bool
+_efl_ui_textbox_efl_ui_scrollable_scroll_freeze_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd->scroller, EINA_FALSE);
+   return efl_ui_scrollable_scroll_freeze_get(sd->scroller);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_scroll_freeze_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Bool freeze)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_scroll_freeze_set(sd->scroller, !!freeze);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_bounce_enabled_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Bool horiz, Eina_Bool vert)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_bounce_enabled_set(sd->scroller, !!horiz, !!vert);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_bounce_enabled_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Textbox_Data *sd, Eina_Bool *horiz, Eina_Bool *vert)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_bounce_enabled_get(sd->scroller, horiz, vert);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_scroll(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Rect rect, Eina_Bool animation)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_scroll(sd->scroller, rect, animation);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_gravity_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, double *x, double *y)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_gravity_get(sd->scroller, x, y);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_gravity_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, double x, double y)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_gravity_set(sd->scroller, x, y);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_movement_block_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Efl_Ui_Layout_Orientation block)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_movement_block_set(sd->scroller, block);
+}
+
+EOLIAN static Efl_Ui_Layout_Orientation
+_efl_ui_textbox_efl_ui_scrollable_movement_block_get(const Eo *obj 
EINA_UNUSED, Efl_Ui_Textbox_Data *sd)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(sd->scroller, 
EFL_UI_LAYOUT_ORIENTATION_DEFAULT);
+   return efl_ui_scrollable_movement_block_get(sd->scroller);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_looping_set(Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Bool loop_h, Eina_Bool loop_v)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_looping_set(sd->scroller, !!loop_h, !!loop_v);
+}
+
+EOLIAN static void
+_efl_ui_textbox_efl_ui_scrollable_looping_get(const Eo *obj EINA_UNUSED, 
Efl_Ui_Textbox_Data *sd, Eina_Bool *loop_h, Eina_Bool *loop_v)
+{
+   EINA_SAFETY_ON_NULL_RETURN(sd->scroller);
+   efl_ui_scrollable_looping_get(sd->scroller, loop_h, loop_v);
+}
+
 /* Efl.Part begin */
 
 static Eina_Bool
diff --git a/src/lib/elementary/efl_ui_textbox.eo 
b/src/lib/elementary/efl_ui_textbox.eo
index 2605c477a3..c4833f315d 100644
--- a/src/lib/elementary/efl_ui_textbox.eo
+++ b/src/lib/elementary/efl_ui_textbox.eo
@@ -11,7 +11,7 @@ enum @beta Efl.Ui.Textbox_Cnp_Content {
 }
 
 class @beta Efl.Ui.Textbox extends Efl.Ui.Layout_Base implements 
Efl.Input.Clickable,
-                 Efl.Access.Text, Efl.Access.Editable.Text
+                 Efl.Access.Text, Efl.Access.Editable.Text, Efl.Ui.Scrollable
    composites
                  Efl.Text_Interactive, Efl.Text_Markup, Efl.Input_Text
 {
@@ -133,6 +133,18 @@ class @beta Efl.Ui.Textbox extends Efl.Ui.Layout_Base 
implements Efl.Input.Click
       Efl.Access.Editable.Text.paste;
       Efl.Text_Interactive.editable { set; }
       Efl.Part.part_get;
+      Efl.Ui.Scrollable.content_pos { set; get; }
+      Efl.Ui.Scrollable.content_size{ get; }
+      Efl.Ui.Scrollable.viewport_geometry{ get; }
+      Efl.Ui.Scrollable.bounce_enabled { set; get; }
+      Efl.Ui.Scrollable.scroll_freeze { get; set; }
+      Efl.Ui.Scrollable.scroll_hold { get; set; }
+      Efl.Ui.Scrollable.looping { get; set; }
+      Efl.Ui.Scrollable.movement_block { get; set; }
+      Efl.Ui.Scrollable.gravity { get; set; }
+      Efl.Ui.Scrollable.match_content { set; }
+      Efl.Ui.Scrollable.step_size { set; get; }
+      Efl.Ui.Scrollable.scroll;
    }
    events {
       selection,paste: void; [[Called when selection is pasted.]]

-- 


Reply via email to