Ejemplo n.º 1
0
static void
test_shell_backend_window_added_cb (EShellBackend *shell_backend,
                                    GtkWindow *window)
{
	const gchar *backend_name;

	g_debug ("%s (%s)", G_STRFUNC, G_OBJECT_TYPE_NAME (window));

	if (!E_IS_SHELL_WINDOW (window))
		return;

	backend_name = E_SHELL_BACKEND_GET_CLASS (shell_backend)->name;

	e_shell_window_register_new_item_actions (
		E_SHELL_WINDOW (window), backend_name,
		item_entries, G_N_ELEMENTS (item_entries));

	e_shell_window_register_new_source_actions (
		E_SHELL_WINDOW (window), backend_name,
		source_entries, G_N_ELEMENTS (source_entries));
}
Ejemplo n.º 2
0
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);
    }
}