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); }
/* 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); }
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); }
/** * 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)); }
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; }