From bc8fd91eed538ddb9a3fdd3b7e05c9ac16a61c97 Mon Sep 17 00:00:00 2001 From: Carlos Garcia Campos Date: Tue, 12 May 2009 09:28:53 +0000 Subject: Move stock icons from libmisc to libview and make the API public --- (limited to 'libmisc') diff --git a/libmisc/Makefile.am b/libmisc/Makefile.am index 900e401..481caea 100644 --- a/libmisc/Makefile.am +++ b/libmisc/Makefile.am @@ -4,9 +4,7 @@ libevmisc_la_SOURCES = \ ev-page-action.c \ ev-page-action.h \ ev-page-action-widget.c \ - ev-page-action-widget.h \ - ev-stock-icons.c \ - ev-stock-icons.h + ev-page-action-widget.h libevmisc_la_CFLAGS = \ -DDATADIR=\"$(pkgdatadir)\" \ diff --git a/libmisc/ev-stock-icons.c b/libmisc/ev-stock-icons.c deleted file mode 100644 index 8b121e9..0000000 --- a/libmisc/ev-stock-icons.c +++ /dev/null @@ -1,129 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* Stock icons for Evince - * - * Copyright (C) 2003 Martin Kretzschmar - * - * Author: - * Martin Kretzschmar - * - * Evince is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Evince is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#include - -#include -#include - -#include "ev-stock-icons.h" - -typedef struct { - char *stock_id; - char *icon; -} EvStockIcon; - -/* Evince stock icons */ -static const EvStockIcon stock_icons [] = { - { EV_STOCK_ZOOM, "zoom" }, - { EV_STOCK_ZOOM_PAGE, "zoom-fit-page" }, - { EV_STOCK_ZOOM_WIDTH, "zoom-fit-width" }, - { EV_STOCK_VIEW_DUAL, "view-page-facing" }, - { EV_STOCK_VIEW_CONTINUOUS, "view-page-continuous" }, - { EV_STOCK_ROTATE_LEFT, "object-rotate-left"}, - { EV_STOCK_ROTATE_RIGHT, "object-rotate-right"}, - { EV_STOCK_RUN_PRESENTATION, "x-office-presentation"}, - { EV_STOCK_VISIBLE, "eye"} -}; - -static gchar *ev_icons_path; - -/** - * ev_stock_icons_init: - * - * Creates a new icon factory, adding the base stock icons to it. - */ -void -ev_stock_icons_init (void) -{ - GtkIconFactory *factory; - GtkIconSource *source; - gint i; - - ev_icons_path = g_build_filename (DATADIR, "icons", NULL); - - factory = gtk_icon_factory_new (); - gtk_icon_factory_add_default (factory); - - source = gtk_icon_source_new (); - - for (i = 0; i < G_N_ELEMENTS (stock_icons); i++) { - GtkIconSet *set; - - gtk_icon_source_set_icon_name (source, stock_icons [i].icon); - - 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)); - - ev_stock_icons_add_icons_path (); -} - -void -ev_stock_icons_shutdown (void) -{ - g_free (ev_icons_path); -} - -void -ev_stock_icons_add_icons_path_for_screen (GdkScreen *screen) -{ - GtkIconTheme *icon_theme; - - g_return_if_fail (ev_icons_path != NULL); - - icon_theme = screen ? gtk_icon_theme_get_for_screen (screen) : gtk_icon_theme_get_default (); - if (icon_theme) { - gchar **path = NULL; - gint n_paths; - gint i; - - /* GtkIconTheme will then look in Evince custom hicolor dir - * for icons as well as the standard search paths - */ - gtk_icon_theme_get_search_path (icon_theme, &path, &n_paths); - for (i = n_paths - 1; i >= 0; i--) { - if (g_ascii_strcasecmp (ev_icons_path, path[i]) == 0) - break; - } - - if (i < 0) - gtk_icon_theme_append_search_path (icon_theme, - ev_icons_path); - - g_strfreev (path); - } -} - -void -ev_stock_icons_add_icons_path (void) -{ - ev_stock_icons_add_icons_path_for_screen (gdk_screen_get_default ()); -} diff --git a/libmisc/ev-stock-icons.h b/libmisc/ev-stock-icons.h deleted file mode 100644 index 793314d..0000000 --- a/libmisc/ev-stock-icons.h +++ /dev/null @@ -1,49 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ -/* Stock icons for Evince - * - * Copyright (C) 2003 Martin Kretzschmar - * - * Author: - * Martin Kretzschmar - * - * Evince is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * Evince is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public - * License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. - */ - -#ifndef __EV_STOCK_ICONS_H__ -#define __EV_STOCK_ICONS_H__ - -#include - -G_BEGIN_DECLS - -/* Evince stock icons */ -#define EV_STOCK_ZOOM "zoom" -#define EV_STOCK_ZOOM_PAGE "zoom-fit-page" -#define EV_STOCK_ZOOM_WIDTH "zoom-fit-width" -#define EV_STOCK_VIEW_DUAL "view-page-facing" -#define EV_STOCK_VIEW_CONTINUOUS "view-page-continuous" -#define EV_STOCK_ROTATE_LEFT "object-rotate-left" -#define EV_STOCK_ROTATE_RIGHT "object-rotate-right" -#define EV_STOCK_RUN_PRESENTATION "x-office-presentation" -#define EV_STOCK_VISIBLE "eye" - -void ev_stock_icons_init (void); -void ev_stock_icons_shutdown (void); -void ev_stock_icons_add_icons_path (void); -void ev_stock_icons_add_icons_path_for_screen (GdkScreen *screen); - -G_END_DECLS - -#endif /* __EV_STOCK_ICONS_H__ */ -- cgit v0.9.1