Basic Framework for test program
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 26 Jan 2013 09:54:39 +0000 (10:54 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 16 Feb 2013 14:03:34 +0000 (15:03 +0100)
src/ui/gui/sheet-test.c

index f5e82d4f73fb1be4746c004bdee3881ce4218f9c..3898fef677012f7f6a2188a6ca6a6d65ffc596dc 100644 (file)
@@ -4,99 +4,65 @@
 
 #include <gtk/gtk.h>
 
-/* This is a callback function. The data arguments are ignored
- * in this example. More on callbacks below. */
-static void hello( GtkWidget *widget,
-                   gpointer   data )
-{
-    g_print ("Hello World\n");
-}
 
-static gboolean delete_event( GtkWidget *widget,
-                              GdkEvent  *event,
-                              gpointer   data )
-{
-    /* If you return FALSE in the "delete-event" signal handler,
-     * GTK will emit the "destroy" signal. Returning TRUE means
-     * you don't want the window to be destroyed.
-     * This is useful for popping up 'are you sure you want to quit?'
-     * type dialogs. */
+#define N 10
 
-    g_print ("delete event occurred\n");
+static GtkListStore *
+make_store ()
+  {
+    int i;
+    GtkTreeIter iter;
+    
+    GtkListStore * list_store  = gtk_list_store_new (2, G_TYPE_INT, G_TYPE_STRING);
 
-    /* Change TRUE to FALSE and the main window will be destroyed with
-     * a "delete-event". */
 
-    return TRUE;
-}
+    for (i = 0; i < N; ++i)
+      {
+       gtk_list_store_append (list_store, &iter);
+       gtk_list_store_set (list_store, &iter,
+                           0, N - i,
+                           1, "xxx", 
+                           -1);
+      }
+    return list_store;
+  }
 
-/* Another callback */
-static void destroy( GtkWidget *widget,
-                     gpointer   data )
-{
-    gtk_main_quit ();
-}
 
-int main( int   argc,
-          char *argv[] )
+int
+main (int argc, char *argv[] )
 {
-    /* GtkWidget is the storage type for widgets */
-    GtkWidget *window;
-    GtkWidget *button;
-    
-    /* This is called in all GTK applications. Arguments are parsed
-     * from the command line and are returned to the application. */
-    gtk_init (&argc, &argv);
-    
-    /* create a new window */
-    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-    
-    /* When the window is given the "delete-event" signal (this is given
-     * by the window manager, usually by the "close" option, or on the
-     * titlebar), we ask it to call the delete_event () function
-     * as defined above. The data passed to the callback
-     * function is NULL and is ignored in the callback function. */
-    g_signal_connect (window, "delete-event",
-                     G_CALLBACK (delete_event), NULL);
-    
-    /* Here we connect the "destroy" event to a signal handler.  
-     * This event occurs when we call gtk_widget_destroy() on the window,
-     * or if we return FALSE in the "delete-event" callback. */
-    g_signal_connect (window, "destroy",
-                     G_CALLBACK (destroy), NULL);
-    
-    /* Sets the border width of the window. */
-    gtk_container_set_border_width (GTK_CONTAINER (window), 10);
-    
-    /* Creates a new button with the label "Hello World". */
-    button = gtk_button_new_with_label ("Hello World");
-    
-    /* When the button receives the "clicked" signal, it will call the
-     * function hello() passing it NULL as its argument.  The hello()
-     * function is defined above. */
-    g_signal_connect (button, "clicked",
-                     G_CALLBACK (hello), NULL);
-    
-    /* This will cause the window to be destroyed by calling
-     * gtk_widget_destroy(window) when "clicked".  Again, the destroy
-     * signal could come from here, or the window manager. */
-    g_signal_connect_swapped (button, "clicked",
-                             G_CALLBACK (gtk_widget_destroy),
-                              window);
+
+  /* GtkWidget is the storage type for widgets */
+  GtkWidget *window;
+  GtkWidget *treeview;
     
-    /* This packs the button into the window (a gtk container). */
-    gtk_container_add (GTK_CONTAINER (window), button);
+  gtk_init (&argc, &argv);
     
-    /* The final step is to display this newly created widget. */
-    gtk_widget_show (button);
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     
-    /* and the window */
-    gtk_widget_show (window);
+  gtk_container_set_border_width (GTK_CONTAINER (window), 10);
+
+
+  treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (make_store ()));
+
+  gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
+                                              0, "sheet name",
+                                              gtk_cell_renderer_text_new (),
+                                              "text", 0,
+                                              NULL);
+
+
+  gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
+                                              1, "range",
+                                              gtk_cell_renderer_text_new (),
+                                              "text", 1,
+                                              NULL);
+
+  gtk_container_add (GTK_CONTAINER (window), treeview);
+
+  gtk_widget_show_all (window);
     
-    /* All GTK applications must have a gtk_main(). Control ends here
-     * and waits for an event to occur (like a key press or
-     * mouse event). */
-    gtk_main ();
+  gtk_main ();
     
-    return 0;
+  return 0;
 }