diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2003-11-13 13:56:14 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2003-11-13 13:56:14 +0800 |
commit | 7a5ecfbb6c09b5350e5ce0600f42098eb6a2f5de (patch) | |
tree | 4fa518fa98738666004beb7a329560a579396227 /shell/e-shell-window.c | |
parent | 35b15cb0516407c8ab0bd3ba403e04dffaaef0a1 (diff) | |
download | gsoc2013-evolution-7a5ecfbb6c09b5350e5ce0600f42098eb6a2f5de.tar.gz gsoc2013-evolution-7a5ecfbb6c09b5350e5ce0600f42098eb6a2f5de.tar.zst gsoc2013-evolution-7a5ecfbb6c09b5350e5ce0600f42098eb6a2f5de.zip |
New signal "component_changed". (class_init): Install. (switch_view):
* e-shell-window.c: New signal "component_changed".
(class_init): Install.
(switch_view): Emit.
(e_shell_window_new): Call
e_user_creatable_items_handler_attach_menus() to attach the
"New..." menus.
(e_shell_window_peek_current_component_id): New.
(e_shell_window_peek_shell): Add precondition.
(e_shell_window_peek_current_component_id): Likewise.
(e_shell_window_peek_bonobo_ui_component): Likewise.
* e-user-creatable-items-handler.c: New.
* e-user-creatable-items-handler.h: New.
* e-shell-window.h: #include <bonobo/bonobo-ui-component.h>.
* e-shell.c (struct _EShellPrivate): Add member
user_creatable_items_handler.
(e_shell_get_user_creatable_items_handler): Remove.
(e_shell_peek_user_creatable_items_handler): New.
* Evolution-Component.idl (GNOME.Evolution.RequestCreateItem): New
method.
(GNOME.Evolution.creatableItems): New attribute.
* e-shell-user-creatable-items-handler.c: Remove.
* e-shell-user-creatable-items-handler.h: Remove.
svn path=/trunk/; revision=23314
Diffstat (limited to 'shell/e-shell-window.c')
-rw-r--r-- | shell/e-shell-window.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/shell/e-shell-window.c b/shell/e-shell-window.c index 586f7e6419..903c091447 100644 --- a/shell/e-shell-window.c +++ b/shell/e-shell-window.c @@ -28,6 +28,7 @@ #include "e-component-registry.h" #include "e-shell-window-commands.h" +#include "e-shell-marshal.h" #include "e-sidebar.h" #include "e-util/e-lang-utils.h" @@ -91,6 +92,14 @@ struct _EShellWindowPrivate { }; +enum { + COMPONENT_CHANGED, + LAST_SIGNAL +}; + +static guint signals[LAST_SIGNAL] = { 0 }; + + /* ComponentView handling. */ static ComponentView * @@ -253,6 +262,8 @@ switch_view (EShellWindow *window, ComponentView *component_view) NULL); g_object_unref (gconf_client); + + g_signal_emit (window, signals[COMPONENT_CHANGED], 0); } @@ -375,6 +386,14 @@ class_init (EShellWindowClass *class) object_class->finalize = impl_finalize; parent_class = g_type_class_peek_parent (class); + + signals[COMPONENT_CHANGED] = g_signal_new ("component_changed", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (EShellWindowClass, component_changed), + NULL, NULL, + e_shell_marshal_NONE__NONE, + G_TYPE_NONE, 0); } static void @@ -447,6 +466,8 @@ e_shell_window_new (EShell *shell, } } + e_user_creatable_items_handler_attach_menus (e_shell_peek_user_creatable_items_handler (shell), window); + return GTK_WIDGET (window); } @@ -482,9 +503,23 @@ e_shell_window_switch_to_component (EShellWindow *window, const char *component_ } +const char * +e_shell_window_peek_current_component_id (EShellWindow *window) +{ + g_return_val_if_fail (E_IS_SHELL_WINDOW (window), NULL); + + if (window->priv->current_view == NULL) + return NULL; + + return window->priv->current_view->component_id; +} + + EShell * e_shell_window_peek_shell (EShellWindow *window) { + g_return_val_if_fail (E_IS_SHELL_WINDOW (window), NULL); + return window->priv->shell; } @@ -492,6 +527,8 @@ e_shell_window_peek_shell (EShellWindow *window) BonoboUIComponent * e_shell_window_peek_bonobo_ui_component (EShellWindow *window) { + g_return_val_if_fail (E_IS_SHELL_WINDOW (window), NULL); + return window->priv->ui_component; } |