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");