29b78700ce9441917d27e5ac88eea7d4576051c6 tdreszer Thu Nov 17 17:22:30 2011 -0800 More plus/minus button stylings diff --git src/hg/lib/hui.c src/hg/lib/hui.c index ec2ebf6..f77cdc5 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -31,40 +31,44 @@ #include "regexHelper.h" #include "vcfUi.h" #include "vcf.h" #include "errCatch.h" #include "samAlignment.h" #include "makeItemsItem.h" #include "bedDetail.h" #include "pgSnp.h" #define SMALLBUF 128 #define MAX_SUBGROUP 9 #define ADD_BUTTON_LABEL "add" #define CLEAR_BUTTON_LABEL "clear" #define JBUFSIZE 2048 -//#define PM_BUTTON "\"%s\"\n" -//#define DEF_BUTTON "\"%s\"\n" -//#define DEFAULT_BUTTON(nameOrId,anc,beg,contains) printf(DEF_BUTTON,(anc),(anc),(nameOrId), (beg),(contains),(nameOrId),(beg),(contains),(anc),"defaults_sm.png","default") -//#define PLUS_BUTTON(nameOrId,anc,beg,contains) printf(PM_BUTTON, (anc),(anc),(nameOrId),"true", (beg),(contains),(anc),"add_sm.gif", "+") -//#define MINUS_BUTTON(nameOrId,anc,beg,contains) printf(PM_BUTTON, (anc),(anc),(nameOrId),"false",(beg),(contains),(anc),"remove_sm.gif","-") +#ifdef SUBTRACK_CFG +#define BUTTON_PM "%s" +#define BUTTON_DEF "default" +#define DEFAULT_BUTTON(nameOrId,anc,beg,contains) printf(BUTTON_DEF,(nameOrId), (beg),(contains),(nameOrId),(beg),(contains)) +#define PLUS_BUTTON(nameOrId,anc,beg,contains) printf(BUTTON_PM, (nameOrId),"true", (beg),(contains),"+") +#define MINUS_BUTTON(nameOrId,anc,beg,contains) printf(BUTTON_PM, (nameOrId),"false",(beg),(contains),"-") +#else///ifndef SUBTRACK_CFG #define PM_BUTTON "\"%s\"\n" #define DEF_BUTTON "\"%s\"\n" #define DEFAULT_BUTTON(nameOrId,anc,beg,contains) printf(DEF_BUTTON,(nameOrId), (beg),(contains),(nameOrId),(beg),(contains),(anc),"defaults_sm.png","default") #define PLUS_BUTTON(nameOrId,anc,beg,contains) printf(PM_BUTTON, (nameOrId),"true", (beg),(contains),(anc),"add_sm.gif", "+") #define MINUS_BUTTON(nameOrId,anc,beg,contains) printf(PM_BUTTON, (nameOrId),"false",(beg),(contains),(anc),"remove_sm.gif","-") +#endif///ndef SUBTRACK_CFG struct trackDb *wgEncodeDownloadDirKeeper(char *db, struct trackDb *tdb, struct hash *trackHash) /* Look up through self and parents, looking for someone responsible for handling * where the downloads are. */ { if (!tdbIsDownloadsOnly(tdb) && !sameString(tdb->table, tdb->track) && trackHash) { tdb = hashFindVal(trackHash, tdb->table); if (tdb == NULL) errAbort("Can't find track for table %s in wgEncodeDownloadDirKeeper", tdb->table); } return trackDbTopLevelSelfOrParent(tdb); } static char *htmlStringForDownloadsLink(char *database, struct trackDb *tdb,char *name,boolean nameIsFile, @@ -5678,33 +5682,33 @@ int numberPerRow; boolean lineBreakJustPrinted; char trackName[255]; char query[256]; char **row; struct sqlConnection *conn; struct sqlResult *sr; char *words[MAX_SP_SIZE]; int defaultOffSpeciesCnt = 0; if(cartOptionalString(cart, "ajax") == NULL) jsIncludeFile("utils.js",NULL); //jsInit(); puts("\n

Species selection: "); +cgiContinueHiddenVar("g"); PLUS_BUTTON( "id", "plus_pw","cb_maf_","_maf_"); MINUS_BUTTON("id","minus_pw","cb_maf_","_maf_"); -cgiContinueHiddenVar("g"); char prefix[512]; safef(prefix, sizeof prefix, "%s.", name); char *defaultOffSpecies = trackDbSetting(tdb, "speciesDefaultOff"); struct hash *offHash = NULL; if (defaultOffSpecies) { offHash = newHash(5); DEFAULT_BUTTON( "id", "default_pw","cb_maf_","_maf_"); int wordCt = chopLine(defaultOffSpecies, words); defaultOffSpeciesCnt = wordCt; /* build hash of species that should be off */ int ii; for(ii=0; ii < wordCt; ii++) @@ -6324,55 +6328,55 @@ const char * cvTerm = metadataFindValue(childTdb,cvSetting); if(cvTerm != NULL) { char *link = controlledVocabLink(words[0],(sameWord(cvSetting,"antibody")?"target":"term"),(char *)cvTerm,(char *)cvTerm,rootLabel,suffix); return link; } } } } freeMem(words[0]); freeMem(rootLabel); return cloneString(label); } #ifdef SUBTRACK_CFG -#define DIV_BUTTON "

%s
" +#define BUTTON_MAT "%s" #else///ifndef SUBTRACK_CFG #define PM_BUTTON_UC "" #endif///def SUBTRACK_CFG #define MATRIX_RIGHT_BUTTONS_AFTER 8 #define MATRIX_BOTTOM_BUTTONS_AFTER 20 static void buttonsForAll() { #ifdef SUBTRACK_CFG -printf(DIV_BUTTON,"true", "", "", "", "+"); -printf(DIV_BUTTON,"false","", "", "", "-"); +printf(BUTTON_MAT,"true", "", "", "", "+"); +printf(BUTTON_MAT,"false","", "", "", "-"); #else///ifndef SUBTRACK_CFG printf(PM_BUTTON_UC,"true", "", "", "", "", "", "plus_all", "add_sm.gif"); printf(PM_BUTTON_UC,"false","", "", "", "", "", "minus_all", "remove_sm.gif"); #endif///ndef SUBTRACK_CFG } static void buttonsForOne(char *name,char *class,boolean vertical) { #ifdef SUBTRACK_CFG -printf(DIV_BUTTON, "true", ",'", class, "'", "+"); +printf(BUTTON_MAT, "true", ",'", class, "'", "+"); if (vertical) puts("
"); -printf(DIV_BUTTON, "false", ",'", class, "'", "-"); +printf(BUTTON_MAT, "false", ",'", class, "'", "-"); #else///ifndef SUBTRACK_CFG printf(PM_BUTTON_UC, "true", ",'", class, "'", "", "", name, "add_sm.gif"); if (vertical) puts("
"); printf(PM_BUTTON_UC, "false", ",'", class, "'", "", "", name, "remove_sm.gif"); #endif///ndef SUBTRACK_CFG } #define MATRIX_SQUEEZE 10 #ifdef MATRIX_SQUEEZE static int matrixSqueeze(membersForAll_t* membersForAll) // Returns non-zero if the matrix will be squeezed. Non-zero is actually squeezedLabelHeight { char *browserVersion; if (btIE == cgiClientBrowser(&browserVersion, NULL, NULL) && *browserVersion < '9') @@ -6730,37 +6734,39 @@ { webIncludeResourceFile("ui.dropdownchecklist.css"); jsIncludeFile("ui.dropdownchecklist.js",NULL); jsIncludeFile("ddcl.js",NULL); } cgiDown(0.7); printf("Filter subtracks %sby: (select multiple %sitems - %s)
\n", (membersForAll->members[dimX] != NULL || membersForAll->members[dimY] != NULL ? "further ":""), (membersForAll->dimMax == dimA?"":"categories and "),FILTERBY_HELP_LINK); printf("\n"); // Do All [+][-] buttons if(membersForAll->members[dimX] == NULL && membersForAll->members[dimY] == NULL) // No matrix { +#ifdef SUBTRACK_CFG + // TODO: Test when a real world case actually calls this. Currently no trackDb.ra cases exist + #define PM_BUTTON_FILTER_COMP "" +#else///ifndef SUBTRACK_CFG #define PM_BUTTON_FILTER_COMP "" +#endif///ndef SUBTRACK_CFG printf("\n"); } // Now make a filterComp box for each ABC dimension int dimIx=dimA; for(dimIx=dimA;dimIxdimMax;dimIx++) { //printf("
All:
"); printf(PM_BUTTON_FILTER_COMP,"true", "plus_fc",'+'); printf(PM_BUTTON_FILTER_COMP,"false","minus_fc",'-'); - //#define PM_BUTTON2_FILTER_COMP "" - //printf(PM_BUTTON2_FILTER_COMP,"true", "plus_fc", "add_sm.gif"); - //printf(PM_BUTTON2_FILTER_COMP,"false","minus_fc","remove_sm.gif"); printf("
%s:\n",labelWithVocabLinkForMultiples(db,parentTdb,membersForAll->members[dimIx])); printf("%s:
\n",labelWithVocabLinkForMultiples(db,parentTdb,membersForAll->members[dimIx])); #ifdef FILTER_COMPOSITE_OPEN_SIZE int fullSize = membersForAll->members[dimIx]->count; #ifdef FILTER_COMPOSITE_ONLYONE if(membersForAll->members[dimIx]->fcType != fctOneOnly) #endif///def FILTER_COMPOSITE_ONLYONE @@ -7018,33 +7024,39 @@ // If any filter additional filter composites, they can be added at the end. compositeUiByFilter(db, cart, parentTdb, formName); return TRUE; } static boolean compositeUiAllButtons(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 (trackDbCountDescendantLeaves(parentTdb) <= 1) return FALSE; if(dimensionsExist(parentTdb)) return FALSE; +#ifdef SUBTRACK_CFG +#define BUTTON_ALL "%s" +#define BUTTON_PLUS_ALL_GLOBAL() printf(BUTTON_ALL,"true", "+") +#define BUTTON_MINUS_ALL_GLOBAL() printf(BUTTON_ALL,"false","-") +#else///ifndef SUBTRACK_CFG #define PM_BUTTON_GLOBAL "" #define BUTTON_PLUS_ALL_GLOBAL() printf(PM_BUTTON_GLOBAL,"true", "plus_all", "add_sm.gif") #define BUTTON_MINUS_ALL_GLOBAL() printf(PM_BUTTON_GLOBAL,"false","minus_all","remove_sm.gif") +#endif///ndef SUBTRACK_CFG BUTTON_PLUS_ALL_GLOBAL(); BUTTON_MINUS_ALL_GLOBAL(); puts(" Select all subtracks
"); return TRUE; } static boolean compositeUiNoMatrix(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. */ { int i, j, k; char *words[SMALLBUF]; char option[SMALLBUF]; int wordCnt;