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