da557cba79eca09b909b3921c80e192147df2d60 max Tue Aug 18 21:27:43 2015 -0700 fixing mouse overs in extTools, refs #15113 diff --git src/hg/hgTracks/menu.c src/hg/hgTracks/menu.c index 281f99a..aa3d5a4 100644 --- src/hg/hgTracks/menu.c +++ src/hg/hgTracks/menu.c @@ -34,35 +34,36 @@ static void appendLink(struct hotLink **links, char *url, char *name, char *id, boolean external) { // append to list of links for later printing and/or communication with javascript client struct hotLink *link; AllocVar(link); link->name = cloneString(name); link->url = cloneString(url); link->id = cloneString(id); link->external = external; link->inactive = FALSE; slAddTail(links, link); } static void appendLinkMaybeInactive(struct hotLink **links, char *url, char *name, char *id, - boolean external, boolean inactive) + char *mouseOver, boolean external, boolean inactive) { appendLink(links, url, name, id, external); struct hotLink *le = slLastEl(links); le->inactive=inactive; +le->mouseOver=mouseOver; } static void printEnsemblAnchor(char *database, char* archive, char *chrName, int start, int end, struct hotLink **links) /* Print anchor to Ensembl display on same window. */ { char *scientificName = hScientificName(database); char *dir = ensOrgNameFromScientificName(scientificName); struct dyString *ensUrl; char *name; int localStart, localEnd; name = chrName; if (sameWord(scientificName, "Takifugu rubripes")) @@ -156,32 +157,35 @@ int i = 0; struct hotLink *link = NULL; for(i = 0, link = links; link != NULL; i++, link = link->next) { char class[100]; if(i == 0) safef(class, sizeof(class), "first"); else if (i + 1 == len) safef(class, sizeof(class), "last"); else class[0] = 0; dyStringAppend(menuHtml, "name); if(*class) dyStringPrintf(menuHtml, " class='%s'", class); - dyStringPrintf(menuHtml, ">%s\n", link->url, - link->id, link->mouseOver, link->external ? " TARGET='_blank'" : "", encodedName); + dyStringPrintf(menuHtml, ">url); + if (link->mouseOver) + dyStringPrintf(menuHtml, "title='%s' ", link->mouseOver); + dyStringPrintf(menuHtml, "id='%s'%s>%s\n", link->id, + link->external ? " TARGET='_blank'" : "", encodedName); freez(&encodedName); freez(&link->name); freez(&link->url); freez(&link->id); } slFreeList(links); } static void addSendToMenuItems(struct dyString *viewMenu, char* uiVars) /* add the "send to" menu to the "viewMenu" dyString */ { struct hotLink *viewLinks = NULL; char url[4096]; @@ -206,31 +210,31 @@ safef(url, sizeof(url), "hgTracks?%s&hgt.redirectTool=%s", uiVars, et->tool); boolean inactive = FALSE; if (et->maxSize!=0) { inactive = TRUE; if (et->maxSize>1000) safef(label, sizeof(label), "%s (< %d kbp)", et->shortLabel, et->maxSize/1000); else safef(label, sizeof(label), "%s (< %d bp)", et->shortLabel, et->maxSize); } else safef(label, sizeof(label), "%s", et->shortLabel); - appendLinkMaybeInactive(&viewLinks, url, label, et->longLabel, TRUE, inactive); + appendLinkMaybeInactive(&viewLinks, url, label, "extTool", et->longLabel, TRUE, inactive); } freeLinksAndConvert(viewLinks, viewMenu); } void printMenuBar() /* Put up the special menu bar for hgTracks. */ { struct hotLink *links = NULL; struct sqlConnection *conn = NULL; if (!trackHubDatabase(database)) conn = hAllocConn(database); char *menuStr, buf[4096], uiVars[1024]; safef(uiVars, sizeof(uiVars), "%s=%s", cartSessionVarName(), cartSessionId(cart));