7bc24686024ec14d351ab208b5179ab251d7c463
tdreszer
  Fri Oct 14 16:34:15 2011 -0700
Major work on bedFilt, psl and wigMaf to make them properly composite ready.
diff --git src/hg/inc/hui.h src/hg/inc/hui.h
index 54d1442..3beb128 100644
--- src/hg/inc/hui.h
+++ src/hg/inc/hui.h
@@ -818,42 +818,42 @@
 
 char *rosettaExonEnumToString(enum rosettaExonOptEnum x);
 /* Convert from enum to string representation of exon types. */
 
 void rosettaExonDropDown(char *var, char *curVal);
 /* Make drop down of exon type options. */
 
 
 /****** Some stuff for mRNA and EST related controls *******/
 
 struct mrnaFilter
 /* Info on one type of mrna filter. */
    {
    struct  mrnaFilter *next;	/* Next in list. */
    char *label;	  /* Filter label. */
-   char *key;     /* Suffix of cgi variable holding search pattern. */
+   char *suffix;  /* Suffix of cgi variable holding search pattern. */
    char *table;	  /* Associated table to search. */
    char *pattern; /* Pattern to find. */
    int mrnaTableIx;	/* Index of field in mrna table. */
    struct hash *hash;  /* Hash of id's in table that match pattern */
    };
 
 struct mrnaUiData
 /* Data for mrna-specific user interface. */
    {
-   char *filterTypeVar;	/* cgi variable that holds type of filter. */
-   char *logicTypeVar;	/* cgi variable that indicates logic. */
+   char *filterTypeSuffix; /* cgi variable suffix that holds type of filter. */
+   char *logicTypeSuffix;  /* cgi variable suffix that indicates logic. */
    struct mrnaFilter *filterList;	/* List of filters that can be applied. */
    };
 
 struct mrnaUiData *newBedUiData(char *track);
 /* Make a new  in extra-ui data structure for a bed. */
 
 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) */
@@ -993,35 +993,38 @@
 #define _NO                "No"
 #define _LIMITS            "Limits"
 #define _MIN               "Min"
 #define _MAX               "Max"
 #define _BY_RANGE          "ByRange"
 #define  SCORE_MIN         "scoreMin"
 #define  GRAY_LEVEL_SCORE_MIN SCORE_MIN
 #define  MIN_GRAY_LEVEL  "minGrayLevel"
 
 void filterButtons(char *filterTypeVar, char *filterTypeVal, boolean none);
 /* Put up some filter buttons. */
 
 void radioButton(char *var, char *val, char *ourVal);
 /* Print one radio button */
 
-void oneMrnaFilterUi(struct controlGrid *cg, char *text, char *var, struct cart *cart);
+void oneMrnaFilterUi(struct controlGrid *cg, struct trackDb *tdb, char *text, char *var, char *suffix, struct cart *cart);
 /* Print out user interface for one type of mrna filter. */
 
-void bedUi(struct trackDb *tdb, struct cart *cart, char *title, boolean boxed);
-/* Put up UI for an bed track with filters. */
+void bedFiltCfgUi(struct cart *cart, struct trackDb *tdb, char *prefix, char *title, boolean boxed);
+/* Put up UI for an "bedFilter" tracks. */
+
+void mrnaCfgUi(struct cart *cart, struct trackDb *tdb, char *prefix, char *title, boolean boxed);
+/* Put up UI for an mRNA (or EST) track. */
 
 boolean bedScoreHasCfgUi(struct trackDb *tdb);
 // Confirms that this track has a bedScore Cfg UI
 
 void scoreCfgUi(char *db, struct cart *cart, struct trackDb *parentTdb, char *name,char *title,int maxScore,boolean boxed);
 /* Put up UI for filtering bed track based on a score */
 
 void crossSpeciesCfgUi(struct cart *cart, struct trackDb *tdb);
 // Put up UI for selecting rainbow chromosome color or intensity score.
 
 void pslCfgUi(char *db, struct cart *cart, struct trackDb *parentTdb, char *prefix ,char *title, boolean boxed);
 /* Put up UI for psl tracks */
 
 void netAlignCfgUi(char *db, struct cart *cart, struct trackDb *parentTdb, char *prefix ,char *title, boolean boxed);
 /* Put up UI for net tracks */