Enlightenment CVS committal Author : dj2 Project : e17 Module : libs/engrave
Dir : e17/libs/engrave/src/lib Modified Files: Engrave.h Makefile.am engrave.l engrave.y engrave_data.c engrave_data.h engrave_file.c engrave_file.h engrave_font.c engrave_font.h engrave_group.c engrave_group.h engrave_image.c engrave_image.h engrave_load.c engrave_out.c engrave_parse.c engrave_parse.h engrave_part.c engrave_part.h engrave_part_state.c engrave_part_state.h engrave_program.c engrave_program.h Added Files: engrave_canvas.c engrave_canvas.h Log Message: - fix compile warnings - add some missing functions - fixup some function signatures to be correct - add the start of engrave_canvas. Has a lot of work to still be done, but seems to display images at least. =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/Engrave.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- Engrave.h 13 Nov 2004 20:50:20 -0000 1.9 +++ Engrave.h 5 Dec 2004 21:16:29 -0000 1.10 @@ -77,6 +77,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <limits.h> #include <Evas.h> #include <engrave_enums.h> @@ -92,6 +93,8 @@ #include <engrave_load.h> #include <engrave_out.h> +#include <engrave_canvas.h> + #ifdef __cplusplus } #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/Makefile.am,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- Makefile.am 13 Nov 2004 20:50:20 -0000 1.5 +++ Makefile.am 5 Dec 2004 21:16:29 -0000 1.6 @@ -27,11 +27,12 @@ engrave_parse.h \ engrave_part.h \ engrave_part_state.h \ - engrave_program.h + engrave_program.h \ + engrave_canvas.h ENGRAVEFILES = \ - engrave.y \ engrave.l \ + engrave.y \ engrave_out.c \ engrave_data.c \ engrave_file.c \ @@ -43,6 +44,7 @@ engrave_part_state.c \ engrave_program.c \ engrave_load.c \ + engrave_canvas.c \ $(ENGRAVEHEADERS) libengrave_la_SOURCES = $(ENGRAVEFILES) @@ -54,4 +56,5 @@ libengrave_la_LIBADD = @EVAS_LIBS@ @ECORE_LIBS@ @LEXLIB@ -lm libengrave_la_DEPENDENCIES = $(top_builddir)/src/config.h libengrave_la_LDFLAGS = -version-info 1:0:1 +libengrave_la_CFLAGS = -Wall =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave.l,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- engrave.l 16 Nov 2004 22:51:37 -0000 1.7 +++ engrave.l 5 Dec 2004 21:16:29 -0000 1.8 @@ -45,7 +45,7 @@ #define SCRIPT_NEW_LINE() engrave_lnum ++; SCRIPT_PIECE(); #define SCRIPT_OPEN_BRACE() script_level++; \ - if (script_level > 1) SCRIPT_PIECE(); + if (script_level > 1) { SCRIPT_PIECE(); } #define SCRIPT_CLOSE_BRACE() script_level--; \ if (script_level > 0) { SCRIPT_PIECE();}\ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave.y,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- engrave.y 29 Nov 2004 21:37:01 -0000 1.12 +++ engrave.y 5 Dec 2004 21:16:29 -0000 1.13 @@ -2,10 +2,10 @@ #include <stdio.h> #include <string.h> #include "Engrave.h" -//#include "engrave_private.h" +#include "engrave_parse.h" #define YYDEBUG 1 - + int yylex(void); void yyerror(const char *s); void parse_error(void); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_data.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- engrave_data.c 29 Nov 2004 20:53:21 -0000 1.9 +++ engrave_data.c 5 Dec 2004 21:16:29 -0000 1.10 @@ -102,4 +102,32 @@ ed->int_value = value; } +/** + * engrave_data_parent_set - set the parent pointer on this node + * @param ed: The Engrave_Data to set the parent on + * @param parent: The parent pointer to set + * + * @return Returns no value. + * @brief This will set the parent pointer, in the case of Engrave_Data this + * can be either an Engrave_File or an Engrave_Group. + */ +void +engrave_data_parent_set(Engrave_Data *ed, void *parent) +{ + if (!ed) return; + ed->parent = parent; +} + +/** + * engrave_data_parent_get - get the parent pointer on this node + * @param ed: The Engrave_Data to get the pointer from + * + * @return Returns the parent pointer, or NULL if none set. + */ +void * +engrave_data_parent_get(Engrave_Data *ed) +{ + return (ed ? ed->parent : NULL); +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_data.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- engrave_data.h 29 Nov 2004 20:53:23 -0000 1.6 +++ engrave_data.h 5 Dec 2004 21:16:29 -0000 1.7 @@ -25,11 +25,16 @@ char *key; /**< The data key */ char *value; /**< The data string value */ int int_value; /**< The data int value */ + + void *parent; /**< A pointer to the parent */ }; Engrave_Data * engrave_data_new(const char *key, const char *value); void engrave_data_free(Engrave_Data *ed); +void engrave_data_parent_set(Engrave_Data *ed, void *parent); +void *engrave_data_parent_get(Engrave_Data *ed); + const char *engrave_data_key_get(Engrave_Data *ed); const char *engrave_data_value_get(Engrave_Data *ed); int engrave_data_int_value_get(Engrave_Data *ed); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_file.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -3 -r1.15 -r1.16 --- engrave_file.c 30 Nov 2004 17:32:15 -0000 1.15 +++ engrave_file.c 5 Dec 2004 21:16:29 -0000 1.16 @@ -127,6 +127,7 @@ { if (!e || !ef) return; e->fonts = evas_list_append(e->fonts, ef); + engrave_font_parent_set(ef, e); } /** @@ -141,6 +142,7 @@ { if (!ef || !ei) return; ef->images = evas_list_append(ef->images, ei); + engrave_image_parent_set(ei, ef); } /** @@ -155,6 +157,7 @@ { if (!ef || !ed) return; ef->data = evas_list_append(ef->data, ed); + engrave_data_parent_set(ed, ef); } /** @@ -169,6 +172,7 @@ { if (!ef || !eg) return; ef->groups = evas_list_append(ef->groups, eg); + engrave_group_parent_set(eg, ef); } /** @@ -181,10 +185,32 @@ Engrave_Group * engrave_file_group_last_get(Engrave_File *ef) { + if (!ef) return NULL; return evas_list_data(evas_list_last(ef->groups)); } /** + * engrave_file_group_by_name_find - returns the Engrave_Group with the given name. + * @param ef: The Engrave_File to search for the group in. + * @param name: The name of the group to search for. + * + * @return Returns the Engrave_Group with the given @a name or NULL if no + * corresponding group can be found. + */ +Engrave_Group * +engrave_file_group_by_name_find(Engrave_File *ef, const char *name) +{ + Evas_List *l; + for (l = ef->groups; l; l = l->next) + { + Engrave_Group *eg = l->data; + if (eg && !strcmp(engrave_group_name_get(eg), name)) + return eg; + } + return NULL; +} + +/** * engrave_file_image_by_name_find - returns the Engrave_Image with the given name. * @param ef: The Engrave_File to search for the image in. * @param name: The name of the image to search for. @@ -199,7 +225,7 @@ for (l = ef->images; l; l = l->next) { Engrave_Image *im = l->data; - if (im && !strcmp(im->name, name)) + if (im && !strcmp(engrave_image_name_get(im), name)) return im; } return NULL; @@ -366,7 +392,33 @@ if (!strcmp(key, data_key)) return ed; } + return NULL; } +/** + * engrave_file_font_by_name_find - find the Engrave_Font by name + * @param ef: The Engrave_File to search + * @param name: They name to search for + * + * @return Returns the Engrave_Font with the matching name or NULL if no such + * font exists. + */ +Engrave_Font * +engrave_file_font_by_name_find(Engrave_File *ef, const char *name) +{ + Evas_List *l; + + if (!ef || !name) return NULL; + for (l = ef->fonts; l; l = l->next) { + Engrave_Font *ef = l->data; + const char *font_name = engrave_font_name_get(ef); + + if (!strcmp(name, font_name)) + return ef; + } + return NULL; +} + + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_file.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- engrave_file.h 29 Nov 2004 22:27:22 -0000 1.10 +++ engrave_file.h 5 Dec 2004 21:16:29 -0000 1.11 @@ -46,6 +46,10 @@ void engrave_file_group_add(Engrave_File *ef, Engrave_Group *eg); Engrave_Group *engrave_file_group_last_get(Engrave_File *ef); +Engrave_Group *engrave_file_group_by_name_find(Engrave_File *ef, + const char *name); +Engrave_Font *engrave_file_font_by_name_find(Engrave_File *ef, + const char *name); Engrave_Image *engrave_file_image_by_name_find(Engrave_File *ef, const char *name); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_font.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- engrave_font.c 15 Nov 2004 16:49:05 -0000 1.8 +++ engrave_font.c 5 Dec 2004 21:16:29 -0000 1.9 @@ -61,4 +61,32 @@ return (ef ? ef->path : NULL); } +/** + * engrave_font_parent_set - set the parent of the font node + * @param font: The Engrave_Font to set the parent into + * @param ef: The Engrave_File to set as parent + * + * @return Retruns no value. + */ +void +engrave_font_parent_set(Engrave_Font *font, void *ef) +{ + if (!font) return; + font->parent = ef; +} + +/** + * engrave_font_parent_get - get the parent pointer + * @param ef: The Engrave_Font to get the parent from + * + * @return Returns the pointer to the parent or NULL if none set + */ +void * +engrave_font_parent_get(Engrave_Font *ef) +{ + return (ef ? ef->parent : NULL); +} + + + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_font.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- engrave_font.h 16 Nov 2004 01:13:30 -0000 1.7 +++ engrave_font.h 5 Dec 2004 21:16:29 -0000 1.8 @@ -24,11 +24,16 @@ { char *name; /**< The font alias */ char *path; /**< The font relative path */ + + void *parent; /**< Pointer to parent */ }; Engrave_Font *engrave_font_new(const char *path, const char *name); void engrave_font_free(Engrave_Font *ef); +void engrave_font_parent_set(Engrave_Font *font, void *ef); +void *engrave_font_parent_get(Engrave_Font *ef); + const char *engrave_font_name_get(Engrave_Font *ef); const char *engrave_font_path_get(Engrave_Font *ef); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_group.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- engrave_group.c 30 Nov 2004 17:32:15 -0000 1.13 +++ engrave_group.c 5 Dec 2004 21:16:29 -0000 1.14 @@ -69,6 +69,7 @@ { if (!eg || !ed) return; eg->data = evas_list_append(eg->data, ed); + engrave_data_parent_set(ed, eg); } /** @@ -145,6 +146,7 @@ { if (!eg || !ep) return; eg->parts = evas_list_append(eg->parts, ep); + engrave_part_parent_set(ep, eg); } /** @@ -158,6 +160,7 @@ engrave_group_program_add(Engrave_Group *eg, Engrave_Program *ep) { eg->programs = evas_list_append(eg->programs, ep); + engrave_program_parent_set(ep, eg); } /** @@ -170,7 +173,7 @@ Engrave_Part * engrave_group_part_last_get(Engrave_Group *eg) { - if (!eg) return; + if (!eg) return NULL; return evas_list_data(evas_list_last(eg->parts)); } @@ -382,5 +385,52 @@ if (!strcmp(key, data_key)) return ed; } + return NULL; } +Engrave_Part * +engrave_group_part_by_name_find(Engrave_Group *eg, const char *part) +{ + Evas_List *l; + + if (!eg || !part) return NULL; + for (l = eg->data; l; l = l->next) { + Engrave_Part *ep = l->data; + const char *name = engrave_part_name_get(ep); + + if (!strcmp(part, name)) + return ep; + } + return NULL; +} + +/** + * engrave_group_parent_set - set the parent pointer + * @param eg: The Engrave_Group to set the parent pointer into + * @param ef: The Engrave_File to set as the parent + * + * @return Returns no value. + */ +void +engrave_group_parent_set(Engrave_Group *eg, void *ef) +{ + if (!eg) return; + eg->parent = ef; +} + +/** + * engrave_group_parent_get - get the parent pointer + * @param eg: The Engrave_Group to get the parent pointer from + * + * @return Returns the Engrave_File parent pointer or NULL if none set + */ +void * +engrave_group_parent_get(Engrave_Group *eg) +{ + return (eg ? eg->parent : NULL); +} + + + + + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_group.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- engrave_group.h 29 Nov 2004 22:27:23 -0000 1.10 +++ engrave_group.h 5 Dec 2004 21:16:29 -0000 1.11 @@ -37,11 +37,16 @@ Evas_List *data; /**< The list of data used in this group */ char *script; /**< The script attached to this group */ + + void *parent; /**< Pointer to parent */ }; Engrave_Group *engrave_group_new(void); void engrave_group_free(Engrave_Group *eg); +void engrave_group_parent_set(Engrave_Group *eg, void *ef); +void *engrave_group_parent_get(Engrave_Group *eg); + void engrave_group_data_add(Engrave_Group *eg, Engrave_Data *ed); void engrave_group_part_add(Engrave_Group *eg, Engrave_Part *ep); void engrave_group_program_add(Engrave_Group *eg, Engrave_Program *ep); @@ -70,6 +75,8 @@ void engrave_group_programs_foreach(Engrave_Group *eg, void (*func)(Engrave_Program *, void *), void *data); +Engrave_Part *engrave_group_part_by_name_find(Engrave_Group *eg, + const char *part); Engrave_Data *engrave_group_data_by_key_find(Engrave_Group *eg, const char *key); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_image.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -3 -r1.11 -r1.12 --- engrave_image.c 16 Nov 2004 01:13:30 -0000 1.11 +++ engrave_image.c 5 Dec 2004 21:16:29 -0000 1.12 @@ -91,4 +91,33 @@ return (ei ? ei->value : 0.0); } +/** + * engrave_image_parent_set - set the image parent pointer + * @param ei: The Engrave_Image to set the parent into + * @param ef: The Engrave_File to set as the parent + * + * @return Returns no value. + */ +void +engrave_image_parent_set(Engrave_Image *ei, void *ef) +{ + if (!ei) return; + ei->parent = ef; +} + +/** + * engrave_image_parent_get - get the parent of the image + * @param ei: The Engrave_Image to get the parent from + * + * @return Returns the pointer to the Engrave_File parent or NULL if none set + */ +void * +engrave_image_parent_get(Engrave_Image *ei) +{ + return (ei ? ei->parent : NULL); +} + + + + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_image.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- engrave_image.h 16 Nov 2004 01:13:30 -0000 1.8 +++ engrave_image.h 5 Dec 2004 21:16:29 -0000 1.9 @@ -25,6 +25,8 @@ char *name; /**< The image basename */ Engrave_Image_Type type; /**< The image storage type */ double value; /**< Compression value for image */ + + void *parent; /**< Pointer to parent */ }; Engrave_Image *engrave_image_new(const char *name, @@ -32,6 +34,9 @@ Engrave_Image *engrave_image_dup(Engrave_Image *from); void engrave_image_free(Engrave_Image *ef); +void engrave_image_parent_set(Engrave_Image *ei, void *ef); +void *engrave_image_parent_get(Engrave_Image *ei); + const char *engrave_image_name_get(Engrave_Image *ei); Engrave_Image_Type engrave_image_type_get(Engrave_Image *ei); double engrave_image_compression_value_get(Engrave_Image *ei); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_load.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- engrave_load.c 16 Nov 2004 01:54:08 -0000 1.12 +++ engrave_load.c 5 Dec 2004 21:16:29 -0000 1.13 @@ -1,4 +1,5 @@ #include <errno.h> +#include <unistd.h> #include <Engrave.h> #include "engrave_parse.h" =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_out.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- engrave_out.c 15 Nov 2004 16:49:05 -0000 1.19 +++ engrave_out.c 5 Dec 2004 21:16:29 -0000 1.20 @@ -1,4 +1,5 @@ #include <errno.h> +#include <unistd.h> #include <stdio.h> #include <stdarg.h> #include <Engrave.h> @@ -197,7 +198,6 @@ _engrave_output_group(Engrave_Group *group, void *data) { FILE *out = data; - char *tmp = NULL; int w, h; engrave_out_start(out, "group"); @@ -243,7 +243,6 @@ _engrave_output_part(Engrave_Part *part, void *data) { FILE *out = data; - char *tmp; int x, step_x, count_x; int y, step_y, count_y; @@ -289,7 +288,6 @@ _engrave_output_program(Engrave_Program *program, void *data) { FILE *out = data; - char *tmp; Engrave_Action action; double value, value2; char state[128], state2[128]; @@ -394,11 +392,11 @@ if (x || y) engrave_out_data(out, "step", "%.2f %.2f", x, y); - engrave_part_state_min_get(state, &w, &h); + engrave_part_state_min_size_get(state, &w, &h); if (w > 0 || h > 0) engrave_out_data(out, "min", "%d %d", w, h); - engrave_part_state_max_get(state, &w, &h); + engrave_part_state_max_size_get(state, &w, &h); if (w >= 0 || h >= 0) engrave_out_data(out, "max", "%d %d", w, h); @@ -547,7 +545,6 @@ static void _engrave_output_font(Engrave_Font *font, void *data) { - char *name, *path; FILE *out; out = data; =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_parse.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- engrave_parse.c 16 Nov 2004 01:13:30 -0000 1.10 +++ engrave_parse.c 5 Dec 2004 21:16:29 -0000 1.11 @@ -2,6 +2,7 @@ static Engrave_File *engrave_file = 0; extern FILE *yyin; +int yyparse(void); Engrave_File * engrave_parse(const char *file, const char *imdir, const char *fontdir) @@ -34,10 +35,14 @@ } void -engrave_parse_data(char *key, char *value) +engrave_parse_data(char *key, char *value, int int_val) { Engrave_Data *data; data = engrave_data_new(key, value); + + if (!value) + engrave_data_int_value_set(data, int_val); + engrave_file_data_add(engrave_file, data); } @@ -50,12 +55,15 @@ } void -engrave_parse_group_data(char *key, char *value) +engrave_parse_group_data(char *key, char *value, int int_value) { Engrave_Group *group; Engrave_Data *data; data = engrave_data_new(key, value); + if (!value) + engrave_data_int_value_set(data, int_value); + group = engrave_file_group_last_get(engrave_file); engrave_group_data_add(group, data); } =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_parse.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- engrave_parse.h 16 Nov 2004 01:13:30 -0000 1.3 +++ engrave_parse.h 5 Dec 2004 21:16:29 -0000 1.4 @@ -6,5 +6,78 @@ Engrave_File * engrave_parse(const char *file, const char *imdir, const char *fontdir); +void engrave_parse_font(char *file, char *name); +void engrave_parse_image(char *name, Engrave_Image_Type type, double value); +void engrave_parse_data(char *key, char *value, int int_val); +void engrave_parse_group(); +void engrave_parse_group_data(char *key, char *value, int int_value); +void engrave_parse_group_script(char *script); +void engrave_parse_group_name(char *name); +void engrave_parse_group_min(int w, int h); +void engrave_parse_group_max(int w, int h); +void engrave_parse_part(); +void engrave_parse_part_name(char *name); +void engrave_parse_part_type(Engrave_Part_Type type); +void engrave_parse_part_effect(Engrave_Text_Effect effect); +void engrave_parse_part_mouse_events(int mouse_events); +void engrave_parse_part_repeat_events(int repeat_events); +void engrave_parse_part_clip_to(char *clip_to); +void engrave_parse_part_dragable_x(int x, int step, int count); +void engrave_parse_part_dragable_y(int y, int step, int count); +void engrave_parse_part_dragable_confine(char *confine); +void engrave_parse_state(); +void engrave_parse_state_name(char *name, double value); +void engrave_parse_state_visible(int visible); +void engrave_parse_state_inherit(char *name, double val); +void engrave_parse_state_align(double x, double y); +void engrave_parse_state_step(double x, double y); +void engrave_parse_state_min(double w, double h); +void engrave_parse_state_max(double w, double h); +void engrave_parse_state_aspect(double w, double h); +void engrave_parse_state_aspect_preference( + Engrave_Aspect_Preference prefer); +void engrave_parse_state_rel1_relative(double x, double y); +void engrave_parse_state_rel1_offset(int x, int y); +void engrave_parse_state_rel1_to_x(char *to); +void engrave_parse_state_rel1_to_y(char *to); +void engrave_parse_state_rel1_to(char *to); +void engrave_parse_state_rel2_relative(double x, double y); +void engrave_parse_state_rel2_offset(int x, int y); +void engrave_parse_state_rel2_to_x(char *to); +void engrave_parse_state_rel2_to_y(char *to); +void engrave_parse_state_rel2_to(char *to); +void engrave_parse_state_image_normal(char *name); +void engrave_parse_state_image_tween(char *name); +void engrave_parse_image_border(int l, int r, int t, int b); +void engrave_parse_state_color_class(char *color_class); +void engrave_parse_state_color(int r, int g, int b, int a); +void engrave_parse_state_color2(int r, int g, int b, int a); +void engrave_parse_state_color3(int r, int g, int b, int a); +void engrave_parse_state_fill_smooth(int smooth); +void engrave_parse_state_fill_origin_relative(double x, double y); +void engrave_parse_state_fill_size_relative(double x, double y); +void engrave_parse_state_fill_origin_offset(int x, int y); +void engrave_parse_state_fill_size_offset(int x, int y); +void engrave_parse_state_text_text(char *text); +void engrave_parse_state_text_text_class(char *text_class); +void engrave_parse_state_text_font(char *font); +void engrave_parse_state_text_size(int size); +void engrave_parse_state_text_fit(int x, int y); +void engrave_parse_state_text_min(int x, int y); +void engrave_parse_state_text_align(double x, double y); +void engrave_parse_program(); +void engrave_parse_program_script(char *script); +void engrave_parse_program_name(char *name); +void engrave_parse_program_signal(char *signal); +void engrave_parse_program_source(char *source); +void engrave_parse_program_target(char *target); +void engrave_parse_program_after(char *after); +void engrave_parse_program_in(double from, double range); +void engrave_parse_program_action(Engrave_Action action, char *state, + char *state2, double value, + double value2); +void engrave_parse_program_transition(Engrave_Transition transition, + double duration); + #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- engrave_part.c 15 Nov 2004 16:49:06 -0000 1.12 +++ engrave_part.c 5 Dec 2004 21:16:29 -0000 1.13 @@ -352,6 +352,14 @@ { if (!ep || !eps) return; ep->states = evas_list_append(ep->states, eps); + engrave_part_state_parent_set(eps, ep); + + /* set the current state if it isnt' set already */ + if (engrave_part_state_name_get(eps, NULL) && + !strcmp(engrave_part_state_name_get(eps, NULL), "default")) { + if (ep->current_state == NULL) + engrave_part_current_state_set(ep, eps); + } } /** @@ -421,5 +429,49 @@ } } +/** + * engrave_part_parent_set - set the parent pointer in the part + * @param ep: The Engrave_Part to set the pointer into + * @param eg: The Engrave_Group to set as parent + * + * @return Returns no value. + */ +void +engrave_part_parent_set(Engrave_Part *ep, void *eg) +{ + if (!ep) return; + ep->parent = eg; +} + +/** + * engrave_part_parent_get - get the parent pointer for the part + * @param ep: The Engrave_Part to get the parent from + * + * @return Returns the Engrave_Group pointer if set, or NULL if none set. + */ +void * +engrave_part_parent_get(Engrave_Part *ep) +{ + return (ep ? ep->parent : NULL); +} + +void +engrave_part_current_state_set(Engrave_Part *ep, Engrave_Part_State *eps) +{ + if (!ep) return; + ep->current_state = eps; +} + +Engrave_Part_State * +engrave_part_current_state_get(Engrave_Part *ep) +{ + if (!ep) return NULL; + if (ep->current_state) return ep->current_state; + + ep->current_state = engrave_part_state_by_name_value_find(ep, + "default", 0.0); + return ep->current_state; +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- engrave_part.h 15 Nov 2004 16:49:06 -0000 1.10 +++ engrave_part.h 5 Dec 2004 21:16:29 -0000 1.11 @@ -50,11 +50,21 @@ } dragable; Evas_List *states; /**< The list of states assocated with the part */ + Engrave_Part_State *current_state; /**< The current state */ + + void *parent; /**< Pointer to parent */ }; Engrave_Part * engrave_part_new(Engrave_Part_Type type); void engrave_part_free(Engrave_Part *ep); +void engrave_part_parent_set(Engrave_Part *ep, void *eg); +void *engrave_part_parent_get(Engrave_Part *ep); + +void engrave_part_current_state_set(Engrave_Part *ep, + Engrave_Part_State *eps); +Engrave_Part_State *engrave_part_current_state_get(Engrave_Part *ep); + void engrave_part_name_set(Engrave_Part *ep, const char *name); void engrave_part_mouse_events_set(Engrave_Part *ep, int val); void engrave_part_repeat_events_set(Engrave_Part *ep, int val); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part_state.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- engrave_part_state.c 15 Nov 2004 20:19:44 -0000 1.14 +++ engrave_part_state.c 5 Dec 2004 21:16:29 -0000 1.15 @@ -68,7 +68,6 @@ void engrave_part_state_free(Engrave_Part_State *eps) { - Evas_List *l; if (!eps) return; IF_FREE(eps->name); @@ -128,7 +127,7 @@ * @return Returns no value */ void -engrave_part_state_align_set(Engrave_Part_State *eps, int x, int y) +engrave_part_state_align_set(Engrave_Part_State *eps, double x, double y) { if (!eps) return; eps->align.x = x; @@ -144,7 +143,7 @@ * @return Returns no value */ void -engrave_part_state_step_set(Engrave_Part_State *eps, int x, int y) +engrave_part_state_step_set(Engrave_Part_State *eps, double x, double y) { if (!eps) return; eps->step.x = x; @@ -192,7 +191,7 @@ * @return Returns no value */ void -engrave_part_state_aspect_set(Engrave_Part_State *eps, int w, int h) +engrave_part_state_aspect_set(Engrave_Part_State *eps, double w, double h) { if (!eps) return; eps->aspect.w = w; @@ -223,7 +222,7 @@ * @return Returns no value */ void -engrave_part_state_rel1_relative_set(Engrave_Part_State *eps, int x, int y) +engrave_part_state_rel1_relative_set(Engrave_Part_State *eps, double x, double y) { if (!eps) return; eps->rel1.relative.x = x; @@ -239,7 +238,7 @@ * @return Returns no value */ void -engrave_part_state_rel2_relative_set(Engrave_Part_State *eps, int x, int y) +engrave_part_state_rel2_relative_set(Engrave_Part_State *eps, double x, double y) { if (!eps) return; eps->rel2.relative.x = x; @@ -813,7 +812,7 @@ } /** - * engrave_part_state_min_get - get the minimum size of the state + * engrave_part_state_min_size_get - get the minimum size of the state * @param eps: The Engrave_Part_State to get the min from * @param w: Where to store the w value * @param h: Where to store the h value @@ -821,14 +820,14 @@ * @return Returns no value. */ void -engrave_part_state_min_get(Engrave_Part_State *eps, int *w, int *h) +engrave_part_state_min_size_get(Engrave_Part_State *eps, int *w, int *h) { if (w) *w = (eps ? eps->min.w : 0); if (h) *h = (eps ? eps->min.h : 0); } /** - * engrave_part_state_max_get - get the maximum size of the state + * engrave_part_state_max_size_get - get the maximum size of the state * @param eps: The Engrave_Part_State to get the max from * @param w: Where to store the w value * @param h: Where to store the h value @@ -836,7 +835,7 @@ * @return Returns no value. */ void -engrave_part_state_max_get(Engrave_Part_State *eps, int *w, int *h) +engrave_part_state_max_size_get(Engrave_Part_State *eps, int *w, int *h) { if (w) *w = (eps ? eps->max.w : -1); if (h) *h = (eps ? eps->max.h : -1); @@ -1176,6 +1175,43 @@ if (y) *y = (eps ? eps->text.align.y : 0.5); } +int +engrave_part_state_fill_smooth_get(Engrave_Part_State *eps) +{ + return (eps ? eps->fill.smooth : 1); +} + +void +engrave_part_state_fill_origin_relative_get(Engrave_Part_State *state, + double *x, double *y) +{ + if (x) *x = (state ? state->fill.pos_rel.x : 0); + if (y) *y = (state ? state->fill.pos_rel.y : 0); +} + +void +engrave_part_state_fill_size_relative_get(Engrave_Part_State *eps, + double *x, double *y) +{ + if (x) *x = (eps ? eps->fill.rel.x : 1); + if (y) *y = (eps ? eps->fill.rel.y : 1); +} + +void +engrave_part_state_fill_origin_offset_get(Engrave_Part_State *eps, + int *x, int *y) +{ + if (x) *x = (eps ? eps->fill.pos_abs.x : 0); + if (y) *y = (eps ? eps->fill.pos_abs.y : 0); +} + +void engrave_part_state_fill_size_offset_get(Engrave_Part_State *eps, + int *x, int *y) +{ + if (x) *x = (eps ? eps->fill.abs.x : 0); + if (y) *y = (eps ? eps->fill.abs.y : 0); +} + /** * engrave_part_state_tweens_count - get the number of tweens in the state * @param eps: The Engrave_Part_State to check for tweens @@ -1209,4 +1245,57 @@ } } +/** + * engrave_part_state_evas_object_get - get the object for this state + * @param eps: The Engrave_Part_State to get the object from + * + * @return Returns the evas object that displays this state + */ +Evas_Object * +engrave_part_state_evas_object_get(Engrave_Part_State *eps) +{ + return (eps ? eps->object : NULL); +} + +/** + * engrave_part_state_evas_object_set - set the evas object for this state + * @param eps: The Engrave_Part_State to set the object into + * @param o: The Evas_Object to set into the state + * + * @return Returns no value. + */ +void +engrave_part_state_evas_object_set(Engrave_Part_State *eps, Evas_Object *o) +{ + if (!eps) return; + eps->object = o; +} + +/** + * engrave_part_state_parent_set - set the parent part on this state + * @param eps: The Engrave_Part_State to set the parent into + * @param ep: The Engrave_Part to set as the parent + * + * @return Returns no value. + */ +void +engrave_part_state_parent_set(Engrave_Part_State *eps, void *ep) +{ + if (!eps) return; + eps->parent = ep; +} + +/** + * engrave_part_state_parent_get - get the parent part of this state + * @param eps: The Engrave_Part_State to get the parent from + * + * @return Returns the Engrave_Part parent pointer, or NULL if none set. + */ +void * +engrave_part_state_parent_get(Engrave_Part_State *eps) +{ + return (eps ? eps->parent : NULL); +} + + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_part_state.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- engrave_part_state.h 15 Nov 2004 16:49:06 -0000 1.10 +++ engrave_part_state.h 5 Dec 2004 21:16:29 -0000 1.11 @@ -40,8 +40,8 @@ */ struct { - double w; /**< width value */ - double h; /**< height value */ + int w; /**< width value */ + int h; /**< height value */ } min, max; /** @@ -167,30 +167,45 @@ double y; /**< The y value */ } align; } text; + + struct + { + Evas_Coord x; /**< The x position to place the object */ + Evas_Coord y; /**< The y position to place the object */ + Evas_Coord w; /**< The width of the object */ + Evas_Coord h; /**< The hight of the object */ + } pos; + + Evas_Object *object; /**< The evas object used to display this state */ + + void *parent; /**< Pointer to parent */ }; Engrave_Part_State * engrave_part_state_new(void); void engrave_part_state_free(Engrave_Part_State *eps); +void engrave_part_state_parent_set(Engrave_Part_State *eps, void *ep); +void *engrave_part_state_parent_get(Engrave_Part_State *eps); + void engrave_part_state_name_set(Engrave_Part_State *eps, const char *name, double value); void engrave_part_state_visible_set(Engrave_Part_State *eps, int visible); -void engrave_part_state_align_set(Engrave_Part_State *eps, int x, int y); -void engrave_part_state_step_set(Engrave_Part_State *eps, int x, int y); +void engrave_part_state_align_set(Engrave_Part_State *eps, double x, double y); +void engrave_part_state_step_set(Engrave_Part_State *eps, double x, double y); void engrave_part_state_min_size_set(Engrave_Part_State *eps, int w, int h); void engrave_part_state_max_size_set(Engrave_Part_State *eps, int w, int h); -void engrave_part_state_aspect_set(Engrave_Part_State *eps, int w, int h); +void engrave_part_state_aspect_set(Engrave_Part_State *eps, double w, double h); void engrave_part_state_aspect_preference_set(Engrave_Part_State *eps, Engrave_Aspect_Preference prefer); void engrave_part_state_rel1_relative_set(Engrave_Part_State *eps, - int x, int y); + double x, double y); void engrave_part_state_rel1_offset_set(Engrave_Part_State *eps, int x, int y); void engrave_part_state_rel1_to_set(Engrave_Part_State *eps, const char *to); void engrave_part_state_rel1_to_x_set(Engrave_Part_State *eps, const char *to); void engrave_part_state_rel1_to_y_set(Engrave_Part_State *eps, const char *to); void engrave_part_state_rel2_relative_set(Engrave_Part_State *eps, - int x, int y); + double x, double y); void engrave_part_state_rel2_offset_set(Engrave_Part_State *eps, int x, int y); void engrave_part_state_rel2_to_set(Engrave_Part_State *eps, const char *to); void engrave_part_state_rel2_to_x_set(Engrave_Part_State *eps, const char *to); @@ -242,8 +257,8 @@ double *x, double *y); void engrave_part_state_step_get(Engrave_Part_State *eps, double *x, double *y); -void engrave_part_state_min_get(Engrave_Part_State *eps, int *w, int *h); -void engrave_part_state_max_get(Engrave_Part_State *eps, int *w, int *h); +void engrave_part_state_min_size_get(Engrave_Part_State *eps, int *w, int *h); +void engrave_part_state_max_size_get(Engrave_Part_State *eps, int *w, int *h); void engrave_part_state_aspect_get(Engrave_Part_State *eps, double *w, double *h); Engrave_Aspect_Preference @@ -280,11 +295,23 @@ int *x, int *y); void engrave_part_state_text_align_get(Engrave_Part_State *eps, double *x, double *y); +int engrave_part_state_fill_smooth_get(Engrave_Part_State *eps); +void engrave_part_state_fill_origin_relative_get(Engrave_Part_State *state, + double *x, double *y); +void engrave_part_state_fill_size_relative_get(Engrave_Part_State *eps, + double *x, double *y); +void engrave_part_state_fill_origin_offset_get(Engrave_Part_State *eps, + int *x, int *y); +void engrave_part_state_fill_size_offset_get(Engrave_Part_State *eps, + int *x, int *y); int engrave_part_state_tweens_count(Engrave_Part_State *eps); void engrave_part_state_tween_foreach(Engrave_Part_State *eps, void (*func)(Engrave_Image *, void *), void *data); +Evas_Object *engrave_part_state_evas_object_get(Engrave_Part_State *eps); +void engrave_part_state_evas_object_set(Engrave_Part_State *eps, + Evas_Object *o); /** * @} */ =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_program.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -3 -r1.12 -r1.13 --- engrave_program.c 15 Nov 2004 20:19:44 -0000 1.12 +++ engrave_program.c 5 Dec 2004 21:16:29 -0000 1.13 @@ -385,5 +385,31 @@ } } +/** + * engrave_program_parent_set - set the parent of the program + * @param ep: The Engrave_Program to set the parent into + * @param eg: The Engrave_Group to set as parent + * + * @return Returns no value. + */ +void +engrave_program_parent_set(Engrave_Program *ep, void *eg) +{ + if (!ep) return; + ep->parent = eg; +} + +/** + * engrave_program_parent_get - get the parent pointer + * @param ep: The Engrave_Program to get the parent from + * + * @return Returns a pointer to the Engrave_Group parent, or NULL if none set + */ +void * +engrave_program_parent_get(Engrave_Program *ep) +{ + return (ep ? ep->parent : NULL); +} + + - =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/engrave/src/lib/engrave_program.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- engrave_program.h 15 Nov 2004 16:49:06 -0000 1.9 +++ engrave_program.h 5 Dec 2004 21:16:29 -0000 1.10 @@ -46,11 +46,16 @@ double duration; /**< The duration of the transition */ char *script; /**< The script associated with the program */ + + void *parent; /**< Pointer to parent */ }; Engrave_Program *engrave_program_new(void); void engrave_program_free(Engrave_Program *ep); +void engrave_program_parent_set(Engrave_Program *ep, void *eg); +void *engrave_program_parent_get(Engrave_Program *ep); + void engrave_program_script_set(Engrave_Program *ep, const char *script); void engrave_program_name_set(Engrave_Program *ep, const char *name); void engrave_program_signal_set(Engrave_Program *ep, const char *signal); ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs