1 #ifndef _ELM_HOVER_EO_H_
2 #define _ELM_HOVER_EO_H_
3 
4 #ifndef _ELM_HOVER_EO_CLASS_TYPE
5 #define _ELM_HOVER_EO_CLASS_TYPE
6 
7 typedef Eo Elm_Hover;
8 
9 #endif
10 
11 #ifndef _ELM_HOVER_EO_TYPES
12 #define _ELM_HOVER_EO_TYPES
13 
14 /** The orientation axis for the hover object
15  *
16  * @ingroup Elm_Hover
17  */
18 typedef enum
19 {
20   ELM_HOVER_AXIS_NONE = 0, /**< ELM_HOVER_AXIS_NONE -- no preferred orientation.
21                             */
22   ELM_HOVER_AXIS_HORIZONTAL, /**< ELM_HOVER_AXIS_HORIZONTAL -- horizontal. */
23   ELM_HOVER_AXIS_VERTICAL, /**< ELM_HOVER_AXIS_VERTICAL -- vertical. */
24   ELM_HOVER_AXIS_BOTH /**< ELM_HOVER_AXIS_BOTH -- both. */
25 } Elm_Hover_Axis;
26 
27 
28 #endif
29 /** Elementary hover class
30  *
31  * @ingroup Elm_Hover
32  */
33 #define ELM_HOVER_CLASS elm_hover_class_get()
34 
35 EWAPI const Efl_Class *elm_hover_class_get(void) EINA_CONST;
36 
37 /**
38  * @brief Sets the target object for the hover.
39  *
40  * This function will cause the hover to be centered on the target object.
41  *
42  * @param[in] obj The object.
43  * @param[in] target The target object.
44  *
45  * @ingroup Elm_Hover
46  */
47 EOAPI void elm_obj_hover_target_set(Eo *obj, Efl_Canvas_Object *target);
48 
49 /**
50  * @brief Get the target object for the hover.
51  *
52  * @param[in] obj The object.
53  *
54  * @return The target object.
55  *
56  * @ingroup Elm_Hover
57  */
58 EOAPI Efl_Canvas_Object *elm_obj_hover_target_get(const Eo *obj);
59 
60 /**
61  * @brief Returns the best swallow location for content in the hover.
62  *
63  * Best is defined here as the location at which there is the most available
64  * space.
65  *
66  * @c pref_axis may be either #ELM_HOVER_AXIS_NONE (for no preferred
67  * orientation), #ELM_HOVER_AXIS_HORIZONTAL, #ELM_HOVER_AXIS_VERTICAL or
68  * #ELM_HOVER_AXIS_BOTH.
69  *
70  * If #ELM_HOVER_AXIS_HORIZONTAL is chosen the returned position will
71  * necessarily be along the horizontal axis("left" or "right"). If
72  * #ELM_HOVER_AXIS_VERTICAL is chosen the returned position will necessarily be
73  * along the vertical axis("top" or "bottom"). Choosing #ELM_HOVER_AXIS_BOTH or
74  * #ELM_HOVER_AXIS_NONE has the same effect and the returned position may be in
75  * either axis.
76  *
77  * See also @ref elm_object_part_content_set.
78  *
79  * @param[in] obj The object.
80  * @param[in] pref_axis The preferred orientation axis for the hover object to
81  * use
82  *
83  * @return Swallow location
84  *
85  * @ingroup Elm_Hover
86  */
87 EOAPI const char *elm_obj_hover_best_content_location_get(const Eo *obj, Elm_Hover_Axis pref_axis);
88 
89 /** Dismiss a hover object
90  *
91  * @ingroup Elm_Hover
92  */
93 EOAPI void elm_obj_hover_dismiss(Eo *obj);
94 
95 EWAPI extern const Efl_Event_Description _ELM_HOVER_EVENT_SMART_CHANGED;
96 
97 /** Called when hover changed
98  * @return const char *
99  *
100  * @ingroup Elm_Hover
101  */
102 #define ELM_HOVER_EVENT_SMART_CHANGED (&(_ELM_HOVER_EVENT_SMART_CHANGED))
103 
104 EWAPI extern const Efl_Event_Description _ELM_HOVER_EVENT_DISMISSED;
105 
106 /** Called when hover was dismissed
107  *
108  * @ingroup Elm_Hover
109  */
110 #define ELM_HOVER_EVENT_DISMISSED (&(_ELM_HOVER_EVENT_DISMISSED))
111 
112 #endif
113