]> www.fi.muni.cz Git - evince.git/commitdiff
load files from the command line.
authorMark McLoughlin <mark@skynet.ie>
Wed, 22 Dec 2004 09:32:11 +0000 (09:32 +0000)
committerMark McLoughlin <markmc@src.gnome.org>
Wed, 22 Dec 2004 09:32:11 +0000 (09:32 +0000)
2004-12-22  Mark McLoughlin  <mark@skynet.ie>

        * shell/main.c: (load_files), (main): load files
        from the command line.

2004-12-22  Mark McLoughlin  <mark@skynet.ie>

        * configure.ac: don't require bonobo.

        * cut-n-paste/recent-files/*: kill bonobo recent
        view.

        * shell/ev-window.c:
        (ev_window_is_empty): upd.
        (unable_to_load), (ev_window_open): load backend
        based on the mime type.

ChangeLog
configure.ac
cut-n-paste/recent-files/Makefile.am
cut-n-paste/recent-files/egg-recent-view-bonobo.c [deleted file]
cut-n-paste/recent-files/egg-recent-view-bonobo.h [deleted file]
shell/ev-window.c
shell/main.c

index 9564c81d6c364826416e97a6d439d7e437bd29c7..df8488545b41e09df2d4c350408123fecba6c16c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2004-12-22  Mark McLoughlin  <mark@skynet.ie>
+
+       * shell/main.c: (load_files), (main): load files
+       from the command line.
+
+2004-12-22  Mark McLoughlin  <mark@skynet.ie>
+
+       * configure.ac: don't require bonobo.
+       
+       * cut-n-paste/recent-files/*: kill bonobo recent
+       view.
+
+       * shell/ev-window.c:
+       (ev_window_is_empty): upd.
+       (unable_to_load), (ev_window_open): load backend
+       based on the mime type.
+
 2004-12-22  Martin Kretzschmar  <martink@gnome.org>
 
        * backend/.cvsignore: ignore generated marshalers source.
index a1a3c48861a6b09a1939be5aee7b3531f29cfcf1..d268d3f9f1151ddfa3a3581ab29c9e8b948d35f4 100644 (file)
@@ -30,8 +30,8 @@ AC_SUBST(GETTEXT_PACKAGE)
 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package.])
 
 PKG_CHECK_MODULES(LIBEVPRIVATE, gtk+-2.0 >= 2.4.0)
-PKG_CHECK_MODULES(RECENT_FILES, gtk+-2.0 >= 2.4.0 libgnomeui-2.0 >= 2.4.0 libbonobo-2.0)
-PKG_CHECK_MODULES(SHELL, gtk+-2.0 >= 2.5.0 libgnomeui-2.0 gnome-vfs-2.0 libbonoboui-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libglade-2.0)
+PKG_CHECK_MODULES(RECENT_FILES, gtk+-2.0 >= 2.4.0 libgnomeui-2.0 >= 2.4.0)
+PKG_CHECK_MODULES(SHELL, gtk+-2.0 >= 2.5.0 libgnomeui-2.0 gnome-vfs-2.0 libgnomeprint-2.2 libgnomeprintui-2.2 libglade-2.0)
 PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.6.0)
 
 GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`  
index c3b3dbda26855fd86ef4f785cb51a4dcdc0da187..1cd1d44b8e73db4158788528a5c334e488ccc101 100644 (file)
@@ -14,8 +14,6 @@ EGG_FILES =                           \
         egg-recent-item.h              \
         egg-recent-view.c              \
         egg-recent-view.h              \
-        egg-recent-view-bonobo.c       \
-        egg-recent-view-bonobo.h       \
         egg-recent-view-gtk.c          \
         egg-recent-view-gtk.h          \
         egg-recent-util.c              \
diff --git a/cut-n-paste/recent-files/egg-recent-view-bonobo.c b/cut-n-paste/recent-files/egg-recent-view-bonobo.c
deleted file mode 100644 (file)
index e728e70..0000000
+++ /dev/null
@@ -1,714 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/**
- * This program 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.
- *
- * This program 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.
- *
- * Authors:
- *   James Willcox <jwillcox@cs.indiana.edu>
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include <libbonoboui.h>
-#include <libgnomevfs/gnome-vfs.h>
-#ifndef USE_STABLE_LIBGNOMEUI
-#include <libgnomeui/gnome-icon-theme.h>
-#endif
-#include <gconf/gconf-client.h>
-#include "egg-recent-model.h"
-#include "egg-recent-view.h"
-#include "egg-recent-view-bonobo.h"
-#include "egg-recent-util.h"
-#include "egg-recent-item.h"
-
-struct _EggRecentViewBonobo {
-       GObject parent_instance;        /* We emit signals */
-
-       BonoboUIComponent *uic;
-       gchar *path;                    /* The menu path where our stuff
-                                        *  will go
-                                        */
-
-       gulong changed_cb_id;
-
-       gchar *uid;                     /* unique id used for the verb name */
-
-       gboolean show_icons;
-       gboolean show_numbers;
-#ifndef USE_STABLE_LIBGNOMEUI
-       GnomeIconTheme *theme;
-#endif
-       EggRecentViewBonoboTooltipFunc tooltip_func;
-       gpointer tooltip_func_data;
-
-       EggRecentModel *model;
-       GConfClient *client;
-       GtkIconSize icon_size;
-};
-
-
-struct _EggRecentViewBonoboMenuData {
-       EggRecentViewBonobo *view;
-       EggRecentItem *item;
-};
-
-typedef struct _EggRecentViewBonoboMenuData EggRecentViewBonoboMenuData;
-
-enum {
-       ACTIVATE,
-       LAST_SIGNAL
-};
-
-/* GObject properties */
-enum {
-       PROP_BOGUS,
-       PROP_UI_COMPONENT,
-       PROP_MENU_PATH,
-       PROP_SHOW_ICONS,
-       PROP_SHOW_NUMBERS
-};
-
-static guint egg_recent_view_bonobo_signals[LAST_SIGNAL] = { 0 };
-
-static void
-egg_recent_view_bonobo_clear (EggRecentViewBonobo *view)
-{
-       gint i=1;
-       gboolean done=FALSE;
-       EggRecentModel *model;
-
-       g_return_if_fail (view->uic);
-
-       model = egg_recent_view_get_model (EGG_RECENT_VIEW (view));
-       
-       while (!done)
-       {
-               gchar *verb_name = g_strdup_printf ("%s-%d", view->uid, i);
-               gchar *item_path = g_strconcat (view->path, "/", verb_name, NULL);
-               if (bonobo_ui_component_path_exists (view->uic, item_path, NULL))
-                       bonobo_ui_component_rm (view->uic, item_path, NULL);
-               else
-                       done=TRUE;
-
-               g_free (item_path);
-               g_free (verb_name);
-
-               i++;
-       }
-}
-
-static void
-egg_recent_view_bonobo_menu_cb (BonoboUIComponent *uic, gpointer data, const char *cname)
-{
-       EggRecentViewBonoboMenuData *md = (EggRecentViewBonoboMenuData *) data;
-       EggRecentItem *item;
-
-       g_return_if_fail (md);
-       g_return_if_fail (md->item);
-       g_return_if_fail (md->view);
-       g_return_if_fail (EGG_IS_RECENT_VIEW_BONOBO (md->view));
-
-       item = md->item;
-       egg_recent_item_ref (item);
-
-       g_signal_emit (G_OBJECT(md->view),
-                      egg_recent_view_bonobo_signals[ACTIVATE], 0,
-                      item);
-
-       egg_recent_item_unref (item);
-}
-
-static void
-egg_recent_view_bonobo_menu_data_destroy_cb (gpointer data, GClosure *closure)
-{
-       EggRecentViewBonoboMenuData *md = data;
-
-       egg_recent_item_unref (md->item);
-       g_free (md);
-}
-
-
-static void
-egg_recent_view_bonobo_set_list (EggRecentViewBonobo *view, GList *list)
-{
-       BonoboUIComponent* ui_component;
-       unsigned int i;
-       gchar *label = NULL;
-       gchar *verb_name = NULL;
-       gchar *tip = NULL;
-       gchar *escaped_name = NULL;
-       gchar *item_path = NULL;
-       gchar *base_uri;
-       gchar *utf8_uri;
-       gchar *cmd;
-       gchar *xml_escaped_name;
-       EggRecentViewBonoboMenuData *md;
-       EggRecentModel *model;
-       GClosure *closure;
-
-       g_return_if_fail (view);
-
-       ui_component = view->uic;
-       g_return_if_fail (BONOBO_IS_UI_COMPONENT (ui_component));
-
-
-       model = egg_recent_view_get_model (EGG_RECENT_VIEW (view));
-
-       egg_recent_view_bonobo_clear (view);
-
-       
-       bonobo_ui_component_freeze (ui_component, NULL);
-
-       for (i = 1; i <= g_list_length (list); ++i)
-       {
-               EggRecentItem *item = (EggRecentItem *)g_list_nth_data (list, i-1);     
-
-               utf8_uri = egg_recent_item_get_uri_for_display (item);
-               if (utf8_uri == NULL)
-                       continue;
-               
-               /* this is what gets passed to our private "activate" callback */
-               md = (EggRecentViewBonoboMenuData *)g_malloc (sizeof (EggRecentViewBonoboMenuData));
-               md->view = view;
-               md->item = item;
-
-               egg_recent_item_ref (md->item);
-
-               base_uri = g_path_get_basename (utf8_uri);
-               xml_escaped_name = g_markup_escape_text (base_uri,
-                                                        strlen (base_uri));
-       
-               escaped_name = egg_recent_util_escape_underlines (xml_escaped_name);
-               g_free (xml_escaped_name);
-
-               tip = NULL;
-               if (view->tooltip_func != NULL) {
-                       gchar *tmp_tip;
-                       tip = view->tooltip_func (item,
-                                                 view->tooltip_func_data);
-                       tmp_tip = g_markup_escape_text (tip, strlen (tip));
-                       g_free (tip);
-                       tip = tmp_tip;
-               }
-
-               if (tip == NULL)
-                       tip = g_strdup ("");
-
-               verb_name = g_strdup_printf ("%s-%d", view->uid, i);
-
-               if (view->show_icons) {
-                       GdkPixbuf *pixbuf;
-                       gchar *mime_type;
-                       gchar *uri;
-
-                       mime_type = egg_recent_item_get_mime_type (item);
-                       uri = egg_recent_item_get_uri (item);
-#ifndef USE_STABLE_LIBGNOMEUI
-                       {
-                               int width, height;
-
-                               gtk_icon_size_lookup_for_settings
-                                       (gtk_settings_get_default (),
-                                        view->icon_size,
-                                        &width, &height);
-                               pixbuf = egg_recent_util_get_icon
-                                                       (view->theme,
-                                                        uri, mime_type,
-                                                        height);
-                       }
-#else
-                       pixbuf = NULL;
-#endif
-
-
-                       if (pixbuf != NULL) {
-                               gchar *pixbuf_xml;
-
-                               /* Riiiiight.... */
-                               pixbuf_xml = bonobo_ui_util_pixbuf_to_xml (pixbuf);
-                               
-                               cmd = g_strdup_printf ("<cmd name=\"%s\" pixtype=\"pixbuf\" pixname=\"%s\"/>", verb_name, pixbuf_xml);
-
-                               g_free (pixbuf_xml);
-                               g_object_unref (pixbuf);
-                       } else {
-                               cmd = g_strdup_printf ("<cmd name=\"%s\"/> ",
-                                                      verb_name);
-                       }
-
-                       g_free (mime_type);
-                       g_free (uri);
-               } else
-                       cmd = g_strdup_printf ("<cmd name=\"%s\"/> ",
-                                              verb_name);
-               bonobo_ui_component_set_translate (ui_component, "/commands/", cmd, NULL);
-
-               closure = g_cclosure_new (G_CALLBACK (egg_recent_view_bonobo_menu_cb),
-                                         md, egg_recent_view_bonobo_menu_data_destroy_cb);
-                                         
-               bonobo_ui_component_add_verb_full (ui_component, verb_name,
-                                                  closure); 
-               
-               if (view->show_numbers) {
-                       if (i < 10)
-                               label = g_strdup_printf ("_%d. %s", i,
-                                                        escaped_name);
-                       else
-                               label = g_strdup_printf ("%d. %s", i, escaped_name);
-               } else {
-                       label = g_strdup (escaped_name);
-               }
-                       
-               
-               
-               item_path = g_strconcat (view->path, "/", verb_name, NULL);
-
-               if (bonobo_ui_component_path_exists (ui_component, item_path, NULL))
-               {
-                       bonobo_ui_component_set_prop (ui_component, item_path, 
-                                                     "label", label, NULL);
-
-                       bonobo_ui_component_set_prop (ui_component, item_path, 
-                                                     "tip", tip, NULL);
-               }
-               else
-               {
-                       gchar *xml;
-                       
-                       xml = g_strdup_printf ("<menuitem name=\"%s\" "
-                                               "verb=\"%s\""
-                                               " _label=\"%s\"  _tip=\"%s\" "
-                                               "hidden=\"0\" />", 
-                                               verb_name, verb_name, label,
-                                               tip);
-
-                       bonobo_ui_component_set_translate (ui_component, view->path, xml, NULL);
-
-                       g_free (xml); 
-               }
-               
-               g_free (label);
-               g_free (verb_name);
-               g_free (tip);
-               g_free (escaped_name);
-               g_free (item_path);
-               g_free (utf8_uri);
-               g_free (base_uri);
-               g_free (cmd);
-
-       }
-
-
-       bonobo_ui_component_thaw (ui_component, NULL);
-}
-
-static void
-model_changed_cb (EggRecentModel *model, GList *list, EggRecentViewBonobo *view)
-{
-       if (list != NULL)
-               egg_recent_view_bonobo_set_list (view, list);
-       else
-               egg_recent_view_bonobo_clear (view);
-}
-
-
-static EggRecentModel *
-egg_recent_view_bonobo_get_model (EggRecentView *view_parent)
-{
-       EggRecentViewBonobo *view;
-       
-       g_return_val_if_fail (view_parent, NULL);
-       view = EGG_RECENT_VIEW_BONOBO (view_parent);
-       
-       return view->model;
-}
-
-static void
-egg_recent_view_bonobo_set_model (EggRecentView *view_parent, EggRecentModel *model)
-{
-       EggRecentViewBonobo *view;
-       
-       g_return_if_fail (view_parent);
-       view = EGG_RECENT_VIEW_BONOBO (view_parent);
-       
-       if (view->model)
-               g_signal_handler_disconnect (G_OBJECT (view->model),
-                                            view->changed_cb_id);
-       
-       view->model = model;
-       g_object_ref (view->model);
-       view->changed_cb_id = g_signal_connect_object (G_OBJECT (model),
-                                               "changed",
-                                               G_CALLBACK (model_changed_cb),
-                                               view, 0);
-
-       egg_recent_model_changed (view->model);
-}
-
-static void
-egg_recent_view_bonobo_set_property (GObject *object,
-                          guint prop_id,
-                          const GValue *value,
-                          GParamSpec *pspec)
-{
-       EggRecentViewBonobo *view = EGG_RECENT_VIEW_BONOBO (object);
-
-       switch (prop_id)
-       {
-               case PROP_UI_COMPONENT:
-                       egg_recent_view_bonobo_set_ui_component (EGG_RECENT_VIEW_BONOBO (view),
-                                                      BONOBO_UI_COMPONENT (g_value_get_object (value)));
-               break;
-               case PROP_MENU_PATH:
-                       view->path = g_strdup (g_value_get_string (value));
-               break;
-               case PROP_SHOW_ICONS:
-                       egg_recent_view_bonobo_show_icons (view,
-                                               g_value_get_boolean (value));
-               default:
-               case PROP_SHOW_NUMBERS:
-                       egg_recent_view_bonobo_show_numbers (view,
-                                               g_value_get_boolean (value));
-               break;
-               break;
-       }
-}
-
-static void
-egg_recent_view_bonobo_get_property (GObject *object,
-                          guint prop_id,
-                          GValue *value,
-                          GParamSpec *pspec)
-{
-       EggRecentViewBonobo *view = EGG_RECENT_VIEW_BONOBO (object);
-
-       switch (prop_id)
-       {
-               case PROP_UI_COMPONENT:
-                       g_value_set_pointer (value, view->uic);
-               break;
-               case PROP_MENU_PATH:
-                       g_value_set_string (value, g_strdup (view->path));
-               break;
-               case PROP_SHOW_ICONS:
-                       g_value_set_boolean (value, view->show_icons);
-               break;
-               case PROP_SHOW_NUMBERS:
-                       g_value_set_boolean (value, view->show_numbers);
-               break;
-               default:
-                       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-       }
-}
-
-static void
-egg_recent_view_bonobo_finalize (GObject *object)
-{
-       EggRecentViewBonobo *view = EGG_RECENT_VIEW_BONOBO (object);
-
-       g_free (view->path);
-       g_free (view->uid);
-
-       g_object_unref (view->model);
-       g_object_unref (view->uic);
-#ifndef USE_STABLE_LIBGNOMEUI
-       g_object_unref (view->theme);
-#endif
-       g_object_unref (view->client);
-}
-
-static void
-egg_recent_view_bonobo_class_init (EggRecentViewBonoboClass * klass)
-{
-       GObjectClass *object_class;
-
-       
-       object_class = G_OBJECT_CLASS (klass);
-
-       object_class->set_property = egg_recent_view_bonobo_set_property;
-       object_class->get_property = egg_recent_view_bonobo_get_property;
-       object_class->finalize     = egg_recent_view_bonobo_finalize;
-
-       egg_recent_view_bonobo_signals[ACTIVATE] = g_signal_new ("activate",
-                       G_OBJECT_CLASS_TYPE (object_class),
-                       G_SIGNAL_RUN_LAST,
-                       G_STRUCT_OFFSET (EggRecentViewBonoboClass, activate),
-                       NULL, NULL,
-                       g_cclosure_marshal_VOID__BOXED,
-                       G_TYPE_NONE, 1,
-                       EGG_TYPE_RECENT_ITEM);
-
-       g_object_class_install_property (object_class,
-                                        PROP_UI_COMPONENT,
-                                        g_param_spec_object ("ui-component",
-                                          "UI Component",
-                                          "BonoboUIComponent for menus.",
-                                          bonobo_ui_component_get_type(),
-                                          G_PARAM_READWRITE));
-
-       g_object_class_install_property (object_class,
-                                        PROP_MENU_PATH,
-                                        g_param_spec_string ("ui-path",
-                                          "Path",
-                                          "The path to put the menu items.",
-                                          "/menus/File/EggRecentDocuments",
-                                          G_PARAM_READWRITE));
-
-       g_object_class_install_property (object_class,
-                                        PROP_SHOW_ICONS,
-                                        g_param_spec_boolean ("show-icons",
-                                          "Show Icons",
-                                          "Whether or not to show icons",
-                                          FALSE,
-                                          G_PARAM_READWRITE));
-
-       g_object_class_install_property (object_class,
-                                        PROP_SHOW_NUMBERS,
-                                        g_param_spec_boolean ("show-numbers",
-                                          "Show Numbers",
-                                          "Whether or not to show numbers",
-                                          TRUE,
-                                          G_PARAM_READWRITE));
-
-
-
-       klass->activate = NULL;
-}
-
-static void
-egg_recent_view_init (EggRecentViewClass *iface)
-{
-       iface->do_get_model = egg_recent_view_bonobo_get_model;
-       iface->do_set_model = egg_recent_view_bonobo_set_model;
-}
-
-static void
-show_menus_changed_cb (GConfClient *client,
-                       guint cnxn_id,
-                       GConfEntry *entry,
-                       EggRecentViewBonobo *view)
-{
-        GConfValue *value;
-
-        value = gconf_entry_get_value (entry);
-
-        g_return_if_fail (value->type == GCONF_VALUE_BOOL);
-
-        egg_recent_view_bonobo_show_icons (view,
-                                gconf_value_get_bool (value));
-
-}
-
-#ifndef USE_STABLE_LIBGNOMEUI
-static void
-theme_changed_cb (GnomeIconTheme *theme, EggRecentViewBonobo *view)
-{
-       if (view->model != NULL)
-               egg_recent_model_changed (view->model);
-}
-#endif
-
-static void
-egg_recent_view_bonobo_init (EggRecentViewBonobo *view)
-{
-       view->uid = egg_recent_util_get_unique_id ();
-#ifndef USE_STABLE_LIBGNOMEUI
-       view->theme = gnome_icon_theme_new ();
-       gnome_icon_theme_set_allow_svg (view->theme, TRUE);
-       g_signal_connect_object (view->theme, "changed",
-                                G_CALLBACK (theme_changed_cb), view, 0);
-#endif
-
-       view->client = gconf_client_get_default ();
-       view->show_icons =
-               gconf_client_get_bool (view->client,
-                       "/desktop/gnome/interface/menus_have_icons",
-                       NULL);
-
-       gconf_client_add_dir (view->client, "/desktop/gnome/interface",
-                             GCONF_CLIENT_PRELOAD_NONE,
-                             NULL);
-       gconf_client_notify_add (view->client,
-                       "/desktop/gnome/interface/menus_have_icons",
-                       (GConfClientNotifyFunc)show_menus_changed_cb,
-                       view, NULL, NULL);
-
-       view->tooltip_func = NULL;
-       view->tooltip_func_data = NULL;
-
-       view->icon_size = GTK_ICON_SIZE_MENU;
-}
-
-void
-egg_recent_view_bonobo_set_icon_size (EggRecentViewBonobo *view,
-                                     GtkIconSize icon_size)
-{
-       if (view->icon_size != icon_size) {
-               view->icon_size = icon_size;
-               egg_recent_model_changed (view->model);
-       } else {
-               view->icon_size = icon_size;
-       }
-}
-                                                                              
-GtkIconSize
-egg_recent_view_bonobo_get_icon_size (EggRecentViewBonobo *view)
-{
-       return view->icon_size;
-}
-
-void
-egg_recent_view_bonobo_show_icons (EggRecentViewBonobo *view, gboolean show)
-{
-       view->show_icons = show;
-
-       if (view->model)
-               egg_recent_model_changed (view->model);
-}
-
-void
-egg_recent_view_bonobo_show_numbers (EggRecentViewBonobo *view, gboolean show)
-{
-       view->show_numbers = show;
-
-       if (view->model)
-               egg_recent_model_changed (view->model);
-}
-
-void
-egg_recent_view_bonobo_set_ui_component (EggRecentViewBonobo *view, BonoboUIComponent *uic)
-{
-       g_return_if_fail (view);
-       g_return_if_fail (uic);
-
-       view->uic = uic;
-
-       g_object_ref (view->uic);
-}
-
-void
-egg_recent_view_bonobo_set_ui_path (EggRecentViewBonobo *view, const gchar *path)
-{
-       g_return_if_fail (view);
-       g_return_if_fail (path);
-
-       view->path = g_strdup (path);
-}
-
-const BonoboUIComponent *
-egg_recent_view_bonobo_get_ui_component (EggRecentViewBonobo *view)
-{
-       g_return_val_if_fail (view, NULL);
-
-       return view->uic;
-}
-
-gchar *
-egg_recent_view_bonobo_get_ui_path (EggRecentViewBonobo *view)
-{
-       g_return_val_if_fail (view, NULL);
-
-       return g_strdup (view->path);
-}
-
-void
-egg_recent_view_bonobo_set_tooltip_func (EggRecentViewBonobo *view,
-                                        EggRecentViewBonoboTooltipFunc func,
-                                        gpointer user_data)
-{
-       view->tooltip_func = func;
-       view->tooltip_func_data = user_data;
-       
-       if (view->model)
-               egg_recent_model_changed (view->model);
-}
-
-/**
- * egg_recent_view_bonobo_new:
- * @appname: The name of your application.
- * @limit:  The maximum number of items allowed.
- *
- * This creates a new EggRecentViewBonobo object.
- *
- * Returns: a EggRecentViewBonobo object
- */
-EggRecentViewBonobo *
-egg_recent_view_bonobo_new (BonoboUIComponent *uic, const gchar *path)
-{
-       EggRecentViewBonobo *view;
-
-       g_return_val_if_fail (uic, NULL);
-       g_return_val_if_fail (path, NULL);
-
-       view = EGG_RECENT_VIEW_BONOBO (g_object_new (egg_recent_view_bonobo_get_type (),
-                                          "ui-path", path,
-                                          "ui-component", uic,
-                                          "show-icons", FALSE,
-                                          "show-numbers", TRUE, NULL));
-
-       g_return_val_if_fail (view, NULL);
-       
-       return view;
-}
-
-/**
- * egg_recent_view_bonobo_get_type:
- * @:
- *
- * This returns a GType representing a EggRecentViewBonobo object.
- *
- * Returns: a GType
- */
-GType
-egg_recent_view_bonobo_get_type (void)
-{
-       static GType egg_recent_view_bonobo_type = 0;
-
-       if(!egg_recent_view_bonobo_type) {
-               static const GTypeInfo egg_recent_view_bonobo_info = {
-                       sizeof (EggRecentViewBonoboClass),
-                       NULL, /* base init */
-                       NULL, /* base finalize */
-                       (GClassInitFunc)egg_recent_view_bonobo_class_init, /* class init */
-                       NULL, /* class finalize */
-                       NULL, /* class data */
-                       sizeof (EggRecentViewBonobo),
-                       0,
-                       (GInstanceInitFunc) egg_recent_view_bonobo_init
-               };
-
-               static const GInterfaceInfo view_info =
-               {
-                       (GInterfaceInitFunc) egg_recent_view_init,
-                       NULL,
-                       NULL
-               };
-
-               egg_recent_view_bonobo_type = g_type_register_static (G_TYPE_OBJECT,
-                                                       "EggRecentViewBonobo",
-                                                       &egg_recent_view_bonobo_info, 0);
-               g_type_add_interface_static (egg_recent_view_bonobo_type,
-                                            EGG_TYPE_RECENT_VIEW,
-                                            &view_info);
-       }
-
-       return egg_recent_view_bonobo_type;
-}
-
diff --git a/cut-n-paste/recent-files/egg-recent-view-bonobo.h b/cut-n-paste/recent-files/egg-recent-view-bonobo.h
deleted file mode 100644 (file)
index 0b283ef..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-#ifndef __EGG_RECENT_VIEW_BONOBO_H__
-#define __EGG_RECENT_VIEW_BONOBO_H__
-
-#include <libbonoboui.h>
-
-G_BEGIN_DECLS
-
-#define EGG_RECENT_VIEW_BONOBO(obj)            G_TYPE_CHECK_INSTANCE_CAST (obj, egg_recent_view_bonobo_get_type (), EggRecentViewBonobo)
-#define EGG_RECENT_VIEW_BONOBO_CLASS(klass)    G_TYPE_CHECK_CLASS_CAST (klass, egg_recent_view_bonobo_get_type (), EggRecentViewBonoboClass)
-#define EGG_IS_RECENT_VIEW_BONOBO(obj)         G_TYPE_CHECK_INSTANCE_TYPE (obj, egg_recent_view_bonobo_get_type ())
-
-typedef char *(*EggRecentViewBonoboTooltipFunc) (EggRecentItem *item,
-                                                gpointer user_data);
-
-typedef struct _EggRecentViewBonobo EggRecentViewBonobo;
-
-typedef struct _EggRecentViewBonoboClass EggRecentViewBonoboClass;
-
-struct _EggRecentViewBonoboClass {
-       GObjectClass parent_class;
-       
-       void (*activate) (EggRecentViewBonobo *view, EggRecentItem *item);
-};
-
-GType        egg_recent_view_bonobo_get_type (void);
-
-EggRecentViewBonobo * egg_recent_view_bonobo_new (BonoboUIComponent *uic,
-                                                     const gchar *path);
-
-
-void egg_recent_view_bonobo_set_ui_component (EggRecentViewBonobo *view,
-                                               BonoboUIComponent *uic);
-
-void egg_recent_view_bonobo_set_ui_path      (EggRecentViewBonobo *view,
-                                               const gchar *path);
-
-gchar * egg_recent_view_bonobo_get_ui_path   (EggRecentViewBonobo *view);
-const BonoboUIComponent *egg_recent_view_bonobo_get_ui_component (EggRecentViewBonobo *view);
-
-void egg_recent_view_bonobo_show_icons (EggRecentViewBonobo *view,
-                                       gboolean show);
-
-void egg_recent_view_bonobo_show_numbers (EggRecentViewBonobo *view,
-                                         gboolean show);
-
-void egg_recent_view_bonobo_set_tooltip_func (EggRecentViewBonobo *view,
-                                       EggRecentViewBonoboTooltipFunc func,
-                                       gpointer user_data);
-
-void egg_recent_view_bonobo_set_icon_size (EggRecentViewBonobo *view,
-                                          GtkIconSize icon_size);
-
-GtkIconSize egg_recent_view_bonobo_get_icon_size (EggRecentViewBonobo *view);
-
-G_END_DECLS
-
-#endif /* __EGG_RECENT_VIEW_BONOBO_H__ */
index df7bf255e90d20082f0b437480a52628d2f20e5f..64f01632204170eb0241eaddc8e29f9fa4837b5c 100644 (file)
@@ -58,7 +58,6 @@ struct _EvWindowPrivate {
        GtkWidget *hpaned;
        GtkWidget *sidebar;
        GtkWidget *find_bar;
-       GtkWidget *bonobo_widget;
        GtkWidget *view;
        GtkActionGroup *action_group;
        GtkUIManager *ui_manager;
@@ -179,86 +178,66 @@ ev_window_is_empty (const EvWindow *ev_window)
 {
        g_return_val_if_fail (EV_IS_WINDOW (ev_window), FALSE);
        
-       return ev_window->priv->bonobo_widget == NULL;
+       return ev_window->priv->document == NULL;
 }
 
-void
-ev_window_open (EvWindow *ev_window, const char *uri)
+static void
+unable_to_load (EvWindow   *ev_window,
+               const char *error_message)
 {
-       EvDocument *document = g_object_new (PDF_TYPE_DOCUMENT, NULL);
-       GError *error = NULL;
+       GtkWidget *dialog;
 
-       if (ev_document_load (document, uri, &error)) {
-               if (ev_window->priv->document)
-                       g_object_unref (ev_window->priv->document);
-               ev_window->priv->document = document;
+       dialog = gtk_message_dialog_new (GTK_WINDOW (ev_window),
+                                        GTK_DIALOG_DESTROY_WITH_PARENT,
+                                        GTK_MESSAGE_ERROR,
+                                        GTK_BUTTONS_CLOSE,
+                                        _("Unable to open document"));
+       gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
+                                                 "%s", error_message);
+       gtk_dialog_run (GTK_DIALOG (dialog));
+       gtk_widget_destroy (dialog);
+}
 
-               ev_view_set_document (EV_VIEW (ev_window->priv->view),
-                                     document);
+void
+ev_window_open (EvWindow *ev_window, const char *uri)
+{
+       EvDocument *document = NULL;
+       char *mime_type;
 
-               update_action_sensitivity (ev_window);
-               
-       } else {
-               GtkWidget *dialog;
+       mime_type = gnome_vfs_get_mime_type (uri);
 
-               g_object_unref (document);
+       if (!strcmp (mime_type, "application/pdf"))
+               document = g_object_new (PDF_TYPE_DOCUMENT, NULL);
 
-               dialog = gtk_message_dialog_new (GTK_WINDOW (ev_window),
-                                                GTK_DIALOG_DESTROY_WITH_PARENT,
-                                                GTK_MESSAGE_ERROR,
-                                                GTK_BUTTONS_CLOSE,
-                                                _("Unable to open document"));
-               gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
-                                                         "%s", error->message);
-               gtk_dialog_run (GTK_DIALOG (dialog));
-               gtk_widget_destroy (dialog);
+       if (document) {
+               GError *error = NULL;
 
-               g_error_free (error);
-       }
-       
-#if 0
-       char *mime_type;
-       BonoboObject *bonobo_control;
-       CORBA_Environment ev;
-       Bonobo_PersistFile pf;
+               if (ev_document_load (document, uri, &error)) {
+                       if (ev_window->priv->document)
+                               g_object_unref (ev_window->priv->document);
+                       ev_window->priv->document = document;
 
-       mime_type = gnome_vfs_get_mime_type (uri);
+                       ev_view_set_document (EV_VIEW (ev_window->priv->view),
+                                             document);
 
-       g_return_if_fail (mime_type != NULL); /* FIXME set error */
-
-       if (!strcmp (mime_type, "application/pdf")) {
-               bonobo_control = create_gpdf_control ();
-       } else if (!strcmp (mime_type, "application/postscript")) {
-               bonobo_control = create_ggv_control ();
-       } else if (!strcmp (mime_type, "application/x-gzip")) {
-               g_message ("Cannot open gzip-compressed file %s.", uri);
-               goto finally;
-       } else if (!strcmp (mime_type, "application/x-bzip")) {
-               g_message ("Cannot open bzip2-compressed file %s.", uri);
-               goto finally;
+                       update_action_sensitivity (ev_window);
+               
+               } else {
+                       g_assert (error != NULL);
+                       g_object_unref (document);
+                       unable_to_load (ev_window, error->message);
+                       g_error_free (error);
+               }
        } else {
-               g_warning ("Don't know how to open %s file %s.",
-                          mime_type, uri); /* FIXME set error */
-               goto finally;
+               char *error_message;
+
+               error_message = g_strdup_printf (_("Unhandled MIME type: '%s'"),
+                                                mime_type);
+               unable_to_load (ev_window, error_message);
+               g_free (error_message);
        }
 
-       ev_window->priv->bonobo_widget = bonobo_widget_new_control_from_objref (
-               bonobo_object_corba_objref (bonobo_control), CORBA_OBJECT_NIL);
-       gtk_box_pack_start (GTK_BOX (ev_window->priv->main_box),
-                           ev_window->priv->bonobo_widget,
-                           TRUE, TRUE, 0);
-       CORBA_exception_init (&ev);
-       pf = bonobo_object_query_interface (
-               bonobo_control, "IDL:Bonobo/PersistFile:1.0", &ev);
-       Bonobo_PersistFile_load (pf, uri, &ev);
-       gtk_widget_show (ev_window->priv->bonobo_widget);
-       bonobo_object_release_unref (pf, &ev);
-       bonobo_object_unref (bonobo_control);
-       CORBA_exception_free (&ev);
-
-finally:
        g_free (mime_type);
-#endif
 }
 
 static void
index ac20266d01b4c4d9816f0cf6d4a7152aa4234352..4b0c8427b342b30198142cd68241710023ccae5a 100644 (file)
 #include <gtk/gtkmain.h>
 #include <libgnome/gnome-program.h>
 #include <libgnomeui/gnome-ui-init.h>
+#include <libgnomevfs/gnome-vfs-utils.h>
 
 static struct poptOption popt_options[] =
 {
        { NULL, 0, 0, NULL, 0, NULL, NULL }
 };
 
+static void
+load_files (const char **files)
+{
+       GtkWidget *window;
+       int i;
+
+       if (!files) {
+               window = GTK_WIDGET (ev_application_new_window (EV_APP));
+               gtk_widget_show (window);
+               return;
+       }
+
+       for (i = 0; files[i]; i++) {
+               const char *uri;
+               char *freeme = NULL;
+               char *scheme;
+
+               if ((scheme = gnome_vfs_get_uri_scheme (files[i])))
+                       uri = files[i];
+               else
+                       uri = freeme = gnome_vfs_get_uri_from_local_path (files[i]);
+                       
+               window = GTK_WIDGET (ev_application_new_window (EV_APP));
+               gtk_widget_show (window);
+               ev_window_open (EV_WINDOW (window), uri);
+
+               g_free (scheme);
+               g_free (freeme);
+        }
+}
+
 int
 main (int argc, char *argv[])
 {
        poptContext context;
         GValue context_as_value = { 0 };
        GnomeProgram *program;
-       GtkWidget *window;
 
 #ifdef ENABLE_NLS
        /* Initialize the i18n stuff */
@@ -61,8 +92,7 @@ main (int argc, char *argv[])
                                g_value_init (&context_as_value, G_TYPE_POINTER));
         context = g_value_get_pointer (&context_as_value);
 
-       window = GTK_WIDGET (ev_application_new_window (EV_APP));
-       gtk_widget_show (window);
+       load_files (poptGetArgs (context));
 
        gtk_main ();