0e834c | 2000-02-24 | Martin Nilsson | |
|
d2bf2c | 1997-11-09 | Francesco Chemolli | |
|
ea0143 | 1997-08-03 | Fredrik Noring | |
|
d2bf2c | 1997-11-09 | Francesco Chemolli | |
|
baf02c | 2000-04-15 | Per Hedbor | | constant cvs_version = "$Id: obox.pike,v 1.26 2000/04/15 01:18:19 per 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";
|
a68f5d | 1999-12-08 | Martin Nilsson | | TAGDOCUMENTATION
#ifdef manual
|
0efb64 | 2000-02-07 | Kenneth Johansson | | constant tagdoc=(["obox":([
|
baf02c | 2000-04-15 | Per Hedbor | | "standard":#"<desc cont><short>This tag creates an outlined box.</short></desc>
|
8ba077 | 2000-02-07 | Kenneth Johansson | |
|
91d6cd | 2000-03-21 | Martin Nilsson | | <attr name=align value=left|right>
|
8ba077 | 2000-02-07 | Kenneth Johansson | | Vertical alignment of the box.
</attr>
<attr name=bgcolor value=color>
Color of the background and title label.
</attr>
<attr name=fixedleft value=number>
Fixed length of line on the left side of the title. The unit is the
approximate width of a character.
</attr>
<attr name=fixedright value=number>
Fixed length of line on the right side of the title. The unit is the
approximate width of a character.
</attr>
<attr name=left value=number>
Length of the line on the left of the title.
</attr>
<attr name=outlinecolor value=color>
Color of the outline.
</attr>
<attr name=outlinewidth value=number>
Width, in pixels, of the outline.
</attr>
<attr name=right value=number>
Length of the line on the right of the title.
</attr>
<attr name=spacing value=number>
Width, in pixels, of the space in the box.
</attr>
|
91d6cd | 2000-03-21 | Martin Nilsson | | <attr name=style value=caption|groupbox>
|
8ba077 | 2000-02-07 | Kenneth Johansson | | Style of the box. Groupbox is default
</attr>
<attr name=textcolor value=color>
Color of the text inside the box.
</attr>
<attr name=titlecolor value=color>
Color of the title text.
</attr>
<attr name=width value=number>
Width, in pixels, of the box.
|
baf02c | 2000-04-15 | Per Hedbor | |
|
8ba077 | 2000-02-07 | Kenneth Johansson | |
Note that the left and right attributes are constrained by the width
argument. If the title is not specified in the argument list, you can
|
baf02c | 2000-04-15 | Per Hedbor | | put it in a <tag>title</tag> container in the obox contents.
</attr>",
|
8ba077 | 2000-02-07 | Kenneth Johansson | |
|
76a901 | 2000-02-07 | Kenneth Johansson | | "svenska":#"<desc cont>Ramlåda</desc>"]) ]);
|
a68f5d | 1999-12-08 | Martin Nilsson | | #endif
|
ea0143 | 1997-08-03 | Fredrik Noring | |
|
a68f5d | 1999-12-08 | Martin Nilsson | | constant unit_gif = "/internal-roxen-unit";
|
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;
|
14ae4b | 1999-07-26 | Martin Nilsson | | return sprintf("<img src=\"%s\" alt=\"\" width=\"%d\" height=\"%d\"%s>",
unit_gif, width, width, (args->noxml?"":" /"));
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | }
static string handle_title(string name, mapping junk_args,
string contents, mapping args)
{
args->title=contents;
return "";
}
static string horiz_line(mapping args)
{
|
9f2fdf | 1998-10-18 | Martin Stjernholm | | args->fixedleft="";
|
14ae4b | 1999-07-26 | Martin Nilsson | | return sprintf("<tr><td colspan=\"5\" bgcolor=\"%s\">\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "%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);
|
5864ba | 1999-05-24 | David Hedbor | | if (!args->left && !args->fixedleft)
if (args->width && !args->fixedright)
args->fixedleft = "7";
else
args->left = "20";
if (!args->right && !args->fixedright)
args->right = args->width || "20";
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | switch (args->style) {
|
5864ba | 1999-05-24 | David Hedbor | | case "groupbox":
|
14ae4b | 1999-07-26 | Martin Nilsson | | return sprintf("<tr><td colspan=\"2\"><font size=\"-3\"> </font></td>\n"
"<td rowspan=\"3\"%s nowrap=\"nowrap\"> <b>"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "%s%s%s"
|
9f2fdf | 1998-10-18 | Martin Stjernholm | | "</b> </td>\n"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<td colspan=\"2\"><font size=\"-3\"> </font></td></tr>\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "<tr%s>"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<td bgcolor=\"%s\" colspan=\"2\">\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "%s</td>\n"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<td bgcolor=\"%s\" colspan=\"2\">\n"
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | "%s</td></tr>\n"
"<tr%s><td bgcolor=\"%s\">"
"%s</td>\n"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<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+"\"" : "",
|
e3da5f | 1999-08-16 | Martin Nilsson | | args->titlecolor ? "<font color=\""+args->titlecolor+"\">" : "",
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | args->title,
|
e3da5f | 1999-08-16 | Martin Nilsson | | args->titlecolor ? "</font>" : "",
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | args->bgcolor ? " bgcolor=\""+args->bgcolor+"\"" : "",
args->outlinecolor,
empty,
args->outlinecolor,
empty,
args->bgcolor ? " bgcolor=\""+args->bgcolor+"\"" : "",
args->outlinecolor,
empty,
|
695303 | 2000-03-13 | Martin Nilsson | | args->left ? " width=\""+args->left+"\"" : "",
|
9f2fdf | 1998-10-18 | Martin Stjernholm | | (args->fixedleft ?
String.strmult (" ", (int) args->fixedleft) : " "),
|
695303 | 2000-03-13 | Martin Nilsson | | args->right ? " width=\""+args->right+"\"" : "",
|
9f2fdf | 1998-10-18 | Martin Stjernholm | | (args->fixedright ?
String.strmult (" ", (int) args->fixedright) : " "),
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | args->outlinecolor,
empty);
|
5864ba | 1999-05-24 | David Hedbor | | case "caption":
|
14ae4b | 1999-07-26 | Martin Nilsson | | return sprintf("<tr%s><td colspan=\"2\"><font size=\"-3\"> </font></td>\n"
"<td rowspan=\"3\" nowrap=\"nowrap\"> <b>"
|
5864ba | 1999-05-24 | David Hedbor | | "%s%s%s"
"</b> </td>\n"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<td colspan=\"2\"><font size=\"-3\"> </font></td></tr>\n"
|
5864ba | 1999-05-24 | David Hedbor | | "<tr bgcolor=\"%s\">"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<td colspan=\"2\">\n"
|
5864ba | 1999-05-24 | David Hedbor | | "%s</td>\n"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<td colspan=\"2\">\n"
|
5864ba | 1999-05-24 | David Hedbor | | "%s</td></tr>\n"
"<tr bgcolor=\"%s\"><td>"
"%s</td>\n"
|
14ae4b | 1999-07-26 | Martin Nilsson | | "<td%s><font size=\"-3\">%s</font></td>"
"<td%s><font size=\"-3\">%s</font></td>\n"
|
5864ba | 1999-05-24 | David Hedbor | | "<td bgcolor=\"%s\">"
"%s</td></tr>\n"
,
args->outlinecolor ? " bgcolor=\""+args->outlinecolor+"\"" : "",
|
e3da5f | 1999-08-16 | Martin Nilsson | | args->titlecolor ? "<font color=\""+args->titlecolor+"\">" : "",
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | args->title,
|
e3da5f | 1999-08-16 | Martin Nilsson | | args->titlecolor ? "</font>" : "",
|
5864ba | 1999-05-24 | David Hedbor | | args->outlinecolor,
empty,
empty,
args->outlinecolor,
empty,
|
695303 | 2000-03-13 | Martin Nilsson | | args->left ? " width=\""+args->left+"\"" : "",
|
5864ba | 1999-05-24 | David Hedbor | | (args->fixedleft ?
String.strmult (" ", (int) args->fixedleft) : " "),
|
695303 | 2000-03-13 | Martin Nilsson | | args->right ? " width=\""+args->right+"\"" : "",
|
5864ba | 1999-05-24 | David Hedbor | | (args->fixedright ?
String.strmult (" ", (int) args->fixedright) : " "),
args->outlinecolor,
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | empty);
}
}
|
695303 | 2000-03-13 | Martin Nilsson | | string simpletag_obox(string name, mapping args, string contents)
|
ea0143 | 1997-08-03 | Fredrik Noring | | {
|
d2bf2c | 1997-11-09 | Francesco Chemolli | | string s;
|
0e834c | 2000-02-24 | Martin Nilsson | |
|
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 | | }
|
e3da5f | 1999-08-16 | Martin Nilsson | | s = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"" +
(args->align?" align=\""+args->align+"\"":"") +
|
0e834c | 2000-02-24 | Martin Nilsson | | (args->width ? " width=" + args->width : "") +
(args->hspace ? " hspace=" + args->hspace : "") +
|
64324f | 1999-10-04 | Fred van Dijk | | (args->vspace ? " vspace=" + args->vspace : "") + ">\n" +
|
e3da5f | 1999-08-16 | Martin Nilsson | | title(args) +
"<tr" +
(args->bgcolor?" bgcolor=\""+args->bgcolor+"\"":"") +
"><td bgcolor=\"" + args->outlinecolor + "\">" +
img_placeholder(args) + "</td>\n"
"<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 && args->width?" width=\""+(string)((int)args->width-((int)args->outlinewidth*2||2))+"\"":"")+
(args->spacing?" width=\""+(string)args->spacing+"\"":"")+">"
"<tr><td>\n";
if (args->textcolor)
s += "<font color=\""+args->textcolor+"\">" + contents + "</font>";
else
s += contents;
|
0e834c | 2000-02-24 | Martin Nilsson | |
|
e3da5f | 1999-08-16 | Martin Nilsson | | s += "</td></tr></table>\n"
"</td><td bgcolor=\"" + args->outlinecolor + "\">" +
img_placeholder(args) + "</td></tr>\n" +
horiz_line(args) + "</table>\n";
|
0e834c | 2000-02-24 | Martin Nilsson | |
|
ea0143 | 1997-08-03 | Fredrik Noring | | return s;
}
|
197355 | 2000-02-10 | Martin Nilsson | | constant module_type = MODULE_PARSER;
constant module_name =
|
ea3d3f | 1998-11-22 | Per Hedbor | | ([
"standard":"Outlined box",
"svenska":"Ramlåda",
|
197355 | 2000-02-10 | Martin Nilsson | | ]);
constant module_doc =
|
0e834c | 2000-02-24 | Martin Nilsson | | ([
|
ea3d3f | 1998-11-22 | Per Hedbor | | "standard":
|
59ae15 | 2000-04-06 | Mattias Wingstedt | | "This module provides the <tt><obox></tt> tag that draws outlined "
"boxes.",
|
ea3d3f | 1998-11-22 | Per Hedbor | | "svenska":
|
695303 | 2000-03-13 | Martin Nilsson | | "<tt><obox></obox></tt> är en tag som ramar "
"in det som står i den.",
|
197355 | 2000-02-10 | Martin Nilsson | | ]);
|