Tizen Native API
Edje Object Geometry

## Functions

void edje_object_update_hints_set (Edje_Object *obj, Eina_Bool update)
Edje will automatically update the size hints on itself.
Eina_Bool edje_object_update_hints_get (const Edje_Object *obj)
Whether or not Edje will update size hints on itself.
void edje_object_size_min_get (const Edje_Object *obj, Evas_Coord *minw, Evas_Coord *minh)
Get the minimum size specified -- as an EDC property -- for a given Edje object.
void edje_object_size_max_get (const Edje_Object *obj, Evas_Coord *maxw, Evas_Coord *maxh)
Get the maximum size specified -- as an EDC property -- for a given Edje object.
Eina_Bool edje_object_parts_extends_calc (Edje_Object *obj, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
Calculate the geometry of the region, relative to a given Edje object's area, occupied by all parts in the object
void edje_object_calc_force (Edje_Object *obj)
Force a Size/Geometry calculation.
void edje_object_size_min_calc (Edje_Object *obj, Evas_Coord *minw, Evas_Coord *minh)
Calculate the minimum required size for a given Edje object.
void edje_object_size_min_restricted_calc (Edje_Object *obj, Evas_Coord *minw, Evas_Coord *minh, Evas_Coord restrictedw, Evas_Coord restrictedh)
Calculate the minimum required size for a given Edje object.

Functions that deal with object's geometry.

By geometry we mean size and position. So in this groups there are functions to manipulate object's geometry or retrieve information about it.

Keep in mind that by changing an object's geometry, it may affect the appearance in the screen of the parts inside. Most times that is what you want.

## Function Documentation

 void edje_object_calc_force ( Edje_Object * obj )

Force a Size/Geometry calculation.

Since :
2.3
Remarks:
Forces the object `obj` to recalculation layout regardless of freeze/thaw.
Parameters:
 [in] obj The edje object
 Eina_Bool edje_object_parts_extends_calc ( Edje_Object * obj, Evas_Coord * x, Evas_Coord * y, Evas_Coord * w, Evas_Coord * h )

Calculate the geometry of the region, relative to a given Edje object's area, occupied by all parts in the object

Since :
2.3
Remarks:
This function gets the geometry of the rectangle equal to the area required to group all parts in `obj's` group/collection. The `x` and `y` coordinates are relative to the top left corner of the whole `obj` object's area. Parts placed out of the group's boundaries will also be taken in account, so that `x` and `y` may be negative.
Use `NULL` pointers on the geometry components you're not interested in: they'll be ignored by the function.
On failure, this function will make all non-`NULL` geometry pointers' pointed variables be set to zero.
Parameters:
 [in] obj The edje object [out] x A pointer to a variable where to store the parts region's x coordinate [out] y A pointer to a variable where to store the parts region's y coordinate [out] w A pointer to a variable where to store the parts region's width [out] h A pointer to a variable where to store the parts region's height
 void edje_object_size_max_get ( const Edje_Object * obj, Evas_Coord * maxw, Evas_Coord * maxh )

Get the maximum size specified -- as an EDC property -- for a given Edje object.

Since :
2.3
Remarks:
This function retrieves the `obj` object's maximum size values, as declared in its EDC group definition. Maximum size of groups have the following syntax
``` collections {
group {
name: "a_group";
max: 100 100;
}
}
```
where one declares a maximum size of 100 pixels both for width and height. Those are (hint) values which should be respected when the given object/group is to be controlled by a given container object (e.g. an Edje object being swallowed into a given `SWALLOW` typed part, as in edje_object_part_swallow()). Check the complete edcref syntax reference for EDC files.
If the `max` EDC property was not declared for `obj`, this call will return the maximum size a given Edje object may have, for each axis.
On failure, this function will make all non-`NULL` size pointers' pointed variables be set to zero.
edje_object_size_min_get()
Parameters:
 [in] obj The edje object [out] maxw Pointer to a variable where to store the maximum width [out] maxh Pointer to a variable where to store the maximum height
 void edje_object_size_min_calc ( Edje_Object * obj, Evas_Coord * minw, Evas_Coord * minh )

Calculate the minimum required size for a given Edje object.

Since :
2.3
Remarks:
This call works exactly as edje_object_size_min_restricted_calc(), with the last two arguments set to 0. Please refer to its documentation, then.
Parameters:
 [in] obj The edje object [out] minw Pointer to a variable where to store the minimum required width [out] minh Pointer to a variable where to store the minimum required height
 void edje_object_size_min_get ( const Edje_Object * obj, Evas_Coord * minw, Evas_Coord * minh )

Get the minimum size specified -- as an EDC property -- for a given Edje object.

Since :
2.3
Remarks:
This function retrieves the `obj` object's minimum size values, as declared in its EDC group definition. Minimum size of groups have the following syntax
``` collections {
group {
name: "a_group";
min: 100 100;
}
}
```
where one declares a minimum size of 100 pixels both for width and height. Those are (hint) values which should be respected when the given object/group is to be controlled by a given container object (e.g. an Edje object being swallowed into a given `SWALLOW` typed part, as in edje_object_part_swallow()). Check the complete edcref syntax reference for EDC files.
If the `min` EDC property was not declared for `obj`, this call will return the value 0, for each axis.
On failure, this function will make all non-`NULL` size pointers' pointed variables be set to zero.
edje_object_size_max_get()
Parameters:
 [in] obj The edje object [out] minw Pointer to a variable where to store the minimum width [out] minh Pointer to a variable where to store the minimum height
 void edje_object_size_min_restricted_calc ( Edje_Object * obj, Evas_Coord * minw, Evas_Coord * minh, Evas_Coord restrictedw, Evas_Coord restrictedh )

Calculate the minimum required size for a given Edje object.

Since :
2.3
Remarks:
This call will trigger an internal recalculation of all parts of the `obj` object, in order to return its minimum required dimensions for width and height. The user might choose to impose those minimum sizes, making the resulting calculation to get to values equal or bigger than `restrictedw` and `restrictedh`, for width and height, respectively.
At the end of this call, `obj` won't be automatically resized to new dimensions, but just return the calculated sizes. The caller is the one up to change its geometry or not.
Warning:
Be advised that invisible parts in `obj` will be taken into account in this calculation.
Parameters:
 [in] obj The edje object [out] minw Pointer to a variable where to store the minimum required width [out] minh Pointer to a variable where to store the minimum required height [in] restrictedw Do not allow object's calculated (minimum) width to be less than this value [in] restrictedh Do not allow object's calculated (minimum) height to be less than this value
 Eina_Bool edje_object_update_hints_get ( const Edje_Object * obj )

Whether or not Edje will update size hints on itself.

Since :
2.3
Returns:
`true` if does, `false` if it doesn't.
Parameters:
 [in] obj The edje object
 void edje_object_update_hints_set ( Edje_Object * obj, Eina_Bool update )

Edje will automatically update the size hints on itself.

Since :
2.3
Remarks:
By default edje doesn't set size hints on itself. With this function call, it will do so if update is true. Be carefully, it cost a lot to trigger this feature as it will recalc the object every time it make sense to be sure that's its minimal size hint is always accurate.
Parameters:
 [in] obj The edje object [in] update Whether or not update the size hints.