43f042236ce180b8e0712d43c8baabc4ad8df1cd max Sat Jul 25 18:21:54 2026 -0700 hgTracks: add compactPack mode and codon strand-direction arrows When zoomed to codon-coloring level, draw strand-direction chevrons across the exons (white over coding codons when too small to label, contrasting color over UTRs), and a per-codon arrow between amino-acid letters via drawScaledBoxWithText. Add a compactPack trackDb setting for shorter pack/squish rows and a small squish-mode codon font. Adds mgFontForCellHeight() to memgfx and enables compactPack on the JASPAR track. diff --git src/hg/hgTracks/hgTracks.h src/hg/hgTracks/hgTracks.h index 94c978a7b61..05eb0c1b3be 100644 --- src/hg/hgTracks/hgTracks.h +++ src/hg/hgTracks/hgTracks.h @@ -587,30 +587,31 @@ extern int leftLabelWidth; /* Width of area to draw left labels on. */ extern boolean withLeftLabels; /* Display left labels? */ extern boolean withCenterLabels; /* Display center labels? */ extern boolean withGuidelines; /* Display guidelines? */ extern boolean withNextExonArrows; /* Display next exon navigation buttons near center labels? */ extern boolean withExonNumbers; /* Display exon and intron numbers in mouseOver instead of item name */ extern struct hvGfx *hvgSide; // An extra pointer to side label image that can be built if needed extern int seqBaseCount; /* Number of bases in sequence. */ extern int winBaseCount; /* Number of bases in window. */ extern float basesPerPixel; /* bases covered by a pixel; a measure of zoom */ extern boolean zoomedToBaseLevel; /* TRUE if zoomed so we can draw bases. */ extern boolean zoomedToCodonLevel; /* TRUE if zoomed so we can print codon text in genePreds*/ extern boolean zoomedToCodonNumberLevel; /* TRUE if zoomed so we can print codons and exon number text in genePreds*/ extern boolean zoomedToCdsColorLevel; /* TRUE if zoomed so we cancolor each codon*/ +extern boolean baseColorDrawCodonArrows; /* Draw a strand chevron on each codon box? Off in squish. */ extern char *ctFileName; /* Custom track file. */ extern struct customTrack *ctList; /* Custom tracks. */ extern struct slName *browserLines; /* Custom track "browser" lines. */ extern int rulerMode; /* on, off, full */ extern boolean withLeftLabels; /* Display left labels? */ extern boolean withCenterLabels; /* Display center labels? */ extern boolean withPriorityOverride; /* enable track reordering? */ extern boolean revCmplDisp; /* reverse-complement display */ extern boolean measureTiming; /* Flip this on to display timing * stats on each track at bottom of page. */ extern struct hash *hgFindMatches; /* The matches found by hgFind that should be highlighted. */ extern boolean hgFindMatchesShowHighlight; /* For use with pdf mode which suppresses label highlight */