d2bf2c | 1997-11-09 | Francesco Chemolli | |
|
ea0143 | 1997-08-03 | Fredrik Noring | |
|
d2bf2c | 1997-11-09 | Francesco Chemolli | |
|
37d959 | 1999-05-24 | David Hedbor | | constant cvs_version = "$Id: obox.pike,v 1.10 1999/05/24 23:48:31 neotron Exp $";
|
07bf51 | 1997-08-31 | Peter Bortas | | constant thread_safe=1;
|
ea0143 | 1997-08-03 | Fredrik Noring | | #include <module.h>
|
07bf51 | 1997-08-31 | Peter Bortas | | inherit "module";
|
ea0143 | 1997-08-03 | Fredrik Noring | | inherit "roxenlib";
|
89a77c | 1998-03-07 | Fredrik Noring | | constant unit_gif = "/internal-roxen-unit";
|
ea0143 | 1997-08-03 | Fredrik Noring | |
|
89a77c | 1998-03-07 | Fredrik Noring | | static private int loaded;
|
ea0143 | 1997-08-03 | Fredrik Noring | |
|
89a77c | 1998-03-07 | Fredrik Noring | | static private string doc()
{
return !loaded?"":replace(Stdio.read_bytes("modules/tags/doc/obox")||"",
({ "{", "}" }), ({ "<", ">" }));
}
|
5458ff | 1997-08-23 | Henrik Grubbström (Grubba) | |
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | static string img_placeholder (mapping args)
{
int width=((int)args->outlinewidth)||1;
return sprintf("<img src=\"%s\" alt=\"\" width=%d height=%d>",
unit_gif, width, width);
}
static string handle_title(string name, mapping junk_args,
string contents, mapping args)
{
args->title=contents;
return "";
}
static string horiz_line(mapping args)
{
|
2ec5a0 | 1999-04-18 | David Hedbor | | args->fixedleft="";
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | return sprintf("<tr><td colspan=5 bgcolor=\"%s\">\n"
"%s</td></tr>\n",
args->outlinecolor,
img_placeholder(args));
}
static string title(mapping args)
{
if (!args->title)
return horiz_line(args);
string empty=img_placeholder(args);
switch (args->style) {
case "groupbox":
|
2ec5a0 | 1999-04-18 | David Hedbor | | if (!args->left && !args->fixedleft)
if (args->width && !args->fixedright)
args->fixedleft = "7";
else
args->left = "1";
if (!args->right && !args->fixedright)
args->right = "1";
return sprintf("<tr><td colspan=2><font size=-3> </font></td>\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "<td rowspan=3%s> <b>"
"%s%s%s"
|
2ec5a0 | 1999-04-18 | David Hedbor | | "</b> </td>\n"
"<td colspan=2><font size=-3> </font></td></tr>\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "<tr%s>"
"<td bgcolor=\"%s\" colspan=2>\n"
"%s</td>\n"
"<td bgcolor=\"%s\" colspan=2>\n"
"%s</td></tr>\n"
"<tr%s><td bgcolor=\"%s\">"
"%s</td>\n"
|
2ec5a0 | 1999-04-18 | David Hedbor | | "<td%s><font size=-3>%s</font></td>"
"<td%s><font size=-3>%s</font></td>\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "<td bgcolor=\"%s\">"
"%s</td></tr>\n"
,
args->bgcolor ? " bgcolor=\""+args->bgcolor+"\"" : "",
args->titlecolor ? "<FONT color=\""+args->titlecolor+"\">" : "",
args->title,
args->titlecolor ? "</FONT>" : "",
args->bgcolor ? " bgcolor=\""+args->bgcolor+"\"" : "",
args->outlinecolor,
empty,
args->outlinecolor,
empty,
args->bgcolor ? " bgcolor=\""+args->bgcolor+"\"" : "",
args->outlinecolor,
empty,
|
2ec5a0 | 1999-04-18 | David Hedbor | | (args->left ? " width="+args->left+"000" : ""),
(args->fixedleft ?
String.strmult (" ", (int) args->fixedleft) : " "),
(args->right ? " width="+args->right+"000" : ""),
(args->fixedright ?
String.strmult (" ", (int) args->fixedright) : " "),
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | args->outlinecolor,
empty);
case "caption":
|
1337a2 | 1999-05-07 | Vincent Janelle | | return sprintf("<TR bgcolor=\"%s\">"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "<TD>%s</TD>"
"<TD%s> </TD>"
"<TD>%s%s%s</TD>"
"<TD%s> </TD>"
"<TD>%s</TD></TR>",
args->outlinecolor,
empty,
(args->left ? " width="+args->left : ""),
args->titlecolor ? "<FONT color=\""+args->titlecolor+"\">" : "",
args->title,
args->titlecolor ? "</FONT>" : "",
(args->right ? " width="+args->right : ""),
empty);
}
}
|
ea0143 | 1997-08-03 | Fredrik Noring | | string container_obox(string name, mapping args,
string contents, object request_id)
{
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | string s;
|
ea0143 | 1997-08-03 | Fredrik Noring | |
if (args->help) {
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | args->right = 250;
args->title = "The Outlined Box container tag";
|
89a77c | 1998-03-07 | Fredrik Noring | | contents = doc();
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | }
args->outlinecolor = args->outlinecolor || "#000000";
args->style = args->style || "groupbox";
if (!args->title) {
contents=parse_html(contents,([]),(["title":handle_title,]),args);
|
ea0143 | 1997-08-03 | Fredrik Noring | | }
switch (name) {
case "obox":
|
2ec5a0 | 1999-04-18 | David Hedbor | | s = title(args);
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | s = "<table border=0 cellpadding=0 cellspacing=0" +
(args->align?" align="+args->align:"") +
|
2ec5a0 | 1999-04-18 | David Hedbor | | (args->width ? " width=" + args->width : "") + ">\n" +
s +
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "<tr" +
|
37d959 | 1999-05-24 | David Hedbor | | (args->bgcolor?" bgcolor=\""+args->bgcolor+"\"":"") +
"><td bgcolor=\"" + args->outlinecolor + "\">" +
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | img_placeholder(args) + "</td>\n"
|
2ec5a0 | 1999-04-18 | David Hedbor | | "<td" + (args->width && !args->fixedleft && !args->fixedright ? " width=1" : "") +
(args->aligncontents ? " align=" + args->aligncontents : "") + " colspan=3" + ">\n"
"<table border=0 cellspacing=0 cellpadding=" + (args->padding || "5") +
(args->spacing?" width="+(string)args->spacing:"")+">"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "<tr><td>\n";
if (args->textcolor) {
s += "<font color=\""+args->textcolor+"\">" + contents + "</font>";
|
c2e9ea | 1997-10-27 | Francesco Chemolli | | } else {
s += contents;
}
|
ea0143 | 1997-08-03 | Fredrik Noring | |
s += "</td></tr></table>\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "</td><td bgcolor=\"" + args->outlinecolor + "\">" +
img_placeholder(args) + "</td></tr>\n" +
horiz_line(args) + "</table>\n";
|
ea0143 | 1997-08-03 | Fredrik Noring | | break;
}
return s;
}
array register_module()
{
return ({
|
2ec5a0 | 1999-04-18 | David Hedbor | | MODULE_PARSER, "Outlined box",
"This is a container tag making outlined boxes.<p>"
|
37d959 | 1999-05-24 | David Hedbor | | "<tt><obox help></obox></tt> gives help.\n\n "+doc(),
|
2ec5a0 | 1999-04-18 | David Hedbor | | 0, 1 });
|
ea0143 | 1997-08-03 | Fredrik Noring | | }
|
89a77c | 1998-03-07 | Fredrik Noring | | void start(int num, object configuration)
{
loaded = 1;
}
|
ea0143 | 1997-08-03 | Fredrik Noring | | mapping query_container_callers()
{
return ([ "obox":container_obox, ]);
}
|