From dccffbc0a11a130ead7fd7101d90a2d8c043bfec Mon Sep 17 00:00:00 2001 From: yetist Date: Tue, 8 May 2018 13:22:49 +0800 Subject: Use GVariant --- src/daemon/engines.c | 4 ++-- src/daemon/engines.h | 2 +- src/themes/coco/coco-theme.c | 19 +++++++++---------- src/themes/nodoka/nodoka-theme.c | 19 +++++++++---------- src/themes/slider/theme.c | 18 +++++++++--------- src/themes/standard/theme.c | 18 +++++++++--------- 6 files changed, 39 insertions(+), 41 deletions(-) diff --git a/src/daemon/engines.c b/src/daemon/engines.c index 6e841c2..dc71bf1 100644 --- a/src/daemon/engines.c +++ b/src/daemon/engines.c @@ -37,7 +37,7 @@ typedef struct { void (*destroy_notification) (GtkWindow* nw); void (*show_notification) (GtkWindow* nw); void (*hide_notification) (GtkWindow* nw); - void (*set_notification_hints) (GtkWindow* nw, GHashTable* hints); + void (*set_notification_hints) (GtkWindow* nw, GVariant *hints); void (*set_notification_text) (GtkWindow* nw, const char* summary, const char* body); void (*set_notification_icon) (GtkWindow* nw, GdkPixbuf* pixbuf); void (*set_notification_arrow) (GtkWindow* nw, gboolean visible, int x, int y); @@ -251,7 +251,7 @@ void theme_hide_notification(GtkWindow* nw) } } -void theme_set_notification_hints(GtkWindow* nw, GHashTable* hints) +void theme_set_notification_hints(GtkWindow* nw, GVariant *hints) { ThemeEngine* engine = g_object_get_data(G_OBJECT(nw), "_theme_engine"); diff --git a/src/daemon/engines.h b/src/daemon/engines.h index 10ea48e..be3c498 100644 --- a/src/daemon/engines.h +++ b/src/daemon/engines.h @@ -33,7 +33,7 @@ void theme_destroy_notification (GtkWindow *nw); void theme_show_notification (GtkWindow *nw); void theme_hide_notification (GtkWindow *nw); void theme_set_notification_hints (GtkWindow *nw, - GHashTable *hints); + GVariant *hints); void theme_set_notification_timeout (GtkWindow *nw, glong timeout); void theme_notification_tick (GtkWindow *nw, diff --git a/src/themes/coco/coco-theme.c b/src/themes/coco/coco-theme.c index 2401e6c..a08baf7 100644 --- a/src/themes/coco/coco-theme.c +++ b/src/themes/coco/coco-theme.c @@ -85,7 +85,7 @@ void add_notification_action(GtkWindow *nw, const char *text, const char *key, void clear_notification_actions(GtkWindow *nw); void move_notification(GtkWidget *nw, int x, int y); void set_notification_timeout(GtkWindow *nw, glong timeout); -void set_notification_hints(GtkWindow *nw, GHashTable *hints); +void set_notification_hints(GtkWindow *nw, GVariant *hints); void notification_tick(GtkWindow *nw, glong remaining); #define STRIPE_WIDTH 32 @@ -677,20 +677,19 @@ set_notification_timeout(GtkWindow *nw, glong timeout) } /* Set notification hints */ -void -set_notification_hints(GtkWindow *nw, GHashTable *hints) +void set_notification_hints(GtkWindow *nw, GVariant *hints) { WindowData *windata = g_object_get_data(G_OBJECT(nw), "windata"); - GValue *value = NULL, *icon_value = NULL; + GVariant *value = NULL, *icon_value = NULL; g_assert(windata != NULL); - value = (GValue *)g_hash_table_lookup(hints, "urgency"); - icon_value = (GValue *)g_hash_table_lookup(hints, "action-icons"); + g_variant_lookup(hints, "urgency", "v", &value); + g_variant_lookup(hints, "action-icons", "v", &icon_value); - if (value != NULL && G_VALUE_HOLDS_UCHAR(value)) + if (value != NULL && g_variant_get_type(value) == G_VARIANT_TYPE_BYTE) { - windata->urgency = g_value_get_uchar(value); + windata->urgency = g_variant_get_byte(value); if (windata->urgency == URGENCY_CRITICAL) { gtk_window_set_title(GTK_WINDOW(nw), "Critical Notification"); @@ -700,9 +699,9 @@ set_notification_hints(GtkWindow *nw, GHashTable *hints) } /* Determine if action-icons have been requested */ - if (icon_value != NULL && G_VALUE_HOLDS_BOOLEAN(icon_value)) + if (icon_value != NULL && g_variant_get_type(icon_value) == G_VARIANT_TYPE_BOOLEAN) { - windata->action_icons = g_value_get_boolean(icon_value); + windata->action_icons = g_variant_get_boolean(icon_value); } } diff --git a/src/themes/nodoka/nodoka-theme.c b/src/themes/nodoka/nodoka-theme.c index 6348cd6..970038e 100644 --- a/src/themes/nodoka/nodoka-theme.c +++ b/src/themes/nodoka/nodoka-theme.c @@ -102,7 +102,7 @@ void add_notification_action(GtkWindow *nw, const char *text, const char *key, void clear_notification_actions(GtkWindow *nw); void move_notification(GtkWidget *nw, int x, int y); void set_notification_timeout(GtkWindow *nw, glong timeout); -void set_notification_hints(GtkWindow *nw, GHashTable *hints); +void set_notification_hints(GtkWindow *nw, GVariant *hints); void notification_tick(GtkWindow *nw, glong remaining); #define STRIPE_WIDTH 32 @@ -1082,20 +1082,19 @@ set_notification_timeout(GtkWindow *nw, glong timeout) } /* Set notification hints */ -void -set_notification_hints(GtkWindow *nw, GHashTable *hints) +void set_notification_hints(GtkWindow *nw, GVariant *hints) { WindowData *windata = g_object_get_data(G_OBJECT(nw), "windata"); - GValue *value = NULL, *icon_value = NULL; + GVariant *value = NULL, *icon_value = NULL; g_assert(windata != NULL); - value = (GValue *)g_hash_table_lookup(hints, "urgency"); - icon_value = (GValue *)g_hash_table_lookup(hints, "action-icons"); + g_variant_lookup(hints, "urgency", "v", &value); + g_variant_lookup(hints, "action-icons", "v", &icon_value); - if (value != NULL && G_VALUE_HOLDS_UCHAR(value)) + if (value != NULL && g_variant_get_type(value) == G_VARIANT_TYPE_BYTE) { - windata->urgency = g_value_get_uchar(value); + windata->urgency = g_variant_get_byte(value); if (windata->urgency == URGENCY_CRITICAL) { gtk_window_set_title(GTK_WINDOW(nw), "Critical Notification"); @@ -1105,9 +1104,9 @@ set_notification_hints(GtkWindow *nw, GHashTable *hints) } /* Determine if action-icons have been requested */ - if (icon_value != NULL && G_VALUE_HOLDS_BOOLEAN(icon_value)) + if (icon_value != NULL && g_variant_get_type(icon_value) == G_VARIANT_TYPE_BOOLEAN) { - windata->action_icons = g_value_get_boolean(icon_value); + windata->action_icons = g_variant_get_boolean(icon_value); } } diff --git a/src/themes/slider/theme.c b/src/themes/slider/theme.c index d1a2826..78984d0 100644 --- a/src/themes/slider/theme.c +++ b/src/themes/slider/theme.c @@ -76,7 +76,7 @@ void add_notification_action(GtkWindow *nw, const char *text, const char *key, void clear_notification_actions(GtkWindow *nw); void move_notification(GtkWidget *nw, int x, int y); void set_notification_timeout(GtkWindow *nw, glong timeout); -void set_notification_hints(GtkWindow *nw, GHashTable *hints); +void set_notification_hints(GtkWindow *nw, GVariant *hints); void notification_tick(GtkWindow *nw, glong remaining); gboolean get_always_stack(GtkWidget* nw); @@ -443,19 +443,19 @@ GtkWindow* create_notification(UrlClickedCb url_clicked) return GTK_WINDOW(win); } -void set_notification_hints(GtkWindow *nw, GHashTable *hints) +void set_notification_hints(GtkWindow *nw, GVariant *hints) { WindowData *windata = g_object_get_data(G_OBJECT(nw), "windata"); - GValue *value = NULL, *icon_value = NULL; + GVariant *value = NULL, *icon_value = NULL; g_assert(windata != NULL); - value = (GValue *)g_hash_table_lookup(hints, "urgency"); - icon_value = (GValue *)g_hash_table_lookup(hints, "action-icons"); + g_variant_lookup(hints, "urgency", "v", &value); + g_variant_lookup(hints, "action-icons", "v", &icon_value); - if (value != NULL && G_VALUE_HOLDS_UCHAR(value)) + if (value != NULL && g_variant_get_type(value) == G_VARIANT_TYPE_BYTE) { - windata->urgency = g_value_get_uchar(value); + windata->urgency = g_variant_get_byte(value); if (windata->urgency == URGENCY_CRITICAL) { gtk_window_set_title(GTK_WINDOW(nw), "Critical Notification"); @@ -465,9 +465,9 @@ void set_notification_hints(GtkWindow *nw, GHashTable *hints) } /* Determine if action-icons have been requested */ - if (icon_value != NULL && G_VALUE_HOLDS_BOOLEAN(icon_value)) + if (icon_value != NULL && g_variant_get_type(icon_value) == G_VARIANT_TYPE_BOOLEAN) { - windata->action_icons = g_value_get_boolean(icon_value); + windata->action_icons = g_variant_get_boolean(icon_value); } } diff --git a/src/themes/standard/theme.c b/src/themes/standard/theme.c index 0048f01..91147c2 100644 --- a/src/themes/standard/theme.c +++ b/src/themes/standard/theme.c @@ -93,7 +93,7 @@ void add_notification_action(GtkWindow *nw, const char *text, const char *key, void clear_notification_actions(GtkWindow *nw); void move_notification(GtkWidget *nw, int x, int y); void set_notification_timeout(GtkWindow *nw, glong timeout); -void set_notification_hints(GtkWindow *nw, GHashTable *hints); +void set_notification_hints(GtkWindow *nw, GVariant *hints); void notification_tick(GtkWindow *nw, glong remaining); //#define ENABLE_GRADIENT_LOOK @@ -793,19 +793,19 @@ GtkWindow* create_notification(UrlClickedCb url_clicked) return GTK_WINDOW(win); } -void set_notification_hints(GtkWindow *nw, GHashTable *hints) +void set_notification_hints(GtkWindow *nw, GVariant *hints) { WindowData *windata = g_object_get_data(G_OBJECT(nw), "windata"); - GValue *value = NULL, *icon_value = NULL; + GVariant *value = NULL, *icon_value = NULL; g_assert(windata != NULL); - value = (GValue *)g_hash_table_lookup(hints, "urgency"); - icon_value = (GValue *)g_hash_table_lookup(hints, "action-icons"); + g_variant_lookup(hints, "urgency", "v", &value); + g_variant_lookup(hints, "action-icons", "v", &icon_value); - if (value != NULL && G_VALUE_HOLDS_UCHAR(value)) + if (value != NULL && g_variant_get_type(value) == G_VARIANT_TYPE_BYTE) { - windata->urgency = g_value_get_uchar(value); + windata->urgency = g_variant_get_byte(value); if (windata->urgency == URGENCY_CRITICAL) { gtk_window_set_title(GTK_WINDOW(nw), "Critical Notification"); @@ -815,9 +815,9 @@ void set_notification_hints(GtkWindow *nw, GHashTable *hints) } /* Determine if action-icons have been requested */ - if (icon_value != NULL && G_VALUE_HOLDS_BOOLEAN(icon_value)) + if (icon_value != NULL && g_variant_get_type(icon_value) == G_VARIANT_TYPE_BOOLEAN) { - windata->action_icons = g_value_get_boolean(icon_value); + windata->action_icons = g_variant_get_boolean(icon_value); } } -- cgit v1.2.1