aboutsummaryrefslogtreecommitdiffstats
path: root/mail/folder-browser-factory.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/folder-browser-factory.c')
-rw-r--r--mail/folder-browser-factory.c253
1 files changed, 0 insertions, 253 deletions
diff --git a/mail/folder-browser-factory.c b/mail/folder-browser-factory.c
deleted file mode 100644
index 21f398b6ec..0000000000
--- a/mail/folder-browser-factory.c
+++ /dev/null
@@ -1,253 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/*
- * Authors: Miguel de Icaza <miguel@ximian.com>
- *
- * Copyright 2002 Ximian, Inc. (www.ximian.com)
- *
- * 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 Street #330, Boston, MA 02111-1307, USA.
- *
- */
-
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <bonobo/bonobo-main.h>
-#include <bonobo/bonobo-object.h>
-#include <bonobo/bonobo-generic-factory.h>
-#include <bonobo/bonobo-control.h>
-#include <bonobo/bonobo-ui-component.h>
-#include <bonobo/bonobo-ui-util.h>
-
-#include <gal/util/e-util.h>
-#include <gal/widgets/e-gui-utils.h>
-
-#include "widgets/menus/gal-view-menus.h"
-
-#include <gal/menus/gal-view-factory-etable.h>
-#include <gal/menus/gal-view-etable.h>
-
-#include "folder-browser-factory.h"
-
-#include "folder-browser.h"
-#include "folder-browser-ui.h"
-#include "mail.h"
-#include "mail-callbacks.h"
-#include "shell/Evolution.h"
-#include "mail-config.h"
-#include "mail-ops.h"
-#include "mail-session.h"
-#include "mail-folder-cache.h"
-
-#include "evolution-shell-component-utils.h"
-
-/* The FolderBrowser BonoboControls we have. */
-static EList *control_list = NULL;
-
-/* copied from mail-display.c for now.... */
-static GNOME_Evolution_ShellView
-fb_get_svi (BonoboControl *control)
-{
- Bonobo_ControlFrame control_frame;
- GNOME_Evolution_ShellView shell_view_interface;
- CORBA_Environment ev;
-
- control_frame = bonobo_control_get_control_frame (control, NULL);
-
- if (control_frame == NULL)
- return CORBA_OBJECT_NIL;
-
- CORBA_exception_init (&ev);
- shell_view_interface = Bonobo_Unknown_queryInterface (control_frame,
- "IDL:GNOME/Evolution/ShellView:1.0",
- &ev);
- CORBA_exception_free (&ev);
-
- if (shell_view_interface == CORBA_OBJECT_NIL)
- g_warning ("Control frame doesn't have Evolution/ShellView.");
-
- return shell_view_interface;
-}
-
-static void
-control_activate (BonoboControl *control,
- BonoboUIComponent *uic,
- FolderBrowser *fb)
-{
- GtkWidget *folder_browser;
- Bonobo_UIContainer container;
-
- container = bonobo_control_get_remote_ui_container (control, NULL);
- bonobo_ui_component_set_container (uic, container, NULL);
- bonobo_object_release_unref (container, NULL);
-
- g_assert (container == bonobo_ui_component_get_container (uic));
- g_return_if_fail (container != CORBA_OBJECT_NIL);
-
- folder_browser = bonobo_control_get_widget (control);
- folder_browser_set_ui_component (FOLDER_BROWSER (folder_browser), uic);
-
- /*bonobo_ui_component_freeze (uic, NULL);*/
-
- folder_browser_ui_add_global (fb);
- folder_browser_ui_add_list (fb);
- folder_browser_ui_add_message (fb);
-
- /*bonobo_ui_component_thaw (uic, NULL);*/
-
- folder_browser_set_shell_view (fb, fb_get_svi (control));
-
- folder_browser_reload (fb);
-
- e_search_bar_set_ui_component (E_SEARCH_BAR (fb->search), uic);
-}
-
-static void
-control_deactivate (BonoboControl *control,
- BonoboUIComponent *uic,
- FolderBrowser *fb)
-{
- /*bonobo_ui_component_freeze (uic, NULL);*/
-
- folder_browser_ui_rm_list (fb);
- folder_browser_ui_rm_all (fb);
-
- /*bonobo_ui_component_thaw (uic, NULL);*/
-
- if (fb->folder)
- mail_sync_folder (fb->folder, NULL, NULL);
-
- folder_browser_set_ui_component (fb, NULL);
- folder_browser_set_shell_view (fb, CORBA_OBJECT_NIL);
-
- e_search_bar_set_ui_component (E_SEARCH_BAR (fb->search), NULL);
-}
-
-static void
-control_activate_cb (BonoboControl *control,
- gboolean activate,
- gpointer user_data)
-{
- BonoboUIComponent *uic;
-
- uic = bonobo_control_get_ui_component (control);
- g_assert (uic != NULL);
-
- if (activate)
- control_activate (control, uic, user_data);
- else
- control_deactivate (control, uic, user_data);
-}
-
-static void
-control_destroy_cb (GtkObject *fb, GObject *deadbeef)
-{
- gtk_object_destroy (fb);
-}
-
-static void
-browser_destroy_cb (BonoboControl *control, GObject *deadbeef)
-{
- EIterator *it;
-
- /* We do this from browser_destroy_cb rather than
- * control_destroy_cb because currently, the controls
- * don't seem to all get destroyed properly at quit
- * time (but the widgets get destroyed by X). FIXME.
- */
-
- it = e_list_get_iterator (control_list);
- while (e_iterator_is_valid (it)) {
- if (e_iterator_get (it) == control) {
- e_iterator_delete (it);
- break;
- }
- e_iterator_next (it);
- }
-
- g_object_unref (it);
-}
-
-BonoboControl *
-folder_browser_factory_new_control (const char *uri,
- const GNOME_Evolution_Shell shell)
-{
- BonoboControl *control;
- GtkWidget *fb;
-
- if (!(fb = folder_browser_new (shell, uri)))
- return NULL;
-
- FOLDER_BROWSER (fb)->pref_master = TRUE; /* save UI settings changed in this FB */
-
- gtk_widget_show (fb);
-
- control = bonobo_control_new (fb);
-
- if (control == NULL) {
- g_object_unref (fb);
- return NULL;
- }
-
- g_signal_connect (control, "activate", G_CALLBACK (control_activate_cb), fb);
-
- g_object_weak_ref (G_OBJECT(control), (GWeakNotify) control_destroy_cb, fb);
- g_object_weak_ref (G_OBJECT(fb), (GWeakNotify) browser_destroy_cb, control);
-
- if (!control_list)
- control_list = e_list_new (NULL, NULL, NULL);
-
- e_list_append (control_list, control);
-
- return control;
-}
-
-EList *
-folder_browser_factory_get_control_list (void)
-{
- if (!control_list)
- control_list = e_list_new (NULL, NULL, NULL);
- return control_list;
-}
-
-FolderBrowser *
-folder_browser_factory_get_browser(const char *uri)
-{
- EList *controls;
- EIterator *it;
- BonoboControl *control;
- FolderBrowser *fb = NULL;
-
- if (control_list == NULL)
- return NULL;
-
- controls = folder_browser_factory_get_control_list ();
-
- it = e_list_get_iterator (controls);
- while (e_iterator_is_valid (it)) {
- control = BONOBO_CONTROL (e_iterator_get (it));
- fb = FOLDER_BROWSER (bonobo_control_get_widget (control));
- if (fb->uri && strcmp (fb->uri, uri) == 0)
- break;
- fb = NULL;
-
- e_iterator_next (it);
- }
-
- g_object_unref (it);
-
- return fb;
-}