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:&nbsp;");
+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)