/*! \todo Finish function documentation!!! * \brief * \par Function Description * */ void o_copy_start(GSCHEM_TOPLEVEL *w_current, int w_x, int w_y) { TOPLEVEL *toplevel = w_current->toplevel; GList *s_current; /* Copy the objects into the buffer at their current position, * with future motion relative to the mouse origin, (w_x, w_y). */ w_current->first_wx = w_x; w_current->first_wy = w_y; if (!o_select_selected (w_current)) return; s_current = geda_list_get_glist( toplevel->page_current->selection_list ); if (toplevel->page_current->place_list != NULL) { s_delete_object_glist(toplevel, toplevel->page_current->place_list); toplevel->page_current->place_list = NULL; } toplevel->page_current->place_list = o_glist_copy_all (toplevel, s_current, toplevel->page_current->place_list, SELECTION_FLAG); w_current->inside_action = 1; i_set_state(w_current, COPY); o_place_start (w_current, w_x, w_y); }
/*! \todo Finish function documentation!!! * \brief * \par Function Description * */ void o_copy_start(GschemToplevel *w_current, int w_x, int w_y) { GList *s_current; GschemPageView *page_view = gschem_toplevel_get_current_page_view (w_current); g_return_if_fail (page_view != NULL); PAGE *page = gschem_page_view_get_page (page_view); g_return_if_fail (page != NULL); /* Copy the objects into the buffer at their current position, * with future motion relative to the mouse origin, (w_x, w_y). */ w_current->first_wx = w_x; w_current->first_wy = w_y; if (!o_select_selected (w_current)) return; s_current = geda_list_get_glist (page->selection_list); if (page->place_list != NULL) { s_delete_object_glist (page->toplevel, page->place_list); page->place_list = NULL; } page->place_list = o_glist_copy_all (page->toplevel, s_current, page->place_list); g_run_hook_object_list (w_current, "%copy-objects-hook", page->place_list); o_place_start (w_current, w_x, w_y); }