3032095fbd5dafc5cc96d4ba375e215c9a7bd745
kate
  Tue Jan 30 16:27:15 2018 -0800
Change dotted lines to dashed for better visibility. Suggestion by JK. refs #17512

diff --git src/hg/hgTracks/interactTrack.c src/hg/hgTracks/interactTrack.c
index 222a187..3e0afb9 100644
--- src/hg/hgTracks/interactTrack.c
+++ src/hg/hgTracks/interactTrack.c
@@ -193,37 +193,36 @@
             }
         else
             {
             height = otherHeight/2;
             yOffOther = yOff + sameHeight;
             }
         yPos = yOffOther + height;
 
         // draw the foot
         hvGfxLine(hvg, sx - sFootWidth, yOffOther, sx + sFootWidth, yOffOther, color);
 
         // draw the vertical
         if (sameString(inter->chrom, inter->sourceChrom))
             hvGfxLine(hvg, sx, yOffOther, sx, yPos, color);
         else
-            hvGfxDottedLine(hvg, sx, yOffOther, sx, yPos, color);
+            hvGfxDottedLine(hvg, sx, yOffOther, sx, yPos, color, TRUE);
         if (tg->visibility == tvFull)
             {
             // add map box to foot
             char *nameBuf = (inter->chromStart == inter->sourceStart ?      
                             inter->sourceName : inter->targetName);
-uglyf("foot name: %s. ", nameBuf);
             mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, 
                             sx - sFootWidth, yOffOther, sFootWidth * 2, 4,
                             tg->track, itemBuf, nameBuf, NULL, TRUE, NULL);
 
             // add map box to vertical
             mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, sx - 2, yOffOther, 4, height,
                                    tg->track, itemBuf, statusBuf, NULL, TRUE, NULL);
             if (doOtherLabels)
                 {
                 safef(buffer, sizeof buffer, "%s", sameString(inter->chrom, inter->sourceChrom) ?
                                             inter->targetChrom : inter->sourceChrom);
                 hvGfxTextCentered(hvg, sx, yPos + 2, 4, 4, MG_BLUE, font, buffer);
                 int width = vgGetFontStringWidth(hvg->vg, font, buffer);
 
                 // add mapBox to label
@@ -245,105 +244,105 @@
 
     double interWidth = e - s;
     int peakHeight = (sameHeight - 15) * ((double)interWidth / maxWidth) + 10;
     int peak = yOff + peakHeight;
     if (tg->visibility == tvDense)
         peak = yOff + tg->height;
 
     if (sOnScreen)
         {
         // draw foot of lower region
         hvGfxLine(hvg, sx - sFootWidth, yOff, sx + sFootWidth, yOff, color);
         // draw vertical
         if (!eOnScreen || draw == DRAW_LINE)
             {
             if (inter->chromStart == inter->targetStart)
-                hvGfxDottedLine(hvg, sx, yOff, sx, peak, color);
+                hvGfxDottedLine(hvg, sx, yOff, sx, peak, color, TRUE);
             else
                 hvGfxLine(hvg, sx, yOff, sx, peak, color);
             }
         }
     if (eOnScreen)
         {
         // draw foot of upper region
         hvGfxLine(hvg, ex - eFootWidth, yOff, ex + eFootWidth, yOff, color);
 
         // draw vertical
         if (!sOnScreen || draw == DRAW_LINE)
             {
             if (inter->chromStart == inter->targetStart)
-                hvGfxDottedLine(hvg, ex, yOff, ex, peak, color);
+                hvGfxDottedLine(hvg, ex, yOff, ex, peak, color, TRUE);
             else
                 hvGfxLine(hvg, ex, yOff, ex, peak, color);
             }
         }
     if (tg->visibility == tvFull)
         {
         char *nameBuf = NULL;
         if (sOnScreen)
             {
             /* add mapbox to lower region */
             nameBuf = (inter->chromStart == inter->sourceStart ?      
                             inter->sourceName : inter->targetName);
             mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, 
                             sx - sFootWidth, yOff, sFootWidth * 2, 4,
                             tg->track, itemBuf, nameBuf, NULL, TRUE, NULL);
             }
         if (eOnScreen)
             {
             /* add mapbox to upper region */
             nameBuf = (inter->chromEnd == inter->targetEnd ?      
                             inter->targetName : inter->sourceName);
             mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, 
                             ex - eFootWidth, yOff, eFootWidth * 2, 4,
                             tg->track, itemBuf, nameBuf, NULL, TRUE, NULL);
             }
         if (sOnScreen && eOnScreen && draw != DRAW_LINE)
             {
-            boolean isDotted = (inter->sourceStart > inter->targetStart);
+            boolean isDashed = (inter->sourceStart > inter->targetStart);
             if (draw == DRAW_CURVE)
                 {
                 int peakX = ((ex - sx + 1) / 2) + sx;
                 int peakY = peak + 30;
-                hvGfxCurve(hvg, sx, yOff, peakX, peakY, ex, yOff, color, isDotted);
+                hvGfxCurve(hvg, sx, yOff, peakX, peakY, ex, yOff, color, isDashed);
                 // map box on peak
                 // FIXME: not working
                 /*mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd,
                                     peakX - 2, peakY - 2, 4, 4,
                                     tg->track, itemBuf, statusBuf, NULL, TRUE, NULL);
 */
                 }
             else if (draw == DRAW_ELLIPSE)
                 {
                 int yLeft = yOff + peakHeight;
                 int yTop = yOff - peakHeight;
-                hvGfxEllipseDraw(hvg, sx, yLeft, ex, yTop, color, ELLIPSE_BOTTOM, isDotted);
+                hvGfxEllipseDraw(hvg, sx, yLeft, ex, yTop, color, ELLIPSE_BOTTOM, isDashed);
                 // map box on peak
                 // FIXME: not working
                 /*mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd,
                                     sx - sFootWidth - 2, yOff + peakHeight, 4, 4,
                                     tg->track, itemBuf, statusBuf, NULL, TRUE, NULL);
 */
                 }
             }
         else
             {
             // draw link horizontal line between regions (dense mode just shows feet ??)
             unsigned ePeak = eOnScreen ? ex : xOff + width;
             unsigned sPeak = sOnScreen ? sx : xOff;
             if (inter->sourceStart > inter->targetStart)
-                hvGfxDottedLine(hvg, sPeak, peak, ePeak, peak, color);
+                hvGfxDottedLine(hvg, sPeak, peak, ePeak, peak, color, TRUE);
             else
                 hvGfxLine(hvg, sPeak, peak, ePeak, peak, color);
 
             // map box on horizontal line
             mapBoxHgcOrHgGene(hvg, s, e, sPeak, peak-2, ePeak - sPeak, 4,
                                tg->track, itemBuf, statusBuf, NULL, TRUE, NULL);
 
             // map boxes on verticals
             if (sOnScreen)
                 mapBoxHgcOrHgGene(hvg, s, e, sx - 2, yOff, 4, peak - yOff,
                                        tg->track, itemBuf, statusBuf, NULL, TRUE, NULL);
             if (eOnScreen)
                 mapBoxHgcOrHgGene(hvg, s, e, ex - 2, yOff, 4, peak - yOff,
                                        tg->track, itemBuf, statusBuf, NULL, TRUE, NULL);
             }