forked from enlightenment/efl
widget: Remove scroll_lock from EO
1. Uniformize the API, which is now for internal use: This uses the same enum as scroller "movement_block" instead of 2 separate properties. Less APIs, more consistence. 2. Remove scroll_lock x/y from EO widget. I was told it is not going to exist in the upcoming scrollable interface. 3. Remove scroll hold/freeze getters. scroll hold/freeze push/pop are still there but it remains to be seen how the EO scrollable interface will exploit them. Right now they are full of bugs. Ref T5363
This commit is contained in:
parent
ffa041fe58
commit
6bb9f4fd16
|
@ -2144,10 +2144,7 @@ _elm_scroll_post_event_up(void *data,
|
|||
if (sid->obj)
|
||||
{
|
||||
if (sid->down.dragged)
|
||||
{
|
||||
elm_widget_scroll_lock_x_set(sid->obj, EINA_FALSE);
|
||||
elm_widget_scroll_lock_y_set(sid->obj, EINA_FALSE);
|
||||
}
|
||||
elm_widget_scroll_lock_set(sid->obj, EFL_UI_SCROLL_BLOCK_NONE);
|
||||
}
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
@ -2959,11 +2956,13 @@ _elm_scroll_post_event_move(void *data,
|
|||
Evas *e EINA_UNUSED)
|
||||
{
|
||||
Elm_Scrollable_Smart_Interface_Data *sid = data;
|
||||
Efl_Ui_Scroll_Block block;
|
||||
Eina_Bool horiz, vert;
|
||||
int start = 0;
|
||||
|
||||
if (!sid->down.want_dragged) return EINA_TRUE;
|
||||
|
||||
block = elm_widget_scroll_lock_get(sid->obj);
|
||||
_elm_widget_parents_bounce_get(sid->obj, &horiz, &vert);
|
||||
if (sid->down.hold_parent)
|
||||
{
|
||||
|
@ -2990,7 +2989,8 @@ _elm_scroll_post_event_move(void *data,
|
|||
sid->down.dragged = EINA_TRUE;
|
||||
if (sid->obj)
|
||||
{
|
||||
elm_widget_scroll_lock_x_set(sid->obj, 1);
|
||||
block |= EFL_UI_SCROLL_BLOCK_HORIZONTAL;
|
||||
elm_widget_scroll_lock_set(sid->obj, block);
|
||||
}
|
||||
start = 1;
|
||||
}
|
||||
|
@ -3012,8 +3012,8 @@ _elm_scroll_post_event_move(void *data,
|
|||
sid->down.dragged = EINA_TRUE;
|
||||
if (sid->obj)
|
||||
{
|
||||
elm_widget_scroll_lock_y_set
|
||||
(sid->obj, EINA_TRUE);
|
||||
block |= EFL_UI_SCROLL_BLOCK_VERTICAL;
|
||||
elm_widget_scroll_lock_set(sid->obj, block);
|
||||
}
|
||||
start = 1;
|
||||
}
|
||||
|
|
|
@ -1815,30 +1815,46 @@ EAPI void
|
|||
elm_object_scroll_lock_x_set(Evas_Object *obj,
|
||||
Eina_Bool lock)
|
||||
{
|
||||
Efl_Ui_Scroll_Block block;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(obj);
|
||||
elm_widget_scroll_lock_x_set(obj, lock);
|
||||
block = elm_widget_scroll_lock_get(obj);
|
||||
if (lock) block |= EFL_UI_SCROLL_BLOCK_HORIZONTAL;
|
||||
else block &= ~EFL_UI_SCROLL_BLOCK_HORIZONTAL;
|
||||
elm_widget_scroll_lock_set(obj, block);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
elm_object_scroll_lock_y_set(Evas_Object *obj,
|
||||
Eina_Bool lock)
|
||||
{
|
||||
Efl_Ui_Scroll_Block block;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN(obj);
|
||||
elm_widget_scroll_lock_y_set(obj, lock);
|
||||
block = elm_widget_scroll_lock_get(obj);
|
||||
if (lock) block |= EFL_UI_SCROLL_BLOCK_VERTICAL;
|
||||
else block &= ~EFL_UI_SCROLL_BLOCK_VERTICAL;
|
||||
elm_widget_scroll_lock_set(obj, block);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_object_scroll_lock_x_get(const Evas_Object *obj)
|
||||
{
|
||||
Efl_Ui_Scroll_Block block;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
|
||||
return elm_widget_scroll_lock_x_get(obj);
|
||||
block = elm_widget_scroll_lock_get(obj);
|
||||
return !!(block & EFL_UI_SCROLL_BLOCK_HORIZONTAL);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
elm_object_scroll_lock_y_get(const Evas_Object *obj)
|
||||
{
|
||||
Efl_Ui_Scroll_Block block;
|
||||
|
||||
EINA_SAFETY_ON_NULL_RETURN_VAL(obj, EINA_FALSE);
|
||||
return elm_widget_scroll_lock_y_get(obj);
|
||||
block = elm_widget_scroll_lock_get(obj);
|
||||
return !!(block & EFL_UI_SCROLL_BLOCK_VERTICAL);
|
||||
}
|
||||
|
||||
EAPI void
|
||||
|
|
|
@ -3532,9 +3532,12 @@ _elm_widget_scroll_hold_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
|
|||
if (sd->scroll_hold < 0) sd->scroll_hold = 0;
|
||||
}
|
||||
|
||||
EOLIAN static int
|
||||
_elm_widget_scroll_hold_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
|
||||
EAPI int
|
||||
elm_widget_scroll_hold_get(const Eo *obj)
|
||||
{
|
||||
Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
|
||||
|
||||
if (!sd) return 0;
|
||||
return sd->scroll_hold;
|
||||
}
|
||||
|
||||
|
@ -3586,9 +3589,12 @@ _elm_widget_scroll_freeze_pop(Eo *obj, Elm_Widget_Smart_Data *sd)
|
|||
if (sd->scroll_freeze < 0) sd->scroll_freeze = 0;
|
||||
}
|
||||
|
||||
EOLIAN static int
|
||||
_elm_widget_scroll_freeze_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
|
||||
EAPI int
|
||||
elm_widget_scroll_freeze_get(const Eo *obj)
|
||||
{
|
||||
Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
|
||||
|
||||
if (!sd) return 0;
|
||||
return sd->scroll_freeze;
|
||||
}
|
||||
|
||||
|
@ -3975,34 +3981,38 @@ elm_widget_cursor_del(Eo *obj, Elm_Cursor *cur)
|
|||
sd->cursors = eina_list_remove(sd->cursors, cur);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_widget_scroll_lock_x_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Bool lock)
|
||||
EAPI void
|
||||
elm_widget_scroll_lock_set(Eo *obj, Efl_Ui_Scroll_Block block)
|
||||
{
|
||||
if (sd->scroll_x_locked == lock) return;
|
||||
sd->scroll_x_locked = lock;
|
||||
if (sd->scroll_x_locked) _propagate_x_drag_lock(obj, 1);
|
||||
else _propagate_x_drag_lock(obj, -1);
|
||||
Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
|
||||
Eina_Bool lx, ly;
|
||||
|
||||
if (!sd) return;
|
||||
lx = !!(block & EFL_UI_SCROLL_BLOCK_HORIZONTAL);
|
||||
ly = !!(block & EFL_UI_SCROLL_BLOCK_VERTICAL);
|
||||
if (sd->scroll_x_locked != lx)
|
||||
{
|
||||
sd->scroll_x_locked = lx;
|
||||
_propagate_x_drag_lock(obj, lx ? 1 : -1);
|
||||
}
|
||||
if (sd->scroll_y_locked != ly)
|
||||
{
|
||||
sd->scroll_y_locked = ly;
|
||||
_propagate_y_drag_lock(obj, ly ? 1 : -1);
|
||||
}
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_elm_widget_scroll_lock_y_set(Eo *obj, Elm_Widget_Smart_Data *sd, Eina_Bool lock)
|
||||
EAPI Efl_Ui_Scroll_Block
|
||||
elm_widget_scroll_lock_get(const Eo *obj)
|
||||
{
|
||||
if (sd->scroll_y_locked == lock) return;
|
||||
sd->scroll_y_locked = lock;
|
||||
if (sd->scroll_y_locked) _propagate_y_drag_lock(obj, 1);
|
||||
else _propagate_y_drag_lock(obj, -1);
|
||||
}
|
||||
Elm_Widget_Smart_Data *sd = efl_data_scope_safe_get(obj, MY_CLASS);
|
||||
Efl_Ui_Scroll_Block block = EFL_UI_SCROLL_BLOCK_NONE;
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_widget_scroll_lock_x_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
|
||||
{
|
||||
return sd->scroll_x_locked;
|
||||
}
|
||||
if (!sd) return block;
|
||||
if (sd->scroll_x_locked) block |= EFL_UI_SCROLL_BLOCK_HORIZONTAL;
|
||||
if (sd->scroll_y_locked) block |= EFL_UI_SCROLL_BLOCK_VERTICAL;
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_elm_widget_scroll_lock_y_get(Eo *obj EINA_UNUSED, Elm_Widget_Smart_Data *sd)
|
||||
{
|
||||
return sd->scroll_y_locked;
|
||||
return block;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
|
|
|
@ -413,18 +413,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
|
|||
}
|
||||
|
||||
/* Scroll API. */
|
||||
@property scroll_lock_x {
|
||||
[[Drag lock on X axis]]
|
||||
values {
|
||||
lock: bool; [[$true if drag is locked on X axis, $false otherwise]]
|
||||
}
|
||||
}
|
||||
@property scroll_lock_y {
|
||||
[[Lock the Y axis from being dragged]]
|
||||
values {
|
||||
lock: bool; [[$true if the Y axis is locked, $false otherwise]]
|
||||
}
|
||||
}
|
||||
@property on_show_region_hook {
|
||||
[[Region hook on show property]]
|
||||
set {}
|
||||
|
@ -438,18 +426,6 @@ abstract Elm.Widget (Efl.Canvas.Group, Elm.Interface.Atspi_Accessible,
|
|||
enable: bool; [[$true if item loop is enabled, $false otherwise]]
|
||||
}
|
||||
}
|
||||
@property scroll_freeze {
|
||||
[[Scroll freeze property]]
|
||||
get {
|
||||
return: int; [[FIXME]]
|
||||
}
|
||||
}
|
||||
@property scroll_hold {
|
||||
[[Scroll hold property]]
|
||||
get {
|
||||
return: int; [[FIXME]]
|
||||
}
|
||||
}
|
||||
scroll_hold_push {
|
||||
[[Push scroll hold]]
|
||||
}
|
||||
|
|
|
@ -739,10 +739,8 @@ EAPI void elm_widget_tooltip_add(Evas_Object *obj, Elm_Tooltip *tt);
|
|||
EAPI void elm_widget_tooltip_del(Evas_Object *obj, Elm_Tooltip *tt);
|
||||
EAPI void elm_widget_cursor_add(Evas_Object *obj, Elm_Cursor *cur);
|
||||
EAPI void elm_widget_cursor_del(Evas_Object *obj, Elm_Cursor *cur);
|
||||
EAPI void elm_widget_scroll_lock_x_set(Evas_Object *obj, Eina_Bool lock);
|
||||
EAPI void elm_widget_scroll_lock_y_set(Evas_Object *obj, Eina_Bool lock);
|
||||
EAPI Eina_Bool elm_widget_scroll_lock_x_get(const Evas_Object *obj);
|
||||
EAPI Eina_Bool elm_widget_scroll_lock_y_get(const Evas_Object *obj);
|
||||
EAPI void elm_widget_scroll_lock_set(Evas_Object *obj, Efl_Ui_Scroll_Block block);
|
||||
EAPI Efl_Ui_Scroll_Block elm_widget_scroll_lock_get(const Evas_Object *obj);
|
||||
EAPI int elm_widget_scroll_child_locked_x_get(const Evas_Object *obj);
|
||||
EAPI int elm_widget_scroll_child_locked_y_get(const Evas_Object *obj);
|
||||
EAPI void elm_widget_item_loop_enabled_set(Evas_Object *obj, Eina_Bool enable);
|
||||
|
|
Loading…
Reference in New Issue