[evolution-patches] Remove old shortcut bar code
- From: Christian Neumair <chris gnome-de org>
 
- To: evolution-patches ximian com
 
- Subject: [evolution-patches] Remove old shortcut bar code
 
- Date: Sat, 07 Feb 2004 15:57:13 +0100
 
There is still some old shortcut bar code lurking around in CVS which is
neither compiled nor distributed.
This patch should remove it.
regs,
 Chris
Index: po/POTFILES.in
===================================================================
RCS file: /cvs/gnome/evolution/po/POTFILES.in,v
retrieving revision 1.213
diff -u -r1.213 POTFILES.in
--- po/POTFILES.in	5 Feb 2004 15:51:12 -0000	1.213
+++ po/POTFILES.in	7 Feb 2004 14:52:25 -0000
@@ -337,8 +337,6 @@
 shell/e-shell-window-commands.c
 shell/e-shell-window.c
 shell/e-shell.c
-shell/e-shortcuts-view.c
-shell/e-shortcuts.c
 shell/e-storage-set-view.etspec
 shell/e-user-creatable-items-handler.c
 shell/evolution-folder-selector-button.c
Index: shell/e-shell-folder-commands.c
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-folder-commands.c,v
retrieving revision 1.59
diff -u -r1.59 e-shell-folder-commands.c
--- shell/e-shell-folder-commands.c	9 Jul 2003 19:54:25 -0000	1.59
+++ shell/e-shell-folder-commands.c	7 Feb 2004 14:52:25 -0000
@@ -608,46 +608,3 @@
 	e_storage_set_async_remove_shared_folder (storage_set, folder_path,
 						  remove_shared_cb, shell_view);
 }
-
-
-void
-e_shell_command_add_to_shortcut_bar (EShell *shell,
-				     EShellView *shell_view,
-				     const char *folder_path)
-{
-	EShortcuts *shortcuts;
-	EStorageSet *storage_set;
-	EFolder *folder;
-	char *uri;
-	const char *path;
-	int group_num;
-	int unread_count;
-
-	g_return_if_fail (shell != NULL);
-	g_return_if_fail (E_IS_SHELL (shell));
-	g_return_if_fail (shell_view != NULL);
-	g_return_if_fail (E_IS_SHELL_VIEW (shell_view));
-	g_return_if_fail (folder_path == NULL || g_path_is_absolute (folder_path));
-
-	shortcuts = e_shell_get_shortcuts (shell);
-	group_num = e_shell_view_get_current_shortcuts_group_num (shell_view);
-
-	if (folder_path == NULL) {
-		uri = g_strdup (e_shell_view_get_current_uri (shell_view));
-		path = e_shell_view_get_current_path (shell_view);
-	} else {
-		uri = g_strconcat (E_SHELL_URI_PREFIX, folder_path, NULL);
-		path = folder_path;
-	}
-
-	unread_count = get_folder_unread (shell, path);
-	storage_set = e_shell_get_storage_set (shell);
-	folder = e_storage_set_get_folder (storage_set, path);
-
-	e_shortcuts_add_shortcut (shortcuts, group_num, -1, uri, NULL,
-				  unread_count,
-				  e_folder_get_type_string (folder),
-				  e_folder_get_custom_icon_name (folder));
-
-	g_free (uri);
-}
Index: shell/e-shell-folder-commands.h
===================================================================
RCS file: /cvs/gnome/evolution/shell/e-shell-folder-commands.h,v
retrieving revision 1.7
diff -u -r1.7 e-shell-folder-commands.h
--- shell/e-shell-folder-commands.h	30 Sep 2002 18:41:05 -0000	1.7
+++ shell/e-shell-folder-commands.h	7 Feb 2004 14:52:25 -0000
@@ -37,6 +37,4 @@
 
 void  e_shell_command_remove_shared_folder (EShell *shell, EShellView *shell_view, const char *folder_path);
 
-void  e_shell_command_add_to_shortcut_bar (EShell *shell, EShellView *shell_view, const char *folder_path);
-
 #endif
Index: shell/e-shortcuts-view-model.c
===================================================================
RCS file: shell/e-shortcuts-view-model.c
diff -N shell/e-shortcuts-view-model.c
--- shell/e-shortcuts-view-model.c	2 Dec 2002 03:23:57 -0000	1.30
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,341 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-shortcuts-view-model.c
- *
- * Copyright (C) 2000  Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Author: Ettore Perazzoli
- */
-
-/* FIXME.  This really sucks.  We are using the model/view approach in the
-   dumbest possible way.  */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "e-shortcuts-view-model.h"
-
-#include "e-icon-factory.h"
-
-#include <glib.h>
-#include <gtk/gtksignal.h>
-#include <libgnome/gnome-i18n.h>
-
-#include <gal/util/e-util.h>
-
-
-#define PARENT_TYPE e_shortcut_model_get_type ()
-static EShortcutModelClass *parent_class = NULL;
-
-struct _EShortcutsViewModelPrivate {
-	EShortcuts *shortcuts;
-};
-
-
-/* Utility functions.  */
-
-static GdkPixbuf *
-get_icon_for_item (EShortcutsViewModel *shortcuts_view_model,
-		   const EShortcutItem *item,
-		   gboolean want_mini)
-{
-	EShortcutsViewModelPrivate *priv;
-
-	priv = shortcuts_view_model->priv;
-
-	if (item->custom_icon_name != NULL)
-		return e_icon_factory_get_icon (item->custom_icon_name, want_mini);
-
-	if (item->type != NULL) {
-		EStorageSet *storage_set;
-		EFolderTypeRegistry *folder_type_registry;
-
-		storage_set = e_shell_get_storage_set (e_shortcuts_get_shell (priv->shortcuts));
-		folder_type_registry = e_storage_set_get_folder_type_registry (storage_set);
-
-		return e_folder_type_registry_get_icon_for_type (folder_type_registry,
-								 item->type,
-								 want_mini);
-	}
-
-	return NULL;
-}
-
-
-/* View initialization.  */
-
-static char *
-get_name_with_unread (const EShortcutItem *item)
-{
-	if (item->unread_count > 0)
-		return g_strdup_printf ("%s (%d)", item->name, item->unread_count);
-	else
-		return g_strdup (item->name);
-}
-
-static void
-load_group_into_model (EShortcutsViewModel *shortcuts_view_model,
-		       int group_num)
-{
-	EShortcutsViewModelPrivate *priv;
-	const GSList *shortcut_list;
-	const GSList *p;
-
-	priv = shortcuts_view_model->priv;
-
-	shortcut_list = e_shortcuts_get_shortcuts_in_group (priv->shortcuts, group_num);
-	if (shortcut_list == NULL)
-		return;
-
-	for (p = shortcut_list; p != NULL; p = p->next) {
-		const EShortcutItem *item;
-		char *name_with_unread;
-
-		item = (const EShortcutItem *) p->data;
-		name_with_unread = get_name_with_unread (item);
-
-		e_shortcut_model_add_item (E_SHORTCUT_MODEL (shortcuts_view_model),
-					   group_num, -1,
-					   item->uri,
-					   name_with_unread,
-					   get_icon_for_item (shortcuts_view_model, item, FALSE));
-
-		g_free (name_with_unread);
-	}
-}
-
-static void
-load_all_shortcuts_into_model (EShortcutsViewModel *shortcuts_view_model)
-{
-	EShortcutsViewModelPrivate *priv;
-	const GSList *group_titles;
-	const GSList *p;
-	int group_num;
-
-	priv = shortcuts_view_model->priv;
-
-	group_titles = e_shortcuts_get_group_titles (priv->shortcuts);
-
-	for (p = group_titles; p != NULL; p = p->next) {
-		const char *group_title;
-
-		group_title = (const char *) p->data;
-		group_num = e_shortcut_model_add_group (E_SHORTCUT_MODEL (shortcuts_view_model), -1, group_title);
-
-		load_group_into_model (shortcuts_view_model, group_num);
-	}
-}
-
-
-/* EShortcuts callbacks.  */
-
-static void
-shortcuts_new_group_cb (EShortcuts *shortcuts,
-			int group_num,
-			void *data)
-{
-	EShortcutsViewModel *shortcuts_view_model;
-	EShortcutsViewModelPrivate *priv;
-	const char *title;
-
-	shortcuts_view_model = E_SHORTCUTS_VIEW_MODEL (data);
-	priv = shortcuts_view_model->priv;
-
-	title = e_shortcuts_get_group_title (priv->shortcuts, group_num);
-	e_shortcut_model_add_group (E_SHORTCUT_MODEL (shortcuts_view_model), group_num, title);
-}
-
-static void
-shortcuts_remove_group_cb (EShortcuts *shortcuts,
-			   int group_num,
-			   void *data)
-{
-	EShortcutsViewModel *shortcuts_view_model;
-
-	shortcuts_view_model = E_SHORTCUTS_VIEW_MODEL (data);
-	e_shortcut_model_remove_group (E_SHORTCUT_MODEL (shortcuts_view_model), group_num);
-}
-
-static void
-shortcuts_rename_group_cb (EShortcuts *shortcuts,
-			   int group_num,
-			   const char *new_title,
-			   void *data)
-{
-	EShortcutsViewModel *shortcuts_view_model;
-
-	shortcuts_view_model = E_SHORTCUTS_VIEW_MODEL (data);
-
-	/* FIXME: Ideally there should be an
-           e_shortcut_model_rename_group(), removing then re-add
-           actually causes a flip to the next group, which we work
-           around in e-shortcuts-view.c */
-	e_shortcut_model_remove_group (E_SHORTCUT_MODEL (shortcuts_view_model), group_num);
-	e_shortcut_model_add_group (E_SHORTCUT_MODEL (shortcuts_view_model), group_num, new_title);
-	load_group_into_model (shortcuts_view_model, group_num);
-}
-
-static void
-shortcuts_new_shortcut_cb (EShortcuts *shortcuts,
-			   int group_num,
-			   int item_num,
-			   void *data)
-{
-	EShortcutsViewModel *shortcuts_view_model;
-	EShortcutsViewModelPrivate *priv;
-	const EShortcutItem *shortcut_item;
-	char *name_with_unread;
-
-	shortcuts_view_model = E_SHORTCUTS_VIEW_MODEL (data);
-	priv = shortcuts_view_model->priv;
-
-	shortcut_item = e_shortcuts_get_shortcut (priv->shortcuts, group_num, item_num);
-	g_assert (shortcut_item != NULL);
-
-	name_with_unread = get_name_with_unread (shortcut_item);
-	e_shortcut_model_add_item (E_SHORTCUT_MODEL (shortcuts_view_model),
-				   group_num, item_num,
-				   shortcut_item->uri,
-				   name_with_unread,
-				   get_icon_for_item (shortcuts_view_model, shortcut_item, FALSE));
-
-	g_free (name_with_unread);
-}
-
-static void
-shortcuts_remove_shortcut_cb (EShortcuts *shortcuts,
-			      int group_num,
-			      int item_num,
-			      void *data)
-{
-	EShortcutsViewModel *shortcuts_view_model;
-
-	shortcuts_view_model = E_SHORTCUTS_VIEW_MODEL (data);
-	e_shortcut_model_remove_item (E_SHORTCUT_MODEL (shortcuts_view_model), group_num, item_num);
-}
-
-static void
-shortcuts_update_shortcut_cb (EShortcuts *shortcuts,
-			      int group_num,
-			      int item_num,
-			      void *data)
-{
-	EShortcutsViewModel *shortcuts_view_model;
-	EShortcutsViewModelPrivate *priv;
-	const EShortcutItem *shortcut_item;
-	char *name_with_unread;
-
-	shortcuts_view_model = E_SHORTCUTS_VIEW_MODEL (data);
-	priv = shortcuts_view_model->priv;
-
-	shortcut_item = e_shortcuts_get_shortcut (priv->shortcuts, group_num, item_num);
-	g_assert (shortcut_item != NULL);
-
-	name_with_unread = get_name_with_unread (shortcut_item);
-	e_shortcut_model_update_item (E_SHORTCUT_MODEL (shortcuts_view_model),
-				      group_num, item_num,
-				      shortcut_item->uri,
-				      name_with_unread,
-				      get_icon_for_item (shortcuts_view_model, shortcut_item, FALSE));
-
-	g_free (name_with_unread);
-}
-
-
-/* GObject methods.  */
-
-static void
-impl_finalize (GObject *object)
-{
-	EShortcutsViewModel *view_model;
-	EShortcutsViewModelPrivate *priv;
-
-	view_model = E_SHORTCUTS_VIEW_MODEL (object);
-	priv = view_model->priv;
-
-	g_free (priv);
-
-	(* G_OBJECT_CLASS (parent_class)->finalize) (object);
-}
-
-
-static void
-class_init (EShortcutsViewModelClass *klass)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (klass);
-	object_class->finalize = impl_finalize;
-
-	parent_class = g_type_class_ref(e_shortcut_model_get_type ());
-}
-
-static void
-init (EShortcutsViewModel *shortcuts_view_model)
-{
-	EShortcutsViewModelPrivate *priv;
-
-	priv = g_new (EShortcutsViewModelPrivate, 1);
-	priv->shortcuts      = NULL;
-
-	shortcuts_view_model->priv = priv;
-}
-
-
-void
-e_shortcuts_view_model_construct (EShortcutsViewModel *model,
-				  EShortcuts *shortcuts)
-{
-	EShortcutsViewModelPrivate *priv;
-
-	g_return_if_fail (model != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS_VIEW_MODEL (model));
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = model->priv;
-	g_return_if_fail (priv->shortcuts == NULL);
-
-	priv->shortcuts = shortcuts;
-
-	load_all_shortcuts_into_model (model);
-
-	g_signal_connect_object (priv->shortcuts, "new_group", G_CALLBACK (shortcuts_new_group_cb), model, 0);
-	g_signal_connect_object (priv->shortcuts, "remove_group", G_CALLBACK (shortcuts_remove_group_cb), model, 0);
-	g_signal_connect_object (priv->shortcuts, "rename_group", G_CALLBACK (shortcuts_rename_group_cb), model, 0);
-	g_signal_connect_object (priv->shortcuts, "new_shortcut", G_CALLBACK (shortcuts_new_shortcut_cb), model, 0);
-	g_signal_connect_object (priv->shortcuts, "remove_shortcut", G_CALLBACK (shortcuts_remove_shortcut_cb), model, 0);
-	g_signal_connect_object (priv->shortcuts, "update_shortcut", G_CALLBACK (shortcuts_update_shortcut_cb), model, 0);
-}
-
-EShortcutsViewModel *
-e_shortcuts_view_model_new (EShortcuts *shortcuts)
-{
-	EShortcutsViewModel *new;
-
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	new = g_object_new (e_shortcuts_view_model_get_type (), NULL);
-
-	e_shortcuts_view_model_construct (new, shortcuts);
-
-	return new;
-}
-
-
-E_MAKE_TYPE (e_shortcuts_view_model, "EShortcutsViewModel", EShortcutsViewModel, class_init, init, PARENT_TYPE)
Index: shell/e-shortcuts-view-model.h
===================================================================
RCS file: shell/e-shortcuts-view-model.h
diff -N shell/e-shortcuts-view-model.h
--- shell/e-shortcuts-view-model.h	27 Oct 2001 01:09:28 -0000	1.6
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,66 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-shortcuts-view-model.h
- *
- * Copyright (C) 2000  Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Author: Ettore Perazzoli
- */
-
-#ifndef _E_SHORTCUTS_VIEW_MODEL_H_
-#define _E_SHORTCUTS_VIEW_MODEL_H_
-
-#include <gal/shortcut-bar/e-shortcut-model.h>
-
-#include "e-shortcuts.h"
-
-#ifdef __cplusplus
-extern "C" {
-#pragma }
-#endif /* __cplusplus */
-
-#define E_TYPE_SHORTCUTS_VIEW_MODEL			(e_shortcuts_view_model_get_type ())
-#define E_SHORTCUTS_VIEW_MODEL(obj)			(GTK_CHECK_CAST ((obj), E_TYPE_SHORTCUTS_VIEW_MODEL, EShortcutsViewModel))
-#define E_SHORTCUTS_VIEW_MODEL_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHORTCUTS_VIEW_MODEL, EShortcutsViewModelClass))
-#define E_IS_SHORTCUTS_VIEW_MODEL(obj)			(GTK_CHECK_TYPE ((obj), E_TYPE_SHORTCUTS_VIEW_MODEL))
-#define E_IS_SHORTCUTS_VIEW_MODEL_CLASS(klass)		(GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHORTCUTS_VIEW_MODEL))
-
-
-typedef struct _EShortcutsViewModel        EShortcutsViewModel;
-typedef struct _EShortcutsViewModelPrivate EShortcutsViewModelPrivate;
-typedef struct _EShortcutsViewModelClass   EShortcutsViewModelClass;
-
-struct _EShortcutsViewModel {
-	EShortcutModel parent;
-
-	EShortcutsViewModelPrivate *priv;
-};
-
-struct _EShortcutsViewModelClass {
-	EShortcutModelClass parent_class;
-};
-
-
-GtkType              e_shortcuts_view_model_get_type   (void);
-void                 e_shortcuts_view_model_construct  (EShortcutsViewModel *model,
-							EShortcuts          *shortcuts);
-EShortcutsViewModel *e_shortcuts_view_model_new        (EShortcuts          *shortcuts);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _E_SHORTCUTS_VIEW_MODEL_H_ */
Index: shell/e-shortcuts-view.c
===================================================================
RCS file: shell/e-shortcuts-view.c
diff -N shell/e-shortcuts-view.c
--- shell/e-shortcuts-view.c	22 Apr 2003 19:49:22 -0000	1.65
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,800 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-shortcuts-view.c
- *
- * Copyright (C) 2000, 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Author: Ettore Perazzoli
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "e-shortcuts-view.h"
-
-#include "e-folder-dnd-bridge.h"
-#include "e-shell-constants.h"
-#include "e-shell-marshal.h"
-#include "e-shortcuts-view-model.h"
-
-#include "e-util/e-request.h"
-
-#include <glib.h>
-#include <gtk/gtkcheckmenuitem.h>
-#include <gtk/gtkentry.h>
-#include <gtk/gtklabel.h>
-
-#include <libgnome/gnome-i18n.h>
-
-#include <libgnomeui/gnome-app.h>
-#include <libgnomeui/gnome-app-helper.h>
-#include <libgnomeui/gnome-popup-menu.h>
-#include <libgnomeui/gnome-uidefs.h>
-
-#include <gtk/gtkmessagedialog.h>
-#include <gtk/gtkstock.h>
-
-#include <gal/util/e-util.h>
-
-#include <string.h>
-
-
-#define PARENT_TYPE E_TYPE_SHORTCUT_BAR
-static EShortcutBarClass *parent_class = NULL;
-
-struct _EShortcutsViewPrivate {
-	EShortcuts *shortcuts;
-};
-
-enum {
-	ACTIVATE_SHORTCUT,
-	HIDE_REQUESTED,
-	LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-
-/* Utility functions.  */
-
-static void
-show_new_group_dialog (EShortcutsView *view)
-{
-	char *group_name;
-
-	group_name = e_request_string (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (view))),
-				       _("Create New Shortcut Group"),
-				       _("Group name:"),
-				       NULL);
-
-	if (group_name == NULL)
-		return;
-
-	e_shortcuts_add_group (view->priv->shortcuts, -1, group_name);
-
-	g_free (group_name);
-}
-
-
-/* Shortcut bar right-click menu.  */
-
-struct _RightClickMenuData {
-	EShortcutsView *shortcuts_view;
-	int group_num;
-};
-typedef struct _RightClickMenuData RightClickMenuData;
-
-static void
-toggle_large_icons_cb (GtkWidget *widget,
-		       void *data)
-{
-	RightClickMenuData *menu_data;
-
-	menu_data = (RightClickMenuData *) data;
-
-	if (menu_data == NULL)
-		return;
-
-	if (! GTK_CHECK_MENU_ITEM (widget)->active)
-		return;
-
-	e_shortcuts_set_group_uses_small_icons (menu_data->shortcuts_view->priv->shortcuts, menu_data->group_num, FALSE);
-}
-
-static void
-toggle_small_icons_cb (GtkWidget *widget,
-		       void *data)
-{
-	RightClickMenuData *menu_data;
-
-	menu_data = (RightClickMenuData *) data;
-	if (menu_data == NULL)
-		return;
-
-	if (! GTK_CHECK_MENU_ITEM (widget)->active)
-		return;
-
-	e_shortcuts_set_group_uses_small_icons (menu_data->shortcuts_view->priv->shortcuts, menu_data->group_num, TRUE);
-}
-
-static void
-hide_shortcut_bar_cb (GtkWidget *widget,
-		      void *data)
-{
-	RightClickMenuData *menu_data;
-	EShortcutsView *shortcut_view;
-
-	menu_data = (RightClickMenuData *) data;
-
-	shortcut_view = E_SHORTCUTS_VIEW (menu_data->shortcuts_view);
-
-	g_signal_emit (shortcut_view, signals[HIDE_REQUESTED], 0);
-}
-
-static void
-create_new_group_cb (GtkWidget *widget,
-		     void *data)
-{
-	RightClickMenuData *menu_data;
-
-	menu_data = (RightClickMenuData *) data;
-
-	show_new_group_dialog (menu_data->shortcuts_view);
-}
-
-static void
-destroy_group_cb (GtkWidget *widget,
-		  void *data)
-{
-	RightClickMenuData *menu_data;
-	EShortcuts *shortcuts;
-	EShortcutsView *shortcuts_view;
-	EShortcutsViewPrivate *priv;
-	GtkWidget *message_dialog;
-	GtkResponseType response;
-
-	menu_data = (RightClickMenuData *) data;
-	shortcuts_view = menu_data->shortcuts_view;
-	priv = shortcuts_view->priv;
-	shortcuts = priv->shortcuts;
-
-	message_dialog = gtk_message_dialog_new (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (menu_data->shortcuts_view))),
-						 GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_MODAL,
-						 GTK_MESSAGE_QUESTION,
-						 GTK_BUTTONS_NONE,
-						 _("Do you really want to remove group "
-						   "\"%s\" from the shortcut bar?"),
-						 e_shortcuts_get_group_title (shortcuts, menu_data->group_num));
-
-	gtk_dialog_add_buttons (GTK_DIALOG (message_dialog),
-				GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-				GTK_STOCK_DELETE, GTK_RESPONSE_OK,
-				NULL);
-
-	gtk_window_set_title (GTK_WINDOW (message_dialog), "Remove Shortcut Group"); 
-
-	gtk_container_set_border_width (GTK_CONTAINER (message_dialog), 6); 
-	
-	gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (message_dialog)->vbox), 6);
-
-	gtk_dialog_set_default_response (GTK_DIALOG (message_dialog), GTK_RESPONSE_OK);
-
-	response = gtk_dialog_run (GTK_DIALOG (message_dialog));
-	gtk_widget_destroy (message_dialog);
-
-	if (response == GTK_RESPONSE_OK)
-		e_shortcuts_remove_group (shortcuts, menu_data->group_num);
-}
-
-static void
-rename_group_cb (GtkWidget *widget,
-		 void *data)
-{
-	RightClickMenuData *menu_data;
-	EShortcuts *shortcuts;
-	EShortcutsView *shortcuts_view;
-	EIconBarViewType original_view_type;
-	const char *old_name;
-	char *new_name;
-	int group;
-
-	menu_data = (RightClickMenuData *) data;
-	shortcuts_view = menu_data->shortcuts_view;
-	shortcuts = shortcuts_view->priv->shortcuts;
-
-	old_name = e_shortcuts_get_group_title (shortcuts, menu_data->group_num);
-
-	new_name = e_request_string (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (shortcuts_view))),
-				     _("Rename Shortcut Group"),
-				     _("Rename selected shortcut group to:"),
-				     old_name);
-
-	if (new_name == NULL)
-		return;
-
-	/* Remember the group and flip back to it.  FIXME: This is a workaround
-	   to an actual ShortcutBar bug.  */
-
-	group = e_group_bar_get_current_group_num (E_GROUP_BAR (shortcuts_view));
-	original_view_type = e_shortcut_bar_get_view_type (E_SHORTCUT_BAR (menu_data->shortcuts_view), group);
-	e_shortcuts_rename_group (shortcuts, menu_data->group_num, new_name);
-
-	g_free (new_name);
-	e_group_bar_set_current_group_num (E_GROUP_BAR (shortcuts_view), group, FALSE);
-	e_shortcut_bar_set_view_type (E_SHORTCUT_BAR (menu_data->shortcuts_view), group, original_view_type);
-}
-
-static void
-create_default_shortcuts_cb (GtkWidget *widget,
-			     void *data)
-{
-	RightClickMenuData *menu_data;
-	EShortcutsView *shortcuts_view;
-
-	menu_data = (RightClickMenuData *) data;
-	shortcuts_view = menu_data->shortcuts_view;
-	e_shortcuts_add_default_shortcuts (shortcuts_view->priv->shortcuts,
-					   e_group_bar_get_current_group_num (E_GROUP_BAR (shortcuts_view)));
-}
-
-static GnomeUIInfo icon_size_radio_group_uiinfo[] = {
-	{ GNOME_APP_UI_ITEM, N_("_Small Icons"),
-	  N_("Show the shortcuts as small icons"), toggle_small_icons_cb, NULL,
-	  NULL, 0, 0, 0, 0 },
-	{ GNOME_APP_UI_ITEM, N_("_Large Icons"),
-	  N_("Show the shortcuts as large icons"), toggle_large_icons_cb, NULL,
-	  NULL, 0, 0, 0, 0 },
-
-	GNOMEUIINFO_END
-};
-
-static GnomeUIInfo right_click_menu_uiinfo[] = {
-	GNOMEUIINFO_RADIOLIST (icon_size_radio_group_uiinfo),
-
-	GNOMEUIINFO_SEPARATOR,
-
-	{ GNOME_APP_UI_ITEM, N_("_Add Group..."),
-	  N_("Create a new shortcut group"), create_new_group_cb, NULL,
-	  NULL, 0, 0, 0, 0 },
-	{ GNOME_APP_UI_ITEM, N_("_Remove this Group..."),
-	  N_("Remove this shortcut group"), destroy_group_cb, NULL,
-	  NULL, 0, 0, 0, 0 },
-	{ GNOME_APP_UI_ITEM, N_("Re_name this Group..."),
-	  N_("Rename this shortcut group"), rename_group_cb, NULL,
-	  NULL, 0, 0, 0, 0 },
-
-	GNOMEUIINFO_SEPARATOR,
-
-	{ GNOME_APP_UI_ITEM, N_("_Hide the Shortcut Bar"), 
-	  N_("Hide the shortcut bar"), hide_shortcut_bar_cb, NULL,
-	  NULL, 0, 0, 0, 0 },
-
-	GNOMEUIINFO_SEPARATOR,
-
-	{ GNOME_APP_UI_ITEM, N_("Create _Default Shortcuts"), 
-	  N_("Create Default Shortcuts"), create_default_shortcuts_cb, NULL,
-	  NULL, 0, 0, 0, 0 },
-
-	GNOMEUIINFO_END
-};
-
-static void
-pop_up_right_click_menu_for_group (EShortcutsView *shortcuts_view,
-				   GdkEventButton *event,
-				   int group_num)
-{
-	RightClickMenuData *menu_data;
-	GtkWidget *popup_menu;
-
-	menu_data = g_new (RightClickMenuData, 1);
-	menu_data->shortcuts_view = shortcuts_view;
-	menu_data->group_num      = group_num;
-
-	popup_menu = gnome_popup_menu_new (right_click_menu_uiinfo);
-
-	if (e_shortcut_bar_get_view_type (E_SHORTCUT_BAR (shortcuts_view), group_num)
-	    == E_ICON_BAR_SMALL_ICONS)
-		gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (icon_size_radio_group_uiinfo[0].widget),
-						TRUE);
-	else
-		gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (icon_size_radio_group_uiinfo[1].widget),
-						TRUE);
-
-	if (group_num == 0)
-		gtk_widget_set_sensitive (right_click_menu_uiinfo[3].widget, FALSE);
-
-	gnome_popup_menu_do_popup_modal (popup_menu, NULL, NULL, event, menu_data, GTK_WIDGET (shortcuts_view));
-
-	g_free (menu_data);
-	gtk_widget_destroy (popup_menu);
-}
-
-
-/* Data to be passed around for the shortcut right-click menu items.  */
-
-struct _ShortcutRightClickMenuData {
-	EShortcutsView *shortcuts_view;
-	int group_num;
-	int item_num;
-};
-typedef struct _ShortcutRightClickMenuData ShortcutRightClickMenuData;
-
-
-/* "Open Shortcut" and "Open Shortcut in New Window" commands.  */
-
-static void
-open_shortcut_helper (ShortcutRightClickMenuData *menu_data,
-		      gboolean in_new_window)
-{
-	EShortcutsView *shortcuts_view;
-	EShortcuts *shortcuts;
-	const EShortcutItem *shortcut_item;
-
-	shortcuts_view = menu_data->shortcuts_view;
-	shortcuts = shortcuts_view->priv->shortcuts;
-
-	shortcut_item = e_shortcuts_get_shortcut (shortcuts, menu_data->group_num, menu_data->item_num);
-	if (shortcut_item == NULL)
-		return;
-
-	g_signal_emit (shortcuts_view, signals[ACTIVATE_SHORTCUT], 0,
-		       shortcuts, shortcut_item->uri, in_new_window);
-}
-
-static void
-open_shortcut_cb (GtkWidget *widget,
-		  void *data)
-{
-	open_shortcut_helper ((ShortcutRightClickMenuData *) data, FALSE);
-}
-
-static void
-open_shortcut_in_new_window_cb (GtkWidget *widget,
-				void *data)
-{
-	open_shortcut_helper ((ShortcutRightClickMenuData *) data, TRUE);
-}
-
-
-static void
-remove_shortcut_cb (GtkWidget *widget,
-		    void *data)
-{
-	ShortcutRightClickMenuData *menu_data;
-	EShortcutsView *shortcuts_view;
-	EShortcuts *shortcuts;
-
-	menu_data = (ShortcutRightClickMenuData *) data;
-	shortcuts_view = menu_data->shortcuts_view;
-	shortcuts = shortcuts_view->priv->shortcuts;
-
-	e_shortcuts_remove_shortcut (shortcuts, menu_data->group_num, menu_data->item_num);
-}
-
-
-/* "Rename Shortcut"  command.  */
-
-static void
-rename_shortcut_cb (GtkWidget *widget,
-		    void *data)
-{
-	ShortcutRightClickMenuData *menu_data;
-	EShortcutsView *shortcuts_view;
-	EShortcuts *shortcuts;
-	const EShortcutItem *shortcut_item;
-	char *new_name;
-
-	menu_data = (ShortcutRightClickMenuData *) data;
-	shortcuts_view = menu_data->shortcuts_view;
-	shortcuts = shortcuts_view->priv->shortcuts;
-
-	shortcut_item = e_shortcuts_get_shortcut (shortcuts, menu_data->group_num, menu_data->item_num);
-
-	new_name = e_request_string (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (shortcuts_view))),
-				     _("Rename Shortcut"),
-				     _("Rename selected shortcut to:"),
-				     shortcut_item->name);
-
-	if (new_name == NULL)
-		return;
-
-	e_shortcuts_update_shortcut (shortcuts, menu_data->group_num, menu_data->item_num,
-				     shortcut_item->uri, new_name, shortcut_item->unread_count,
-				     shortcut_item->type, shortcut_item->custom_icon_name);
-	g_free (new_name);
-}
-
-static GnomeUIInfo shortcut_right_click_menu_uiinfo[] = {
-	GNOMEUIINFO_ITEM_STOCK (N_("_Open"), N_("Open the folder linked to this shortcut"),
-				open_shortcut_cb, GTK_STOCK_OPEN), 
-	GNOMEUIINFO_ITEM_NONE  (N_("Open in New _Window"), N_("Open the folder linked to this shortcut in a new window"),
-				open_shortcut_in_new_window_cb),
-	GNOMEUIINFO_SEPARATOR,
-	GNOMEUIINFO_ITEM_NONE (N_("_Rename"), N_("Rename this shortcut"),
-			       rename_shortcut_cb),
-	GNOMEUIINFO_ITEM_STOCK (N_("Re_move"), N_("Remove this shortcut from the shortcut bar"),
-				remove_shortcut_cb, GTK_STOCK_REMOVE),
-	GNOMEUIINFO_END
-};
-
-static void
-pop_up_right_click_menu_for_shortcut (EShortcutsView *shortcuts_view,
-				      GdkEventButton *event,
-				      int group_num,
-				      int item_num)
-{
-	ShortcutRightClickMenuData *menu_data;
-	GtkWidget *popup_menu;
-
-	menu_data = g_new (ShortcutRightClickMenuData, 1);
-	menu_data->shortcuts_view = shortcuts_view;
-	menu_data->group_num 	  = group_num;
-	menu_data->item_num  	  = item_num;
-
-	popup_menu = gnome_popup_menu_new (shortcut_right_click_menu_uiinfo);
-
-	gnome_popup_menu_do_popup_modal (popup_menu, NULL, NULL, event, menu_data, GTK_WIDGET (shortcuts_view));
-
-	g_free (menu_data);
-	gtk_widget_destroy (popup_menu);
-}
-
-
-/* View callbacks.  This part exists mostly because of breakage in the
-   EShortcutBar design.  */
-
-static void
-group_change_icon_size_callback (EShortcuts *shortucts,
-				 int group_num,
-				 gboolean use_small_icons,
-				 void *data)
-{
-	EShortcutsView *view;
-
-	view = E_SHORTCUTS_VIEW (data);
-
-	if (use_small_icons)
-		e_shortcut_bar_set_view_type (E_SHORTCUT_BAR (view), group_num, E_ICON_BAR_SMALL_ICONS);
-	else
-		e_shortcut_bar_set_view_type (E_SHORTCUT_BAR (view), group_num, E_ICON_BAR_LARGE_ICONS);
-}
-
-
-/* GObject methods.  */
-
-static void
-impl_dispose (GObject *object)
-{
-	EShortcutsViewPrivate *priv;
-	EShortcutsView *shortcuts_view;
-
-	shortcuts_view = E_SHORTCUTS_VIEW (object);
-
-	priv = shortcuts_view->priv;
-
-	if (priv->shortcuts != NULL) {
-		g_object_unref (priv->shortcuts);
-		priv->shortcuts = NULL;
-	}
-
-	(* G_OBJECT_CLASS (parent_class)->dispose) (object);
-}
-
-static void
-impl_finalize (GObject *object)
-{
-	EShortcutsView *shortcuts_view;
-
-	shortcuts_view = E_SHORTCUTS_VIEW (object);
-
-	g_free (shortcuts_view->priv);
-
-	(* G_OBJECT_CLASS (parent_class)->finalize) (object);
-}
-
-
-/* EShortcutBar methods.  */
-
-static void
-item_selected (EShortcutBar *shortcut_bar,
-	       GdkEvent *event,
-	       int group_num,
-	       int item_num)
-{
-	EShortcuts *shortcuts;
-	EShortcutsView *shortcuts_view;
-	const EShortcutItem *shortcut_item;
-
-	shortcuts_view = E_SHORTCUTS_VIEW (shortcut_bar);
-	shortcuts = shortcuts_view->priv->shortcuts;
-
-	if (event->button.button == 3) {
-		if (item_num < 0)
-			pop_up_right_click_menu_for_group (shortcuts_view, &event->button,
-							   group_num);
-		else
-			pop_up_right_click_menu_for_shortcut (shortcuts_view, &event->button,
-							      group_num, item_num);
-		return;
-	} else if (event->button.button != 1) {
-		return;
-	}
-
-	if (item_num < 0)
-		return;
-
-	shortcut_item = e_shortcuts_get_shortcut (shortcuts, group_num, item_num);
-	if (shortcut_item == NULL)
-		return;
-
-	g_signal_emit (shortcuts_view, signals[ACTIVATE_SHORTCUT], 0,
-		       shortcuts, shortcut_item->uri, FALSE);
-}
-
-static void
-get_shortcut_info (EShortcutsView *shortcuts_view,
-		   const char *item_uri,
-		   int *unread_count_return,
-		   const char **type_return,
-		   const char **custom_icon_name_return)
-{
-	EShortcutsViewPrivate *priv;
-	EStorageSet *storage_set;
-	EFolder *folder;
-	EShell *shell;
-	char *path;
-
-	priv = shortcuts_view->priv;
-
-	shell = e_shortcuts_get_shell (priv->shortcuts);
-
-	if (! e_shell_parse_uri (shell, item_uri, &path, NULL)) {
-		*unread_count_return = 0;
-		*type_return = NULL;
-		*custom_icon_name_return = NULL;
-		return;
-	}
-
-	storage_set = e_shell_get_storage_set (shell);
-
-	folder = e_storage_set_get_folder (storage_set, path);
-	if (folder != NULL) {
-		*unread_count_return     = e_folder_get_unread_count (folder);
-		*type_return             = e_folder_get_type_string (folder);
-		*custom_icon_name_return = e_folder_get_custom_icon_name (folder);
-	} else {
-		*unread_count_return     = 0;
-		*type_return             = NULL;
-		*custom_icon_name_return = NULL;
-	}
-
-	g_free (path);
-}
-
-static void
-impl_shortcut_dropped (EShortcutBar *shortcut_bar,
-		       int group_num,
-		       int position,
-		       const char *item_url,
-		       const char *item_name)
-{
-	EShortcutsView *shortcuts_view;
-	EShortcutsViewPrivate *priv;
-	int unread_count;
-	const char *type;
-	const char *custom_icon_name;
-	char *tmp;
-	char *tp;
-	char *name_without_unread;
-
-	shortcuts_view = E_SHORTCUTS_VIEW (shortcut_bar);
-	priv = shortcuts_view->priv;
-
-	get_shortcut_info (shortcuts_view, item_url, &unread_count, &type, &custom_icon_name);
-
-	/* Looks funny, but keeps it from adding the unread count
-           repeatedly when dragging folders around */
-	tmp = g_strdup_printf (" (%d)", unread_count);
-	if ((tp = strstr (item_name, tmp)) != NULL)
-		name_without_unread = g_strndup (item_name, strlen (item_name) - strlen (tp));
-	else
-		name_without_unread = g_strdup (item_name);
-
-	e_shortcuts_add_shortcut (priv->shortcuts,
-				  group_num, position,
-				  item_url,
-				  name_without_unread,
-				  unread_count,
-				  type,
-				  custom_icon_name);
-
-	g_free (tmp);
-	g_free (name_without_unread);
-}
-
-static void
-impl_shortcut_dragged (EShortcutBar *shortcut_bar,
-		       gint group_num,
-		       gint item_num)
-{
-	EShortcutsView *shortcuts_view;
-	EShortcutsViewPrivate *priv;
-
-	shortcuts_view = E_SHORTCUTS_VIEW (shortcut_bar);
-	priv = shortcuts_view->priv;
-
-	e_shortcuts_remove_shortcut (priv->shortcuts, group_num, item_num);
-}
-
-static gboolean
-impl_shortcut_drag_motion (EShortcutBar *shortcut_bar,
-			   GtkWidget *widget,
-			   GdkDragContext *context,
-			   guint time,
-			   gint group_num,
-			   gint item_num)
-{
-	EShortcutsView *view;
-	EShortcutsViewPrivate *priv;
-	const EShortcutItem *shortcut;
-
-	view = E_SHORTCUTS_VIEW (shortcut_bar);
-	priv = view->priv;
-
-	shortcut = e_shortcuts_get_shortcut (priv->shortcuts, group_num, item_num);
-	if (shortcut == NULL)
-		return FALSE;
-	if (strncmp (shortcut->uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) != 0)
-		return FALSE;
-
-	if (! e_folder_dnd_bridge_motion (widget, context, time,
-					  e_shell_get_storage_set (e_shortcuts_get_shell (priv->shortcuts)),
-					  shortcut->uri + E_SHELL_URI_PREFIX_LEN))
-		gdk_drag_status (context, 0, time);
-
-	return TRUE;
-}
-
-static gboolean
-impl_shortcut_drag_data_received (EShortcutBar *shortcut_bar,
-				  GtkWidget *widget,
-				  GdkDragContext *context,
-				  GtkSelectionData *selection_data,
-				  guint time,
-				  gint group_num,
-				  gint item_num)
-{
-	EShortcutsView *view;
-	EShortcutsViewPrivate *priv;
-	const EShortcutItem *shortcut;
-
-	view = E_SHORTCUTS_VIEW (shortcut_bar);
-	priv = view->priv;
-
-	shortcut = e_shortcuts_get_shortcut (priv->shortcuts, group_num, item_num);
-	if (shortcut == NULL)
-		return FALSE;
-	if (strncmp (shortcut->uri, E_SHELL_URI_PREFIX, E_SHELL_URI_PREFIX_LEN) != 0)
-		return FALSE;
-
-	e_folder_dnd_bridge_data_received (widget, context, selection_data, time,
-					   e_shell_get_storage_set (e_shortcuts_get_shell (priv->shortcuts)),
-					   shortcut->uri + E_SHELL_URI_PREFIX_LEN);
-	return TRUE;
-}
-
-
-static void
-class_init (EShortcutsViewClass *klass)
-{
-	GObjectClass *object_class;
-	EShortcutBarClass *shortcut_bar_class;
-
-	object_class = G_OBJECT_CLASS (klass);
-	object_class->dispose  = impl_dispose;
-	object_class->finalize = impl_finalize;
-
-	shortcut_bar_class = E_SHORTCUT_BAR_CLASS (klass);
-	shortcut_bar_class->item_selected               = item_selected;
-	shortcut_bar_class->shortcut_dropped            = impl_shortcut_dropped;
-	shortcut_bar_class->shortcut_dragged            = impl_shortcut_dragged;
-	shortcut_bar_class->shortcut_drag_motion        = impl_shortcut_drag_motion;
-	shortcut_bar_class->shortcut_drag_data_received = impl_shortcut_drag_data_received;
-
-	parent_class = g_type_class_ref(e_shortcut_bar_get_type ());
-
-	signals[ACTIVATE_SHORTCUT] =
-		g_signal_new ("activate_shortcut",
-			      G_OBJECT_CLASS_TYPE (object_class),
-			      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
-			      G_STRUCT_OFFSET (EShortcutsViewClass, activate_shortcut),
-			      NULL, NULL,
-			      e_shell_marshal_NONE__POINTER_STRING_BOOL,
-			      G_TYPE_NONE, 3,
-			      G_TYPE_POINTER,
-			      G_TYPE_STRING,
-			      G_TYPE_BOOLEAN);
-
-	signals[HIDE_REQUESTED] =
-		g_signal_new ("hide_requested",
-			      G_OBJECT_CLASS_TYPE (object_class),
-			      G_SIGNAL_RUN_LAST,
-			      G_STRUCT_OFFSET (EShortcutsViewClass,
-					       hide_requested),
-			      NULL, NULL,
-			      e_shell_marshal_NONE__NONE,
-			      G_TYPE_NONE, 0);
-}
-
-static void
-init (EShortcutsView *shortcuts_view)
-{
-	EShortcutsViewPrivate *priv;
-
-	priv = g_new (EShortcutsViewPrivate, 1);
-	priv->shortcuts = NULL;
-
-	shortcuts_view->priv = priv;
-}
-
-
-void
-e_shortcuts_view_construct (EShortcutsView *shortcuts_view,
-			    EShortcuts *shortcuts)
-{
-	EShortcutsViewPrivate *priv;
-	int i, num_groups;
-
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = shortcuts_view->priv;
-
-	priv->shortcuts = shortcuts;
-	g_object_ref (priv->shortcuts);
-
-	e_shortcut_bar_set_model (E_SHORTCUT_BAR (shortcuts_view),
-				  E_SHORTCUT_MODEL (e_shortcuts_view_model_new (shortcuts)));
-
-	g_signal_connect_object (shortcuts, "group_change_icon_size",
-				 G_CALLBACK (group_change_icon_size_callback), shortcuts_view, 0);
-
-	num_groups = e_shortcuts_get_num_groups (shortcuts);
-	for (i = 0; i < num_groups; i ++) {
-		if (e_shortcuts_get_group_uses_small_icons (shortcuts, i))
-			e_shortcut_bar_set_view_type (E_SHORTCUT_BAR (shortcuts_view), i, E_ICON_BAR_SMALL_ICONS);
-		else
-			e_shortcut_bar_set_view_type (E_SHORTCUT_BAR (shortcuts_view), i, E_ICON_BAR_LARGE_ICONS);
-	}
-}
-
-GtkWidget *
-e_shortcuts_view_new (EShortcuts *shortcuts)
-{
-	GtkWidget *new;
-
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	new = g_object_new (e_shortcuts_view_get_type (), NULL);
-	e_shortcuts_view_construct (E_SHORTCUTS_VIEW (new), shortcuts);
-
-	return new;
-}
-
-
-E_MAKE_TYPE (e_shortcuts_view, "EShortcutsView", EShortcutsView, class_init, init, PARENT_TYPE)
Index: shell/e-shortcuts-view.h
===================================================================
RCS file: shell/e-shortcuts-view.h
diff -N shell/e-shortcuts-view.h
--- shell/e-shortcuts-view.h	8 Jul 2002 20:45:48 -0000	1.9
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,74 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-shortcuts-view.h
- *
- * Copyright (C) 2000  Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Author: Ettore Perazzoli
- */
-
-#ifndef _E_SHORTCUTS_VIEW_H_
-#define _E_SHORTCUTS_VIEW_H_
-
-#include <gtk/gtkwidget.h>
-
-#include <gal/shortcut-bar/e-shortcut-bar.h>
-#include "e-shortcuts.h"
-
-#ifdef __cplusplus
-extern "C" {
-#pragma }
-#endif /* __cplusplus */
-
-#define E_TYPE_SHORTCUTS_VIEW			(e_shortcuts_view_get_type ())
-#define E_SHORTCUTS_VIEW(obj)			(GTK_CHECK_CAST ((obj), E_TYPE_SHORTCUTS_VIEW, EShortcutsView))
-#define E_SHORTCUTS_VIEW_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHORTCUTS_VIEW, EShortcutsViewClass))
-#define E_IS_SHORTCUTS_VIEW(obj)		(GTK_CHECK_TYPE ((obj), E_TYPE_SHORTCUTS_VIEW))
-#define E_IS_SHORTCUTS_VIEW_CLASS(klass)	(GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHORTCUTS_VIEW))
-
-
-typedef struct _EShortcutsView        EShortcutsView;
-typedef struct _EShortcutsViewPrivate EShortcutsViewPrivate;
-typedef struct _EShortcutsViewClass   EShortcutsViewClass;
-
-struct _EShortcutsView {
-	EShortcutBar parent;
-
-	EShortcutsViewPrivate *priv;
-};
-
-struct _EShortcutsViewClass {
-	EShortcutBarClass parent_class;
-
-	void (* activate_shortcut) (EShortcutsView *view,
-				    EShortcuts *shortcuts,
-				    const char *uri,
-				    gboolean in_new_window);
-
-	void (* hide_requested) (EShortcutsView *view);
-};
-
-
-GtkType    e_shortcuts_view_get_type   (void);
-void       e_shortcuts_view_construct  (EShortcutsView *shortcuts_view,
-					EShortcuts     *shortcuts);
-GtkWidget *e_shortcuts_view_new        (EShortcuts     *shortcuts);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _E_SHORTCUTS_VIEW_H_ */
Index: shell/e-shortcuts.c
===================================================================
RCS file: shell/e-shortcuts.c
diff -N shell/e-shortcuts.c
--- shell/e-shortcuts.c	12 Nov 2003 21:13:02 -0000	1.72
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,1289 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-shortcuts.c
- *
- * Copyright (C) 2000, 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Author: Ettore Perazzoli
- */
-
-/* The shortcut list goes like this:
-
-   <?xml version="1.0"?>
-   <shortcuts>
-           <group title="Evolution shortcuts">
-	           <item name="Inbox" type="mail">evolution:/local/Inbox</item>
-	           <item name="Trash" type="vtrash">evolution:/local/Trash</item>
-	           <item name="Spam" type="vspam">evolution:/local/Spam</item>
-	           <item name="Calendar" type="calendar">evolution:/local/Calendar</item>
-	   </group>
-
-	   <group title="Personal shortcuts">
-	           <item>evolution:/local/Personal</item>
-	   </group>
-   </shortcuts>
-
-   FIXME: Do we want to use a namespace for this?
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include "e-shortcuts.h"
-
-#include <string.h>
-
-#include <glib.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkobject.h>
-#include <gtk/gtksignal.h>
-#include <gtk/gtktypeutils.h>
-
-#include <libxml/parser.h>
-#include <libxml/xmlmemory.h>
-
-#include <libgnome/gnome-i18n.h>
-
-#include <gal/util/e-xml-utils.h>
-#include <gal/util/e-util.h>
-#include <gal/shortcut-bar/e-shortcut-bar.h>
-
-#include "e-shortcuts-view.h"
-
-#include "e-shell-constants.h"
-#include "e-shell-marshal.h"
-
-
-#define PARENT_TYPE GTK_TYPE_OBJECT
-static GtkObjectClass *parent_class = NULL;
-
-struct _ShortcutGroup {
-	/* Title of the group.  */
-	char *title;
-
-	/* A list of shortcuts.  */
-	GSList *shortcuts;
-
-	/* Whether to use small icons for this group.  */
-	unsigned int use_small_icons : 1;
-};
-typedef struct _ShortcutGroup ShortcutGroup;
-
-struct _EShortcutsPrivate {
-	/* Name of the file associated with these shortcuts.  Changes in the shortcuts
-           will update this file automatically.  */
-	char *file_name;
-
-	/* ID of the idle function that will be called to save the shortcuts when they are
-           changed.  */
-	int save_idle_id;
-
-	/* Whether these shortcuts need to be saved to disk.  */
-	gboolean dirty;
-
-	/* The shell that is associated with these shortcuts.  */
-	EShell *shell;
-
-	/* Total number of groups.  */
-	int num_groups;
-
-	/* A list of ShortcutGroups.  */
-	GSList *groups;
-
-	/* A list of ShortcutViews.  */
-	GSList *views;
-};
-
-enum {
-	NEW_GROUP,
-	REMOVE_GROUP,
-	RENAME_GROUP,
-	GROUP_CHANGE_ICON_SIZE,
-	NEW_SHORTCUT,
-	REMOVE_SHORTCUT,
-	UPDATE_SHORTCUT,
-	LAST_SIGNAL
-};
-
-static guint signals[LAST_SIGNAL] = { 0 };
-
-
-static void make_dirty (EShortcuts *shortcuts);
-
-
-static EShortcutItem *
-shortcut_item_new (const char *uri,
-		   const char *name,
-		   int unread_count,
-		   const char *type,
-		   const char *custom_icon_name)
-{
-	EShortcutItem *new;
-
-	new = g_new (EShortcutItem, 1);
-
-	if (name == NULL)
-		new->name = g_path_get_basename (uri);
-	else
-		new->name = g_strdup (name);
-
-	new->uri              = g_strdup (uri);
-	new->type             = g_strdup (type);
-	new->custom_icon_name = g_strdup (custom_icon_name);
-	new->unread_count     = unread_count;
-
-	return new;
-}
-
-static gboolean
-shortcut_item_update (EShortcutItem *shortcut_item,
-		      const char *uri,
-		      const char *name,
-		      int unread_count,
-		      const char *type,
-		      const char *custom_icon_name)
-{
-	char *base_name = g_path_get_basename (uri);
-	gboolean changed = FALSE;
-
-	if (name == NULL)
-		name = base_name;
-
-	if (shortcut_item->unread_count != unread_count) {
-		shortcut_item->unread_count = unread_count;
-		changed = TRUE;
-	}
-
-#define UPDATE_STRING(member)					\
-	if (shortcut_item->member == NULL || member == NULL ||	\
-	    strcmp (shortcut_item->member, member) != 0) {	\
-		g_free (shortcut_item->member);			\
-		shortcut_item->member  = g_strdup (member);	\
-		changed = TRUE;					\
-	}
-
-	UPDATE_STRING (uri);
-	UPDATE_STRING (name);
-	UPDATE_STRING (type);
-	UPDATE_STRING (custom_icon_name);
-
-#undef UPDATE_STRING
-
-	g_free (base_name);
-
-	return changed;
-}
-
-static void
-shortcut_item_free (EShortcutItem *shortcut_item)
-{
-	g_free (shortcut_item->uri);
-	g_free (shortcut_item->name);
-	g_free (shortcut_item->type);
-
-	g_free (shortcut_item);
-}
-
-static ShortcutGroup *
-shortcut_group_new (const char *title)
-{
-	ShortcutGroup *new;
-
-	new = g_new (ShortcutGroup, 1);
-	new->title           = g_strdup (title);
-	new->shortcuts       = NULL;
-	new->use_small_icons = FALSE;
-
-	return new;
-}
-
-static void
-shortcut_group_free (ShortcutGroup *group)
-{
-	GSList *p;
-
-	g_free (group->title);
-
-	for (p = group->shortcuts; p != NULL; p = p->next)
-		shortcut_item_free ((EShortcutItem *) p->data);
-	g_slist_free (group->shortcuts);
-
-	g_free (group);
-}
-
-
-/* Utility functions.  */
-
-static gboolean
-update_shortcut_and_emit_signal (EShortcuts *shortcuts,
-				 EShortcutItem *shortcut_item,
-				 int group_num,
-				 int num,
-				 const char *uri,
-				 const char *name,
-				 int unread_count,
-				 const char *type,
-				 const char *custom_icon_name)
-{
-	gboolean shortcut_changed;
-
-	shortcut_changed = shortcut_item_update (shortcut_item, uri, name, unread_count, type, custom_icon_name);
-	if (shortcut_changed) {
-		g_signal_emit (shortcuts, signals[UPDATE_SHORTCUT], 0, group_num, num);
-		return TRUE;
-	}
-
-	return FALSE;
-}
-
-static void
-unload_shortcuts (EShortcuts *shortcuts)
-{
-	EShortcutsPrivate *priv;
-	GSList *orig_groups;
-	GSList *p;
-
-	priv = shortcuts->priv;
-	orig_groups = priv->groups;
-
-	for (p = priv->groups; p != NULL; p = p->next) {
-		ShortcutGroup *group;
-
-		g_signal_emit (shortcuts, signals[REMOVE_GROUP], 0, 0);
-
-		group = (ShortcutGroup *) p->data;
-
-		shortcut_group_free (group);
-
-		priv->groups = priv->groups->next;
-	}
-
-	if (orig_groups != NULL)
-		g_slist_free (orig_groups);
-
-	priv->groups = NULL;
-}
-
-static gboolean
-load_shortcuts (EShortcuts *shortcuts,
-		const char *file_name)
-{
-	EShortcutsPrivate *priv;
-	xmlDoc *doc;
-	xmlNode *root;
-	xmlNode *p, *q;
-
-	/* FIXME: Update the views by emitting the appropriate signals.  */
-
-	priv = shortcuts->priv;
-
-	doc = xmlParseFile (file_name);
-	if (doc == NULL)
-		return FALSE;
-
-	root = xmlDocGetRootElement (doc);
-	if (root == NULL || strcmp (root->name, "shortcuts") != 0) {
-		xmlFreeDoc (doc);
-		return FALSE;
-	}
-
-	unload_shortcuts (shortcuts);
-
-	for (p = root->children; p != NULL; p = p->next) {
-		ShortcutGroup *shortcut_group;
-		xmlChar *shortcut_group_title;
-		xmlChar *icon_size;
-
-		if (strcmp ((char *) p->name, "group") != 0)
-			continue;
-
-		shortcut_group_title = xmlGetProp (p, "title");
-		if (shortcut_group_title == NULL)
-			continue;
-
-		shortcut_group = shortcut_group_new (shortcut_group_title);
-		xmlFree (shortcut_group_title);
-
-		icon_size = xmlGetProp (p, "icon_size");
-		if (icon_size != NULL && strcmp (icon_size, "small") == 0)
-			shortcut_group->use_small_icons = TRUE;
-		else
-			shortcut_group->use_small_icons = FALSE;
-		xmlFree (icon_size);
-
-		for (q = p->children; q != NULL; q = q->next) {
-			EShortcutItem *shortcut_item;
-			xmlChar *uri;
-			xmlChar *name;
-			xmlChar *type;
-			xmlChar *icon;
-			char *path;
-
-			if (strcmp ((char *) q->name, "item") != 0)
-				continue;
-
-			uri  = xmlNodeListGetString (doc, q->children, 1);
-			if (uri == NULL)
-				continue;
-
-			if (e_shell_parse_uri (priv->shell, uri, &path, NULL)) {
-				EFolder *folder;
-
-				folder = e_storage_set_get_folder (e_shell_get_storage_set (priv->shell), path);
-				if (folder != NULL) {
-					name = xmlMemStrdup (e_folder_get_name (folder));
-					type = xmlMemStrdup (e_folder_get_type_string (folder));
-
-					if (e_folder_get_custom_icon_name (folder) != NULL)
-						icon = xmlMemStrdup (e_folder_get_custom_icon_name (folder));
-					else
-						icon = NULL;
-				} else {
-					name = xmlGetProp (q, "name");
-					type = xmlGetProp (q, "type");
-					icon = xmlGetProp (q, "icon");
-				}
-
-				shortcut_item = shortcut_item_new (uri, name, 0, type, icon);
-				shortcut_group->shortcuts = g_slist_prepend (shortcut_group->shortcuts,
-									     shortcut_item);
-
-				if (name != NULL)
-					xmlFree (name);
-				if (type != NULL)
-					xmlFree (type);
-				if (icon != NULL)
-					xmlFree (icon);
-			}
-
-			g_free (path);
-			xmlFree (uri);
-		}
-
-		shortcut_group->shortcuts = g_slist_reverse (shortcut_group->shortcuts);
-
-		priv->groups = g_slist_prepend (priv->groups, shortcut_group);
-		priv->num_groups ++;
-	}
-
-	priv->groups = g_slist_reverse (priv->groups);
-
-	xmlFreeDoc (doc);
-
-	/* After loading, we always have to re-save ourselves as we have merged
-	   the information we have with the information we got from the
-	   StorageSet.  */
-	/* FIXME: Obviously, this sucks.  */
-	make_dirty (shortcuts);
-
-	return TRUE;
-}
-
-static gboolean
-save_shortcuts (EShortcuts *shortcuts,
-		const char *file_name)
-{
-	EShortcutsPrivate *priv;
-	xmlDoc *doc;
-	xmlNode *root;
-	GSList *p, *q;
-
-	priv = shortcuts->priv;
-
-	doc = xmlNewDoc ((xmlChar *) "1.0");
-	root = xmlNewDocNode (doc, NULL, (xmlChar *) "shortcuts", NULL);
-	xmlDocSetRootElement (doc, root);
-
-	for (p = priv->groups; p != NULL; p = p->next) {
-		ShortcutGroup *group;
-		xmlNode *group_node;
-
-		group = (ShortcutGroup *) p->data;
-		group_node = xmlNewChild (root, NULL, (xmlChar *) "group", NULL);
-
-		xmlSetProp (group_node, (xmlChar *) "title", group->title);
-
-		if (group->use_small_icons)
-			xmlSetProp (group_node, (xmlChar *) "icon_size", "small");
-		else
-			xmlSetProp (group_node, (xmlChar *) "icon_size", "large");
-
-		for (q = group->shortcuts; q != NULL; q = q->next) {
-			EShortcutItem *shortcut;
-			xmlNode *shortcut_node;
-
-			shortcut = (EShortcutItem *) q->data;
-			shortcut_node = xmlNewTextChild (group_node, NULL, (xmlChar *) "item",
-							 (xmlChar *) shortcut->uri);
-
-			if (shortcut->name != NULL)
-				xmlSetProp (shortcut_node, (xmlChar *) "name", shortcut->name);
-
-			if (shortcut->type != NULL)
-				xmlSetProp (shortcut_node, (xmlChar *) "type", shortcut->type);
-
-			if (shortcut->custom_icon_name != NULL)
-				xmlSetProp (shortcut_node, (xmlChar *) "icon", shortcut->custom_icon_name);
-		}
-	}
-
-	if (xmlSaveFile (file_name, doc) < 0) {
-		xmlFreeDoc (doc);
-		return FALSE;
-	}
-
-	xmlFreeDoc (doc);
-	return TRUE;
-}
-
-
-/* Idle function to update the file on disk.  */
-
-static int
-idle_cb (void *data)
-{
-	EShortcuts *shortcuts;
-	EShortcutsPrivate *priv;
-
-	shortcuts = E_SHORTCUTS (data);
-	priv = shortcuts->priv;
-
-	if (priv->dirty) {
-		if (! e_shortcuts_save (shortcuts, NULL))
-			g_warning ("Saving of shortcuts failed -- %s", priv->file_name);
-		else
-			priv->dirty = FALSE;
-	}
-
-	priv->save_idle_id = 0;
-
-	return FALSE;
-}
-
-static void
-schedule_idle (EShortcuts *shortcuts)
-{
-	EShortcutsPrivate *priv;
-
-	priv = shortcuts->priv;
-
-	if (priv->save_idle_id != 0)
-		return;
-
-	priv->save_idle_id = gtk_idle_add (idle_cb, shortcuts);
-}
-
-static void
-make_dirty (EShortcuts *shortcuts)
-{
-	EShortcutsPrivate *priv;
-
-	priv = shortcuts->priv;
-
-	priv->dirty = TRUE;
-	schedule_idle (shortcuts);
-}
-
-static void
-update_shortcuts_by_path (EShortcuts *shortcuts,
-			  const char *path)
-{
-	EShortcutsPrivate *priv;
-	EFolder *folder;
-	const GSList *p, *q;
-	char *evolution_uri;
-	int group_num, num;
-	gboolean changed = FALSE;
-
-	priv = shortcuts->priv;
-	folder = e_storage_set_get_folder (e_shell_get_storage_set (priv->shell), path);
-
-	evolution_uri = g_strconcat (E_SHELL_URI_PREFIX, path, NULL);
-
-	group_num = 0;
-	for (p = priv->groups; p != NULL; p = p->next, group_num++) {
-		ShortcutGroup *group;
-
-		group = (ShortcutGroup *) p->data;
-		num = 0;
-		for (q = group->shortcuts; q != NULL; q = q->next, num++) {
-			EShortcutItem *shortcut_item;
-			char *shortcut_path;
-
-			shortcut_item = (EShortcutItem *) q->data;
-
-			if (! e_shell_parse_uri (priv->shell, shortcut_item->uri, &shortcut_path, NULL)) {
-				/* Ignore bogus URIs.  */
-				continue;
-			}
-
-			if (strcmp (shortcut_path, path) == 0) {
-				changed = update_shortcut_and_emit_signal (shortcuts,
-									   shortcut_item,
-									   group_num,
-									   num,
-									   shortcut_item->uri,
-									   shortcut_item->name,
-									   e_folder_get_unread_count (folder),
-									   e_folder_get_type_string (folder),
-									   e_folder_get_custom_icon_name (folder));
-			}
-
-			g_free (shortcut_path);
-		}
-	}
-
-	g_free (evolution_uri);
-
-	if (changed)
-		make_dirty (shortcuts);
-}
-
-
-static EShortcutItem *
-get_item (EShortcuts *shortcuts,
-	  int group_num,
-	  int num)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *group;
-	GSList *group_element;
-	GSList *shortcut_element;
-
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	priv = shortcuts->priv;
-
-	group_element = g_slist_nth (priv->groups, group_num);
-	if (group_element == NULL)
-		return NULL;
-
-	group = (ShortcutGroup *) group_element->data;
-
-	shortcut_element = g_slist_nth (group->shortcuts, num);
-	if (shortcut_element == NULL)
-		return NULL;
-
-	return (EShortcutItem *) shortcut_element->data;
-}
-
-
-/* Signal handlers for the views.  */
-
-static void
-view_weak_notify (void *data,
-		  GObject *where_the_object_was)
-{
-	EShortcuts *shortcuts;
-	EShortcutsPrivate *priv;
-
-	shortcuts = E_SHORTCUTS (data);
-	priv = shortcuts->priv;
-
-	priv->views = g_slist_remove (priv->views, where_the_object_was);
-}
-
-
-/* Signal handlers for the EStorageSet.  */
-
-static void
-storage_set_new_folder_callback (EStorageSet *storage_set,
-				 const char *path,
-				 void *data)
-{
-	EShortcuts *shortcuts;
-
-	shortcuts = E_SHORTCUTS (data);
-
-	update_shortcuts_by_path (shortcuts, path);
-}
-
-static void
-storage_set_updated_folder_callback (EStorageSet *storage_set,
-				     const char *path,
-				     void *data)
-{
-	EShortcuts *shortcuts;
-
-	shortcuts = E_SHORTCUTS (data);
-
-	update_shortcuts_by_path (shortcuts, path);
-}
-
-
-/* GObject methods.  */
-
-static void
-impl_dispose (GObject *object)
-{
-	EShortcuts *shortcuts;
-	EShortcutsPrivate *priv;
-	GSList *p;
-
-	shortcuts = E_SHORTCUTS (object);
-	priv = shortcuts->priv;
-
-	unload_shortcuts (shortcuts);
-
-	if (priv->save_idle_id != 0) {
-		gtk_idle_remove (priv->save_idle_id);
-		priv->save_idle_id = 0;
-	}
-
-	if (priv->dirty) {
-		if (! e_shortcuts_save (shortcuts, NULL))
-			g_warning (_("Error saving shortcuts.")); /* FIXME */
-		priv->dirty = FALSE;
-	}
-
-	for (p = priv->views; p != NULL; p = p->next)
-		g_object_weak_unref (G_OBJECT (p->data), view_weak_notify, shortcuts);
-	g_slist_free (priv->views);
-	priv->views = NULL;
-
-	(* G_OBJECT_CLASS (parent_class)->dispose) (object);
-}
-
-static void
-impl_finalize (GObject *object)
-{
-	EShortcuts *shortcuts;
-	EShortcutsPrivate *priv;
-
-	shortcuts = E_SHORTCUTS (object);
-	priv = shortcuts->priv;
-
-	g_free (priv->file_name);
-	g_free (priv);
-
-	(* G_OBJECT_CLASS (parent_class)->finalize) (object);
-}
-
-
-static void
-class_init (EShortcutsClass *klass)
-{
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (klass);
-	object_class->dispose  = impl_dispose;
-	object_class->finalize = impl_finalize;
-
-	parent_class = g_type_class_ref(gtk_object_get_type ());
-
-	signals[NEW_GROUP]
-		= g_signal_new ("new_group",
-				G_OBJECT_CLASS_TYPE (object_class),
-				G_SIGNAL_RUN_FIRST,
-				G_STRUCT_OFFSET (EShortcutsClass, new_group),
-				NULL, NULL,
-				e_shell_marshal_NONE__INT,
-				G_TYPE_NONE, 1,
-				G_TYPE_INT);
-
-	signals[REMOVE_GROUP]
-		= g_signal_new ("remove_group",
-				G_OBJECT_CLASS_TYPE (object_class),
-				G_SIGNAL_RUN_FIRST,
-				G_STRUCT_OFFSET (EShortcutsClass, remove_group),
-				NULL, NULL,
-				e_shell_marshal_NONE__INT,
-				G_TYPE_NONE, 1,
-				G_TYPE_INT);
-
-	signals[RENAME_GROUP]
-		= g_signal_new ("rename_group",
-				G_OBJECT_CLASS_TYPE (object_class),
-				G_SIGNAL_RUN_FIRST,
-				G_STRUCT_OFFSET (EShortcutsClass, rename_group),
-				NULL, NULL,
-				e_shell_marshal_NONE__INT_STRING,
-				G_TYPE_NONE, 2,
-				G_TYPE_INT,
-				G_TYPE_STRING);
-
-	signals[GROUP_CHANGE_ICON_SIZE]
-		= g_signal_new ("group_change_icon_size",
-				G_OBJECT_CLASS_TYPE (object_class),
-				G_SIGNAL_RUN_FIRST,
-				G_STRUCT_OFFSET (EShortcutsClass, group_change_icon_size),
-				NULL, NULL,
-				e_shell_marshal_NONE__INT_INT,
-				G_TYPE_NONE, 2,
-				G_TYPE_INT,
-				G_TYPE_INT);
-
-	signals[NEW_SHORTCUT]
-		= g_signal_new ("new_shortcut",
-				G_OBJECT_CLASS_TYPE (object_class),
-				G_SIGNAL_RUN_FIRST,
-				G_STRUCT_OFFSET (EShortcutsClass, new_shortcut),
-				NULL, NULL,
-				e_shell_marshal_NONE__INT_INT,
-				G_TYPE_NONE, 2,
-				G_TYPE_INT,
-				G_TYPE_INT);
-
-	signals[REMOVE_SHORTCUT]
-		= g_signal_new ("remove_shortcut",
-				G_OBJECT_CLASS_TYPE (object_class),
-				G_SIGNAL_RUN_FIRST,
-				G_STRUCT_OFFSET (EShortcutsClass, remove_shortcut),
-				NULL, NULL,
-				e_shell_marshal_NONE__INT_INT,
-				G_TYPE_NONE, 2,
-				G_TYPE_INT,
-				G_TYPE_INT);
-
-	signals[UPDATE_SHORTCUT]
-		= g_signal_new ("update_shortcut",
-				G_OBJECT_CLASS_TYPE (object_class),
-				G_SIGNAL_RUN_FIRST,
-				G_STRUCT_OFFSET (EShortcutsClass, update_shortcut),
-				NULL, NULL,
-				e_shell_marshal_NONE__INT_INT,
-				G_TYPE_NONE, 2,
-				G_TYPE_INT,
-				G_TYPE_INT);
-}
-
-
-static void
-init (EShortcuts *shortcuts)
-{
-	EShortcutsPrivate *priv;
-
-	priv = g_new (EShortcutsPrivate, 1);
-
-	priv->file_name      = NULL;
-	priv->num_groups     = 0;
-	priv->groups         = NULL;
-	priv->views          = NULL;
-	priv->dirty          = 0;
-	priv->save_idle_id   = 0;
-	priv->shell          = NULL;
-
-	shortcuts->priv = priv;
-}
-
-
-void
-e_shortcuts_construct (EShortcuts *shortcuts,
-		       EShell *shell)
-{
-	EShortcutsPrivate *priv;
-	EStorageSet *storage_set;
-
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-	g_return_if_fail (E_IS_SHELL (shell));
-
-	GTK_OBJECT_UNSET_FLAGS (GTK_OBJECT (shortcuts), GTK_FLOATING);
-
-	priv = shortcuts->priv;
-
-	/* Don't ref it so we don't create a circular dependency.  */
-	priv->shell = shell;
-
-	storage_set = e_shell_get_storage_set (shell);
-
-	g_signal_connect_object (storage_set, "new_folder",
-				 G_CALLBACK (storage_set_new_folder_callback), shortcuts, 0);
-	g_signal_connect_object (storage_set, "updated_folder",
-				 G_CALLBACK (storage_set_updated_folder_callback), shortcuts, 0);
-}
-
-EShortcuts *
-e_shortcuts_new_from_file (EShell *shell,
-			   const char *file_name)
-{
-	EShortcuts *new;
-
-	g_return_val_if_fail (E_IS_SHELL (shell), NULL);
-	g_return_val_if_fail (file_name != NULL, NULL);
-
-	new = g_object_new (e_shortcuts_get_type (), NULL);
-	e_shortcuts_construct (new, shell);
-
-	if (! e_shortcuts_load (new, file_name))
-		new->priv->file_name = g_strdup (file_name);
-
-	return new;
-}
-
-
-int
-e_shortcuts_get_num_groups (EShortcuts *shortcuts)
-{
-	g_return_val_if_fail (shortcuts != NULL, 0);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), 0);
-
-	return shortcuts->priv->num_groups;
-}
-
-GSList *
-e_shortcuts_get_group_titles (EShortcuts *shortcuts)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *group;
-	GSList *list;
-	GSList *p;
-
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	priv = shortcuts->priv;
-
-	list = NULL;
-
-	for (p = priv->groups; p != NULL; p = p->next) {
-		group = (ShortcutGroup *) p->data;
-		list = g_slist_prepend (list, g_strdup (group->title));
-	}
-
-	return g_slist_reverse (list);
-}
-
-const GSList *
-e_shortcuts_get_shortcuts_in_group (EShortcuts *shortcuts,
-				    int group_num)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *shortcut_group;
-	GSList *shortcut_group_list_item;
-
-	priv = shortcuts->priv;
-
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	shortcut_group_list_item = g_slist_nth (priv->groups, group_num);
-	if (shortcut_group_list_item == NULL)
-		return NULL;
-
-	shortcut_group = (ShortcutGroup *) shortcut_group_list_item->data;
-
-	return shortcut_group->shortcuts;
-}
-
-
-EShell *
-e_shortcuts_get_shell (EShortcuts *shortcuts)
-{
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	return shortcuts->priv->shell;
-}
-
-
-GtkWidget *
-e_shortcuts_new_view (EShortcuts *shortcuts)
-{
-	EShortcutsPrivate *priv;
-	GtkWidget *new;
-
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	priv = shortcuts->priv;
-
-	new = e_shortcuts_view_new (shortcuts);
-	priv->views = g_slist_prepend (priv->views, new);
-
-	g_object_weak_ref (G_OBJECT (new), view_weak_notify, shortcuts);
-
-	return new;
-}
-
-
-gboolean
-e_shortcuts_load (EShortcuts *shortcuts,
-		  const char *file_name)
-{
-	EShortcutsPrivate *priv;
-	char *tmp;
-
-	g_return_val_if_fail (shortcuts != NULL, FALSE);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), FALSE);
-	g_return_val_if_fail (file_name == NULL || g_path_is_absolute (file_name), FALSE);
-
-	priv = shortcuts->priv;
-
-	if (file_name == NULL) {
-		if (priv->file_name == NULL)
-			return FALSE;
-		file_name = priv->file_name;
-	}
-
-	if (! load_shortcuts (shortcuts, file_name))
-		return FALSE;
-
-	tmp = g_strdup (file_name);
-	g_free (priv->file_name);
-	priv->file_name = tmp;
-
-	return TRUE;
-}
-
-gboolean
-e_shortcuts_save (EShortcuts *shortcuts,
-		  const char *file_name)
-{
-	EShortcutsPrivate *priv;
-	char *tmp;
-
-	g_return_val_if_fail (shortcuts != NULL, FALSE);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), FALSE);
-	g_return_val_if_fail (file_name == NULL || g_path_is_absolute (file_name), FALSE);
-
-	priv = shortcuts->priv;
-
-	if (file_name == NULL) {
-		if (priv->file_name == NULL)
-			return FALSE;
-		file_name = priv->file_name;
-	}
-
-	if (! save_shortcuts (shortcuts, file_name))
-		return FALSE;
-
-	tmp = g_strdup (file_name);
-	g_free (priv->file_name);
-	priv->file_name = tmp;
-
-	return TRUE;
-}
-
-
-const EShortcutItem *
-e_shortcuts_get_shortcut (EShortcuts *shortcuts,
-			  int group_num,
-			  int num)
-{
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	return (const EShortcutItem *) get_item (shortcuts, group_num, num);
-}
-
-
-void
-e_shortcuts_remove_shortcut (EShortcuts *shortcuts,
-			     int group_num,
-			     int num)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *group;
-	GSList *p;
-	EShortcutItem *item;
-
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = shortcuts->priv;
-
-	p = g_slist_nth (priv->groups, group_num);
-	g_return_if_fail (p != NULL);
-
-	group = (ShortcutGroup *) p->data;
-
-	p = g_slist_nth (group->shortcuts, num);
-	g_return_if_fail (p != NULL);
-
-	g_signal_emit (shortcuts, signals[REMOVE_SHORTCUT], 0, group_num, num);
-
-	item = (EShortcutItem *) p->data;
-	shortcut_item_free (item);
-
-	group->shortcuts = g_slist_remove_link (group->shortcuts, p);
-
-	make_dirty (shortcuts);
-}
-
-void
-e_shortcuts_add_shortcut (EShortcuts *shortcuts,
-			  int group_num,
-			  int num,
-			  const char *uri,
-			  const char *name,
-			  int unread_count,
-			  const char *type,
-			  const char *custom_icon_name)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *group;
-	EShortcutItem *item;
-	GSList *p;
-
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = shortcuts->priv;
-
-	p = g_slist_nth (priv->groups, group_num);
-	g_return_if_fail (p != NULL);
-
-	group = (ShortcutGroup *) p->data;
-
-	if (num == -1)
-		num = g_slist_length (group->shortcuts);
-
-	item = shortcut_item_new (uri, name, unread_count, type, custom_icon_name);
-
-	group->shortcuts = g_slist_insert (group->shortcuts, item, num);
-
-	g_signal_emit (shortcuts, signals[NEW_SHORTCUT], 0, group_num, num);
-
-	make_dirty (shortcuts);
-}
-
-void
-e_shortcuts_update_shortcut (EShortcuts *shortcuts,
-			     int         group_num,
-			     int         num,
-			     const char *uri,
-			     const char *name,
-			     int unread_count,
-			     const char *type,
-			     const char *custom_icon_name)
-{
-	EShortcutItem *shortcut_item;
-
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	shortcut_item = get_item (shortcuts, group_num, num);
-
-	update_shortcut_and_emit_signal (shortcuts, shortcut_item, group_num, num,
-					 uri, name, unread_count, type, custom_icon_name);
-
-	make_dirty (shortcuts);
-}
-
-
-void
-e_shortcuts_add_default_shortcuts (EShortcuts *shortcuts,
-				   int group_num)
-{
-	e_shortcuts_add_shortcut (shortcuts, group_num, -1, E_SUMMARY_URI, _("Summary"), 0, "summary", NULL);
-
-	e_shortcuts_add_shortcut (shortcuts, group_num, -1, "default:mail", _("Inbox"), 0, "mail", "inbox");
-	e_shortcuts_add_shortcut (shortcuts, group_num, -1, "default:calendar", _("Calendar"), 0, "calendar", NULL);
-	e_shortcuts_add_shortcut (shortcuts, group_num, -1, "default:tasks", _("Tasks"), 0, "tasks", NULL);
-	e_shortcuts_add_shortcut (shortcuts, group_num, -1, "default:contacts", _("Contacts"), 0, "contacts", NULL);
-}
-
-void
-e_shortcuts_add_default_group (EShortcuts *shortcuts)
-{
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	e_shortcuts_add_group (shortcuts, -1, _("Shortcuts"));
-
-	e_shortcuts_add_default_shortcuts (shortcuts, e_shortcuts_get_num_groups (shortcuts) - 1);
-}
-
-void
-e_shortcuts_remove_group (EShortcuts *shortcuts,
-			  int group_num)
-{
-	EShortcutsPrivate *priv;
-	GSList *p;
-
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = shortcuts->priv;
-
-	p = g_slist_nth (priv->groups, group_num);
-	g_return_if_fail (p != NULL);
-
-	g_signal_emit (shortcuts, signals[REMOVE_GROUP], 0, group_num);
-
-	shortcut_group_free ((ShortcutGroup *) p->data);
-
-	priv->groups = g_slist_remove_link (priv->groups, p);
-	priv->num_groups --;
-
-	make_dirty (shortcuts);
-}
-
-void
-e_shortcuts_rename_group (EShortcuts *shortcuts,
-			  int group_num,
-			  const char *new_title)
-{
-	EShortcutsPrivate *priv;
-	GSList *p;
-	ShortcutGroup *group;
-
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = shortcuts->priv;
-
-	p = g_slist_nth (priv->groups, group_num);
-	g_return_if_fail (p != NULL);
-
-	group = (ShortcutGroup *) p->data;
-	if (strcmp (group->title, new_title)) {
-		g_free (group->title);
-		group->title = g_strdup (new_title);
-	} else
-		return;
-
-	g_signal_emit (shortcuts, signals[RENAME_GROUP], 0, group_num, new_title);
-
-	make_dirty (shortcuts);
-}
-
-void
-e_shortcuts_add_group (EShortcuts *shortcuts,
-		       int group_num,
-		       const char *group_name)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *group;
-
-	g_return_if_fail (shortcuts != NULL);
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = shortcuts->priv;
-
-	group = shortcut_group_new (group_name);
-
-	if (group_num == -1)
-		group_num = g_slist_length (priv->groups);
-
-	priv->groups = g_slist_insert (priv->groups, group, group_num);
-	priv->num_groups ++;
-
-	g_signal_emit (shortcuts, signals[NEW_GROUP], 0, group_num);
-
-	make_dirty (shortcuts);
-}
-
-
-const char *
-e_shortcuts_get_group_title (EShortcuts *shortcuts,
-			     int group_num)
-{
-	EShortcutsPrivate *priv;
-	GSList *group_element;
-	const ShortcutGroup *group;
-
-	g_return_val_if_fail (shortcuts != NULL, NULL);
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), NULL);
-
-	priv = shortcuts->priv;
-
-	group_element = g_slist_nth (priv->groups, group_num);
-	if (group_element == NULL)
-		return NULL;
-
-	group = (ShortcutGroup *) group_element->data;
-
-	return group->title;
-}
-
-void
-e_shortcuts_set_group_uses_small_icons  (EShortcuts *shortcuts,
-					 int group_num,
-					 gboolean use_small_icons)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *group;
-	GSList *group_element;
-
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-
-	priv = shortcuts->priv;
-
-	group_element = g_slist_nth (priv->groups, group_num);
-	if (group_element == NULL)
-		return;
-
-	group = (ShortcutGroup *) group_element->data;
-
-	use_small_icons = !! use_small_icons;
-	if (group->use_small_icons != use_small_icons) {
-		group->use_small_icons = use_small_icons;
-		g_signal_emit (shortcuts, signals[GROUP_CHANGE_ICON_SIZE], 0, group_num, use_small_icons);
-
-		make_dirty (shortcuts);
-	}
-}
-
-gboolean
-e_shortcuts_get_group_uses_small_icons  (EShortcuts *shortcuts,
-					 int group_num)
-{
-	EShortcutsPrivate *priv;
-	ShortcutGroup *group;
-	GSList *group_element;
-
-	g_return_val_if_fail (E_IS_SHORTCUTS (shortcuts), FALSE);
-
-	priv = shortcuts->priv;
-
-	group_element = g_slist_nth (priv->groups, group_num);
-	if (group_element == NULL)
-		return FALSE;
-
-	group = (ShortcutGroup *) group_element->data;
-	return group->use_small_icons;
-}
-
-
-void
-e_shortcuts_update_shortcuts_for_changed_uri (EShortcuts *shortcuts,
-					      const char *old_uri,
-					      const char *new_uri)
-{
-	EShortcutsPrivate *priv;
-	GSList *p;
-
-	g_return_if_fail (E_IS_SHORTCUTS (shortcuts));
-	g_return_if_fail (old_uri != NULL);
-	g_return_if_fail (new_uri != NULL);
-
-	priv = shortcuts->priv;
-
-	for (p = priv->groups; p != NULL; p = p->next) {
-		ShortcutGroup *group;
-		GSList *q;
-
-		group = (ShortcutGroup *) p->data;
-		for (q = group->shortcuts; q != NULL; q = q->next) {
-			EShortcutItem *item;
-
-			item = (EShortcutItem *) q->data;
-
-			if (strcmp (item->uri, old_uri) == 0) {
-				g_free (item->uri);
-				item->uri = g_strdup (new_uri);
-
-				make_dirty (shortcuts);
-			}
-		}
-	}
-}
-
-
-E_MAKE_TYPE (e_shortcuts, "EShortcuts", EShortcuts, class_init, init, PARENT_TYPE)
Index: shell/e-shortcuts.h
===================================================================
RCS file: shell/e-shortcuts.h
diff -N shell/e-shortcuts.h
--- shell/e-shortcuts.h	24 Sep 2002 21:01:04 -0000	1.24
+++ /dev/null	1 Jan 1970 00:00:00 -0000
@@ -1,167 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* e-shortcuts.h
- *
- * Copyright (C) 2000, 2001 Ximian, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU General Public
- * License as published by the Free Software Foundation.
- *
- * 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.
- *
- * Author: Ettore Perazzoli
- */
-
-#ifndef _E_SHORTCUTS_H_
-#define _E_SHORTCUTS_H_
-
-#include <gtk/gtkwidget.h>
-
-#include "e-folder-type-registry.h"
-#include "e-storage-set.h"
-
-#ifdef __cplusplus
-extern "C" {
-#pragma }
-#endif /* __cplusplus */
-
-#define E_TYPE_SHORTCUTS			(e_shortcuts_get_type ())
-#define E_SHORTCUTS(obj)			(GTK_CHECK_CAST ((obj), E_TYPE_SHORTCUTS, EShortcuts))
-#define E_SHORTCUTS_CLASS(klass)		(GTK_CHECK_CLASS_CAST ((klass), E_TYPE_SHORTCUTS, EShortcutsClass))
-#define E_IS_SHORTCUTS(obj)			(GTK_CHECK_TYPE ((obj), E_TYPE_SHORTCUTS))
-#define E_IS_SHORTCUTS_CLASS(klass)		(GTK_CHECK_CLASS_TYPE ((obj), E_TYPE_SHORTCUTS))
-
-
-typedef struct _EShortcuts        EShortcuts;
-typedef struct _EShortcutsPrivate EShortcutsPrivate;
-typedef struct _EShortcutsClass   EShortcutsClass;
-
-struct _EShortcutItem {
-	/* URI of the shortcut.  */
-	char *uri;
-
-	/* Name of the shortcut.  */
-	char *name;
-
-	/* Folder type for the shortcut.  If the shortcut doesn't point to a
-	   folder, this is NULL.  */
-	char *type;
-
-	/* Custom icon for the shortcut.  If this is NULL, then the shortcut
-	   should just use the icon for the type.  */
-	char *custom_icon_name;
-
-	/* Number of unread items in the folder.  Zero if not a folder.  */
-	int unread_count;
-};
-typedef struct _EShortcutItem EShortcutItem;
-
-struct _EShortcuts {
-	GtkObject parent;
-
-	EShortcutsPrivate *priv;
-};
-
-struct _EShortcutsClass {
-	GtkObjectClass parent_class;
-
-	/* Signals.  */
-
-	void  (* new_group)               (EShortcuts *shortcuts, int group_num);
-	void  (* remove_group)     	  (EShortcuts *shortcuts, int group_num);
-	void  (* rename_group)     	  (EShortcuts *shortcuts, int group_num, const char *new_title);
-
-	void  (* group_change_icon_size)  (EShortcuts *shortcuts, int group_num, gboolean use_small_icons);
-
-	void  (* new_shortcut)     	  (EShortcuts *shortcuts, int group_num, int item_num);
-	void  (* remove_shortcut)  	  (EShortcuts *shortcuts, int group_num, int item_num);
-	void  (* update_shortcut)  	  (EShortcuts *shortcuts, int group_num, int item_num);
-};
-
-
-#include "e-shell.h"
-
-
-GtkType     e_shortcuts_get_type       (void);
-void        e_shortcuts_construct      (EShortcuts *shortcuts,
-					EShell     *shell);
-EShortcuts *e_shortcuts_new_from_file  (EShell     *shell,
-					const char *file_name);
-
-int           e_shortcuts_get_num_groups          (EShortcuts *shortcuts);
-
-GSList       *e_shortcuts_get_group_titles        (EShortcuts *shortcuts);
-const char   *e_shortcuts_get_group_title         (EShortcuts *shortcuts,
-						   int         group_num);
-const GSList *e_shortcuts_get_shortcuts_in_group  (EShortcuts *shortcuts,
-						   int         group_num);
-
-const EShortcutItem *e_shortcuts_get_shortcut  (EShortcuts *shortcuts,
-						int         group_num,
-						int         num);
-
-EShell *e_shortcuts_get_shell  (EShortcuts *shortcuts);
-
-GtkWidget *e_shortcuts_new_view  (EShortcuts *shortcuts);
-
-gboolean     e_shortcuts_load                    (EShortcuts          *shortcuts,
-						  const char          *path);
-gboolean     e_shortcuts_save                    (EShortcuts          *shortcuts,
-						  const char          *path);
-
-void  e_shortcuts_add_default_shortcuts  (EShortcuts *shortcuts,
-					  int         group_num);
-void  e_shortcuts_add_default_group      (EShortcuts *shortcuts);
-
-void  e_shortcuts_remove_shortcut    (EShortcuts *shortcuts,
-				      int         group_num,
-				      int         num);
-void  e_shortcuts_add_shortcut       (EShortcuts *shortcuts,
-				      int         group_num,
-				      int         num,
-				      const char *uri,
-				      const char *name,
-				      int unread_count,
-				      const char *type,
-				      const char *custom_icon_name);
-void  e_shortcuts_update_shortcut    (EShortcuts *shortcuts,
-				      int         group_num,
-				      int         num,
-				      const char *uri,
-				      const char *name,
-				      int unread_count,
-				      const char *type,
-				      const char *custom_icon_name);
-
-void  e_shortcuts_remove_group  (EShortcuts *shortcuts,
-				 int         group_num);
-void  e_shortcuts_add_group     (EShortcuts *shortcuts,
-				 int         group_num,
-				 const char *group_title);
-void  e_shortcuts_rename_group  (EShortcuts *shortcuts,
-				 int         group_num,
-				 const char *new_title);
-
-void      e_shortcuts_set_group_uses_small_icons  (EShortcuts *shortcuts,
-						   int         group_num,
-						   gboolean    use_small_icons);
-gboolean  e_shortcuts_get_group_uses_small_icons  (EShortcuts *shortcuts,
-						   int         group_num);
-
-void  e_shortcuts_update_shortcuts_for_changed_uri  (EShortcuts *shortcuts,
-						     const char *old_uri_,
-						     const char *new_uri);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
-#endif /* _E_SHORTCUTS_H_ */
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]