--- parser3/src/classes/image.C 2001/04/11 17:47:01 1.10 +++ parser3/src/classes/image.C 2001/04/12 13:15:18 1.12 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: image.C,v 1.10 2001/04/11 17:47:01 paf Exp $ + $Id: image.C,v 1.12 2001/04/12 13:15:18 paf Exp $ */ #include "pa_config_includes.h" @@ -303,7 +303,7 @@ static void _html(Request& r, const Stri Hash& fields=static_cast(r.self)->fields(); Hash *attribs=0; - if(params) + if(params->size()) if(attribs=static_cast(params->get(0))->get_hash()) { Attrib_info attrib_info={&tag, 0}; attribs->for_each(append_attrib_pair, &attrib_info); @@ -368,10 +368,10 @@ static void _gif(Request& r, const Strin if(!image) PTHROW(0, 0, &method_name, - "does not contain image"); + "does not contain an image"); char *file_name_cstr=0; - if(params) { + if(params->size()) { Value& vfile_name=*static_cast(params->get(0)); // forcing [this body type] r.fail_if_junction_(true, vfile_name, method_name, "file name must not be code"); @@ -389,6 +389,25 @@ static void _gif(Request& r, const Strin r.write_no_lang(vfile); } +/// ^image.line(x0;y0;x1;y1;color) +static void _line(Request& r, const String& method_name, Array *params) { + Pool& pool=r.pool(); + + gdImage *image=static_cast(r.self)->image; + if(!image) + PTHROW(0, 0, + &method_name, + "does not contain an image"); + + image->Line( + (int)r.process(*static_cast(params->get(0))).as_double(), + (int)r.process(*static_cast(params->get(1))).as_double(), + (int)r.process(*static_cast(params->get(2))).as_double(), + (int)r.process(*static_cast(params->get(3))).as_double(), + image->Color((int)r.process(*static_cast(params->get(4))).as_double())); + +} + // initialize void initialize_image_class(Pool& pool, VStateless_class& vclass) { // ^image:measure[DATA] @@ -408,4 +427,7 @@ void initialize_image_class(Pool& pool, /// ^image.gif[] /// ^image.gif[user-file-name] vclass.add_native_method("gif", Method::CT_DYNAMIC, _gif, 0, 1); + + /// ^image.line(x0;y0;x1;y1;color) + vclass.add_native_method("line", Method::CT_DYNAMIC, _line, 5, 5); }