5b781b52f5a5a8bc99d2635641719f04cf2ecd08 angie Mon Jun 3 12:43:25 2013 -0700 Adjustable font size for collapsible sections. diff --git src/hg/lib/jsHelper.c src/hg/lib/jsHelper.c index 4f392a7..9bbe544 100644 --- src/hg/lib/jsHelper.c +++ src/hg/lib/jsHelper.c @@ -421,61 +421,69 @@ { char *regExs[] = {"<script\\s*>[^<]*</script\\s*>", "<script[^>]*>" // handles case where they have an un-closed script tag with a src attribute }; int i; str = cloneString(str); for(i=0;i<ArraySize(regExs);i++) { char *tmp = str; str = stripRegEx(str, regExs[i], REG_ICASE); freeMem(tmp); } return str; } -void jsBeginCollapsibleSection(struct cart *cart, char *track, char *section, char *sectionTitle, - boolean isOpenDefault) +void jsBeginCollapsibleSectionFontSize(struct cart *cart, char *track, char *section, + char *sectionTitle, boolean isOpenDefault, char *fontSize) /* Make the hidden input, collapse/expand button and <TR id=...> needed for utils.js's * setTableRowVisibility(). Caller needs to have already created a <TABLE> and <FORM>. */ { char collapseGroupVar[512]; safef(collapseGroupVar, sizeof(collapseGroupVar), "%s.section_%s_close", track, section); boolean isOpen = !cartUsualBoolean(cart, collapseGroupVar, !isOpenDefault); // Both plus button and title are now in same <TD> // but still colspan=2 because we are lib code and callers own the table. printf("<TR><TD colspan=2 style='text-align:left;'>\n"); printf("<input type='hidden' name='%s' id='%s' value='%s'>\n", collapseGroupVar, collapseGroupVar, isOpen ? "0" : "1"); #ifdef BUTTONS_BY_CSS hPrintf("<span class='pmButton bigBlue' onclick=\"setTableRowVisibility(this, '%s', " "'%s.section', 'section', true)\" id='%s_button' title='%s this section'>%c</span>", section, track, section, (isOpen ? "Collapse": "Expand"), (isOpen ? '-' : '+')); #else///ifndef BUTTONS_BY_CSS char *buttonImage = (isOpen ? "../images/remove_sm.gif" : "../images/add_sm.gif"); printf("<IMG height='18' width='18' " "onclick=\"return setTableRowVisibility(this, '%s', '%s.section', 'section', true);\" " "id='%s_button' src='%s' alt='%s' title='%s this section' class='bigBlue'" " style='cursor:pointer;'>\n", section, track, section, buttonImage, (isOpen ? "-" : "+"), (isOpen ? "Collapse": "Expand")); #endif///ndef BUTTONS_BY_CSS -printf("<B style='font-size:larger;'> %s</B></TD></TR>\n", sectionTitle); +printf("<B style='font-size:%s;'> %s</B></TD></TR>\n", fontSize, sectionTitle); printf("<TR %sid='%s-%d'><TD colspan=2>", isOpen ? "" : "style='display: none' ", section, 1); } +void jsBeginCollapsibleSection(struct cart *cart, char *track, char *section, char *sectionTitle, + boolean isOpenDefault) +/* Make the hidden input, collapse/expand button and <TR id=...> needed for utils.js's + * setTableRowVisibility(). Caller needs to have already created a <TABLE> and <FORM>. */ +{ +jsBeginCollapsibleSectionFontSize(cart, track, section, sectionTitle, isOpenDefault, "larger"); +} + void jsEndCollapsibleSection() /* End the collapsible <TR id=...>. */ { puts("</TD></TR>"); } static struct jsonElement *newJsonElement(jsonElementType type) // generic constructor for a jsonElement; callers fill in the appropriate value { struct jsonElement *ele; AllocVar(ele); ele->type = type; return ele; }