emit show_settings signal (corba_class_init): assign epv method
2002-04-18 JP Rosevear <jpr@ximian.com> * evolution-shell-view.c (impl_ShellView_show_settings): emit show_settings signal (corba_class_init): assign epv method (class_init): add signal * evolution-shell-view.h: new signal * e-shell.c (init): init settings_dialog private member (settings_dialog_destroy_cb): reset dialog pointer (e_shell_show_settings): show the settings dialog, bring it to the front if one already exists for this shell * e-shell.h: new proto * e-shell-view.c (corba_interface_show_settings): implement showSettings method (setup_corba_interface): listen for show_settings signal (e_shell_view_show_settings): show the settings dialog * e-shell-view.h: new proto * e-shell-view-menu.c (command_settings): call e_shell_view_show_settings instead * Evolution-ShellView.idl: add showSettings method svn path=/trunk/; revision=16510
This commit is contained in:
parent
b997798e35
commit
bd6359c660
@ -1,3 +1,31 @@
|
||||
2002-04-18 JP Rosevear <jpr@ximian.com>
|
||||
|
||||
* evolution-shell-view.c (impl_ShellView_show_settings): emit
|
||||
show_settings signal
|
||||
(corba_class_init): assign epv method
|
||||
(class_init): add signal
|
||||
|
||||
* evolution-shell-view.h: new signal
|
||||
|
||||
* e-shell.c (init): init settings_dialog private member
|
||||
(settings_dialog_destroy_cb): reset dialog pointer
|
||||
(e_shell_show_settings): show the settings dialog, bring it to the
|
||||
front if one already exists for this shell
|
||||
|
||||
* e-shell.h: new proto
|
||||
|
||||
* e-shell-view.c (corba_interface_show_settings): implement
|
||||
showSettings method
|
||||
(setup_corba_interface): listen for show_settings signal
|
||||
(e_shell_view_show_settings): show the settings dialog
|
||||
|
||||
* e-shell-view.h: new proto
|
||||
|
||||
* e-shell-view-menu.c (command_settings): call
|
||||
e_shell_view_show_settings instead
|
||||
|
||||
* Evolution-ShellView.idl: add showSettings method
|
||||
|
||||
2002-04-17 Ettore Perazzoli <ettore@ximian.com>
|
||||
|
||||
* e-shortcuts-view.c (impl_shortcut_drag_motion): New, override
|
||||
|
@ -19,6 +19,7 @@ module Evolution {
|
||||
void changeCurrentView (in string uri);
|
||||
void setTitle (in string title);
|
||||
void setFolderBarLabel (in string text);
|
||||
void showSettings ();
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -33,8 +33,6 @@
|
||||
#include "e-shell-folder-creation-dialog.h"
|
||||
#include "e-shell-folder-selection-dialog.h"
|
||||
|
||||
#include "e-shell-settings-dialog.h"
|
||||
|
||||
#include "e-shell-constants.h"
|
||||
|
||||
#include "e-shell-importer.h"
|
||||
@ -588,18 +586,10 @@ command_settings (BonoboUIComponent *uih,
|
||||
const char *path)
|
||||
{
|
||||
EShellView *shell_view;
|
||||
GtkWidget *dialog;
|
||||
const char *type;
|
||||
|
||||
shell_view = E_SHELL_VIEW (data);
|
||||
|
||||
type = e_shell_view_get_current_folder_type (shell_view);
|
||||
dialog = e_shell_settings_dialog_new ();
|
||||
e_shell_settings_dialog_show_type (E_SHELL_SETTINGS_DIALOG (dialog), type);
|
||||
|
||||
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (shell_view));
|
||||
|
||||
gtk_widget_show (dialog);
|
||||
e_shell_view_show_settings (shell_view);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1517,6 +1517,22 @@ corba_interface_set_folder_bar_label (EvolutionShellView *evolution_shell_view,
|
||||
text);
|
||||
}
|
||||
|
||||
static void
|
||||
corba_interface_show_settings (EvolutionShellView *evolution_shell_view,
|
||||
void *data)
|
||||
{
|
||||
EShellView *shell_view;
|
||||
EShellViewPrivate *priv;
|
||||
|
||||
g_return_if_fail (data != NULL);
|
||||
g_return_if_fail (E_IS_SHELL_VIEW (data));
|
||||
|
||||
shell_view = E_SHELL_VIEW (data);
|
||||
priv = shell_view->priv;
|
||||
|
||||
e_shell_view_show_settings (shell_view);
|
||||
}
|
||||
|
||||
static void
|
||||
unmerge_on_error (BonoboObject *object,
|
||||
CORBA_Object cobject,
|
||||
@ -1945,6 +1961,9 @@ setup_corba_interface (EShellView *shell_view,
|
||||
gtk_signal_connect_while_alive (GTK_OBJECT (corba_interface), "set_folder_bar_label",
|
||||
GTK_SIGNAL_FUNC (corba_interface_set_folder_bar_label),
|
||||
shell_view, GTK_OBJECT (shell_view));
|
||||
gtk_signal_connect_while_alive (GTK_OBJECT (corba_interface), "show_settings",
|
||||
GTK_SIGNAL_FUNC (corba_interface_show_settings),
|
||||
shell_view, GTK_OBJECT (shell_view));
|
||||
|
||||
bonobo_object_add_interface (BONOBO_OBJECT (control_frame),
|
||||
BONOBO_OBJECT (corba_interface));
|
||||
@ -2349,6 +2368,21 @@ e_shell_view_show_folder_bar (EShellView *shell_view,
|
||||
priv->folder_bar_shown);
|
||||
}
|
||||
|
||||
void
|
||||
e_shell_view_show_settings (EShellView *shell_view)
|
||||
{
|
||||
EShellViewPrivate *priv;
|
||||
const char *type;
|
||||
|
||||
g_return_if_fail (shell_view != NULL);
|
||||
g_return_if_fail (E_IS_SHELL_VIEW (shell_view));
|
||||
|
||||
priv = shell_view->priv;
|
||||
|
||||
type = e_shell_view_get_current_folder_type (shell_view);
|
||||
e_shell_show_settings (priv->shell, type, shell_view);
|
||||
}
|
||||
|
||||
gboolean
|
||||
e_shell_view_shortcut_bar_shown (EShellView *shell_view)
|
||||
{
|
||||
|
@ -94,6 +94,8 @@ void e_shell_view_show_folder_bar (EShellView *shell_view,
|
||||
gboolean show);
|
||||
gboolean e_shell_view_folder_bar_shown (EShellView *shell_view);
|
||||
|
||||
void e_shell_view_show_settings (EShellView *shell_view);
|
||||
|
||||
ETaskBar *e_shell_view_get_task_bar (EShellView *shell_view);
|
||||
EShell *e_shell_view_get_shell (EShellView *shell_view);
|
||||
BonoboUIComponent *e_shell_view_get_bonobo_ui_component (EShellView *shell_view);
|
||||
|
@ -62,6 +62,7 @@
|
||||
#include "e-shell-corba-icon-utils.h"
|
||||
#include "e-shell-folder-selection-dialog.h"
|
||||
#include "e-shell-offline-handler.h"
|
||||
#include "e-shell-settings-dialog.h"
|
||||
#include "e-shell-startup-wizard.h"
|
||||
#include "e-shell-view.h"
|
||||
#include "e-shortcuts.h"
|
||||
@ -119,6 +120,9 @@ struct _EShellPrivate {
|
||||
/* Line status. */
|
||||
EShellLineStatus line_status;
|
||||
|
||||
/* Settings Dialog */
|
||||
GtkWidget *settings_dialog;
|
||||
|
||||
/* Configuration Database */
|
||||
Bonobo_ConfigDatabase db;
|
||||
|
||||
@ -1165,6 +1169,7 @@ init (EShell *shell)
|
||||
priv->offline_handler = NULL;
|
||||
priv->crash_type_names = NULL;
|
||||
priv->line_status = E_SHELL_LINE_STATUS_OFFLINE;
|
||||
priv->settings_dialog = NULL;
|
||||
priv->db = CORBA_OBJECT_NIL;
|
||||
priv->is_initialized = FALSE;
|
||||
priv->is_interactive = FALSE;
|
||||
@ -2014,6 +2019,46 @@ e_shell_send_receive (EShell *shell)
|
||||
e_free_string_list (id_list);
|
||||
}
|
||||
|
||||
static void
|
||||
settings_dialog_destroy_cb (GtkWidget *widget, void *data)
|
||||
{
|
||||
EShell *shell;
|
||||
EShellPrivate *priv;
|
||||
|
||||
shell = E_SHELL (data);
|
||||
priv = shell->priv;
|
||||
|
||||
priv->settings_dialog = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
e_shell_show_settings (EShell *shell, const char *type, EShellView *shell_view)
|
||||
{
|
||||
EShellPrivate *priv;
|
||||
|
||||
g_return_if_fail (shell != NULL);
|
||||
g_return_if_fail (E_IS_SHELL (shell));
|
||||
g_return_if_fail (type != NULL);
|
||||
|
||||
priv = shell->priv;
|
||||
|
||||
if (priv->settings_dialog != NULL) {
|
||||
gdk_window_show (priv->settings_dialog->window);
|
||||
gtk_widget_grab_focus (priv->settings_dialog);
|
||||
return;
|
||||
}
|
||||
|
||||
priv->settings_dialog = e_shell_settings_dialog_new ();
|
||||
e_shell_settings_dialog_show_type (E_SHELL_SETTINGS_DIALOG (priv->settings_dialog), type);
|
||||
|
||||
gtk_signal_connect (GTK_OBJECT (priv->settings_dialog), "destroy",
|
||||
GTK_SIGNAL_FUNC (settings_dialog_destroy_cb), shell);
|
||||
|
||||
gtk_window_set_transient_for (GTK_WINDOW (priv->settings_dialog), GTK_WINDOW (shell_view));
|
||||
gtk_widget_show (priv->settings_dialog);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Bonobo_ConfigDatabase
|
||||
e_shell_get_config_db (EShell *shell)
|
||||
|
@ -141,7 +141,10 @@ void e_shell_go_offline (EShell *shell,
|
||||
void e_shell_go_online (EShell *shell,
|
||||
EShellView *action_view);
|
||||
|
||||
void e_shell_send_receive (EShell *shell);
|
||||
void e_shell_send_receive (EShell *shell);
|
||||
void e_shell_show_settings (EShell *shell,
|
||||
const char *type,
|
||||
EShellView *shell_view);
|
||||
|
||||
Bonobo_ConfigDatabase e_shell_get_config_db (EShell *shell);
|
||||
EComponentRegistry *e_shell_get_component_registry (EShell *shell);
|
||||
|
@ -44,6 +44,7 @@ enum {
|
||||
CHANGE_VIEW,
|
||||
SET_TITLE,
|
||||
SET_FOLDER_BAR_LABEL,
|
||||
SHOW_SETTINGS,
|
||||
LAST_SIGNAL
|
||||
};
|
||||
static int signals[LAST_SIGNAL] = { 0 };
|
||||
@ -133,6 +134,16 @@ impl_ShellView_set_folder_bar_label (PortableServer_Servant servant,
|
||||
text);
|
||||
}
|
||||
|
||||
static void
|
||||
impl_ShellView_show_settings (PortableServer_Servant servant,
|
||||
CORBA_Environment *ev)
|
||||
{
|
||||
BonoboObject *bonobo_object;
|
||||
|
||||
bonobo_object = bonobo_object_from_servant (servant);
|
||||
gtk_signal_emit (GTK_OBJECT (bonobo_object), signals[SHOW_SETTINGS]);
|
||||
}
|
||||
|
||||
|
||||
/* GtkObject methods. */
|
||||
static void
|
||||
@ -168,6 +179,7 @@ corba_class_init (void)
|
||||
epv->changeCurrentView = impl_ShellView_change_current_view;
|
||||
epv->setTitle = impl_ShellView_set_title;
|
||||
epv->setFolderBarLabel = impl_ShellView_set_folder_bar_label;
|
||||
epv->showSettings = impl_ShellView_show_settings;
|
||||
|
||||
vepv = &ShellView_vepv;
|
||||
vepv->_base_epv = base_epv;
|
||||
@ -228,6 +240,14 @@ class_init (EvolutionShellViewClass *klass)
|
||||
GTK_TYPE_NONE, 1,
|
||||
GTK_TYPE_STRING);
|
||||
|
||||
signals[SHOW_SETTINGS]
|
||||
= gtk_signal_new ("show_settings",
|
||||
GTK_RUN_FIRST,
|
||||
object_class->type,
|
||||
GTK_SIGNAL_OFFSET (EvolutionShellViewClass, show_settings),
|
||||
gtk_marshal_NONE__NONE,
|
||||
GTK_TYPE_NONE, 0);
|
||||
|
||||
gtk_object_class_add_signals (object_class, signals, LAST_SIGNAL);
|
||||
|
||||
parent_class = gtk_type_class (bonobo_object_get_type ());
|
||||
|
@ -59,6 +59,7 @@ struct _EvolutionShellViewClass {
|
||||
void (* change_current_view) (EvolutionShellView *shell_view, const char *uri);
|
||||
void (* set_title) (EvolutionShellView *shell_view, const char *message);
|
||||
void (* set_folder_bar_label) (EvolutionShellView *shell_view, const char *text);
|
||||
void (* show_settings) (EvolutionShellView *shell_view);
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user