[gtk+] Remove usage of stock APIs in demo



commit 708dd8cc52358f13438c9fb53051f3c717dfef50
Author: William Jon McCann <william jon mccann gmail com>
Date:   Fri Jun 21 13:46:54 2013 -0400

    Remove usage of stock APIs in demo
    
    With the exception of GtkAction.

 demos/gtk-demo/Makefile.am         |    1 -
 demos/gtk-demo/application.c       |   36 ---
 demos/gtk-demo/application.ui      |   10 +-
 demos/gtk-demo/appwindow.c         |   59 +----
 demos/gtk-demo/button_box.c        |    7 +-
 demos/gtk-demo/changedisplay.c     |    7 +-
 demos/gtk-demo/clipboard.c         |   34 ++-
 demos/gtk-demo/combobox.c          |   74 ++----
 demos/gtk-demo/css_shadows.c       |    6 +-
 demos/gtk-demo/demo.gresource.xml  |    1 -
 demos/gtk-demo/dialog.c            |   11 +-
 demos/gtk-demo/entry_buffer.c      |    3 +-
 demos/gtk-demo/entry_completion.c  |    3 +-
 demos/gtk-demo/expander.c          |    3 +-
 demos/gtk-demo/iconview.c          |    9 +-
 demos/gtk-demo/infobar.c           |    3 +-
 demos/gtk-demo/list_store.c        |    3 +-
 demos/gtk-demo/listbox.ui          |    2 +-
 demos/gtk-demo/main.c              |    1 -
 demos/gtk-demo/makefile.msc.in     |    2 -
 demos/gtk-demo/offscreen_window2.c |    7 +-
 demos/gtk-demo/revealer.ui         |    4 +-
 demos/gtk-demo/search_entry.c      |   28 +--
 demos/gtk-demo/sizegroup.c         |    3 +-
 demos/gtk-demo/spinner.c           |    7 +-
 demos/gtk-demo/stock_browser.c     |  535 ------------------------------------
 demos/gtk-demo/toolpalette.c       |  104 ++++----
 demos/gtk-demo/ui_manager.c        |    6 -
 28 files changed, 156 insertions(+), 813 deletions(-)
---
diff --git a/demos/gtk-demo/Makefile.am b/demos/gtk-demo/Makefile.am
index fa74321..a10e4f4 100644
--- a/demos/gtk-demo/Makefile.am
+++ b/demos/gtk-demo/Makefile.am
@@ -47,7 +47,6 @@ demos =                                               \
        sizegroup.c                             \
        spinner.c                               \
        stack.c                                 \
-       stock_browser.c                         \
        textview.c                              \
        textscroll.c                            \
        theming_style_classes.c                 \
diff --git a/demos/gtk-demo/application.c b/demos/gtk-demo/application.c
index 31b1da0..048535a 100644
--- a/demos/gtk-demo/application.c
+++ b/demos/gtk-demo/application.c
@@ -156,40 +156,6 @@ activate_quit (GSimpleAction *action,
 }
 
 static void
-register_stock_icons (void)
-{
-  static gboolean registered = FALSE;
-
-  if (!registered)
-    {
-      GdkPixbuf *pixbuf;
-      GtkIconFactory *factory;
-      GtkIconSet *icon_set;
-
-      static GtkStockItem items[] = {
-        { "demo-gtk-logo", "_GTK!", 0, 0, NULL }
-      };
-
-      registered = TRUE;
-
-      gtk_stock_add (items, G_N_ELEMENTS (items));
-
-      factory = gtk_icon_factory_new ();
-      gtk_icon_factory_add_default (factory);
-
-      pixbuf = gdk_pixbuf_new_from_resource ("/application/gtk-logo-24.png", NULL);
-
-      icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-      gtk_icon_factory_add (factory, "demo-gtk-logo", icon_set);
-      gtk_icon_set_unref (icon_set);
-      g_object_unref (pixbuf);
-
-      /* Drop our reference to the factory, GTK will hold a reference. */
-      g_object_unref (factory);
-    }
-}
-
-static void
 update_statusbar (GtkTextBuffer *buffer,
                   GtkStatusbar  *statusbar)
 {
@@ -376,8 +342,6 @@ main (int argc, char *argv[])
 
   gtk_init (NULL, NULL);
 
-  register_stock_icons ();
-
   app = gtk_application_new ("org.gtk.Demo", 0);
   settings = g_settings_new ("org.gtk.Demo");
 
diff --git a/demos/gtk-demo/application.ui b/demos/gtk-demo/application.ui
index 7085134..a0801f5 100644
--- a/demos/gtk-demo/application.ui
+++ b/demos/gtk-demo/application.ui
@@ -8,12 +8,12 @@
         <property name="hexpand">True</property>
         <child>
           <object class="GtkMenuToolButton" id="menutool">
-            <property name="stock-id">gtk-open</property>
+            <property name="icon-name">document-open</property>
           </object>
         </child>
         <child>
           <object class="GtkToolButton" id="quit">
-            <property name="stock-id">gtk-quit</property>
+            <property name="icon-name">application-exit</property>
             <property name="action-name">app.quit</property>
           </object>
         </child>
@@ -22,7 +22,7 @@
         </child>
         <child>
           <object class="GtkToolButton" id="logo">
-            <property name="stock-id">demo-gtk-logo</property>
+            <property name="icon-name">applications-other</property>
             <property name="action-name">win.logo</property>
           </object>
         </child>
@@ -54,8 +54,8 @@
               <object class="GtkButton" id="button">
                 <property name="visible">True</property>
                 <property name="valign">center</property>
-                <property name="label">gtk-ok</property>
-                <property name="use-stock">True</property>
+                <property name="label" translatable="yes">_OK</property>
+                <property name="use_underline">True</property>
               </object>
             </child>
           </object>
diff --git a/demos/gtk-demo/appwindow.c b/demos/gtk-demo/appwindow.c
index df4d06b..155a019 100644
--- a/demos/gtk-demo/appwindow.c
+++ b/demos/gtk-demo/appwindow.c
@@ -7,6 +7,7 @@
 
 #include "config.h"
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -177,10 +178,6 @@ static GtkActionEntry entries[] = {
     "_About", "<control>A",                    /* label, accelerator */
     "About",                                   /* tooltip */
     G_CALLBACK (about_cb) },
-  { "Logo", "demo-gtk-logo",                   /* name, stock id */
-     NULL, NULL,                               /* label, accelerator */
-    "GTK+",                                    /* tooltip */
-    G_CALLBACK (activate_action) },
 };
 static guint n_entries = G_N_ELEMENTS (entries);
 
@@ -279,59 +276,9 @@ static const gchar *ui_info =
 "      </menu>"
 "    </toolitem>"
 "    <toolitem action='Quit'/>"
-"    <separator action='Sep1'/>"
-"    <toolitem action='Logo'/>"
 "  </toolbar>"
 "</ui>";
 
-
-
-/* This function registers our custom toolbar icons, so they can be themed.
- *
- * It's totally optional to do this, you could just manually insert icons
- * and have them not be themeable, especially if you never expect people
- * to theme your app.
- */
-static void
-register_stock_icons (void)
-{
-  static gboolean registered = FALSE;
-
-  if (!registered)
-    {
-      GdkPixbuf *pixbuf;
-      GtkIconFactory *factory;
-      GtkIconSet *icon_set;
-
-      static GtkStockItem items[] = {
-        { "demo-gtk-logo",
-          "_GTK!",
-          0, 0, NULL }
-      };
-
-      registered = TRUE;
-
-      /* Register our stock items */
-      gtk_stock_add (items, G_N_ELEMENTS (items));
-
-      /* Add our custom icon factory to the list of defaults */
-      factory = gtk_icon_factory_new ();
-      gtk_icon_factory_add_default (factory);
-
-      pixbuf = gdk_pixbuf_new_from_resource ("/appwindow/gtk-logo-old.png", NULL);
-      /* We assert the existence of the pixbuf as we load it from a custom resource. */
-      g_assert (pixbuf);
-
-      icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-      gtk_icon_factory_add (factory, "demo-gtk-logo", icon_set);
-      gtk_icon_set_unref (icon_set);
-      g_object_unref (pixbuf);
-
-      /* Drop our reference to the factory, GTK will hold a reference. */
-      g_object_unref (factory);
-    }
-}
-
 static void
 update_statusbar (GtkTextBuffer *buffer,
                   GtkStatusbar  *statusbar)
@@ -387,8 +334,6 @@ do_appwindow (GtkWidget *do_widget)
       GtkUIManager *merge;
       GError *error = NULL;
 
-      register_stock_icons ();
-
       /* Create the toplevel window
        */
 
@@ -470,7 +415,7 @@ do_appwindow (GtkWidget *do_widget)
                           messagelabel,
                           TRUE, TRUE, 0);
       gtk_info_bar_add_button (GTK_INFO_BAR (infobar),
-                               GTK_STOCK_OK, GTK_RESPONSE_OK);
+                               _("OK"), GTK_RESPONSE_OK);
       g_signal_connect (infobar, "response",
                         G_CALLBACK (gtk_widget_hide), NULL);
 
diff --git a/demos/gtk-demo/button_box.c b/demos/gtk-demo/button_box.c
index 798dc7c..3ad1707 100644
--- a/demos/gtk-demo/button_box.c
+++ b/demos/gtk-demo/button_box.c
@@ -3,6 +3,7 @@
  * The Button Box widgets are used to arrange buttons with padding.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *
@@ -28,13 +29,13 @@ create_bbox (gint  horizontal,
   gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), layout);
   gtk_box_set_spacing (GTK_BOX (bbox), spacing);
 
-  button = gtk_button_new_from_stock (GTK_STOCK_OK);
+  button = gtk_button_new_with_label (_("OK"));
   gtk_container_add (GTK_CONTAINER (bbox), button);
 
-  button = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+  button = gtk_button_new_with_label (_("Cancel"));
   gtk_container_add (GTK_CONTAINER (bbox), button);
 
-  button = gtk_button_new_from_stock (GTK_STOCK_HELP);
+  button = gtk_button_new_with_label (_("Help"));
   gtk_container_add (GTK_CONTAINER (bbox), button);
 
   return frame;
diff --git a/demos/gtk-demo/changedisplay.c b/demos/gtk-demo/changedisplay.c
index 5997c70..7525d8a 100644
--- a/demos/gtk-demo/changedisplay.c
+++ b/demos/gtk-demo/changedisplay.c
@@ -29,6 +29,7 @@
 
 #undef GDK_DISABLE_DEPRECATED
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 /* The ChangeDisplayInfo structure corresponds to a toplevel window and
@@ -211,8 +212,8 @@ open_display_cb (GtkWidget         *button,
   dialog = gtk_dialog_new_with_buttons ("Open Display",
                                         GTK_WINDOW (info->window),
                                         GTK_DIALOG_MODAL,
-                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                        GTK_STOCK_OK, GTK_RESPONSE_OK,
+                                        _("_Cancel"), GTK_RESPONSE_CANCEL,
+                                        _("_OK"), GTK_RESPONSE_OK,
                                         NULL);
 
   gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK);
@@ -528,7 +529,7 @@ do_changedisplay (GtkWidget *do_widget)
       info->window = gtk_dialog_new_with_buttons ("Change Screen or display",
                                             GTK_WINDOW (do_widget),
                                             0,
-                                            GTK_STOCK_CLOSE,  GTK_RESPONSE_CLOSE,
+                                            _("_Close"),  GTK_RESPONSE_CLOSE,
                                             "Change",         GTK_RESPONSE_OK,
                                             NULL);
 
diff --git a/demos/gtk-demo/clipboard.c b/demos/gtk-demo/clipboard.c
index 9497403..fdf25fa 100644
--- a/demos/gtk-demo/clipboard.c
+++ b/demos/gtk-demo/clipboard.c
@@ -9,6 +9,7 @@
  * manager to run.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include <string.h>
 
@@ -68,17 +69,24 @@ paste_button_clicked (GtkWidget *button,
 static GdkPixbuf *
 get_image_pixbuf (GtkImage *image)
 {
-  gchar *stock_id;
+  gchar *icon_name;
   GtkIconSize size;
+  GtkIconTheme *icon_theme;
+  int width;
 
   switch (gtk_image_get_storage_type (image))
     {
     case GTK_IMAGE_PIXBUF:
       return g_object_ref (gtk_image_get_pixbuf (image));
-    case GTK_IMAGE_STOCK:
-      gtk_image_get_stock (image, &stock_id, &size);
-      return gtk_widget_render_icon_pixbuf (GTK_WIDGET (image),
-                                            stock_id, size);
+    case GTK_IMAGE_ICON_NAME:
+      gtk_image_get_icon_name (image, &icon_name, &size);
+      icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (image));
+      gtk_icon_size_lookup (size, &width, NULL);
+      return gtk_icon_theme_load_icon (icon_theme,
+                                       icon_name,
+                                       width,
+                                       GTK_ICON_LOOKUP_GENERIC_FALLBACK,
+                                       NULL);
     default:
       g_warning ("Image storage type %d not handled",
                  gtk_image_get_storage_type (image));
@@ -177,12 +185,12 @@ button_press (GtkWidget      *widget,
 
   menu = gtk_menu_new ();
 
-  item = gtk_image_menu_item_new_from_stock (GTK_STOCK_COPY, NULL);
+  item = gtk_menu_item_new_with_mnemonic (_("_Copy"));
   g_signal_connect (item, "activate", G_CALLBACK (copy_image), data);
   gtk_widget_show (item);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
 
-  item = gtk_image_menu_item_new_from_stock (GTK_STOCK_PASTE, NULL);
+  item = gtk_menu_item_new_with_mnemonic (_("_Paste"));
   g_signal_connect (item, "activate", G_CALLBACK (paste_image), data);
   gtk_widget_show (item);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
@@ -228,7 +236,7 @@ do_clipboard (GtkWidget *do_widget)
       gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
 
       /* Create the button */
-      button = gtk_button_new_from_stock (GTK_STOCK_COPY);
+      button = gtk_button_new_with_mnemonic (_("_Copy"));
       gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
       g_signal_connect (button, "clicked",
                         G_CALLBACK (copy_button_clicked), entry);
@@ -245,7 +253,7 @@ do_clipboard (GtkWidget *do_widget)
       gtk_box_pack_start (GTK_BOX (hbox), entry, TRUE, TRUE, 0);
 
       /* Create the button */
-      button = gtk_button_new_from_stock (GTK_STOCK_PASTE);
+      button = gtk_button_new_with_mnemonic (_("_Paste"));
       gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, FALSE, 0);
       g_signal_connect (button, "clicked",
                         G_CALLBACK (paste_button_clicked), entry);
@@ -258,8 +266,8 @@ do_clipboard (GtkWidget *do_widget)
       gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
 
       /* Create the first image */
-      image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING,
-                                        GTK_ICON_SIZE_BUTTON);
+      image = gtk_image_new_from_icon_name ("dialog-warning",
+                                            GTK_ICON_SIZE_BUTTON);
       ebox = gtk_event_box_new ();
       gtk_container_add (GTK_CONTAINER (ebox), image);
       gtk_container_add (GTK_CONTAINER (hbox), ebox);
@@ -284,8 +292,8 @@ do_clipboard (GtkWidget *do_widget)
                         G_CALLBACK (button_press), image);
 
       /* Create the second image */
-      image = gtk_image_new_from_stock (GTK_STOCK_STOP,
-                                        GTK_ICON_SIZE_BUTTON);
+      image = gtk_image_new_from_icon_name ("process-stop",
+                                            GTK_ICON_SIZE_BUTTON);
       ebox = gtk_event_box_new ();
       gtk_container_add (GTK_CONTAINER (ebox), image);
       gtk_container_add (GTK_CONTAINER (hbox), ebox);
diff --git a/demos/gtk-demo/combobox.c b/demos/gtk-demo/combobox.c
index 354fcab..e764138 100644
--- a/demos/gtk-demo/combobox.c
+++ b/demos/gtk-demo/combobox.c
@@ -7,81 +7,59 @@
  * How the options are displayed is controlled by cell renderers.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 enum
 {
-  PIXBUF_COL,
+  ICON_NAME_COL,
   TEXT_COL
 };
 
-static gchar *
-strip_underscore (const gchar *text)
-{
-  gchar *p, *q;
-  gchar *result;
-
-  result = g_strdup (text);
-  p = q = result;
-  while (*p)
-    {
-      if (*p != '_')
-        {
-          *q = *p;
-          q++;
-        }
-      p++;
-    }
-  *q = '\0';
-
-  return result;
-}
-
 static GtkTreeModel *
-create_stock_icon_store (void)
+create_icon_store (void)
 {
-  gchar *stock_id[6] = {
-    GTK_STOCK_DIALOG_WARNING,
-    GTK_STOCK_STOP,
-    GTK_STOCK_NEW,
-    GTK_STOCK_CLEAR,
+  const gchar *icon_names[6] = {
+    "dialog-warning",
+    "process-stop",
+    "document-new",
+    "edit-clear",
+    NULL,
+    "document-open"
+  };
+  const gchar *labels[6] = {
+    N_("Warning"),
+    N_("Stop"),
+    N_("New"),
+    N_("Clear"),
     NULL,
-    GTK_STOCK_OPEN
+    N_("Open")
   };
 
-  GtkStockItem item;
-  GdkPixbuf *pixbuf;
   GtkWidget *cellview;
   GtkTreeIter iter;
   GtkListStore *store;
-  gchar *label;
   gint i;
 
   cellview = gtk_cell_view_new ();
 
-  store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING);
+  store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING);
 
-  for (i = 0; i < G_N_ELEMENTS (stock_id); i++)
+  for (i = 0; i < G_N_ELEMENTS (icon_names); i++)
     {
-      if (stock_id[i])
+      if (icon_names[i])
         {
-          pixbuf = gtk_widget_render_icon_pixbuf (cellview, stock_id[i],
-                                                  GTK_ICON_SIZE_BUTTON);
-          gtk_stock_lookup (stock_id[i], &item);
-          label = strip_underscore (item.label);
           gtk_list_store_append (store, &iter);
           gtk_list_store_set (store, &iter,
-                              PIXBUF_COL, pixbuf,
-                              TEXT_COL, label,
+                              ICON_NAME_COL, icon_names[i],
+                              TEXT_COL, _(labels[i]),
                               -1);
-          g_object_unref (pixbuf);
-          g_free (label);
         }
       else
         {
           gtk_list_store_append (store, &iter);
           gtk_list_store_set (store, &iter,
-                              PIXBUF_COL, NULL,
+                              ICON_NAME_COL, NULL,
                               TEXT_COL, "separator",
                               -1);
         }
@@ -351,14 +329,14 @@ do_combobox (GtkWidget *do_widget)
     /* A combobox demonstrating cell renderers, separators and
      *  insensitive rows
      */
-    frame = gtk_frame_new ("Some stock icons");
+    frame = gtk_frame_new ("Items with icons");
     gtk_box_pack_start (GTK_BOX (vbox), frame, FALSE, FALSE, 0);
 
     box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
     gtk_container_set_border_width (GTK_CONTAINER (box), 5);
     gtk_container_add (GTK_CONTAINER (frame), box);
 
-    model = create_stock_icon_store ();
+    model = create_icon_store ();
     combo = gtk_combo_box_new_with_model (model);
     g_object_unref (model);
     gtk_container_add (GTK_CONTAINER (box), combo);
@@ -366,7 +344,7 @@ do_combobox (GtkWidget *do_widget)
     renderer = gtk_cell_renderer_pixbuf_new ();
     gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, FALSE);
     gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo), renderer,
-                                    "pixbuf", PIXBUF_COL,
+                                    "icon-name", ICON_NAME_COL,
                                     NULL);
 
     gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (combo),
diff --git a/demos/gtk-demo/css_shadows.c b/demos/gtk-demo/css_shadows.c
index 2ee2fec..590c0f3 100644
--- a/demos/gtk-demo/css_shadows.c
+++ b/demos/gtk-demo/css_shadows.c
@@ -68,10 +68,12 @@ create_toolbar (void)
   toolbar = gtk_toolbar_new ();
   gtk_widget_set_valign (toolbar, GTK_ALIGN_CENTER);
 
-  item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD);
+  item = gtk_tool_button_new (NULL, NULL);
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next");
   gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
 
-  item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_BACK);
+  item = gtk_tool_button_new (NULL, NULL);
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-previous");
   gtk_toolbar_insert (GTK_TOOLBAR (toolbar), item, -1);
 
   item = gtk_tool_button_new (NULL, "Hello World");
diff --git a/demos/gtk-demo/demo.gresource.xml b/demos/gtk-demo/demo.gresource.xml
index f281a59..fb9c52a 100644
--- a/demos/gtk-demo/demo.gresource.xml
+++ b/demos/gtk-demo/demo.gresource.xml
@@ -121,7 +121,6 @@
     <file>sizegroup.c</file>
     <file>stack.c</file>
     <file>spinner.c</file>
-    <file>stock_browser.c</file>
     <file>textview.c</file>
     <file>textscroll.c</file>
     <file>theming_style_classes.c</file>
diff --git a/demos/gtk-demo/dialog.c b/demos/gtk-demo/dialog.c
index d9bc98d..17f837e 100644
--- a/demos/gtk-demo/dialog.c
+++ b/demos/gtk-demo/dialog.c
@@ -3,6 +3,7 @@
  * Dialog widgets are used to pop up a transient window for user feedback.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -36,7 +37,7 @@ interactive_dialog_clicked (GtkButton *button,
   GtkWidget *content_area;
   GtkWidget *dialog;
   GtkWidget *hbox;
-  GtkWidget *stock;
+  GtkWidget *image;
   GtkWidget *table;
   GtkWidget *local_entry1;
   GtkWidget *local_entry2;
@@ -46,9 +47,9 @@ interactive_dialog_clicked (GtkButton *button,
   dialog = gtk_dialog_new_with_buttons ("Interactive Dialog",
                                         GTK_WINDOW (window),
                                         GTK_DIALOG_MODAL| GTK_DIALOG_DESTROY_WITH_PARENT,
-                                        GTK_STOCK_OK,
+                                        _("_OK"),
                                         GTK_RESPONSE_OK,
-                                        "_Non-stock Button",
+                                        "_Cancel",
                                         GTK_RESPONSE_CANCEL,
                                         NULL);
 
@@ -58,8 +59,8 @@ interactive_dialog_clicked (GtkButton *button,
   gtk_container_set_border_width (GTK_CONTAINER (hbox), 8);
   gtk_box_pack_start (GTK_BOX (content_area), hbox, FALSE, FALSE, 0);
 
-  stock = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG);
-  gtk_box_pack_start (GTK_BOX (hbox), stock, FALSE, FALSE, 0);
+  image = gtk_image_new_from_icon_name ("dialog-question", GTK_ICON_SIZE_DIALOG);
+  gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
 
   table = gtk_grid_new ();
   gtk_grid_set_row_spacing (GTK_GRID (table), 4);
diff --git a/demos/gtk-demo/entry_buffer.c b/demos/gtk-demo/entry_buffer.c
index 4d7b704..67a4b2f 100644
--- a/demos/gtk-demo/entry_buffer.c
+++ b/demos/gtk-demo/entry_buffer.c
@@ -4,6 +4,7 @@
  *
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -22,7 +23,7 @@ do_entry_buffer (GtkWidget *do_widget)
     window = gtk_dialog_new_with_buttons ("GtkEntryBuffer",
                                           GTK_WINDOW (do_widget),
                                           0,
-                                          GTK_STOCK_CLOSE,
+                                          _("_Close"),
                                           GTK_RESPONSE_NONE,
                                           NULL);
     gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
diff --git a/demos/gtk-demo/entry_completion.c b/demos/gtk-demo/entry_completion.c
index ce218ed..fb71c67 100644
--- a/demos/gtk-demo/entry_completion.c
+++ b/demos/gtk-demo/entry_completion.c
@@ -5,6 +5,7 @@
  *
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -49,7 +50,7 @@ do_entry_completion (GtkWidget *do_widget)
       window = gtk_dialog_new_with_buttons ("GtkEntryCompletion",
                                             GTK_WINDOW (do_widget),
                                             0,
-                                            GTK_STOCK_CLOSE,
+                                            _("_Close"),
                                             GTK_RESPONSE_NONE,
                                             NULL);
       gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
diff --git a/demos/gtk-demo/expander.c b/demos/gtk-demo/expander.c
index 423a813..6228bfd 100644
--- a/demos/gtk-demo/expander.c
+++ b/demos/gtk-demo/expander.c
@@ -5,6 +5,7 @@
  *
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -23,7 +24,7 @@ do_expander (GtkWidget *do_widget)
     window = gtk_dialog_new_with_buttons ("GtkExpander",
                                           GTK_WINDOW (do_widget),
                                           0,
-                                          GTK_STOCK_CLOSE,
+                                          _("_Close"),
                                           GTK_RESPONSE_NONE,
                                           NULL);
     gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
diff --git a/demos/gtk-demo/iconview.c b/demos/gtk-demo/iconview.c
index d54527b..8af65f5 100644
--- a/demos/gtk-demo/iconview.c
+++ b/demos/gtk-demo/iconview.c
@@ -5,6 +5,7 @@
  * example might be helpful.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 #include <string.h>
 
@@ -267,12 +268,16 @@ do_iconview (GtkWidget *do_widget)
       tool_bar = gtk_toolbar_new ();
       gtk_box_pack_start (GTK_BOX (vbox), tool_bar, FALSE, FALSE, 0);
 
-      up_button = gtk_tool_button_new_from_stock (GTK_STOCK_GO_UP);
+      up_button = gtk_tool_button_new (NULL, NULL);
+      gtk_tool_button_set_label (GTK_TOOL_BUTTON (up_button), _("_Up"));
+      gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (up_button), "go-up");
       gtk_tool_item_set_is_important (up_button, TRUE);
       gtk_widget_set_sensitive (GTK_WIDGET (up_button), FALSE);
       gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), up_button, -1);
 
-      home_button = gtk_tool_button_new_from_stock (GTK_STOCK_HOME);
+      home_button = gtk_tool_button_new (NULL, NULL);
+      gtk_tool_button_set_label (GTK_TOOL_BUTTON (home_button), _("_Home"));
+      gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (home_button), "go-home");
       gtk_tool_item_set_is_important (home_button, TRUE);
       gtk_toolbar_insert (GTK_TOOLBAR (tool_bar), home_button, -1);
 
diff --git a/demos/gtk-demo/infobar.c b/demos/gtk-demo/infobar.c
index 0cb58e6..0aea064 100644
--- a/demos/gtk-demo/infobar.c
+++ b/demos/gtk-demo/infobar.c
@@ -3,6 +3,7 @@
  * Info bar widgets are used to report important messages to the user.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -64,7 +65,7 @@ do_infobar (GtkWidget *do_widget)
       label = gtk_label_new ("This is an info bar with message type GTK_MESSAGE_WARNING");
       gtk_box_pack_start (GTK_BOX (gtk_info_bar_get_content_area (GTK_INFO_BAR (bar))), label, FALSE, FALSE, 
0);
 
-      bar = gtk_info_bar_new_with_buttons (GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+      bar = gtk_info_bar_new_with_buttons (_("_OK"), GTK_RESPONSE_OK, NULL);
       g_signal_connect (bar, "response", G_CALLBACK (on_bar_response), window);
       gtk_box_pack_start (GTK_BOX (vbox), bar, FALSE, FALSE, 0);
       gtk_info_bar_set_message_type (GTK_INFO_BAR (bar), GTK_MESSAGE_QUESTION);
diff --git a/demos/gtk-demo/list_store.c b/demos/gtk-demo/list_store.c
index e5d2dff..343a387 100644
--- a/demos/gtk-demo/list_store.c
+++ b/demos/gtk-demo/list_store.c
@@ -2,8 +2,7 @@
  *
  * The GtkListStore is used to store data in list form, to be used
  * later on by a GtkTreeView to display it. This demo builds a
- * simple GtkListStore and displays it. See the Stock Browser
- * demo for a more advanced example.
+ * simple GtkListStore and displays it.
  *
  */
 
diff --git a/demos/gtk-demo/listbox.ui b/demos/gtk-demo/listbox.ui
index f2d8fca..1d42601 100644
--- a/demos/gtk-demo/listbox.ui
+++ b/demos/gtk-demo/listbox.ui
@@ -40,7 +40,7 @@
             <property name="margin_bottom">8</property>
             <property name="margin_left">8</property>
             <property name="margin_right">8</property>
-            <property name="stock">gtk-missing-image</property>
+            <property name="icon-name">image-missing</property>
           </object>
           <packing>
             <property name="left_attach">0</property>
diff --git a/demos/gtk-demo/main.c b/demos/gtk-demo/main.c
index 69d3093..cf1a761 100644
--- a/demos/gtk-demo/main.c
+++ b/demos/gtk-demo/main.c
@@ -122,7 +122,6 @@ static gchar *types[] =
   "GtkActionEntry ",
   "GtkRadioActionEntry ",
   "GtkIconFactory ",
-  "GtkStockItem ",
   "GtkIconSet ",
   "GtkTextBuffer ",
   "GtkStatusbar ",
diff --git a/demos/gtk-demo/makefile.msc.in b/demos/gtk-demo/makefile.msc.in
index a92362f..948269d 100644
--- a/demos/gtk-demo/makefile.msc.in
+++ b/demos/gtk-demo/makefile.msc.in
@@ -54,7 +54,6 @@ DEMOS = \
        pixbufs.c               \
        rotated_text.c  \
        sizegroup.c     \
-       stock_browser.c \
        textview.c      \
        tree_store.c    \
        ui_manager.c    \
@@ -83,7 +82,6 @@ OBJECTS = \
        pixbufs.obj     \
        rotated_text.obj \
        sizegroup.obj   \
-       stock_browser.obj       \
        textview.obj    \
        tree_store.obj  \
        ui_manager.obj  \
diff --git a/demos/gtk-demo/offscreen_window2.c b/demos/gtk-demo/offscreen_window2.c
index b282704..9188bfb 100644
--- a/demos/gtk-demo/offscreen_window2.c
+++ b/demos/gtk-demo/offscreen_window2.c
@@ -3,6 +3,7 @@
  * Offscreen windows can be used to render elements multiple times to achieve
  * various effects.
  */
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 #define GTK_TYPE_MIRROR_BIN              (gtk_mirror_bin_get_type ())
@@ -497,14 +498,12 @@ do_offscreen_window2 (GtkWidget *do_widget)
       hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
       backbutton = gtk_button_new ();
       gtk_container_add (GTK_CONTAINER (backbutton),
-                         gtk_image_new_from_stock (GTK_STOCK_GO_BACK, 4));
+                         gtk_image_new_from_icon_name ("go-previous", 4));
       gtk_size_group_add_widget (group, backbutton);
       entry = gtk_entry_new ();
       gtk_size_group_add_widget (group, entry);
-      applybutton = gtk_button_new ();
+      applybutton = gtk_button_new_with_label (_("Apply"));
       gtk_size_group_add_widget (group, applybutton);
-      gtk_container_add (GTK_CONTAINER (applybutton),
-                         gtk_image_new_from_stock (GTK_STOCK_APPLY, 4));
 
       gtk_container_add (GTK_CONTAINER (window), vbox);
       gtk_box_pack_start (GTK_BOX (vbox), bin, TRUE, TRUE, 0);
diff --git a/demos/gtk-demo/revealer.ui b/demos/gtk-demo/revealer.ui
index 6449c98..f1cbac0 100644
--- a/demos/gtk-demo/revealer.ui
+++ b/demos/gtk-demo/revealer.ui
@@ -19,11 +19,11 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="button1">
-                <property name="label">gtk-close</property>
+                <property name="label" translatable="yes">_Close</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-                <property name="use_stock">True</property>
+                <property name="use_underline">True</property>
               </object>
               <packing>
                 <property name="expand">False</property>
diff --git a/demos/gtk-demo/search_entry.c b/demos/gtk-demo/search_entry.c
index be03fc9..0a270d4 100644
--- a/demos/gtk-demo/search_entry.c
+++ b/demos/gtk-demo/search_entry.c
@@ -4,6 +4,7 @@
  * This demo shows how to use these features in a search entry.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -85,9 +86,6 @@ static void
 search_by_name (GtkWidget *item,
                 GtkEntry  *entry)
 {
-  gtk_entry_set_icon_from_stock (entry,
-                                 GTK_ENTRY_ICON_PRIMARY,
-                                 GTK_STOCK_FIND);
   gtk_entry_set_icon_tooltip_text (entry,
                                    GTK_ENTRY_ICON_PRIMARY,
                                    "Search by name\n"
@@ -99,9 +97,7 @@ static void
 search_by_description (GtkWidget *item,
                        GtkEntry  *entry)
 {
-  gtk_entry_set_icon_from_stock (entry,
-                                 GTK_ENTRY_ICON_PRIMARY,
-                                 GTK_STOCK_EDIT);
+
   gtk_entry_set_icon_tooltip_text (entry,
                                    GTK_ENTRY_ICON_PRIMARY,
                                    "Search by description\n"
@@ -113,9 +109,6 @@ static void
 search_by_file (GtkWidget *item,
                 GtkEntry  *entry)
 {
-  gtk_entry_set_icon_from_stock (entry,
-                                 GTK_ENTRY_ICON_PRIMARY,
-                                 GTK_STOCK_OPEN);
   gtk_entry_set_icon_tooltip_text (entry,
                                    GTK_ENTRY_ICON_PRIMARY,
                                    "Search by file name\n"
@@ -132,26 +125,17 @@ create_search_menu (GtkWidget *entry)
 
   menu = gtk_menu_new ();
 
-  item = gtk_image_menu_item_new_with_mnemonic ("Search by _name");
-  image = gtk_image_new_from_stock (GTK_STOCK_FIND, GTK_ICON_SIZE_MENU);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
-  gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE);
+  item = gtk_menu_item_new_with_mnemonic ("Search by _name");
   g_signal_connect (item, "activate",
                     G_CALLBACK (search_by_name), entry);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
 
-  item = gtk_image_menu_item_new_with_mnemonic ("Search by _description");
-  image = gtk_image_new_from_stock (GTK_STOCK_EDIT, GTK_ICON_SIZE_MENU);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
-  gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE);
+  item = gtk_menu_item_new_with_mnemonic ("Search by _description");
   g_signal_connect (item, "activate",
                     G_CALLBACK (search_by_description), entry);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
 
-  item = gtk_image_menu_item_new_with_mnemonic ("Search by _file name");
-  image = gtk_image_new_from_stock (GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU);
-  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image);
-  gtk_image_menu_item_set_always_show_image (GTK_IMAGE_MENU_ITEM (item), TRUE);
+  item = gtk_menu_item_new_with_mnemonic ("Search by _file name");
   g_signal_connect (item, "activate",
                     G_CALLBACK (search_by_file), entry);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
@@ -241,7 +225,7 @@ do_search_entry (GtkWidget *do_widget)
       window = gtk_dialog_new_with_buttons ("Search Entry",
                                             GTK_WINDOW (do_widget),
                                             0,
-                                            GTK_STOCK_CLOSE,
+                                            _("_Close"),
                                             GTK_RESPONSE_NONE,
                                             NULL);
       gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
diff --git a/demos/gtk-demo/sizegroup.c b/demos/gtk-demo/sizegroup.c
index a031396..c15b78b 100644
--- a/demos/gtk-demo/sizegroup.c
+++ b/demos/gtk-demo/sizegroup.c
@@ -13,6 +13,7 @@
  * into a table, you would not include the GTK_FILL flag.
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -102,7 +103,7 @@ do_sizegroup (GtkWidget *do_widget)
       window = gtk_dialog_new_with_buttons ("GtkSizeGroup",
                                             GTK_WINDOW (do_widget),
                                             0,
-                                            GTK_STOCK_CLOSE,
+                                            _("_Close"),
                                             GTK_RESPONSE_NONE,
                                             NULL);
       gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
diff --git a/demos/gtk-demo/spinner.c b/demos/gtk-demo/spinner.c
index 8aa5173..3e04ad8 100644
--- a/demos/gtk-demo/spinner.c
+++ b/demos/gtk-demo/spinner.c
@@ -4,6 +4,7 @@
  *
  */
 
+#include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
 static GtkWidget *window = NULL;
@@ -38,7 +39,7 @@ do_spinner (GtkWidget *do_widget)
     window = gtk_dialog_new_with_buttons ("GtkSpinner",
                                           GTK_WINDOW (do_widget),
                                           0,
-                                          GTK_STOCK_CLOSE,
+                                          _("_Close"),
                                           GTK_RESPONSE_NONE,
                                           NULL);
     gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
@@ -71,12 +72,12 @@ do_spinner (GtkWidget *do_widget)
     spinner_unsensitive = spinner;
     gtk_widget_set_sensitive (hbox, FALSE);
 
-    button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PLAY);
+    button = gtk_button_new_with_label (_("Play"));
     g_signal_connect (G_OBJECT (button), "clicked",
                       G_CALLBACK (on_play_clicked), spinner);
     gtk_container_add (GTK_CONTAINER (vbox), button);
 
-    button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_STOP);
+    button = gtk_button_new_with_label (_("Stop"));
     g_signal_connect (G_OBJECT (button), "clicked",
                       G_CALLBACK (on_stop_clicked), spinner);
     gtk_container_add (GTK_CONTAINER (vbox), button);
diff --git a/demos/gtk-demo/toolpalette.c b/demos/gtk-demo/toolpalette.c
index ec7a2eb..812013c 100644
--- a/demos/gtk-demo/toolpalette.c
+++ b/demos/gtk-demo/toolpalette.c
@@ -9,7 +9,7 @@
 
 static GtkWidget *window = NULL;
 
-static void load_stock_items (GtkToolPalette *palette);
+static void load_icon_items (GtkToolPalette *palette);
 static void load_toggle_items (GtkToolPalette *palette);
 static void load_special_items (GtkToolPalette *palette);
 
@@ -35,11 +35,19 @@ canvas_item_new (GtkWidget     *widget,
                  gdouble        y)
 {
   CanvasItem *item = NULL;
-  const gchar *stock_id;
+  const gchar *icon_name;
   GdkPixbuf *pixbuf;
-
-  stock_id = gtk_tool_button_get_stock_id (button);
-  pixbuf = gtk_widget_render_icon_pixbuf (widget, stock_id, GTK_ICON_SIZE_DIALOG);
+  GtkIconTheme *icon_theme;
+  int width;
+
+  icon_name = gtk_tool_button_get_icon_name (button);
+  icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget));
+  gtk_icon_size_lookup (GTK_ICON_SIZE_DIALOG, &width, NULL);
+  pixbuf = gtk_icon_theme_load_icon (icon_theme,
+                                     icon_name,
+                                     width,
+                                     GTK_ICON_LOOKUP_GENERIC_FALLBACK,
+                                     NULL);
 
   if (pixbuf)
     {
@@ -511,7 +519,7 @@ do_toolpalette (GtkWidget *do_widget)
       /* Add and fill the ToolPalette: */
       palette = gtk_tool_palette_new ();
 
-      load_stock_items (GTK_TOOL_PALETTE (palette));
+      load_icon_items (GTK_TOOL_PALETTE (palette));
       load_toggle_items (GTK_TOOL_PALETTE (palette));
       load_special_items (GTK_TOOL_PALETTE (palette));
 
@@ -626,62 +634,45 @@ do_toolpalette (GtkWidget *do_widget)
 
 
 static void
-load_stock_items (GtkToolPalette *palette)
+load_icon_items (GtkToolPalette *palette)
 {
-  GtkWidget *group_af = gtk_tool_item_group_new ("Stock Icons (A-F)");
-  GtkWidget *group_gn = gtk_tool_item_group_new ("Stock Icons (G-N)");
-  GtkWidget *group_or = gtk_tool_item_group_new ("Stock Icons (O-R)");
-  GtkWidget *group_sz = gtk_tool_item_group_new ("Stock Icons (S-Z)");
-  GtkWidget *group = NULL;
+  GList *contexts;
+  GList *l;
+  GtkIconTheme *icon_theme;
 
-  GtkToolItem *item;
-  GSList *stock_ids;
-  GSList *iter;
+  icon_theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (palette)));
 
-  stock_ids = gtk_stock_list_ids ();
-  stock_ids = g_slist_sort (stock_ids, (GCompareFunc) strcmp);
+  contexts = gtk_icon_theme_list_contexts (icon_theme);
+  for (l = contexts; l; l = g_list_next (l))
+    {
+      gchar *context = l->data;
+      GList *icon_names;
+      GList *ll;
 
-  gtk_container_add (GTK_CONTAINER (palette), group_af);
-  gtk_container_add (GTK_CONTAINER (palette), group_gn);
-  gtk_container_add (GTK_CONTAINER (palette), group_or);
-  gtk_container_add (GTK_CONTAINER (palette), group_sz);
+      GtkWidget *group = gtk_tool_item_group_new (context);
+      gtk_container_add (GTK_CONTAINER (palette), group);
 
-  for (iter = stock_ids; iter; iter = g_slist_next (iter))
-    {
-      GtkStockItem stock_item;
-      gchar *id = iter->data;
+      g_message ("Got context '%s'", context);
+      icon_names = gtk_icon_theme_list_icons (icon_theme, context);
+      icon_names = g_list_sort (icon_names, (GCompareFunc) strcmp);
 
-      switch (id[4])
+      for (ll = icon_names; ll; ll = g_list_next (ll))
         {
-          case 'a':
-            group = group_af;
-            break;
+          GtkToolItem *item;
+          gchar *id = ll->data;
 
-          case 'g':
-            group = group_gn;
-            break;
+          g_message ("Got id '%s'", id);
 
-          case 'o':
-            group = group_or;
-            break;
-
-          case 's':
-            group = group_sz;
-            break;
+          item = gtk_tool_button_new (NULL, NULL);
+          gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), id);
+          gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (item), id);
+          gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
         }
 
-      item = gtk_tool_button_new_from_stock (id);
-      gtk_tool_item_set_tooltip_text (GTK_TOOL_ITEM (item), id);
-      gtk_tool_item_set_is_important (GTK_TOOL_ITEM (item), TRUE);
-      gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
-
-      if (!gtk_stock_lookup (id, &stock_item) || !stock_item.label)
-        gtk_tool_button_set_label (GTK_TOOL_BUTTON (item), id);
-
-      g_free (id);
+      g_list_free_full (icon_names, g_free);
     }
 
-  g_slist_free (stock_ids);
+  g_list_free_full (contexts, g_free);
 }
 
 static void
@@ -761,22 +752,26 @@ load_special_items (GtkToolPalette *palette)
                            "homogeneous", FALSE, "expand", TRUE,
                            "new-row", TRUE, NULL);
 
-  item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_UP);
+  item = gtk_tool_button_new (NULL, NULL);
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-up");
   gtk_tool_item_set_tooltip_text (item, "Show on vertical palettes only");
   gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
   gtk_tool_item_set_visible_horizontal (item, FALSE);
 
-  item = gtk_tool_button_new_from_stock (GTK_STOCK_GO_FORWARD);
+  item = gtk_tool_button_new (NULL, NULL);
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "go-next");
   gtk_tool_item_set_tooltip_text (item, "Show on horizontal palettes only");
   gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
   gtk_tool_item_set_visible_vertical (item, FALSE);
 
-  item = gtk_tool_button_new_from_stock (GTK_STOCK_DELETE);
+  item = gtk_tool_button_new (NULL, NULL);
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "edit-delete");
   gtk_tool_item_set_tooltip_text (item, "Do not show at all");
   gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
   gtk_widget_set_no_show_all (GTK_WIDGET (item), TRUE);
 
-  item = gtk_tool_button_new_from_stock (GTK_STOCK_FULLSCREEN);
+  item = gtk_tool_button_new (NULL, NULL);
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "view-fullscreen");
   gtk_tool_item_set_tooltip_text (item, "Expanded this item");
   gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
   gtk_container_child_set (GTK_CONTAINER (group), GTK_WIDGET (item),
@@ -784,7 +779,8 @@ load_special_items (GtkToolPalette *palette)
                            "expand", TRUE,
                            NULL);
 
-  item = gtk_tool_button_new_from_stock (GTK_STOCK_HELP);
+  item = gtk_tool_button_new (NULL, NULL);
+  gtk_tool_button_set_icon_name (GTK_TOOL_BUTTON (item), "help-browser");
   gtk_tool_item_set_tooltip_text (item, "A regular item");
   gtk_tool_item_group_insert (GTK_TOOL_ITEM_GROUP (group), item, -1);
 }
diff --git a/demos/gtk-demo/ui_manager.c b/demos/gtk-demo/ui_manager.c
index 48c3f45..dc597fe 100644
--- a/demos/gtk-demo/ui_manager.c
+++ b/demos/gtk-demo/ui_manager.c
@@ -49,10 +49,6 @@ static GtkActionEntry entries[] = {
     "_About", "<control>A",                    /* label, accelerator */
     "About",                                   /* tooltip */
     G_CALLBACK (activate_action) },
-  { "Logo", "demo-gtk-logo",                   /* name, stock id */
-     NULL, NULL,                               /* label, accelerator */
-    "GTK+",                                    /* tooltip */
-    G_CALLBACK (activate_action) },
 };
 static guint n_entries = G_N_ELEMENTS (entries);
 
@@ -135,8 +131,6 @@ static const gchar *ui_info =
 "  <toolbar  name='ToolBar'>"
 "    <toolitem action='Open'/>"
 "    <toolitem action='Quit'/>"
-"    <separator action='Sep1'/>"
-"    <toolitem action='Logo'/>"
 "  </toolbar>"
 "</ui>";
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]