0f483165e902359c81642c1ab20aed49ea96f272
tdreszer
  Fri Dec 10 09:21:38 2010 -0800
Split compositeUiSubtracks into hgTrackUi vs hgTable versions.  Remade subtrack list using the new 'sortable' table methods.  Remade makeTrackHashWithComposites to take in/out for tdbList, enabling few rebuilds of this list.
diff --git src/hg/inc/hui.h src/hg/inc/hui.h
index c883114..c41319e 100644
--- src/hg/inc/hui.h
+++ src/hg/inc/hui.h
@@ -837,37 +837,35 @@
 
 struct mrnaUiData *newMrnaUiData(char *track, boolean isXeno);
 /* Make a new  in extra-ui data structure for mRNA. */
 
 struct trackNameAndLabel
 /* Store track name and label. */
    {
    struct trackNameAndLabel *next;
    char *name;	/* Name (not allocated here) */
    char *label; /* Label (not allocated here) */
    };
 
 int trackNameAndLabelCmp(const void *va, const void *vb);
 /* Compare to sort on label. */
 
-struct hash *makeTrackHashWithComposites(char *database, char *chrom,
-                                        bool withComposites);
-/* Make hash of trackDb items for this chromosome, optionally includingc
-   omposites, not just the subtracks. */
-
-struct hash *makeTrackHash(char *database, char *chrom);
-/* Make hash of trackDb items for this chromosome. */
+struct hash *trackHashMakeWithComposites(char *db,char *chrom,struct trackDb **tdbList,bool withComposites);
+// Make hash of trackDb items for this chromosome, including composites, not just the subtracks.
+// May pass in prepopulated trackDb list, or may receive the trackDb list as an inout.
+#define makeTrackHashWithComposites(db,chrom,withComposites) trackHashMakeWithComposites(db,chrom,NULL,withComposites)
+#define makeTrackHash(db,chrom,FALSE) trackHashMakeWithComposites(db,chrom,NULL,FALSE)
 
 char *genePredDropDown(struct cart *cart, struct hash *trackHash,
                                         char *formName, char *varName);
 /* Make gene-prediction drop-down().  Return track name of
  * currently selected one.  Return NULL if no gene tracks. */
 
 /****** Stuff for acembly related options *******/
 
 enum acemblyOptEnum {
     acemblyAll =0,
     acemblyMain=1,
     acemblyPutative=2,
 };
 
 enum acemblyOptEnum acemblyStringToEnum(char *string);