コード例 #1
0
static CajaSidebar *
caja_emblem_sidebar_create (CajaSidebarProvider *provider,
                            CajaWindowInfo *window)
{
    CajaEmblemSidebar *sidebar;

    sidebar = g_object_new (caja_emblem_sidebar_get_type (), NULL);
    caja_emblem_sidebar_set_parent_window (sidebar, window);
    g_object_ref_sink (sidebar);

    return CAJA_SIDEBAR (sidebar);
}
コード例 #2
0
ファイル: caja-notes-viewer.c プロジェクト: mate-desktop/caja
/* notifies event listeners if the notes data actually changed */
static void
set_saved_text (CajaNotesViewer *notes, char *new_notes)
{
    char *old_text;

    old_text = notes->details->previous_saved_text;
    notes->details->previous_saved_text = new_notes;

    if (g_strcmp0 (old_text, new_notes) != 0)
    {
        g_signal_emit_by_name (CAJA_SIDEBAR (notes),
                               "tab_icon_changed");
    }

    g_free (old_text);
}
コード例 #3
0
static void
side_pane_switch_page_callback (CajaSidePane *side_pane,
                                GtkWidget *widget,
                                CajaNavigationWindow *window)
{
    const char *id;
    CajaSidebar *sidebar;

    sidebar = CAJA_SIDEBAR (widget);

    if (sidebar == NULL)
    {
        return;
    }

    set_current_side_panel (window, sidebar);

    id = caja_sidebar_get_sidebar_id (sidebar);
    g_settings_set_string (caja_window_state, CAJA_WINDOW_STATE_SIDE_PANE_VIEW, id);
}
コード例 #4
0
/**
 * add_sidebar_panels:
 * @window:	A CajaNavigationWindow
 *
 * Adds all sidebars available
 *
 */
static void
add_sidebar_panels (CajaNavigationWindow *window)
{
    GtkWidget *current;
    GList *providers;
    GList *p;
    CajaSidebar *sidebar_panel;

    g_assert (CAJA_IS_NAVIGATION_WINDOW (window));

    if (window->sidebar == NULL)
    {
        return;
    }

    providers = caja_module_get_extensions_for_type (CAJA_TYPE_SIDEBAR_PROVIDER);

    for (p = providers; p != NULL; p = p->next)
    {
        CajaSidebarProvider *provider;

        provider = CAJA_SIDEBAR_PROVIDER (p->data);

        sidebar_panel = caja_sidebar_provider_create (provider,
                        CAJA_WINDOW_INFO (window));
        caja_navigation_window_add_sidebar_panel (window,
                sidebar_panel);

        g_object_unref (sidebar_panel);
    }

    caja_module_extension_list_free (providers);

    current = caja_side_pane_get_current_panel (window->sidebar);
    set_current_side_panel
    (window,
     CAJA_SIDEBAR (current));
}
コード例 #5
0
static void
caja_navigation_window_tear_down_sidebar (CajaNavigationWindow *window)
{
    GList *node, *next;
    CajaSidebar *sidebar_panel;

    g_signal_handlers_disconnect_by_func (window->sidebar,
                                          side_pane_switch_page_callback,
                                          window);

    for (node = window->sidebar_panels; node != NULL; node = next)
    {
        next = node->next;

        sidebar_panel = CAJA_SIDEBAR (node->data);

        caja_navigation_window_remove_sidebar_panel (window,
                sidebar_panel);
    }

    gtk_widget_destroy (GTK_WIDGET (window->sidebar));
    window->sidebar = NULL;
}