Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_object_image.c 


Log Message:


added the ability to set load scaledown, dpi or load size - the svg loader
uses these to know what to render and how (or has defaults if these are not
set)

===================================================================
RCS file: /cvs/e/e17/libs/evas/src/lib/canvas/evas_object_image.c,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- evas_object_image.c 7 Jun 2006 23:30:14 -0000       1.41
+++ evas_object_image.c 18 Aug 2006 14:45:24 -0000      1.42
@@ -36,6 +36,12 @@
    int               pixels_checked_out;
    int               load_error;
    Evas_List        *pixel_updates;
+   
+   struct {
+      unsigned char  scale_down_by;
+      double         dpi;
+      short          w, h;
+   } load_opts;
 
    struct {
       void            (*get_pixels) (void *data, Evas_Object *o);
@@ -123,6 +129,7 @@
 evas_object_image_file_set(Evas_Object *obj, const char *file, const char *key)
 {
    Evas_Object_Image *o;
+   Evas_Image_Load_Opts lo;
 
    MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
    return;
@@ -150,10 +157,15 @@
      
obj->layer->evas->engine.func->image_free(obj->layer->evas->engine.data.output,
                                               o->engine_data);
    o->load_error = EVAS_LOAD_ERROR_NONE;
+   lo.scale_down_by = o->load_opts.scale_down_by;
+   lo.dpi = o->load_opts.dpi;
+   lo.w = o->load_opts.w;
+   lo.h = o->load_opts.h;
    o->engine_data = 
obj->layer->evas->engine.func->image_load(obj->layer->evas->engine.data.output,
                                                              o->cur.file,
                                                              o->cur.key,
-                                                             &o->load_error);
+                                                             &o->load_error,
+                                                             &lo);
    if (o->engine_data)
      {
        int w, h;
@@ -1069,6 +1081,155 @@
  *
  */
 EAPI void
+evas_object_image_load_dpi_set(Evas_Object *obj, double dpi)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return;
+   MAGIC_CHECK_END();
+   o->load_opts.dpi = dpi;
+   if (o->cur.file)
+     {
+       evas_object_image_unload(obj);
+       evas_object_image_load(obj);
+       o->changed = 1;
+       evas_object_change(obj);
+     }
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ *
+ */
+EAPI double
+evas_object_image_load_dpi_get(Evas_Object *obj)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return 0.0;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return 0.0;
+   MAGIC_CHECK_END();
+   return o->load_opts.dpi;
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ *
+ */
+EAPI void
+evas_object_image_load_size_set(Evas_Object *obj, int w, int h)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return;
+   MAGIC_CHECK_END();
+   o->load_opts.w = w;
+   o->load_opts.h = h;
+   if (o->cur.file)
+     {
+       evas_object_image_unload(obj);
+       evas_object_image_load(obj);
+       o->changed = 1;
+       evas_object_change(obj);
+     }
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ *
+ */
+EAPI void
+evas_object_image_load_size_get(Evas_Object *obj, int *w, int *h)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return;
+   MAGIC_CHECK_END();
+   if (w) *w = o->load_opts.w;
+   if (h) *h = o->load_opts.h;
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ *
+ */
+EAPI void
+evas_object_image_load_scale_down_set(Evas_Object *obj, int scale_down)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return;
+   MAGIC_CHECK_END();
+   o->load_opts.scale_down_by = scale_down;
+   if (o->cur.file)
+     {
+       evas_object_image_unload(obj);
+       evas_object_image_load(obj);
+       o->changed = 1;
+       evas_object_change(obj);
+     }
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ *
+ */
+EAPI int
+evas_object_image_load_scale_down_get(Evas_Object *obj)
+{
+   Evas_Object_Image *o;
+
+   MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
+   return 0;
+   MAGIC_CHECK_END();
+   o = (Evas_Object_Image *)(obj->object_data);
+   MAGIC_CHECK(o, Evas_Object_Image, MAGIC_OBJ_IMAGE);
+   return 0;
+   MAGIC_CHECK_END();
+   return o->load_opts.scale_down_by;
+}
+
+/**
+ * To be documented.
+ *
+ * FIXME: To be fixed.
+ *
+ */
+EAPI void
 evas_image_cache_flush(Evas *e)
 {
    MAGIC_CHECK(e, Evas, MAGIC_EVAS);
@@ -1209,14 +1370,20 @@
 evas_object_image_load(Evas_Object *obj)
 {
    Evas_Object_Image *o;
+   Evas_Image_Load_Opts lo;
 
    o = (Evas_Object_Image *)(obj->object_data);
    if (o->engine_data) return;
 
+   lo.scale_down_by = o->load_opts.scale_down_by;
+   lo.dpi = o->load_opts.dpi;
+   lo.w = o->load_opts.w;
+   lo.h = o->load_opts.h;
    o->engine_data = 
obj->layer->evas->engine.func->image_load(obj->layer->evas->engine.data.output,
                                                              o->cur.file,
                                                              o->cur.key,
-                                                             &o->load_error);
+                                                             &o->load_error,
+                                                             &lo);
    if (o->engine_data)
      {
        int w, h;



-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to