]> Pileus Git - ~andy/gtk/blobdiff - demos/gtk-demo/stock_browser.c
gtk-demo: Fix segfault in editable cells demo
[~andy/gtk] / demos / gtk-demo / stock_browser.c
index 583fa915557b147c64ac64339d82240c6a8e83bf..06ccb8cea56ab65f35ea30780e6fde7cb10eb9c9 100644 (file)
@@ -35,7 +35,7 @@ stock_item_info_free (StockItemInfo *info)
   g_free (info->accel_str);
   if (info->small_icon)
     g_object_unref (info->small_icon);
-  
+
   g_free (info);
 }
 
@@ -48,7 +48,7 @@ stock_item_info_copy (StockItemInfo *src)
   info->id = g_strdup (src->id);
   info->macro = g_strdup (src->macro);
   info->accel_str = g_strdup (src->accel_str);
-  
+
   info->item = src->item;
 
   info->small_icon = src->small_icon;
@@ -82,9 +82,9 @@ id_to_macro (const gchar *id)
   /* gtk-foo-bar -> GTK_STOCK_FOO_BAR */
 
   macro = g_string_new (NULL);
-  
+
   cp = id;
-  
+
   if (strncmp (cp, "gtk-", 4) == 0)
     {
       g_string_append (macro, "GTK_STOCK_");
@@ -94,11 +94,11 @@ id_to_macro (const gchar *id)
   while (*cp)
     {
       if (*cp == '-')
-       g_string_append_c (macro, '_');
+        g_string_append_c (macro, '_');
       else if (g_ascii_islower (*cp))
-       g_string_append_c (macro, g_ascii_toupper (*cp));
+        g_string_append_c (macro, g_ascii_toupper (*cp));
       else
-       g_string_append_c (macro, *cp);
+        g_string_append_c (macro, *cp);
 
       cp++;
     }
@@ -112,7 +112,7 @@ create_model (void)
   GtkListStore *store;
   GSList *ids;
   GSList *tmp_list;
-  
+
   store = gtk_list_store_new (2, STOCK_ITEM_INFO_TYPE, G_TYPE_STRING);
 
   ids = gtk_stock_list_ids ();
@@ -124,9 +124,9 @@ create_model (void)
       GtkStockItem item;
       GtkTreeIter iter;
       GtkIconSet *icon_set;
-      
+
       info.id = tmp_list->data;
-      
+
       if (gtk_stock_lookup (info.id, &item))
         {
           info.item = item;
@@ -165,19 +165,19 @@ create_model (void)
               ++i;
             }
           g_free (sizes);
-          
-          info.small_icon = gtk_widget_render_icon (window, info.id,
-                                                    size,
-                                                    NULL);
-          
+
+          info.small_icon = gtk_widget_render_icon_pixbuf (window,
+                                                           info.id,
+                                                           size);
+
           if (size != GTK_ICON_SIZE_MENU)
             {
               /* Make the result the proper size for our thumbnail */
               gint w, h;
               GdkPixbuf *scaled;
-              
+
               gtk_icon_size_lookup (GTK_ICON_SIZE_MENU, &w, &h);
-              
+
               scaled = gdk_pixbuf_scale_simple (info.small_icon,
                                                 w, h,
                                                 GDK_INTERP_BILINEAR);
@@ -200,7 +200,7 @@ 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, info.id, -1);
 
@@ -208,10 +208,10 @@ create_model (void)
       g_free (info.accel_str);
       if (info.small_icon)
         g_object_unref (info.small_icon);
-      
+
       tmp_list = g_slist_next (tmp_list);
     }
-  
+
   g_slist_foreach (ids, (GFunc)g_free, NULL);
   g_slist_free (ids);
 
@@ -235,16 +235,16 @@ get_largest_size (const char *id)
   for (i = 0; i < n_sizes; i++)
     {
       gint width, height;
-      
+
       gtk_icon_size_lookup (sizes[i], &width, &height);
 
       if (width * height > best_pixels)
-       {
-         best_size = sizes[i];
-         best_pixels = width * height;
-       }
+        {
+          best_size = sizes[i];
+          best_pixels = width * height;
+        }
     }
-  
+
   g_free (sizes);
 
   return best_size;
@@ -257,7 +257,7 @@ selection_changed (GtkTreeSelection *selection)
   StockItemDisplay *display;
   GtkTreeModel *model;
   GtkTreeIter iter;
-  
+
   treeview = gtk_tree_selection_get_tree_view (selection);
   display = g_object_get_data (G_OBJECT (treeview), "stock-display");
 
@@ -265,7 +265,7 @@ selection_changed (GtkTreeSelection *selection)
     {
       StockItemInfo *info;
       gchar *str;
-      
+
       gtk_tree_model_get (model, &iter,
                           0, &info,
                           -1);
@@ -313,21 +313,21 @@ selection_changed (GtkTreeSelection *selection)
 
 static void
 macro_set_func_text (GtkTreeViewColumn *tree_column,
-                    GtkCellRenderer   *cell,
-                    GtkTreeModel      *model,
-                    GtkTreeIter       *iter,
-                    gpointer           data)
+                     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),
                 "text", info->macro,
                 NULL);
-  
+
   stock_item_info_free (info);
 }
 
@@ -339,15 +339,15 @@ id_set_func (GtkTreeViewColumn *tree_column,
              gpointer           data)
 {
   StockItemInfo *info;
-  
+
   gtk_tree_model_get (model, iter,
                       0, &info,
                       -1);
-  
+
   g_object_set (GTK_CELL_RENDERER (cell),
                 "text", info->id,
                 NULL);
-  
+
   stock_item_info_free (info);
 }
 
@@ -359,15 +359,15 @@ accel_set_func (GtkTreeViewColumn *tree_column,
                 gpointer           data)
 {
   StockItemInfo *info;
-  
+
   gtk_tree_model_get (model, iter,
                       0, &info,
                       -1);
-  
+
   g_object_set (GTK_CELL_RENDERER (cell),
                 "text", info->accel_str,
                 NULL);
-  
+
   stock_item_info_free (info);
 }
 
@@ -379,21 +379,21 @@ label_set_func (GtkTreeViewColumn *tree_column,
                 gpointer           data)
 {
   StockItemInfo *info;
-  
+
   gtk_tree_model_get (model, iter,
                       0, &info,
                       -1);
-  
+
   g_object_set (GTK_CELL_RENDERER (cell),
                 "text", info->item.label,
                 NULL);
-  
+
   stock_item_info_free (info);
 }
 
 GtkWidget *
 do_stock_browser (GtkWidget *do_widget)
-{  
+{
   if (!window)
     {
       GtkWidget *frame;
@@ -401,7 +401,6 @@ do_stock_browser (GtkWidget *do_widget)
       GtkWidget *hbox;
       GtkWidget *sw;
       GtkWidget *treeview;
-      GtkWidget *align;
       GtkTreeModel *model;
       GtkCellRenderer *cell_renderer;
       StockItemDisplay *display;
@@ -410,14 +409,14 @@ do_stock_browser (GtkWidget *do_widget)
 
       window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
       gtk_window_set_screen (GTK_WINDOW (window),
-                            gtk_widget_get_screen (do_widget));
+                             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_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 8);
+      hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 8);
       gtk_container_add (GTK_CONTAINER (window), hbox);
 
       sw = gtk_scrolled_window_new (NULL, NULL);
@@ -427,31 +426,31 @@ do_stock_browser (GtkWidget *do_widget)
       gtk_box_pack_start (GTK_BOX (hbox), sw, FALSE, FALSE, 0);
 
       model = create_model ();
-      
+
       treeview = gtk_tree_view_new_with_model (model);
 
       g_object_unref (model);
 
       gtk_container_add (GTK_CONTAINER (sw), treeview);
-      
+
       column = gtk_tree_view_column_new ();
       gtk_tree_view_column_set_title (column, "Macro");
 
       cell_renderer = gtk_cell_renderer_pixbuf_new ();
       gtk_tree_view_column_pack_start (column,
-                                      cell_renderer,
-                                      FALSE);
+                                       cell_renderer,
+                                       FALSE);
       gtk_tree_view_column_set_attributes (column, cell_renderer,
-                                          "stock_id", 1, NULL);
+                                           "stock_id", 1, NULL);
       cell_renderer = gtk_cell_renderer_text_new ();
       gtk_tree_view_column_pack_start (column,
-                                      cell_renderer,
-                                      TRUE);
+                                       cell_renderer,
+                                       TRUE);
       gtk_tree_view_column_set_cell_data_func (column, cell_renderer,
-                                              macro_set_func_text, NULL, NULL);
+                                               macro_set_func_text, NULL, NULL);
 
       gtk_tree_view_append_column (GTK_TREE_VIEW (treeview),
-                                  column);
+                                   column);
 
       cell_renderer = gtk_cell_renderer_text_new ();
       gtk_tree_view_insert_column_with_data_func (GTK_TREE_VIEW (treeview),
@@ -479,14 +478,12 @@ do_stock_browser (GtkWidget *do_widget)
                                                   id_set_func,
                                                   NULL,
                                                   NULL);
-      
-      align = gtk_alignment_new (0.5, 0.0, 0.0, 0.0);
-      gtk_box_pack_end (GTK_BOX (hbox), align, FALSE, FALSE, 0);
-      
+
       frame = gtk_frame_new ("Selected Item");
-      gtk_container_add (GTK_CONTAINER (align), frame);
+      gtk_widget_set_valign (frame, GTK_ALIGN_START);
+      gtk_box_pack_end (GTK_BOX (hbox), frame, FALSE, FALSE, 0);
 
-      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 8);
+      vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 8);
       gtk_container_set_border_width (GTK_CONTAINER (vbox), 4);
       gtk_container_add (GTK_CONTAINER (frame), vbox);
 
@@ -495,7 +492,7 @@ do_stock_browser (GtkWidget *do_widget)
                               "stock-display",
                               display,
                               g_free); /* free display with treeview */
-      
+
       display->type_label = gtk_label_new (NULL);
       display->macro_label = gtk_label_new (NULL);
       display->id_label = gtk_label_new (NULL);
@@ -507,7 +504,7 @@ do_stock_browser (GtkWidget *do_widget)
 
       gtk_box_pack_start (GTK_BOX (vbox), display->icon_image,
                           FALSE, FALSE, 0);
-      
+
       gtk_box_pack_start (GTK_BOX (vbox), display->label_accel_label,
                           FALSE, FALSE, 0);
       gtk_box_pack_start (GTK_BOX (vbox), display->macro_label,
@@ -517,11 +514,11 @@ do_stock_browser (GtkWidget *do_widget)
 
       selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
       gtk_tree_selection_set_mode (selection, GTK_SELECTION_SINGLE);
-      
+
       g_signal_connect (selection,
-                       "changed",
-                       G_CALLBACK (selection_changed),
-                       NULL);
+                        "changed",
+                        G_CALLBACK (selection_changed),
+                        NULL);
     }
 
   if (!gtk_widget_get_visible (window))
@@ -529,7 +526,7 @@ do_stock_browser (GtkWidget *do_widget)
       gtk_widget_show_all (window);
     }
   else
-    {   
+    {
       gtk_widget_destroy (window);
       window = NULL;
     }