static void autorange_bysets(Quark **sets, int nsets, int autos_type) { Quark *gr; world w; double xmax, xmin, ymax, ymin; int scale; if (autos_type == AUTOSCALE_NONE || nsets <= 0) { return; } gr = get_parent_graph(sets[0]); graph_get_world(gr, &w); if (graph_get_type(gr) == GRAPH_SMITH) { if (autos_type == AUTOSCALE_X || autos_type == AUTOSCALE_XY) { w.xg1 = -1.0; w.yg1 = -1.0; } if (autos_type == AUTOSCALE_Y || autos_type == AUTOSCALE_XY) { w.xg2 = 1.0; w.yg2 = 1.0; } graph_set_world(gr, &w); return; } xmin = w.xg1; xmax = w.xg2; ymin = w.yg1; ymax = w.yg2; if (autos_type == AUTOSCALE_XY) { getsetminmax(sets, nsets, &xmin, &xmax, &ymin, &ymax); } else if (autos_type == AUTOSCALE_X) { getsetminmax_c(sets, nsets, &xmin, &xmax, &ymin, &ymax, 2); } else if (autos_type == AUTOSCALE_Y) { getsetminmax_c(sets, nsets, &xmin, &xmax, &ymin, &ymax, 1); } if (autos_type == AUTOSCALE_X || autos_type == AUTOSCALE_XY) { scale = graph_get_xscale(gr); round_axis_limits(&xmin, &xmax, scale); w.xg1 = xmin; w.xg2 = xmax; } if (autos_type == AUTOSCALE_Y || autos_type == AUTOSCALE_XY) { scale = graph_get_yscale(gr); round_axis_limits(&ymin, &ymax, scale); w.yg1 = ymin; w.yg2 = ymax; } graph_set_world(gr, &w); }
void update_graph_ui(GraphUI *ui, Quark *q) { if (q && quark_fid_get(q) == QFlavorGraph) { char buf[32]; world w; GLocator *locator; graph_get_world(q, &w); locator = graph_get_locator(q); SetOptionChoice(ui->graph_type, graph_get_type(q)); SetToggleButtonState(ui->stacked, graph_is_stacked(q)); SetToggleButtonState(ui->flip_xy, graph_get_xyflip(q)); sprintf(buf, "%.9g", w.xg1); xv_setstr(ui->start_x, buf); sprintf(buf, "%.9g", w.xg2); xv_setstr(ui->stop_x, buf); SetOptionChoice(ui->scale_x, graph_get_xscale(q)); SetToggleButtonState(ui->invert_x, graph_is_xinvert(q)); sprintf(buf, "%.9g", w.yg1); xv_setstr(ui->start_y, buf); sprintf(buf, "%.9g", w.yg2); xv_setstr(ui->stop_y, buf); SetOptionChoice(ui->scale_y, graph_get_yscale(q)); SetToggleButtonState(ui->invert_y, graph_is_yinvert(q)); sprintf(buf, "%g", graph_get_znorm(q)); xv_setstr(ui->znorm, buf); SetSpinChoice(ui->bargap, graph_get_bargap(q)); SetToggleButtonState(ui->fixedp, locator->pointset); SetOptionChoice(ui->loc_type, locator->type); SetFormatChoice(ui->loc_fx, &locator->fx); SetFormatChoice(ui->loc_fy, &locator->fy); sprintf(buf, "%g", locator->origin.x); xv_setstr(ui->locx, buf); sprintf(buf, "%g", locator->origin.y); xv_setstr(ui->locy, buf); } }
char *q_labeling(Quark *q) { Grace *grace = grace_from_quark(q); char *buf; tickmarks *t; DObject *o; region *r; if (!q) { return NULL; } buf = xmalloc(strlen(QIDSTR(q)) + 128); if (!buf) { return NULL; } switch (quark_fid_get(q)) { case QFlavorProject: sprintf(buf, "Project \"%s%s\"", QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; case QFlavorSSD: sprintf(buf, "SpreadSheet \"%s%s\"", QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; case QFlavorFrame: sprintf(buf, "Frame \"%s%s\"", QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; case QFlavorGraph: sprintf(buf, "Graph \"%s%s\" (type: %s)", QIDSTR(q), quark_dirtystate_get(q) ? "*":"", graph_types(grace, graph_get_type(q))); break; case QFlavorSet: sprintf(buf, "Set \"%s%s\" (%s)", QIDSTR(q), quark_dirtystate_get(q) ? "*":"", set_types(grace, set_get_type(q))); break; case QFlavorAGrid: t = axisgrid_get_data(q); sprintf(buf, "%c AGrid \"%s%s\"", t->type == AXIS_TYPE_X ? 'X':'Y', QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; case QFlavorAxis: t = axisgrid_get_data(q); sprintf(buf, "Axis \"%s%s\"", QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; case QFlavorDObject: o = object_get_data(q); sprintf(buf, "%s \"%s%s\"", object_type_descr(grace, o->type), QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; case QFlavorAText: sprintf(buf, "AText \"%s%s\"", QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; case QFlavorRegion: r = region_get_data(q); sprintf(buf, "Region \"%s%s\" (%d pts)", QIDSTR(q), quark_dirtystate_get(q) ? "*":"", r->n); break; default: sprintf(buf, "??? \"%s%s\"", QIDSTR(q), quark_dirtystate_get(q) ? "*":""); break; } return buf; }