diff options
Diffstat (limited to 'mail/folder-browser-factory.c')
-rw-r--r-- | mail/folder-browser-factory.c | 109 |
1 files changed, 33 insertions, 76 deletions
diff --git a/mail/folder-browser-factory.c b/mail/folder-browser-factory.c index 35e1aeb2ab..f0157bac9a 100644 --- a/mail/folder-browser-factory.c +++ b/mail/folder-browser-factory.c @@ -44,16 +44,16 @@ #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 "em-folder-browser.h" +#include "em-format.h" + #include "evolution-shell-component-utils.h" /* The FolderBrowser BonoboControls we have. */ @@ -85,79 +85,30 @@ fb_get_svi (BonoboControl *control) } static void -control_activate (BonoboControl *control, - BonoboUIComponent *uic, - FolderBrowser *fb) -{ - GtkWidget *folder_browser; - Bonobo_UIContainer container; - GNOME_Evolution_ShellView svi; - - 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);*/ - - svi = fb_get_svi (control); - folder_browser_set_shell_view (fb, svi); - bonobo_object_release_unref (svi, NULL); - - 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); - - if (fb->message_list) - message_list_save_state (fb->message_list); - - 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); + 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); + if (activate) { + 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); + + em_folder_view_activate(user_data, uic, activate); + } else { + em_folder_view_activate(user_data, uic, activate); + bonobo_ui_component_unset_container(uic, NULL); + } } static void @@ -172,14 +123,18 @@ folder_browser_factory_new_control (const char *uri, { BonoboControl *control; GtkWidget *fb; - + +#if 0 if (!(fb = folder_browser_new (shell, uri))) return NULL; FOLDER_BROWSER (fb)->pref_master = TRUE; /* save UI settings changed in this FB */ - +#endif + fb = em_folder_browser_new(); gtk_widget_show (fb); - + em_folder_view_set_folder_uri((EMFolderView *)fb, uri); + em_format_set_session((EMFormat *)((EMFolderView *)fb)->preview, session); + control = bonobo_control_new (fb); if (control == NULL) { @@ -207,14 +162,16 @@ folder_browser_factory_get_control_list (void) return control_list; } -FolderBrowser * +struct _EMFolderBrowser * folder_browser_factory_get_browser(const char *uri) { EList *controls; EIterator *it; BonoboControl *control; - FolderBrowser *fb = NULL; - + EMFolderBrowser *fb = NULL; + + return NULL; + if (control_list == NULL) return NULL; @@ -223,8 +180,8 @@ folder_browser_factory_get_browser(const char *uri) 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) + fb = (EMFolderBrowser *)bonobo_control_get_widget(control); + if (((EMFolderView *)fb)->folder_uri && strcmp (((EMFolderView *)fb)->folder_uri, uri) == 0) break; fb = NULL; |