95a26c9ef09eae3c8d6290eb92712a4c7f31d9c6 hiram Tue Nov 24 12:20:03 2020 -0800 prepare for future with different track types and different item data structures refs #21980 diff --git src/hg/hgTracks/wigTrack.c src/hg/hgTracks/wigTrack.c index 488f7b1..9653a38 100644 --- src/hg/hgTracks/wigTrack.c +++ src/hg/hgTracks/wigTrack.c @@ -1426,43 +1426,46 @@ struct wigMouseOver *mouseOverData = graphPreDrawContainer(preContainer, preDrawZero, width, tg, hvg, xOff, yOff, graphUpperLimit, graphLowerLimit, graphRange, vis, wigCart); drawZeroLine(vis, wigCart->horizontalGrid, graphUpperLimit, graphLowerLimit, hvg, xOff, yOff, width, tg->lineHeight); drawArbitraryYLine(vis, (enum wiggleGridOptEnum)wigCart->yLineOnOff, graphUpperLimit, graphLowerLimit, hvg, xOff, yOff, width, tg->lineHeight, wigCart->yLineMark, graphRange, wigCart->yLineOnOff); if (enableMouseOver && mouseOverData) { - jsonWriteListStart(mouseOverJson, tg->track); + jsonWriteObjectStart(mouseOverJson, tg->track); + jsonWriteString(mouseOverJson, "t", tg->tdb->type); + jsonWriteListStart(mouseOverJson, "d"); slReverse(&mouseOverData); struct wigMouseOver *dataItem = mouseOverData; for (; dataItem; dataItem = dataItem->next) { jsonWriteObjectStart(mouseOverJson, NULL); jsonWriteNumber(mouseOverJson, "x1", (long long)dataItem->x1); jsonWriteNumber(mouseOverJson, "x2", (long long)dataItem->x2); jsonWriteDouble(mouseOverJson, "v", dataItem->value); jsonWriteNumber(mouseOverJson, "c", dataItem->valueCount); jsonWriteObjectEnd(mouseOverJson); } jsonWriteListEnd(mouseOverJson); + jsonWriteObjectEnd(mouseOverJson); slFreeList(&mouseOverData); // hidden element to pass along jsonUrl file name and also the trigger // that this track has data to display. hPrintf("
\n", tg->track, tg->track, mouseOverJsonFile->forCgi); } // Might need something like this later for other purposes // else if (enableMouseOver) // system enabled, but no data for this track // { /* signal to indicate zoom in required to see data */ // hPrintf("\n", tg->track, tg->track); // } wigMapSelf(tg, hvg, seqStart, seqEnd, xOff, yOff, width); }