672d35a053738c40cd6fc026e1d10a109c102f37
braney
  Wed Aug 31 15:58:17 2022 -0700
remove some of the multiwig options for sequence logo tracks

diff --git src/hg/lib/hui.c src/hg/lib/hui.c
index bdbc419..a160a29 100644
--- src/hg/lib/hui.c
+++ src/hg/lib/hui.c
@@ -5809,33 +5809,34 @@
 freeMem(typeLine);
 
 wigFetchTransformFuncWithCart(cart,tdb,name, &transformFunc);
 wigFetchAlwaysZeroWithCart(cart,tdb,name, &alwaysZero);
 wigFetchHorizontalGridWithCart(cart,tdb,name, &horizontalGrid);
 wigFetchAutoScaleWithCart(cart,tdb,name, &autoScale);
 wigFetchGraphTypeWithCart(cart,tdb,name, &lineBar);
 wigFetchWindowingFunctionWithCart(cart,tdb,name, &windowingFunction);
 wigFetchSmoothingWindowWithCart(cart,tdb,name, &smoothingWindow);
 wigFetchYLineMarkWithCart(cart,tdb,name, &yLineMarkOnOff);
 wigFetchYLineMarkValueWithCart(cart,tdb,name, &yLineMark);
 boolean doNegative = wigFetchDoNegativeWithCart(cart,tdb,tdb->track, (char **) NULL);
 
 printf("<TABLE BORDER=0>");
 
+boolean isLogo = ((tdb->parent != NULL) && trackDbSetting(tdb->parent, "logo") != NULL);
 boolean parentLevel = isNameAtParentLevel(tdb, name);
 boolean didAggregate = FALSE;
-if (parentLevel)
+if (parentLevel && !isLogo)
     {
     assert(tdb->parent != NULL);
     char *aggregate = trackDbSetting(tdb->parent, "aggregate");
     if (aggregate != NULL && parentLevel)
         {
         char *aggregateVal = cartOrTdbString(cart, tdb->parent, "aggregate", NULL);
         safef(option, sizeof(option), "%s.%s", name, AGGREGATE);
         if (isCustomComposite(tdb))
             {
             printf("<TR valign=center><th align=right>Merge method:</th><td align=left>");
             aggregateExtraDropDown(option, aggregateVal);
             }
         else
             {
             printf("<TR valign=center><th align=right>Overlay method:</th><td align=left>");
@@ -5861,105 +5862,116 @@
         */
 
         printf("<TR valign=center><th align=right>Missing data treatment:</th><td align=left>");
         char *missingMethodVal = cartOrTdbString(cart, tdb->parent, "missingMethod", NULL);
         boolean missingIsZero = (missingMethodVal == NULL) ||  differentString(missingMethodVal, "missing");
         char buffer[1024];
         safef(buffer, sizeof buffer, "%s.missingMethod",name);
 
         cgiMakeOnEventRadioButtonWithClass(buffer, "zero", missingIsZero, "allOrOnly", "click", NULL);
         puts("missing is zero&nbsp;&nbsp;");
         cgiMakeOnEventRadioButtonWithClass(buffer, "missing", !missingIsZero, "allOrOnly", "click", NULL);
         printf("math with missing values is missing</B>");
         }
     }
 
+if (!isLogo)
+    {
     printf("<TR valign=center><th align=right>Type of graph:</th><td align=left>");
     safef( option, sizeof(option), "%s.%s", name, LINEBAR );
     wiggleGraphDropDown(option, lineBar);
     if (boxed)
         {
         printf("</td><td align=right colspan=2>");
         printf("<A HREF=\"%s\" TARGET=_blank>Graph configuration help</A>",WIGGLE_HELP_PAGE);
         }
     puts("</td></TR>");
+    }
 
 printf("<TR valign=center><th align=right>Track height:</th><td align=left colspan=3>");
 safef(option, sizeof(option), "%s.%s", name, HEIGHTPER );
 cgiMakeIntVarWithLimits(option, defaultHeight, "Track height",0, minHeightPixels, maxHeightPixels);
 printf("pixels&nbsp;(range: %d to %d)",
        minHeightPixels, maxHeightPixels);
 puts("</TD></TR>");
 
 printf("<TR valign=center><th align=right>Data view scaling:</th><td align=left colspan=3>");
 safef(option, sizeof(option), "%s.%s", name, AUTOSCALE );
 if (tdb->parent || tdb->subtracks)
     wiggleScaleDropDownParent(option, autoScale);
 else
     wiggleScaleDropDown(option, autoScale);
 wiggleScaleDropDownJavascript(name);
+
+if (!isLogo)
+    {
     safef(option, sizeof(option), "%s.%s", name, ALWAYSZERO);
     printf("Always include zero:&nbsp");
     wiggleAlwaysZeroDropDown(option, alwaysZero);
     puts("</TD></TR>");
+    }
 
 printf("<TR class=\"%sAutoScaleDesc\" valign=center><th align=right>Vertical viewing range:</th>"
        "<td align=left>&nbsp;min:&nbsp;", name);
 safef(option, sizeof(option), "%s.%s", name, MIN_Y );
 cgiMakeDoubleVarWithLimits(option, minY, "Range min", 0, NO_VALUE, NO_VALUE);
 printf("</td><td align=leftv colspan=2>max:&nbsp;");
 safef(option, sizeof(option), "%s.%s", name, MAX_Y );
 cgiMakeDoubleVarWithLimits(option, maxY, "Range max", 0, NO_VALUE, NO_VALUE);
 if (!isCustomComposite(tdb))
     printf("&nbsp;(range: %g to %g)",
            tDbMinY, tDbMaxY);
 puts("</TD></TR>");
 
 printf("<TR valign=center><th align=right>Transform function:</th><td align=left>");
 safef(option, sizeof(option), "%s.%s", name, TRANSFORMFUNC);
 printf("Transform data points by:&nbsp");
 wiggleTransformFuncDropDown(option, transformFunc);
 
+if (!isLogo)
+    {
     printf("<TR valign=center><th align=right>Windowing function:</th><td align=left>");
     safef(option, sizeof(option), "%s.%s", name, WINDOWINGFUNCTION );
     wiggleWindowingDropDown(option, windowingFunction);
 
     printf("<th align=right>Smoothing window:</th><td align=left>");
     safef(option, sizeof(option), "%s.%s", name, SMOOTHINGWINDOW );
     wiggleSmoothingDropDown(option, smoothingWindow);
     puts("&nbsp;pixels</TD></TR>");
 
     printf("<th align=right>Negate values:</th><td align=left>");
     safef(option, sizeof(option), "%s.%s", name, DONEGATIVEMODE );
     cgiMakeCheckBox(option, doNegative);
 
     printf("<TR valign=center><td align=right><b>Draw y indicator lines:</b>"
            "<td align=left colspan=2>");
     printf("at y = 0.0:");
     safef(option, sizeof(option), "%s.%s", name, HORIZGRID );
     wiggleGridDropDown(option, horizontalGrid);
     printf("&nbsp;&nbsp;&nbsp;at y =");
     safef(option, sizeof(option), "%s.%s", name, YLINEMARK );
     cgiMakeDoubleVarInRange(option, yLineMark, "Indicator at Y", 0, NULL, NULL);
     safef(option, sizeof(option), "%s.%s", name, YLINEONOFF );
     wiggleYLineMarkDropDown(option, yLineMarkOnOff);
     printf("</td>");
+    }
 if (boxed)
     puts("</TD></TR></TABLE>");
 else
     {
     puts("</TD></TR></TABLE>");
+    if (!isLogo)
         printf("<A HREF=\"%s\" TARGET=_blank>Graph configuration help</A>",WIGGLE_HELP_PAGE);
     }
 
 // add a little javascript call to make sure we don't get whiskers with stacks in multiwigs
 
 if (didAggregate)
     jsInlineF("$(function () { multiWigSetupOnChange('%s'); });\n", name);
 
 cfgEndBox(boxed);
 }
 
 
 void filterButtons(char *filterTypeVar, char *filterTypeVal, boolean none)
 /* Put up some filter buttons. */
 {