Roxen.git/
server/
modules/
graphics/
gbutton.pike
Branch:
Tag:
Non-build tags
All tags
No tags
2000-03-14
2000-03-14 05:52:28 by Martin Nilsson <mani@lysator.liu.se>
c421c65b0aa24d5cd247784136866516bdf691b7 (
170
lines) (+
95
/-
75
)
[
Show
|
Annotate
]
Branch:
5.2
Newstyled gbutton
Rev: server/modules/graphics/gbutton.pike:1.38
25:
// must also be aligned left or right.
-
constant cvs_version = "$Id: gbutton.pike,v 1.
37
2000/03/
02
04
:
18
:
37
nilsson Exp $";
+
constant cvs_version = "$Id: gbutton.pike,v 1.
38
2000/03/
14
05
:
52
:
28
nilsson Exp $";
constant thread_safe = 1; #include <module.h>
87:
button_cache = roxen.ImageCache("gbutton", draw_button); }
-
-
mapping query_tag_callers()
-
{
-
return ([ ]);
-
}
-
-
-
mapping query_container_callers()
-
{
-
return ([ "gbutton" : tag_button, "gbutton-url" : tag_button ]);
-
}
-
+
Image.Layer layer_slice( Image.Layer l, int from, int to ) { return Image.Layer( ([
484:
}
-
string
tag_button(string
tag,
mapping
args,
string
contents,
RequestID id)
-
{
+
class
ButtonFrame
{
+
inherit
RXML.Frame;
+
+
array mk_url(
RequestID id)
{
string fi = (args["frame-image"]||id->misc->defines["gbutton-frame-image"]); if( fi ) fi = fix_relative( fi, id );
501:
"#eeeeee"), // Background color "txt" : parse_color(args->textcolor || id->misc->defines->theme_bgcolor || id->misc->defines->fgcolor || "#000000"), // Text color
-
"cnd" : args->condensed || // Condensed text
-
(lower_case(args->textstyle || "") == "condensed"),
+
"cnd" :
(
args->condensed || // Condensed text
+
(lower_case(args->textstyle || "") == "condensed")
)
,
"wi" : (int) args->width, // Min button width "al" : args->align || "left", // Text alignment
-
"dim" : args->dim || // Button dimming
-
(< "dim", "disabled" >)[lower_case(args->state || "")],
+
"dim" :
(
args->dim || // Button dimming
+
(< "dim", "disabled" >)[lower_case(args->state || "")]
)
,
"icn" : args->icon_src && fix_relative(args->icon_src, id), // Icon URL "icd" : args->icon_data, // Inline icon data "ica" : args->align_icon || "left", // Icon alignment
527:
string img_src = query_internal_location() +
-
button_cache->store( ({ new_args,
contents
}), id);
+
button_cache->store( ({ new_args,
content
}), id);
-
if(
tag
== "gbutton-url" )
-
return img_src;
+
return
(
{
img_src,
new_args
}
)
;
+
}
+
}
-
+
class TagGButtonURL {
+
inherit RXML.Tag;
+
constant name = "gbutton-url";
+
RXML.Type content_type = RXML.t_text(RXML.PXml);
+
+
class Frame {
+
inherit ButtonFrame;
+
array do_return(RequestID id) {
+
result=mk_url(id)[0];
+
return 0;
+
}
+
}
+
}
+
+
class TagGButtom {
+
inherit RXML.Tag;
+
constant name = "gbutton";
+
RXML.Type content_type = RXML.t_text(RXML.PXml);
+
+
class Frame {
+
inherit ButtonFrame;
+
array do_return(RequestID id) {
+
[string img_src, mapping new_args]=mk_url(id);
+
mapping img_attrs = ([ "src" : img_src,
-
"alt" : args->alt ||
contents
,
+
"alt" : args->alt ||
content
,
"border" : args->border, "hspace" : args->hspace, "vspace" : args->vspace ]);
550:
mapping a_attrs = ([ "href" : args->href ]); if (args->target) a_attrs->target = args->target;
-
return
make_container("a", a_attrs, make_tag("img", img_attrs));
+
result=
make_container("a", a_attrs, make_tag("img", img_attrs));
} else
-
return
make_tag("img", img_attrs);
+
result=
make_tag("img", img_attrs);
+
+
return 0;
}
-
+
}
+
}