mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 06:05:58 -06:00
266 lines
7.1 KiB
C++
266 lines
7.1 KiB
C++
#include "www.h"
|
|
|
|
HtmlTag HtmlLine()
|
|
{
|
|
return HtmlRow() / HtmlCell();
|
|
}
|
|
|
|
HtmlTag HtmlPara()
|
|
{
|
|
return HtmlTag("p");
|
|
}
|
|
|
|
HtmlTag HtmlCourier(int size)
|
|
{
|
|
return HtmlTag("span")
|
|
.Attr("style", Format("font-size: %dpt; font-family: monospace;", size));
|
|
}
|
|
|
|
HtmlTag HtmlArial(int size)
|
|
{
|
|
return HtmlTag("span")
|
|
.Attr("style", Format("font-size: %dpt; font-family: sans-serif;", size));
|
|
}
|
|
|
|
HtmlTag HtmlRoman(int size)
|
|
{
|
|
return HtmlTag("span")
|
|
.Attr("style", Format("font-size: %dpt; font-family: serif;", size));
|
|
}
|
|
|
|
HtmlTag HtmlCourier()
|
|
{
|
|
return HtmlTag("span").Attr("style", "font-family: monospace;");
|
|
}
|
|
|
|
HtmlTag HtmlArial()
|
|
{
|
|
return HtmlTag("span").Attr("style", "font-family: sans-serif;");
|
|
}
|
|
|
|
HtmlTag HtmlRoman()
|
|
{
|
|
return HtmlTag("span").Attr("style", "font-family: serif;");
|
|
}
|
|
|
|
HtmlTag HtmlFntSize(int size)
|
|
{
|
|
return HtmlTag("span").Attr("style", Format("font-size: %dpt", size));
|
|
}
|
|
|
|
String HtmlFontStyle(Font f, Font base)
|
|
{
|
|
String style;
|
|
if(f.GetFace() != base.GetFace())
|
|
switch(f.GetFace()) {
|
|
case Font::ARIAL: style = "font-family:sans-serif;"; break;
|
|
case Font::ROMAN: style = "font-family:serif;"; break;
|
|
case Font::COURIER: style = "font-family:monospace;"; break;
|
|
}
|
|
if(f.GetHeight() != base.GetHeight())
|
|
style << Format("font-size:%dpt;", f.GetHeight() * 72 / 600);
|
|
if(f.IsBold() != base.IsBold())
|
|
style << (f.IsBold() ? "font-weight:bold;" : "font-weight:normal;");
|
|
if(f.IsItalic() != base.IsItalic())
|
|
style << (f.IsItalic() ? "font-style:italic;" : "font-style:normal;");
|
|
if(f.IsUnderline() != base.IsUnderline())
|
|
style << (f.IsUnderline() ? "text-decoration:underline;" : "text-decoration:none;");
|
|
return style;
|
|
}
|
|
|
|
String HtmlFontStyle(Font f)
|
|
{
|
|
String style;
|
|
switch(f.GetFace()) {
|
|
case Font::ARIAL: style = "font-family:sans-serif;"; break;
|
|
case Font::ROMAN: style = "font-family:serif;"; break;
|
|
case Font::COURIER: style = "font-family:monospace;"; break;
|
|
}
|
|
style << Format("font-size:%dpt;", f.GetHeight() * 72 / 600);
|
|
style << (f.IsBold() ? "font-weight:bold;" : "font-weight:normal;");
|
|
style << (f.IsItalic() ? "font-style:italic;" : "font-style:normal;");
|
|
style << (f.IsUnderline() ? "text-decoration:underline;" : "text-decoration:none;");
|
|
return style;
|
|
}
|
|
|
|
Htmls Header()
|
|
{
|
|
return HtmlPackedTable().Width(-100) /
|
|
(HtmlRow() / (
|
|
HtmlCell() / (HtmlLink("index.html") / HtmlSingleTag("IMG").Src("logo.gif").Border(0)) +
|
|
HtmlCell().Bottom().Right() / HtmlArial(12).Color(LtBlue) / HtmlBold() / HtmlItalic() /
|
|
""
|
|
));
|
|
}
|
|
|
|
Htmls BarSection(const char *txt)
|
|
{
|
|
Htmls bar;
|
|
bar.Br();
|
|
bar << HtmlPackedTable().BgColor(LtGray).Width(-100) /
|
|
(HtmlRow() / (
|
|
HtmlCell().Width(10) / " " +
|
|
HtmlCell() / HtmlArial(8) / HtmlBold() / txt +
|
|
HtmlCell().Width(10) / " "
|
|
));
|
|
return bar;
|
|
}
|
|
|
|
Htmls BarLink(const char *link, const char *text)
|
|
{
|
|
Htmls bar;
|
|
bar << HtmlPackedTable().Width(-100) /
|
|
(HtmlRow() / (
|
|
HtmlCell().Width(12) / " " +
|
|
HtmlCell() / HtmlArial(10) / HtmlLink(link) / text +
|
|
HtmlCell().Width(10) / " "
|
|
));
|
|
return bar;
|
|
}
|
|
|
|
HtmlTag HtmlPadding(int p)
|
|
{
|
|
return HtmlTable().Width(-100).Border(0).CellPadding(p).CellSpacing(0) /
|
|
HtmlLine();
|
|
}
|
|
|
|
Htmls LeftBar()
|
|
{
|
|
Htmls bar;
|
|
// bar.Br();
|
|
|
|
bar << BarLink("index.html", "Home");
|
|
|
|
bar << BarSection("Screenshots");
|
|
bar << BarLink("packsel.html", "Starting TheIDE..");
|
|
bar << BarLink("theide.html", "TheIDE");
|
|
bar << BarLink("laydes.html", "Layout designer");
|
|
bar << BarLink("icondes.html", "Icon designer");
|
|
bar << BarLink("debug.html", "Debug session");
|
|
bar << BarLink("lang.html", "Language support");
|
|
bar << BarLink("docpp.html", "Doc++");
|
|
bar << BarLink("linux.html", "TheIDE / Linux");
|
|
|
|
bar << BarSection("Reference examples");
|
|
bar << BarLink("log.html", "Diagnostic log");
|
|
bar << BarLink("value.html", "Value");
|
|
bar << BarLink("callback.html", "Callback");
|
|
bar << BarLink("draw.html", "Draw");
|
|
bar << BarLink("drawing.html", "Drawing");
|
|
bar << BarLink("image.html", "Raster images");
|
|
bar << BarLink("events.html", "Input events");
|
|
bar << BarLink("display.html", "Display");
|
|
bar << BarLink("menu.html", "Menu");
|
|
bar << BarLink("uscctrl.html", "UscCtrl");
|
|
|
|
bar << BarSection("Examples");
|
|
bar << BarLink("scribble1.html", "Scribble, step 1");
|
|
bar << BarLink("scribble2.html", "Scribble, step 2");
|
|
bar << BarLink("scribble3.html", "Scribble, step 3");
|
|
|
|
|
|
bar.Br();
|
|
bar.Br();
|
|
bar << BarLink("http://lists.sourceforge.net/lists/listinfo/upp-main", "Ultimate++ mailing list");
|
|
bar << BarLink("mailto: upp@ntllib.org", "Send us comments");
|
|
bar.Br();
|
|
bar.Br();
|
|
Date d = GetSysDate();
|
|
bar << HtmlItalic() / HtmlArial(8) /
|
|
(" Last update " + Format("%d/%d/%d", d.year, d.month, d.day));
|
|
bar.Br();
|
|
bar << "<IMG SRC=\"http://pocitadlo.servery.cz/counter.php?id=1463\">";
|
|
return HtmlArial(10) / bar;
|
|
}
|
|
|
|
String GetText(const DocKey& key)
|
|
{
|
|
static DocDir dir;
|
|
static bool init;
|
|
static String styles;
|
|
if(!init) {
|
|
init = true;
|
|
SetVar("UPP", "f:/uppdev;f:/uppsrc;");
|
|
DocQuery q;
|
|
q.lang = LNG_ENGLISH;
|
|
q.undocumented = q.normal = q.external = q.obsolete = q.ignored = true;
|
|
|
|
::Workspace wspc;
|
|
wspc.Scan("www");
|
|
for(int i = 0; i < wspc.GetCount(); i++)
|
|
dir.Refresh(wspc[i]);
|
|
|
|
dir.Select(q, CppBase());
|
|
styles = LoadFile("F:/common/dppstyles.qtf");
|
|
}
|
|
|
|
return styles + dir.GetText(key);
|
|
}
|
|
|
|
String GetText(const String& link)
|
|
{
|
|
DocKey k;
|
|
String d;
|
|
if(!ParseLink(link, k, d)) return Null;
|
|
k.lang = LNG_ENGLISH;
|
|
return GetText(k);
|
|
}
|
|
|
|
String QtfAsHtml(const char *qtf, Index<String>& css, const VectorMap<String, String>& links,
|
|
const String& outdir, const String& fn = Null)
|
|
{
|
|
return AsHtml(ParseQTF(qtf), css, links, outdir, fn);
|
|
}
|
|
|
|
void AppMain()
|
|
{
|
|
VectorMap<String, String> links;
|
|
|
|
static char *theme[] = {
|
|
"index",
|
|
"packsel",
|
|
"package",
|
|
"theide",
|
|
"laydes",
|
|
"icondes",
|
|
"debug",
|
|
"lang",
|
|
"docpp",
|
|
"linux",
|
|
"scribble1",
|
|
"log",
|
|
"value",
|
|
"draw",
|
|
"drawing",
|
|
"image",
|
|
"display",
|
|
"events",
|
|
"menu",
|
|
"uscctrl",
|
|
"callback",
|
|
"scribble2",
|
|
"scribble3"
|
|
};
|
|
|
|
for(int i = 0; i < __countof(theme); i++)
|
|
links.Add("dpp://www/upp/" + String(theme[i]), String(theme[i]) + ".html");
|
|
|
|
for(int i = 0; i < links.GetCount(); i++) {
|
|
Index<String> css;
|
|
String path = links.GetKey(i);
|
|
if(path.Mid(0, 6) == "dpp://") {
|
|
String text = GetText(links.GetKey(i));
|
|
Htmls html =
|
|
HtmlTable().Width(-100).Border(1).BorderColor(WhiteGray).CellPadding(0).CellSpacing(0) / (
|
|
HtmlLine().ColSpan(2).Background("bluebg.gif") / (HtmlPadding(8) / Header()) +
|
|
HtmlRow() / (
|
|
HtmlCell().Top().Width(160).Background("yellowbg.gif") / LeftBar() +
|
|
HtmlCell().Top().BgColor(White).CellSpacing(8) /
|
|
(HtmlPadding(8) / QtfAsHtml(text, css, links, "E:\\uppwww", FormatIntAlpha(i)))
|
|
)
|
|
);
|
|
Htmls content = HtmlHeader("Ultimate++", AsCss(css)).BgColor(WhiteGray) / html;
|
|
SaveFile(AppendFileName("E:\\uppwww", links[i]), content);
|
|
}
|
|
}
|
|
}
|