}
E_API void
-e_client_e_state_rot_angle_current_set(E_Client *ec, int angle)
+e_client_e_state_rot_angle_current_set(E_Client *ec, E_Client_Rotation_Angle angle)
{
if (ec) ec->e.state.rot.ang.curr = angle;
}
-E_API int
+E_API E_Client_Rotation_Angle
e_client_e_state_rot_angle_current_get(E_Client *ec)
{
- if (!ec) return 0;
+ if (!ec) return E_CLIENT_ROTATION_ANGLE_UNKNOWN;
return ec->e.state.rot.ang.curr;
}
E_API void
-e_client_e_state_rot_angle_next_set(E_Client *ec, int angle)
+e_client_e_state_rot_angle_next_set(E_Client *ec, E_Client_Rotation_Angle angle)
{
if (ec) ec->e.state.rot.ang.next = angle;
}
-E_API int
+E_API E_Client_Rotation_Angle
e_client_e_state_rot_angle_next_get(E_Client *ec)
{
- if (!ec) return 0;
+ if (!ec) return E_CLIENT_ROTATION_ANGLE_UNKNOWN;
return ec->e.state.rot.ang.next;
}
E_API void
-e_client_e_state_rot_angle_prev_set(E_Client *ec, int angle)
+e_client_e_state_rot_angle_prev_set(E_Client *ec, E_Client_Rotation_Angle angle)
{
if (ec) ec->e.state.rot.ang.prev = angle;
}
-E_API int
+E_API E_Client_Rotation_Angle
e_client_e_state_rot_angle_prev_get(E_Client *ec)
{
- if (!ec) return 0;
+ if (!ec) return E_CLIENT_ROTATION_ANGLE_UNKNOWN;
return ec->e.state.rot.ang.prev;
}
E_API int
e_client_e_state_rot_angle_reserve_get(E_Client *ec)
{
- if (!ec) return 0;
+ if (!ec) return E_CLIENT_ROTATION_ANGLE_UNKNOWN;
return ec->e.state.rot.ang.reserve;
}
E_API Eina_Bool
-e_client_e_state_rot_available_angle_get(E_Client *ec, unsigned int id, int *angle)
+e_client_e_state_rot_available_angle_get(E_Client *ec, unsigned int id, E_Client_Rotation_Angle *angle)
{
if (!ec) return EINA_FALSE;
if (!ec->e.state.rot.available_rots) return EINA_FALSE;
}
E_API void
-e_client_e_state_rot_preferred_angle_set(E_Client *ec, int angle)
+e_client_e_state_rot_preferred_angle_set(E_Client *ec, E_Client_Rotation_Angle angle)
{
if (ec) ec->e.state.rot.preferred_rot = angle;
}
-E_API int
+E_API E_Client_Rotation_Angle
e_client_e_state_rot_preferred_angle_get(E_Client *ec)
{
- if (!ec) return -1;
+ if (!ec) return E_CLIENT_ROTATION_ANGLE_UNKNOWN;
return ec->e.state.rot.preferred_rot;
}
} E_Client_Rotation_Type;
#endif
+typedef enum _E_Client_Rotation_Angle
+{
+ E_CLIENT_ROTATION_ANGLE_UNKNOWN = -1,
+ E_CLIENT_ROTATION_ANGLE_0 = 0,
+ E_CLIENT_ROTATION_ANGLE_90 = 90,
+ E_CLIENT_ROTATION_ANGLE_180 = 180,
+ E_CLIENT_ROTATION_ANGLE_270 = 270,
+} E_Client_Rotation_Angle;
+
typedef enum _E_Visibility
{
E_VISIBILITY_UNKNOWN = -1,
E_Client_Rotation_Type type;
struct
{
- int prev, curr, next, reserve;
+ E_Client_Rotation_Angle prev, curr, next, reserve;
} ang;
struct
{
unsigned char wait_for_done: 1;
unsigned char app_set : 1; // app wants to communicate with the window manager
int rot; // decided rotation by the window manager
- int preferred_rot; // app specified rotation
- int *available_rots; // app specified available rotations
+ E_Client_Rotation_Angle preferred_rot; // app specified rotation
+ E_Client_Rotation_Angle *available_rots; // app specified available rotations
unsigned int count; // number of elements of available rotations
unsigned int nopending_render : 1; // app wants to show rendering jobs before sending rotation_done
// it is set by 'wm.policy.win.rot.render.nopending' aux hint
E_API void e_client_e_fetch_rot_support_set(E_Client *ec, Eina_Bool set);
E_API Eina_Bool e_client_e_fetch_rot_support_get(E_Client *ec);
-E_API void e_client_e_state_rot_angle_current_set(E_Client *ec, int angle);
-E_API int e_client_e_state_rot_angle_current_get(E_Client *ec);
-E_API void e_client_e_state_rot_angle_next_set(E_Client *ec, int angle);
-E_API int e_client_e_state_rot_angle_next_get(E_Client *ec);
-E_API void e_client_e_state_rot_angle_prev_set(E_Client *ec, int angle);
-E_API int e_client_e_state_rot_angle_prev_get(E_Client *ec);
-E_API void e_client_e_state_rot_angle_reserve_set(E_Client *ec, int angle);
-E_API int e_client_e_state_rot_angle_reserve_get(E_Client *ec);
-E_API Eina_Bool e_client_e_state_rot_available_angle_get(E_Client *ec, unsigned int id, int *angle);
+E_API void e_client_e_state_rot_angle_current_set(E_Client *ec, E_Client_Rotation_Angle angle);
+E_API E_Client_Rotation_Angle e_client_e_state_rot_angle_current_get(E_Client *ec);
+E_API void e_client_e_state_rot_angle_next_set(E_Client *ec, E_Client_Rotation_Angle angle);
+E_API E_Client_Rotation_Angle e_client_e_state_rot_angle_next_get(E_Client *ec);
+E_API void e_client_e_state_rot_angle_prev_set(E_Client *ec, E_Client_Rotation_Angle angle);
+E_API E_Client_Rotation_Angle e_client_e_state_rot_angle_prev_get(E_Client *ec);
+E_API void e_client_e_state_rot_angle_reserve_set(E_Client *ec, E_Client_Rotation_Angle angle);
+E_API E_Client_Rotation_Angle e_client_e_state_rot_angle_reserve_get(E_Client *ec);
+E_API Eina_Bool e_client_e_state_rot_available_angle_get(E_Client *ec, unsigned int id, E_Client_Rotation_Angle *angle);
E_API void e_client_e_state_rot_count_set(E_Client *ec, int count);
E_API int e_client_e_state_rot_count_get(E_Client *ec);
E_API Eina_Bool e_client_e_state_rot_geometry_set(E_Client *ec, int angle, int x, int y, int w, int h);
E_API Eina_Bool e_client_e_state_rot_pending_change_request_get(E_Client *ec);
E_API void e_client_e_state_rot_pending_show_set(E_Client *ec, Eina_Bool set);
E_API Eina_Bool e_client_e_state_rot_pending_show_get(E_Client *ec);
-E_API void e_client_e_state_rot_preferred_angle_set(E_Client *ec, int angle);
-E_API int e_client_e_state_rot_preferred_angle_get(E_Client *ec);
+E_API void e_client_e_state_rot_preferred_angle_set(E_Client *ec, E_Client_Rotation_Angle angle);
+E_API E_Client_Rotation_Angle e_client_e_state_rot_preferred_angle_get(E_Client *ec);
E_API void e_client_e_state_rot_support_set(E_Client *ec, Eina_Bool set);
E_API Eina_Bool e_client_e_state_rot_support_get(E_Client *ec);
E_API void e_client_e_state_rot_wait_for_done_set(E_Client *ec, Eina_Bool set);