htmldoc: add the ability to choose the skin
skinselector hidden when JS is disabled or when printed
This commit is contained in:
parent
deed88bed4
commit
e39a8a55a9
@ -1234,7 +1234,7 @@ doxygen:
|
||||
|
||||
htmldoc: $(GENERATEDOCBIN)
|
||||
$(MKDIR) ../doc/html
|
||||
$(CP) ../share/grafx2/skins/skin_classic.png ../doc/html
|
||||
$(CP) $(filter ../share/grafx2/skins/skin%.png,$(SKIN_FILES)) ../doc/html
|
||||
$(GENERATEDOCBIN) ../doc/html
|
||||
|
||||
print-%:
|
||||
|
||||
@ -38,6 +38,16 @@
|
||||
|
||||
static T_Toolbar_button Buttons[NB_BUTTONS];
|
||||
|
||||
/// available skins
|
||||
const char * const skins[] = {
|
||||
"classic",
|
||||
"modern",
|
||||
"DPaint",
|
||||
"scenish",
|
||||
"Aurora",
|
||||
NULL
|
||||
};
|
||||
|
||||
///
|
||||
/// Export the help to HTML files
|
||||
static int Export_help(const char * path);
|
||||
@ -186,6 +196,7 @@ static const char * Export_help_table(FILE * f, unsigned int page)
|
||||
fprintf(f, "<title>%s</title>\n", title);
|
||||
fprintf(f, "<meta charset=\"ISO8859-1\">\n");
|
||||
fprintf(f, "<link rel=\"stylesheet\" href=\"grafx2.css\" />\n");
|
||||
fprintf(f, "<script type=\"text/javascript\" src=\"grafx2.js\"></script>\n");
|
||||
fprintf(f, "</head>\n");
|
||||
|
||||
fprintf(f, "<body>\n");
|
||||
@ -199,7 +210,7 @@ static const char * Export_help_table(FILE * f, unsigned int page)
|
||||
fprintf(f, "<a href=\"grafx2_%02d.html\">Next</a>\n", page + 1);
|
||||
fprintf(f, "</td></tr></table>");
|
||||
fprintf(f, "</div>\n");
|
||||
fprintf(f, "<div class=\"help\">");
|
||||
fprintf(f, "<div class=\"help skin skin_classic\">");
|
||||
for (index = 0; index < length; index++)
|
||||
{
|
||||
if (table[index].Line_type == '-')
|
||||
@ -326,9 +337,21 @@ static int Export_help(const char * path)
|
||||
fprintf(findex, "<title>GrafX2 Help</title>\n");
|
||||
fprintf(findex, "<meta charset=\"ISO8859-1\">\n");
|
||||
fprintf(findex, "<link rel=\"stylesheet\" href=\"grafx2.css\" />\n");
|
||||
fprintf(findex, "<noscript>\n"); /* hide the skin selector when JS is disabled */
|
||||
fprintf(findex, " <style>.skinselector { display: none; }</style>\n");
|
||||
fprintf(findex, "</noscript>\n");
|
||||
fprintf(findex, "<script type=\"text/javascript\" src=\"grafx2.js\"></script>\n");
|
||||
fprintf(findex, "</head>\n");
|
||||
|
||||
fprintf(findex, "<body>\n");
|
||||
fprintf(findex, "<div class=\"skin skin_classic\">\n");
|
||||
fprintf(findex, "<div class=\"skinselector\">\n");
|
||||
fprintf(findex, "Choose your skin :\n");
|
||||
for (i = 0; skins[i] != NULL; i++)
|
||||
{
|
||||
fprintf(findex, "<a href=\"javascript:choose_skin('%s');\">%s</a>\n", skins[i], skins[i]);
|
||||
}
|
||||
fprintf(findex, "</div>\n");
|
||||
fprintf(findex, "<div class=\"button\" style=\"width: 231px; height: 56px; ");
|
||||
fprintf(findex, "background-position: 0px -336px;\"></div>");
|
||||
fprintf(findex, "<ul>\n");
|
||||
@ -357,6 +380,7 @@ static int Export_help(const char * path)
|
||||
fprintf(findex, "</li>\n");
|
||||
}
|
||||
fprintf(findex, "</ul>\n");
|
||||
fprintf(findex, "</div>\n");
|
||||
fprintf(findex, "</body>\n");
|
||||
fclose(findex);
|
||||
|
||||
@ -370,10 +394,60 @@ static int Export_help(const char * path)
|
||||
fprintf(f, "}\n");
|
||||
fprintf(f, "div.button {\n");
|
||||
fprintf(f, "display: inline-block;\n");
|
||||
fprintf(f, "background-image: url(\"skin_classic.png\");\n");
|
||||
fprintf(f, "width: 16px;\n");
|
||||
fprintf(f, "height: 16px;\n");
|
||||
fprintf(f, "}\n");
|
||||
for (i = 0; skins[i] != NULL; i++)
|
||||
{
|
||||
fprintf(f, ".skin_%s .button {\n", skins[i]);
|
||||
fprintf(f, "background-image: url(\"skin_%s.png\");\n", skins[i]);
|
||||
fprintf(f, "}\n");
|
||||
}
|
||||
fprintf(f, "@media print {\n");
|
||||
fprintf(f, " .skinselector {\n");
|
||||
fprintf(f, " display: none;\n");
|
||||
fprintf(f, " }\n");
|
||||
fprintf(f, " body {\n");
|
||||
fprintf(f, " -webkit-print-color-adjust: exact; /*Chrome, Safari */\n");
|
||||
fprintf(f, " color-adjust: exact; /*Firefox*/\n");
|
||||
fprintf(f, " }\n");
|
||||
fprintf(f, "}\n");
|
||||
fclose(f);
|
||||
}
|
||||
|
||||
snprintf(filename, sizeof(filename), "%s/grafx2.js", path);
|
||||
f = fopen(filename, "w");
|
||||
if (f != NULL)
|
||||
{
|
||||
fprintf(f, "function setCookie(cname, cvalue) {\n"
|
||||
" document.cookie = cname + '=' + cvalue /*+ ';path=/'*/;\n"
|
||||
"}\n");
|
||||
fprintf(f, "function getCookie(cname) {\n"
|
||||
" var name = cname + '=';\n"
|
||||
" var ca = decodeURIComponent(document.cookie).split(';');\n"
|
||||
" for (var i = 0; i < ca.length; i++) {\n"
|
||||
" var c = ca[i];\n"
|
||||
" while (c.charAt(0) == ' ') c = c.substring(1);\n"
|
||||
" if (c.indexOf(name) == 0) {\n"
|
||||
" return c.substring(name.length);\n"
|
||||
" }\n"
|
||||
" }\n"
|
||||
" return '';\n"
|
||||
"}\n");
|
||||
fprintf(f, "function change_skin(newskin) {\n"
|
||||
" var elts = document.getElementsByClassName('skin');\n"
|
||||
" for (var i = 0; i < elts.length; i++) {\n"
|
||||
" elts[0].className = elts[0].className.replace(/skin_.*/, newskin);\n"
|
||||
" }\n"
|
||||
"}\n");
|
||||
fprintf(f, "function choose_skin(skin) {\n"
|
||||
" setCookie('skin', skin);\n"
|
||||
" change_skin('skin_' + skin);\n"
|
||||
"}\n");
|
||||
fprintf(f, "window.onload = function () {\n"
|
||||
" var skin = getCookie('skin');\n"
|
||||
" if (skin != '') choose_skin(skin);\n"
|
||||
"}\n");
|
||||
fclose(f);
|
||||
}
|
||||
return 0;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user