static void notebook_popup_menu_move_right_cb (GtkMenuItem *menuitem, gpointer user_data) { CajaNavigationWindowPane *pane; pane = CAJA_NAVIGATION_WINDOW_PANE (user_data); caja_notebook_reorder_current_child_relative (CAJA_NOTEBOOK (pane->notebook), 1); }
static void real_sync_allow_stop (CajaWindow *window, CajaWindowSlot *slot) { CajaNavigationWindow *navigation_window; CajaNotebook *notebook; navigation_window = CAJA_NAVIGATION_WINDOW (window); caja_navigation_window_set_spinner_active (navigation_window, slot->allow_stop); notebook = CAJA_NOTEBOOK (CAJA_NAVIGATION_WINDOW_PANE (slot->pane)->notebook); caja_notebook_sync_loading (notebook, slot); }
void caja_navigation_window_pane_add_slot_in_tab (CajaNavigationWindowPane *pane, CajaWindowSlot *slot, CajaWindowOpenSlotFlags flags) { CajaNotebook *notebook; notebook = CAJA_NOTEBOOK (pane->notebook); g_signal_handlers_block_by_func (notebook, G_CALLBACK (notebook_switch_page_cb), pane); caja_notebook_add_tab (notebook, slot, (flags & CAJA_WINDOW_OPEN_SLOT_APPEND) != 0 ? -1 : gtk_notebook_get_current_page (GTK_NOTEBOOK (notebook)) + 1, FALSE); g_signal_handlers_unblock_by_func (notebook, G_CALLBACK (notebook_switch_page_cb), pane); }
/* FIXME remove when gtknotebook's func for this becomes public, bug #.... */ static CajaNotebook * find_notebook_at_pointer (gint abs_x, gint abs_y) { #if GTK_CHECK_VERSION(3, 0, 0) GdkDeviceManager *manager; GdkDevice *pointer; #endif GdkWindow *win_at_pointer, *toplevel_win; gpointer toplevel = NULL; gint x, y; /* FIXME multi-head */ #if GTK_CHECK_VERSION(3, 0, 0) manager = gdk_display_get_device_manager (gdk_display_get_default ()); pointer = gdk_device_manager_get_client_pointer (manager); win_at_pointer = gdk_device_get_window_at_position (pointer, &x, &y); #else win_at_pointer = gdk_window_at_pointer (&x, &y); #endif if (win_at_pointer == NULL) { /* We are outside all windows containing a notebook */ return NULL; } toplevel_win = gdk_window_get_toplevel (win_at_pointer); /* get the GtkWidget which owns the toplevel GdkWindow */ gdk_window_get_user_data (toplevel_win, &toplevel); /* toplevel should be an CajaWindow */ if (toplevel != NULL && CAJA_IS_NAVIGATION_WINDOW (toplevel)) { return CAJA_NOTEBOOK (CAJA_NAVIGATION_WINDOW_PANE (CAJA_WINDOW (toplevel)->details->active_pane)->notebook); } return NULL; }
static void real_sync_title (CajaWindow *window, CajaWindowSlot *slot) { CajaNavigationWindowPane *pane; CajaNotebook *notebook; char *full_title; char *window_title; EEL_CALL_PARENT (CAJA_WINDOW_CLASS, sync_title, (window, slot)); if (slot == window->details->active_pane->active_slot) { /* if spatial mode is default, we keep "File Browser" in the window title * to recognize browser windows. Otherwise, we default to the directory name. */ if (!g_settings_get_boolean (caja_preferences, CAJA_PREFERENCES_ALWAYS_USE_BROWSER)) { full_title = g_strdup_printf (_("%s - File Browser"), slot->title); window_title = eel_str_middle_truncate (full_title, MAX_TITLE_LENGTH); g_free (full_title); } else { window_title = eel_str_middle_truncate (slot->title, MAX_TITLE_LENGTH); } gtk_window_set_title (GTK_WINDOW (window), window_title); g_free (window_title); } pane = CAJA_NAVIGATION_WINDOW_PANE (slot->pane); notebook = CAJA_NOTEBOOK (pane->notebook); caja_notebook_sync_tab_label (notebook, slot); }
static void notebook_popup_menu_show (CajaNavigationWindowPane *pane, GdkEventButton *event) { GtkWidget *popup; GtkWidget *item; GtkWidget *image; int button, event_time; gboolean can_move_left, can_move_right; CajaNotebook *notebook; notebook = CAJA_NOTEBOOK (pane->notebook); can_move_left = caja_notebook_can_reorder_current_child_relative (notebook, -1); can_move_right = caja_notebook_can_reorder_current_child_relative (notebook, 1); popup = gtk_menu_new(); item = gtk_menu_item_new_with_mnemonic (_("_New Tab")); g_signal_connect (item, "activate", G_CALLBACK (notebook_popup_menu_new_tab_cb), pane); gtk_menu_shell_append (GTK_MENU_SHELL (popup), item); gtk_menu_shell_append (GTK_MENU_SHELL (popup), gtk_separator_menu_item_new ()); item = gtk_menu_item_new_with_mnemonic (_("Move Tab _Left")); g_signal_connect (item, "activate", G_CALLBACK (notebook_popup_menu_move_left_cb), pane); gtk_menu_shell_append (GTK_MENU_SHELL (popup), item); gtk_widget_set_sensitive (item, can_move_left); item = gtk_menu_item_new_with_mnemonic (_("Move Tab _Right")); g_signal_connect (item, "activate", G_CALLBACK (notebook_popup_menu_move_right_cb), pane); gtk_menu_shell_append (GTK_MENU_SHELL (popup), item); gtk_widget_set_sensitive (item, can_move_right); gtk_menu_shell_append (GTK_MENU_SHELL (popup), gtk_separator_menu_item_new ()); item = gtk_image_menu_item_new_with_mnemonic (_("_Close Tab")); image = gtk_image_new_from_stock (GTK_STOCK_CLOSE, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (item), image); g_signal_connect (item, "activate", G_CALLBACK (notebook_popup_menu_close_cb), pane); gtk_menu_shell_append (GTK_MENU_SHELL (popup), item); gtk_widget_show_all (popup); if (event) { button = event->button; event_time = event->time; } else { button = 0; event_time = gtk_get_current_event_time (); } /* TODO is this correct? */ gtk_menu_attach_to_widget (GTK_MENU (popup), pane->notebook, NULL); gtk_menu_popup (GTK_MENU (popup), NULL, NULL, NULL, NULL, button, event_time); }