void caja_side_pane_remove_panel (CajaSidePane *side_pane, GtkWidget *widget) { SidePanel *panel; int page_num; g_return_if_fail (side_pane != NULL); g_return_if_fail (CAJA_IS_SIDE_PANE (side_pane)); g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_WIDGET (widget)); panel = panel_for_widget (side_pane, widget); g_return_if_fail (panel != NULL); if (panel) { page_num = gtk_notebook_page_num (GTK_NOTEBOOK (side_pane->details->notebook), widget); gtk_notebook_remove_page (GTK_NOTEBOOK (side_pane->details->notebook), page_num); gtk_container_remove (GTK_CONTAINER (side_pane->details->menu), panel->menu_item); side_pane->details->panels = g_list_remove (side_pane->details->panels, panel); side_panel_free (panel); } }
void caja_navigation_window_add_sidebar_panel (CajaNavigationWindow *window, CajaSidebar *sidebar_panel) { const char *sidebar_id; char *label; char *tooltip; char *default_id; GdkPixbuf *icon; g_return_if_fail (CAJA_IS_NAVIGATION_WINDOW (window)); g_return_if_fail (CAJA_IS_SIDEBAR (sidebar_panel)); g_return_if_fail (CAJA_IS_SIDE_PANE (window->sidebar)); g_return_if_fail (g_list_find (window->sidebar_panels, sidebar_panel) == NULL); label = caja_sidebar_get_tab_label (sidebar_panel); tooltip = caja_sidebar_get_tab_tooltip (sidebar_panel); caja_side_pane_add_panel (window->sidebar, GTK_WIDGET (sidebar_panel), label, tooltip); g_free (tooltip); g_free (label); icon = caja_sidebar_get_tab_icon (sidebar_panel); caja_side_pane_set_panel_image (CAJA_NAVIGATION_WINDOW (window)->sidebar, GTK_WIDGET (sidebar_panel), icon); if (icon) { g_object_unref (icon); } g_signal_connect (sidebar_panel, "tab_icon_changed", (GCallback)side_panel_image_changed_callback, window); window->sidebar_panels = g_list_prepend (window->sidebar_panels, g_object_ref (sidebar_panel)); /* Show if default */ sidebar_id = caja_sidebar_get_sidebar_id (sidebar_panel); default_id = g_settings_get_string (caja_window_state, CAJA_WINDOW_STATE_SIDE_PANE_VIEW); if (sidebar_id && default_id && !strcmp (sidebar_id, default_id)) { caja_side_pane_show_panel (window->sidebar, GTK_WIDGET (sidebar_panel)); } g_free (default_id); }
void caja_side_pane_set_panel_image (CajaSidePane *side_pane, GtkWidget *widget, GdkPixbuf *pixbuf) { SidePanel *panel; GtkWidget *image; g_return_if_fail (side_pane != NULL); g_return_if_fail (CAJA_IS_SIDE_PANE (side_pane)); g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (pixbuf == NULL || GDK_IS_PIXBUF (pixbuf)); panel = panel_for_widget (side_pane, widget); g_return_if_fail (panel != NULL); if (pixbuf) { image = gtk_image_new_from_pixbuf (pixbuf); gtk_widget_show (image); } else { image = NULL; } gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (panel->menu_item), image); if (panel->shortcut) { gtk_widget_destroy (panel->shortcut); panel->shortcut = NULL; } if (pixbuf) { panel->shortcut = create_shortcut (side_pane, panel, pixbuf); gtk_widget_show (panel->shortcut); gtk_box_pack_start (GTK_BOX (side_pane->details->shortcut_box), panel->shortcut, FALSE, FALSE, 0); } }
void caja_side_pane_show_panel (CajaSidePane *side_pane, GtkWidget *widget) { SidePanel *panel; int page_num; g_return_if_fail (side_pane != NULL); g_return_if_fail (CAJA_IS_SIDE_PANE (side_pane)); g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_WIDGET (widget)); panel = panel_for_widget (side_pane, widget); g_return_if_fail (panel != NULL); page_num = gtk_notebook_page_num (GTK_NOTEBOOK (side_pane->details->notebook), widget); gtk_notebook_set_current_page (GTK_NOTEBOOK (side_pane->details->notebook), page_num); }
void caja_side_pane_add_panel (CajaSidePane *side_pane, GtkWidget *widget, const char *title, const char *tooltip) { SidePanel *panel; g_return_if_fail (side_pane != NULL); g_return_if_fail (CAJA_IS_SIDE_PANE (side_pane)); g_return_if_fail (widget != NULL); g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (title != NULL); g_return_if_fail (tooltip != NULL); panel = g_slice_new0 (SidePanel); panel->title = g_strdup (title); panel->tooltip = g_strdup (tooltip); panel->widget = widget; gtk_widget_show (widget); panel->menu_item = gtk_image_menu_item_new_with_label (title); gtk_widget_show (panel->menu_item); gtk_menu_shell_append (GTK_MENU_SHELL (side_pane->details->menu), panel->menu_item); g_object_set_data (G_OBJECT (panel->menu_item), "panel-item", panel); g_signal_connect (panel->menu_item, "activate", G_CALLBACK (panel_item_activate_callback), side_pane); side_pane->details->panels = g_list_append (side_pane->details->panels, panel); gtk_notebook_append_page (GTK_NOTEBOOK (side_pane->details->notebook), widget, NULL); }