d3f9b9ecf2a6d30bd8f97566f72e5650982c308d
kent
  Mon Dec 13 15:22:03 2021 -0800
Adding hgTracks display of merged bar charts.

diff --git src/hg/inc/barChartUi.h src/hg/inc/barChartUi.h
index e3d63b4..8789be3 100644
--- src/hg/inc/barChartUi.h
+++ src/hg/inc/barChartUi.h
@@ -1,22 +1,26 @@
 /* barChart track UI */
 
 /* Copyright (C) 2015 The Regents of the University of California 
  * See kent/LICENSE or http://genome.ucsc.edu/license/ for licensing information. */
 #ifndef BAR_CHARTUI_H
 #define BAR_CHARTUI_H
 
+#ifndef FACETEDTABLE_H
+#include "facetedTable.h"
+#endif /* FACETEDTABLE_H */
+
 /* Color scheme */
 #define BAR_CHART_COLORS                     "colorScheme"
 #define BAR_CHART_COLORS_RAINBOW             "rainbow"
 
 /* Color scheme from user */
 #define BAR_CHART_COLORS_USER                "user"
 #define BAR_CHART_COLORS_DEFAULT             BAR_CHART_COLORS_USER
 
 /* Data transform */
     // WARNING: this also appears in JS
 #define BAR_CHART_LOG_TRANSFORM              "logTransform"
 #define BAR_CHART_LOG_TRANSFORM_DEFAULT      TRUE
 
 /* Data range and viewing limits */
 #define BAR_CHART_MAX_LIMIT                  "maxLimit"
@@ -77,31 +81,34 @@
     "uint   score;       \"Score from 0-1000; derived from total median all categories (log-transformed and scaled)\"\n" \
     "char[1] strand;     \"+ or - for strand\"\n" \
     "uint expCount;      \"Number of categories\"\n" \
     "float[expCount] expScores; \"Comma separated list of category values\"\n" \
     ")\n"
 
 double barChartCurViewMax(struct cart *cart, char *trackName, struct trackDb *tdb);
 /* Look up max value to scale for this bar chart - consults both cart and trackDb defaults. */
 
 boolean barChartIsLogTransformed(struct cart *cart, char *trackName, struct trackDb *tdb);
 /* Return TRUE if bar chart needs to be log transformed */
 
 double barChartUiMaxMedianScore();
 /* Max median score, for scaling */
 
-struct barChartCategory *barChartUiGetCategories(char *database, struct trackDb *tdb);
-/* Get category colors and descriptions.  
- * If barChartLabel setting contains label list, assign rainbow colors.
- * O/w look for a table naed track+Category, and use labels and colors there */
+struct barChartCategory *barChartUiGetCategories(char *database, struct trackDb *tdb,
+    struct facetedTableMergedOffset *mergeList);
+/* Get category colors and descriptive labels.  If mergeList is non-NULL gets it from there,else
+   use labels in tab-sep file specified by barChartCategoryUrl setting, o/w in barChartBars setting.
+   If colors are not specified via barChartColors setting or second column in category file,
+   assign rainbow colors.  Colors are specified as #fffff or r,g,b  or html color name) */
 
 struct barChartCategory *barChartUiGetCategoryById(int id, char *database, 
-                                                        struct trackDb *tdb);
+			       struct trackDb *tdb, struct facetedTableMergedOffset *mergeList);
 /* Get category info by id */
 
-char *barChartUiGetCategoryLabelById(int id, char *database, struct trackDb *tdb);
+char *barChartUiGetCategoryLabelById(int id, char *database, 
+			       struct trackDb *tdb, struct facetedTableMergedOffset *mergeList);
 /* Get label for a category id */
 
 char *barChartUiGetLabel(char *database, struct trackDb *tdb);
 /* Get label for category list */
 
 #endif /* BAR_CHARTUI_H */