NemoWindowSlot * nemo_window_pane_open_slot (NemoWindowPane *pane, NemoWindowOpenSlotFlags flags) { NemoWindowSlot *slot; g_assert (NEMO_IS_WINDOW_PANE (pane)); g_assert (NEMO_IS_WINDOW (pane->window)); slot = nemo_window_slot_new (pane); g_signal_handlers_block_by_func (pane->notebook, G_CALLBACK (notebook_switch_page_cb), pane); nemo_notebook_add_tab (NEMO_NOTEBOOK (pane->notebook), slot, (flags & NEMO_WINDOW_OPEN_SLOT_APPEND) != 0 ? -1 : gtk_notebook_get_current_page (GTK_NOTEBOOK (pane->notebook)) + 1, FALSE); g_signal_handlers_unblock_by_func (pane->notebook, G_CALLBACK (notebook_switch_page_cb), pane); pane->slots = g_list_append (pane->slots, slot); return slot; }
void nemo_window_pane_grab_focus (NemoWindowPane *pane) { if (NEMO_IS_WINDOW_PANE (pane) && pane->active_slot) { nemo_view_grab_focus (pane->active_slot->content_view); } }
void nemo_window_pane_close_slot (NemoWindowPane *pane, NemoWindowSlot *slot) { int page_num; GtkNotebook *notebook; g_assert (NEMO_IS_WINDOW_SLOT (slot)); g_assert (NEMO_IS_WINDOW_PANE (slot->pane)); DEBUG ("Closing slot %p", slot); /* save pane because slot is not valid anymore after this call */ pane = slot->pane; notebook = GTK_NOTEBOOK (pane->notebook); nemo_window_manage_views_close_slot (slot); page_num = gtk_notebook_page_num (notebook, GTK_WIDGET (slot)); g_assert (page_num >= 0); g_signal_handlers_block_by_func (notebook, G_CALLBACK (notebook_switch_page_cb), pane); /* this will call gtk_widget_destroy on the slot */ gtk_notebook_remove_page (notebook, page_num); g_signal_handlers_unblock_by_func (notebook, G_CALLBACK (notebook_switch_page_cb), pane); gtk_notebook_set_show_tabs (notebook, gtk_notebook_get_n_pages (notebook) > 1); pane->slots = g_list_remove (pane->slots, slot); }
GtkActionGroup * nemo_window_pane_get_toolbar_action_group (NemoWindowPane *pane) { g_return_val_if_fail (NEMO_IS_WINDOW_PANE (pane), NULL); return pane->toolbar_action_group; }
void nemo_window_slot_make_hosting_pane_active (NemoWindowSlot *slot) { g_assert (NEMO_IS_WINDOW_PANE (slot->pane)); nemo_window_set_active_slot (nemo_window_slot_get_window (slot), slot); }