diff options
-rw-r--r-- | shell/ChangeLog | 16 | ||||
-rw-r--r-- | shell/Evolution-ShellView.idl | 2 | ||||
-rw-r--r-- | shell/e-shell-view.c | 34 | ||||
-rw-r--r-- | shell/evolution-shell-view.c | 46 | ||||
-rw-r--r-- | shell/evolution-shell-view.h | 2 |
5 files changed, 100 insertions, 0 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index 1e4f15fd59..a391fac53c 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,19 @@ +2000-10-26 Iain Holmes <iain@helixcode.com> + + * Evolution-ShellView.idl: Added a change_current_view method and + a set_title. + + * evolution-shell-view.c (class_init): Added signals for the above methods. + (impl_ShellView_change_current_view), (impl_ShellView_set_title): Implementations + for above methods. + (corba_class_init): Connect the implemenations. + + * e-shell-view.c (shell_view_interface_change_current_view): Change + the display to the new uri. + (shell_view_interface_set_title): Set the window title. + (setup_evolution_shell_view_interface): Connect the signals to the above + functions. + 2000-11-01 Dan Winship <danw@helixcode.com> * Evolution-Storage.idl: Add "highligted" field to Folder. Add diff --git a/shell/Evolution-ShellView.idl b/shell/Evolution-ShellView.idl index f0931dccdd..d155b3397c 100644 --- a/shell/Evolution-ShellView.idl +++ b/shell/Evolution-ShellView.idl @@ -14,5 +14,7 @@ module Evolution { interface ShellView : Bonobo::Unknown { void set_message (in string message, in boolean busy); void unset_message (); + void change_current_view (in string uri); + void set_title (in string title); }; }; diff --git a/shell/e-shell-view.c b/shell/e-shell-view.c index d75ba021d0..45f4fa0ef7 100644 --- a/shell/e-shell-view.c +++ b/shell/e-shell-view.c @@ -797,6 +797,34 @@ shell_view_interface_unset_message_cb (EvolutionShellView *shell_view, stop_progress_bar (E_SHELL_VIEW (data)); } +static void +shell_view_interface_change_current_view_cb (EvolutionShellView *shell_view, + const char *uri, + void *data) +{ + EShellView *view; + + view = E_SHELL_VIEW (data); + + g_return_if_fail (view != NULL); + + e_shell_view_display_uri (view, uri); +} + +static void +shell_view_interface_set_title (EvolutionShellView *shell_view, + const char *title, + void *data) +{ + EShellView *view; + + view = E_SHELL_VIEW (data); + + g_return_if_fail (view != NULL); + + gtk_window_set_title (GTK_WINDOW (view), title); +} + EShellView * e_shell_view_construct (EShellView *shell_view, @@ -1066,6 +1094,12 @@ setup_evolution_shell_view_interface (EShellView *shell_view, gtk_signal_connect_while_alive (GTK_OBJECT (shell_view_interface), "unset_message", GTK_SIGNAL_FUNC (shell_view_interface_unset_message_cb), shell_view, GTK_OBJECT (shell_view)); + gtk_signal_connect_while_alive (GTK_OBJECT (shell_view_interface), "change_current_view", + GTK_SIGNAL_FUNC (shell_view_interface_change_current_view_cb), + shell_view, GTK_OBJECT (shell_view)); + gtk_signal_connect_while_alive (GTK_OBJECT (shell_view_interface), "set_title", + GTK_SIGNAL_FUNC (shell_view_interface_set_title), + shell_view, GTK_OBJECT (shell_view)); bonobo_object_add_interface (BONOBO_OBJECT (control_frame), BONOBO_OBJECT (shell_view_interface)); diff --git a/shell/evolution-shell-view.c b/shell/evolution-shell-view.c index 5c46f70fbb..46a59030d7 100644 --- a/shell/evolution-shell-view.c +++ b/shell/evolution-shell-view.c @@ -43,6 +43,8 @@ struct _EvolutionShellViewPrivate { enum { SET_MESSAGE, UNSET_MESSAGE, + CHANGE_VIEW, + SET_TITLE, LAST_SIGNAL }; static int signals[LAST_SIGNAL] = { 0 }; @@ -96,6 +98,30 @@ impl_ShellView_unset_message (PortableServer_Servant servant, gtk_signal_emit (GTK_OBJECT (bonobo_object), signals[UNSET_MESSAGE]); } +static void +impl_ShellView_change_current_view (PortableServer_Servant servant, + CORBA_char *uri, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + + bonobo_object = bonobo_object_from_servant (servant); + gtk_signal_emit (GTK_OBJECT (bonobo_object), signals[CHANGE_VIEW], + uri); +} + +static void +impl_ShellView_set_title (PortableServer_Servant servant, + CORBA_char *title, + CORBA_Environment *ev) +{ + BonoboObject *bonobo_object; + + bonobo_object = bonobo_object_from_servant (servant); + gtk_signal_emit (GTK_OBJECT (bonobo_object), signals[SET_TITLE], + title); +} + /* GtkObject methods. */ static void @@ -128,6 +154,8 @@ corba_class_init (void) epv = g_new0 (POA_Evolution_ShellView__epv, 1); epv->set_message = impl_ShellView_set_message; epv->unset_message = impl_ShellView_unset_message; + epv->change_current_view = impl_ShellView_change_current_view; + epv->set_title = impl_ShellView_set_title; vepv = &ShellView_vepv; vepv->_base_epv = base_epv; @@ -161,6 +189,24 @@ class_init (EvolutionShellViewClass *klass) gtk_marshal_NONE__NONE, GTK_TYPE_NONE, 0); + signals[CHANGE_VIEW] + = gtk_signal_new ("change_current_view", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EvolutionShellViewClass, change_current_view), + gtk_marshal_NONE__POINTER, + GTK_TYPE_NONE, 1, + GTK_TYPE_STRING); + + signals[SET_TITLE] + = gtk_signal_new ("set_title", + GTK_RUN_FIRST, + object_class->type, + GTK_SIGNAL_OFFSET (EvolutionShellViewClass, set_title), + gtk_marshal_NONE__POINTER, + GTK_TYPE_NONE, 1, + GTK_TYPE_STRING); + gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL); parent_class = gtk_type_class (bonobo_object_get_type ()); diff --git a/shell/evolution-shell-view.h b/shell/evolution-shell-view.h index e12e8be2e1..546a1a9640 100644 --- a/shell/evolution-shell-view.h +++ b/shell/evolution-shell-view.h @@ -61,6 +61,8 @@ struct _EvolutionShellViewClass { void (* set_message) (EvolutionShellView *shell_view, const char *message, gboolean busy); void (* unset_message) (EvolutionShellView *shell_view); + void (* change_current_view) (EvolutionShellView *shell_view, const char *uri); + void (* set_title) (EvolutionShellView *shell_view, const char *message); }; |