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;'>&nbsp;%s</B></TD></TR>\n", sectionTitle);
+printf("<B style='font-size:%s;'>&nbsp;%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;
 }