721a9390a716cb5448126538993dcae82d8fc5fc
Merge parents 889acd8 340dfde
max
  Sat May 5 17:10:43 2012 -0700
fixed conflict with chins stylesheet function. A better long-term solution would be to introduce functions like addStylesheet to htmshell and keep a list of stylesheets instead of 3 diff functions
diff --cc src/lib/htmshell.c
index 7d78e39,8aaeae9..fd08ee8
--- src/lib/htmshell.c
+++ src/lib/htmshell.c
@@@ -343,55 -343,49 +343,64 @@@
  
  static char *htmlStyle =
      "<STYLE TYPE=\"text/css\">"
      ".hiddenText {background-color: silver}"
      ".normalText {background-color: white}"
      "</STYLE>\n";
  
  char *htmlStyleUndecoratedLink =
  /* Style that gets rid of underline of links. */
     "<STYLE TYPE=\"text/css\"> "
     "<!-- "
     "A {text-decoration: none} "
     "-->"
     "</STYLE>\n";
  
+ // optional style set by theme, added after main style and thus
+ // can overwrite main style settings
+ static char *htmlStyleTheme = NULL;
+ 
  void htmlSetStyle(char *style)
  /* Set document wide style. A favorite style to
   * use for many purposes is htmlStyleUndecoratedLink
   * which will remove underlines from links.
   * Needs to be called before htmlStart or htmShell. */
  {
  htmlStyle = style;
  }
  
- 
 +static char *htmlStyleSheet = NULL;
 +void htmlSetStyleSheet(char *styleSheet)
 +/* Set document wide style sheet by adding css name to HEAD part.
 + * Needs to be called before htmlStart or htmShell. */
 +{
 +htmlStyleSheet = styleSheet;
 +}
 +
 +static char *htmlFormClass = NULL;
 +void htmlSetFormClass(char *formClass)
 +/* Set class in the BODY part. */
 +{
 +htmlFormClass = formClass;
 +}
 +
+ void htmlSetStyleTheme(char *style)
+ /* Set theme style. Needs to be called before htmlStart or htmShell. */
+ {
+ htmlStyleTheme = style;
+ }
+ 
  static char *htmlBackground = NULL;
  
  void htmlSetBackground(char *imageFile)
  /* Set background - needs to be called before htmlStart
   * or htmShell. */
  {
  htmlBackground = imageFile;
  }
  
  static int htmlBgColor = 0xFFFFFF;
  boolean gotBgColor = FALSE;
  
  void htmlSetBgColor(int color)
  /* Set background color - needs to be called before htmlStart
   * or htmShell. */
@@@ -442,37 -436,34 +451,40 @@@
  #else///ifndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
      char *browserVersion;
      if (btIE == cgiClientBrowser(&browserVersion, NULL, NULL) && *browserVersion < '8')
          fputs("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">\n", f);
      else
          fputs("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">",f);
      // Strict would be nice since it fixes atleast one IE problem (use of :hover CSS pseudoclass)
      //fputs("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n",f);
  #endif///ndef TOO_TIMID_FOR_CURRENT_HTML_STANDARDS
      }
  fputs("<HTML>", f);
  fprintf(f,"<HEAD>\n%s<TITLE>%s</TITLE>\n", head, title);
  fprintf(f, "\t<META http-equiv=\"Content-Script-Type\" content=\"text/javascript\">\n");
  if (htmlStyle != NULL)
      fputs(htmlStyle, f);
 +if (htmlStyleSheet != NULL)
- fprintf(f,"<link href=\"%s\" rel=\"stylesheet\" type=\"text/css\">\n"
++    fprintf(f,"<link href=\"%s\" rel=\"stylesheet\" type=\"text/css\">\n"
 +        , htmlStyleSheet);  
+ if (htmlStyleTheme != NULL)
+     fputs(htmlStyleTheme, f);
++
  fputs("</HEAD>\n\n",f);
  fputs("<BODY",f);
 +if (htmlFormClass != NULL )
 +    fprintf(f, " CLASS=\"%s\"", htmlFormClass);
  if (htmlBackground != NULL )
      fprintf(f, " BACKGROUND=\"%s\"", htmlBackground);
  if (gotBgColor)
      fprintf(f, " BGCOLOR=\"#%X\"", htmlBgColor);
  fputs(">\n",f);
  
  htmlWarnBoxSetup(f);
  }
  
  
  void htmlStart(char *title)
  /* Write the start of an html from CGI */
  {
  puts("Content-Type:text/html");
  puts("\n");