2bef4507d310c57d5462683dec8ad46b11f2a7e7
kate
  Tue Mar 3 15:16:55 2020 -0800
Minor tweaks to compositeHideEmptySubtracks (new syntax). refs #23365

diff --git src/hg/inc/hui.h src/hg/inc/hui.h
index 6d8bb23..b57a7d5 100644
--- src/hg/inc/hui.h
+++ src/hg/inc/hui.h
@@ -971,30 +971,44 @@
  * non-NULL, don't allow it to be cleared and only offer subtracks
  * that have the same type.  If fakeSubmit is non-NULL, add a hidden
  * var with that name so it looks like it was pressed. */
 
 char *compositeGroupLabel(struct trackDb *childTdb, char *group, char *id);
 /* Given ID from group, return corresponding label,  looking through parent's subGroupN's */
 
 char *compositeGroupId(struct trackDb *tdb, char *group, char *id);
 /* Given label, return id,  looking through parent's subGroupN's */
 
 char *compositeLabelWithVocabLink(char *db,struct trackDb *parentTdb, struct trackDb *childTdb,
 	char *vocabType, char *label);
 /* If the parentTdb has an ENCODE controlledVocabulary setting and the vocabType is found,
    then label will be wrapped with the link to display it.  Return string is cloned. */
 
+boolean compositeHideEmptySubtracksSetting(struct trackDb *tdb, boolean *retDefault,
+                                        char **retMultiBedFile, char **retSubtrackIdFile);
+/* Parse hideEmptySubtracks settings
+ * Format:  hideEmptySubtracks on|off
+ *      Optional index files for performance:
+ *          hideEmptySubtracksMultiBedUrl multiBed.bigBed 
+ *          hideEmptySubtracksSourceUrl subtrackIds.tab
+ * MultiBed.bed is a bed3Sources bigBed, generated with UCSC tool trackDbIndexBb
+ *              (for single view subtracks, can use bedtools multiinter
+ *              post-processed by UCSC multiBed.pl tool)
+ *      subtrackIds.tab is a tab-sep file: id subtrackName
+ *
+ * Return TRUE if setting is present.  retDefault is TRUE if set to 'on', o/w FALSE
+*/
 
 boolean compositeHideEmptySubtracks(struct cart *cart, struct trackDb *tdb,
                                         char **retMultiBedFile, char **retSubtrackIdFile);
 /* Parse hideEmptySubtracks setting and check cart
  * Return TRUE if we should hide empties
  */
 
 boolean compositeChildHideEmptySubtracks(struct cart *cart, struct trackDb *childTdb,
                                         char **retMultiBedFile, char **retSubtrackIdFile);
 /* Parse hideEmptySubtracks setting and check cart
  * Return TRUE if we should hide empties
  */
 
 char *wgEncodeVocabLink(char *file,char *term,char *value,char *title, char *label,char *suffix);
 // returns allocated string of HTML link to ENCODE controlled vocabulary term