8083235171a7227233b561a87d4950a3640ef232 tdreszer Thu Nov 11 09:57:45 2010 -0800 Added support for pennantIcon as requested by b0b. First use flagging hg18 to hg19 liftOver tracks. diff --git src/hg/lib/hui.c src/hg/lib/hui.c index 37bf0b3..c2e7782 100644 --- src/hg/lib/hui.c +++ src/hg/lib/hui.c @@ -12,30 +12,31 @@ #include "hui.h" #include "hCommon.h" #include "hgConfig.h" #include "chainCart.h" #include "chainDb.h" #include "netCart.h" #include "obscure.h" #include "wiggle.h" #include "phyloTree.h" #include "hgMaf.h" #include "udc.h" #include "customTrack.h" #include "encode/encodePeak.h" #include "mdb.h" #include "web.h" +#include "hPrint.h" static char const rcsid[] = "$Id: hui.c,v 1.297 2010/06/02 19:27:51 tdreszer Exp $"; #define SMALLBUF 128 #define MAX_SUBGROUP 9 #define ADD_BUTTON_LABEL "add" #define CLEAR_BUTTON_LABEL "clear" #define JBUFSIZE 2048 //#define PM_BUTTON "<A NAME=\"%s\"></A><A HREF=\"#%s\"><IMG height=18 width=18 onclick=\"return (setCheckBoxesThatContain('%s',%s,true,'%s','','%s') == false);\" id=\"btn_%s\" src=\"../images/%s\" alt=\"%s\"></A>\n" //#define DEF_BUTTON "<A NAME=\"%s\"></A><A HREF=\"#%s\"><IMG onclick=\"setCheckBoxesThatContain('%s',true,false,'%s','','%s'); return (setCheckBoxesThatContain('%s',false,false,'%s','_defOff','%s') == false);\" id=\"btn_%s\" src=\"../images/%s\" alt=\"%s\"></A>\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","-") #define PM_BUTTON "<IMG height=18 width=18 onclick=\"setCheckBoxesThatContain('%s',%s,true,'%s','','%s');\" id=\"btn_%s\" src=\"../images/%s\" alt=\"%s\">\n" @@ -195,31 +196,31 @@ if(sameString(mdbVar->var,"antibody") && mdbObjContains(mdbObj,"input",mdbVar->val)) continue; //#ifdef OMIT if (cvTermTypes && differentString(mdbVar->var,"tableName")) // Don't bother with tableName { struct hash *cvTerm = hashFindVal(cvTermTypes,mdbVar->var); if (cvTerm != NULL) { if(SETTING_NOT_ON(hashFindVal(cvTerm,"hidden"))) // NULL is not on { char *label=hashFindVal(cvTerm,"label"); if (label == NULL) label = mdbVar->var; char *linkOfType = controlledVocabLink(NULL,"type",mdbVar->var,label,label,NULL); char *cvDefined=hashFindVal(cvTerm,"cvDefined"); - if (cvDefined != NULL && differentWord(cvDefined,"no") && differentWord(cvDefined,"0")) + if (cvDefined != NULL && !SETTING_IS_OFF(cvDefined)) // assume setting is ON { char *linkOfTerm = controlledVocabLink(NULL,"term",mdbVar->val,mdbVar->val,mdbVar->val,NULL); dyStringPrintf(dyTable,"<tr><td align=right><i>%s:</i></td><td nowrap>%s</td></tr>",linkOfType,linkOfTerm); freeMem(linkOfTerm); } else dyStringPrintf(dyTable,"<tr><td align=right><i>%s:</i></td><td nowrap>%s</td></tr>",linkOfType,mdbVar->val); //{ // NOTE: Could just have a tool tip for these. //char *descr=cgiEncode(hashMustFindVal(cvTerm,"description")); //label = cgiEncode(label); //dyStringPrintf(dyTable,"<tr><td align=right><i title='%s'>%s:</i></td><td nowrap>%s</td></tr>",descr,label,mdbVar->val); //freeMem(descr); //freeMem(label); //} freeMem(linkOfType); @@ -6857,15 +6858,49 @@ webPrintLabelCell("Symbol"); webPrintLabelCell(label); char **row; while ((row = sqlNextRow(sr)) != NULL) { printf("</TR><TR>\n"); char *name = row[0]; char *description = row[1]; webPrintLinkCell(name); webPrintLinkCell(description); } sqlFreeResult(&sr); webPrintLinkTableEnd(); } + +boolean hPrintPennantIcon(struct trackDb *tdb) +// Returns TRUE and prints out the "pennantIcon" when found. Example: ENCODE tracks in hgTracks config list. +{ +char *setting = trackDbSetting(tdb, "pennantIcon"); +if(setting != NULL) + { + setting = cloneString(setting); + char *icon = htmlEncodeText(nextWord(&setting),FALSE); + if (setting) + { + char *url = nextWord(&setting); + if (setting) + { + char *hint = htmlEncodeText(stripEnclosingDoubleQuotes(setting),FALSE); + hPrintf("<a title='%s' href='%s' TARGET=ucscHelp><img height='16' width='16' src='../images/%s'></a>\n",hint,url,icon); + freeMem(hint); + } + else + hPrintf("<a href='%s' TARGET=ucscHelp><img height='16' width='16' src='../images/%s'></a>\n",url,icon); + freeMem(url); + } + else + hPrintf("<img height='16' width='16' src='%s'>\n",icon); + freeMem(icon); + return TRUE; + } +else if(trackDbSetting(tdb, "wgEncode") != NULL) + { + hPrintf("<a title='encode project' href='../ENCODE'><img height='16' width='16' src='../images/encodeThumbnail.jpg'></a>\n"); + return TRUE; + } +return FALSE; +}