00001 #ifndef E_NOTIFY_H
00002 #define E_NOTIFY_H
00003
00004 #include <Eina.h>
00005 #include <Evas.h>
00006 #include <E_DBus.h>
00007
00015
00016 typedef struct E_Notification_Image E_Notification_Image;
00017 typedef struct E_Notification E_Notification;
00018 typedef struct E_Notification_Action E_Notification_Action;
00019
00020 typedef enum E_Notification_Urgency E_Notification_Urgency;
00021 typedef enum E_Notification_Hint_Type E_Notification_Hint_Type;
00022 typedef enum E_Notification_Closed_Reason E_Notification_Closed_Reason;
00023
00024
00025 typedef struct E_Notification_Return_Notify E_Notification_Return_Notify;
00026 typedef struct E_Notification_Return_Get_Capabilities E_Notification_Return_Get_Capabilities;
00027 typedef struct E_Notification_Return_Get_Server_Information E_Notification_Return_Get_Server_Information;
00028
00029
00030
00031 typedef struct E_Notification_Event_Action_Invoked E_Notification_Event_Action_Invoked;
00032 typedef struct E_Notification_Event_Notification_Closed E_Notification_Event_Notification_Closed;
00033
00034
00035
00036 enum E_Notification_Urgency
00037 {
00038 E_NOTIFICATION_URGENCY_LOW,
00039 E_NOTIFICATION_URGENCY_NORMAL,
00040 E_NOTIFICATION_URGENCY_CRITICAL
00041 };
00042
00043 enum E_Notification_Closed_Reason
00044 {
00045 E_NOTIFICATION_CLOSED_EXPIRED,
00046 E_NOTIFICATION_CLOSED_DISMISSED,
00047 E_NOTIFICATION_CLOSED_REQUESTED,
00048 E_NOTIFICATION_CLOSED_UNDEFINED
00049 };
00050
00051 enum E_Notification_Hint_Type
00052 {
00053 E_NOTIFICATION_HINT_URGENCY = (1 << 0),
00054 E_NOTIFICATION_HINT_CATEGORY = (1 << 1),
00055 E_NOTIFICATION_HINT_DESKTOP = (1 << 2),
00056 E_NOTIFICATION_HINT_SOUND_FILE = (1 << 3),
00057 E_NOTIFICATION_HINT_TRANSIENT = (1 << 4),
00058 E_NOTIFICATION_HINT_RESIDENT = (1 << 5),
00059 E_NOTIFICATION_HINT_ACTION_ICONS = (1 << 6),
00060 E_NOTIFICATION_HINT_SUPPRESS_SOUND = 0x10,
00061 E_NOTIFICATION_HINT_XY = 0x20,
00062 E_NOTIFICATION_HINT_IMAGE_DATA = 0x40
00063 };
00064
00065
00066 struct E_Notification_Return_Notify
00067 {
00068 unsigned int notification_id;
00069 E_Notification *notification;
00070 };
00071
00072 struct E_Notification_Return_Get_Capabilities
00073 {
00074 Eina_List *capabilities;
00075 };
00076
00077 struct E_Notification_Return_Get_Server_Information
00078 {
00079 const char *name;
00080 const char *vendor;
00081 const char *version;
00082 const char *spec_version;
00083 };
00084
00085
00086 struct E_Notification_Event_Notification_Closed
00087 {
00088 unsigned int notification_id;
00089 E_Notification_Closed_Reason reason;
00090 };
00091
00092 struct E_Notification_Event_Action_Invoked
00093 {
00094 unsigned int notification_id;
00095 char *action_id;
00096 };
00097
00098 #ifdef __cplusplus
00099 extern "C" {
00100 #endif
00101
00102 EAPI int e_notification_init(void);
00103 EAPI int e_notification_shutdown(void);
00104
00105
00106 EAPI void e_notification_send(E_Notification *n, E_DBus_Callback_Func func, void *data);
00107 EAPI void e_notification_get_capabilities(E_DBus_Callback_Func func, void *data);
00108 EAPI void e_notification_get_server_information(E_DBus_Callback_Func func, void *data);
00109
00110
00111
00112
00113 EAPI E_Notification *e_notification_new(void);
00114 EAPI void e_notification_ref(E_Notification *n);
00115 EAPI void e_notification_unref(E_Notification *n);
00116 EAPI void e_notification_free(E_Notification *n);
00117
00118 EAPI E_Notification *e_notification_full_new(const char *app_name,
00119 unsigned int replaces_id,
00120 const char *app_icon,
00121 const char *summary,
00122 const char *body,
00123 int expire_timeout);
00124
00125
00126 EAPI void e_notification_id_set(E_Notification *note, unsigned int id);
00127 EAPI void e_notification_app_name_set(E_Notification *n, const char *app_name);
00128 EAPI void e_notification_app_icon_set(E_Notification *n, const char *app_icon);
00129 EAPI void e_notification_summary_set(E_Notification *n, const char *summary);
00130 EAPI void e_notification_body_set(E_Notification *n, const char *body);
00131 EAPI void e_notification_replaces_id_set(E_Notification *n, int replaces_id);
00132 EAPI void e_notification_timeout_set(E_Notification *n, int timeout);
00133 EAPI void e_notification_closed_set(E_Notification *note, unsigned char closed);
00134
00135
00136 EAPI unsigned int e_notification_id_get(E_Notification *note);
00137 EAPI const char *e_notification_app_name_get(E_Notification *n);
00138 EAPI const char *e_notification_app_icon_get(E_Notification *n);
00139 EAPI const char *e_notification_summary_get(E_Notification *n);
00140 EAPI const char *e_notification_body_get(E_Notification *n);
00141 EAPI int e_notification_replaces_id_get(E_Notification *note);
00142 EAPI int e_notification_timeout_get(E_Notification *note);
00143 EAPI unsigned char e_notification_closed_get(E_Notification *note);
00144
00145
00146 EAPI void e_notification_action_add(E_Notification *n, const char *action_id, const char *action_name);
00147 EAPI Eina_List *e_notification_actions_get(E_Notification *n);
00148 EAPI const char *e_notification_action_id_get(E_Notification_Action *a);
00149 EAPI const char *e_notification_action_name_get(E_Notification_Action *a);
00150
00151
00152 EAPI void e_notification_hint_transient_set(E_Notification *n, Eina_Bool transient);
00153 EAPI void e_notification_hint_resident_set(E_Notification *n, Eina_Bool resident);
00154 EAPI void e_notification_hint_action_icons_set(E_Notification *n, Eina_Bool action_icons);
00155 EAPI void e_notification_hint_image_path_set(E_Notification *n, const char *path);
00156 EAPI void e_notification_hint_urgency_set(E_Notification *n, char urgency);
00157 EAPI void e_notification_hint_category_set(E_Notification *n, const char *category);
00158 EAPI void e_notification_hint_desktop_set(E_Notification *n, const char *desktop);
00159 EAPI void e_notification_hint_sound_file_set(E_Notification *n, const char *sound_file);
00160 EAPI void e_notification_hint_suppress_sound_set(E_Notification *n, char suppress_sound);
00161 EAPI void e_notification_hint_xy_set(E_Notification *n, int x, int y);
00162 EAPI void e_notification_hint_image_data_set(E_Notification *n, E_Notification_Image *image);
00163
00164
00165 EAPI char e_notification_hint_urgency_get(E_Notification *n);
00166 EAPI const char *e_notification_hint_category_get(E_Notification *n);
00167 EAPI const char *e_notification_hint_desktop_get(E_Notification *n);
00168 EAPI const char *e_notification_hint_sound_file_get(E_Notification *n);
00169 EAPI const char *e_notification_hint_image_path_get(E_Notification *n);
00170 EAPI char e_notification_hint_suppress_sound_get(E_Notification *n);
00171 EAPI int e_notification_hint_xy_get(E_Notification *n, int *x, int *y);
00172 EAPI E_Notification_Image *e_notification_hint_image_data_get(E_Notification *n);
00173
00174 EAPI E_Notification_Image *e_notification_hint_icon_data_get(E_Notification *n);
00175
00176
00177 EAPI E_Notification_Image *e_notification_image_new(void);
00178 EAPI void e_notification_image_free(E_Notification_Image *img);
00179 EAPI Eina_Bool e_notification_image_init(E_Notification_Image *img, Evas_Object *obj) EINA_WARN_UNUSED_RESULT;
00180 EAPI Evas_Object *e_notification_image_evas_object_add(Evas *evas, E_Notification_Image *img);
00181
00182 #ifdef __cplusplus
00183 }
00184 #endif
00185
00190 #endif