forked from enlightenment/efl
efl_ui_scrollable: remove ui_scrollable_interactive and move all into ui_scrollable
Summary: Based on the discussion T7883, there is no reason to keep those interfaces separately. So, now, efl_ui_scrollable will support the events and methods together. @ref T7883 Reviewers: eagleeye, bu5hm4n, zmike, segfaultxavi Reviewed By: segfaultxavi Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7883 Differential Revision: https://phab.enlightenment.org/D10072
This commit is contained in:
parent
fe8715e9f6
commit
f7e183b851
|
@ -106,7 +106,6 @@ typedef Efl_Gfx_Path_Command_Type Efl_Gfx_Path_Command;
|
||||||
#include "interfaces/efl_ui_draggable.eo.h"
|
#include "interfaces/efl_ui_draggable.eo.h"
|
||||||
#include "interfaces/efl_ui_scrollable.eo.h"
|
#include "interfaces/efl_ui_scrollable.eo.h"
|
||||||
#include "interfaces/efl_ui_scrollbar.eo.h"
|
#include "interfaces/efl_ui_scrollbar.eo.h"
|
||||||
#include "interfaces/efl_ui_scrollable_interactive.eo.h"
|
|
||||||
#include "interfaces/efl_ui_text_selectable.eo.h"
|
#include "interfaces/efl_ui_text_selectable.eo.h"
|
||||||
#include "interfaces/efl_ui_container_selectable.eo.h"
|
#include "interfaces/efl_ui_container_selectable.eo.h"
|
||||||
#include "interfaces/efl_ui_zoom.eo.h"
|
#include "interfaces/efl_ui_zoom.eo.h"
|
||||||
|
|
|
@ -74,7 +74,6 @@
|
||||||
|
|
||||||
#include "interfaces/efl_ui_draggable.eo.c"
|
#include "interfaces/efl_ui_draggable.eo.c"
|
||||||
#include "interfaces/efl_ui_scrollable.eo.c"
|
#include "interfaces/efl_ui_scrollable.eo.c"
|
||||||
#include "interfaces/efl_ui_scrollable_interactive.eo.c"
|
|
||||||
#include "interfaces/efl_ui_scrollbar.eo.c"
|
#include "interfaces/efl_ui_scrollbar.eo.c"
|
||||||
#include "interfaces/efl_ui_container_selectable.eo.c"
|
#include "interfaces/efl_ui_container_selectable.eo.c"
|
||||||
#include "interfaces/efl_ui_text_selectable.eo.c"
|
#include "interfaces/efl_ui_text_selectable.eo.c"
|
||||||
|
|
|
@ -1,7 +1,172 @@
|
||||||
|
import eina_types;
|
||||||
|
import efl_ui_layout_orientable;
|
||||||
|
|
||||||
interface @beta Efl.Ui.Scrollable
|
interface @beta Efl.Ui.Scrollable
|
||||||
{
|
{
|
||||||
[[Efl UI scrollable interface]]
|
[[Efl UI scrollable interface]]
|
||||||
event_prefix: efl_ui;
|
event_prefix: efl_ui;
|
||||||
|
methods {
|
||||||
|
@property content_pos {
|
||||||
|
[[The content position]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
pos: Eina.Position2D; [[The position is virtual value, (0, 0) starting at the top-left.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property content_size {
|
||||||
|
[[The content size]]
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
size: Eina.Size2D; [[The content size in pixels.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property viewport_geometry {
|
||||||
|
[[The viewport geometry]]
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
rect: Eina.Rect; [[It is absolute geometry.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property bounce_enabled {
|
||||||
|
[[Bouncing behavior
|
||||||
|
|
||||||
|
When scrolling, the scroller may "bounce" when reaching the edge of the
|
||||||
|
content object. This is a visual way to indicate the end has been reached.
|
||||||
|
This is enabled by default for both axes. This API will determine if it's enabled
|
||||||
|
for the given axis with the boolean parameters for each one.]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
horiz: bool; [[Horizontal bounce policy.]]
|
||||||
|
vert: bool; [[Vertical bounce policy.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property scroll_freeze {
|
||||||
|
[[Freeze property
|
||||||
|
This function will freeze scrolling movement (by input of a user).
|
||||||
|
Unlike @.movement_block, this function freezes bidirectionally.
|
||||||
|
If you want to freeze in only one direction,
|
||||||
|
see @.movement_block.set.
|
||||||
|
]]
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
freeze: bool; [[$true if freeze, $false otherwise]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property scroll_hold {
|
||||||
|
[[Hold property
|
||||||
|
When hold turns on, it only scrolls by holding action.
|
||||||
|
]]
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
hold: bool; [[$true if hold, $false otherwise]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property looping {
|
||||||
|
[[Controls an infinite loop for a scroller.]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
loop_h: bool; [[The scrolling horizontal loop]]
|
||||||
|
loop_v: bool; [[The Scrolling vertical loop]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property movement_block {
|
||||||
|
[[Blocking of scrolling (per axis).
|
||||||
|
|
||||||
|
This function will block scrolling movement (by input of a user) in
|
||||||
|
a given direction. You can disable movements in the X axis, the Y
|
||||||
|
axis or both.
|
||||||
|
The default value is @Efl.Ui.Layout_Orientation.default meaning that movements are
|
||||||
|
allowed in both directions.
|
||||||
|
]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
block: Efl.Ui.Layout_Orientation(Efl.Ui.Layout_Orientation.default); [[Which axis (or axes) to block]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property gravity {
|
||||||
|
[[Control scrolling gravity on the scrollable
|
||||||
|
|
||||||
|
The gravity defines how the scroller will adjust its view
|
||||||
|
when the size of the scroller contents increases.
|
||||||
|
|
||||||
|
The scroller will adjust the view to glue itself as follows:
|
||||||
|
$[x=0.0] to stay where it is relative to the left edge of the content.
|
||||||
|
$[x=1.0] to stay where it is relative to the right edge of the content.
|
||||||
|
$[y=0.0] to stay where it is relative to the top edge of the content.
|
||||||
|
$[y=1.0] to stay where it is relative to the bottom edge of the content.
|
||||||
|
]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
x: double(0.0); [[Horizontal scrolling gravity.]]
|
||||||
|
y: double(0.0); [[Vertical scrolling gravity.]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property match_content {
|
||||||
|
[[Prevent the scrollable from being smaller than the minimum size of the content.
|
||||||
|
|
||||||
|
By default the scroller will be as small as its design allows,
|
||||||
|
irrespective of its content. This will make the scroller minimum size the
|
||||||
|
right size horizontally and/or vertically to perfectly fit its content in
|
||||||
|
that direction.]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
w: bool; [[Whether to limit the minimum horizontal size]]
|
||||||
|
h: bool; [[Whether to limit the minimum vertical size]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@property step_size {
|
||||||
|
[[Control the step size
|
||||||
|
|
||||||
|
Use this call to set step size.
|
||||||
|
This value is used when scroller scroll by arrow key event.]]
|
||||||
|
set {
|
||||||
|
}
|
||||||
|
get {
|
||||||
|
}
|
||||||
|
values {
|
||||||
|
step: Eina.Position2D; [[The step size in pixels]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
scroll {
|
||||||
|
[[Show a specific virtual region within the scroller content object.
|
||||||
|
|
||||||
|
This will ensure all (or part if it does not fit) of the designated
|
||||||
|
region in the virtual content object (0, 0 starting at the top-left of the
|
||||||
|
virtual content object) is shown within the scroller. This allows the scroller to "smoothly slide"
|
||||||
|
to this location (if configuration in general calls for transitions). It
|
||||||
|
may not jump immediately to the new location and make take a while and
|
||||||
|
show other content along the way.
|
||||||
|
]]
|
||||||
|
params {
|
||||||
|
@in rect: Eina.Rect; [[The position where to scroll. and The size user want to see]]
|
||||||
|
@in animation: bool; [[Whether to scroll with animation or not]]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
events {
|
events {
|
||||||
scroll,started: void; [[Called when scroll operation starts]]
|
scroll,started: void; [[Called when scroll operation starts]]
|
||||||
scroll,changed: void; [[Called when scrolling]]
|
scroll,changed: void; [[Called when scrolling]]
|
||||||
|
|
|
@ -1,169 +0,0 @@
|
||||||
import eina_types;
|
|
||||||
import efl_ui_layout_orientable;
|
|
||||||
|
|
||||||
interface @beta Efl.Ui.Scrollable_Interactive extends Efl.Ui.Scrollable
|
|
||||||
{
|
|
||||||
c_prefix: efl_ui_scrollable;
|
|
||||||
methods {
|
|
||||||
@property content_pos {
|
|
||||||
[[The content position]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
pos: Eina.Position2D; [[The position is virtual value, (0, 0) starting at the top-left.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property content_size {
|
|
||||||
[[The content size]]
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
size: Eina.Size2D; [[The content size in pixels.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property viewport_geometry {
|
|
||||||
[[The viewport geometry]]
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
rect: Eina.Rect; [[It is absolute geometry.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property bounce_enabled {
|
|
||||||
[[Bouncing behavior
|
|
||||||
|
|
||||||
When scrolling, the scroller may "bounce" when reaching the edge of the
|
|
||||||
content object. This is a visual way to indicate the end has been reached.
|
|
||||||
This is enabled by default for both axes. This API will determine if it's enabled
|
|
||||||
for the given axis with the boolean parameters for each one.]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
horiz: bool; [[Horizontal bounce policy.]]
|
|
||||||
vert: bool; [[Vertical bounce policy.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property scroll_freeze {
|
|
||||||
[[Freeze property
|
|
||||||
This function will freeze scrolling movement (by input of a user).
|
|
||||||
Unlike @.movement_block, this function freezes bidirectionally.
|
|
||||||
If you want to freeze in only one direction,
|
|
||||||
see @.movement_block.set.
|
|
||||||
]]
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
freeze: bool; [[$true if freeze, $false otherwise]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property scroll_hold {
|
|
||||||
[[Hold property
|
|
||||||
When hold turns on, it only scrolls by holding action.
|
|
||||||
]]
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
hold: bool; [[$true if hold, $false otherwise]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property looping {
|
|
||||||
[[Controls an infinite loop for a scroller.]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
loop_h: bool; [[The scrolling horizontal loop]]
|
|
||||||
loop_v: bool; [[The Scrolling vertical loop]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property movement_block {
|
|
||||||
[[Blocking of scrolling (per axis).
|
|
||||||
|
|
||||||
This function will block scrolling movement (by input of a user) in
|
|
||||||
a given direction. You can disable movements in the X axis, the Y
|
|
||||||
axis or both.
|
|
||||||
The default value is @Efl.Ui.Layout_Orientation.default meaning that movements are
|
|
||||||
allowed in both directions.
|
|
||||||
]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
block: Efl.Ui.Layout_Orientation(Efl.Ui.Layout_Orientation.default); [[Which axis (or axes) to block]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property gravity {
|
|
||||||
[[Control scrolling gravity on the scrollable
|
|
||||||
|
|
||||||
The gravity defines how the scroller will adjust its view
|
|
||||||
when the size of the scroller contents increases.
|
|
||||||
|
|
||||||
The scroller will adjust the view to glue itself as follows:
|
|
||||||
$[x=0.0] to stay where it is relative to the left edge of the content.
|
|
||||||
$[x=1.0] to stay where it is relative to the right edge of the content.
|
|
||||||
$[y=0.0] to stay where it is relative to the top edge of the content.
|
|
||||||
$[y=1.0] to stay where it is relative to the bottom edge of the content.
|
|
||||||
]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
x: double(0.0); [[Horizontal scrolling gravity.]]
|
|
||||||
y: double(0.0); [[Vertical scrolling gravity.]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property match_content {
|
|
||||||
[[Prevent the scrollable from being smaller than the minimum size of the content.
|
|
||||||
|
|
||||||
By default the scroller will be as small as its design allows,
|
|
||||||
irrespective of its content. This will make the scroller minimum size the
|
|
||||||
right size horizontally and/or vertically to perfectly fit its content in
|
|
||||||
that direction.]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
w: bool; [[Whether to limit the minimum horizontal size]]
|
|
||||||
h: bool; [[Whether to limit the minimum vertical size]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@property step_size {
|
|
||||||
[[Control the step size
|
|
||||||
|
|
||||||
Use this call to set step size.
|
|
||||||
This value is used when scroller scroll by arrow key event.]]
|
|
||||||
set {
|
|
||||||
}
|
|
||||||
get {
|
|
||||||
}
|
|
||||||
values {
|
|
||||||
step: Eina.Position2D; [[The step size in pixels]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
scroll {
|
|
||||||
[[Show a specific virtual region within the scroller content object.
|
|
||||||
|
|
||||||
This will ensure all (or part if it does not fit) of the designated
|
|
||||||
region in the virtual content object (0, 0 starting at the top-left of the
|
|
||||||
virtual content object) is shown within the scroller. This allows the scroller to "smoothly slide"
|
|
||||||
to this location (if configuration in general calls for transitions). It
|
|
||||||
may not jump immediately to the new location and make take a while and
|
|
||||||
show other content along the way.
|
|
||||||
]]
|
|
||||||
params {
|
|
||||||
@in rect: Eina.Rect; [[The position where to scroll. and The size user want to see]]
|
|
||||||
@in animation: bool; [[Whether to scroll with animation or not]]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -9,7 +9,6 @@ pub_legacy_eo_files = [
|
||||||
'efl_input_device.eo',
|
'efl_input_device.eo',
|
||||||
'efl_ui_draggable.eo',
|
'efl_ui_draggable.eo',
|
||||||
'efl_ui_scrollable.eo',
|
'efl_ui_scrollable.eo',
|
||||||
'efl_ui_scrollable_interactive.eo',
|
|
||||||
'efl_ui_scrollbar.eo',
|
'efl_ui_scrollbar.eo',
|
||||||
'efl_ui_container_selectable.eo',
|
'efl_ui_container_selectable.eo',
|
||||||
'efl_ui_text_selectable.eo',
|
'efl_ui_text_selectable.eo',
|
||||||
|
|
|
@ -470,7 +470,7 @@ _efl_ui_collection_efl_ui_layout_orientable_orientation_get(const Eo *obj EINA_U
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_collection_efl_ui_scrollable_interactive_match_content_set(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, Eina_Bool w, Eina_Bool h)
|
_efl_ui_collection_efl_ui_scrollable_match_content_set(Eo *obj EINA_UNUSED, Efl_Ui_Collection_Data *pd, Eina_Bool w, Eina_Bool h)
|
||||||
{
|
{
|
||||||
if (pd->match_content.w == w && pd->match_content.h == h)
|
if (pd->match_content.w == w && pd->match_content.h == h)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -5,7 +5,7 @@ class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements
|
||||||
Efl.Ui.Focus.Manager_Sub,
|
Efl.Ui.Focus.Manager_Sub,
|
||||||
Efl.Ui.Widget_Focus_Manager
|
Efl.Ui.Widget_Focus_Manager
|
||||||
composites
|
composites
|
||||||
Efl.Ui.Scrollable_Interactive,
|
Efl.Ui.Scrollable,
|
||||||
Efl.Ui.Scrollbar,
|
Efl.Ui.Scrollbar,
|
||||||
Efl.Ui.Focus.Manager
|
Efl.Ui.Focus.Manager
|
||||||
{
|
{
|
||||||
|
@ -77,7 +77,7 @@ class @beta Efl.Ui.Collection extends Efl.Ui.Layout_Base implements
|
||||||
Efl.Pack_Linear.pack_unpack_at;
|
Efl.Pack_Linear.pack_unpack_at;
|
||||||
Efl.Pack_Linear.pack_index_get;
|
Efl.Pack_Linear.pack_index_get;
|
||||||
Efl.Pack_Linear.pack_content_get;
|
Efl.Pack_Linear.pack_content_get;
|
||||||
Efl.Ui.Scrollable_Interactive.match_content { set; }
|
Efl.Ui.Scrollable.match_content { set; }
|
||||||
Efl.Ui.Widget_Focus_Manager.focus_manager_create;
|
Efl.Ui.Widget_Focus_Manager.focus_manager_create;
|
||||||
Efl.Ui.Widget.focus_state_apply;
|
Efl.Ui.Widget.focus_state_apply;
|
||||||
Efl.Ui.Focus.Manager.move;
|
Efl.Ui.Focus.Manager.move;
|
||||||
|
|
|
@ -2703,7 +2703,7 @@ _efl_ui_image_zoomable_image_region_set(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd,
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_image_zoomable_efl_ui_scrollable_interactive_scroll(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd, Eina_Rect rc, Eina_Bool animation)
|
_efl_ui_image_zoomable_efl_ui_scrollable_scroll(Eo *obj, Efl_Ui_Image_Zoomable_Data *sd, Eina_Rect rc, Eina_Bool animation)
|
||||||
{
|
{
|
||||||
int rx, ry, rw, rh;
|
int rx, ry, rw, rh;
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ struct @extern Elm.Photocam.Error; [[Photocam error information.]]
|
||||||
struct @extern Elm.Photocam.Progress; [[Photocam progress information.]]
|
struct @extern Elm.Photocam.Progress; [[Photocam progress information.]]
|
||||||
|
|
||||||
class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom
|
class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom
|
||||||
composites Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar
|
composites Efl.Ui.Scrollable, Efl.Ui.Scrollbar
|
||||||
{
|
{
|
||||||
[[Elementary Image Zoomable class]]
|
[[Elementary Image Zoomable class]]
|
||||||
methods {
|
methods {
|
||||||
|
@ -52,7 +52,7 @@ class @beta Efl.Ui.Image_Zoomable extends Efl.Ui.Image implements Efl.Ui.Zoom
|
||||||
Efl.Ui.Widget.theme_apply;
|
Efl.Ui.Widget.theme_apply;
|
||||||
Efl.Ui.Focus.Object.on_focus_update;
|
Efl.Ui.Focus.Object.on_focus_update;
|
||||||
Efl.Ui.Widget.widget_input_event_handler;
|
Efl.Ui.Widget.widget_input_event_handler;
|
||||||
Efl.Ui.Scrollable_Interactive.scroll;
|
Efl.Ui.Scrollable.scroll;
|
||||||
Efl.Access.Widget.Action.elm_actions { get; }
|
Efl.Access.Widget.Action.elm_actions { get; }
|
||||||
Efl.File.load;
|
Efl.File.load;
|
||||||
Efl.File.unload;
|
Efl.File.unload;
|
||||||
|
|
|
@ -13,7 +13,7 @@ class @beta Efl.Ui.List_View extends Efl.Ui.Layout_Base implements
|
||||||
Efl.Ui.Container_Selectable, Efl.Ui.List_View_Model,
|
Efl.Ui.Container_Selectable, Efl.Ui.List_View_Model,
|
||||||
Efl.Ui.Widget_Focus_Manager
|
Efl.Ui.Widget_Focus_Manager
|
||||||
composites
|
composites
|
||||||
Efl.Ui.Scrollable_Interactive, Efl.Ui.Scrollbar
|
Efl.Ui.Scrollable, Efl.Ui.Scrollbar
|
||||||
{
|
{
|
||||||
methods {
|
methods {
|
||||||
@property homogeneous {
|
@property homogeneous {
|
||||||
|
|
|
@ -18,7 +18,7 @@ struct @beta Efl.Ui.Panel_Scroll_Info
|
||||||
class @beta Efl.Ui.Panel extends Efl.Ui.Layout_Base
|
class @beta Efl.Ui.Panel extends Efl.Ui.Layout_Base
|
||||||
implements Efl.Ui.Focus.Layer, Efl.Content,
|
implements Efl.Ui.Focus.Layer, Efl.Content,
|
||||||
Efl.Access.Widget.Action
|
Efl.Access.Widget.Action
|
||||||
composites Efl.Ui.Scrollable_Interactive
|
composites Efl.Ui.Scrollable
|
||||||
{
|
{
|
||||||
[[Elementary panel class]]
|
[[Elementary panel class]]
|
||||||
methods {
|
methods {
|
||||||
|
|
|
@ -253,13 +253,13 @@ _efl_ui_scroll_manager_edge_right(Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Size2D
|
EOLIAN static Eina_Size2D
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_content_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
_efl_ui_scroll_manager_efl_ui_scrollable_content_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
{
|
{
|
||||||
return efl_ui_pan_content_size_get(sd->pan_obj);
|
return efl_ui_pan_content_size_get(sd->pan_obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Rect
|
EOLIAN static Eina_Rect
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_viewport_geometry_get(const Eo *obj EINA_UNUSED,
|
_efl_ui_scroll_manager_efl_ui_scrollable_viewport_geometry_get(const Eo *obj EINA_UNUSED,
|
||||||
Efl_Ui_Scroll_Manager_Data *sd)
|
Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
{
|
{
|
||||||
if (!sd->pan_obj) return EINA_RECT(0, 0, 0, 0);
|
if (!sd->pan_obj) return EINA_RECT(0, 0, 0, 0);
|
||||||
|
@ -268,21 +268,21 @@ _efl_ui_scroll_manager_efl_ui_scrollable_interactive_viewport_geometry_get(const
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_match_content_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool w, Eina_Bool h)
|
_efl_ui_scroll_manager_efl_ui_scrollable_match_content_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool w, Eina_Bool h)
|
||||||
{
|
{
|
||||||
sd->match_content_w = !!w;
|
sd->match_content_w = !!w;
|
||||||
sd->match_content_h = !!h;
|
sd->match_content_h = !!h;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_step_size_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Position2D step)
|
_efl_ui_scroll_manager_efl_ui_scrollable_step_size_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Position2D step)
|
||||||
{
|
{
|
||||||
sd->step.x = step.x * elm_config_scale_get();
|
sd->step.x = step.x * elm_config_scale_get();
|
||||||
sd->step.y = step.y * elm_config_scale_get();
|
sd->step.y = step.y * elm_config_scale_get();
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Position2D
|
EOLIAN static Eina_Position2D
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_step_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
_efl_ui_scroll_manager_efl_ui_scrollable_step_size_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
{
|
{
|
||||||
return EINA_POSITION2D(sd->step.x, sd->step.y);
|
return EINA_POSITION2D(sd->step.x, sd->step.y);
|
||||||
}
|
}
|
||||||
|
@ -408,7 +408,7 @@ _efl_ui_scroll_manager_bounce_eval(Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Position2D
|
EOLIAN static Eina_Position2D
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_content_pos_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
_efl_ui_scroll_manager_efl_ui_scrollable_content_pos_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
{
|
{
|
||||||
if (!sd->pan_obj) return EINA_POSITION2D(0, 0);
|
if (!sd->pan_obj) return EINA_POSITION2D(0, 0);
|
||||||
|
|
||||||
|
@ -416,7 +416,7 @@ _efl_ui_scroll_manager_efl_ui_scrollable_interactive_content_pos_get(const Eo *o
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_content_pos_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Position2D pos)
|
_efl_ui_scroll_manager_efl_ui_scrollable_content_pos_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Position2D pos)
|
||||||
{
|
{
|
||||||
Evas_Coord x = pos.x, y = pos.y;
|
Evas_Coord x = pos.x, y = pos.y;
|
||||||
Eina_Position2D min = {0, 0}, max = {0, 0}, cur = {0, 0};
|
Eina_Position2D min = {0, 0}, max = {0, 0}, cur = {0, 0};
|
||||||
|
@ -2309,25 +2309,25 @@ _efl_ui_scroll_manager_pan_set(Eo *obj, Efl_Ui_Scroll_Manager_Data *sd, Eo *pan)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_scroll_hold_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
_efl_ui_scroll_manager_efl_ui_scrollable_scroll_hold_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
{
|
{
|
||||||
return sd->hold;
|
return sd->hold;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_scroll_hold_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool hold)
|
_efl_ui_scroll_manager_efl_ui_scrollable_scroll_hold_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool hold)
|
||||||
{
|
{
|
||||||
sd->hold = hold;
|
sd->hold = hold;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Eina_Bool
|
EOLIAN static Eina_Bool
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_scroll_freeze_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
_efl_ui_scroll_manager_efl_ui_scrollable_scroll_freeze_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
{
|
{
|
||||||
return sd->freeze;
|
return sd->freeze;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_scroll_freeze_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool freeze)
|
_efl_ui_scroll_manager_efl_ui_scrollable_scroll_freeze_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool freeze)
|
||||||
{
|
{
|
||||||
sd->freeze = freeze;
|
sd->freeze = freeze;
|
||||||
if (sd->freeze)
|
if (sd->freeze)
|
||||||
|
@ -2339,21 +2339,21 @@ _efl_ui_scroll_manager_efl_ui_scrollable_interactive_scroll_freeze_set(Eo *obj E
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_bounce_enabled_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool horiz, Eina_Bool vert)
|
_efl_ui_scroll_manager_efl_ui_scrollable_bounce_enabled_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool horiz, Eina_Bool vert)
|
||||||
{
|
{
|
||||||
sd->bounce_horiz = !!horiz;
|
sd->bounce_horiz = !!horiz;
|
||||||
sd->bounce_vert = !!vert;
|
sd->bounce_vert = !!vert;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_bounce_enabled_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool *horiz, Eina_Bool *vert)
|
_efl_ui_scroll_manager_efl_ui_scrollable_bounce_enabled_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool *horiz, Eina_Bool *vert)
|
||||||
{
|
{
|
||||||
if (horiz) *horiz = sd->bounce_horiz;
|
if (horiz) *horiz = sd->bounce_horiz;
|
||||||
if (vert) *vert = sd->bounce_vert;
|
if (vert) *vert = sd->bounce_vert;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_scroll(Eo *obj, Efl_Ui_Scroll_Manager_Data *sd, Eina_Rect rect, Eina_Bool animation)
|
_efl_ui_scroll_manager_efl_ui_scrollable_scroll(Eo *obj, Efl_Ui_Scroll_Manager_Data *sd, Eina_Rect rect, Eina_Bool animation)
|
||||||
{
|
{
|
||||||
_scroll_manager_animators_drop(obj);
|
_scroll_manager_animators_drop(obj);
|
||||||
if (animation)
|
if (animation)
|
||||||
|
@ -2381,7 +2381,7 @@ _efl_ui_scroll_manager_efl_ui_scrollable_interactive_scroll(Eo *obj, Efl_Ui_Scro
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_gravity_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, double x, double y)
|
_efl_ui_scroll_manager_efl_ui_scrollable_gravity_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, double x, double y)
|
||||||
{
|
{
|
||||||
sd->gravity_x = x;
|
sd->gravity_x = x;
|
||||||
sd->gravity_y = y;
|
sd->gravity_y = y;
|
||||||
|
@ -2391,26 +2391,26 @@ _efl_ui_scroll_manager_efl_ui_scrollable_interactive_gravity_set(Eo *obj EINA_UN
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_gravity_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, double *x, double *y)
|
_efl_ui_scroll_manager_efl_ui_scrollable_gravity_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, double *x, double *y)
|
||||||
{
|
{
|
||||||
if (x) *x = sd->gravity_x;
|
if (x) *x = sd->gravity_x;
|
||||||
if (y) *y = sd->gravity_y;
|
if (y) *y = sd->gravity_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_movement_block_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Efl_Ui_Layout_Orientation block)
|
_efl_ui_scroll_manager_efl_ui_scrollable_movement_block_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Efl_Ui_Layout_Orientation block)
|
||||||
{
|
{
|
||||||
sd->block = block;
|
sd->block = block;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static Efl_Ui_Layout_Orientation
|
EOLIAN static Efl_Ui_Layout_Orientation
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_movement_block_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
_efl_ui_scroll_manager_efl_ui_scrollable_movement_block_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd)
|
||||||
{
|
{
|
||||||
return sd->block;
|
return sd->block;
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_looping_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool loop_h, Eina_Bool loop_v)
|
_efl_ui_scroll_manager_efl_ui_scrollable_looping_set(Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool loop_h, Eina_Bool loop_v)
|
||||||
{
|
{
|
||||||
if (sd->loop_h == loop_h && sd->loop_v == loop_v) return;
|
if (sd->loop_h == loop_h && sd->loop_v == loop_v) return;
|
||||||
|
|
||||||
|
@ -2419,7 +2419,7 @@ _efl_ui_scroll_manager_efl_ui_scrollable_interactive_looping_set(Eo *obj EINA_UN
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroll_manager_efl_ui_scrollable_interactive_looping_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool *loop_h, Eina_Bool *loop_v)
|
_efl_ui_scroll_manager_efl_ui_scrollable_looping_get(const Eo *obj EINA_UNUSED, Efl_Ui_Scroll_Manager_Data *sd, Eina_Bool *loop_h, Eina_Bool *loop_v)
|
||||||
{
|
{
|
||||||
*loop_h = sd->loop_h;
|
*loop_h = sd->loop_h;
|
||||||
*loop_v = sd->loop_v;
|
*loop_v = sd->loop_v;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
class @beta Efl.Ui.Scroll.Manager extends Efl.Object implements
|
class @beta Efl.Ui.Scroll.Manager extends Efl.Object implements
|
||||||
Efl.Ui.I18n,
|
Efl.Ui.I18n,
|
||||||
Efl.Ui.Scrollable_Interactive,
|
Efl.Ui.Scrollable,
|
||||||
Efl.Ui.Scrollbar
|
Efl.Ui.Scrollbar
|
||||||
{
|
{
|
||||||
[[Efl ui scroll manager class]]
|
[[Efl ui scroll manager class]]
|
||||||
|
@ -25,21 +25,21 @@ class @beta Efl.Ui.Scroll.Manager extends Efl.Object implements
|
||||||
Efl.Object.constructor;
|
Efl.Object.constructor;
|
||||||
Efl.Object.destructor;
|
Efl.Object.destructor;
|
||||||
Efl.Ui.I18n.mirrored { set; }
|
Efl.Ui.I18n.mirrored { set; }
|
||||||
Efl.Ui.Scrollable_Interactive.content_pos { set; get; }
|
Efl.Ui.Scrollable.content_pos { set; get; }
|
||||||
Efl.Ui.Scrollable_Interactive.content_size{ get; }
|
Efl.Ui.Scrollable.content_size{ get; }
|
||||||
Efl.Ui.Scrollable_Interactive.viewport_geometry{ get; }
|
Efl.Ui.Scrollable.viewport_geometry{ get; }
|
||||||
Efl.Ui.Scrollable_Interactive.bounce_enabled { set; get; }
|
Efl.Ui.Scrollable.bounce_enabled { set; get; }
|
||||||
Efl.Ui.Scrollable_Interactive.scroll_freeze { get; set; }
|
Efl.Ui.Scrollable.scroll_freeze { get; set; }
|
||||||
Efl.Ui.Scrollable_Interactive.scroll_hold { get; set; }
|
Efl.Ui.Scrollable.scroll_hold { get; set; }
|
||||||
Efl.Ui.Scrollable_Interactive.looping { get; set; }
|
Efl.Ui.Scrollable.looping { get; set; }
|
||||||
Efl.Ui.Scrollable_Interactive.movement_block { get; set; }
|
Efl.Ui.Scrollable.movement_block { get; set; }
|
||||||
Efl.Ui.Scrollable_Interactive.gravity { get; set; }
|
Efl.Ui.Scrollable.gravity { get; set; }
|
||||||
Efl.Ui.Scrollable_Interactive.match_content { set; }
|
Efl.Ui.Scrollable.match_content { set; }
|
||||||
Efl.Ui.Scrollable_Interactive.step_size { set; get; }
|
Efl.Ui.Scrollable.step_size { set; get; }
|
||||||
Efl.Ui.Scrollbar.bar_mode { get; set; }
|
Efl.Ui.Scrollbar.bar_mode { get; set; }
|
||||||
Efl.Ui.Scrollbar.bar_size { get; }
|
Efl.Ui.Scrollbar.bar_size { get; }
|
||||||
Efl.Ui.Scrollbar.bar_position { get; set; }
|
Efl.Ui.Scrollbar.bar_position { get; set; }
|
||||||
Efl.Ui.Scrollbar.bar_visibility_update;
|
Efl.Ui.Scrollbar.bar_visibility_update;
|
||||||
Efl.Ui.Scrollable_Interactive.scroll;
|
Efl.Ui.Scrollable.scroll;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -361,7 +361,7 @@ _efl_ui_scroller_efl_ui_widget_theme_apply(Eo *obj, Efl_Ui_Scroller_Data *sd)
|
||||||
}
|
}
|
||||||
|
|
||||||
EOLIAN static void
|
EOLIAN static void
|
||||||
_efl_ui_scroller_efl_ui_scrollable_interactive_match_content_set(Eo *obj EINA_UNUSED,
|
_efl_ui_scroller_efl_ui_scrollable_match_content_set(Eo *obj EINA_UNUSED,
|
||||||
Efl_Ui_Scroller_Data *sd,
|
Efl_Ui_Scroller_Data *sd,
|
||||||
Eina_Bool match_content_w,
|
Eina_Bool match_content_w,
|
||||||
Eina_Bool match_content_h)
|
Eina_Bool match_content_h)
|
||||||
|
|
|
@ -3,7 +3,7 @@ class @beta Efl.Ui.Scroller extends Efl.Ui.Layout_Base implements
|
||||||
Efl.Ui.Widget_Focus_Manager,
|
Efl.Ui.Widget_Focus_Manager,
|
||||||
Efl.Content
|
Efl.Content
|
||||||
composites
|
composites
|
||||||
Efl.Ui.Scrollable_Interactive,
|
Efl.Ui.Scrollable,
|
||||||
Efl.Ui.Scrollbar
|
Efl.Ui.Scrollbar
|
||||||
{
|
{
|
||||||
[[Efl ui scroller class]]
|
[[Efl ui scroller class]]
|
||||||
|
@ -18,6 +18,6 @@ class @beta Efl.Ui.Scroller extends Efl.Ui.Layout_Base implements
|
||||||
Efl.Ui.Widget.focus_state_apply;
|
Efl.Ui.Widget.focus_state_apply;
|
||||||
Efl.Ui.Widget.widget_input_event_handler;
|
Efl.Ui.Widget.widget_input_event_handler;
|
||||||
Efl.Ui.Widget_Focus_Manager.focus_manager_create;
|
Efl.Ui.Widget_Focus_Manager.focus_manager_create;
|
||||||
Efl.Ui.Scrollable_Interactive.match_content { set; }
|
Efl.Ui.Scrollable.match_content { set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -182,7 +182,7 @@ _elm_scrollable_is(const Evas_Object *obj)
|
||||||
efl_isa(obj, ELM_INTERFACE_SCROLLABLE_MIXIN);
|
efl_isa(obj, ELM_INTERFACE_SCROLLABLE_MIXIN);
|
||||||
else
|
else
|
||||||
return
|
return
|
||||||
efl_isa(obj, EFL_UI_SCROLLABLE_INTERACTIVE_INTERFACE);
|
efl_isa(obj, EFL_UI_SCROLLABLE_INTERFACE);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -28,7 +28,7 @@ enum Elm.Scroller.Single_Direction
|
||||||
last [[Internal. Sentinel value to indicate last enum field during iteration.]]
|
last [[Internal. Sentinel value to indicate last enum field during iteration.]]
|
||||||
}
|
}
|
||||||
|
|
||||||
mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Scrollable, Efl.Ui.Focus.Manager_Sub, Efl.Ui.Widget_Focus_Manager
|
mixin @beta Elm.Interface_Scrollable requires Efl.Ui.Widget extends Efl.Ui.Focus.Manager_Sub, Efl.Ui.Widget_Focus_Manager
|
||||||
{
|
{
|
||||||
[[Elm scrollable mixin]]
|
[[Elm scrollable mixin]]
|
||||||
c_prefix: elm_interface_scrollable;
|
c_prefix: elm_interface_scrollable;
|
||||||
|
|
Loading…
Reference in New Issue