diff options
author | Luca Ferretti <elle.uca@libero.it> | 2005-02-09 10:47:45 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2005-02-09 10:47:45 (GMT) |
commit | c65f029b1669d2aae4417169d6b0c25969521d47 (patch) | |
tree | cfa34bdcd53578b67888f412dd212b28c8c20958 /shell/ev-stock-icons.c | |
parent | 9fc99e3207e7917a5c09fef1a961f8cdf45ce7ed (diff) |
Improve toolbar layout/icons
2005-02-09 Luca Ferretti <elle.uca@libero.it>
* data/Makefile.am:
* data/evince-ui.xml:
* shell/ev-stock-icons.c: (ev_stock_icons_init):
* shell/ev-stock-icons.h:
* shell/ev-window.c: (update_action_sensitivity),
(ev_window_cmd_go_previous_page), (ev_window_cmd_go_next_page),
(set_action_properties):
Improve toolbar layout/icons
Diffstat (limited to 'shell/ev-stock-icons.c')
-rw-r--r-- | shell/ev-stock-icons.c | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/shell/ev-stock-icons.c b/shell/ev-stock-icons.c index a9f533c..f60697d 100644 --- a/shell/ev-stock-icons.c +++ b/shell/ev-stock-icons.c @@ -29,51 +29,44 @@ #include <gtk/gtkstock.h> #include <gdk/gdkpixbuf.h> -/* Toolbar icons files */ -#define STOCK_ZOOM_FIT_WIDTH_FILE "ev-stock-zoom-fit-width.png" +typedef struct { + char *stock_id; + char *icon; +} EvStockIcon; + +/* Evince stock icons from gnome-icon-theme */ +static EvStockIcon stock_icons [] = { + { EV_STOCK_ZOOM_PAGE, "stock_zoom-page" }, + { EV_STOCK_ZOOM_WIDTH, "stock_zoom-page-width" }, + { EV_STOCK_LEAVE_FULLSCREEN, "stock_leave-fullscreen" } +}; -#define EV_ADD_STOCK_ICON(id, file, def_id) \ -{ \ - GdkPixbuf *pixbuf; \ - GtkIconSet *icon_set = NULL; \ - pixbuf = gdk_pixbuf_new_from_file (GNOMEICONDIR "/evince/" file, NULL); \ - if (pixbuf) { \ - icon_set = gtk_icon_set_new_from_pixbuf (pixbuf); \ - } else if (def_id) { \ - icon_set = gtk_icon_factory_lookup_default (def_id); \ - gtk_icon_set_ref (icon_set); \ - } \ - gtk_icon_factory_add (factory, id, icon_set); \ - gtk_icon_set_unref (icon_set); \ -} void ev_stock_icons_init (void) { - static const char *icon_theme_items[] = { - EV_STOCK_LEAVE_FULLSCREEN - }; - GtkIconFactory *factory; - guint i; + GtkIconFactory *factory; + GtkIconSource *source; + gint i; factory = gtk_icon_factory_new (); gtk_icon_factory_add_default (factory); - /* fitwidth stock icon */ - EV_ADD_STOCK_ICON (EV_STOCK_ZOOM_FIT_WIDTH, STOCK_ZOOM_FIT_WIDTH_FILE, GTK_STOCK_ZOOM_FIT); + source = gtk_icon_source_new (); + + for (i = 0; i < G_N_ELEMENTS (stock_icons); i++) { + GtkIconSet *set; - for (i = 0; i < G_N_ELEMENTS (icon_theme_items); i++) { - GtkIconSet *icon_set; - GtkIconSource *icon_source; + gtk_icon_source_set_icon_name (source, stock_icons [i].icon); - icon_set = gtk_icon_set_new (); - icon_source = gtk_icon_source_new (); - gtk_icon_source_set_icon_name (icon_source, icon_theme_items[i]); - gtk_icon_set_add_source (icon_set, icon_source); - gtk_icon_factory_add (factory, icon_theme_items[i], icon_set); - gtk_icon_set_unref (icon_set); - gtk_icon_source_free (icon_source); + set = gtk_icon_set_new (); + gtk_icon_set_add_source (set, source); + + gtk_icon_factory_add (factory, stock_icons [i].stock_id, set); + gtk_icon_set_unref (set); } + gtk_icon_source_free (source); + g_object_unref (G_OBJECT (factory)); } |