summaryrefslogtreecommitdiff
path: root/doc/elementary/scroller.rst
blob: b7fdafb7391d97d9d959a36cb26dc0cfe57bcbcc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
.. currentmodule:: efl.elementary

Scroller
########

.. image:: /images/scroller-preview.png


Widget description
==================

A scroller holds a single object and "scrolls it around".

This means that it allows the user to use a scrollbar (or a finger) to
drag the viewable region around, allowing to move through a much larger
object that is contained in the scroller. The scroller will always have
a small minimum size by default as it won't be limited by the contents
of the scroller.

This widget inherits from :py:class:`~efl.elementary.layout_class.LayoutClass`,
so that all the functions acting on it also work for scroller objects.

.. note:: When Elementary is in embedded mode the scrollbars will not be
          draggable, they appear merely as indicators of how much has been
          scrolled.

.. note:: When Elementary is in desktop mode the thumbscroll(a.k.a.
          fingerscroll) won't work.

Emitted signals
===============

- ``edge,left`` - the left edge of the content has been reached
- ``edge,right`` - the right edge of the content has been reached
- ``edge,top`` - the top edge of the content has been reached
- ``edge,bottom`` - the bottom edge of the content has been reached
- ``scroll`` - the content has been scrolled (moved)
- ``scroll,left`` - the content has been scrolled (moved) leftwards
- ``scroll,right``  - the content has been scrolled (moved) rightwards
- ``scroll,up``  - the content has been scrolled (moved) upwards
- ``scroll,down`` - the content has been scrolled (moved) downwards
- ``scroll,anim,start`` - scrolling animation has started
- ``scroll,anim,stop`` - scrolling animation has stopped
- ``scroll,drag,start`` - dragging the contents around has started
- ``scroll,drag,stop`` - dragging the contents around has stopped
- ``vbar,drag`` - the vertical scroll bar has been dragged
- ``vbar,press`` - the vertical scroll bar has been pressed
- ``vbar,unpress`` - the vertical scroll bar has been unpressed
- ``hbar,drag`` - the horizontal scroll bar has been dragged
- ``hbar,press`` - the horizontal scroll bar has been pressed
- ``hbar,unpress`` - the horizontal scroll bar has been unpressed
- ``scroll,page,changed`` - the visible page has changed
- ``focused`` - When the scroller has received focus. (since 1.8)
- ``unfocused`` - When the scroller has lost focus. (since 1.8)

.. note:: The "scroll,anim,*" and "scroll,drag,*" signals are only emitted by
    user intervention.


Layout content parts
====================

- ``default`` - A content of the scroller


Enumerations
============

.. _Elm_Scroller_Policy:

Scrollbar visibility
--------------------

.. data:: ELM_SCROLLER_POLICY_AUTO

    Show scrollbars as needed

.. data:: ELM_SCROLLER_POLICY_ON

    Always show scrollbars

.. data:: ELM_SCROLLER_POLICY_OFF

    Never show scrollbars


.. _Elm_Scroller_Single_Direction:

Single direction
----------------

Type that controls how the content is scrolled.

.. data:: ELM_SCROLLER_SINGLE_DIRECTION_NONE

    Scroll every direction

.. data:: ELM_SCROLLER_SINGLE_DIRECTION_SOFT

    Scroll single direction if the direction is certain

.. data:: ELM_SCROLLER_SINGLE_DIRECTION_HARD

    Scroll only single direction


.. _Elm_Scroller_Movement_Block:

Movement block
--------------

Type that blocks the scroll movement in one or more direction.

:since: 1.8

.. data:: ELM_SCROLLER_MOVEMENT_NO_BLOCK

    Do not block movements

.. data:: ELM_SCROLLER_MOVEMENT_BLOCK_VERTICAL

    Block vertical movements

.. data:: ELM_SCROLLER_MOVEMENT_BLOCK_HORIZONTAL

    Block horizontal movements


Inheritance diagram
===================

.. inheritance-diagram:: Scroller
    :parts: 2


.. autoclass:: Scroller
.. autoclass:: Scrollable