15e1169d1ba4e318b78a89bf0e09bbc1d033d950 braney Mon Aug 24 13:09:18 2020 -0700 first cut at Franklin display #25405 diff --git src/hg/hgTracks/lollyTrack.c src/hg/hgTracks/lollyTrack.c index b54610d..b22b7ee 100644 --- src/hg/hgTracks/lollyTrack.c +++ src/hg/hgTracks/lollyTrack.c @@ -1,247 +1,306 @@ /* lollyTrack -- load and draw lollys */ /* Copyright (C) 2019 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "common.h" #include "obscure.h" #include "hgTracks.h" #include "bedCart.h" #include "bigWarn.h" #include "lolly.h" #include "limits.h" #include "float.h" #include "bigBedFilter.h" -#define LOLLY_DIAMETER 2 * lollyCart->radius +#define LOLLY_DIAMETER 2 * (lollyCart->radius + 2) struct lolly { struct lolly *next; char *name; /* the mouseover name */ double val; /* value in the data file */ unsigned start; /* genomic start address */ unsigned end; /* genomic end address */ unsigned radius; /* radius of the top of the lolly */ unsigned height; /* height of the lolly */ Color color; /* color of the lolly */ }; static unsigned getLollyColor( struct hvGfx *hvg, unsigned color) /* Get the device color from our internal definition. */ { struct rgbColor itemRgb; itemRgb.r = (color & 0xff0000) >> 16; itemRgb.g = (color & 0xff00) >> 8; itemRgb.b = color & 0xff; return hvGfxFindColorIx(hvg, itemRgb.r, itemRgb.g, itemRgb.b); } +void doYLabels(struct track *tg, struct hvGfx *hvg, int width, int height, struct lollyCartOptions *lollyCart, int xOff, int yOff, Color color, MgFont *font, boolean doLabels ) +/* Draw labels or lines for labels. */ +{ +double range = lollyCart->upperLimit - lollyCart->lowerLimit; +int fontHeight = tl.fontHeight+1; +// we need a margin on top and bottom for half a lolly, and some space at the bottom +// for the lolly stems +double minimumStemHeight = fontHeight; +double topAndBottomMargins = LOLLY_DIAMETER / 2 + LOLLY_DIAMETER / 2; +double usableHeight = height - topAndBottomMargins - minimumStemHeight; +yOff += LOLLY_DIAMETER / 2; + +struct hashEl *hel = trackDbSettingsLike(tg->tdb, "yLabel*"); +// parse lines like yLabel