int nautilus_notebook_add_tab (NautilusNotebook *notebook, NautilusWindowSlot *slot, int position, gboolean jump_to) { GtkNotebook *gnotebook = GTK_NOTEBOOK (notebook); GtkWidget *tab_label; g_return_val_if_fail (NAUTILUS_IS_NOTEBOOK (notebook), -1); g_return_val_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot), -1); tab_label = build_tab_label (notebook, slot); position = gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), GTK_WIDGET (slot), tab_label, position); gtk_container_child_set (GTK_CONTAINER (notebook), GTK_WIDGET (slot), "tab-expand", TRUE, NULL); nautilus_notebook_sync_tab_label (notebook, slot); nautilus_notebook_sync_loading (notebook, slot); if (jump_to) { gtk_notebook_set_current_page (gnotebook, position); } return position; }
void nautilus_notebook_sync_loading (NautilusNotebook *notebook, NautilusWindowSlot *slot) { GtkWidget *tab_label, *spinner, *icon; gboolean active; g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook)); g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot)); tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), GTK_WIDGET (slot)); g_return_if_fail (GTK_IS_WIDGET (tab_label)); spinner = GTK_WIDGET (g_object_get_data (G_OBJECT (tab_label), "spinner")); icon = GTK_WIDGET (g_object_get_data (G_OBJECT (tab_label), "icon")); g_return_if_fail (spinner != NULL && icon != NULL); active = FALSE; g_object_get (spinner, "active", &active, NULL); if (active == slot->allow_stop) { return; } if (slot->allow_stop) { gtk_widget_hide (icon); gtk_widget_show (spinner); gtk_spinner_start (GTK_SPINNER (spinner)); } else { gtk_spinner_stop (GTK_SPINNER (spinner)); gtk_widget_hide (spinner); gtk_widget_show (icon); } }
void nautilus_notebook_sync_tab_label (NautilusNotebook *notebook, NautilusWindowSlot *slot) { GtkWidget *hbox, *label; char *location_name; g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook)); g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot)); hbox = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), GTK_WIDGET (slot)); g_return_if_fail (GTK_IS_WIDGET (hbox)); label = GTK_WIDGET (g_object_get_data (G_OBJECT (hbox), "label")); g_return_if_fail (GTK_IS_WIDGET (label)); gtk_label_set_text (GTK_LABEL (label), slot->title); if (slot->location != NULL) { /* Set the tooltip on the label's parent (the tab label hbox), * so it covers all of the tab label. */ location_name = g_file_get_parse_name (slot->location); gtk_widget_set_tooltip_text (gtk_widget_get_parent (label), location_name); g_free (location_name); } else { gtk_widget_set_tooltip_text (gtk_widget_get_parent (label), NULL); } }
void nautilus_notebook_sync_loading (NautilusNotebook *notebook, NautilusWindowSlot *slot) { GtkWidget *tab_label, *spinner, *icon; g_return_if_fail (NAUTILUS_IS_NOTEBOOK (notebook)); g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot)); tab_label = gtk_notebook_get_tab_label (GTK_NOTEBOOK (notebook), slot->content_box); g_return_if_fail (GTK_IS_WIDGET (tab_label)); spinner = GTK_WIDGET (g_object_get_data (G_OBJECT (tab_label), "spinner")); icon = GTK_WIDGET (g_object_get_data (G_OBJECT (tab_label), "icon")); g_return_if_fail (spinner != NULL && icon != NULL); if (ephy_spinner_get_spinning (EPHY_SPINNER (spinner)) == slot->allow_stop) { return; } if (slot->allow_stop) { gtk_widget_hide (icon); gtk_widget_show (spinner); ephy_spinner_start (EPHY_SPINNER (spinner)); } else { ephy_spinner_stop (EPHY_SPINNER (spinner)); gtk_widget_hide (spinner); gtk_widget_show (icon); } }
void nautilus_window_slot_clear_back_list (NautilusWindowSlot *slot) { g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); g_list_free_full (slot->back_list, g_object_unref); slot->back_list = NULL; }
char * nautilus_window_slot_get_location_uri (NautilusWindowSlot *slot) { g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); if (slot->location) { return g_file_get_uri (slot->location); } return NULL; }
void nautilus_window_slot_set_status (NautilusWindowSlot *slot, const char *primary_status, const char *detail_status) { g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); if (slot->content_view != NULL) { set_floating_bar_status (slot, primary_status, detail_status); } }
void nautilus_window_slot_go_home (NautilusWindowSlot *slot, NautilusWindowOpenFlags flags) { GFile *home; g_return_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot)); home = g_file_new_for_path (g_get_home_dir ()); nautilus_window_slot_open_location (slot, home, flags); g_object_unref (home); }
void nautilus_window_slot_set_window_pane (NautilusWindowSlot *slot, NautilusWindowPane *pane) { g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); g_assert (NAUTILUS_IS_WINDOW_PANE (pane)); if (slot->details->pane != pane) { slot->details->pane = pane; g_object_notify_by_pspec (G_OBJECT (slot), properties[PROP_PANE]); } }
void nautilus_window_slot_set_window (NautilusWindowSlot *slot, NautilusWindow *window) { g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); g_assert (NAUTILUS_IS_WINDOW (window)); if (slot->details->pane->window != window) { slot->details->pane->window = window; g_object_notify_by_pspec (G_OBJECT (slot), properties[PROP_PANE]); } }
void nautilus_window_slot_set_allow_stop (NautilusWindowSlot *slot, gboolean allow) { NautilusWindow *window; g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); slot->allow_stop = allow; window = nautilus_window_slot_get_window (slot); nautilus_window_sync_allow_stop (window, slot); }
static void nautilus_window_slot_inactive (NautilusWindowSlot *slot) { NautilusWindow *window; g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); window = NAUTILUS_WINDOW (slot->window); g_assert (g_list_find (window->details->slots, slot) != NULL); g_assert (slot == window->details->active_slot); EEL_CALL_METHOD (NAUTILUS_WINDOW_SLOT_CLASS, slot, inactive, (slot)); }
int nautilus_notebook_add_tab (NautilusNotebook *notebook, NautilusWindowSlot *slot, int position, gboolean jump_to) { GtkNotebook *gnotebook = GTK_NOTEBOOK (notebook); GtkWidget *tab_label; g_return_val_if_fail (NAUTILUS_IS_NOTEBOOK (notebook), -1); g_return_val_if_fail (NAUTILUS_IS_WINDOW_SLOT (slot), -1); tab_label = build_tab_label (notebook, slot); position = gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), slot->content_box, tab_label, position); gtk_container_child_set (GTK_CONTAINER (notebook), slot->content_box, "tab-expand", TRUE, NULL); nautilus_notebook_sync_tab_label (notebook, slot); nautilus_notebook_sync_loading (notebook, slot); /* FIXME gtk bug! */ /* FIXME: this should be fixed in gtk 2.12; check & remove this! */ /* The signal handler may have reordered the tabs */ position = gtk_notebook_page_num (gnotebook, slot->content_box); if (jump_to) { gtk_notebook_set_current_page (gnotebook, position); } return position; }
NautilusWindowPane * nautilus_window_slot_get_window_pane (NautilusWindowSlot *slot) { g_assert (NAUTILUS_IS_WINDOW_SLOT (slot)); return slot->details->pane; }