Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/edje

Dir     : e17/libs/edje/src/lib


Modified Files:
        edje_private.h 


Log Message:


save a few bytes by packing structures better... simple savings :)

===================================================================
RCS file: /cvs/e/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.125
retrieving revision 1.126
diff -u -3 -r1.125 -r1.126
--- edje_private.h      27 May 2007 05:28:07 -0000      1.125
+++ edje_private.h      28 Jun 2007 23:22:20 -0000      1.126
@@ -400,19 +400,12 @@
 struct _Edje_Part
 {
    char                  *name; /* the name if any of the part */
-   int                    id; /* its id number */
-   unsigned char          type; /* what type (image, rect, text) */
-   unsigned char          effect; /* 0 = plain... */
-   unsigned char          mouse_events; /* it will affect/respond to mouse 
events */
-   unsigned char          repeat_events; /* it will repeat events to objects 
below */
-   int                    clip_to_id; /* the part id to clip this one to */   
-   unsigned char  use_alternate_font_metrics;
    Edje_Part_Description *default_desc; /* the part descriptor for default */
    Evas_List             *other_desc; /* other possible descriptors */
+   char                  *source;
+   int                    id; /* its id number */
+   int                    clip_to_id; /* the part id to clip this one to */   
    struct {
-      signed char         x; /* can u click & drag this bit in x dir */
-      signed char         y; /* can u click & drag this bit in y dir */
-      
       int                 step_x; /* drag jumps n pixels (0 = no limit) */
       int                 step_y; /* drag jumps n pixels (0 = no limit) */
       
@@ -423,8 +416,15 @@
 
       /* davinchi */
       int                events_id; /* If it is used as scrollbar */
+      
+      char                x; /* can u click & drag this bit in x dir */
+      char                y; /* can u click & drag this bit in y dir */
    } dragable;
-   char                  *source;
+   unsigned char          type; /* what type (image, rect, text) */
+   unsigned char          effect; /* 0 = plain... */
+   unsigned char          mouse_events; /* it will affect/respond to mouse 
events */
+   unsigned char          repeat_events; /* it will repeat events to objects 
below */
+   unsigned char          use_alternate_font_metrics;
 };
 
 struct _Edje_Part_Image_Id
@@ -435,12 +435,10 @@
 struct _Edje_Part_Description
 {
    struct {
-      char          *name; /* the named state if any */
       double         value; /* the value of the state (for ranges) */
+      char          *name; /* the named state if any */
    } state;
    
-   unsigned char     visible; /* is it shown */
-
    struct {
       double         x, y; /* 0 <-> 1.0 alignment within allocated space */
    } align;
@@ -472,14 +470,14 @@
    } rel1, rel2;
 
    struct {
-      int            id; /* the image id to use */   
       Evas_List     *tween_list; /* list of Edje_Part_Image_Id */
+      int            id; /* the image id to use */   
    } image;
 
    struct {
-      int            id; /* the spectrum id to use */
       char          *type; /* type of spectrum - 'linear', 'radial', etc */
       char          *params; /* params for spectrum type */
+      int            id; /* the spectrum id to use */
       int            use_rel; /* 1 - use rel1,rel2; 0 - use fill */
       struct {
          double      relative_x;
@@ -495,32 +493,35 @@
    } border;
 
    struct {
-      char           smooth; /* fill with smooth scaling or not */
       double         pos_rel_x; /* fill offset x relative to area */
-      int            pos_abs_x; /* fill offset x added to fill offset */
       double         rel_x; /* relative size compared to area */
-      int            abs_x; /* size of fill added to relative fill */
       double         pos_rel_y; /* fill offset y relative to area */
-      int            pos_abs_y; /* fill offset y added to fill offset */
       double         rel_y; /* relative size compared to area */
+      int            pos_abs_x; /* fill offset x added to fill offset */
+      int            abs_x; /* size of fill added to relative fill */
+      int            pos_abs_y; /* fill offset y added to fill offset */
       int            abs_y; /* size of fill added to relative fill */
       int            angle; /* angle of fill -- currently only used by grads */
       int            spread; /* spread of fill -- currently only used by grads 
*/
+      char           smooth; /* fill with smooth scaling or not */
    } fill;
    
    char             *color_class; /* how to modify the color */
    
    struct {
-      unsigned char  r, g, b, a; /* color for rect or text, shadow etc. */
-   } color, color2, color3;
-
-   struct {
       char          *text; /* if "" or NULL, then leave text unchanged */
       char          *text_class; /* how to apply/modify the font */
       char          *style; /* the text style if a textblock */
       char          *font; /* if a specific font is asked for */
       
+      struct {
+        double      x, y; /* text alignment within bounds */
+      } align;
+      
+      double         elipsis; /* 0.0 - 1.0 defining where the elipsis align */
       int            size; /* 0 = use user set size */
+      int            id_source; /* -1 if none */
+      int            id_text_source; /* -1 if none */
       
       unsigned char  fit_x; /* resize font size down to fit in x dir */
       unsigned char  fit_y; /* resize font size down to fit in y dir */
@@ -529,14 +530,13 @@
       unsigned char  max_x; /* if text size should be part max size */
       unsigned char  max_y; /* if text size should be part max size */
       
-      struct {
-        double      x, y; /* text alignment within bounds */
-      } align;
-      
-      int            id_source; /* -1 if none */
-      int            id_text_source; /* -1 if none */
-      double         elipsis; /* 0.0 - 1.0 defining where the elipsis align */
    } text;
+   
+   struct {
+      unsigned char  r, g, b, a; /* color for rect or text, shadow etc. */
+   } color, color2, color3;
+
+   unsigned char     visible; /* is it shown */
 };
 
 
@@ -572,18 +572,6 @@
    struct {
       Evas_Coord         w, h;
    } min;
-   unsigned short        dirty : 1;
-   unsigned short        recalc : 1;
-   unsigned short        walking_callbacks : 1;
-   unsigned short        delete_callbacks : 1;
-   unsigned short        just_added_callbacks : 1;
-   unsigned short        have_objects : 1;
-   unsigned short        paused : 1;
-   unsigned short        no_anim : 1;
-   unsigned short        calc_only : 1;
-   unsigned short        walking_actions : 1;
-   unsigned short        block_break : 1;
-   unsigned short        delete_me : 1;
    double                paused_at;
    Evas                 *evas; /* the Evas this Edje belongs to */
    Evas_Object          *obj; /* the smart object */
@@ -595,34 +583,52 @@
    Evas_List            *pending_actions;
    Evas_List            *color_classes;
    Evas_List            *text_classes;
-   int                   references;
-   int                   block;
-   int                   load_error;
-   int                   freeze;
    /* variable pool for Edje Embryo scripts */
    Edje_Var_Pool        *var_pool;
    /* for faster lookups to avoid nth list walks */
-   int                   table_parts_size;
    Edje_Real_Part      **table_parts;
-   int                   table_programs_size;
    Edje_Program        **table_programs;
+   int                   table_programs_size;
+   int                   table_parts_size;
+   
+   int                   references;
+   int                   block;
+   int                   load_error;
+   int                   freeze;
 
    struct {
       void (*func) (void *data, Evas_Object *obj, const char *part);
       void *data;
    } text_change;
    
-   int                      processing_messages;
    struct {
-      int                   num;
       void                (*func) (void *data, Evas_Object *obj, 
Edje_Message_Type type, int id, void *msg);
       void                 *data;
+      int                   num;
    } message;
+   int                      processing_messages;
+
+   unsigned short        dirty : 1;
+   unsigned short        recalc : 1;
+   unsigned short        walking_callbacks : 1;
+   unsigned short        delete_callbacks : 1;
+   unsigned short        just_added_callbacks : 1;
+   unsigned short        have_objects : 1;
+   unsigned short        paused : 1;
+   unsigned short        no_anim : 1;
+   unsigned short        calc_only : 1;
+   unsigned short        walking_actions : 1;
+   unsigned short        block_break : 1;
+   unsigned short        delete_me : 1;
 };
 
 struct _Edje_Real_Part
 {
    Edje                     *edje;
+   Evas_Object              *object;
+   Evas_List                *extra_objects;
+   Evas_Object              *swallowed_object;
+   Edje_Part                *part;
    int                       x, y, w, h;
    struct {
       int                    x, y, w, h;
@@ -630,38 +636,32 @@
    struct {
       int                    x, y;
    } offset;
-   Evas_Object              *object;
-   Evas_List                *extra_objects;
-   Evas_Object              *swallowed_object;
    struct {
       struct {
         int                 w, h;
       } min, max;
       struct {
-        unsigned char       mode;
         int                 w, h;
+        unsigned char       mode;
       } aspect;
    } swallow_params;
-   unsigned char             calculated;
-   unsigned char             calculating;
-   int                       clicked_button;
-   unsigned char             still_in   : 1;
-   Edje_Part                *part;
    struct {
+      double        x, y;
+      struct {
+        double x, y;
+      } val, size, step, page;
       struct {
-        unsigned count;
+        unsigned int count;
         int  x, y;
       } down;
       struct {
         int  x, y;
       } tmp;
-      double        x, y;
       unsigned char need_reset : 1;
-      struct {
-        double x, y;
-      } val, size, step, page;
    } drag;
    struct {
+      Edje_Real_Part        *source;
+      Edje_Real_Part        *text_source;
       const char            *text;
       const char           *font;
       const char           *style;
@@ -676,12 +676,8 @@
         double              elipsis;
         int                 fit_x, fit_y;
       } cache;
-      Edje_Real_Part        *source;
-      Edje_Real_Part        *text_source;
    } text;
 
-   int                       gradient_id;
-
    double                    description_pos;
    Edje_Part_Description    *chosen_description;
    struct {
@@ -697,6 +693,14 @@
    
    Edje_Running_Program     *program;
    Edje_Real_Part           *events_to;
+   
+   int                       clicked_button;
+   int                       gradient_id;
+
+   unsigned char             calculated;
+   unsigned char             calculating;
+   
+   unsigned char             still_in   : 1;
 };
 
 struct _Edje_Running_Program
@@ -726,8 +730,6 @@
    struct {
       int           x, y, w, h;
    } req_drag;
-   unsigned char    visible : 1; 
-   unsigned char    smooth : 1;
    struct {
       int           x, y, w, h;
       int           angle;
@@ -749,6 +751,8 @@
      int             id;
      char           *type;
    } gradient;
+   unsigned char    visible : 1; 
+   unsigned char    smooth : 1;
 };
 
 struct _Edje_Pending_Program
@@ -845,7 +849,6 @@
 
 struct _Edje_Var
 {
-   unsigned char type;
    union {
       Edje_Var_Int    i;
       Edje_Var_Float  f;
@@ -853,6 +856,7 @@
       Edje_Var_List   l;
       Edje_Var_Hash   h;
    } data;
+   unsigned char type;
 };
 
 



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to