void e_shell_utils_run_preferences (EShell *shell) { GtkWidget *preferences_window; GtkWindow *window; preferences_window = e_shell_get_preferences_window (shell); e_preferences_window_setup (E_PREFERENCES_WINDOW (preferences_window)); window = e_shell_get_active_window (shell); g_return_if_fail (GTK_IS_WINDOW (window)); gtk_window_set_transient_for ( GTK_WINDOW (preferences_window), window); gtk_window_set_position ( GTK_WINDOW (preferences_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_present (GTK_WINDOW (preferences_window)); if (E_IS_SHELL_WINDOW (window)) { EShellView *shell_view; EShellWindow *shell_window; EShellBackend *shell_backend; EShellBackendClass *shell_backend_class; const gchar *view_name; shell_window = E_SHELL_WINDOW (window); view_name = e_shell_window_get_active_view (shell_window); shell_view = e_shell_window_get_shell_view (shell_window, view_name); shell_backend = e_shell_view_get_shell_backend (shell_view); shell_backend_class = E_SHELL_BACKEND_GET_CLASS (shell_backend); if (shell_backend_class->preferences_page != NULL) e_preferences_window_show_page ( E_PREFERENCES_WINDOW (preferences_window), shell_backend_class->preferences_page); } }
static void action_preferences_cb (GtkAction *action, EMsgComposer *composer) { EShell *shell; GtkWidget *preferences_window; const gchar *page_name = "composer"; shell = e_msg_composer_get_shell (composer); preferences_window = e_shell_get_preferences_window (shell); e_preferences_window_setup (E_PREFERENCES_WINDOW (preferences_window)); gtk_window_set_transient_for ( GTK_WINDOW (preferences_window), GTK_WINDOW (composer)); gtk_window_set_position ( GTK_WINDOW (preferences_window), GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_present (GTK_WINDOW (preferences_window)); e_preferences_window_show_page ( E_PREFERENCES_WINDOW (preferences_window), page_name); }