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