forked from enlightenment/efl
From: 이상진 <lsj119@samsung.com>
Patch for rotate with resize (fixed formatting a bit) SVN revision: 46046
This commit is contained in:
parent
7fb7677794
commit
fb352ec80f
|
@ -279,6 +279,7 @@ EAPI void ecore_evas_resize(Ecore_Evas *ee, int w, int h);
|
||||||
EAPI void ecore_evas_move_resize(Ecore_Evas *ee, int x, int y, int w, int h);
|
EAPI void ecore_evas_move_resize(Ecore_Evas *ee, int x, int y, int w, int h);
|
||||||
EAPI void ecore_evas_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
|
EAPI void ecore_evas_geometry_get(const Ecore_Evas *ee, int *x, int *y, int *w, int *h);
|
||||||
EAPI void ecore_evas_rotation_set(Ecore_Evas *ee, int rot);
|
EAPI void ecore_evas_rotation_set(Ecore_Evas *ee, int rot);
|
||||||
|
EAPI void ecore_evas_rotation_with_resize_set(Ecore_Evas *ee, int rot);
|
||||||
EAPI int ecore_evas_rotation_get(const Ecore_Evas *ee);
|
EAPI int ecore_evas_rotation_get(const Ecore_Evas *ee);
|
||||||
EAPI void ecore_evas_shaped_set(Ecore_Evas *ee, int shaped);
|
EAPI void ecore_evas_shaped_set(Ecore_Evas *ee, int shaped);
|
||||||
EAPI int ecore_evas_shaped_get(const Ecore_Evas *ee);
|
EAPI int ecore_evas_shaped_get(const Ecore_Evas *ee);
|
||||||
|
|
|
@ -1408,7 +1408,35 @@ ecore_evas_rotation_set(Ecore_Evas *ee, int rot)
|
||||||
rot = rot % 360;
|
rot = rot % 360;
|
||||||
while (rot < 0) rot += 360;
|
while (rot < 0) rot += 360;
|
||||||
while (rot >= 360) rot -= 360;
|
while (rot >= 360) rot -= 360;
|
||||||
IFC(ee, fn_rotation_set) (ee, rot);
|
IFC(ee, fn_rotation_set) (ee, rot, 0);
|
||||||
|
/* make sure everything gets redrawn */
|
||||||
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
|
||||||
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w);
|
||||||
|
IFE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the rotation of an Ecore_Evas' window
|
||||||
|
*
|
||||||
|
* @param ee The Ecore_Evas
|
||||||
|
* @param rot the angle (in degrees) of rotation.
|
||||||
|
*
|
||||||
|
* The allowed values of @p rot depend on the engine being used. Most only
|
||||||
|
* allow multiples of 90.
|
||||||
|
*/
|
||||||
|
EAPI void
|
||||||
|
ecore_evas_rotation_with_resize_set(Ecore_Evas *ee, int rot)
|
||||||
|
{
|
||||||
|
if (!ECORE_MAGIC_CHECK(ee, ECORE_MAGIC_EVAS))
|
||||||
|
{
|
||||||
|
ECORE_MAGIC_FAIL(ee, ECORE_MAGIC_EVAS,
|
||||||
|
"ecore_evas_rotation_set");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
rot = rot % 360;
|
||||||
|
while (rot < 0) rot += 360;
|
||||||
|
while (rot >= 360) rot -= 360;
|
||||||
|
IFC(ee, fn_rotation_set) (ee, rot, 1);
|
||||||
/* make sure everything gets redrawn */
|
/* make sure everything gets redrawn */
|
||||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
|
||||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w);
|
evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w);
|
||||||
|
|
|
@ -353,7 +353,7 @@ _ecore_evas_move_resize(Ecore_Evas *ee, int x __UNUSED__, int y __UNUSED__, int
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ecore_evas_rotation_set(Ecore_Evas *ee, int rotation)
|
_ecore_evas_rotation_set(Ecore_Evas *ee, int rotation, int resize)
|
||||||
{
|
{
|
||||||
Evas_Engine_Info_FB *einfo;
|
Evas_Engine_Info_FB *einfo;
|
||||||
int rot_dif;
|
int rot_dif;
|
||||||
|
|
|
@ -157,7 +157,7 @@ struct _Ecore_Evas_Engine_Func
|
||||||
void (*fn_managed_move) (Ecore_Evas *ee, int x, int y);
|
void (*fn_managed_move) (Ecore_Evas *ee, int x, int y);
|
||||||
void (*fn_resize) (Ecore_Evas *ee, int w, int h);
|
void (*fn_resize) (Ecore_Evas *ee, int w, int h);
|
||||||
void (*fn_move_resize) (Ecore_Evas *ee, int x, int y, int w, int h);
|
void (*fn_move_resize) (Ecore_Evas *ee, int x, int y, int w, int h);
|
||||||
void (*fn_rotation_set) (Ecore_Evas *ee, int rot);
|
void (*fn_rotation_set) (Ecore_Evas *ee, int rot, int resize);
|
||||||
void (*fn_shaped_set) (Ecore_Evas *ee, int shaped);
|
void (*fn_shaped_set) (Ecore_Evas *ee, int shaped);
|
||||||
void (*fn_show) (Ecore_Evas *ee);
|
void (*fn_show) (Ecore_Evas *ee);
|
||||||
void (*fn_hide) (Ecore_Evas *ee);
|
void (*fn_hide) (Ecore_Evas *ee);
|
||||||
|
|
|
@ -530,7 +530,7 @@ _ecore_evas_win32_rotation_set_internal(Ecore_Evas *ee, int rotation)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ecore_evas_win32_rotation_set(Ecore_Evas *ee, int rotation)
|
_ecore_evas_win32_rotation_set(Ecore_Evas *ee, int rotation, int resize)
|
||||||
{
|
{
|
||||||
INF("ecore evas rotation: %s", rotation ? "yes" : "no");
|
INF("ecore evas rotation: %s", rotation ? "yes" : "no");
|
||||||
|
|
||||||
|
|
|
@ -1311,7 +1311,7 @@ _ecore_evas_x_move_resize(Ecore_Evas *ee, int x, int y, int w, int h)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation,
|
_ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation, int resize,
|
||||||
Evas_Engine_Info *einfo)
|
Evas_Engine_Info *einfo)
|
||||||
{
|
{
|
||||||
int rot_dif;
|
int rot_dif;
|
||||||
|
@ -1324,18 +1324,39 @@ _ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation,
|
||||||
int minw, minh, maxw, maxh, basew, baseh, stepw, steph;
|
int minw, minh, maxw, maxh, basew, baseh, stepw, steph;
|
||||||
|
|
||||||
evas_engine_info_set(ee->evas, einfo);
|
evas_engine_info_set(ee->evas, einfo);
|
||||||
if (!ee->prop.fullscreen)
|
|
||||||
{
|
|
||||||
ecore_x_window_resize(ee->prop.window, ee->h, ee->w);
|
|
||||||
ee->expecting_resize.w = ee->h;
|
|
||||||
ee->expecting_resize.h = ee->w;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int w, h;
|
|
||||||
|
|
||||||
|
if (!resize)
|
||||||
|
{
|
||||||
|
if (!ee->prop.fullscreen)
|
||||||
|
{
|
||||||
|
ecore_x_window_resize(ee->prop.window, ee->h, ee->w);
|
||||||
|
ee->expecting_resize.w = ee->h;
|
||||||
|
ee->expecting_resize.h = ee->w;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
|
||||||
|
ecore_x_window_size_get(ee->prop.window, &w, &h);
|
||||||
|
ecore_x_window_resize(ee->prop.window, h, w);
|
||||||
|
if ((rotation == 0) || (rotation == 180))
|
||||||
|
{
|
||||||
|
evas_output_size_set(ee->evas, ee->w, ee->h);
|
||||||
|
evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
evas_output_size_set(ee->evas, ee->h, ee->w);
|
||||||
|
evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
|
||||||
|
}
|
||||||
|
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
|
||||||
ecore_x_window_size_get(ee->prop.window, &w, &h);
|
ecore_x_window_size_get(ee->prop.window, &w, &h);
|
||||||
ecore_x_window_resize(ee->prop.window, h, w);
|
|
||||||
if ((rotation == 0) || (rotation == 180))
|
if ((rotation == 0) || (rotation == 180))
|
||||||
{
|
{
|
||||||
evas_output_size_set(ee->evas, ee->w, ee->h);
|
evas_output_size_set(ee->evas, ee->w, ee->h);
|
||||||
|
@ -1347,7 +1368,7 @@ _ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation,
|
||||||
evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
|
evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
|
||||||
}
|
}
|
||||||
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||||
}
|
}
|
||||||
ecore_evas_size_min_get(ee, &minw, &minh);
|
ecore_evas_size_min_get(ee, &minw, &minh);
|
||||||
ecore_evas_size_max_get(ee, &maxw, &maxh);
|
ecore_evas_size_max_get(ee, &maxw, &maxh);
|
||||||
ecore_evas_size_base_get(ee, &basew, &baseh);
|
ecore_evas_size_base_get(ee, &basew, &baseh);
|
||||||
|
@ -1376,7 +1397,7 @@ _ecore_evas_x_rotation_set_internal(Ecore_Evas *ee, int rotation,
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation)
|
_ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation, int resize)
|
||||||
{
|
{
|
||||||
if (ee->rotation == rotation) return;
|
if (ee->rotation == rotation) return;
|
||||||
if (!strcmp(ee->driver, "opengl_x11")) return;
|
if (!strcmp(ee->driver, "opengl_x11")) return;
|
||||||
|
@ -1390,7 +1411,7 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation)
|
||||||
if (!einfo) return;
|
if (!einfo) return;
|
||||||
einfo->info.rotation = rotation;
|
einfo->info.rotation = rotation;
|
||||||
_ecore_evas_x_rotation_set_internal
|
_ecore_evas_x_rotation_set_internal
|
||||||
(ee, rotation, (Evas_Engine_Info *)einfo);
|
(ee, rotation, resize, (Evas_Engine_Info *)einfo);
|
||||||
#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */
|
#endif /* BUILD_ECORE_EVAS_SOFTWARE_X11 */
|
||||||
}
|
}
|
||||||
else if (!strcmp(ee->driver, "software_16_x11"))
|
else if (!strcmp(ee->driver, "software_16_x11"))
|
||||||
|
@ -1402,7 +1423,7 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation)
|
||||||
if (!einfo) return;
|
if (!einfo) return;
|
||||||
einfo->info.rotation = rotation;
|
einfo->info.rotation = rotation;
|
||||||
_ecore_evas_x_rotation_set_internal
|
_ecore_evas_x_rotation_set_internal
|
||||||
(ee, rotation, (Evas_Engine_Info *)einfo);
|
(ee, rotation, resize, (Evas_Engine_Info *)einfo);
|
||||||
#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
|
#endif /* BUILD_ECORE_EVAS_SOFTWARE_16_X11 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue