1 /***************************************************************************
2 begin : Mon Feb 22 2010
3 copyright : (C) 2010 by Martin Preuss
4 email : martin@libchipcard.de
5
6 ***************************************************************************
7 * Please see toplevel file COPYING for license details *
8 ***************************************************************************/
9
10 #ifdef HAVE_CONFIG_H
11 # include <config.h>
12 #endif
13
14 #define DISABLE_DEBUGLOG
15
16
17 #include "o_image_p.h"
18
19
20
21 GWEN_INHERIT(HTML_OBJECT, OBJECT_IMAGE);
22
23
HtmlObject_Image_Layout(HTML_OBJECT * o)24 static int HtmlObject_Image_Layout(HTML_OBJECT *o)
25 {
26 OBJECT_IMAGE *xo;
27
28 assert(o);
29 xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
30 assert(xo);
31
32 HtmlObject_SetWidth(o, xo->scaledWidth);
33 HtmlObject_SetHeight(o, xo->scaledHeight);
34 return 0;
35 }
36
37
38
39
HtmlObject_Image_new(GWEN_XML_CONTEXT * ctx)40 HTML_OBJECT *HtmlObject_Image_new(GWEN_XML_CONTEXT *ctx)
41 {
42 HTML_OBJECT *o;
43 OBJECT_IMAGE *xo;
44
45 o=HtmlObject_new(ctx, HtmlObjectType_Image);
46 GWEN_NEW_OBJECT(OBJECT_IMAGE, xo);
47 GWEN_INHERIT_SETDATA(HTML_OBJECT, OBJECT_IMAGE, o, xo, HtmlObject_Image_FreeData);
48 HtmlObject_SetLayoutFn(o, HtmlObject_Image_Layout);
49
50 return o;
51 }
52
53
54
HtmlObject_Image_FreeData(GWEN_UNUSED void * bp,void * p)55 void GWENHYWFAR_CB HtmlObject_Image_FreeData(GWEN_UNUSED void *bp, void *p)
56 {
57 OBJECT_IMAGE *xo;
58
59 xo=(OBJECT_IMAGE *) p;
60 HtmlImage_free(xo->image);
61
62 GWEN_FREE_OBJECT(xo);
63 }
64
65
66
HtmlObject_Image_GetScaledWidth(const HTML_OBJECT * o)67 int HtmlObject_Image_GetScaledWidth(const HTML_OBJECT *o)
68 {
69 OBJECT_IMAGE *xo;
70
71 assert(o);
72 xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
73 assert(xo);
74
75 return xo->scaledWidth;
76 }
77
78
79
HtmlObject_Image_SetScaledWidth(HTML_OBJECT * o,int i)80 void HtmlObject_Image_SetScaledWidth(HTML_OBJECT *o, int i)
81 {
82 OBJECT_IMAGE *xo;
83
84 assert(o);
85 xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
86 assert(xo);
87
88 xo->scaledWidth=i;
89 }
90
91
92
HtmlObject_Image_GetScaledHeight(const HTML_OBJECT * o)93 int HtmlObject_Image_GetScaledHeight(const HTML_OBJECT *o)
94 {
95 OBJECT_IMAGE *xo;
96
97 assert(o);
98 xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
99 assert(xo);
100
101 return xo->scaledHeight;
102 }
103
104
105
HtmlObject_Image_SetScaledHeight(HTML_OBJECT * o,int i)106 void HtmlObject_Image_SetScaledHeight(HTML_OBJECT *o, int i)
107 {
108 OBJECT_IMAGE *xo;
109
110 assert(o);
111 xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
112 assert(xo);
113
114 xo->scaledHeight=i;
115 }
116
117
118
HtmlObject_Image_GetImage(const HTML_OBJECT * o)119 HTML_IMAGE *HtmlObject_Image_GetImage(const HTML_OBJECT *o)
120 {
121 OBJECT_IMAGE *xo;
122
123 assert(o);
124 xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
125 assert(xo);
126
127 return xo->image;
128 }
129
130
131
HtmlObject_Image_SetImage(HTML_OBJECT * o,HTML_IMAGE * img)132 void HtmlObject_Image_SetImage(HTML_OBJECT *o, HTML_IMAGE *img)
133 {
134 OBJECT_IMAGE *xo;
135
136 assert(o);
137 xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
138 assert(xo);
139
140 if (img)
141 HtmlImage_Attach(img);
142 HtmlImage_free(xo->image);
143 xo->image=img;
144 }
145
146
147
148
149
150
151
152
153