Annotation of parser3/src/types/pa_vimage.h, revision 1.34.2.4
1.9 paf 1: /** @file
1.1 paf 2: Parser: @b image parser type decl.
3:
1.34.2.3 paf 4: Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
1.24 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.1 paf 6: */
7:
8: #ifndef PA_VIMAGE_H
9: #define PA_VIMAGE_H
1.26 paf 10:
1.34.2.4! paf 11: static const char* IDENT_VIMAGE_H="$Date: 2003/01/31 12:34:43 $";
1.1 paf 12:
1.12 paf 13: #include "classes.h"
1.1 paf 14: #include "pa_common.h"
15: #include "pa_vstateless_object.h"
16:
1.20 parser 17: // defines
18:
19: #define VIMAGE_TYPE "image"
1.33 paf 20: #define EXIF_ELEMENT_NAME "exif"
1.20 parser 21:
22: // forwards
23:
1.34.2.4! paf 24: class gdImage; DECLARE_OBJECT_PTR(gdImage);
! 25: class Font;
1.10 paf 26:
1.20 parser 27: // externs
28:
1.34.2.1 paf 29: extern MethodedPtr image_class;
1.7 paf 30:
1.8 paf 31: /** holds img attributes
1.1 paf 32: and [image itself]
33: */
34: class VImage : public VStateless_object {
35: public: // Value
36:
1.34.2.3 paf 37: override const char* type() const { return VIMAGE_TYPE; }
1.34.2.1 paf 38: override VStateless_class *get_class() { return image_class.get(); }
1.1 paf 39:
40: /// VImage: true
1.34.2.1 paf 41: override bool as_bool() const { return true; }
1.19 parser 42:
43: /// VImage: true
1.34.2.1 paf 44: override ValuePtr as_expr_result(bool return_string_as_is=false) {
45: return ValuePtr(new VBool(as_bool()));
46: }
1.1 paf 47:
48: /// VImage: method,field
1.34.2.2 paf 49: override ValuePtr get_element(StringPtr aname, Value& aself, bool looking_up);
1.15 parser 50:
51: /// VImage: field
1.34.2.2 paf 52: override bool put_element(StringPtr aname, ValuePtr avalue, bool replace);
1.1 paf 53:
54: public: // usage
55:
1.34.2.2 paf 56: void set(StringPtr src, int width, int height,
1.34.2.4! paf 57: gdImagePtr aimage=gdImagePtr(0),
1.34.2.1 paf 58: ValuePtr aexif=ValuePtr(0));
1.1 paf 59:
1.34.2.1 paf 60: HashStringValue& fields() { return ffields; }
1.3 paf 61:
62: public:
63:
1.34.2.4! paf 64: gdImagePtr fimage;
! 65: Font *ffont;
1.1 paf 66:
67: private:
68:
1.34.2.1 paf 69: HashStringValue ffields;
70: ValuePtr fexif;
1.1 paf 71:
72: };
73:
74: #endif
E-mail: