forked from enlightenment/efl
249 lines
11 KiB
Plaintext
249 lines
11 KiB
Plaintext
import efl_ui_layout_orientable;
|
|
|
|
enum @beta Efl.Ui.Flip_Mode
|
|
{
|
|
[[Efl UI flip mode ]]
|
|
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 @beta Efl.Ui.Flip_Interaction
|
|
{
|
|
[[Efl UI flip interaction]]
|
|
none, [[No interaction]]
|
|
rotate, [[Rotate interaction]]
|
|
cube, [[Cube interaction]]
|
|
page [[Page interaction]]
|
|
}
|
|
|
|
class @beta Efl.Ui.Flip extends Efl.Ui.Widget implements Efl.Pack_Linear
|
|
{
|
|
[[Efl UI flip class]]
|
|
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.
|
|
]]
|
|
params {
|
|
@in dir: Efl.Ui.Layout_Orientation; [[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.]]
|
|
params {
|
|
@in dir: Efl.Ui.Layout_Orientation; [[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.
|
|
]]
|
|
params {
|
|
@in dir: Efl.Ui.Layout_Orientation; [[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.]]
|
|
params {
|
|
@in dir: Efl.Ui.Layout_Orientation; [[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.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]]
|
|
}
|
|
}
|