1 #ifndef _ELM_SYS_NOTIFY_INTERFACE_EO_H_
2 #define _ELM_SYS_NOTIFY_INTERFACE_EO_H_
3 
4 #ifndef _ELM_SYS_NOTIFY_INTERFACE_EO_CLASS_TYPE
5 #define _ELM_SYS_NOTIFY_INTERFACE_EO_CLASS_TYPE
6 
7 typedef Eo Elm_Sys_Notify_Interface;
8 
9 #endif
10 
11 #ifndef _ELM_SYS_NOTIFY_INTERFACE_EO_TYPES
12 #define _ELM_SYS_NOTIFY_INTERFACE_EO_TYPES
13 
14 /** Urgency levels of a notification
15  *
16  * @since 1.8
17  *
18  * @ingroup Elm_Sys_Notify
19  */
20 typedef enum
21 {
22   ELM_SYS_NOTIFY_URGENCY_LOW = 0, /**< Low urgency */
23   ELM_SYS_NOTIFY_URGENCY_NORMAL, /**< Normal urgency */
24   ELM_SYS_NOTIFY_URGENCY_CRITICAL /**< Critical urgency */
25 } Elm_Sys_Notify_Urgency;
26 
27 
28 #endif
29 /** Elementary system notify interface
30  *
31  * @ingroup Elm_Sys_Notify_Interface
32  */
33 #define ELM_SYS_NOTIFY_INTERFACE_INTERFACE elm_sys_notify_interface_interface_get()
34 
35 EWAPI const Efl_Class *elm_sys_notify_interface_interface_get(void) EINA_CONST;
36 
37 /**
38  * @brief Causes a notification to be forcefully closed and removed from the
39  * user's view. It can be used, for example, in the event that what the
40  * notification pertains to is no longer relevant, or to cancel a notification
41  * with no expiration time.
42  *
43  * @param[in] obj The object.
44  * @param[in] replaces_id Notification ID that this notification replaces. The
45  * value 0 means a new notification.
46  * @param[in] icon The optional program icon of the calling application
47  * @param[in] summary The summary text briefly describing the notification
48  * @param[in] body The optional detailed body text. Can be empty
49  * @param[in] urgency The urgency level
50  * @param[in] timeout Timeout display in milliseconds
51  * @param[in] cb Callback used to retrieve the notification id returned by the
52  * Notification Server
53  * @param[in] cb_data Optional context data
54  *
55  * @since 1.8
56  *
57  * @ingroup Elm_Sys_Notify_Interface
58  */
59 EOAPI void elm_obj_sys_notify_interface_send(const Eo *obj, unsigned int replaces_id, const char *icon, const char *summary, const char *body, Elm_Sys_Notify_Urgency urgency, int timeout, Elm_Sys_Notify_Send_Cb cb, const void *cb_data);
60 
61 /**
62  * @brief Create a new notification just with Icon, Body and Summary. It is a
63  * helper that wraps the send method
64  *
65  * @param[in] obj The object.
66  * @param[in] icon The optional program icon of the calling application
67  * @param[in] summary The summary text briefly describing the notification
68  * @param[in] body The optional detailed body text. Can be empty
69  *
70  * @since 1.16
71  *
72  * @ingroup Elm_Sys_Notify_Interface
73  */
74 EOAPI void elm_obj_sys_notify_interface_simple_send(const Eo *obj, const char *icon, const char *summary, const char *body);
75 
76 /**
77  * @brief Causes a notification to be forcefully closed and removed from the
78  * user's view. It can be used, for example, in the event that what the
79  * notification  pertains to is no longer relevant, or to cancel a notification
80  * with no expiration time.
81  *
82  * @param[in] obj The object.
83  * @param[in] id Notification ID
84  *
85  * @since 1.8
86  *
87  * @ingroup Elm_Sys_Notify_Interface
88  */
89 EOAPI void elm_obj_sys_notify_interface_close(const Eo *obj, unsigned int id);
90 
91 #endif
92