[gnome-devel-docs] tutorials C: Statusbar sample/page/media image and Makefile mod



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]