2019-03-05 14:00:37 -08:00
|
|
|
#ifndef _ELM_NOTIFY_EO_H_
|
|
|
|
#define _ELM_NOTIFY_EO_H_
|
|
|
|
|
|
|
|
#ifndef _ELM_NOTIFY_EO_CLASS_TYPE
|
|
|
|
#define _ELM_NOTIFY_EO_CLASS_TYPE
|
|
|
|
|
|
|
|
typedef Eo Elm_Notify;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef _ELM_NOTIFY_EO_TYPES
|
|
|
|
#define _ELM_NOTIFY_EO_TYPES
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
/** Elementary notification class
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
#define ELM_NOTIFY_CLASS elm_notify_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_notify_class_get(void) EINA_CONST;
|
2019-03-05 14:00:37 -08:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Set the alignment of the notify object
|
|
|
|
*
|
|
|
|
* Sets the alignment in which the notify will appear in its parent.
|
|
|
|
*
|
|
|
|
* @note To fill the notify box in the parent area, please pass the
|
|
|
|
* ELM_NOTIFY_ALIGN_FILL to horizontal and vertical.
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
* @param[in] horizontal The horizontal alignment of the notification
|
|
|
|
* @param[in] vertical The vertical alignment of the notification
|
|
|
|
*
|
|
|
|
* @since 1.8
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
EOAPI void elm_obj_notify_align_set(Eo *obj, double horizontal, double vertical);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Get the alignment of the notify object
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
* @param[out] horizontal The horizontal alignment of the notification
|
|
|
|
* @param[out] vertical The vertical alignment of the notification
|
|
|
|
*
|
|
|
|
* @since 1.8
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
EOAPI void elm_obj_notify_align_get(const Eo *obj, double *horizontal, double *vertical);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Sets whether events should be passed to by a click outside its area.
|
|
|
|
*
|
|
|
|
* When true if the user clicks outside the window the events will be caught by
|
|
|
|
* the others widgets, else the events are blocked.
|
|
|
|
*
|
|
|
|
* @note The default value is true.
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
* @param[in] allow @c true if events are allowed, @c false otherwise
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
EOAPI void elm_obj_notify_allow_events_set(Eo *obj, Eina_Bool allow);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Return true if events are allowed below the notify object.
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
*
|
|
|
|
* @return @c true if events are allowed, @c false otherwise
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
EOAPI Eina_Bool elm_obj_notify_allow_events_get(const Eo *obj);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Set the time interval after which the notify window is going to be
|
|
|
|
* hidden.
|
|
|
|
*
|
|
|
|
* This function sets a timeout and starts the timer controlling when the
|
|
|
|
* notify is hidden. Since calling evas_object_show() on a notify restarts the
|
|
|
|
* timer controlling when the notify is hidden, setting this before the notify
|
|
|
|
* is shown will in effect mean starting the timer when the notify is shown.
|
|
|
|
*
|
|
|
|
* @note Set a value <= 0.0 to disable a running timer.
|
|
|
|
*
|
|
|
|
* @note If the value > 0.0 and the notify is previously visible, the timer
|
|
|
|
* will be started with this value, canceling any running timer.
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
* @param[in] timeout The timeout in seconds
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
EOAPI void elm_obj_notify_timeout_set(Eo *obj, double timeout);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @brief Return the timeout value (in seconds)
|
|
|
|
*
|
|
|
|
* @param[in] obj The object.
|
|
|
|
*
|
|
|
|
* @return The timeout in seconds
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
EOAPI double elm_obj_notify_timeout_get(const Eo *obj);
|
|
|
|
|
|
|
|
/** Dismiss a notify object.
|
|
|
|
*
|
|
|
|
* @since 1.17
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
EOAPI void elm_obj_notify_dismiss(Eo *obj);
|
|
|
|
|
|
|
|
EWAPI extern const Efl_Event_Description _ELM_NOTIFY_EVENT_BLOCK_CLICKED;
|
|
|
|
|
|
|
|
/** Called when block was clicked
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
#define ELM_NOTIFY_EVENT_BLOCK_CLICKED (&(_ELM_NOTIFY_EVENT_BLOCK_CLICKED))
|
|
|
|
|
|
|
|
EWAPI extern const Efl_Event_Description _ELM_NOTIFY_EVENT_TIMEOUT;
|
|
|
|
|
|
|
|
/** Called when notify timed out
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
#define ELM_NOTIFY_EVENT_TIMEOUT (&(_ELM_NOTIFY_EVENT_TIMEOUT))
|
|
|
|
|
|
|
|
EWAPI extern const Efl_Event_Description _ELM_NOTIFY_EVENT_DISMISSED;
|
|
|
|
|
|
|
|
/** Called when notify was dismissed
|
|
|
|
*
|
|
|
|
* @ingroup Elm_Notify
|
|
|
|
*/
|
|
|
|
#define ELM_NOTIFY_EVENT_DISMISSED (&(_ELM_NOTIFY_EVENT_DISMISSED))
|
|
|
|
|
|
|
|
#endif
|