From: <enl...@li...> - 2002-01-26 07:37:41
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle Log Message: Initial import of estyle. This was part of the new etox code, but was split out so that it can be used for adding styles to text that are simple one liners w/o the extra overhead necessary for multi-line layout, obstacle wrapping, etc. I'm now converting the rest of the new etox code to use this API. Status: Vendor Tag: rbdpngn Release Tags: start N e17/libs/estyle/.cvsignore N e17/libs/estyle/AUTHORS N e17/libs/estyle/COPYING N e17/libs/estyle/Makefile.am N e17/libs/estyle/README N e17/libs/estyle/acconfig.h N e17/libs/estyle/autogen.sh N e17/libs/estyle/configure.ac N e17/libs/estyle/configure.in N e17/libs/estyle/estyle-config.h.in N e17/libs/estyle/estyle-config.in N e17/libs/estyle/estyle.m4 N e17/libs/estyle/estyle.spec N e17/libs/estyle/data/colors.db N e17/libs/estyle/data/fonts/andover.ttf N e17/libs/estyle/data/fonts/cinema.ttf N e17/libs/estyle/data/fonts/grunge.ttf N e17/libs/estyle/data/fonts/morpheus.ttf N e17/libs/estyle/data/fonts/nationff.ttf N e17/libs/estyle/data/fonts/notepad.ttf N e17/libs/estyle/data/styles/bold.style.db N e17/libs/estyle/data/styles/outline.style.db N e17/libs/estyle/data/styles/raised.style.db N e17/libs/estyle/data/styles/shadow.style.db N e17/libs/estyle/src/Estyle.h N e17/libs/estyle/src/Estyle_private.h N e17/libs/estyle/src/Makefile.am N e17/libs/estyle/src/Makefile.in N e17/libs/estyle/src/estyle.c N e17/libs/estyle/src/estyle_color.c N e17/libs/estyle/src/estyle_color.h N e17/libs/estyle/src/estyle_font.c N e17/libs/estyle/src/estyle_font.h N e17/libs/estyle/src/estyle_style.c N e17/libs/estyle/src/estyle_style.h N e17/libs/estyle/debian/.cvsignore N e17/libs/estyle/debian/Makefile.am N e17/libs/estyle/debian/changelog N e17/libs/estyle/debian/control N e17/libs/estyle/debian/copyright N e17/libs/estyle/debian/libetox0.postinst N e17/libs/estyle/debian/rules N e17/libs/estyle/test/.cvsignore N e17/libs/estyle/test/Makefile.am N e17/libs/estyle/test/estyle_test_simple.c N e17/libs/estyle/test/img/.cvsignore N e17/libs/estyle/test/img/Makefile.am N e17/libs/estyle/test/img/arrow_down.png N e17/libs/estyle/test/img/arrow_up.png N e17/libs/estyle/test/img/evas_test_image_0.png N e17/libs/estyle/test/img/evas_test_image_1.png N e17/libs/estyle/test/img/evas_test_image_2.png N e17/libs/estyle/test/img/sky001.png No conflicts created by this import |
From: <enl...@li...> - 2002-01-26 07:42:37
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/debian Added Files: libestyle0.postinst Removed Files: libetox0.postinst Log Message: Oops, I remembered to replace etox with estyle inside the files, but forgot to rename this file. |
From: <enl...@li...> - 2002-01-26 17:43:40
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/test Modified Files: Makefile.am Log Message: Forgot to remove the efence linking. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/test/Makefile.am,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- Makefile.am 2002/01/26 07:37:27 1.1.1.1 +++ Makefile.am 2002/01/26 17:43:39 1.2 @@ -11,4 +11,4 @@ estyle_test_simple_DEPENDENCIES = $(top_builddir)/src/libestyle.la estyle_test_simple_SOURCES = estyle_test_simple.c estyle_test_simple_LDFLAGS = -static -estyle_test_simple_LDADD = $(top_builddir)/src/libestyle.la @evas_libs@ @evas_libs@ @ecore_libs@ @edb_libs@ -lefence +estyle_test_simple_LDADD = $(top_builddir)/src/libestyle.la @evas_libs@ @evas_libs@ @ecore_libs@ @edb_libs@ |
From: <enl...@li...> - 2002-01-29 21:26:46
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/test Modified Files: estyle_test_simple.c Log Message: Made some minor updates to the docs to give credit where it is due, and filled out the api a bit more. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/test/estyle_test_simple.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- estyle_test_simple.c 2002/01/26 07:37:27 1.1.1.1 +++ estyle_test_simple.c 2002/01/29 21:26:45 1.2 @@ -88,11 +88,12 @@ &w, &h); if (index < 0) printf("Click occurred outside of estyle\n"); - else + else { printf("Clicked letter %c at %d, %d size %d x %d\n", last[index], x, y, w, h); - evas_move(evas, cursor, x, y); - evas_resize(evas, cursor, w, h); + evas_move(evas, cursor, x, y); + evas_resize(evas, cursor, w, h); + } } else if (eemd->button == 2) { layer = -layer; @@ -233,11 +234,12 @@ estyle_set_color(e, 128, 255, 255, 255); estyle_set_clip(e, clip_rect); estyle_show(e); + estyle_text_at(e, 0, &curs_x, &curs_y, &curs_w, &curs_h); /* add a cursor */ cursor = evas_add_rectangle(evas); - evas_resize(evas, cursor, 10, 20); - evas_move(evas, cursor, 30, 30); + evas_move(evas, cursor, curs_x, curs_y); + evas_resize(evas, cursor, curs_w, curs_h); evas_set_layer(evas, cursor, 10000); evas_set_color(evas, cursor, 255, 255, 255, 128); evas_show(evas, cursor); |
From: <enl...@li...> - 2002-01-29 21:27:17
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/doc Modified Files: manual.raw Log Message: Made some minor updates to the docs to give credit where it is due, and filled out the api a bit more. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/doc/manual.raw,v retrieving revision 1.1 retrieving revision 1.2 diff -u -3 -r1.1 -r1.2 --- manual.raw 2002/01/26 15:12:56 1.1 +++ manual.raw 2002/01/29 21:26:45 1.2 @@ -8,12 +8,12 @@ <authorgroup> <author> - <firstname></firstname> - <othername></othername> - <surname></surname> + <firstname>Nathan</firstname> + <othername>"RbdPngn"</othername> + <surname>Ingersoll</surname> <affiliation> <address> - <email></email> + <email>ningerso@d.umn.edu</email> </address> </affiliation> </author> @@ -22,7 +22,7 @@ <copyright> <year>2001</year> - <holder></holder> + <holder>Nathan Ingersoll</holder> </copyright> <legalnotice> @@ -88,8 +88,19 @@ <biblioentry id="bib-efsd"> <bookbiblio> <author> - <firstname></firstname> - <surname></surname> + <firstname>Till</firstname> + <surname>Adam</surname> + </author> + <title>Initial Documentation Setup</title> + <date>2001</date> + </bookbiblio> + </biblioentry> + + <biblioentry id="bib-efsd"> + <bookbiblio> + <author> + <firstname>Christian</firstname> + <surname>Kreibich</surname> </author> <title>The Estyle Programming Manual</title> <date>2001</date> |
From: <enl...@li...> - 2002-01-29 21:27:17
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle.h Estyle_private.h estyle.c estyle_color.c estyle_font.c estyle_style.c Removed Files: estyle_font.h Log Message: Made some minor updates to the docs to give credit where it is due, and filled out the api a bit more. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- Estyle.h 2002/01/26 07:37:24 1.1.1.1 +++ Estyle.h 2002/01/29 21:26:45 1.2 @@ -18,29 +18,60 @@ }; /* - * The bit holds all information necessary for display and layout of the text + * The estyle holds all information necessary for display and layout of the text */ typedef struct _estyle Estyle; +/* + * Constructor/destructor + */ Estyle *estyle_new(Evas evas, char *text, char *style); void estyle_free(Estyle * es); -void estyle_set_text(Estyle * es, char *text); + +/* + * Visibility modifiers + */ void estyle_show(Estyle * es); void estyle_hide(Estyle * es); -void estyle_set_layer(Estyle * es, int layer); + +/* + * Content and appearance manipulators + */ +char *estyle_get_text(Estyle * es); void estyle_set_text(Estyle * es, char *text); -void estyle_merge(Estyle * es1, Estyle * es2); +int estyle_get_layer(Estyle * es); +void estyle_set_layer(Estyle * es, int layer); +char *estyle_get_style(Estyle * es); void estyle_set_style(Estyle * es, char *name); void estyle_set_color(Estyle * es, int r, int g, int b, int a); void estyle_set_color_db(Estyle * es, char *name); +int estyle_get_color_red(Estyle * es); +int estyle_get_color_green(Estyle * es); +int estyle_get_color_blue(Estyle * es); +int estyle_get_color_alpha(Estyle * es); + +/* + * Geometry querying + */ void estyle_geometry(Estyle *es, int *x, int *y, int *w, int *h); void estyle_text_at(Estyle *es, int index, int *char_x, int *char_y, int *char_w, int *char_h); int estyle_text_at_position(Estyle *es, int x, int y, int *char_x, int *char_y, int *char_w, int *char_h); + +/* + * Fixing the reported geometry to set values. + */ +inline int estyle_fixed(Estyle *es); +void estyle_fix_geometry(Estyle *es, int x, int y, int w, int h); +void estyle_unfix_geometry(Estyle *es); + +/* + * Joining and splitting estyles. + */ +Estyle *estyle_split(Estyle * es, int index); +void estyle_merge(Estyle * es1, Estyle * es2); -#define BIT_MERGEABLE(es1, es2) (es1 && es2 && \ - !(es1->flags & ESTYLE_BIT_FIXED) && \ - !(es2->flags & ESTYLE_BIT_FIXED) && es1 != es2) +#define ESTYLE_HASH_COLOR(r, g, b, a) ((r << 24) | (g << 16) | (b << 8) | a) #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle_private.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- Estyle_private.h 2002/01/26 07:37:24 1.1.1.1 +++ Estyle_private.h 2002/01/29 21:26:45 1.2 @@ -32,7 +32,6 @@ Ewd_List *bits; }; -#include "estyle_font.h" #include "estyle_style.h" #include "estyle_color.h" @@ -51,9 +50,14 @@ /* * The bits can also have different fonts */ - Estyle_Font *font; + char *font; /* + * Or different font sizes + */ + int font_size; + + /* * Keep track of the geometry of the text to aid in layout. In the * case of a tab character, the width of the bit does not match the * width of the actual character printed. @@ -82,5 +86,15 @@ */ int length; }; + +char *estyle_font_instance(char *name); + +/* + * This rounds the double to the nearest integer and returns it as an int + */ +#define D2I_ROUND(d) (int)(d + 0.5) +#define BIT_MERGEABLE(es1, es2) (es1 && es2 && \ + !(es1->flags & ESTYLE_BIT_FIXED) && \ + !(es2->flags & ESTYLE_BIT_FIXED) && es1 != es2) #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- estyle.c 2002/01/26 07:37:25 1.1.1.1 +++ estyle.c 2002/01/29 21:26:45 1.2 @@ -42,7 +42,7 @@ */ es->color = estyle_color_instance(255, 255, 255, 255); es->font = estyle_font_instance("nationff"); - es->font->size = 14; + es->font_size = 14; if (style) es->style = estyle_style_instance(style); @@ -206,6 +206,26 @@ } /** + * estyle_get_text - retrieve the text in the specified estyle + * @es: the estyle to retrieve text + * + * Returns a pointer to a copy of the text in the estyle @es on success, NULL + * on failure. + */ +char *estyle_get_text(Estyle *es) +{ + char *ret; + + CHECK_PARAM_POINTER_RETURN("es", es, NULL); + + ret = evas_get_text_string(es->evas, es->bit); + if (ret) + ret = strdup(ret); + + return ret; +} + +/** * estyle_set_text - change the text on a specified estyle * @es: the estyle to change text * @text: the new text for the estyle @@ -225,24 +245,27 @@ */ if (es->bit) evas_set_text(es->evas, es->bit, text); - else { - es->bit = evas_add_text(es->evas, es->font->name, - es->font->size, text); + es->bit = evas_add_text(es->evas, es->font, + es->font_size, text); } es->length = strlen(text); - evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); /* - * This essentially performs a round operation, since - * casting a double's value to an int discards the decimal - * portion of the number. Adding 0.5 to the value will round - * it up if it is appropriate. + * If the estyle doesn't have fixed dimensions then set it to the + * geometry of it's contents. */ - es->w = (int) (w + 0.5); - es->h = (int) (h + 0.5); + if (!(es->flags & ESTYLE_BIT_FIXED)) { + evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); + + es->w = D2I_ROUND(w); + es->h = D2I_ROUND(h); + } + /* + * Setup the color of the evas object and move it into position. + */ evas_set_color(es->evas, es->bit, es->color->r, es->color->g, es->color->b, es->color->a); evas_move(es->evas, es->bit, (double)(es->x), (double)(es->y)); @@ -257,6 +280,19 @@ } /** + * estyle_get_layer - retrieve the layer of the estyle + * @es: the estyle to retrieve the current layer + * + * Returns the current layer of the estyle @es. + */ +int estyle_get_layer(Estyle *es) +{ + CHECK_PARAM_POINTER_RETURN("es", es, 0); + + return evas_get_layer(es->evas, es->bit); +} + +/** * estyle_set_layer - change the layer of a estyle and it's style * @es: the estyle to change layer * @layer: the new layer for the estyle @@ -284,16 +320,39 @@ } /** + * estyle_get_font - retrieve a copy of the current font for an estyle + * @es: the estyle to retrieve the current font + * + * Returns a pointer to a copy of the current font of the estyle @es. + */ +char *estyle_get_font(Estyle *es) +{ + char *ret = NULL; + + CHECK_PARAM_POINTER_RETURN("es", es, NULL); + + if (es->font) + ret = strdup(es->font); + + return ret; +} + +/** * estyle_set_font - change the font used for the specified estyle * @es: the estyle to change fonts * @font: the name of the font to use for the estyle * * Returns no value. Changes the font for the specified estyle to @name. */ -void estyle_set_font(Estyle * es, char *name) +void estyle_set_font(Estyle * es, char *name, int size) { CHECK_PARAM_POINTER("es", es); CHECK_PARAM_POINTER("name", name); + + es->font = estyle_font_instance(name); + es->font_size = size; + + evas_set_font(es->evas, es->bit, es->font, es->font_size); } /** @@ -426,17 +485,12 @@ { double xx, yy, ww, hh; - *char_x = 0; - *char_y = 0; - *char_w = 0; - *char_h = 0; - evas_text_at(es->evas, es->bit, index, &xx, &yy, &ww, &hh); - *char_x = (int)(xx + 0.5) + es->x; - *char_y = (int)(yy + 0.5) + es->y; - *char_w = (int)(ww + 0.5); - *char_h = (int)(hh + 0.5); + *char_x = D2I_ROUND(xx) + es->x; + *char_y = D2I_ROUND(yy) + es->y; + *char_w = D2I_ROUND(ww); + *char_h = D2I_ROUND(hh); } /** @@ -457,20 +511,70 @@ int *char_w, int *char_h) { int ret; - double xx, yy, ww, hh; - - *char_x = 0; - *char_y = 0; - *char_w = 0; - *char_h = 0; + double xx = 0, yy = 0, ww = 0, hh = 0; ret = evas_text_at_position(es->evas, es->bit, (double)(x - es->x), (double)(y - es->y), &xx, &yy, &ww, &hh); - *char_x = (int)(xx + 0.5) + es->x; - *char_y = (int)(yy + 0.5) + es->y; - *char_w = (int)(ww + 0.5); - *char_h = (int)(hh + 0.5); + *char_x = D2I_ROUND(xx) + es->x; + *char_y = D2I_ROUND(yy) + es->y; + *char_w = D2I_ROUND(ww); + *char_h = D2I_ROUND(hh); return ret; +} + +/** + * estyle_fixed - determine if the specified estyle has fixed geometry + * @es: the estyle to check for fixed geometry + * + * Returns 0 if the estyle does not have fixed geometry, > 0 otherwise. + */ +inline int estyle_fixed(Estyle *es) +{ + CHECK_PARAM_POINTER_RETURN("es", es, 0); + + return es->flags & ESTYLE_BIT_FIXED; +} + +/** + * estyle_fix_geometry - report a fixed geometry to querying functions + * @es: the estyle to fix the geometry + * @x: the x coordinate to report + * @y: the y coordinate to report + * @w: the width to report + * @h: the height to report + * + * Returns no value. Fixes the reported geometry of @es to @x, @y, @w, and @h + * respectively. + */ +void estyle_fix_geometry(Estyle *es, int x, int y, int w, int h) +{ + CHECK_PARAM_POINTER("es", es); + + es->flags |= ESTYLE_BIT_FIXED; + es->x = x; + es->y = y; + es->w = w; + es->h = h; +} + +/** + * estyle_unfix_geometry - remove the fixed property of the estyle + * @es: the estyle to remove the fixed property + * + * Returns no value. Removes the fixed property of the estyle and updates its + * geometry to the actual geometry of the contents. + */ +void estyle_unfix_geometry(Estyle *es) +{ + double x, y, w, h; + + CHECK_PARAM_POINTER("es", es); + + evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); + es->x = D2I_ROUND(x); + es->y = D2I_ROUND(y); + es->w = D2I_ROUND(w); + es->h = D2I_ROUND(h); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_color.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- estyle_color.c 2002/01/26 15:09:05 1.2 +++ estyle_color.c 2002/01/29 21:26:45 1.3 @@ -1,8 +1,6 @@ #include "../estyle-config.h" #include "Estyle_private.h" -#define HASH_COLOR(r, g, b, a) ((r << 24) | (g << 16) | (b << 8) | a) - static Ewd_Hash *color_table = NULL; static E_DB_File *sys_colors = NULL; static E_DB_File *user_colors = NULL; @@ -27,7 +25,7 @@ /* * Check the hash table for a previous malloc of the color */ - value = HASH_COLOR(r, g, b, a); + value = ESTYLE_HASH_COLOR(r, g, b, a); ret = (Estyle_Color *) ewd_hash_get(color_table, (void *) value); if (!ret) { ret = (Estyle_Color *) malloc(sizeof(Estyle_Color)); @@ -89,7 +87,7 @@ if (!a) e_db_int_get(sys_colors, key, &a); - value = HASH_COLOR(r, g, b, a); + value = ESTYLE_HASH_COLOR(r, g, b, a); /* * Check for a previous allocation for this color. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_font.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- estyle_font.c 2002/01/26 07:37:26 1.1.1.1 +++ estyle_font.c 2002/01/29 21:26:45 1.2 @@ -8,9 +8,9 @@ * * Returns a pointer to a the font on success, NULL on failure. */ -Estyle_Font *estyle_font_instance(char *name) +char *estyle_font_instance(char *name) { - Estyle_Font *fn; + char *fn; CHECK_PARAM_POINTER_RETURN("name", name, NULL); @@ -23,8 +23,7 @@ fn = ewd_hash_get(fonts, name); if (!fn) { - fn = (Estyle_Font *)malloc(sizeof(Estyle_Font)); - fn->name = strdup(name); + fn = strdup(name); ewd_hash_set(fonts, name, fn); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- estyle_style.c 2002/01/26 07:37:26 1.1.1.1 +++ estyle_style.c 2002/01/29 21:26:45 1.2 @@ -512,8 +512,8 @@ /* * Create the text at the correct size and move it into position */ - ret = evas_add_text(es->evas, es->font->name, - es->font->size + layer->size_change, text); + ret = evas_add_text(es->evas, es->font, + es->font_size + layer->size_change, text); evas_move(es->evas, ret, (double)(es->x + layer->x_offset), (double)(es->y + layer->y_offset)); |
From: <enl...@li...> - 2002-01-30 06:48:02
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle.h estyle.c Log Message: Filled in a few of the querying functions. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Estyle.h 2002/01/29 21:26:45 1.2 +++ Estyle.h 2002/01/30 06:48:01 1.3 @@ -44,11 +44,9 @@ char *estyle_get_style(Estyle * es); void estyle_set_style(Estyle * es, char *name); void estyle_set_color(Estyle * es, int r, int g, int b, int a); +void estyle_get_color(Estyle *es, int *r, int *g, int *b, int *a); +void estyle_lookup_color_db(char *name, int *r, int *g, int *b, int *a); void estyle_set_color_db(Estyle * es, char *name); -int estyle_get_color_red(Estyle * es); -int estyle_get_color_green(Estyle * es); -int estyle_get_color_blue(Estyle * es); -int estyle_get_color_alpha(Estyle * es); /* * Geometry querying =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- estyle.c 2002/01/29 21:26:45 1.2 +++ estyle.c 2002/01/30 06:48:01 1.3 @@ -125,6 +125,34 @@ } /** + * estyle_get_color - get the color of the estyle + * @es: the estyle to get the color + * @r: the pointer to the int to store the red value of the estyle + * @g: the pointer to the int to store the green value of the estyle + * @b: the pointer to the int to store the blue value of the estyle + * @a: the pointer to the int to store the alpha value of the estyle + * + * Returns no value. Retrieves the color of the estyle into the integer pointers + * @r, @g, @b and @a. + */ +void estyle_get_color(Estyle *es, int *r, int *g, int *b, int *a) +{ + CHECK_PARAM_POINTER("es", es); + + if (r) + *r = es->color->r; + + if (g) + *g = es->color->g; + + if (b) + *b = es->color->b; + + if (a) + *a = es->color->a; +} + +/** * estyle_set_color - change the color of the estyle * @es: the estyle to change color * @r: the red value of the estyle @@ -145,6 +173,38 @@ } /** + * estyle_lookup_color_db - lookup a colors values by name in color db + * @name: the name of the color to lookup in the color db + * @r: the pointer to the int to store the red value of the estyle + * @g: the pointer to the int to store the green value of the estyle + * @b: the pointer to the int to store the blue value of the estyle + * @a: the pointer to the int to store the alpha value of the estyle + * + * Returns no value. Looks up the color name in the color db and stores the + * values in the integers pointed to by @r, @g, @b, and @a. + */ +void estyle_lookup_color_db(char *name, int *r, int *g, int *b, int *a) +{ + Estyle_Color *color; + + CHECK_PARAM_POINTER("name", name); + + color = estyle_color_instance_db(name); + + if (r) + *r = color->r; + + if (g) + *g = color->g; + + if (b) + *b = color->b; + + if (a) + *a = color->a; +} + +/** * estyle_set_color_db - set the color of an estyle based on color name * @es: the estyle to change the color */ @@ -486,11 +546,18 @@ double xx, yy, ww, hh; evas_text_at(es->evas, es->bit, index, &xx, &yy, &ww, &hh); + + if (char_x) + *char_x = D2I_ROUND(xx) + es->x; + + if (char_y) + *char_y = D2I_ROUND(yy) + es->y; + + if (char_w) + *char_w = D2I_ROUND(ww); - *char_x = D2I_ROUND(xx) + es->x; - *char_y = D2I_ROUND(yy) + es->y; - *char_w = D2I_ROUND(ww); - *char_h = D2I_ROUND(hh); + if (char_h) + *char_h = D2I_ROUND(hh); } /** |
From: <enl...@li...> - 2002-01-30 23:04:13
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle.h estyle.c Log Message: Oops, probably should have the move function in the header file. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Estyle.h 2002/01/30 06:48:01 1.3 +++ Estyle.h 2002/01/30 23:04:12 1.4 @@ -37,6 +37,7 @@ /* * Content and appearance manipulators */ +void estyle_move(Estyle *es, int x, int y); char *estyle_get_text(Estyle * es); void estyle_set_text(Estyle * es, char *text); int estyle_get_layer(Estyle * es); @@ -51,6 +52,7 @@ /* * Geometry querying */ +inline int estyle_length(Estyle *es); void estyle_geometry(Estyle *es, int *x, int *y, int *w, int *h); void estyle_text_at(Estyle *es, int index, int *char_x, int *char_y, int *char_w, int *char_h); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- estyle.c 2002/01/30 06:48:01 1.3 +++ estyle.c 2002/01/30 23:04:12 1.4 @@ -501,6 +501,19 @@ } /** + * estyle_length - retrieve the length of the text in an estyle + * @es: the estyle to retrieve the length + * + * Returns the length of the text in the estyle @es. + */ +inline int estyle_length(Estyle *es) +{ + CHECK_PARAM_POINTER_RETURN("es", es, 0); + + return es->length; +} + +/** * estyle_geometry - retrieve the dimensions of the estyle * @es: the estyle to retrieve dimensions * @x: a pointer to an integer to store the x coordinate of the estyle |
From: <enl...@li...> - 2002-01-30 23:20:18
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle.h Log Message: And the clipping function would be a good thing to have in there. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Estyle.h 2002/01/30 23:04:12 1.4 +++ Estyle.h 2002/01/30 23:20:18 1.5 @@ -38,6 +38,7 @@ * Content and appearance manipulators */ void estyle_move(Estyle *es, int x, int y); +void estyle_set_clip(Estyle *es, Evas_Object clip); char *estyle_get_text(Estyle * es); void estyle_set_text(Estyle * es, char *text); int estyle_get_layer(Estyle * es); |
From: <enl...@li...> - 2002-02-04 22:24:08
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle.h estyle.c Log Message: A slight API change, and an optimizations and bug fix. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- Estyle.h 2002/01/30 23:20:18 1.5 +++ Estyle.h 2002/02/04 22:24:06 1.6 @@ -71,7 +71,7 @@ * Joining and splitting estyles. */ Estyle *estyle_split(Estyle * es, int index); -void estyle_merge(Estyle * es1, Estyle * es2); +int estyle_merge(Estyle * es1, Estyle * es2); #define ESTYLE_HASH_COLOR(r, g, b, a) ((r << 24) | (g << 16) | (b << 8) | a) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- estyle.c 2002/01/30 23:04:12 1.4 +++ estyle.c 2002/02/04 22:24:06 1.5 @@ -118,6 +118,9 @@ { CHECK_PARAM_POINTER("es", es); + if (es->x == x && es->y == y) + return; + es->x = x; es->y = y; evas_move(es->evas, es->bit, (double)(x), (double)(y)); @@ -439,16 +442,19 @@ * @es1: the destination estyle that will contain the final text * @es2: the estyle that will be freed, but it's text will be added to @es1 * - * Returns no value. Appends the text in @es2 to the text in @es1 and destroys - * @es2. + * Returns TRUE if the bits are able to be merged, otherwise FALSE. Appends the + * text in @es2 to the text in @es1 and destroys @es2. */ -void estyle_merge(Estyle * es1, Estyle * es2) +int estyle_merge(Estyle * es1, Estyle * es2) { char *new_text, *text1, *text2; - CHECK_PARAM_POINTER("es1", es1); - CHECK_PARAM_POINTER("es2", es2); + CHECK_PARAM_POINTER_RETURN("es1", es1, FALSE); + CHECK_PARAM_POINTER_RETURN("es2", es2, FALSE); + if (!BIT_MERGEABLE(es1, es2)) + return FALSE; + /* * These return a pointer to the actual text in the evas object, not a * copy of it. So don't free them. @@ -470,6 +476,8 @@ FREE(new_text); estyle_free(es2); + + return TRUE; } /** |
From: <enl...@li...> - 2002-02-15 04:50:52
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle_private.h estyle.c estyle_style.c Log Message: Some compensation for layer offsets when determining geometry and performing layout. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle_private.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Estyle_private.h 29 Jan 2002 21:26:45 -0000 1.2 +++ Estyle_private.h 15 Feb 2002 04:50:50 -0000 1.3 @@ -19,6 +19,8 @@ char *name; E_DB_File *style_db; Ewd_Sheap *layers; + int left_push, right_push, top_push, bottom_push; + int references; }; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- estyle.c 4 Feb 2002 22:24:06 -0000 1.5 +++ estyle.c 15 Feb 2002 04:50:50 -0000 1.6 @@ -123,7 +123,8 @@ es->x = x; es->y = y; - evas_move(es->evas, es->bit, (double)(x), (double)(y)); + evas_move(es->evas, es->bit, (double)(x + es->style->info->left_push), + (double)(y + es->style->info->left_push)); estyle_style_move(es); } @@ -322,8 +323,10 @@ if (!(es->flags & ESTYLE_BIT_FIXED)) { evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); - es->w = D2I_ROUND(w); - es->h = D2I_ROUND(h); + es->w = D2I_ROUND(w) + es->style->info->left_push + + es->style->info->right_push; + es->h = D2I_ROUND(h) + es->style->info->top_push + + es->style->info->bottom_push; } /* @@ -331,7 +334,9 @@ */ evas_set_color(es->evas, es->bit, es->color->r, es->color->g, es->color->b, es->color->a); - evas_move(es->evas, es->bit, (double)(es->x), (double)(es->y)); + evas_move(es->evas, es->bit, + (double)(es->x + es->style->info->left_push), + (double)(es->y + es->style->info->top_push)); /* * Draw style altering bits below the text. @@ -606,8 +611,10 @@ *char_x = D2I_ROUND(xx) + es->x; *char_y = D2I_ROUND(yy) + es->y; - *char_w = D2I_ROUND(ww); - *char_h = D2I_ROUND(hh); + *char_w = D2I_ROUND(ww) + es->style->info->left_push + + es->style->info->right_push; + *char_h = D2I_ROUND(hh) + es->style->info->top_push + + es->style->info->bottom_push; return ret; } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- estyle_style.c 29 Jan 2002 21:26:45 -0000 1.2 +++ estyle_style.c 15 Feb 2002 04:50:50 -0000 1.3 @@ -335,8 +335,10 @@ */ while ((layer = ewd_sheap_item(info->layers, i++)) && (ob = ewd_list_next(es->style->bits))) - evas_move(es->evas, ob, (double)(es->x + layer->x_offset), - (double)(es->y + layer->y_offset)); + evas_move(es->evas, ob, (double)(es->x + layer->x_offset + + info->left_push), + (double)(es->y + layer->y_offset + + info->right_push)); } /* @@ -515,8 +517,10 @@ ret = evas_add_text(es->evas, es->font, es->font_size + layer->size_change, text); - evas_move(es->evas, ret, (double)(es->x + layer->x_offset), - (double)(es->y + layer->y_offset)); + evas_move(es->evas, ret, (double)(es->x + layer->x_offset + + es->style->info->left_push), + (double)(es->y + layer->y_offset + + es->style->info->top_push)); /* * Now determine if it has relative or absolute color and change it's @@ -650,6 +654,22 @@ sprintf(key, "/layers/%d/color/b", i); e_db_int_get(info->style_db, key, &layer->b); + + /* + * Adjust the push of the left and right edges of the estyle. + */ + if (layer->x_offset > info->right_push) + info->right_push = layer->x_offset; + else if (-layer->x_offset > info->left_push) + info->left_push = -layer->x_offset; + + /* + * Adjust the push of the top and bottom edges of the estyle. + */ + if (layer->y_offset > info->bottom_push) + info->bottom_push = layer->y_offset; + else if (-layer->y_offset > info->top_push) + info->top_push = -layer->y_offset; ewd_sheap_insert(info->layers, layer); } |
From: <enl...@li...> - 2002-02-15 04:57:10
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: estyle.c Log Message: Added a few checks that will hopefully avoid any problems when there is no style set. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- estyle.c 15 Feb 2002 04:50:50 -0000 1.6 +++ estyle.c 15 Feb 2002 04:57:09 -0000 1.7 @@ -123,8 +123,10 @@ es->x = x; es->y = y; - evas_move(es->evas, es->bit, (double)(x + es->style->info->left_push), - (double)(y + es->style->info->left_push)); + evas_move(es->evas, es->bit, (double)(x + (es->style ? + es->style->info->left_push : 0)), + (double)(y + (es->style ? + es->style->info->top_push : 0))); estyle_style_move(es); } @@ -323,10 +325,10 @@ if (!(es->flags & ESTYLE_BIT_FIXED)) { evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); - es->w = D2I_ROUND(w) + es->style->info->left_push - + es->style->info->right_push; - es->h = D2I_ROUND(h) + es->style->info->top_push - + es->style->info->bottom_push; + es->w = D2I_ROUND(w) + (es->style ? es->style->info->left_push + + es->style->info->right_push : 0); + es->h = D2I_ROUND(h) + (es->style ? es->style->info->top_push + + es->style->info->bottom_push : 0); } /* @@ -335,8 +337,10 @@ evas_set_color(es->evas, es->bit, es->color->r, es->color->g, es->color->b, es->color->a); evas_move(es->evas, es->bit, - (double)(es->x + es->style->info->left_push), - (double)(es->y + es->style->info->top_push)); + (double)(es->x + (es->style ? + es->style->info->left_push : 0)), + (double)(es->y + (es->style ? + es->style->info->top_push : 0))); /* * Draw style altering bits below the text. @@ -611,10 +615,10 @@ *char_x = D2I_ROUND(xx) + es->x; *char_y = D2I_ROUND(yy) + es->y; - *char_w = D2I_ROUND(ww) + es->style->info->left_push - + es->style->info->right_push; - *char_h = D2I_ROUND(hh) + es->style->info->top_push - + es->style->info->bottom_push; + *char_w = D2I_ROUND(ww) + (es->style ? es->style->info->left_push + + es->style->info->right_push : 0); + *char_h = D2I_ROUND(hh) + (es->style ? es->style->info->top_push + + es->style->info->bottom_push : 0); return ret; } |
From: <enl...@li...> - 2002-02-21 05:07:15
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle.h estyle.c estyle_style.c estyle_style.h Log Message: Forgot to update the font on the style portions of the text when estyle_set_font is called. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- Estyle.h 4 Feb 2002 22:24:06 -0000 1.6 +++ Estyle.h 21 Feb 2002 05:07:13 -0000 1.7 @@ -38,15 +38,24 @@ * Content and appearance manipulators */ void estyle_move(Estyle *es, int x, int y); + void estyle_set_clip(Estyle *es, Evas_Object clip); + char *estyle_get_text(Estyle * es); void estyle_set_text(Estyle * es, char *text); + +char *estyle_get_font(Estyle *es); +void estyle_set_font(Estyle * es, char *name, int size); + int estyle_get_layer(Estyle * es); void estyle_set_layer(Estyle * es, int layer); + char *estyle_get_style(Estyle * es); void estyle_set_style(Estyle * es, char *name); + void estyle_set_color(Estyle * es, int r, int g, int b, int a); void estyle_get_color(Estyle *es, int *r, int *g, int *b, int *a); + void estyle_lookup_color_db(char *name, int *r, int *g, int *b, int *a); void estyle_set_color_db(Estyle * es, char *name); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- estyle.c 15 Feb 2002 04:57:09 -0000 1.7 +++ estyle.c 21 Feb 2002 05:07:13 -0000 1.8 @@ -425,6 +425,8 @@ es->font_size = size; evas_set_font(es->evas, es->bit, es->font, es->font_size); + if (es->style) + estyle_style_set_font(es); } /** =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- estyle_style.c 15 Feb 2002 04:50:50 -0000 1.3 +++ estyle_style.c 21 Feb 2002 05:07:13 -0000 1.4 @@ -396,6 +396,43 @@ } /* + * estyle_style_set_font - set the font for the style portion of the estyle + * @es: the estyle to use for updating the font for the estyle + * + * Returns no value. Updates the font for the estyle @es. + */ +void estyle_style_set_font(Estyle *es) +{ + int i; + Evas_Object sob; + Estyle_Style_Info *info; + Estyle_Style_Layer *layer; + + CHECK_PARAM_POINTER("es", es); + + /* + * Prepare to traverse the list of bits and layers to get the correct + * layout. + */ + info = (Estyle_Style_Info *)es->style->info; + + if (!es->style->bits) + return; + ewd_list_goto_first(es->style->bits); + i = 0; + + /* + * Each layer corresponds to a bit in the evas. So we need to + * increment through each list at the same time. Both lists should + * have the same number of items in them, but check for that just in + * case there isn't. + */ + while ((layer = ewd_sheap_item(info->layers, i++)) && + (sob = ewd_list_next(es->style->bits))) + evas_set_font(es->evas, sob, es->font, es->font_size); +} + +/* * estyle_style_set_clip - change the clip rectangle used by the style objects * @es: the estyle to change the style clip rectangle * @ob: the evas object to be used as a clip rectangle =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- estyle_style.h 26 Jan 2002 07:37:26 -0000 1.1.1.1 +++ estyle_style.h 21 Feb 2002 05:07:13 -0000 1.2 @@ -28,6 +28,7 @@ void estyle_style_move(Estyle * bit); void estyle_style_set_clip(Estyle * bit, Evas_Object ob); void estyle_style_set_color(Estyle * bit); +void estyle_style_set_font(Estyle *es); int estyle_style_set_layer_lower(Estyle * bit, int layer); int estyle_style_set_layer_upper(Estyle * bit, int layer, int start); |
From: <enl...@li...> - 2002-02-25 23:57:54
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/test Modified Files: estyle_test_simple.c Log Message: Fixed up the changing of style when changing text. Also added support for ewd's shared strings. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/test/estyle_test_simple.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- estyle_test_simple.c 29 Jan 2002 21:26:45 -0000 1.2 +++ estyle_test_simple.c 25 Feb 2002 23:57:53 -0000 1.3 @@ -73,17 +73,15 @@ (Ecore_Event_Mouse_Down *) ev->event; if (eemd->button == 1) { - /* if (last == string1) { - estyle_context_set_style(e, "shadow"); + estyle_set_style(e, "raised"); estyle_set_text(e, string2); last = string2; } else { - estyle_context_set_style(e, "raised"); + estyle_set_style(e, "shadow"); estyle_set_text(e, string1); last = string1; } - */ index = estyle_text_at_position(e, eemd->x, eemd->y, &x, &y, &w, &h); if (index < 0) |
From: <enl...@li...> - 2002-02-25 23:58:24
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle_private.h Makefile.am Makefile.in estyle.c estyle_style.c estyle_style.h Removed Files: estyle_font.c Log Message: Fixed up the changing of style when changing text. Also added support for ewd's shared strings. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle_private.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Estyle_private.h 15 Feb 2002 04:50:50 -0000 1.3 +++ Estyle_private.h 25 Feb 2002 23:57:53 -0000 1.4 @@ -89,8 +89,6 @@ int length; }; -char *estyle_font_instance(char *name); - /* * This rounds the double to the nearest integer and returns it as an int */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Makefile.am,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- Makefile.am 26 Jan 2002 07:37:24 -0000 1.1.1.1 +++ Makefile.am 25 Feb 2002 23:57:53 -0000 1.2 @@ -12,7 +12,6 @@ libestyle_la_SOURCES = \ Estyle.h \ estyle.c \ -estyle_font.c \ estyle_style.c \ estyle_color.c =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Makefile.in 26 Jan 2002 15:09:05 -0000 1.2 +++ Makefile.in 25 Feb 2002 23:57:53 -0000 1.3 @@ -98,7 +98,7 @@ installed_headers_DATA = Estyle.h -libestyle_la_SOURCES = Estyle.h estyle.c estyle_font.c estyle_style.c estyle_color.c +libestyle_la_SOURCES = Estyle.h estyle.c estyle_style.c estyle_color.c libestyle_la_LIBADD = @evas_libs@ @ewd_libs@ @@ -114,8 +114,7 @@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ -libestyle_la_OBJECTS = estyle.lo estyle_font.lo estyle_style.lo \ -estyle_color.lo +libestyle_la_OBJECTS = estyle.lo estyle_style.lo estyle_color.lo CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -130,8 +129,7 @@ TAR = tar GZIP_ENV = --best -DEP_FILES = .deps/estyle.P .deps/estyle_color.P .deps/estyle_font.P \ -.deps/estyle_style.P +DEP_FILES = .deps/estyle.P .deps/estyle_color.P .deps/estyle_style.P SOURCES = $(libestyle_la_SOURCES) OBJECTS = $(libestyle_la_OBJECTS) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- estyle.c 21 Feb 2002 05:07:13 -0000 1.8 +++ estyle.c 25 Feb 2002 23:57:53 -0000 1.9 @@ -41,7 +41,7 @@ * Set some default colors, font, and font size. */ es->color = estyle_color_instance(255, 255, 255, 255); - es->font = estyle_font_instance("nationff"); + es->font = ewd_string_instance("nationff"); es->font_size = 14; if (style) @@ -309,11 +309,22 @@ * Create the text if no evas object is present, otherwise just change * of the evas object. */ - if (es->bit) + if (es->bit) { evas_set_text(es->evas, es->bit, text); + + /* + * Set the text for the style bits. + */ + estyle_style_set_text(es); + } else { es->bit = evas_add_text(es->evas, es->font, es->font_size, text); + + /* + * Draw style altering bits below the text. + */ + estyle_style_draw(es, text); } es->length = strlen(text); @@ -342,11 +353,6 @@ (double)(es->y + (es->style ? es->style->info->top_push : 0))); - /* - * Draw style altering bits below the text. - */ - estyle_style_draw(es, text); - if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); } @@ -421,7 +427,7 @@ CHECK_PARAM_POINTER("es", es); CHECK_PARAM_POINTER("name", name); - es->font = estyle_font_instance(name); + es->font = ewd_string_instance(name); es->font_size = size; evas_set_font(es->evas, es->bit, es->font, es->font_size); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- estyle_style.c 21 Feb 2002 05:07:13 -0000 1.4 +++ estyle_style.c 25 Feb 2002 23:57:53 -0000 1.5 @@ -433,6 +433,49 @@ } /* + * estyle_style_set_text - set the text for the style portion of the estyle + * @es: the estyle to use for updating the text for the estyle + * + * Returns no value. Updates the text for the estyle @es. + */ +void estyle_style_set_text(Estyle *es) +{ + int i; + char *text; + Evas_Object sob; + Estyle_Style_Info *info; + Estyle_Style_Layer *layer; + + CHECK_PARAM_POINTER("es", es); + + /* + * Prepare to traverse the list of bits and layers to get the correct + * layout. + */ + text = evas_get_text_string(es->evas, es->bit); + if (!text) + return; + + info = (Estyle_Style_Info *)es->style->info; + + if (!es->style->bits) + return; + + ewd_list_goto_first(es->style->bits); + i = 0; + + /* + * Each layer corresponds to a bit in the evas. So we need to + * increment through each list at the same time. Both lists should + * have the same number of items in them, but check for that just in + * case there isn't. + */ + while ((layer = ewd_sheap_item(info->layers, i++)) && + (sob = ewd_list_next(es->style->bits))) + evas_set_text(es->evas, sob, text); +} + +/* * estyle_style_set_clip - change the clip rectangle used by the style objects * @es: the estyle to change the style clip rectangle * @ob: the evas object to be used as a clip rectangle @@ -504,7 +547,7 @@ /* * Load the information for this style info */ - found->name = strdup(name); + found->name = ewd_string_instance(name); _estyle_style_info_load(found); ewd_hash_set(styles, name, found); } @@ -533,7 +576,9 @@ ewd_hash_remove(styles, info->name); if (info->layers) ewd_sheap_destroy(info->layers); - FREE(info->name); + ewd_string_release(info->name); + + FREE(info); } } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- estyle_style.h 21 Feb 2002 05:07:13 -0000 1.2 +++ estyle_style.h 25 Feb 2002 23:57:53 -0000 1.3 @@ -29,6 +29,7 @@ void estyle_style_set_clip(Estyle * bit, Evas_Object ob); void estyle_style_set_color(Estyle * bit); void estyle_style_set_font(Estyle *es); +void estyle_style_set_text(Estyle *es); int estyle_style_set_layer_lower(Estyle * bit, int layer); int estyle_style_set_layer_upper(Estyle * bit, int layer, int start); |
From: <enl...@li...> - 2002-02-27 00:19:03
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/test Modified Files: estyle_test_simple.c Log Message: Pointless to keep a copy of the font and font size since evas keeps all of this information internally. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/test/estyle_test_simple.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- estyle_test_simple.c 25 Feb 2002 23:57:53 -0000 1.3 +++ estyle_test_simple.c 27 Feb 2002 00:19:02 -0000 1.4 @@ -128,8 +128,8 @@ ecore_window_expose); ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_DOWN, ecore_mouse_down); -/* ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_MOVE, - ecore_mouse_move); */ + ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_MOVE, + ecore_mouse_move); ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_IN, ecore_mouse_in); ecore_event_filter_handler_add(ECORE_EVENT_MOUSE_OUT, |
From: <enl...@li...> - 2002-02-27 00:19:33
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle_private.h estyle.c estyle_style.c estyle_style.h Log Message: Pointless to keep a copy of the font and font size since evas keeps all of this information internally. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle_private.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- Estyle_private.h 25 Feb 2002 23:57:53 -0000 1.4 +++ Estyle_private.h 27 Feb 2002 00:19:02 -0000 1.5 @@ -50,16 +50,6 @@ Estyle_Color *color; /* - * The bits can also have different fonts - */ - char *font; - - /* - * Or different font sizes - */ - int font_size; - - /* * Keep track of the geometry of the text to aid in layout. In the * case of a tab character, the width of the bit does not match the * width of the actual character printed. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- estyle.c 25 Feb 2002 23:57:53 -0000 1.9 +++ estyle.c 27 Feb 2002 00:19:02 -0000 1.10 @@ -3,6 +3,8 @@ #include <ctype.h> #define ESTYLE_TABWIDTH 8 +#define DEFAULT_FONT "nationff" +#define DEFAULT_SIZE 12 static int estyle_setup_complete = 0; @@ -41,8 +43,6 @@ * Set some default colors, font, and font size. */ es->color = estyle_color_instance(255, 255, 255, 255); - es->font = ewd_string_instance("nationff"); - es->font_size = 14; if (style) es->style = estyle_style_instance(style); @@ -318,8 +318,8 @@ estyle_style_set_text(es); } else { - es->bit = evas_add_text(es->evas, es->font, - es->font_size, text); + es->bit = evas_add_text(es->evas, DEFAULT_FONT, + DEFAULT_SIZE, text); /* * Draw style altering bits below the text. @@ -405,14 +405,9 @@ */ char *estyle_get_font(Estyle *es) { - char *ret = NULL; - CHECK_PARAM_POINTER_RETURN("es", es, NULL); - if (es->font) - ret = strdup(es->font); - - return ret; + return evas_get_text_font(es->evas, es->bit); } /** @@ -422,17 +417,14 @@ * * Returns no value. Changes the font for the specified estyle to @name. */ -void estyle_set_font(Estyle * es, char *name, int size) +void estyle_set_font(Estyle * es, char *font, int size) { CHECK_PARAM_POINTER("es", es); - CHECK_PARAM_POINTER("name", name); - - es->font = ewd_string_instance(name); - es->font_size = size; + CHECK_PARAM_POINTER("font", font); - evas_set_font(es->evas, es->bit, es->font, es->font_size); + evas_set_font(es->evas, es->bit, font, size); if (es->style) - estyle_style_set_font(es); + estyle_style_set_font(es, font, size); } /** =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- estyle_style.c 25 Feb 2002 23:57:53 -0000 1.5 +++ estyle_style.c 27 Feb 2002 00:19:02 -0000 1.6 @@ -401,7 +401,7 @@ * * Returns no value. Updates the font for the estyle @es. */ -void estyle_style_set_font(Estyle *es) +void estyle_style_set_font(Estyle *es, char *font, int size) { int i; Evas_Object sob; @@ -409,6 +409,7 @@ Estyle_Style_Layer *layer; CHECK_PARAM_POINTER("es", es); + CHECK_PARAM_POINTER("font", font); /* * Prepare to traverse the list of bits and layers to get the correct @@ -429,7 +430,7 @@ */ while ((layer = ewd_sheap_item(info->layers, i++)) && (sob = ewd_list_next(es->style->bits))) - evas_set_font(es->evas, sob, es->font, es->font_size); + evas_set_font(es->evas, sob, font, size); } /* @@ -591,13 +592,16 @@ Estyle * es, char *text) { int r, g, b, a; + char *font; + int size; Evas_Object ret; /* * Create the text at the correct size and move it into position */ - ret = evas_add_text(es->evas, es->font, - es->font_size + layer->size_change, text); + font = evas_get_text_font(es->evas, es->bit); + size = evas_get_text_size(es->evas, es->bit); + ret = evas_add_text(es->evas, font, size + layer->size_change, text); evas_move(es->evas, ret, (double)(es->x + layer->x_offset + es->style->info->left_push), =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- estyle_style.h 25 Feb 2002 23:57:53 -0000 1.3 +++ estyle_style.h 27 Feb 2002 00:19:02 -0000 1.4 @@ -28,7 +28,7 @@ void estyle_style_move(Estyle * bit); void estyle_style_set_clip(Estyle * bit, Evas_Object ob); void estyle_style_set_color(Estyle * bit); -void estyle_style_set_font(Estyle *es); +void estyle_style_set_font(Estyle *es, char *font, int size); void estyle_style_set_text(Estyle *es); int estyle_style_set_layer_lower(Estyle * bit, int layer); int estyle_style_set_layer_upper(Estyle * bit, int layer, int start); |
From: <enl...@li...> - 2002-03-21 07:55:16
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: estyle.c Log Message: Minor modification to ensure that size and position get updated when changing settings on the estyle. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- estyle.c 27 Feb 2002 00:19:02 -0000 1.10 +++ estyle.c 21 Mar 2002 07:55:14 -0000 1.11 @@ -6,6 +6,8 @@ #define DEFAULT_FONT "nationff" #define DEFAULT_SIZE 12 +void __estyle_update(Estyle *es); + static int estyle_setup_complete = 0; /** @@ -269,6 +271,8 @@ if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); + + __estyle_update(es); } /** @@ -301,8 +305,6 @@ */ void estyle_set_text(Estyle * es, char *text) { - double x, y, w, h; - CHECK_PARAM_POINTER("es", es); /* @@ -329,32 +331,10 @@ es->length = strlen(text); - /* - * If the estyle doesn't have fixed dimensions then set it to the - * geometry of it's contents. - */ - if (!(es->flags & ESTYLE_BIT_FIXED)) { - evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); - - es->w = D2I_ROUND(w) + (es->style ? es->style->info->left_push - + es->style->info->right_push : 0); - es->h = D2I_ROUND(h) + (es->style ? es->style->info->top_push - + es->style->info->bottom_push : 0); - } - - /* - * Setup the color of the evas object and move it into position. - */ - evas_set_color(es->evas, es->bit, es->color->r, es->color->g, - es->color->b, es->color->a); - evas_move(es->evas, es->bit, - (double)(es->x + (es->style ? - es->style->info->left_push : 0)), - (double)(es->y + (es->style ? - es->style->info->top_push : 0))); - if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); + + __estyle_update(es); } /** @@ -425,6 +405,8 @@ evas_set_font(es->evas, es->bit, font, size); if (es->style) estyle_style_set_font(es, font, size); + + __estyle_update(es); } /** @@ -676,4 +658,36 @@ es->y = D2I_ROUND(y); es->w = D2I_ROUND(w); es->h = D2I_ROUND(h); +} + +/* + * __estyle_update - update the sizing and position of the estyle + */ +void __estyle_update(Estyle *es) +{ + double x, y, w, h; + + /* + * If the estyle doesn't have fixed dimensions then set it to the + * geometry of it's contents. + */ + if (!(es->flags & ESTYLE_BIT_FIXED)) { + evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); + + es->w = D2I_ROUND(w) + (es->style ? es->style->info->left_push + + es->style->info->right_push : 0); + es->h = D2I_ROUND(h) + (es->style ? es->style->info->top_push + + es->style->info->bottom_push : 0); + } + + /* + * Setup the color of the evas object and move it into position. + */ + evas_set_color(es->evas, es->bit, es->color->r, es->color->g, + es->color->b, es->color->a); + evas_move(es->evas, es->bit, + (double)(es->x + (es->style ? + es->style->info->left_push : 0)), + (double)(es->y + (es->style ? + es->style->info->top_push : 0))); } |
From: <enl...@li...> - 2002-03-21 07:57:15
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle Modified Files: AUTHORS COPYING Log Message: Updated author and copyright information that I had just copied from etox. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/AUTHORS,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- AUTHORS 26 Jan 2002 07:37:07 -0000 1.1.1.1 +++ AUTHORS 21 Mar 2002 07:57:15 -0000 1.2 @@ -1,4 +1 @@ -Mandrake <man...@ma...> -Adam Kisiel <ki...@if...> -BLAdER (redalb) <bl...@ne...> RbdPngn <ningerso@d.umn.edu> =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/COPYING,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- COPYING 26 Jan 2002 07:37:07 -0000 1.1.1.1 +++ COPYING 21 Mar 2002 07:57:15 -0000 1.2 @@ -1,4 +1,4 @@ -Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS) +Copyright (C) 2002 Nathan Ingersoll and various contributors (see AUTHORS) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to |
From: <enl...@li...> - 2002-03-21 20:28:07
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Tag: SPLIT estyle.c Log Message: Sync up SPLIT with HEAD. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.10 retrieving revision 1.10.2.1 diff -u -3 -r1.10 -r1.10.2.1 --- estyle.c 27 Feb 2002 00:19:02 -0000 1.10 +++ estyle.c 21 Mar 2002 20:28:03 -0000 1.10.2.1 @@ -6,6 +6,8 @@ #define DEFAULT_FONT "nationff" #define DEFAULT_SIZE 12 +void __estyle_update(Estyle *es); + static int estyle_setup_complete = 0; /** @@ -269,6 +271,8 @@ if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); + + __estyle_update(es); } /** @@ -301,8 +305,6 @@ */ void estyle_set_text(Estyle * es, char *text) { - double x, y, w, h; - CHECK_PARAM_POINTER("es", es); /* @@ -329,32 +331,10 @@ es->length = strlen(text); - /* - * If the estyle doesn't have fixed dimensions then set it to the - * geometry of it's contents. - */ - if (!(es->flags & ESTYLE_BIT_FIXED)) { - evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); - - es->w = D2I_ROUND(w) + (es->style ? es->style->info->left_push - + es->style->info->right_push : 0); - es->h = D2I_ROUND(h) + (es->style ? es->style->info->top_push - + es->style->info->bottom_push : 0); - } - - /* - * Setup the color of the evas object and move it into position. - */ - evas_set_color(es->evas, es->bit, es->color->r, es->color->g, - es->color->b, es->color->a); - evas_move(es->evas, es->bit, - (double)(es->x + (es->style ? - es->style->info->left_push : 0)), - (double)(es->y + (es->style ? - es->style->info->top_push : 0))); - if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); + + __estyle_update(es); } /** @@ -425,6 +405,8 @@ evas_set_font(es->evas, es->bit, font, size); if (es->style) estyle_style_set_font(es, font, size); + + __estyle_update(es); } /** @@ -676,4 +658,36 @@ es->y = D2I_ROUND(y); es->w = D2I_ROUND(w); es->h = D2I_ROUND(h); +} + +/* + * __estyle_update - update the sizing and position of the estyle + */ +void __estyle_update(Estyle *es) +{ + double x, y, w, h; + + /* + * If the estyle doesn't have fixed dimensions then set it to the + * geometry of it's contents. + */ + if (!(es->flags & ESTYLE_BIT_FIXED)) { + evas_get_geometry(es->evas, es->bit, &x, &y, &w, &h); + + es->w = D2I_ROUND(w) + (es->style ? es->style->info->left_push + + es->style->info->right_push : 0); + es->h = D2I_ROUND(h) + (es->style ? es->style->info->top_push + + es->style->info->bottom_push : 0); + } + + /* + * Setup the color of the evas object and move it into position. + */ + evas_set_color(es->evas, es->bit, es->color->r, es->color->g, + es->color->b, es->color->a); + evas_move(es->evas, es->bit, + (double)(es->x + (es->style ? + es->style->info->left_push : 0)), + (double)(es->y + (es->style ? + es->style->info->top_push : 0))); } |
From: <enl...@li...> - 2002-03-21 20:28:35
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle Modified Files: Tag: SPLIT AUTHORS COPYING autogen.sh Log Message: Sync up SPLIT with HEAD. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/AUTHORS,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.2.1 diff -u -3 -r1.1.1.1 -r1.1.1.1.2.1 --- AUTHORS 26 Jan 2002 07:37:07 -0000 1.1.1.1 +++ AUTHORS 21 Mar 2002 20:28:03 -0000 1.1.1.1.2.1 @@ -1,4 +1 @@ -Mandrake <man...@ma...> -Adam Kisiel <ki...@if...> -BLAdER (redalb) <bl...@ne...> RbdPngn <ningerso@d.umn.edu> =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/COPYING,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.2.1 diff -u -3 -r1.1.1.1 -r1.1.1.1.2.1 --- COPYING 26 Jan 2002 07:37:07 -0000 1.1.1.1 +++ COPYING 21 Mar 2002 20:28:03 -0000 1.1.1.1.2.1 @@ -1,4 +1,4 @@ -Copyright (C) 2000 Carsten Haitzler and various contributors (see AUTHORS) +Copyright (C) 2002 Nathan Ingersoll and various contributors (see AUTHORS) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/autogen.sh,v retrieving revision 1.1.1.1 retrieving revision 1.1.1.1.2.1 diff -u -3 -r1.1.1.1 -r1.1.1.1.2.1 --- autogen.sh 26 Jan 2002 07:37:07 -0000 1.1.1.1 +++ autogen.sh 21 Mar 2002 20:28:03 -0000 1.1.1.1.2.1 @@ -1,5 +1,10 @@ #! /bin/sh +abort () { + echo "$1 not found or command failed. Aborting!" + exit 1 +} + srcdir=`dirname $0` test -z "$srcdir" && srcdir=. @@ -8,11 +13,11 @@ DIE=0 set -x -autoheader -libtoolize --ltdl --force --copy -aclocal -automake --foreign --add-missing -autoconf +aclocal || abort "aclocal" +libtoolize --ltdl --force --copy || abort "libtoolize" +autoheader || abort "autoheader" +automake --foreign --add-missing || abort "automake" +autoconf || abort "autoconf" if test -z "$*"; then echo "I am going to run ./configure with no arguments - if you wish " @@ -21,7 +26,7 @@ cd "$THEDIR" -$srcdir/configure "$@" +$srcdir/configure "$@" || abort "configure" set +x |
From: <enl...@li...> - 2002-03-26 18:55:17
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/test Modified Files: estyle_test_simple.c Log Message: Set the layer when the estyle_set_text is called, this should fix a problem with the stacking order being wrong when no layer has been set. Also added a font change in the test program to try and duplicate a bug reported by smugg, but so far have not seen it. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/test/estyle_test_simple.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- estyle_test_simple.c 27 Feb 2002 00:19:02 -0000 1.4 +++ estyle_test_simple.c 26 Mar 2002 18:55:17 -0000 1.5 @@ -75,9 +75,11 @@ if (eemd->button == 1) { if (last == string1) { estyle_set_style(e, "raised"); + estyle_set_font(e, "morpheus", 14); estyle_set_text(e, string2); last = string2; } else { + estyle_set_font(e, "nationff", 14); estyle_set_style(e, "shadow"); estyle_set_text(e, string1); last = string1; |
From: <enl...@li...> - 2002-03-26 18:55:49
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: estyle.c Log Message: Set the layer when the estyle_set_text is called, this should fix a problem with the stacking order being wrong when no layer has been set. Also added a font change in the test program to try and duplicate a bug reported by smugg, but so far have not seen it. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- estyle.c 21 Mar 2002 07:55:14 -0000 1.11 +++ estyle.c 26 Mar 2002 18:55:17 -0000 1.12 @@ -305,6 +305,8 @@ */ void estyle_set_text(Estyle * es, char *text) { + int layer; + CHECK_PARAM_POINTER("es", es); /* @@ -333,6 +335,12 @@ if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); + + /* + * Must adjust the layer of the text to ensure proper style stacking. + */ + layer = evas_get_layer(es->evas, es->bit); + estyle_set_layer(es, layer); __estyle_update(es); } |
From: <enl...@li...> - 2002-04-02 01:31:25
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle Modified Files: AUTHORS estyle-config.h.in Log Message: Synced the work from SPLIT by Pat Cervasco and redalb. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/AUTHORS,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- AUTHORS 21 Mar 2002 07:57:15 -0000 1.2 +++ AUTHORS 2 Apr 2002 01:30:53 -0000 1.3 @@ -1 +1,3 @@ RbdPngn <ningerso@d.umn.edu> +redalb <bl...@ne...> +Pat Cevasco <pce...@at...> =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/estyle-config.h.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -3 -r1.1.1.1 -r1.2 --- estyle-config.h.in 26 Jan 2002 07:37:08 -0000 1.1.1.1 +++ estyle-config.h.in 2 Apr 2002 01:30:53 -0000 1.2 @@ -1,15 +1,57 @@ -/* estyle-config.h.in. Generated automatically from configure.ac by autoheader. */ +/* estyle-config.h.in. Generated from configure.ac by autoheader. */ #undef PACKAGE_DATA_DIR #undef PACKAGE_LOCALE_DIR #undef PACKAGE_SOURCE_DIR -/* Define if you have the <dlfcn.h> header file. */ +/* Define to 1 if you have the <dlfcn.h> header file. */ #undef HAVE_DLFCN_H +/* Define to 1 if you have the <inttypes.h> header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the <memory.h> header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the <stdint.h> header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the <stdlib.h> header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the <strings.h> header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the <string.h> header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the <sys/stat.h> header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the <sys/types.h> header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the <unistd.h> header file. */ +#undef HAVE_UNISTD_H + /* Name of package */ #undef PACKAGE -/* Define if you have the ANSI C header files. */ +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS /* Version number of package */ |
From: <enl...@li...> - 2002-04-02 01:31:27
|
Enlightenment CVS committal Author : rbdpngn Project : e17 Module : libs/estyle Dir : e17/libs/estyle/src Modified Files: Estyle.h Estyle_private.h Makefile.am Makefile.in estyle.c estyle_style.c Added Files: estyle_heap.c estyle_heap.h Log Message: Synced the work from SPLIT by Pat Cervasco and redalb. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- Estyle.h 21 Feb 2002 05:07:13 -0000 1.7 +++ Estyle.h 2 Apr 2002 01:30:53 -0000 1.8 @@ -8,7 +8,6 @@ /* * Simple alignment bitfield */ -typedef enum _estyle_alignment Estyle_Alignment; enum _estyle_alignment { ESTYLE_ALIGN_CENTER = 0, ESTYLE_ALIGN_LEFT = 1, @@ -16,12 +15,21 @@ ESTYLE_ALIGN_TOP = 4, ESTYLE_ALIGN_BOTTOM = 8 }; +typedef enum _estyle_alignment Estyle_Alignment; /* * The estyle holds all information necessary for display and layout of the text */ typedef struct _estyle Estyle; + + +#ifdef __cplusplus +extern "C" +{ +#endif + + /* * Constructor/destructor */ @@ -83,5 +91,11 @@ int estyle_merge(Estyle * es1, Estyle * es2); #define ESTYLE_HASH_COLOR(r, g, b, a) ((r << 24) | (g << 16) | (b << 8) | a) + + + +#ifdef __cplusplus +} +#endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Estyle_private.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- Estyle_private.h 27 Feb 2002 00:19:02 -0000 1.5 +++ Estyle_private.h 2 Apr 2002 01:30:53 -0000 1.6 @@ -2,6 +2,7 @@ #define _ESTYLE_PRIVATE_H #include "Estyle.h" +#include "estyle_heap.h" #include <Edb.h> typedef enum _estyle_bit_flags Estyle_Bit_Flags; @@ -18,7 +19,7 @@ struct _estyle_style_info { char *name; E_DB_File *style_db; - Ewd_Sheap *layers; + Estyle_Heap *layers; int left_push, right_push, top_push, bottom_push; int references; @@ -31,7 +32,7 @@ typedef struct _estyle_style Estyle_Style; struct _estyle_style { Estyle_Style_Info *info; - Ewd_List *bits; + Evas_List bits; }; #include "estyle_style.h" =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Makefile.am,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- Makefile.am 25 Feb 2002 23:57:53 -0000 1.2 +++ Makefile.am 2 Apr 2002 01:30:53 -0000 1.3 @@ -13,7 +13,8 @@ Estyle.h \ estyle.c \ estyle_style.c \ -estyle_color.c +estyle_color.c \ +estyle_heap.c libestyle_la_LIBADD = @evas_libs@ @ewd_libs@ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/Makefile.in,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- Makefile.in 25 Feb 2002 23:57:53 -0000 1.3 +++ Makefile.in 2 Apr 2002 01:30:53 -0000 1.4 @@ -98,7 +98,7 @@ installed_headers_DATA = Estyle.h -libestyle_la_SOURCES = Estyle.h estyle.c estyle_style.c estyle_color.c +libestyle_la_SOURCES = Estyle.h estyle.c estyle_style.c estyle_color.c estyle_heap.c libestyle_la_LIBADD = @evas_libs@ @ewd_libs@ @@ -114,7 +114,8 @@ CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ -libestyle_la_OBJECTS = estyle.lo estyle_style.lo estyle_color.lo +libestyle_la_OBJECTS = estyle.lo estyle_style.lo estyle_color.lo \ +estyle_heap.lo CFLAGS = @CFLAGS@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -129,7 +130,8 @@ TAR = tar GZIP_ENV = --best -DEP_FILES = .deps/estyle.P .deps/estyle_color.P .deps/estyle_style.P +DEP_FILES = .deps/estyle.P .deps/estyle_color.P .deps/estyle_heap.P \ +.deps/estyle_style.P SOURCES = $(libestyle_la_SOURCES) OBJECTS = $(libestyle_la_OBJECTS) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- estyle.c 26 Mar 2002 18:55:17 -0000 1.12 +++ estyle.c 2 Apr 2002 01:30:53 -0000 1.13 @@ -6,7 +6,8 @@ #define DEFAULT_FONT "nationff" #define DEFAULT_SIZE 12 -void __estyle_update(Estyle *es); +void __estyle_update_position(Estyle *es); +void __estyle_update_dimensions(Estyle *es); static int estyle_setup_complete = 0; @@ -37,23 +38,40 @@ es = (Estyle *) malloc(sizeof(Estyle)); if (!es) return NULL; - memset(es, 0, sizeof(Estyle)); + es->evas = evas; + evas_font_add_path(es->evas, PACKAGE_DATA_DIR"/fonts"); + + /* + * Create the Evas_Object and set the default font and font size. + */ + es->bit = evas_add_text(es->evas, DEFAULT_FONT, DEFAULT_SIZE, text); /* * Set some default colors, font, and font size. */ es->color = estyle_color_instance(255, 255, 255, 255); + /* + * Create the style and set the default color. + */ if (style) es->style = estyle_style_instance(style); + estyle_set_color(es, 255, 255, 255, 255); + if (es->style) + estyle_style_draw(es, text); + + /* + * Set length and dimensions. + */ + es->length = strlen(text); + __estyle_update_dimensions(es); /* - * Display the text on the evas + * move to (0,0) by default. (is this necessary? -redalb) */ - evas_font_add_path(evas, PACKAGE_DATA_DIR"/fonts"); - estyle_set_text(es, text); + estyle_move(es, 0, 0); return es; } @@ -64,7 +82,7 @@ * * Returns no value. Frees the data in @es as well as @es itself. */ -void estyle_free(Estyle * es) +void estyle_free(Estyle *es) { CHECK_PARAM_POINTER("es", es); @@ -83,7 +101,7 @@ * * Returns no value. Updates the display to reflect changes to @estyle. */ -void estyle_show(Estyle * es) +void estyle_show(Estyle *es) { CHECK_PARAM_POINTER("es", es); @@ -99,7 +117,7 @@ * * Returns no value */ -void estyle_hide(Estyle * es) +void estyle_hide(Estyle *es) { CHECK_PARAM_POINTER("es", es); @@ -125,11 +143,13 @@ es->x = x; es->y = y; - evas_move(es->evas, es->bit, (double)(x + (es->style ? + evas_move(es->evas, es->bit, + (double)(x + (es->style ? es->style->info->left_push : 0)), - (double)(y + (es->style ? - es->style->info->top_push : 0))); - estyle_style_move(es); + (double)(y + (es->style ? + es->style->info->top_push : 0))); + if (es->style) + estyle_style_move(es); } /** @@ -149,13 +169,10 @@ if (r) *r = es->color->r; - if (g) *g = es->color->g; - if (b) *b = es->color->b; - if (a) *a = es->color->a; } @@ -201,13 +218,10 @@ if (r) *r = color->r; - if (g) *g = color->g; - if (b) *b = color->b; - if (a) *a = color->a; } @@ -216,7 +230,7 @@ * estyle_set_color_db - set the color of an estyle based on color name * @es: the estyle to change the color */ -void estyle_set_color_db(Estyle * es, char *name) +void estyle_set_color_db(Estyle *es, char *name) { CHECK_PARAM_POINTER("es", es); CHECK_PARAM_POINTER("name", name); @@ -224,7 +238,24 @@ es->color = estyle_color_instance_db(name); evas_set_color(es->evas, es->bit, es->color->r, es->color->g, es->color->b, es->color->a); - estyle_style_set_color(es); + if (es->style) + estyle_style_set_color(es); +} + +/** + * estyle_get_style - get the style of the specified estyle + * @es: the estyle to get the style of + * + * Returns the name the style or NULL if no style specified. + */ +char *estyle_get_style(Estyle *es) +{ + CHECK_PARAM_POINTER_RETURN("es", es, NULL); + + if (!es->style) + return NULL; + + return es->style->info->name; } /** @@ -234,13 +265,14 @@ * * Returns no value. The style of @es is changed to @name. */ -void estyle_set_style(Estyle * es, char *name) +void estyle_set_style(Estyle *es, char *name) { int layer; char *text; Evas_Object clip; CHECK_PARAM_POINTER("es", es); + CHECK_PARAM_POINTER("name", name); /* * Set the style for this particular es. @@ -248,11 +280,9 @@ if (es->style) estyle_style_release(es->style, es->evas); - if (!name) + if ((es->style = estyle_style_instance(name)) == NULL) return; - es->style = estyle_style_instance(name); - text = evas_get_text_string(es->evas, es->bit); /* @@ -266,13 +296,14 @@ estyle_style_move(es); - clip = evas_get_clip_object(es->evas, es->bit); - estyle_style_set_clip(es, clip); + if ((clip = evas_get_clip_object(es->evas, es->bit)) != NULL) + estyle_style_set_clip(es, clip); + + __estyle_update_position(es); + __estyle_update_dimensions(es); if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); - - __estyle_update(es); } /** @@ -303,7 +334,7 @@ * Returns no value. Changes the text in @es to @text and updates the display * if visible. */ -void estyle_set_text(Estyle * es, char *text) +void estyle_set_text(Estyle *es, char *text) { int layer; @@ -313,25 +344,19 @@ * Create the text if no evas object is present, otherwise just change * of the evas object. */ - if (es->bit) { - evas_set_text(es->evas, es->bit, text); + evas_set_text(es->evas, es->bit, text); - /* - * Set the text for the style bits. - */ + /* + * Set the text for the style bits. + */ + if (es->style) estyle_style_set_text(es); - } - else { - es->bit = evas_add_text(es->evas, DEFAULT_FONT, - DEFAULT_SIZE, text); - - /* - * Draw style altering bits below the text. - */ - estyle_style_draw(es, text); - } + /* + * Set new length and dimensions. + */ es->length = strlen(text); + __estyle_update_dimensions(es); if (es->flags & ESTYLE_BIT_VISIBLE) estyle_style_show(es); @@ -341,8 +366,6 @@ */ layer = evas_get_layer(es->evas, es->bit); estyle_set_layer(es, layer); - - __estyle_update(es); } /** @@ -366,10 +389,12 @@ * Returns no value. Changes the layer of @es to @layer along with all of * it's style bits. */ -void estyle_set_layer(Estyle * es, int layer) +void estyle_set_layer(Estyle *es, int layer) { int index = 0; + CHECK_PARAM_POINTER("es", es); + evas_set_layer(es->evas, es->bit, layer - 1); /* @@ -405,7 +430,7 @@ * * Returns no value. Changes the font for the specified estyle to @name. */ -void estyle_set_font(Estyle * es, char *font, int size) +void estyle_set_font(Estyle *es, char *font, int size) { CHECK_PARAM_POINTER("es", es); CHECK_PARAM_POINTER("font", font); @@ -414,7 +439,7 @@ if (es->style) estyle_style_set_font(es, font, size); - __estyle_update(es); + __estyle_update_dimensions(es); } /** @@ -433,7 +458,8 @@ else evas_unset_clip(es->evas, es->bit); - estyle_style_set_clip(es, clip); + if (es->style) + estyle_style_set_clip(es, clip); } /** @@ -444,7 +470,7 @@ * Returns TRUE if the bits are able to be merged, otherwise FALSE. Appends the * text in @es2 to the text in @es1 and destroys @es2. */ -int estyle_merge(Estyle * es1, Estyle * es2) +int estyle_merge(Estyle *es1, Estyle *es2) { char *new_text, *text1, *text2; @@ -487,12 +513,14 @@ * Returns the newly created estyle on success, NULL on failure. The old * estyle is updated to reflect the changes. */ -Estyle *estyle_split(Estyle * es, int index) +Estyle *estyle_split(Estyle *es, int index) { char temp; char *content; Estyle *new_es; + CHECK_PARAM_POINTER_RETURN("es", es, NULL); + content = strdup(evas_get_text_string(es->evas, es->bit)); if (strlen(content) > index) return NULL; @@ -537,13 +565,10 @@ if (x) *x = es->x; - if (y) *y = es->y; - if (w) *w = es->w; - if (h) *h = es->h; } @@ -565,19 +590,22 @@ { double xx, yy, ww, hh; + CHECK_PARAM_POINTER("es", es); + evas_text_at(es->evas, es->bit, index, &xx, &yy, &ww, &hh); if (char_x) *char_x = D2I_ROUND(xx) + es->x; - if (char_y) *char_y = D2I_ROUND(yy) + es->y; - if (char_w) - *char_w = D2I_ROUND(ww); - - if (char_h) - *char_h = D2I_ROUND(hh); + *char_w = D2I_ROUND(ww) + (es->style ? + es->style->info->left_push + + es->style->info->right_push : 0); + if (char_h) + *char_h = D2I_ROUND(hh) + (es->style ? + es->style->info->top_push + + es->style->info->bottom_push : 0); } /** @@ -600,15 +628,23 @@ int ret; double xx = 0, yy = 0, ww = 0, hh = 0; + CHECK_PARAM_POINTER("es", es); + ret = evas_text_at_position(es->evas, es->bit, (double)(x - es->x), (double)(y - es->y), &xx, &yy, &ww, &hh); - *char_x = D2I_ROUND(xx) + es->x; - *char_y = D2I_ROUND(yy) + es->y; - *char_w = D2I_ROUND(ww) + (es->style ? es->style->info->left_push - + es->style->info->right_push : 0); - *char_h = D2I_ROUND(hh) + (es->style ? es->style->info->top_push - + es->style->info->bottom_push : 0); + if (char_x) + *char_x = D2I_ROUND(xx) + es->x; + if (char_y) + *char_y = D2I_ROUND(yy) + es->y; + if (char_w) + *char_w = D2I_ROUND(ww) + (es->style ? + es->style->info->left_push + + es->style->info->right_push : 0); + if (char_h) + *char_h = D2I_ROUND(hh) + (es->style ? + es->style->info->top_push + + es->style->info->bottom_push : 0); return ret; } @@ -669,12 +705,25 @@ } /* - * __estyle_update - update the sizing and position of the estyle + * __estyle_update_position - update the position of the estyle */ -void __estyle_update(Estyle *es) +void __estyle_update_position(Estyle *es) { - double x, y, w, h; + if (es->style) + evas_move(es->evas, es->bit, + (double)(es->x + (es->style ? + es->style->info->left_push : 0)), + (double)(es->y + (es->style ? + es->style->info->top_push : 0))); +} +/* + * __estyle_update_dimensions - update the dimensions of the estyle + */ +void __estyle_update_dimensions(Estyle *es) +{ + double x, y, w, h; + /* * If the estyle doesn't have fixed dimensions then set it to the * geometry of it's contents. @@ -687,15 +736,4 @@ es->h = D2I_ROUND(h) + (es->style ? es->style->info->top_push + es->style->info->bottom_push : 0); } - - /* - * Setup the color of the evas object and move it into position. - */ - evas_set_color(es->evas, es->bit, es->color->r, es->color->g, - es->color->b, es->color->a); - evas_move(es->evas, es->bit, - (double)(es->x + (es->style ? - es->style->info->left_push : 0)), - (double)(es->y + (es->style ? - es->style->info->top_push : 0))); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/estyle/src/estyle_style.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- estyle_style.c 27 Feb 2002 00:19:02 -0000 1.6 +++ estyle_style.c 2 Apr 2002 01:30:54 -0000 1.7 @@ -44,9 +44,10 @@ * Returns no value. The reference to the style is released and the style is * freed if appropriate. */ -void estyle_style_release(Estyle_Style * style, Evas ev) +void estyle_style_release(Estyle_Style *style, Evas ev) { Evas_Object ob; + Evas_List ptr_list; CHECK_PARAM_POINTER("style", style); @@ -56,12 +57,14 @@ * Destroy the list of evas_objects */ if (style->bits) { - ewd_list_goto_first(style->bits); /* * Destroy all of the objects for this estyle */ - while ((ob = ewd_list_next(style->bits))) { + for (ptr_list = style->bits; ptr_list; + ptr_list = ptr_list->next) { + + ob = ptr_list->data; evas_hide(ev, ob); evas_del_object(ev, ob); } @@ -69,7 +72,7 @@ /* * Destroy the list that held the objects */ - ewd_list_destroy(style->bits); + evas_list_free(style->bits); } FREE(style); @@ -84,6 +87,9 @@ void estyle_style_hide(Estyle *es) { Evas_Object ob; + Evas_List ptr_list; + + CHECK_PARAM_POINTER("es", es); /* * Check if we need to hide any style bits. @@ -91,13 +97,15 @@ if (!es->style || !es->style->bits) return; - ewd_list_goto_first(es->style->bits); - /* * Hide each bit of the style representation */ - while ((ob = ewd_list_next(es->style->bits))) + for (ptr_list = es->style->bits; ptr_list; + ptr_list = ptr_list->next ) { + + ob = ptr_list->data; evas_hide(es->evas, ob); + } } /* @@ -109,6 +117,9 @@ void estyle_style_show(Estyle *es) { Evas_Object ob; + Evas_List ptr_list; + + CHECK_PARAM_POINTER("es", es); /* * Check if we need to show any style bits. @@ -116,13 +127,15 @@ if (!es->style || !es->style->bits) return; - ewd_list_goto_first(es->style->bits); - /* * Hide each bit of the style representation */ - while ((ob = ewd_list_next(es->style->bits))) + for (ptr_list = es->style->bits; ptr_list; + ptr_list = ptr_list->next ) { + + ob = ptr_list->data; evas_show(es->evas, ob); + } } /** @@ -166,7 +179,7 @@ * Returns no value. Adds the evas objects for the style bits of the main text * layer. */ -void estyle_style_draw(Estyle * es, char *text) +void estyle_style_draw(Estyle *es, char *text) { int i = 0; Estyle_Style_Info *info; @@ -184,21 +197,12 @@ return; /* - * Make sure there is a list available for storing the evas objects if - * one is necessary. - */ - if (!((Estyle_Style *)es->style)->bits - && ewd_sheap_item(info->layers, 0)) { - ((Estyle_Style *)es->style)->bits = ewd_list_new(); - } - - /* * Draw each of the lower layers and add their bits to the style * instance for later manipulation. */ - while ((layer = ewd_sheap_item(info->layers, i))) { + while ((layer = estyle_heap_item(info->layers, i))) { ob = _estyle_style_layer_draw(layer, es, text); - ewd_list_append(((Estyle_Style *)es->style)->bits, ob); + ((Estyle_Style *) es->style)->bits = evas_list_append( ((Estyle_Style *)es->style)->bits, ob ); i++; } @@ -220,6 +224,7 @@ Estyle_Style_Info *info; Estyle_Style_Layer *layer; Evas_Object ob; + Evas_List ptr_list; CHECK_PARAM_POINTER_RETURN("es", es, 0); @@ -232,22 +237,16 @@ return 0; /* - * Make sure there is a list available for storing the evas objects if - * one is necessary. - */ - if (!((Estyle_Style *)es->style)->bits - && ewd_sheap_item(info->layers, 0)) { - ((Estyle_Style *)es->style)->bits = ewd_list_new(); - } - - /* * Move all of the lower layers bits into the correct layer */ - while ((layer = ewd_sheap_item(info->layers, i)) && layer->stack < 0) { - ewd_list_goto_first(es->style->bits); + while ((layer = estyle_heap_item(info->layers, i)) && layer->stack < 0) { - while ((ob = ewd_list_next(es->style->bits))) + for (ptr_list = es->style->bits; ptr_list; + ptr_list = ptr_list->next ) { + + ob = ptr_list->data; evas_set_layer(es->evas, ob, l); + } i++; } @@ -263,13 +262,14 @@ * Returns no value. Adds the evas objects for the style bits that are above * the main text layer. */ -int estyle_style_set_layer_upper(Estyle * es, int l, int start) +int estyle_style_set_layer_upper(Estyle *es, int l, int start) { char *text; int i = start; Estyle_Style_Info *info; Estyle_Style_Layer *layer; Evas_Object ob; + Evas_List ptr_list; CHECK_PARAM_POINTER_RETURN("es", es, 0); @@ -289,11 +289,15 @@ /* * Move all of the upper bits into the correct layer */ - while ((layer = ewd_sheap_item(info->layers, i)) && layer->stack) { - ewd_list_goto_first(es->style->bits); + while ((layer = estyle_heap_item(info->layers, i)) && layer->stack) { + + for (ptr_list = es->style->bits; ptr_list; + ptr_list = ptr_list->next ) { - while ((ob = ewd_list_next(es->style->bits))) + ob = ptr_list->data; evas_set_layer(es->evas, ob, l); + } + i++; } @@ -311,6 +315,7 @@ { int i; Evas_Object ob; + Evas_List ptr_list; Estyle_Style_Info *info; Estyle_Style_Layer *layer; @@ -324,7 +329,7 @@ * layout. */ info = (Estyle_Style_Info *)es->style->info; - ewd_list_goto_first(es->style->bits); + ptr_list = es->style->bits; i = 0; /* @@ -333,12 +338,17 @@ * have the same number of items in them, but check for that just in * case there isn't. */ - while ((layer = ewd_sheap_item(info->layers, i++)) && - (ob = ewd_list_next(es->style->bits))) + while (ptr_list && + (layer = estyle_heap_item(info->layers, i++)) != NULL && + (ob = ptr_list->data) != NULL) { + evas_move(es->evas, ob, (double)(es->x + layer->x_offset + info->left_push), - (double)(es->y + layer->y_offset + - info->right_push)); + (double)(es->y + layer->y_offset + + info->right_push)); + + ptr_list = ptr_list->next; + } } /* @@ -352,6 +362,7 @@ { int i; Evas_Object sob; + Evas_List ptr_list; Estyle_Style_Info *info; Estyle_Style_Layer *layer; @@ -371,7 +382,8 @@ if (!es->style->bits) return; - ewd_list_goto_first(es->style->bits); + ptr_list = es->style->bits; + i = 0; /* @@ -380,8 +392,10 @@ * have the same number of items in them, but check for that just in * case there isn't. */ - while ((layer = ewd_sheap_item(info->layers, i++)) && - (sob = ewd_list_next(es->style->bits))) { + while (ptr_list && + (layer = estyle_heap_item(info->layers, i++)) != NULL && + (sob = ptr_list->data) != NULL) { + if (layer->relative_color) { int r, g, b, a; @@ -392,6 +406,8 @@ evas_set_color(es->evas, sob, r, g, b, a); } + + ptr_list = ptr_list->next; } } @@ -405,21 +421,24 @@ { int i; Evas_Object sob; + Evas_List ptr_list; Estyle_Style_Info *info; Estyle_Style_Layer *layer; CHECK_PARAM_POINTER("es", es); CHECK_PARAM_POINTER("font", font); + if (!es->style || !es->style->bits) + return; + /* * Prepare to traverse the list of bits and layers to get the correct * layout. */ info = (Estyle_Style_Info *)es->style->info; - if (!es->style->bits) - return; - ewd_list_goto_first(es->style->bits); + ptr_list = es->style->bits; + i = 0; /* @@ -428,9 +447,13 @@ * have the same number of items in them, but check for that just in * case there isn't. */ - while ((layer = ewd_sheap_item(info->layers, i++)) && - (sob = ewd_list_next(es->style->bits))) + while (ptr_list && + (layer = estyle_heap_item(info->layers, i++)) != NULL && + (sob = ptr_list->data) != NULL) { + evas_set_font(es->evas, sob, font, size); + ptr_list = ptr_list->next; + } } /* @@ -444,11 +467,15 @@ int i; char *text; Evas_Object sob; + Evas_List ptr_list; Estyle_Style_Info *info; Estyle_Style_Layer *layer; CHECK_PARAM_POINTER("es", es); + if (!es->style || !es->style->bits) + return; + /* * Prepare to traverse the list of bits and layers to get the correct * layout. @@ -459,10 +486,8 @@ info = (Estyle_Style_Info *)es->style->info; - if (!es->style->bits) - return; + ptr_list = es->style->bits; - ewd_list_goto_first(es->style->bits); i = 0; /* @@ -471,9 +496,13 @@ * have the same number of items in them, but check for that just in * case there isn't. */ - while ((layer = ewd_sheap_item(info->layers, i++)) && - (sob = ewd_list_next(es->style->bits))) + while (ptr_list && + (layer = estyle_heap_item(info->layers, i++)) != NULL && + (sob = ptr_list->data) != NULL) { + evas_set_text(es->evas, sob, text); + ptr_list = ptr_list->next; + } } /* @@ -488,20 +517,23 @@ { int i; Evas_Object sob; + Evas_List ptr_list; Estyle_Style_Info *info; Estyle_Style_Layer *layer; CHECK_PARAM_POINTER("es", es); + if (!es->style || !es->style->bits) + return; + /* * Prepare to traverse the list of bits and layers to get the correct * layout. */ info = (Estyle_Style_Info *)es->style->info; + + ptr_list = es->style->bits; - if (!es->style->bits) - return; - ewd_list_goto_first(es->style->bits); i = 0; /* @@ -510,12 +542,15 @@ * have the same number of items in them, but check for that just in * case there isn't. */ - while ((layer = ewd_sheap_item(info->layers, i++)) && - (sob = ewd_list_next(es->style->bits))) { + while (ptr_list && + (layer = estyle_heap_item(info->layers, i++)) != NULL && + (sob = ptr_list->data) != NULL) { if (!ob) evas_unset_clip(es->evas, sob); else evas_set_clip(es->evas, sob, ob); + + ptr_list = ptr_list->next; } } @@ -529,6 +564,8 @@ { Estyle_Style_Info *found; + CHECK_PARAM_POINTER_RETURN("name", name, NULL); + if (!styles) styles = ewd_hash_new(ewd_str_hash, ewd_str_compare); @@ -576,7 +613,7 @@ ewd_hash_remove(styles, info->name); if (info->layers) - ewd_sheap_destroy(info->layers); + estyle_heap_destroy(info->layers); ewd_string_release(info->name); FREE(info); @@ -588,8 +625,8 @@ * @layer: the layer to be drawn * @es: used to get info about the evas for drawing */ -static Evas_Object _estyle_style_layer_draw(Estyle_Style_Layer * layer, - Estyle * es, char *text) +static Evas_Object _estyle_style_layer_draw(Estyle_Style_Layer *layer, + Estyle *es, char *text) { int r, g, b, a; char *font; @@ -690,7 +727,7 @@ return; /* if (info->layers) - ewd_sheap_destroy(info->layers); + estyle_heap_destroy(info->layers); */ /* @@ -705,7 +742,7 @@ return; } - info->layers = ewd_sheap_new(_estyle_style_stack_compare, layers); + info->layers = estyle_heap_new(_estyle_style_stack_compare, layers); /* * Read in each layer @@ -757,7 +794,7 @@ else if (-layer->y_offset > info->top_push) info->top_push = -layer->y_offset; - ewd_sheap_insert(info->layers, layer); + estyle_heap_insert(info->layers, layer); } } |