Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-stock-icons.c
diff options
context:
space:
mode:
authorLuca 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)
commitc65f029b1669d2aae4417169d6b0c25969521d47 (patch)
treecfa34bdcd53578b67888f412dd212b28c8c20958 /shell/ev-stock-icons.c
parent9fc99e3207e7917a5c09fef1a961f8cdf45ce7ed (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.c59
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));
}