Enlightenment CVS committal Author : dj2 Project : e17 Module : libs/ewl
Dir : e17/libs/ewl/src Modified Files: ewl_image.c ewl_image.h Log Message: add in the ability for ewl_images to be tiled instead of the full size of the widget =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_image.c,v retrieving revision 1.51 retrieving revision 1.52 diff -u -3 -r1.51 -r1.52 --- ewl_image.c 23 Aug 2004 18:51:52 -0000 1.51 +++ ewl_image.c 20 Nov 2004 16:00:27 -0000 1.52 @@ -66,6 +66,11 @@ i->sw = 1.0; i->sh = 1.0; + i->tile.x = 0; + i->tile.y = 0; + i->tile.w = 0; + i->tile.h = 0; + ewl_image_file_set(i, path, key); DLEAVE_FUNCTION(DLEVEL_STABLE); @@ -246,6 +251,32 @@ DLEAVE_FUNCTION(DLEVEL_STABLE); } +/** + * @param i: the image to tile + * @param x: the x position of the top right corner + * @param y: the y position of the top right corner + * @param w: the width of the tile + * @param h: the height of the tile + * @return Returns no value + * @brief Tile the image with the given start position and given size + * + * Tiles the image across the available area, starting the image at the + * given position and with the given size. + */ +void +ewl_image_tile_set(Ewl_Image *i, int x, int y, int w, int h) +{ + DENTER_FUNCTION(DLEVEL_STABLE); + DCHECK_PARAM_PTR("i", i); + + i->tile.x = x; + i->tile.y = y; + i->tile.w = w; + i->tile.h = h; + + DLEAVE_FUNCTION(DLEVEL_STABLE); +} + void ewl_image_realize_cb(Ewl_Widget * w, void *ev_data, void *user_data) { Ewl_Image *i; @@ -363,11 +394,19 @@ } /* + * set the tile width and height if not set already + */ + if ((i->tile.w == 0) || (i->tile.h == 0)) { + i->tile.w = i->sw * ww; + i->tile.h = i->sh * hh; + } + + /* * Move the image into place based on type. */ if (i->type != EWL_IMAGE_TYPE_EDJE) - evas_object_image_fill_set(i->image, 0, 0, i->sw * ww, - i->sh * hh); + evas_object_image_fill_set(i->image, i->tile.x, i->tile.y, + i->tile.w, i->tile.h); evas_object_move(i->image, CURRENT_X(w), CURRENT_Y(w)); evas_object_resize(i->image, ww, hh); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ewl/src/ewl_image.h,v retrieving revision 1.23 retrieving revision 1.24 diff -u -3 -r1.23 -r1.24 --- ewl_image.h 23 Aug 2004 00:58:04 -0000 1.23 +++ ewl_image.h 20 Nov 2004 16:00:27 -0000 1.24 @@ -39,6 +39,10 @@ char proportional; int ow, oh; double sw, sh; + + struct { + int x, y, w, h; + } tile; }; Ewl_Widget *ewl_image_new(char *i, char *k); @@ -48,6 +52,8 @@ void ewl_image_proportional_set(Ewl_Image * i, char p); void ewl_image_scale(Ewl_Image *i, double wp, double hp); void ewl_image_scale_to(Ewl_Image *i, int w, int h); +void ewl_image_tile_set(Ewl_Image *i, int x, int y, + int w, int h); /* * Internally used callbacks, override at your own risk. ------------------------------------------------------- This SF.Net email is sponsored by: InterSystems CACHE FREE OODBMS DOWNLOAD - A multidimensional database that combines robust object and relational technologies, making it a perfect match for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8 _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs