On Sat, 4 Jun 2011, Enlightenment SVN wrote:
> Log: > whover did table and box support forgot: is this considered as a bug fix or an addition of a feature ? (for backport and changelog...) Vincent > > 1. table to have min.h/v ability like box > 2. to ACTUALLY implement box h/v (and well of course implement > tableh/v too) > > this basically fixes this working at all and completes the feature to > table too. > > > > Author: raster > Date: 2011-06-04 08:58:02 -0700 (Sat, 04 Jun 2011) > New Revision: 59960 > Trac: http://trac.enlightenment.org/e/changeset/59960 > > Modified: > trunk/edje/src/bin/edje_cc_handlers.c trunk/edje/src/lib/edje_calc.c > trunk/edje/src/lib/edje_data.c trunk/edje/src/lib/edje_private.h > > Modified: trunk/edje/src/bin/edje_cc_handlers.c > =================================================================== > --- trunk/edje/src/bin/edje_cc_handlers.c 2011-06-04 11:15:14 UTC (rev > 59959) > +++ trunk/edje/src/bin/edje_cc_handlers.c 2011-06-04 15:58:02 UTC (rev > 59960) > @@ -214,6 +214,7 @@ > static void > st_collections_group_parts_part_description_table_homogeneous(void); > static void st_collections_group_parts_part_description_table_align(void); > static void st_collections_group_parts_part_description_table_padding(void); > +static void st_collections_group_parts_part_description_table_min(void); > static void st_collections_group_parts_part_description_map_perspective(void); > static void st_collections_group_parts_part_description_map_light(void); > static void > st_collections_group_parts_part_description_map_rotation_center(void); > @@ -470,6 +471,7 @@ > {"collections.group.parts.part.description.table.homogeneous", > st_collections_group_parts_part_description_table_homogeneous}, > {"collections.group.parts.part.description.table.align", > st_collections_group_parts_part_description_table_align}, > {"collections.group.parts.part.description.table.padding", > st_collections_group_parts_part_description_table_padding}, > + {"collections.group.parts.part.description.table.min", > st_collections_group_parts_part_description_table_min}, > {"collections.group.parts.part.description.map.perspective", > st_collections_group_parts_part_description_map_perspective}, > {"collections.group.parts.part.description.map.light", > st_collections_group_parts_part_description_map_light}, > {"collections.group.parts.part.description.map.rotation.center", > st_collections_group_parts_part_description_map_rotation_center}, > @@ -6106,6 +6108,7 @@ > homogeneous: TABLE; > padding: 0 2; > align: 0.5 0.5; > + min: 0 0; > } > .. > } > @@ -6143,6 +6146,16 @@ > @effect > Sets the space between cells in pixels. Defaults to 0 0. > @endproperty > + > + @property > + min > + @parameters > + [horizontal] [vertical] > + @effect > + When any of the parameters is enabled (1) it forces the minimum size > of > + the table to be equal to the minimum size of the items. The default > + value is "0 0". > + @endproperty > */ > static void > st_collections_group_parts_part_description_table_homogeneous(void) > { > @@ -6225,7 +6238,33 @@ > ed->table.padding.y = parse_int_range(1, 0, 0x7fffffff); > } > > +static void > +st_collections_group_parts_part_description_table_min(void) > +{ > + Edje_Part_Collection *pc; > + Edje_Part *ep; > + Edje_Part_Description_Table *ed; > > + check_arg_count(2); > + > + pc = eina_list_data_get(eina_list_last(edje_collections)); > + ep = pc->parts[pc->parts_count - 1]; > + > + if (ep->type != EDJE_PART_TYPE_TABLE) > + { > + ERR("%s: Error. parse error %s:%i. " > + "box attributes in non-TABLE part.", > + progname, file_in, line - 1); > + exit(-1); > + } > + > + ed = (Edje_Part_Description_Table*) ep->default_desc; > + if (ep->other.desc_count) ed = (Edje_Part_Description_Table*) > ep->other.desc[ep->other.desc_count - 1]; > + > + ed->table.min.h = parse_bool(0); > + ed->table.min.v = parse_bool(1); > +} > + > /** > @edcsection{description_map,Map state description sub blocks} > */ > > Modified: trunk/edje/src/lib/edje_calc.c > =================================================================== > --- trunk/edje/src/lib/edje_calc.c 2011-06-04 11:15:14 UTC (rev 59959) > +++ trunk/edje/src/lib/edje_calc.c 2011-06-04 15:58:02 UTC (rev 59960) > @@ -1543,6 +1543,43 @@ > _edje_part_recalc_single_textblock(sc, ed, ep, > (Edje_Part_Description_Text*) chosen_desc, params, &minw, &minh, &maxw, > &maxh); > else if (ep->part->type == EDJE_PART_TYPE_TEXT) > _edje_part_recalc_single_text(sc, ed, ep, (Edje_Part_Description_Text*) > desc, (Edje_Part_Description_Text*) chosen_desc, params, &minw, &minh, &maxw, > &maxh); > + > + if ((ep->part->type == EDJE_PART_TYPE_TABLE) && > + (((((Edje_Part_Description_Table *)chosen_desc)->table.min.h) || > + (((Edje_Part_Description_Table *)chosen_desc)->table.min.v)))) > + { > + Evas_Coord lminw = 0, lminh = 0; > + > + evas_object_smart_need_recalculate_set(ep->object, 1); > + evas_object_smart_calculate(ep->object); > + evas_object_size_hint_min_get(ep->object, &lminw, &lminh); > + if (((Edje_Part_Description_Table *)chosen_desc)->table.min.h) > + { > + if (lminw > minw) minw = lminw; > + } > + if (((Edje_Part_Description_Table *)chosen_desc)->table.min.v) > + { > + if (lminh > minh) minh = lminh; > + } > + } > + else if ((ep->part->type == EDJE_PART_TYPE_BOX) && > + ((((Edje_Part_Description_Box *)chosen_desc)->box.min.h) || > + (((Edje_Part_Description_Box *)chosen_desc)->box.min.v))) > + { > + Evas_Coord lminw = 0, lminh = 0; > + > + evas_object_smart_need_recalculate_set(ep->object, 1); > + evas_object_smart_calculate(ep->object); > + evas_object_size_hint_min_get(ep->object, &lminw, &lminh); > + if (((Edje_Part_Description_Box *)chosen_desc)->box.min.h) > + { > + if (lminw > minw) minw = lminw; > + } > + if (((Edje_Part_Description_Box *)chosen_desc)->box.min.v) > + { > + if (lminh > minh) minh = lminh; > + } > + } > > /* remember what our size is BEFORE we go limit it */ > params->req.x = params->x; > > Modified: trunk/edje/src/lib/edje_data.c > =================================================================== > --- trunk/edje/src/lib/edje_data.c 2011-06-04 11:15:14 UTC (rev 59959) > +++ trunk/edje/src/lib/edje_data.c 2011-06-04 15:58:02 UTC (rev 59960) > @@ -665,6 +665,8 @@ > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_table, > Edje_Part_Description_Table, "table.align.y", table.align.y, EDJE_T_FLOAT); > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_table, > Edje_Part_Description_Table, "table.padding.x", table.padding.x, EET_T_INT); > EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_table, > Edje_Part_Description_Table, "table.padding.y", table.padding.y, EET_T_INT); > + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_table, > Edje_Part_Description_Table, "table.min.h", table.min.h, EET_T_UCHAR); > + EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_description_table, > Edje_Part_Description_Table, "table.min.v", table.min.v, EET_T_UCHAR); > > EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&eddc, > Edje_Part_Description_External); > eddc.func.mem_free = mem_free_external; > > Modified: trunk/edje/src/lib/edje_private.h > =================================================================== > --- trunk/edje/src/lib/edje_private.h 2011-06-04 11:15:14 UTC (rev 59959) > +++ trunk/edje/src/lib/edje_private.h 2011-06-04 15:58:02 UTC (rev 59960) > @@ -887,7 +887,7 @@ > int x, y; > } padding; > struct { > - Eina_Bool h, v; > + unsigned char h, v; > } min; > }; > > @@ -898,6 +898,9 @@ > struct { > int x, y; > } padding; > + struct { > + unsigned char h, v; > + } min; > }; > > struct _Edje_Part_Description_Image > > > ------------------------------------------------------------------------------ > Simplify data backup and recovery for your virtual environment with vRanger. > Installation's a snap, and flexible recovery options mean your data is safe, > secure and there when you need it. Discover what all the cheering's about. > Get your free trial download today. > http://p.sf.net/sfu/quest-dev2dev2 > _______________________________________________ > enlightenment-svn mailing list > enlightenment-...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > ------------------------------------------------------------------------------ Simplify data backup and recovery for your virtual environment with vRanger. Installation's a snap, and flexible recovery options mean your data is safe, secure and there when you need it. Discover what all the cheering's about. Get your free trial download today. http://p.sf.net/sfu/quest-dev2dev2 _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel