Add a new API(ecore_evas_request_geometry_get)

The reson why I add this is for communicate with X in async mode.
For example, If applications call elm_win_rotation_with_resize_set API
when they start run and rotation mode is set.
ecore size doesn't changed yet, so it make elm window size to 1
becaues elm window's resize function use ecore_evas_geometry_get API.
so I add new api help upperside get info related with recently request geometry



SVN revision: 64492
This commit is contained in:
Jiyoun Park 2011-10-28 11:15:33 +00:00
parent a3a5a85d92
commit f627a72047
2 changed files with 48 additions and 0 deletions

View File

@ -278,6 +278,29 @@ EAPI Eina_Bool ecore_evas_transparent_get(const Ecore_Evas *ee);
* @see ecore_evas_move_resize()
*/
EAPI void ecore_evas_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
/**
* @brief Get the geometry which an Ecore_Evas was latest recently requested.
*
* @param ee The Ecore_Evas whose geometry y
* @param x A pointer to an int to place the x coordinate in
* @param y A pointer to an int to place the y coordinate in
* @param w A pointer to an int to place the w size in
* @param h A pointer to an int to place the h size in
*
* This function takes four pointers to (already allocated) ints, and places
* the geometry which @p ee was latest recently requested . If any of the parameters is not desired you
* may pass NULL on them.
* This function can represent recently requested geomety.
* ecore_evas_geometry_get function returns the value is updated after engine finished request.
* By comparison, ecore_evas_request_geometry_get returns recently requested value.
*
* @code
* int x, y, w, h;
* ecore_evas_request_geometry_get(ee, &x, &y, &w, &h);
* @endcode
*
*/
EAPI void ecore_evas_request_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
/**
* @brief Set the focus of an Ecore_Evas' window.
*

View File

@ -1185,6 +1185,31 @@ ecore_evas_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h)
}
}
EAPI void
ecore_evas_request_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h)
{
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
{
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
"ecore_evas_request_geometry_get");
return;
}
if ((ee->rotation == 90) || (ee->rotation == 270))
{
if (x) *x = ee->req.x;
if (y) *y = ee->req.y;
if (w) *w = ee->req.h;
if (h) *h = ee->req.w;
}
else
{
if (x) *x = ee->req.x;
if (y) *y = ee->req.y;
if (w) *w = ee->req.w;
if (h) *h = ee->req.h;
}
}
EAPI void
ecore_evas_rotation_set(Ecore_Evas *ee, int rot)
{