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

Reply via email to