28b81ac23fab9b082b07a022146b6f73bcfb29b1
braney
Sun Sep 1 10:52:24 2013 -0700
double oops... need snakeUi.c too, obvs
diff --git src/hg/lib/snakeUi.c src/hg/lib/snakeUi.c
new file mode 100644
index 0000000..a3690b7
--- /dev/null
+++ src/hg/lib/snakeUi.c
@@ -0,0 +1,65 @@
+/* snakeUi - Snake Format user interface controls that are shared
+ * between more than one CGI. */
+
+#include "common.h"
+#include "cheapcgi.h"
+#include "errCatch.h"
+#include "hCommon.h"
+#include "hui.h"
+#include "jsHelper.h"
+#include "snakeUi.h"
+
+
+static void showSnpWidthCfg(struct cart *cart, struct trackDb *tdb,
+ char *name, boolean parentLevel)
+{
+unsigned showSnpWidth = cartOrTdbInt(cart, tdb,
+ SNAKE_SHOW_SNP_WIDTH, SNAKE_DEFAULT_SHOW_SNP_WIDTH);
+
+printf("Maximum window size in which to show mismatches: \n");
+
+char varName[1024];
+safef(varName, sizeof(varName), "%s." SNAKE_SHOW_SNP_WIDTH, name);
+cgiMakeIntVar(varName, showSnpWidth, 10);
+puts("
");
+}
+
+static char *colorByOptionLabels[] =
+ {
+ SNAKE_COLOR_BY_STRAND_LABEL,
+ SNAKE_COLOR_BY_CHROM_LABEL,
+ SNAKE_COLOR_BY_NONE_LABEL,
+ };
+
+static char *colorByOptionValues[] =
+ {
+ SNAKE_COLOR_BY_STRAND_VALUE,
+ SNAKE_COLOR_BY_CHROM_VALUE,
+ SNAKE_COLOR_BY_NONE_VALUE,
+ };
+
+static void colorByCfg(struct cart *cart, struct trackDb *tdb,
+ char *name, boolean parentLevel)
+{
+char *colorBy = cartOrTdbString(cart, tdb,
+ SNAKE_COLOR_BY, SNAKE_DEFAULT_COLOR_BY);
+
+printf("Block coloring method:\n");
+
+char varName[1024];
+safef(varName, sizeof(varName), "%s." SNAKE_COLOR_BY, name);
+cgiMakeDropListFull(varName, colorByOptionLabels,
+ colorByOptionValues,
+ ArraySize(colorByOptionLabels),
+ colorBy, NULL);
+puts("
");
+}
+
+void snakeCfgUi(struct cart *cart, struct trackDb *tdb, char *name, char *title, boolean boxed)
+{
+boolean parentLevel = isNameAtParentLevel(tdb, name);
+
+showSnpWidthCfg(cart, tdb, name, parentLevel);
+colorByCfg(cart, tdb, name, parentLevel);
+}
+