[gtk+] Add some (silly) GNotification example
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add some (silly) GNotification example
- Date: Mon, 21 Oct 2013 21:24:10 +0000 (UTC)
commit 111120297c2cde54b3feda926f5e04f6608e3bc9
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Oct 21 17:23:44 2013 -0400
Add some (silly) GNotification example
Bloatpad can now notify you.
examples/bloatpad.c | 38 +++++++++++++++++++++++++++++++++++++-
1 files changed, 37 insertions(+), 1 deletions(-)
---
diff --git a/examples/bloatpad.c b/examples/bloatpad.c
index 0789ea9..5ed5e7b 100644
--- a/examples/bloatpad.c
+++ b/examples/bloatpad.c
@@ -113,12 +113,46 @@ window_paste (GSimpleAction *action,
}
+static void
+activate_clear (GSimpleAction *action,
+ GVariant *parameter,
+ gpointer user_data)
+{
+ GtkWindow *window = GTK_WINDOW (user_data);
+ GtkTextView *text = g_object_get_data ((GObject*)window, "bloatpad-text");
+
+ gtk_text_buffer_set_text (gtk_text_view_get_buffer (text), "", -1);
+}
+
+static void
+text_buffer_changed_cb (GtkTextBuffer *buffer,
+ GApplication *app)
+{
+ gint old_n, n;
+
+ old_n = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (buffer), "line-count"));
+ n = gtk_text_buffer_get_line_count (buffer);
+ g_object_set_data (G_OBJECT (buffer), "line-count", GINT_TO_POINTER (n));
+
+ if (old_n < 3 && n == 3)
+ {
+ GNotification *n;
+ n = g_notification_new ("Three lines of text");
+ g_notification_set_body (n, "Keep up the good work!");
+ g_notification_add_button (n, "Start over", "app.clear");
+ g_application_send_notification (app, "three-lines", n);
+ g_object_unref (n);
+ }
+}
+
static GActionEntry win_entries[] = {
{ "copy", window_copy, NULL, NULL, NULL },
{ "paste", window_paste, NULL, NULL, NULL },
{ "fullscreen", activate_toggle, NULL, "false", change_fullscreen_state },
{ "busy", activate_toggle, NULL, "false", change_busy_state },
- { "justify", activate_radio, "s", "'left'", change_justify_state }
+ { "justify", activate_radio, "s", "'left'", change_justify_state },
+ { "clear", activate_clear, NULL, NULL, NULL }
+
};
static void
@@ -196,6 +230,8 @@ new_window (GApplication *app,
g_free (contents);
}
}
+ g_signal_connect (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)), "changed",
+ G_CALLBACK (text_buffer_changed_cb), app);
gtk_widget_show_all (GTK_WIDGET (window));
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]