elm: Remove range "span_size" API in EO
authorJean-Philippe Andre <jp.andre@samsung.com>
Wed, 20 Sep 2017 02:16:17 +0000 (11:16 +0900)
committerJean-Philippe Andre <jp.andre@samsung.com>
Thu, 21 Sep 2017 03:27:34 +0000 (12:27 +0900)
Reasons:
 - This API has been confused with the min size of the widget, resulting
   in badly laid out applications.
 - The EO API was not very nice (Range is about numbers, the Gfx size
   hint in a part is really ugly).

While I understand the value of this API and how it can be used in
scalable applications, it is in fact not absolutely necessary.
Alternatively to that span size, the widget min size can already be
defined from the application side, or the widget can simply be expanded
to fill in its parent.

This can obviously be reinstated later if the need arises for EO. For
now, keep this feature as legacy-only.

13 files changed:
src/Makefile_Elementary.am
src/bin/elementary/test_slider_interval.c
src/examples/elementary/slider_cxx_example.cc
src/lib/efl/interfaces/efl_ui_range.eo
src/lib/elementary/efl_ui_layout.c
src/lib/elementary/efl_ui_progressbar.c
src/lib/elementary/efl_ui_progressbar.eo
src/lib/elementary/efl_ui_progressbar_part.eo
src/lib/elementary/efl_ui_progressbar_private.h
src/lib/elementary/efl_ui_slider.c
src/lib/elementary/efl_ui_slider.eo
src/lib/elementary/efl_ui_slider_part.eo [deleted file]
src/lib/elementary/efl_ui_slider_private.h

index 2d1d01c7828ec06b6360931e87d7c2c62a979baf..bd13a1ff2683b3f3af5600e180fe8921f7f77bea 100644 (file)
@@ -118,7 +118,6 @@ elm_public_eolian_files = \
        lib/elementary/efl_ui_progressbar_part.eo \
        lib/elementary/elm_popup_part.eo \
        lib/elementary/elm_scroller_part.eo \
-       lib/elementary/efl_ui_slider_part.eo \
        lib/elementary/elm_label_part.eo \
        lib/elementary/elm_actionslider_part.eo \
        lib/elementary/elm_bubble_part.eo \
index 14b1a85ae884af976ba7662c4b05bf3584fea6fb..cee02ff657403e4bd9eb829f562ef1c99e405ba5 100644 (file)
@@ -29,7 +29,7 @@ _intv_slider_changed_cb(void *data EINA_UNUSED, const Efl_Event *ev)
 void
 test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
 {
-   Eo *win, *bx, *hbx, *sl;
+   Eo *win, *bx, *hbx;
    double step;
 
    win = efl_add(EFL_UI_WIN_CLASS, NULL,
@@ -40,72 +40,71 @@ test_slider_interval(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void
    bx = efl_add(EFL_UI_BOX_CLASS, win,
                 efl_content_set(win, efl_added));
 
-   sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
-                efl_text_set(efl_added, "horizontal"),
-                efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_NONE),
-                efl_ui_range_span_size_set(efl_added, 160),
-                efl_ui_slider_indicator_format_set(efl_added, "%1.5f"),
-                efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
-                efl_pack(bx, efl_added));
+   efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
+           efl_text_set(efl_added, "Horizontal"),
+           efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_NONE),
+           efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(160, 0)),
+           efl_ui_slider_indicator_format_set(efl_added, "%1.5f"),
+           efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
+           efl_pack(bx, efl_added));
 
    step = _step_size_calculate(0, 9);
-   sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
-                efl_text_set(efl_added, "Manual step"),
-                efl_ui_range_span_size_set(efl_added, 120),
-                efl_ui_range_unit_format_set(efl_added, "%1.1f units"),
-                efl_ui_slider_indicator_format_set(efl_added, "%1.1f"),
-                efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
-                efl_ui_slider_step_set(efl_added, step),
-                efl_pack(bx, efl_added));
+   efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
+           efl_text_set(efl_added, "Manual step"),
+           efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(120, 0)),
+           efl_ui_range_unit_format_set(efl_added, "%1.1f units"),
+           efl_ui_slider_indicator_format_set(efl_added, "%1.1f"),
+           efl_ui_slider_interval_value_set(efl_added, 0.4, 0.9),
+           efl_ui_slider_step_set(efl_added, step),
+           efl_pack(bx, efl_added));
 
-   sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
-                efl_text_set(efl_added, "Disabled"),
-                efl_ui_range_span_size_set(efl_added, 120),
-                efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
-                efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
-                efl_ui_range_min_max_set(efl_added, 10, 145),
-                efl_ui_slider_interval_value_set(efl_added, 50, 100),
-                efl_ui_slider_step_set(efl_added, step),
-                efl_pack(bx, efl_added));
-   elm_object_disabled_set(sl, EINA_TRUE);
+   efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
+           efl_text_set(efl_added, "Disabled"),
+           efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(120, 0)),
+           efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
+           efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
+           efl_ui_range_min_max_set(efl_added, 10, 145),
+           efl_ui_slider_interval_value_set(efl_added, 50, 100),
+           efl_ui_slider_step_set(efl_added, step),
+           elm_object_disabled_set(efl_added, EINA_TRUE),
+           efl_pack(bx, efl_added));
 
    hbx = efl_add(EFL_UI_BOX_CLASS, bx,
                  efl_ui_direction_set(efl_added, EFL_UI_DIR_HORIZONTAL),
                  efl_pack(bx, efl_added));
 
-   sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx,
-                efl_text_set(efl_added, "Vertical"),
-                efl_ui_range_span_size_set(efl_added, 120),
-                efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
-                efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
-                efl_ui_range_min_max_set(efl_added, 10, 145),
-                efl_ui_slider_interval_value_set(efl_added, 50, 100),
-                efl_ui_slider_step_set(efl_added, step),
-                efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL),
-                efl_pack(hbx, efl_added));
+   efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx,
+           efl_text_set(efl_added, "Vertical"),
+           efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(0, 160)),
+           efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
+           efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
+           efl_ui_range_min_max_set(efl_added, 10, 145),
+           efl_ui_slider_interval_value_set(efl_added, 50, 100),
+           efl_ui_slider_step_set(efl_added, step),
+           efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL),
+           efl_pack(hbx, efl_added));
 
-   sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx,
-                efl_text_set(efl_added, "Disabled"),
-                efl_ui_range_span_size_set(efl_added, 120),
-                efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
-                efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
-                efl_ui_range_min_max_set(efl_added, 10, 145),
-                efl_ui_slider_interval_value_set(efl_added, 50, 100),
-                efl_ui_slider_step_set(efl_added, step),
-                efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL),
-                efl_pack(hbx, efl_added));
-   elm_object_disabled_set(sl, EINA_TRUE);
+   efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, hbx,
+           efl_text_set(efl_added, "Disabled"),
+           efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(0, 160)),
+           efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
+           efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
+           efl_ui_range_min_max_set(efl_added, 10, 145),
+           efl_ui_slider_interval_value_set(efl_added, 50, 100),
+           efl_ui_slider_step_set(efl_added, step),
+           efl_ui_direction_set(efl_added, EFL_UI_DIR_VERTICAL),
+           elm_object_disabled_set(efl_added, EINA_TRUE),
+           efl_pack(hbx, efl_added));
 
-   sl = efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
-                efl_text_set(efl_added, "Limited(100-500)"),
-                efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS),
-                efl_ui_range_span_size_set(efl_added, 120),
-                efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
-                efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
-                efl_ui_range_min_max_set(efl_added, 0, 600),
-                efl_ui_slider_interval_value_set(efl_added, 100, 500),
-                efl_ui_slider_step_set(efl_added, step),
-                efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_CHANGED, _intv_slider_changed_cb, NULL),
-                efl_pack(bx, efl_added));
+   efl_add(EFL_UI_SLIDER_INTERVAL_CLASS, bx,
+           efl_text_set(efl_added, "Limited (100-500)"),
+           efl_ui_slider_indicator_visible_mode_set(efl_added, EFL_UI_SLIDER_INDICATOR_VISIBLE_MODE_ON_FOCUS),
+           efl_gfx_size_hint_min_set(efl_added, EINA_SIZE2D(260, 0)),
+           efl_ui_range_unit_format_set(efl_added, "%1.0f units"),
+           efl_ui_slider_indicator_format_set(efl_added, "%1.0f"),
+           efl_ui_range_min_max_set(efl_added, 0, 600),
+           efl_ui_slider_interval_value_set(efl_added, 100, 500),
+           efl_ui_slider_step_set(efl_added, step),
+           efl_event_callback_add(efl_added, EFL_UI_SLIDER_EVENT_CHANGED, _intv_slider_changed_cb, NULL),
+           efl_pack(bx, efl_added));
 }
-
index 273abea1eb2586c6987d62e2592bbdbe9146a3dc..4f6f948c043f678f87b15b4ab8e9d1668112f8a3 100644 (file)
@@ -38,7 +38,7 @@ elm_main (int argc, char *argv[])
 
    ::elm::slider sl3(efl::eo::parent = win);
    sl3.value_set(1);
-   sl3.span_size_set(200);
+   sl3.hint_min_set(220, 0);
    sl3.size_hint_align_set(EVAS_HINT_FILL, 0.5);
    sl3.size_hint_weight_set(EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
    bx.pack_end(sl3);
index c2f338e4f1d9c8366278f46d0a4c2454fef3cf9e..6b9edd8a170705959da1a427387fd3c591d5a1b7 100644 (file)
@@ -2,27 +2,6 @@ interface Efl.Ui.Range
 {
    [[Efl UI progress interface]]
    methods {
-      @property span_size {
-         [[Control the (exact) length of the bar region of a given range widget
-
-           This sets the minimum width (when in horizontal mode) or height
-           (when in vertical mode) of the actual bar area of the range
-           bar $obj. This in turn affects the object's minimum size. Use
-           this when you're not setting other size hints expanding on the
-           given direction (like weight and alignment hints) and you would
-           like it to have a specific size.
-
-           Note: Icon, label and unit text around $obj will require their
-           own space, which will make $obj to require more the $size,
-           actually.]]
-         set {
-         }
-         get {
-         }
-         values {
-            size: int; [[The length of the range's bar region]]
-         }
-      }
       @property range_value {
          [[Control the range value (in percentage) on a given range widget
 
index 24130d71b4848b461a3fda77bd10e5d73787e91f..71168666ce8ba14ca414165b44f8f1fbe217b804 100644 (file)
@@ -1042,8 +1042,7 @@ end:
 }
 
 EAPI Evas_Object *
-elm_layout_content_get(const Evas_Object *obj,
-                       const char *swallow)
+elm_layout_content_get(const Evas_Object *obj, const char *swallow)
 {
    EFL_UI_LAYOUT_CHECK(obj) NULL;
    if (!swallow)
@@ -1051,6 +1050,8 @@ elm_layout_content_get(const Evas_Object *obj,
         swallow = elm_widget_default_content_part_get(obj);
         if (!swallow) return NULL;
      }
+   else if (!_elm_layout_part_aliasing_eval(obj, &swallow, EINA_FALSE))
+     return NULL;
    return efl_content_get(efl_part(obj, swallow));
 }
 
index 38cba9635a4830154a7cc40b9695e209e9f24a07..cfbb830443a06072532c72c01e1046e2878ef4a7 100644 (file)
@@ -174,33 +174,23 @@ _icon_signal_emit(Evas_Object *obj)
    elm_layout_signal_emit(obj, buf, "elm");
 }
 
-/* FIXME: replicated from elm_layout just because progressbar's icon
- * spot is elm.swallow.content, not elm.swallow.icon. Fix that
- * whenever we can changed the theme API */
 EOLIAN static Eina_Bool
-_efl_ui_progressbar_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED, Evas_Object *sobj)
+_efl_ui_progressbar_elm_widget_widget_sub_object_del(Eo *obj, Efl_Ui_Progressbar_Data *pd EINA_UNUSED, Evas_Object *sobj)
 {
-   Eina_Bool int_ret = EINA_FALSE;
-   int_ret = elm_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj);
-   if (!int_ret) return EINA_FALSE;
+   if (!elm_obj_widget_sub_object_del(efl_super(obj, MY_CLASS), sobj))
+     return EINA_FALSE;
 
    _icon_signal_emit(obj);
-
    return EINA_TRUE;
 }
 
-/* FIXME: replicated from elm_layout just because progressbar's icon
- * spot is elm.swallow.content, not elm.swallow.icon. Fix that
- * whenever we can changed the theme API */
 static Eina_Bool
-_efl_ui_progressbar_content_set(Eo *obj, Efl_Ui_Progressbar_Data *_pd EINA_UNUSED, const char *part, Evas_Object *content)
+_efl_ui_progressbar_elm_widget_widget_sub_object_add(Eo *obj, Efl_Ui_Progressbar_Data *pd EINA_UNUSED, Evas_Object *sobj)
 {
-   Eina_Bool int_ret = EINA_FALSE;
-   int_ret = efl_content_set(efl_part(efl_super(obj, MY_CLASS), part), content);
-   if (!int_ret) return EINA_FALSE;
+   if (!elm_obj_widget_sub_object_add(efl_super(obj, MY_CLASS), sobj))
+     return EINA_FALSE;
 
    _icon_signal_emit(obj);
-
    return EINA_TRUE;
 }
 
@@ -399,8 +389,8 @@ _efl_ui_progressbar_efl_ui_direction_direction_get(Eo *obj EINA_UNUSED, Efl_Ui_P
    return sd->dir;
 }
 
-EOLIAN static void
-_efl_ui_progressbar_efl_ui_range_span_size_set(Eo *obj, Efl_Ui_Progressbar_Data *sd, Evas_Coord size)
+static void
+_progressbar_span_size_set(Eo *obj, Efl_Ui_Progressbar_Data *sd, Evas_Coord size)
 {
    if (sd->size == size) return;
 
@@ -418,12 +408,6 @@ _efl_ui_progressbar_efl_ui_range_span_size_set(Eo *obj, Efl_Ui_Progressbar_Data
    elm_layout_sizing_eval(obj);
 }
 
-EOLIAN static Evas_Coord
-_efl_ui_progressbar_efl_ui_range_span_size_get(Eo *obj EINA_UNUSED, Efl_Ui_Progressbar_Data *sd)
-{
-   return sd->size;
-}
-
 static void
 _progressbar_part_value_set(Eo *obj, Efl_Ui_Progressbar_Data *sd, const char *part_name, double val)
 {
@@ -544,13 +528,15 @@ elm_progressbar_value_get(const Evas_Object *obj)
 EAPI void
 elm_progressbar_span_size_set(Evas_Object *obj, Evas_Coord size)
 {
-   efl_ui_range_span_size_set(obj, size);
+   EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(obj, sd);
+   _progressbar_span_size_set(obj, sd, size);
 }
 
 EAPI Evas_Coord
 elm_progressbar_span_size_get(const Evas_Object *obj)
 {
-   return efl_ui_range_span_size_get(obj);
+   EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(obj, sd, 0);
+   return sd->size;
 }
 
 EAPI void
@@ -642,8 +628,18 @@ _efl_ui_progressbar_class_constructor(Efl_Class *klass)
 
 /* Efl.Part begin */
 
-ELM_PART_OVERRIDE_ONLY_ALIASES(efl_ui_progressbar, EFL_UI_PROGRESSBAR, Efl_Ui_Progressbar_Data, _content_aliases)
-ELM_PART_OVERRIDE_CONTENT_SET(efl_ui_progressbar, EFL_UI_PROGRESSBAR, Efl_Ui_Progressbar_Data)
+EOLIAN static Eo *
+_efl_ui_progressbar_efl_part_part(const Eo *obj, Efl_Ui_Progressbar_Data *sd EINA_UNUSED, const char *part)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
+   ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd, NULL);
+
+   // Progress bars are dragable types
+   if (edje_object_part_drag_dir_get(wd->resize_obj, part) != EFL_UI_DRAG_DIR_NONE)
+     return ELM_PART_OVERRIDE_IMPLEMENT(EFL_UI_PROGRESSBAR_PART_CLASS);
+
+   return efl_part(efl_super(obj, MY_CLASS), part);
+}
 
 EOLIAN static void
 _efl_ui_progressbar_part_efl_ui_range_range_value_set(Eo *obj, void *_pd EINA_UNUSED, double val)
@@ -652,6 +648,7 @@ _efl_ui_progressbar_part_efl_ui_range_range_value_set(Eo *obj, void *_pd EINA_UN
   Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS);
 
   _progressbar_part_value_set(pd->obj, sd, pd->part, val);
+  ELM_PART_RETURN_VOID;
 }
 
 EOLIAN static double
@@ -660,7 +657,7 @@ _efl_ui_progressbar_part_efl_ui_range_range_value_get(Eo *obj, void *_pd EINA_UN
    Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
    Efl_Ui_Progressbar_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_PROGRESSBAR_CLASS);
 
-   return _progressbar_part_value_get(sd, pd->part);
+   ELM_PART_RETURN_VAL(_progressbar_part_value_get(sd, pd->part));
 }
 
 #include "efl_ui_progressbar_part.eo.c"
index dcd7f2fda028b5ede43e35adf9a1386f9671b328..121a7307cd22ccb82d12ed0b583a0d5217fe04fc 100644 (file)
@@ -52,8 +52,8 @@ class Efl.Ui.Progressbar (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction)
       Elm.Widget.theme_apply;
       Elm.Widget.focus_next_manager_is;
       Elm.Widget.focus_direction_manager_is;
+      Elm.Widget.widget_sub_object_add;
       Elm.Widget.widget_sub_object_del;
-      Efl.Ui.Range.span_size { get; set; }
       Efl.Ui.Range.range_value { get; set; }
       Efl.Ui.Range.range_unit_format { get; set; }
       Efl.Ui.Direction.direction { get; set; }
index 0eb21412ea68abfb63b6559949512d7d3efc0b61..a57bfa7cdcc9dec43350ca4a229c56f188cd8724 100644 (file)
@@ -1,9 +1,8 @@
-class Efl.Ui.Progressbar.Part (Efl.Ui.Layout.Part_Content, Efl.Ui.Range)
+class Efl.Ui.Progressbar.Part (Efl.Ui.Layout.Part, Efl.Ui.Range)
 {
    [[Elementary progressbar internal part class]]
    data: null;
    implements {
-      Efl.Container.content { set; }
       Efl.Ui.Range.range_value { set; get; }
    }
 }
index 4c0a9b89f5aae7521a5c3509f7753370c6ce3187..afc7017002f576874fc2616452dd9873e7c699f0 100644 (file)
@@ -56,26 +56,13 @@ struct _Efl_Ui_Progress_Status
 #define EFL_UI_PROGRESSBAR_DATA_GET(o, sd) \
   Efl_Ui_Progressbar_Data * sd = efl_data_scope_get(o, EFL_UI_PROGRESSBAR_CLASS)
 
-#define EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(o, ptr)   \
-  EFL_UI_PROGRESSBAR_DATA_GET(o, ptr);                  \
-  if (EINA_UNLIKELY(!ptr))                           \
+#define EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN(o, sd, ...) \
+  Efl_Ui_Progressbar_Data *sd = efl_data_scope_safe_get(o, EFL_UI_PROGRESSBAR_CLASS); \
+  if (EINA_UNLIKELY(!sd))                            \
     {                                                \
-       CRI("No widget data for object %p (%s)",      \
+       ERR("No widget data for object %p (%s)",      \
            o, evas_object_type_get(o));              \
-       return;                                       \
+       return __VA_ARGS__;                           \
     }
 
-#define EFL_UI_PROGRESSBAR_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
-  EFL_UI_PROGRESSBAR_DATA_GET(o, ptr);                         \
-  if (EINA_UNLIKELY(!ptr))                                  \
-    {                                                       \
-       CRI("No widget data for object %p (%s)",             \
-           o, evas_object_type_get(o));                     \
-       return val;                                          \
-    }
-
-#define EFL_UI_PROGRESSBAR_CHECK(obj)                              \
-  if (EINA_UNLIKELY(!efl_isa((obj), EFL_UI_PROGRESSBAR_CLASS))) \
-    return
-
 #endif
index 76c383901428b214257fc2d8461f534c805d1d75..f53f5760cdb8fef89f5e863a97141d99fdb034b9 100644 (file)
@@ -12,8 +12,6 @@
 #include "elm_priv.h"
 #include "efl_ui_slider_private.h"
 #include "elm_widget_layout.h"
-
-#include "efl_ui_slider_part.eo.h"
 #include "elm_part_helper.h"
 
 #define MY_CLASS EFL_UI_SLIDER_CLASS
@@ -1233,21 +1231,6 @@ _efl_ui_slider_efl_ui_direction_direction_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider
    return sd->dir;
 }
 
-EOLIAN static void
-_efl_ui_slider_efl_ui_range_span_size_set(Eo *obj, Efl_Ui_Slider_Data *sd, Evas_Coord size)
-{
-   if (_is_horizontal(sd->dir))
-     efl_gfx_size_hint_min_set(efl_part(obj, "span"), EINA_SIZE2D(size, 1));
-   else
-     efl_gfx_size_hint_min_set(efl_part(obj, "span"), EINA_SIZE2D(1, size));
-}
-
-EOLIAN static Evas_Coord
-_efl_ui_slider_efl_ui_range_span_size_get(Eo *obj EINA_UNUSED, Efl_Ui_Slider_Data *sd)
-{
-   return sd->size;
-}
-
 EOLIAN static void
 _efl_ui_slider_efl_ui_range_range_unit_format_set(Eo *obj, Efl_Ui_Slider_Data *sd, const char *units)
 {
@@ -1509,29 +1492,9 @@ _efl_ui_slider_elm_interface_atspi_widget_action_elm_actions_get(Eo *obj EINA_UN
 
 ELM_PART_TEXT_DEFAULT_IMPLEMENT(efl_ui_slider, Efl_Ui_Slider_Data)
 
-/* Efl.Part begin */
-
-EOLIAN static Eo *
-_efl_ui_slider_efl_part_part(const Eo *obj, Efl_Ui_Slider_Data *sd EINA_UNUSED, const char *part)
-{
-   EINA_SAFETY_ON_NULL_RETURN_VAL(part, NULL);
-
-   if (eina_streq(part, "span"))
-     return ELM_PART_OVERRIDE_IMPLEMENT(EFL_UI_SLIDER_PART_CLASS);
-
-   return efl_part(efl_super(obj, MY_CLASS), part);
-}
-
 static void
-_span_size_set(Eo *obj, Efl_Ui_Slider_Data *sd, int w, int h)
+_slider_span_size_set(Eo *obj, Efl_Ui_Slider_Data *sd, int size)
 {
-   Evas_Coord size;
-
-   if (_is_horizontal(sd->dir))
-     size = w;
-   else
-     size = h;
-
    if (sd->size == size) return;
    sd->size = size;
 
@@ -1555,36 +1518,6 @@ _span_size_set(Eo *obj, Efl_Ui_Slider_Data *sd, int w, int h)
    evas_object_smart_changed(obj);
 }
 
-EOLIAN void
-_efl_ui_slider_part_efl_gfx_size_hint_hint_min_set(Eo *obj, void *_pd EINA_UNUSED, Eina_Size2D sz)
-{
-   Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
-   Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
-
-   EINA_SAFETY_ON_FALSE_RETURN(eina_streq(pd->part, "span"));
-   _span_size_set(pd->obj, sd, sz.w, sz.h);
-}
-
-EOLIAN Eina_Size2D
-_efl_ui_slider_part_efl_gfx_size_hint_hint_min_get(Eo *obj, void *_pd EINA_UNUSED)
-{
-   Elm_Part_Data *pd = efl_data_scope_get(obj, EFL_UI_WIDGET_PART_CLASS);
-   Efl_Ui_Slider_Data *sd = efl_data_scope_get(pd->obj, EFL_UI_SLIDER_CLASS);
-   Eina_Size2D ret = { 0, 0 };
-
-   EINA_SAFETY_ON_FALSE_GOTO(eina_streq(pd->part, "span"), end);
-   if (_is_horizontal(sd->dir))
-     ret = EINA_SIZE2D(sd->size, 1);
-   else
-     ret = EINA_SIZE2D(1, sd->size);
-
-end:
-   return ret;
-}
-
-#include "efl_ui_slider_part.eo.c"
-/* Efl.Part end */
-
 /* Legacy APIs */
 
 EAPI Evas_Object *
@@ -1597,13 +1530,15 @@ elm_slider_add(Evas_Object *parent)
 EAPI void
 elm_slider_span_size_set(Evas_Object *obj, Evas_Coord size)
 {
-   efl_ui_range_span_size_set(obj, size);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd);
+   _slider_span_size_set(obj, sd, size);
 }
 
 EAPI Evas_Coord
 elm_slider_span_size_get(const Evas_Object *obj)
 {
-   return efl_ui_range_span_size_get(obj);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd, 0);
+   return sd->size;
 }
 
 EAPI void
@@ -1622,7 +1557,7 @@ EAPI void
 elm_slider_horizontal_set(Evas_Object *obj, Eina_Bool horizontal)
 {
    Efl_Ui_Dir dir;
-   EFL_UI_SLIDER_DATA_GET(obj, sd);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd);
 
    dir = _direction_get(horizontal, _is_inverted(sd->dir));
 
@@ -1654,7 +1589,7 @@ EAPI void
 elm_slider_inverted_set(Evas_Object *obj, Eina_Bool inverted)
 {
    Efl_Ui_Dir dir;
-   EFL_UI_SLIDER_DATA_GET(obj, sd);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd);
 
    dir = _direction_get(_is_horizontal(sd->dir), inverted);
 
@@ -1673,7 +1608,7 @@ elm_slider_inverted_get(const Evas_Object *obj)
 EAPI void
 elm_slider_units_format_function_set(Evas_Object *obj, slider_func_type func, slider_freefunc_type free_func)
 {
-   EFL_UI_SLIDER_DATA_GET(obj, sd);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd);
 
    sd->units_format_func = func;
    sd->units_format_free = free_func;
@@ -1684,7 +1619,7 @@ elm_slider_units_format_function_set(Evas_Object *obj, slider_func_type func, sl
 EAPI void
 elm_slider_range_enabled_set(Evas_Object *obj, Eina_Bool enable)
 {
-   EFL_UI_SLIDER_DATA_GET(obj, sd);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, sd);
 
    if (sd->intvl_enable == enable) return;
 
@@ -1707,14 +1642,14 @@ elm_slider_range_enabled_set(Evas_Object *obj, Eina_Bool enable)
 EAPI Eina_Bool
 elm_slider_range_enabled_get(const Evas_Object *obj)
 {
-   EFL_UI_SLIDER_DATA_GET(obj, pd);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, pd, EINA_FALSE);
    return pd->intvl_enable;
 }
 
 EAPI void
 elm_slider_range_set(Evas_Object *obj, double from, double to)
 {
-   EFL_UI_SLIDER_DATA_GET(obj, pd);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, pd);
    pd->intvl_from = from;
    pd->val = from;
    pd->intvl_to = to;
@@ -1728,7 +1663,7 @@ elm_slider_range_set(Evas_Object *obj, double from, double to)
 EAPI void
 elm_slider_range_get(const Evas_Object *obj, double *from, double *to)
 {
-   EFL_UI_SLIDER_DATA_GET(obj, pd);
+   EFL_UI_SLIDER_DATA_GET_OR_RETURN(obj, pd);
    if (from) *from = fmin(pd->intvl_from, pd->intvl_to);
    if (to) *to = fmax(pd->intvl_from, pd->intvl_to);
 }
index 825ac20acabac60eee5db6149e5e5961a89637af..c26ab11b3ed37cc1d48b6d50c066494db46dd481 100644 (file)
@@ -121,7 +121,6 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction,
       Elm.Widget.focus_direction_manager_is;
       Elm.Widget.on_focus_update;
       Elm.Widget.widget_event;
-      Efl.Ui.Range.span_size { get; set; }
       Efl.Ui.Range.range_value { get; set; }
       Efl.Ui.Range.range_unit_format { get; set; }
       Efl.Ui.Range.range_min_max {get; set; }
@@ -130,7 +129,6 @@ class Efl.Ui.Slider (Efl.Ui.Layout, Efl.Ui.Range, Efl.Ui.Direction,
       Efl.Access.Value.range { get; }
       Efl.Access.Value.increment { get; }
       Elm.Interface.Atspi_Widget_Action.elm_actions { get; }
-      Efl.Part.part;
       Efl.Text.text { get; set; }
    }
    events {
diff --git a/src/lib/elementary/efl_ui_slider_part.eo b/src/lib/elementary/efl_ui_slider_part.eo
deleted file mode 100644 (file)
index 30b34c8..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-class Efl.Ui.Slider.Part (Efl.Ui.Layout.Part_Content, Efl.Gfx.Size.Hint)
-{
-   [[Elementary slider internal part class]]
-   data: null;
-   implements {
-      Efl.Gfx.Size.Hint.hint_min { set; get; }
-   }
-}
index 8e69d234fa452f1eb8fedbe4c84f36cd1f312cb2..a81425e4b62fccfabdbd51699a4a0171cc19c873 100644 (file)
@@ -66,26 +66,13 @@ struct _Efl_Ui_Slider_Data
 #define EFL_UI_SLIDER_DATA_GET(o, sd) \
   Efl_Ui_Slider_Data * sd = efl_data_scope_get(o, EFL_UI_SLIDER_CLASS)
 
-#define EFL_UI_SLIDER_DATA_GET_OR_RETURN(o, ptr)        \
-  EFL_UI_SLIDER_DATA_GET(o, ptr);                       \
-  if (EINA_UNLIKELY(!ptr))                           \
+#define EFL_UI_SLIDER_DATA_GET_OR_RETURN(o, sd, ...) \
+  Efl_Ui_Slider_Data * sd = efl_data_scope_safe_get(o, EFL_UI_SLIDER_CLASS); \
+  if (EINA_UNLIKELY(!sd))                            \
     {                                                \
-       CRI("No widget data for object %p (%s)",      \
+       ERR("No widget data for object %p (%s)",      \
            o, evas_object_type_get(o));              \
-       return;                                       \
+       return __VA_ARGS__;                           \
     }
 
-#define EFL_UI_SLIDER_DATA_GET_OR_RETURN_VAL(o, ptr, val) \
-  EFL_UI_SLIDER_DATA_GET(o, ptr);                         \
-  if (EINA_UNLIKELY(!ptr))                             \
-    {                                                  \
-       CRI("No widget data for object %p (%s)",        \
-           o, evas_object_type_get(o));                \
-       return val;                                     \
-    }
-
-#define EFL_UI_SLIDER_CHECK(obj)                              \
-  if (EINA_UNLIKELY(!efl_isa((obj), EFL_UI_SLIDER_CLASS))) \
-    return
-
 #endif