src/hg/lib/hui.c 1.208
1.208 2009/06/02 19:13:32 tdreszer
Added support for 'allButtonPair' UI
Index: src/hg/lib/hui.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/lib/hui.c,v
retrieving revision 1.207
retrieving revision 1.208
diff -b -B -U 4 -r1.207 -r1.208
--- src/hg/lib/hui.c 29 May 2009 23:23:44 -0000 1.207
+++ src/hg/lib/hui.c 2 Jun 2009 19:13:32 -0000 1.208
@@ -4897,8 +4897,27 @@
return TRUE;
}
+static boolean hCompositeUiAllButtons(char *db, struct cart *cart, struct trackDb *parentTdb, char *formName)
+/* UI for composite tracks: all/none buttons only (as opposed to matrix or lots of buttons */
+{
+if(slCount(parentTdb->subtracks) <= 1)
+ return FALSE;
+
+if(dimensionsExist(parentTdb))
+ return FALSE;
+
+#define PM_BUTTON_GLOBAL "<A NAME='%s'></A><A HREF='#%s'><IMG height=18 width=18 onclick=\"return (subtrackCBsSetAll(%s) == false);\" id='btn_%s' src='../images/%s'></A>"
+#define BUTTON_PLUS_ALL_GLOBAL() printf(PM_BUTTON_GLOBAL, "plus_all", "plus_all", "true", "plus_all", "add_sm.gif")
+#define BUTTON_MINUS_ALL_GLOBAL() printf(PM_BUTTON_GLOBAL,"minus_all","minus_all","false","minus_all","remove_sm.gif")
+printf("<P><B>Select subtracks:</B><P>All: ");
+BUTTON_PLUS_ALL_GLOBAL();
+BUTTON_MINUS_ALL_GLOBAL();
+puts("</P>");
+return TRUE;
+}
+
static boolean hCompositeUiNoMatrix(char *db, struct cart *cart, struct trackDb *parentTdb,
char *primarySubtrack, char *formName)
/* UI for composite tracks: subtrack selection. This is the default UI
without matrix controls. */
@@ -5080,12 +5099,14 @@
viewsOnly = TRUE;
}
if(!viewsOnly)
{
- if (!hasSubgroups || !isMatrix || primarySubtrack)
+ if(trackDbSettingOn(tdb, "allButtonPair"))
+ hCompositeUiAllButtons(db, cart, tdb, formName);
+ else if (!hasSubgroups || !isMatrix || primarySubtrack)
hCompositeUiNoMatrix(db, cart,tdb,primarySubtrack,formName);
else
- hCompositeUiByMatrix(db, cart,tdb,formName);
+ hCompositeUiByMatrix(db, cart, tdb, formName);
}
cartSaveSession(cart);
cgiContinueHiddenVar("g");
if (displayAll)