Notification: Add NotifyClosedReason enum to define closed reasons

We don't change the formal type of notify_notification_get_closed_reason
but it's safe enough to compare the two returned values.
This commit is contained in:
Marco Trevisan (Treviño) 2022-05-16 11:42:44 +02:00
parent cc30d8b8dd
commit 9e9cb423b9
3 changed files with 34 additions and 6 deletions

View File

@ -4,6 +4,7 @@ NOTIFY_EXPIRES_DEFAULT
NOTIFY_EXPIRES_NEVER NOTIFY_EXPIRES_NEVER
<TITLE>NotifyNotification</TITLE> <TITLE>NotifyNotification</TITLE>
NotifyNotification NotifyNotification
NotifyClosedReason
NotifyUrgency NotifyUrgency
NotifyActionCallback NotifyActionCallback
NOTIFY_ACTION_CALLBACK NOTIFY_ACTION_CALLBACK

View File

@ -234,9 +234,9 @@ notify_notification_class_init (NotifyNotificationClass *klass)
g_param_spec_int ("closed-reason", g_param_spec_int ("closed-reason",
"Closed Reason", "Closed Reason",
"The reason code for why the notification was closed", "The reason code for why the notification was closed",
-1, NOTIFY_CLOSED_REASON_UNSET,
G_MAXINT32, G_MAXINT32,
-1, NOTIFY_CLOSED_REASON_UNSET,
G_PARAM_READABLE G_PARAM_READABLE
| G_PARAM_STATIC_NAME | G_PARAM_STATIC_NAME
| G_PARAM_STATIC_NICK | G_PARAM_STATIC_NICK
@ -357,7 +357,7 @@ notify_notification_init (NotifyNotification *obj)
{ {
obj->priv = g_new0 (NotifyNotificationPrivate, 1); obj->priv = g_new0 (NotifyNotificationPrivate, 1);
obj->priv->timeout = NOTIFY_EXPIRES_DEFAULT; obj->priv->timeout = NOTIFY_EXPIRES_DEFAULT;
obj->priv->closed_reason = -1; obj->priv->closed_reason = NOTIFY_CLOSED_REASON_UNSET;
obj->priv->hints = g_hash_table_new_full (g_str_hash, obj->priv->hints = g_hash_table_new_full (g_str_hash,
g_str_equal, g_str_equal,
g_free, g_free,
@ -1361,13 +1361,17 @@ notify_notification_close (NotifyNotification *notification,
* Returns the closed reason code for the notification. This is valid only * Returns the closed reason code for the notification. This is valid only
* after the "closed" signal is emitted. * after the "closed" signal is emitted.
* *
* Returns: The closed reason code. * Since version 0.8.0 the returned value is of type #NotifyClosedReason.
*
* Returns: An integer representing the closed reason code
* (Since 0.8.0 it's also a #NotifyClosedReason).
*/ */
gint gint
notify_notification_get_closed_reason (const NotifyNotification *notification) notify_notification_get_closed_reason (const NotifyNotification *notification)
{ {
g_return_val_if_fail (notification != NULL, -1); g_return_val_if_fail (notification != NULL, NOTIFY_CLOSED_REASON_UNSET);
g_return_val_if_fail (NOTIFY_IS_NOTIFICATION (notification), -1); g_return_val_if_fail (NOTIFY_IS_NOTIFICATION (notification),
NOTIFY_CLOSED_REASON_UNSET);
return notification->priv->closed_reason; return notification->priv->closed_reason;
} }

View File

@ -93,6 +93,29 @@ typedef enum
} NotifyUrgency; } NotifyUrgency;
/**
* NotifyClosedReason:
* @NOTIFY_CLOSED_REASON_UNSET: Notification not closed.
* @NOTIFY_CLOSED_REASON_EXPIRED: Timeout has expired.
* @NOTIFY_CLOSED_REASON_DISMISSED: It has been dismissed by the user.
* @NOTIFY_CLOSED_REASON_API_REQUEST: It has been closed by a call to
* notify_notification_close().
* @NOTIFY_CLOSED_REASON_UNDEFIEND: Closed by undefined/reserved reasons.
*
* The reason for which the notification has been closed.
*
* Since: 0.8.0
*/
typedef enum
{
NOTIFY_CLOSED_REASON_UNSET = -1,
NOTIFY_CLOSED_REASON_EXPIRED = 1,
NOTIFY_CLOSED_REASON_DISMISSED = 2,
NOTIFY_CLOSED_REASON_API_REQUEST = 3,
NOTIFY_CLOSED_REASON_UNDEFIEND = 4,
} NotifyClosedReason;
/** /**
* NotifyActionCallback: * NotifyActionCallback:
* @notification: a #NotifyActionCallback notification * @notification: a #NotifyActionCallback notification