gwenhywfar  4.3.1
o_image.c
Go to the documentation of this file.
00001 /***************************************************************************
00002  begin       : Mon Feb 22 2010
00003  copyright   : (C) 2010 by Martin Preuss
00004  email       : martin@libchipcard.de
00005 
00006  ***************************************************************************
00007  *          Please see toplevel file COPYING for license details           *
00008  ***************************************************************************/
00009 
00010 #ifdef HAVE_CONFIG_H
00011 # include <config.h>
00012 #endif
00013 
00014 #define DISABLE_DEBUGLOG
00015 
00016 
00017 #include "o_image_p.h"
00018 
00019 
00020 
00021 GWEN_INHERIT(HTML_OBJECT, OBJECT_IMAGE);
00022 
00023 
00024 static int HtmlObject_Image_Layout(HTML_OBJECT *o) {
00025   OBJECT_IMAGE *xo;
00026 
00027   assert(o);
00028   xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
00029   assert(xo);
00030 
00031   HtmlObject_SetWidth(o, xo->scaledWidth);
00032   HtmlObject_SetHeight(o, xo->scaledHeight);
00033   return 0;
00034 }
00035 
00036 
00037 
00038 
00039 HTML_OBJECT *HtmlObject_Image_new(GWEN_XML_CONTEXT *ctx) {
00040   HTML_OBJECT *o;
00041   OBJECT_IMAGE *xo;
00042 
00043   o=HtmlObject_new(ctx, HtmlObjectType_Image);
00044   GWEN_NEW_OBJECT(OBJECT_IMAGE, xo);
00045   GWEN_INHERIT_SETDATA(HTML_OBJECT, OBJECT_IMAGE, o, xo, HtmlObject_Image_FreeData);
00046   HtmlObject_SetLayoutFn(o, HtmlObject_Image_Layout);
00047 
00048   return o;
00049 }
00050 
00051 
00052 
00053 void GWENHYWFAR_CB HtmlObject_Image_FreeData(void *bp, void *p) {
00054   OBJECT_IMAGE *xo;
00055 
00056   xo=(OBJECT_IMAGE*) p;
00057   HtmlImage_free(xo->image);
00058 
00059   GWEN_FREE_OBJECT(xo);
00060 }
00061 
00062 
00063 
00064 int HtmlObject_Image_GetScaledWidth(const HTML_OBJECT *o) {
00065   OBJECT_IMAGE *xo;
00066 
00067   assert(o);
00068   xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
00069   assert(xo);
00070 
00071   return xo->scaledWidth;
00072 }
00073 
00074 
00075 
00076 void HtmlObject_Image_SetScaledWidth(HTML_OBJECT *o, int i) {
00077   OBJECT_IMAGE *xo;
00078 
00079   assert(o);
00080   xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
00081   assert(xo);
00082 
00083   xo->scaledWidth=i;
00084 }
00085 
00086 
00087 
00088 int HtmlObject_Image_GetScaledHeight(const HTML_OBJECT *o) {
00089   OBJECT_IMAGE *xo;
00090 
00091   assert(o);
00092   xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
00093   assert(xo);
00094 
00095   return xo->scaledHeight;
00096 }
00097 
00098 
00099 
00100 void HtmlObject_Image_SetScaledHeight(HTML_OBJECT *o, int i) {
00101   OBJECT_IMAGE *xo;
00102 
00103   assert(o);
00104   xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
00105   assert(xo);
00106 
00107   xo->scaledHeight=i;
00108 }
00109 
00110 
00111 
00112 HTML_IMAGE *HtmlObject_Image_GetImage(const HTML_OBJECT *o) {
00113   OBJECT_IMAGE *xo;
00114 
00115   assert(o);
00116   xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
00117   assert(xo);
00118 
00119   return xo->image;
00120 }
00121 
00122 
00123 
00124 void HtmlObject_Image_SetImage(HTML_OBJECT *o, HTML_IMAGE *img) {
00125   OBJECT_IMAGE *xo;
00126 
00127   assert(o);
00128   xo=GWEN_INHERIT_GETDATA(HTML_OBJECT, OBJECT_IMAGE, o);
00129   assert(xo);
00130 
00131   if (img)
00132     HtmlImage_Attach(img);
00133   HtmlImage_free(xo->image);
00134   xo->image=img;
00135 }
00136 
00137 
00138 
00139 
00140 
00141 
00142 
00143