int gapp_set_active_gproject(GraceApp *gapp, GProject *gp) { if (!gapp || !gp) { return RETURN_FAILURE; } if (gapp->gp) { quark_set_active2(gproject_get_top(gapp->gp), FALSE); } quark_set_active2(gproject_get_top(gp), TRUE); gapp->gp = gp; /* reset graal ? */ /* Set dimensions of all devices */ grace_sync_canvas_devices(gp); /* Reset set autocolorization index */ gapp->rt->setcolor = 0; /* Request update of color selectors */ gapp->gui->need_colorsel_update = TRUE; /* Request update of font selectors */ gapp->gui->need_fontsel_update = TRUE; clean_graph_selectors(NULL, QUARK_ETYPE_DELETE, NULL); clean_frame_selectors(NULL, QUARK_ETYPE_DELETE, NULL); return RETURN_SUCCESS; }
static int project_cb(Quark *pr, int etype, void *data) { if (etype == QUARK_ETYPE_DELETE) { GraceApp *gapp = gapp_from_quark(pr); if (pr == gproject_get_top(gapp->gp)) { gapp->gp = NULL; } } else if (etype == QUARK_ETYPE_MODIFY) { #if 0 /* TODO: */ if ((dirtystate > SOME_LIMIT) || (current_time - autosave_time > ANOTHER_LIMIT) ) { autosave(); } #endif } #ifndef NONE_GUI clean_graph_selectors(pr, etype, data); clean_frame_selectors(pr, etype, data); #endif return RETURN_SUCCESS; }