[gnome-devel-docs] tutorials C: Statusbar sample/page/media image and Makefile mod
- From: Tiffany Antopolski <antopolski src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-devel-docs] tutorials C: Statusbar sample/page/media image and Makefile mod
- Date: Sun, 24 Jun 2012 22:57:59 +0000 (UTC)
commit 60c4014378bc2e22b3799e96a73502dbec3c1747
Author: Monica Kochofar <monicakochofar gmail com>
Date: Fri Jun 22 15:57:37 2012 -0400
tutorials C: Statusbar sample/page/media image and Makefile mod
platform-demos/C/media/statusbar3.png | Bin 0 -> 6949 bytes
platform-demos/C/samples/statusbar.c | 97 +++++++++++++++++++++++++++++++++
platform-demos/C/statusbar.c.page | 40 ++++++++++++++
platform-demos/Makefile.am | 3 +
4 files changed, 140 insertions(+), 0 deletions(-)
---
diff --git a/platform-demos/C/media/statusbar3.png b/platform-demos/C/media/statusbar3.png
new file mode 100644
index 0000000..36c74f2
Binary files /dev/null and b/platform-demos/C/media/statusbar3.png differ
diff --git a/platform-demos/C/samples/statusbar.c b/platform-demos/C/samples/statusbar.c
new file mode 100644
index 0000000..9b03203
--- /dev/null
+++ b/platform-demos/C/samples/statusbar.c
@@ -0,0 +1,97 @@
+#include <gtk/gtk.h>
+
+/*Global variable in which holds the statusbar*/
+GtkWidget *status_bar;
+
+
+
+/*Callback function in which pushes an item onto the statusbar*/
+static void
+push_item(GtkWidget *widget,
+ gpointer data)
+{
+ /*Count is used to keep track of the amount of items
+ the user is pushing/popping*/
+ static int count = 1;
+ char hold_output[20];
+
+ /*This is a safer form of the standard sprintf() function. The output is
+ gauranteed in this case to not exceed 20 characters, and the result is stored
+ into the 'hold_output' variable*/
+ g_snprintf(hold_output, 20, "Item %d", count++);
+ gtk_statusbar_push(GTK_STATUSBAR (status_bar),
+ GPOINTER_TO_INT (data),
+ hold_output);
+}
+
+
+
+/*Callback function that is used to pop an item off the statusbar*/
+static void
+pop_item(GtkWidget *widget,
+ gpointer data )
+{
+ gtk_statusbar_pop(GTK_STATUSBAR (status_bar), GPOINTER_TO_INT (data));
+}
+
+static void
+activate (GtkApplication *app,
+ gpointer user_data)
+{
+
+ GtkWidget *window;
+ GtkWidget *grid;
+ GtkWidget *push_button;
+ GtkWidget *pop_button;
+
+ guint context_id;
+
+ /*Create a window with a title and a default size**/
+ window = gtk_application_window_new (app);
+ gtk_window_set_default_size(GTK_WINDOW (window), 200, 100);
+ gtk_window_set_title(GTK_WINDOW (window), "Statusbar Example");
+
+ /*Create the status bar, which is held in the global variable*/
+ status_bar = gtk_statusbar_new ();
+
+ /*Create a context id, which is used to uniquely identify
+ the source of a message*/
+ context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar),
+ "Statusbar example");
+
+ /*Create the buttons with labels*/
+ push_button = gtk_button_new_with_label ("push item");
+ pop_button = gtk_button_new_with_label ("pop last item");
+
+ /*Create the grid, and attach the buttons/statusbar accordingly*/
+ grid = gtk_grid_new ();
+ gtk_grid_attach (GTK_GRID (grid), status_bar, 1,1,1,1);
+ gtk_grid_attach (GTK_GRID (grid), push_button, 1,2,1,1);
+ gtk_grid_attach (GTK_GRID (grid), pop_button, 1,3,1,1);
+
+ /*Connecting the clicked signals to the corresponding callback functions*/
+ g_signal_connect (GTK_BUTTON (push_button), "clicked",
+ G_CALLBACK (push_item), &context_id);
+ g_signal_connect (GTK_BUTTON (pop_button), "clicked",
+ G_CALLBACK (pop_item), &context_id);
+
+ /*Attach the grid holding the child widgets onto the window, and show all*/
+ gtk_container_add (GTK_CONTAINER (window), grid);
+ gtk_widget_show_all (window);
+}
+
+
+
+int
+main (int argc, char **argv)
+{
+ GtkApplication *app;
+ int status;
+
+ app = gtk_application_new ("org.gtk.example", G_APPLICATION_FLAGS_NONE);
+ g_signal_connect (app, "activate", G_CALLBACK (activate), NULL);
+ status = g_application_run (G_APPLICATION (app), argc, argv);
+ g_object_unref (app);
+
+ return status;
+}
diff --git a/platform-demos/C/statusbar.c.page b/platform-demos/C/statusbar.c.page
new file mode 100644
index 0000000..c8c32af
--- /dev/null
+++ b/platform-demos/C/statusbar.c.page
@@ -0,0 +1,40 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<page xmlns="http://projectmallard.org/1.0/"
+ xmlns:xi="http://www.w3.org/2001/XInclude"
+ type="guide" style="task"
+ id="statusbar.c">
+ <info>
+ <link type="guide" xref="beginner.c#buttons"/>
+ <link type="seealso" xref="grid.c"/>
+ <link type="seealso" xref="button.c"/>
+
+
+ <revision version="0.1" date="2012-06-22" status="draft"/>
+
+ <credit type="author copyright">
+ <name>Monica Kochofar</name>
+ <email>monicakochofar gmail com</email>
+ <years>2012</years>
+ </credit>
+
+ <desc>Report messages of minor importance to the user</desc>
+ </info>
+
+ <title>Statusbar</title>
+
+ <media type="image" mime="image/png" src="media/statusbar3.png"/>
+ <p>This statusbar is used to demonstrate how messages are stacked in a last-in-first-out order. The message on the top of the stack is always the one displayed.</p>
+
+ <code mime="text/x-csrc" style="numbered">
+<xi:include href="samples/statusbar.c" parse="text"><xi:fallback/></xi:include></code>
+<p>
+ In this sample we used the following:
+</p>
+<list>
+ <item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkApplication.html">GtkApplication</link></p></item>
+ <item><p><link href="http://developer.gnome.org/gtk3/3.4/GtkWindow.html">GtkWindow</link></p></item>
+ <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkStatusbar.htmll">GtkStatusBar</link></p></item>
+ <item><p><link href="http://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-snprintf">String Utility Functions</link></p></item>
+ <item><p><link href="http://developer.gnome.org/gtk3/stable/GtkGrid.html">GtkGrid</link></p></item>
+</list>
+</page>
diff --git a/platform-demos/Makefile.am b/platform-demos/Makefile.am
index 70814f2..1db384b 100644
--- a/platform-demos/Makefile.am
+++ b/platform-demos/Makefile.am
@@ -91,6 +91,7 @@ demo_sources = \
samples/spinner.js \
samples/spinner.py \
samples/spinner.vala \
+ samples/statusbar.c \
samples/statusbar.js \
samples/statusbar.py \
samples/statusbar.vala \
@@ -165,6 +166,7 @@ DOC_FIGURES = \
media/spinner.png \
media/statusbar.png \
media/statusbar2.png \
+ media/statusbar3.png \
media/switch_on.png \
media/switch_off.png \
media/textview.png \
@@ -278,6 +280,7 @@ DOC_PAGES = \
spinner.js.page \
spinner.py.page \
spinner.vala.page \
+ statusbar.c.page \
statusbar.js.page \
statusbar.py.page \
statusbar.vala.page \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]