efl/src/lib/elementary/efl_ui_flip.eo

256 lines
11 KiB
Plaintext

import efl_ui_direction;
enum Efl.Ui.Flip_Mode
{
[[Efl UI flip mode ]]
legacy: efl_ui_flip;
rotate_y_center_axis, [[Rotate Y center axis flip mode]]
rotate_x_center_axis, [[Rotate X center axis flip mode]]
rotate_xz_center_axis, [[Rotate XZ center axis flip mode]]
rotate_yz_center_axis, [[Rotate YZ center axis flip mode]]
cube_left, [[Cube left flip mode]]
cube_right, [[Cube right flip mode]]
cube_up, [[Cube up flip mode]]
cube_down, [[Cube down flip mode]]
page_left, [[Page left flip mode]]
page_right, [[Page right flip mode]]
page_up, [[Page up flip mode]]
page_down, [[Page down flip mode]]
cross_fade, [[Cross fade flip mode]]
}
enum Efl.Ui.Flip_Interaction
{
[[Efl UI flip interaction]]
none, [[No interaction]]
rotate, [[Rotate interaction]]
cube, [[Cube interaction]]
page [[Page interaction]]
}
class Efl.Ui.Flip extends Efl.Ui.Widget implements Efl.Pack_Linear
{
[[Efl UI flip class]]
legacy_prefix: elm_flip;
methods {
@property interaction {
set {
[[Set the interactive flip mode.
This sets if the flip should be interactive (allow user to
click and drag a side of the flip to reveal the back page
and cause it to flip). By default a flip is not interactive.
You may also need to set which sides of the flip are "active"
for flipping and how much space they use (a minimum of a
finger size) with @.interaction_direction_enabled_set
and @.interaction_direction_hitsize_set.
The four available mode of interaction are
#ELM_FLIP_INTERACTION_NONE, #ELM_FLIP_INTERACTION_ROTATE,
#ELM_FLIP_INTERACTION_CUBE and #ELM_FLIP_INTERACTION_PAGE.
Note: #ELM_FLIP_INTERACTION_ROTATE won't cause
#ELM_FLIP_ROTATE_XZ_CENTER_AXIS or #ELM_FLIP_ROTATE_YZ_CENTER_AXIS
to happen, those can only be achieved with @.go.
]]
}
get {
[[Get the interactive flip mode.]]
}
values {
mode: Efl.Ui.Flip_Interaction; [[The interactive flip mode to use.]]
}
}
@property front_visible {
get {
[[Get flip front visibility state.]]
return: bool; [[$true if front front is showing, $false if
the back is showing.]]
}
}
interaction_direction_hitsize_set {
[[Set the amount of the flip that is sensitive to interactive flip.
Set the amount of the flip that is sensitive to interactive flip,
with 0 representing no area in the flip and 1 representing the
entire flip. There is however a consideration to be made in that
the area will never be smaller than the finger size set (as set
in your Elementary configuration), and dragging must always start
from the opposite half of the flip (eg. right half of the flip
when dragging to the left).
Note: The $dir parameter is not actually related to the direction
of the drag, it only refers to the area in the flip where
interaction can occur (top, bottom, left, right).
Negative values of $hitsize will disable this hit area.
See also @.interaction.set.
]]
legacy: null;
params {
@in dir: Efl.Ui.Dir; [[The hit area to set.]]
@in hitsize: double; [[The amount of that dimension (0.0 to 1.0) to use.]]
}
}
interaction_direction_hitsize_get {
[[Get the amount of the flip that is sensitive to interactive flip.]]
return: double; [[The size set for that direction.]]
legacy: null;
params {
@in dir: Efl.Ui.Dir; [[The direction to check.]]
}
}
interaction_direction_enabled_set {
[[Set which directions of the flip respond to interactive flip
By default all directions are disabled, so you may want to
enable the desired directions for flipping if you need
interactive flipping. You must call this function once for
each direction that's enabled.
You can also set the appropriate hit area size by calling
@.interaction_direction_hitsize_set. By default, a minimum
hit area will be created on the opposite edge of the flip.
]]
legacy: null;
params {
@in dir: Efl.Ui.Dir; [[The direction to change.]]
@in enabled: bool; [[If that direction is enabled or not.]]
}
}
interaction_direction_enabled_get {
[[Get the enabled state of that flip direction.]]
return: bool; [[If that direction is enabled or not.]]
legacy: null;
params {
@in dir: Efl.Ui.Dir; [[The direction to check.]]
}
}
go {
[[Runs the flip animation.
Flips the front and back contents using the $mode animation.
This effectively hides the currently visible content and shows
the hidden one.
There a number of possible animations to use for flipping,
namely #ELM_FLIP_ROTATE_X_CENTER_AXIS (rotate the currently
visible content around a horizontal axis in the middle of its
height, the other content is shown as the other side of the flip),
#ELM_FLIP_ROTATE_Y_CENTER_AXIS (rotate the currently visible
content around a vertical axis in the middle of its width, the
other content is shown as the other side of the flip),
#ELM_FLIP_ROTATE_XZ_CENTER_AXIS (rotate the currently visible
content around a diagonal axis in the middle of its width, the
other content is shown as the other side of the flip),
#ELM_FLIP_ROTATE_YZ_CENTER_AXIS (rotate the currently visible
content around a diagonal axis in the middle of its height, the
other content is shown as the other side of the flip).
#ELM_FLIP_CUBE_LEFT (rotate the currently visible content to the
left as if the flip was a cube, the other content is shown as the
right face of the cube), #ELM_FLIP_CUBE_RIGHT (rotate the
currently visible content to the right as if the flip was a
cube, the other content is shown as the left face of the cube),
#ELM_FLIP_CUBE_UP (rotate the currently visible content up as if
the flip was a cube, the other content is shown as the bottom face
of the cube), #ELM_FLIP_CUBE_DOWN (rotate the currently visible
content down as if the flip was a cube, the other content is shown
as the upper face of the cube), #ELM_FLIP_PAGE_LEFT (move the
currently visible content to the left as if the flip was a book,
the other content is shown as the page below that),
#ELM_FLIP_PAGE_RIGHT (move the currently visible content to the
right as if the flip was a book, the other content is shown as the
page below it), #ELM_FLIP_PAGE_UP (move the currently visible
content up as if the flip was a book, the other content is shown
as the page below it), #ELM_FLIP_PAGE_DOWN (move the
currently visible content down as if the flip was a book, the
other content is shown as the page below that) and #ELM_FLIP_CROSS_FADE
(fade out the currently visible content, while fading in the
invisible content).
]]
/* FIXME-doc
* @image html elm_flip.png
* @image latex elm_flip.eps width=\textwidth
*/
params {
@in mode: Efl.Ui.Flip_Mode; [[The mode type.]]
}
}
go_to {
[[Runs the flip animation to front or back.
Flips the front and back contents using the $mode animation.
This effectively hides the currently visible content and shows
he hidden one.
There a number of possible animations to use for flipping,
namely #ELM_FLIP_ROTATE_X_CENTER_AXIS (rotate the currently
visible content around a horizontal axis in the middle of its
height, the other content is shown as the other side of the flip),
#ELM_FLIP_ROTATE_Y_CENTER_AXIS (rotate the currently visible
content around a vertical axis in the middle of its width, the
other content is shown as the other side of the flip),
#ELM_FLIP_ROTATE_XZ_CENTER_AXIS (rotate the currently visible
content around a diagonal axis in the middle of its width, the
other content is shown as the other side of the flip),
#ELM_FLIP_ROTATE_YZ_CENTER_AXIS (rotate the currently visible
content around a diagonal axis in the middle of its height, the
other content is shown as the other side of the flip).
#ELM_FLIP_CUBE_LEFT (rotate the currently visible content to the
left as if the flip was a cube, the other content is show as the
right face of the cube), #ELM_FLIP_CUBE_RIGHT (rotate the
currently visible content to the right as if the flip was a
cube, the other content is show as the left face of the cube),
#ELM_FLIP_CUBE_UP (rotate the currently visible content up as if
the flip was a cube, the other content is shown as the bottom face
of the cube), #ELM_FLIP_CUBE_DOWN (rotate the currently visible
content down as if the flip was a cube, the other content is shown
as the upper face of the cube), #ELM_FLIP_PAGE_LEFT (move the
currently visible content to the left as if the flip was a book,
the other content is shown as the page below that),
#ELM_FLIP_PAGE_RIGHT (move the currently visible content to the
right as if the flip was a book, the other content is shown as the
page below it), #ELM_FLIP_PAGE_UP (move the currently visible
content up as if the flip was a book, the other content is shown
as the page below it) and #ELM_FLIP_PAGE_DOWN (move the
currently visible content down as if the flip was a book, the
other content is shown as the page below that).
]]
/* FIXME-doc
* @image html elm_flip.png
* @image latex elm_flip.eps width=\textwidth
*/
params {
@in front: bool; [[If $true, makes front visible, otherwise
makes back.]]
@in mode: Efl.Ui.Flip_Mode; [[The mode type.]]
}
}
}
implements {
Efl.Object.constructor;
Efl.Ui.Widget.widget_sub_object_add;
Efl.Ui.Widget.theme_apply;
Efl.Ui.Widget.widget_sub_object_del;
Efl.Container.content_iterate;
Efl.Container.content_count;
Efl.Container.content_remove;
Efl.Part.part_get;
Efl.Pack.unpack;
Efl.Pack.pack;
Efl.Pack_Linear.pack_begin;
Efl.Pack_Linear.pack_end;
Efl.Pack_Linear.pack_before;
Efl.Pack_Linear.pack_after;
Efl.Pack_Linear.pack_at;
Efl.Pack_Linear.pack_content_get;
Efl.Pack_Linear.pack_unpack_at;
Efl.Pack_Linear.pack_index_get;
}
events {
animate,begin: void; [[Called when flip animation begins]]
animate,done: void; [[Called when flip animation is done]]
}
}