cedric pushed a commit to branch master.

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

commit e7cc65bdeb95d5a7cb17110f9e1cc22ea3bdb4c0
Author: Mike Blumenkrantz <[email protected]>
Date:   Fri Aug 16 15:10:48 2019 -0400

    efl_ui/popups: convert from elm_scroller to efl_ui_scroller internally
    
    efl_ui widgets should not use legacy widgets internally
    
    Reviewed-by: Cedric BAIL <[email protected]>
    Differential Revision: https://phab.enlightenment.org/D9596
---
 data/elementary/themes/edc/efl/scroller.edc    | 16 ++++++++++
 src/lib/elementary/efl_ui_scroll_alert_popup.c | 31 ++++++++-----------
 src/lib/elementary/efl_ui_text_alert_popup.c   | 42 ++++++++++++--------------
 3 files changed, 48 insertions(+), 41 deletions(-)

diff --git a/data/elementary/themes/edc/efl/scroller.edc 
b/data/elementary/themes/edc/efl/scroller.edc
index 56265262b0..83a377391b 100644
--- a/data/elementary/themes/edc/efl/scroller.edc
+++ b/data/elementary/themes/edc/efl/scroller.edc
@@ -1281,6 +1281,22 @@ group { name: "efl/scroller:noclip";
    }
 }
 
+group { name: "efl/scroller:popup/no_inset_shadow";
+   inherit: "efl/scroller";
+   parts {
+      part { name: "inset";
+         description { state: "default" 0.0;
+            visible: 0;
+         }
+      }
+      part { name: "shadow";
+         description { state: "default" 0.0;
+            visible: 0;
+         }
+      }
+   }
+}
+
 group { name: "efl/scroller/contents";
    parts {
       part { name: "efl.content";
diff --git a/src/lib/elementary/efl_ui_scroll_alert_popup.c 
b/src/lib/elementary/efl_ui_scroll_alert_popup.c
index bba1392aed..6bc43e2c1e 100644
--- a/src/lib/elementary/efl_ui_scroll_alert_popup.c
+++ b/src/lib/elementary/efl_ui_scroll_alert_popup.c
@@ -37,20 +37,20 @@ _scroller_sizing_eval(Eo *obj, 
Efl_Ui_Scroll_Alert_Popup_Data *pd,
 
    if ((max_size.w == -1) && (max_size.h == -1))
      {
-        elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
+        efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
         efl_gfx_entity_size_set(obj, size);
      }
    else if ((max_size.w == -1) && (max_size.h != -1))
      {
         if (max_size.h < scr_min.h)
           {
-             elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, 
EINA_FALSE);
+             efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
              efl_gfx_entity_size_set(obj, EINA_SIZE2D(size.w, max_size.h));
           }
         else
           {
              new_min.h = scr_min.h;
-             elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, 
EINA_TRUE);
+             efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_TRUE);
              efl_gfx_entity_size_set(obj, EINA_SIZE2D(size.w, scr_min.h));
           }
      }
@@ -58,13 +58,13 @@ _scroller_sizing_eval(Eo *obj, 
Efl_Ui_Scroll_Alert_Popup_Data *pd,
      {
         if (max_size.w < scr_min.w)
           {
-             elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, 
EINA_FALSE);
+             efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
              efl_gfx_entity_size_set(obj, EINA_SIZE2D(max_size.w, size.h));
           }
         else
           {
              new_min.w = scr_min.w;
-             elm_scroller_content_min_limit(pd->scroller, EINA_TRUE, 
EINA_FALSE);
+             efl_ui_scrollable_match_content_set(pd->scroller, EINA_TRUE, 
EINA_FALSE);
              efl_gfx_entity_size_set(obj, EINA_SIZE2D(scr_min.w, size.h));
           }
      }
@@ -96,7 +96,7 @@ _scroller_sizing_eval(Eo *obj, Efl_Ui_Scroll_Alert_Popup_Data 
*pd,
              new_size.h = scr_min.h;
           }
 
-        elm_scroller_content_min_limit(pd->scroller, min_limit_w, min_limit_h);
+        efl_ui_scrollable_match_content_set(pd->scroller, min_limit_w, 
min_limit_h);
         efl_gfx_entity_size_set(obj, new_size);
      }
    efl_canvas_group_calculate(pd->scroller);
@@ -113,7 +113,7 @@ _sizing_eval(Eo *obj, Efl_Ui_Scroll_Alert_Popup_Data *pd)
 
    //Calculate popup's min size including scroller's min size
      {
-        elm_scroller_content_min_limit(pd->scroller, EINA_TRUE, EINA_TRUE);
+        efl_ui_scrollable_match_content_set(pd->scroller, EINA_TRUE, 
EINA_TRUE);
         efl_canvas_group_calculate(pd->scroller);
 
         elm_coords_finger_size_adjust(1, &scr_minw, 1, &scr_minh);
@@ -123,14 +123,13 @@ _sizing_eval(Eo *obj, Efl_Ui_Scroll_Alert_Popup_Data *pd)
 
    //Calculate popup's min size except scroller's min size
      {
-        elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
+        efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
         efl_canvas_group_calculate(pd->scroller);
 
         elm_coords_finger_size_adjust(1, &obj_minw, 1, &obj_minh);
         edje_object_size_min_restricted_calc
            (wd->resize_obj, &obj_minw, &obj_minh, obj_minw, obj_minh);
      }
-
    _scroller_sizing_eval(obj, pd, EINA_SIZE2D(obj_minw, obj_minh), 
EINA_SIZE2D(scr_minw, scr_minh));
 }
 
@@ -139,13 +138,10 @@ 
_efl_ui_scroll_alert_popup_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Scro
 {
    EFL_UI_POPUP_DATA_GET_OR_RETURN(obj, ppd);
    ppd->in_calc = EINA_TRUE;
-   /* When efl_canvas_group_change() is called, just flag is set instead of 
size
-    * calculation.
-    * The actual size calculation is done here when the object is rendered to
-    * avoid duplicate size calculations. */
-   efl_canvas_group_need_recalculate_set(obj, EINA_FALSE);
 
    _sizing_eval(obj, pd);
+   efl_canvas_group_need_recalculate_set(pd->scroller, EINA_FALSE);
+   efl_canvas_group_need_recalculate_set(obj, EINA_FALSE);
 
    //Not to calculate size by super class
    efl_canvas_group_calculate(efl_super(obj, MY_CLASS));
@@ -226,10 +222,9 @@ _efl_ui_scroll_alert_popup_efl_object_constructor(Eo *obj,
    obj = efl_constructor(efl_super(obj, MY_CLASS));
    efl_canvas_object_type_set(obj, MY_CLASS_NAME);
 
-   pd->scroller = elm_scroller_add(obj);
-   elm_object_style_set(pd->scroller, "popup/no_inset_shadow");
-   elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_AUTO,
-                           ELM_SCROLLER_POLICY_AUTO);
+   pd->scroller = efl_add(EFL_UI_SCROLLER_CLASS, obj,
+     efl_ui_widget_style_set(efl_added, "popup/no_inset_shadow"),
+     efl_ui_scrollbar_bar_mode_set(efl_added, EFL_UI_SCROLLBAR_MODE_AUTO, 
EFL_UI_SCROLLBAR_MODE_AUTO));
 
    efl_content_set(efl_part(efl_super(obj, MY_CLASS), "efl.content"),
                    pd->scroller);
diff --git a/src/lib/elementary/efl_ui_text_alert_popup.c 
b/src/lib/elementary/efl_ui_text_alert_popup.c
index 64dfcc856f..13b812f57d 100644
--- a/src/lib/elementary/efl_ui_text_alert_popup.c
+++ b/src/lib/elementary/efl_ui_text_alert_popup.c
@@ -42,35 +42,35 @@ _scroller_sizing_eval(Eo *obj, Efl_Ui_Text_Alert_Popup_Data 
*pd, Eina_Size2D obj
 
   if ((max_size.w == -1) && (max_size.h == -1))
     {
-       elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
+       efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
        efl_gfx_entity_size_set(obj, size);
     }
   else if ((max_size.w == -1) && (max_size.h != -1))
     {
        if (max_size.h < text_min.h)
          {
-            elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, 
EINA_FALSE);
-            efl_gfx_entity_size_set(obj, EINA_SIZE2D(size.w, max_size.h));
+            efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
+            size = EINA_SIZE2D(size.w, max_size.h);
          }
        else
          {
             new_min.h = text_min.h;
-            elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, 
EINA_TRUE);
-            efl_gfx_entity_size_set(obj, EINA_SIZE2D(size.w, text_min.h));
+            efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_TRUE);
+            size = EINA_SIZE2D(size.w, text_min.h);
          }
     }
   else if ((max_size.w != -1) && (max_size.h == -1))
     {
        if (max_size.w < text_min.w)
          {
-            elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, 
EINA_FALSE);
-            efl_gfx_entity_size_set(obj, EINA_SIZE2D(max_size.w, size.h));
+            efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
+            size = EINA_SIZE2D(max_size.w, size.h);
          }
        else
          {
             new_min.w = text_min.w;
-            elm_scroller_content_min_limit(pd->scroller, EINA_TRUE, 
EINA_FALSE);
-            efl_gfx_entity_size_set(obj, EINA_SIZE2D(text_min.w, size.h));
+            efl_ui_scrollable_match_content_set(pd->scroller, EINA_TRUE, 
EINA_FALSE);
+            size = EINA_SIZE2D(text_min.w, size.h);
          }
     }
   else if ((max_size.w != -1) && (max_size.h != -1))
@@ -101,9 +101,10 @@ _scroller_sizing_eval(Eo *obj, 
Efl_Ui_Text_Alert_Popup_Data *pd, Eina_Size2D obj
             new_size.h = text_min.h;
          }
 
-        elm_scroller_content_min_limit(pd->scroller, min_limit_w, min_limit_h);
-        efl_gfx_entity_size_set(obj, new_size);
+        efl_ui_scrollable_match_content_set(pd->scroller, min_limit_w, 
min_limit_h);
+        size = new_size;
     }
+    efl_gfx_entity_size_set(obj, size);
     efl_canvas_group_calculate(pd->scroller);
 
     efl_gfx_hint_size_restricted_min_set(obj, new_min);
@@ -125,7 +126,7 @@ _sizing_eval(Eo *obj, Efl_Ui_Text_Alert_Popup_Data *pd)
         elm_label_line_wrap_set(pd->message, ELM_WRAP_MIXED);
         efl_canvas_group_calculate(pd->message);
 
-        elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_TRUE);
+        efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_TRUE);
         efl_canvas_group_calculate(pd->scroller);
 
         elm_coords_finger_size_adjust(1, &text_minw, 1, &text_minh);
@@ -135,7 +136,7 @@ _sizing_eval(Eo *obj, Efl_Ui_Text_Alert_Popup_Data *pd)
 
    //Calculate popup's min size except scroller's min size
      {
-        elm_scroller_content_min_limit(pd->scroller, EINA_FALSE, EINA_FALSE);
+        efl_ui_scrollable_match_content_set(pd->scroller, EINA_FALSE, 
EINA_FALSE);
         efl_canvas_group_calculate(pd->scroller);
 
         elm_coords_finger_size_adjust(1, &obj_minw, 1, &obj_minh);
@@ -152,13 +153,9 @@ 
_efl_ui_text_alert_popup_efl_canvas_group_group_calculate(Eo *obj, Efl_Ui_Text_A
 {
    EFL_UI_POPUP_DATA_GET_OR_RETURN(obj, ppd);
    ppd->in_calc = EINA_TRUE;
-   /* When efl_canvas_group_change() is called, just flag is set instead of 
size
-    * calculation.
-    * The actual size calculation is done here when the object is rendered to
-    * avoid duplicate size calculations. */
-   efl_canvas_group_need_recalculate_set(obj, EINA_FALSE);
-
    _sizing_eval(obj, pd);
+   efl_canvas_group_need_recalculate_set(pd->scroller, EINA_FALSE);
+   efl_canvas_group_need_recalculate_set(obj, EINA_FALSE);
 
    efl_canvas_group_calculate(efl_super(obj, MY_CLASS));
    ppd->in_calc = EINA_FALSE;
@@ -242,10 +239,9 @@ _efl_ui_text_alert_popup_efl_object_constructor(Eo *obj,
    obj = efl_constructor(efl_super(obj, MY_CLASS));
    efl_canvas_object_type_set(obj, MY_CLASS_NAME);
 
-   pd->scroller = elm_scroller_add(obj);
-   elm_object_style_set(pd->scroller, "popup/no_inset_shadow");
-   elm_scroller_policy_set(pd->scroller, ELM_SCROLLER_POLICY_OFF,
-                           ELM_SCROLLER_POLICY_AUTO);
+   pd->scroller = efl_add(EFL_UI_SCROLLER_CLASS, obj,
+     efl_ui_widget_style_set(efl_added, "popup/no_inset_shadow"),
+     efl_ui_scrollbar_bar_mode_set(efl_added, EFL_UI_SCROLLBAR_MODE_OFF, 
EFL_UI_SCROLLBAR_MODE_AUTO));
 
    efl_content_set(efl_part(efl_super(obj, MY_CLASS), "efl.content"),
                    pd->scroller);

-- 


Reply via email to