static void channel_online_cb(GObject* source, GParamSpec* pspe, gpointer udata) { GtFavouritesManager* self = GT_FAVOURITES_MANAGER(udata); GtFavouritesManagerPrivate* priv = gt_favourites_manager_get_instance_private(self); gboolean online; gchar* name; gchar* game; g_object_get(source, "online", &online, "name", &name, "game", &game, NULL); if (online) { GNotification* notification; gchar title_str[100]; gchar body_str[100]; g_sprintf(title_str, _("Channel %s is now online"), name); g_sprintf(body_str, _("Streaming %s"), game); notification = g_notification_new(title_str); g_notification_set_body(notification, body_str); g_application_send_notification(G_APPLICATION(main_app), NULL, notification); g_object_unref(notification); } }
static void shoes_native_systray_gapp(char *title, char *message, char *path) { GNotification *note; note = g_notification_new (title); g_notification_set_body (note, message); GFile *iconf = g_file_new_for_path (path); GIcon *icon = g_file_icon_new (iconf); g_notification_set_icon(note, icon); //TODO: could get icon from settings shoes_settings *st; Data_Get_Struct(shoes_world->settings, shoes_settings, st); g_application_send_notification (G_APPLICATION(shoes_GtkApp), RSTRING_PTR(st->app_name), note); }
void activate(GApplication *app, gpointer user_data) { GtkMenuItem *menu_cal; const gchar *today_text; GNotification *notification; menu_cal = GTK_MENU_ITEM(gtk_builder_get_object(builder, "menu_cal")); today_text = gtk_menu_item_get_label(menu_cal); /* create a notify with today_text when app activates */ notification = g_notification_new(_("Acal")); g_notification_set_body(notification, today_text); g_application_send_notification(app, "today-notify", notification); g_object_unref(notification); }
static void message_handler(struct ua *ua, const struct pl *peer, const struct pl *ctype, struct mbuf *body, void *arg) { struct gtk_mod *mod = arg; char title[128]; char msg[512]; #if GLIB_CHECK_VERSION(2,40,0) GNotification *notification; #elif defined(USE_LIBNOTIFY) NotifyNotification *notification; #endif (void)ua; (void)ctype; /* Display notification of chat */ re_snprintf(title, sizeof title, "Chat from %r", peer); title[sizeof title - 1] = '\0'; re_snprintf(msg, sizeof msg, "%b", mbuf_buf(body), mbuf_get_left(body)); #if GLIB_CHECK_VERSION(2,40,0) notification = g_notification_new(title); g_notification_set_body(notification, msg); g_application_send_notification(mod->app, NULL, notification); g_object_unref(notification); #elif defined(USE_LIBNOTIFY) (void)mod; if (!notify_is_initted()) return; notification = notify_notification_new(title, msg, "baresip"); notify_notification_show(notification, NULL); g_object_unref(notification); #endif }
static void remmina_plugin_spice_file_transfer_finished_cb(SpiceFileTransferTask *task, GError *error, RemminaProtocolWidget *gp) { TRACE_CALL(__func__); gchar *filename, *notification_message; GNotification *notification; RemminaPluginSpiceData *gpdata = GET_PLUGIN_DATA(gp); /* * Send a desktop notification to inform about the outcome of * the file transfer. */ filename = spice_file_transfer_task_get_filename(task); if (error) { notification = g_notification_new(_("Transfer error")); notification_message = g_strdup_printf(_("%s: %s"), filename, error->message); }else { notification = g_notification_new(_("Transfer completed")); notification_message = g_strdup_printf(_("File %s transferred successfully"), filename); } g_notification_set_body(notification, notification_message); g_application_send_notification(g_application_get_default(), "remmina-plugin-spice-file-transfer-finished", notification); g_hash_table_remove(gpdata->file_transfers, task); if (!g_hash_table_size(gpdata->file_transfers)) { gtk_widget_hide(gpdata->file_transfer_dialog); } g_free(filename); g_free(notification_message); g_object_unref(notification); }
static void notify_incoming_call(struct gtk_mod *mod, struct call *call) { static const char *title = "Incoming call"; const char *msg = call_peeruri(call); GtkWidget *call_menu; GtkWidget *menu_item; #if defined(USE_LIBNOTIFY) NotifyNotification *notification; if (!notify_is_initted()) return; notification = notify_notification_new(title, msg, "baresip"); notify_notification_set_urgency(notification, NOTIFY_URGENCY_CRITICAL); notify_notification_show(notification, NULL); g_object_unref(notification); #elif GLIB_CHECK_VERSION(2,40,0) char id[64]; GVariant *target; GNotification *notification = g_notification_new(title); re_snprintf(id, sizeof id, "incoming-call-%p", call); id[sizeof id - 1] = '\0'; #if GLIB_CHECK_VERSION(2,42,0) g_notification_set_priority(notification, G_NOTIFICATION_PRIORITY_URGENT); #else g_notification_set_urgent(notification, TRUE); #endif target = g_variant_new_int64(GPOINTER_TO_INT(call)); g_notification_set_body(notification, msg); g_notification_add_button_with_target_value(notification, "Answer", "app.answer", target); g_notification_add_button_with_target_value(notification, "Reject", "app.reject", target); g_application_send_notification(mod->app, id, notification); g_object_unref(notification); #else (void)msg; (void)title; #endif /* Add incoming call to the app menu */ call_menu = gtk_menu_new(); menu_item = gtk_menu_item_new_with_mnemonic("_Incoming call"); g_object_set_data(G_OBJECT(menu_item), "call", call); gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), call_menu); gtk_menu_shell_prepend(GTK_MENU_SHELL(mod->app_menu), menu_item); mod->incoming_call_menus = g_slist_append(mod->incoming_call_menus, menu_item); menu_item = gtk_menu_item_new_with_label(call_peeruri(call)); gtk_widget_set_sensitive(menu_item, FALSE); gtk_menu_shell_append(GTK_MENU_SHELL(call_menu), menu_item); menu_item = gtk_menu_item_new_with_mnemonic("_Accept"); g_object_set_data(G_OBJECT(menu_item), "call", call); g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(menu_on_incoming_call_answer), mod); gtk_menu_shell_append(GTK_MENU_SHELL(call_menu), menu_item); menu_item = gtk_menu_item_new_with_mnemonic("_Reject"); g_object_set_data(G_OBJECT(menu_item), "call", call); g_signal_connect(G_OBJECT(menu_item), "activate", G_CALLBACK(menu_on_incoming_call_reject), mod); gtk_menu_shell_append(GTK_MENU_SHELL(call_menu), menu_item); }