static void
_scroll_start_cb(void *data EINA_UNUSED, const Efl_Event *ev)
{
- printf("scroll start: %p\n", ev->object);
+ Eina_Position2D pos = efl_ui_scrollable_content_pos_get(ev->object);
+ printf("scroll start: %p x: %d y: %d\n", ev->object, pos.x, pos.y);
}
static void
_scroll_stop_cb(void *data EINA_UNUSED, const Efl_Event *ev)
{
- printf("scroll stop: %p\n", ev->object);
+ Eina_Position2D pos = efl_ui_scrollable_content_pos_get(ev->object);
+ printf("scroll stop: %p x: %d y: %d\n", ev->object, pos.x, pos.y);
}
void
elm_widget_can_focus_set(obj, EINA_TRUE);
priv->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj);
+ efl_composite_attach(obj, priv->smanager);
efl_ui_mirrored_set(priv->smanager, efl_ui_mirrored_get(obj));
efl_ui_scrollable_bounce_enabled_set(priv->smanager, bounce, bounce);
pd->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj);
efl_ui_mirrored_set(pd->smanager, efl_ui_mirrored_get(obj));
+ efl_composite_attach(obj, pd->smanager);
pd->pan = efl_add(EFL_UI_PAN_CLASS, obj);
*/
/* Scroll APIs */
-EOLIAN static Eina_Size2D
-_efl_ui_list_efl_ui_scrollable_interactive_content_size_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd)
-{
- return efl_ui_scrollable_content_size_get(pd->smanager);
-}
-
-EOLIAN static Eina_Rect
-_efl_ui_list_efl_ui_scrollable_interactive_viewport_geometry_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd)
-{
- return efl_ui_scrollable_viewport_geometry_get(pd->smanager);
-}
-
-EOLIAN static void
-_efl_ui_list_efl_ui_scrollable_interactive_bounce_enabled_set(Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd,
- Eina_Bool horiz,
- Eina_Bool vert)
-{
- efl_ui_scrollable_bounce_enabled_set(pd->smanager, horiz, vert);
-}
-
-EOLIAN static void
-_efl_ui_list_efl_ui_scrollable_interactive_bounce_enabled_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd,
- Eina_Bool *horiz,
- Eina_Bool *vert)
-{
- efl_ui_scrollable_bounce_enabled_get(pd->smanager, horiz, vert);
-}
-
-EOLIAN static Eina_Bool
-_efl_ui_list_efl_ui_scrollable_interactive_scroll_hold_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd)
-{
- return efl_ui_scrollable_scroll_hold_get(pd->smanager);
-}
-
-EOLIAN static void
-_efl_ui_list_efl_ui_scrollable_interactive_scroll_hold_set(Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd,
- Eina_Bool hold)
-{
- efl_ui_scrollable_scroll_hold_set(pd->smanager, hold);
-}
-
-EOLIAN static Eina_Bool
-_efl_ui_list_efl_ui_scrollable_interactive_scroll_freeze_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd)
-{
- return efl_ui_scrollable_scroll_freeze_get(pd->smanager);
-}
-
-EOLIAN static void
-_efl_ui_list_efl_ui_scrollable_interactive_scroll_freeze_set(Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd,
- Eina_Bool freeze)
-{
- efl_ui_scrollable_scroll_freeze_set(pd->smanager, freeze);
-}
-
EOLIAN static void
_efl_ui_list_efl_ui_scrollable_interactive_match_content_set(Eo *obj EINA_UNUSED,
Efl_Ui_List_Data *pd,
}
EOLIAN static void
-_efl_ui_list_efl_ui_scrollbar_bar_mode_set(Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd,
- Efl_Ui_Scrollbar_Mode hmode,
- Efl_Ui_Scrollbar_Mode vmode)
-{
- efl_ui_scrollbar_bar_mode_set(pd->smanager, hmode, vmode);
-}
-
-EOLIAN static void
-_efl_ui_list_efl_ui_scrollbar_bar_mode_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd,
- Efl_Ui_Scrollbar_Mode *hmode,
- Efl_Ui_Scrollbar_Mode *vmode)
-{
- efl_ui_scrollbar_bar_mode_get(pd->smanager, hmode, vmode);
-}
-
-EOLIAN static void
-_efl_ui_list_efl_ui_scrollable_interactive_scroll(Eo *obj EINA_UNUSED,
- Efl_Ui_List_Data *pd,
- Eina_Rect rc,
- Eina_Bool animation)
-{
- efl_ui_scrollable_scroll(pd->smanager, rc, animation);
-}
-
-EOLIAN static void
_efl_ui_list_efl_ui_multi_selectable_select_mode_set(Eo *obj EINA_UNUSED,
Efl_Ui_List_Data *pd,
Efl_Ui_Select_Mode mode)
//Efl.Pack.pack_align { get; set; }
//Efl.Ui.Scrollable
- Efl.Ui.Scrollable_Interactive.scroll;
- Efl.Ui.Scrollable_Interactive.content_size{ get; }
- Efl.Ui.Scrollable_Interactive.viewport_geometry{ get; }
- Efl.Ui.Scrollable_Interactive.bounce_enabled { set; get; }
- Efl.Ui.Scrollable_Interactive.scroll_freeze { get; set; }
- Efl.Ui.Scrollable_Interactive.scroll_hold { get; set; }
Efl.Ui.Scrollable_Interactive.match_content { set; }
- Efl.Ui.Scrollbar.bar_mode { get; set; }
//Efl.Ui.Multi_Selectable
Efl.Ui.Multi_Selectable.select_mode {get; set;}
#include "efl_ui_list_view_pan.eo.c"
-EOLIAN static void
-_efl_ui_list_view_efl_ui_scrollable_interactive_content_pos_set(Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd, Eina_Position2D pos)
-{
- efl_ui_scrollable_content_pos_set(psd->scrl_mgr, pos);
-}
-
-EOLIAN static Eina_Position2D
-_efl_ui_list_view_efl_ui_scrollable_interactive_content_pos_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd)
-{
- Eina_Position2D pos = efl_ui_scrollable_content_pos_get(psd->scrl_mgr);
- return pos;
-}
-
-EOLIAN static Eina_Size2D
-_efl_ui_list_view_efl_ui_scrollable_interactive_content_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd)
-{
- Eina_Size2D size = efl_ui_scrollable_content_size_get(psd->scrl_mgr);
- return size;
-}
-
-EOLIAN static Eina_Rect
-_efl_ui_list_view_efl_ui_scrollable_interactive_viewport_geometry_get(const Eo *obj EINA_UNUSED, Efl_Ui_List_View_Data *psd)
-{
- Eina_Rect gmt = efl_ui_scrollable_viewport_geometry_get(psd->scrl_mgr);
- return gmt;
-}
-
static Eina_Bool
_efl_model_properties_has(Efl_Model *model, Eina_Stringshare *propfind)
{
pd->scrl_mgr = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj,
efl_ui_mirrored_set(efl_added, efl_ui_mirrored_get(obj)));
+ efl_composite_attach(obj, pd->scrl_mgr);
pd->pan_obj = efl_add(MY_PAN_CLASS, obj);
pan_data = efl_data_scope_get(pd->pan_obj, MY_PAN_CLASS);
pan_data->wobj = obj;
Efl.Ui.Focus.Composition.prepare;
Efl.Ui.View.model { get; set; }
- Efl.Ui.Scrollable_Interactive.viewport_geometry { get; }
- Efl.Ui.Scrollable_Interactive.content_pos { get; set; }
- Efl.Ui.Scrollable_Interactive.content_size { get; }
// Efl.Ui.Scrollable_Interactive.scroll;
Efl.Layout.Signal.signal_callback_add;
Efl.Layout.Signal.signal_callback_del;
sd->smanager = efl_add(EFL_UI_SCROLL_MANAGER_CLASS, obj);
efl_ui_mirrored_set(sd->smanager, efl_ui_mirrored_get(obj));
+ efl_composite_attach(obj, sd->smanager);
sd->pan_obj = efl_add(EFL_UI_PAN_CLASS, obj);
return int_ret;
}
-EOLIAN static Eina_Size2D
-_efl_ui_scroller_efl_ui_scrollable_interactive_content_size_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd)
-{
- return efl_ui_scrollable_content_size_get(sd->smanager);
-}
-
-EOLIAN static Eina_Rect
-_efl_ui_scroller_efl_ui_scrollable_interactive_viewport_geometry_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd)
-{
- return efl_ui_scrollable_viewport_geometry_get(sd->smanager);
-}
-
-EOLIAN static void
-_efl_ui_scroller_efl_ui_scrollable_interactive_bounce_enabled_set(Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd,
- Eina_Bool horiz,
- Eina_Bool vert)
-{
- efl_ui_scrollable_bounce_enabled_set(sd->smanager, horiz, vert);
-}
-
-EOLIAN static void
-_efl_ui_scroller_efl_ui_scrollable_interactive_bounce_enabled_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd,
- Eina_Bool *horiz,
- Eina_Bool *vert)
-{
- efl_ui_scrollable_bounce_enabled_get(sd->smanager, horiz, vert);
-}
-
-EOLIAN static Eina_Bool
-_efl_ui_scroller_efl_ui_scrollable_interactive_scroll_hold_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd)
-{
- return efl_ui_scrollable_scroll_hold_get(sd->smanager);
-}
-
-EOLIAN static void
-_efl_ui_scroller_efl_ui_scrollable_interactive_scroll_hold_set(Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd,
- Eina_Bool hold)
-{
- efl_ui_scrollable_scroll_hold_set(sd->smanager, hold);
-}
-
-EOLIAN static Eina_Bool
-_efl_ui_scroller_efl_ui_scrollable_interactive_scroll_freeze_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd)
-{
- return efl_ui_scrollable_scroll_freeze_get(sd->smanager);
-}
-
-EOLIAN static void
-_efl_ui_scroller_efl_ui_scrollable_interactive_scroll_freeze_set(Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd,
- Eina_Bool freeze)
-{
- efl_ui_scrollable_scroll_freeze_set(sd->smanager, freeze);
-}
-
EOLIAN static void
_efl_ui_scroller_efl_ui_scrollable_interactive_match_content_set(Eo *obj EINA_UNUSED,
Efl_Ui_Scroller_Data *sd,
elm_layout_sizing_eval(obj);
}
-EOLIAN static void
-_efl_ui_scroller_efl_ui_scrollbar_bar_mode_set(Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd,
- Efl_Ui_Scrollbar_Mode hmode,
- Efl_Ui_Scrollbar_Mode vmode)
-{
- efl_ui_scrollbar_bar_mode_set(sd->smanager, hmode, vmode);
-}
-
-EOLIAN static void
-_efl_ui_scroller_efl_ui_scrollbar_bar_mode_get(const Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd,
- Efl_Ui_Scrollbar_Mode *hmode,
- Efl_Ui_Scrollbar_Mode *vmode)
-{
- efl_ui_scrollbar_bar_mode_get(sd->smanager, hmode, vmode);
-}
-
-EOLIAN static void
-_efl_ui_scroller_efl_ui_scrollable_interactive_scroll(Eo *obj EINA_UNUSED,
- Efl_Ui_Scroller_Data *sd,
- Eina_Rect rc,
- Eina_Bool animation)
-{
- efl_ui_scrollable_scroll(sd->smanager, rc, animation);
-}
-
/* Internal EO APIs and hidden overrides */
#define EFL_UI_SCROLLER_EXTRA_OPS \
Efl.Object.destructor;
Efl.Content.content { set; }
Efl.Ui.Widget.theme_apply;
- Efl.Ui.Scrollable_Interactive.content_size{ get; }
- Efl.Ui.Scrollable_Interactive.viewport_geometry{ get; }
- Efl.Ui.Scrollable_Interactive.bounce_enabled { set; get; }
- Efl.Ui.Scrollable_Interactive.scroll_freeze { get; set; }
- Efl.Ui.Scrollable_Interactive.scroll_hold { get; set; }
Efl.Ui.Scrollable_Interactive.match_content { set; }
- Efl.Ui.Scrollbar.bar_mode { get; set; }
- Efl.Ui.Scrollable_Interactive.scroll;
}
}
if (_elm_scrollable_is(obj))
{
- elm_interface_scrollable_content_pos_get(obj, &nx, &ny);
- sr.x -= nx;
- sr.y -= ny;
+ if (elm_widget_is_legacy(obj))
+ {
+ elm_interface_scrollable_content_pos_get(obj, &nx, &ny);
+ sr.x -= nx;
+ sr.y -= ny;
+ }
+ else
+ {
+ Eina_Position2D pos;
+ pos = efl_ui_scrollable_content_pos_get(obj);
+ sr.x -= pos.x;
+ sr.y -= pos.y;
+ }
}
}