2019-03-05 14:00:37 -08:00
|
|
|
#ifndef _ELM_BUBBLE_EO_H_
|
|
|
|
#define _ELM_BUBBLE_EO_H_
|
|
|
|
|
|
|
|
#ifndef _ELM_BUBBLE_EO_CLASS_TYPE
|
|
|
|
#define _ELM_BUBBLE_EO_CLASS_TYPE
|
|
|
|
|
|
|
|
typedef Eo Elm_Bubble;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef _ELM_BUBBLE_EO_TYPES
|
|
|
|
#define _ELM_BUBBLE_EO_TYPES
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Defines the corner values for a bubble.
|
|
|
|
*
|
|
|
|
* The corner will be used to determine where the arrow of the bubble points
|
|
|
|
* to.
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Bubble
|
|
|
|
*/
|
|
|
|
typedef enum
|
|
|
|
{
|
|
|
|
ELM_BUBBLE_POS_INVALID = -1 /* +1 */, /**< Invalid corner. */
|
|
|
|
ELM_BUBBLE_POS_TOP_LEFT, /**< The arrow of the bubble points to the top left
|
|
|
|
* corner. */
|
|
|
|
ELM_BUBBLE_POS_TOP_RIGHT, /**< The arrow of the bubble points to the top right
|
|
|
|
* corner. */
|
|
|
|
ELM_BUBBLE_POS_BOTTOM_LEFT, /**< The arrow of the bubble points to the bottom
|
|
|
|
* left corner. */
|
|
|
|
ELM_BUBBLE_POS_BOTTOM_RIGHT /**< The arrow of the bubble points to the bottom
|
|
|
|
* right corner. */
|
|
|
|
} Elm_Bubble_Pos;
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
/** Speech bubble widget used in messaging applications
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Bubble
|
|
|
|
*/
|
|
|
|
#define ELM_BUBBLE_CLASS elm_bubble_class_get()
|
|
|
|
|
efl: make all _class_get() functions const
please note, not the return type, but the function.
When appending __attribute__((const)) to a function, the compiler is
told that its enough to call this function once in a function.
This is quite often happening when we are efl_data_scope_get and
efl_super in a function that is different from a implemented function.
The compiler now starts to remove the calls that aggressivly that we
need to ensure that these calls are not removed, which means, the static
function calls, and the eo init are now checking the return value of
these functions, to ensure that they are called.
Please note that you now have to be carefull when your app calls
eo_shutdown, if it does so, you *must* call it at the end of a function,
or never call class_get after that anymore.
Overall this improves elm test runs 0.1s which is fair i guess, the main
thing that is faster is textrendering, where is also the point where
this is the most beneficial.
Please note, this replaces 42 occurences of double _class_get() ... THAT
is a sign!
Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Reviewed-by: Daniel Kolesa <daniel@octaforge.org>
Differential Revision: https://phab.enlightenment.org/D12057
2020-07-16 03:39:23 -07:00
|
|
|
EWAPI const Efl_Class *elm_bubble_class_get(void) EINA_CONST;
|
2019-03-05 14:00:37 -08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief The corner of the bubble
|
|
|
|
*
|
|
|
|
* This function sets the corner of the bubble. The corner will be used to
|
|
|
|
* determine where the arrow in the frame points to and where label, icon and
|
|
|
|
* info are shown. See @ref Elm_Bubble_Pos
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
* @param[in] pos The given corner for the bubble.
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Bubble
|
|
|
|
*/
|
|
|
|
EOAPI void elm_obj_bubble_pos_set(Eo *obj, Elm_Bubble_Pos pos);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief The corner of the bubble
|
|
|
|
*
|
|
|
|
* This function sets the corner of the bubble. The corner will be used to
|
|
|
|
* determine where the arrow in the frame points to and where label, icon and
|
|
|
|
* info are shown. See @ref Elm_Bubble_Pos
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
*
|
|
|
|
* @return The given corner for the bubble.
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Bubble
|
|
|
|
*/
|
|
|
|
EOAPI Elm_Bubble_Pos elm_obj_bubble_pos_get(const Eo *obj);
|
|
|
|
|
|
|
|
#endif
|