58502ff9a4db966bdad267df1bc713fcc1b660b3
kate
  Wed Feb 6 17:47:52 2019 -0800
Cleanup regeneron features. refs #22739

diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index 692cf3b..1189eca 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -651,31 +651,31 @@
 	    slReverse(&rangeList);
 	    slReverse(&nodeList);
 
             // non-proportional fixed-width handling (e.g. GTEX)
             if (tg->nonPropPixelWidth)
                 {
                 int npWidth = tg->nonPropPixelWidth(tg, item);
 		npWidth += leftLabelSize;
                 if (npWidth > rangeWidth)
                     { // keep the first range but extend it
                     range = rangeList;
                     range->end = range->start + npWidth;
                     range->next = NULL;  // do not need the rest of the ranges
                     }
                 }
-            boolean doPadding = !cartOrTdbBoolean(cart, tg->tdb, "packDense", FALSE);
+            boolean doPadding = !cartOrTdbBoolean(cart, tg->tdb, "bedPackDense", FALSE);
 	    if (spaceSaverAddOverflowMultiOptionalPadding(
                                 ss, rangeList, nodeList, allowOverflow, doPadding) == NULL)
 		break;
 
 	    }
 	}
     spaceSaverFinish(tg->ss);
     }
 // must assign at end to get final row count
 for(tg=tgSave; tg; tg=tg->nextWindow)
     {
     tg->ss->rowCount   = ss->rowCount;
     }
 tg = tgSave;
 spaceSaverFree(&ss);
@@ -785,37 +785,32 @@
 		rows = packCountRowsOverflow(tg, floor(maxHeight/tg->lineHeight)+1, FALSE, FALSE, vis);
 	    }
 	else
 	    {
 	    rows = slCount(tg->items);
 	    }
 	break;
     case tvPack:
 	{
 	if(allowOverflow && itemCount < maxItemsToUseOverflow)
 	    rows = packCountRowsOverflow(tg, floor(maxHeight/tg->lineHeight), TRUE, allowOverflow, vis);
 	else
 	    rows = packCountRowsOverflow(tg, floor(maxHeight/tg->lineHeight)+1, TRUE, FALSE, vis);
         if (tdbIsCompositeChild(tg->tdb))
             {
-            char *centerLabelsPackOff = trackDbSetting(tg->tdb, "centerLabelsPack");
-            char *collapseEmptySubtracks = trackDbSetting(tg->tdb, "collapseEmptySubtracks");
-            boolean collapseEmpty = FALSE;
-            if (collapseEmptySubtracks && sameWord(collapseEmptySubtracks, "on"))
-                collapseEmpty = TRUE;
-            if (centerLabelsPackOff)
-                if (sameWord(centerLabelsPackOff, "off") && !collapseEmpty)
+            boolean doCollapse = doCollapseEmptySubtracks(tg);
+            if (isCenterLabelsPackOff(tg) && !doCollapse)
                 if (rows == 0)
                     rows = 1;   // compact pack mode, shows just side label
             }
 	break;
 	}
     case tvSquish:
         {
 	tg->heightPer = heightPer/2;
 	if ((tg->heightPer & 1) == 0)
 	    tg->heightPer -= 1;
 	tg->lineHeight = tg->heightPer + 1;
 	if(allowOverflow && itemCount < maxItemsToUseOverflow)
 	    rows = packCountRowsOverflow(tg, floor(maxHeight/tg->lineHeight), FALSE, allowOverflow, vis);
 	else
 	    rows = packCountRowsOverflow(tg, floor(maxHeight/tg->lineHeight)+1, FALSE, FALSE, vis);
@@ -924,101 +919,86 @@
                 vis = tvFull;
             else
                 vis = tvPack;
             }
         else if (vis == tvFull || vis == tvPack || vis == tvSquish)
             vis = tvDense;
         dyStringPrintf(dy, "&%s=%s", encodedMapName, hStringFromTv(vis));
         freeMem(encodedMapName);
         }
     }
 return dy;
 }
 
 boolean isWithCenterLabels(struct track *track)
 /* Cases: only TRUE when global withCenterLabels is TRUE
- * If track has a centerLabelDense setting 'on', then composite child has 
- * center labels in dense mode.
- * If track has centerLabelsPack setting 'off', then composite child has no
- * center labels in pack mode (instead, has left short label.
- * NOTE: if there are labels, then this should be used with labelOnFeature setting.
- */
+ * If track->tdb has a centerLabelDense setting, go with it.
+// * If composite child then no center labels in dense mode. */
 {
 if (!withCenterLabels)
+    {
     return FALSE;
-if (!track)
-    return withCenterLabels;
-
-/* NOTE: this feature may be broken.  Only used in affyTxnPhase2 track */
+    }
+if (track != NULL)
+    {
     char *centerLabelsDense = trackDbSetting(track->tdb, "centerLabelsDense");
-if (centerLabelsDense && sameWord(centerLabelsDense, "on"))
-    return TRUE;
-
-/*
-char *centerLabelsPack = trackDbSetting(track->tdb, "centerLabelsPack");
-if (centerLabelsPack && sameWord(centerLabelsPack, "off"))
+    if (centerLabelsDense)
         {
-    enum trackVisibility vis = limitVisibility(track);
-    if (vis == tvPack)
-        return FALSE;
+        return sameWord(centerLabelsDense, "on");
         }
-*/
-return TRUE;
+    }
+return withCenterLabels;
 }
 
 boolean isCenterLabelConditionallySeen(struct track *track)
 // returns FALSE if track and prevTrack have same parent, and are both dense subtracks
 {
 if (isCenterLabelConditional(track))
     {
     if (track->prevTrack
     &&  track->parent == track->prevTrack->parent
     &&  isCenterLabelConditional(track->prevTrack))
         return FALSE;
     }
 return isWithCenterLabels(track);
 }
 
 boolean isCenterLabelConditional(struct track *track)
 /* Dense subtracks and pack subtracks (when centerLabelsPack off set)
  *      show center labels depending on vis of previous track */
 {
 if (!tdbIsCompositeChild((track)->tdb))
     return FALSE;
 enum trackVisibility vis = limitVisibility(track);
 if (vis == tvFull || vis == tvSquish)
     return FALSE;
 if (vis == tvDense)
     return TRUE;
 // pack mode
-char *centerLabelsPack = trackDbSetting(track->tdb, "centerLabelsPack");
-if (centerLabelsPack)
-    return sameWord(centerLabelsPack, "off");
-return FALSE;
+return isCenterLabelsPackOff(track);
 }
 
 boolean isCenterLabelIncluded(struct track *track)
 /* Center labels may be conditionally included */
 {
 if (!isWithCenterLabels(track))
     return FALSE;
 if (theImgBox)
     return TRUE;
 if (isCenterLabelConditionallySeen(track))
     return TRUE;
 return FALSE;
-//return isWithCenterLabels(track) && (theImgBox || isCenterLabelConditionallySeen(track));
 }
 
 void mapStatusMessage(char *format, ...)
 /* Write out stuff that will cause a status message to
  * appear when the mouse is over this box. */
 {
 va_list(args);
 va_start(args, format);
 hPrintf(" TITLE=\"");
 hvPrintf(format, args);
 hPutc('"');
 va_end(args);
 }
 
 void mapBoxReinvoke(struct hvGfx *hvg, int x, int y, int width, int height,