]> Pileus Git - ~andy/gtk/blobdiff - demos/gtk-demo/stock_browser.c
Use gtk_box_new() instead gtk_[v|h]box_new()
[~andy/gtk] / demos / gtk-demo / stock_browser.c
index 7457c5f1729f1dddcba3cd29bb873ef06eff1ac0..583fa915557b147c64ac64339d82240c6a8e83bf 100644 (file)
@@ -34,7 +34,7 @@ stock_item_info_free (StockItemInfo *info)
   g_free (info->macro);
   g_free (info->accel_str);
   if (info->small_icon)
-    g_object_unref (G_OBJECT (info->small_icon));
+    g_object_unref (info->small_icon);
   
   g_free (info);
 }
@@ -53,23 +53,15 @@ stock_item_info_copy (StockItemInfo *src)
 
   info->small_icon = src->small_icon;
   if (info->small_icon)
-    g_object_ref (G_OBJECT (info->small_icon));
+    g_object_ref (info->small_icon);
 
   return info;
 }
 
-static GType
-stock_item_info_get_type (void)
-{
-  static GType our_type = 0;
-  
-  if (our_type == 0)
-    our_type = g_boxed_type_register_static ("StockItemInfo",
-                                             (GBoxedCopyFunc) stock_item_info_copy,
-                                             (GBoxedFreeFunc) stock_item_info_free);
-
-  return our_type;
-}
+static
+G_DEFINE_BOXED_TYPE (StockItemInfo, stock_item_info,
+                     stock_item_info_copy,
+                     stock_item_info_free)
 
 typedef struct _StockItemDisplay StockItemDisplay;
 struct _StockItemDisplay
@@ -121,7 +113,7 @@ create_model (void)
   GSList *ids;
   GSList *tmp_list;
   
-  store = gtk_list_store_new (1, STOCK_ITEM_INFO_TYPE);
+  store = gtk_list_store_new (2, STOCK_ITEM_INFO_TYPE, G_TYPE_STRING);
 
   ids = gtk_stock_list_ids ();
   ids = g_slist_sort (ids, (GCompareFunc) strcmp);
@@ -190,7 +182,7 @@ create_model (void)
                                                 w, h,
                                                 GDK_INTERP_BILINEAR);
 
-              g_object_unref (G_OBJECT (info.small_icon));
+              g_object_unref (info.small_icon);
               info.small_icon = scaled;
             }
         }
@@ -210,12 +202,12 @@ create_model (void)
       info.macro = id_to_macro (info.id);
       
       gtk_list_store_append (store, &iter);
-      gtk_list_store_set (store, &iter, 0, &info, -1);
+      gtk_list_store_set (store, &iter, 0, &info, 1, info.id, -1);
 
       g_free (info.macro);
       g_free (info.accel_str);
       if (info.small_icon)
-        g_object_unref (G_OBJECT (info.small_icon));
+        g_object_unref (info.small_icon);
       
       tmp_list = g_slist_next (tmp_list);
     }
@@ -339,26 +331,6 @@ macro_set_func_text (GtkTreeViewColumn *tree_column,
   stock_item_info_free (info);
 }
 
-static void
-macro_set_func_pixbuf (GtkTreeViewColumn *tree_column,
-                      GtkCellRenderer   *cell,
-                      GtkTreeModel      *model,
-                      GtkTreeIter       *iter,
-                      gpointer           data)
-{
-  StockItemInfo *info;
-  
-  gtk_tree_model_get (model, iter,
-                      0, &info,
-                      -1);
-  
-  g_object_set (GTK_CELL_RENDERER (cell),
-                "pixbuf", info->small_icon,
-                NULL);
-  
-  stock_item_info_free (info);
-}
-
 static void
 id_set_func (GtkTreeViewColumn *tree_column,
              GtkCellRenderer   *cell,
@@ -420,7 +392,7 @@ label_set_func (GtkTreeViewColumn *tree_column,
 }
 
 GtkWidget *
-do_stock_browser (void)
+do_stock_browser (GtkWidget *do_widget)
 {  
   if (!window)
     {
@@ -437,13 +409,15 @@ do_stock_browser (void)
       GtkTreeViewColumn *column;
 
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+      gtk_window_set_screen (GTK_WINDOW (window),
+                            gtk_widget_get_screen (do_widget));
       gtk_window_set_title (GTK_WINDOW (window), "Stock Icons and Items");
       gtk_window_set_default_size (GTK_WINDOW (window), -1, 500);
 
       g_signal_connect (window, "destroy", G_CALLBACK (gtk_widget_destroyed), &window);
       gtk_container_set_border_width (GTK_CONTAINER (window), 8);
 
-      hbox = gtk_hbox_new (FALSE, 8);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 8);
       gtk_container_add (GTK_CONTAINER (window), hbox);
 
       sw = gtk_scrolled_window_new (NULL, NULL);
@@ -456,7 +430,7 @@ do_stock_browser (void)
       
       treeview = gtk_tree_view_new_with_model (model);
 
-      g_object_unref (G_OBJECT (model));
+      g_object_unref (model);
 
       gtk_container_add (GTK_CONTAINER (sw), treeview);
       
@@ -467,8 +441,8 @@ do_stock_browser (void)
       gtk_tree_view_column_pack_start (column,
                                       cell_renderer,
                                       FALSE);
-      gtk_tree_view_column_set_cell_data_func (column, cell_renderer,
-                                              macro_set_func_pixbuf, NULL, NULL);
+      gtk_tree_view_column_set_attributes (column, cell_renderer,
+                                          "stock_id", 1, NULL);
       cell_renderer = gtk_cell_renderer_text_new ();
       gtk_tree_view_column_pack_start (column,
                                       cell_renderer,
@@ -480,7 +454,6 @@ do_stock_browser (void)
                                   column);
 
       cell_renderer = gtk_cell_renderer_text_new ();
-
       gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),
                                                   -1,
                                                   "Label",
@@ -489,6 +462,7 @@ do_stock_browser (void)
                                                   NULL,
                                                   NULL);
 
+      cell_renderer = gtk_cell_renderer_text_new ();
       gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),
                                                   -1,
                                                   "Accel",
@@ -497,6 +471,7 @@ do_stock_browser (void)
                                                   NULL,
                                                   NULL);
 
+      cell_renderer = gtk_cell_renderer_text_new ();
       gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),
                                                   -1,
                                                   "ID",
@@ -511,7 +486,7 @@ do_stock_browser (void)
       frame = gtk_frame_new ("Selected Item");
       gtk_container_add (GTK_CONTAINER (align), frame);
 
-      vbox = gtk_vbox_new (FALSE, 8);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 8);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
       gtk_container_add (GTK_CONTAINER (frame), vbox);
 
@@ -543,13 +518,13 @@ do_stock_browser (void)
       selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
       gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
       
-      g_signal_connect (G_OBJECT (selection),
+      g_signal_connect (selection,
                        "changed",
                        G_CALLBACK (selection_changed),
                        NULL);
     }
 
-  if (!GTK_WIDGET_VISIBLE (window))
+  if (!gtk_widget_get_visible (window))
     {
       gtk_widget_show_all (window);
     }