summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_flip_legacy.h
blob: 29652551e038424d83da8f9a4c5333adceabdade (plain)
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
typedef Eo Elm_Flip;


/** Elm flip mode
 *
 * @ingroup Elm_Flip
 */
typedef enum
{
  ELM_FLIP_ROTATE_Y_CENTER_AXIS = 0, /**< Rotate Y center axis flip mode */
  ELM_FLIP_ROTATE_X_CENTER_AXIS, /**< Rotate X center axis flip mode */
  ELM_FLIP_ROTATE_XZ_CENTER_AXIS, /**< Rotate XZ center axis flip mode */
  ELM_FLIP_ROTATE_YZ_CENTER_AXIS, /**< Rotate YZ center axis flip mode */
  ELM_FLIP_CUBE_LEFT, /**< Cube left flip mode */
  ELM_FLIP_CUBE_RIGHT, /**< Cube right flip mode */
  ELM_FLIP_CUBE_UP, /**< Cube up flip mode */
  ELM_FLIP_CUBE_DOWN, /**< Cube down flip mode */
  ELM_FLIP_PAGE_LEFT, /**< Page left flip mode */
  ELM_FLIP_PAGE_RIGHT, /**< Page right flip mode */
  ELM_FLIP_PAGE_UP, /**< Page up flip mode */
  ELM_FLIP_PAGE_DOWN, /**< Page down flip mode */
  ELM_FLIP_CROSS_FADE /**< Cross fade flip mode */
} Elm_Flip_Mode;

/** Efl UI flip interaction
 *
 * @ingroup Efl_Ui
 */
typedef enum
{
  ELM_FLIP_INTERACTION_NONE = 0, /**< No interaction */
  ELM_FLIP_INTERACTION_ROTATE, /**< Rotate interaction */
  ELM_FLIP_INTERACTION_CUBE, /**< Cube interaction */
  ELM_FLIP_INTERACTION_PAGE /**< Page interaction */
} Elm_Flip_Interaction;


typedef enum
{
  ELM_FLIP_DIRECTION_UP = 0, /** Allows interaction with the top of the widget
                              */
  ELM_FLIP_DIRECTION_DOWN, /** Allows interaction with the bottom of the widget
                            */
  ELM_FLIP_DIRECTION_LEFT, /** Allows interaction with the left portion of the
                            * widget */
  ELM_FLIP_DIRECTION_RIGHT /** Allows interaction with the right portion of the
                            * widget */
} Elm_Flip_Direction;

/**
 * @brief 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 @c 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 @c hitsize will disable this hit area.
 *
 * See also @ref elm_flip_interaction_set.
 *
 * @param[in] hitsize The amount of that dimension (0.0 to 1.0) to use.
 *
 * @ingroup Elm_Flip
 */
EAPI void elm_flip_interaction_direction_hitsize_set(Elm_Flip *obj, Elm_Flip_Direction dir, double hitsize);

/**
 * @brief Get the amount of the flip that is sensitive to interactive flip.
 *
 * @param[in] dir The direction to check.
 *
 * @return The size set for that direction.
 *
 * @ingroup Elm_Flip
 */
EAPI double elm_flip_interaction_direction_hitsize_get(Elm_Flip *obj, Elm_Flip_Direction dir);

/**
 * @brief 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 should be enabled.
 *
 * You can also set the appropriate hit area size by calling
 * @ref efl_ui_flip_interaction_direction_hitsize_set. By default, a minimum
 * hit area will be created on the opposite edge of the flip.
 *
 * @param[in] enabled If that direction is enabled or not.
 *
 * @ingroup Elm_Flip
 */
EAPI void elm_flip_interaction_direction_enabled_set(Elm_Flip *obj, Elm_Flip_Direction dir, Eina_Bool enabled);

/**
 * @brief Get the enabled state of that flip direction.
 *
 * @param[in] dir The direction to check.
 *
 * @return If that direction is enabled or not.
 *
 * @ingroup Elm_Flip
 */
EAPI Eina_Bool elm_flip_interaction_direction_enabled_get(Elm_Flip *obj, Elm_Flip_Direction dir);

/**
 * @brief Add a new flip to the parent
 *
 * @param parent The parent object
 * @return The new object or NULL if it cannot be created
 *
 * @ingroup Elm_Flip
 */
EAPI Evas_Object *elm_flip_add(Evas_Object *parent);

/**
 * @brief Set flip perspective
 *
 * @param obj The flip object
 * @param foc The coordinate to set the focus on
 * @param x The X coordinate
 * @param y The Y coordinate
 *
 * @warning This function currently does nothing.
 *
 * @ingroup Elm_Flip
 */
EAPI void                 elm_flip_perspective_set(Evas_Object *obj, Evas_Coord foc, Evas_Coord x, Evas_Coord y);
#include "efl_ui_flip_eo.legacy.h"