8b16df428363748e823cc2b5a646b33466524f65 kate Thu Aug 24 13:20:50 2017 -0700 Extending maxHeight UI for barChart. refs #19872 diff --git src/hg/lib/barChartUi.c src/hg/lib/barChartUi.c index 00056f5..e6aed16 100644 --- src/hg/lib/barChartUi.c +++ src/hg/lib/barChartUi.c @@ -144,56 +144,65 @@ // Implemented, but leaving out for now (seems confusing) puts("  "); puts("Auto-scale:\n"); safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_AUTOSCALE); isAutoScale = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_AUTOSCALE_DEFAULT); cgiMakeCheckBoxWithId(cartVar, isAutoScale, cartVar); jsOnEventByIdF("change", cartVar, "barChartTransformChanged(event);"); #endif boolean isViewLimits = !isAutoScale && !isLogTransform; safef(buf, sizeof buf, "%sViewLimitsMaxLabel %s", track, !isViewLimits ? "disabled" : ""); puts("  "); printf("View limits maximum:\n", buf); safef(cartVar, sizeof(cartVar), "%s.%s", track, BAR_CHART_MAX_VIEW_LIMIT); int viewMax = cartCgiUsualInt(cart, cartVar, BAR_CHART_MAX_VIEW_LIMIT_DEFAULT); -cgiMakeIntVarWithExtra(cartVar, viewMax, 4, !isViewLimits ? "disabled" : ""); +cgiMakeIntVarWithExtra(cartVar, viewMax, 6, !isViewLimits ? "disabled" : ""); char *unit = trackDbSettingClosestToHomeOrDefault(tdb, BAR_CHART_UNIT, ""); printf(" %s (range 0-%d)\n", buf, unit, round(barChartUiMaxMedianScore(tdb))); } void barChartUiFetchMinMaxPixels(struct cart *cart, struct trackDb *tdb, int *retMin, int *retMax, int *retDefault, int *retCurrent) /* Get min/max/default/current settings for track height from cart and trackDb */ { assert(retMin && retMax && retDefault && retCurrent); cartTdbFetchMinMaxPixels(cart, tdb, - BAR_CHART_MAX_HEIGHT_MIN, BAR_CHART_MAX_HEIGHT_MAX, BAR_CHART_MAX_HEIGHT_DEFAULT, + BAR_CHART_MAX_HEIGHT_MIN, BAR_CHART_MAX_HEIGHT_MAX, + BAR_CHART_MAX_HEIGHT_DEFAULT, retMin, retMax, retDefault, retCurrent); } static void barChartUiMaxHeight(struct cart *cart, struct trackDb *tdb) /* Input box to change maximum item height */ { +char cartVar[1024]; +safef(cartVar, sizeof(cartVar), "%s.%s", tdb->track, BAR_CHART_LIMIT_HEIGHT); +boolean limitChartHeight = cartCgiUsualBoolean(cart, cartVar, BAR_CHART_LIMIT_HEIGHT_DEFAULT); +cgiMakeCheckBoxWithId(cartVar, limitChartHeight, cartVar); +jsOnEventByIdF("change", cartVar, "barChartHeightLimitChanged(event);"); + int min, max, deflt, current; barChartUiFetchMinMaxPixels(cart, tdb, &min, &max, &deflt, ¤t); -puts("Maximum height:\n"); -char cartVar[1024]; +puts("Chart height maximum:\n"); safef(cartVar, sizeof(cartVar), "%s.%s", tdb->track, HEIGHTPER); -cgiMakeIntVarWithLimits(cartVar, current, "Maximum height", 0, min, max); -printf("pixels (range: %d to %d, default: %d)", min, max, deflt); +char buf[512]; +safef(buf, sizeof buf, "%sChartLimitsMaxLabel %s", tdb->track, !limitChartHeight ? "disabled" : ""); +cgiMakeIntVarWithExtra(cartVar, current, 3, !limitChartHeight ? "disabled":""); +printf(" pixels (range: %d to %d, default: %d)", + buf, min, max, deflt); } struct barChartCategory *barChartUiGetCategories(char *database, struct trackDb *tdb) /* Get category colors and descriptions. Use barChartColors setting if present. If not, if there is a barChartBars setting, assign rainbow colors. * O/w look for a table naed track+Category, and use labels and colors there */ { struct barChartCategory *categs = NULL; char *words[BAR_CHART_MAX_CATEGORIES]; char *colorWords[BAR_CHART_MAX_CATEGORIES]; char *labels = trackDbSettingClosestToHome(tdb, BAR_CHART_CATEGORY_LABELS); char *colors = trackDbSettingClosestToHome(tdb, BAR_CHART_CATEGORY_COLORS); struct barChartCategory *categ = NULL;