Branch: Tag:

2000-03-14

2000-03-14 05:52:28 by Martin Nilsson <mani@lysator.liu.se>

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;    } -  +  } + }