forked from enlightenment/enlightenment
parent
a52d19b664
commit
51ce3de0c0
|
@ -168,43 +168,79 @@ ACT_FN_GO(window_close)
|
|||
/***************************************************************************/
|
||||
ACT_FN_GO(desk_flip_by)
|
||||
{
|
||||
E_Container *con;
|
||||
E_Zone *zone;
|
||||
|
||||
if (!obj) return;
|
||||
if (obj->type != E_MANAGER_TYPE) return;
|
||||
con = e_manager_container_current_get((E_Manager *)obj);
|
||||
/* FIXME: this shoudl really go into desk logic and zone... */
|
||||
if (con)
|
||||
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||
if (zone)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
||||
zone = e_zone_current_get(con);
|
||||
if (zone)
|
||||
if (params)
|
||||
{
|
||||
E_Desk *desk;
|
||||
int dx = 0, dy = 0;
|
||||
|
||||
if (params)
|
||||
{
|
||||
if (sscanf(params, "%i %i", &dx, &dy) != 2)
|
||||
{
|
||||
dx = 0;
|
||||
dy = 0;
|
||||
}
|
||||
}
|
||||
dx = zone->desk_x_current + dx;
|
||||
if (dx < 0) dx = 0;
|
||||
else if (dx >= zone->desk_x_count) dx = zone->desk_x_count - 1;
|
||||
dy = zone->desk_x_current + dy;
|
||||
if (dy < 0) dy = 0;
|
||||
else if (dy >= zone->desk_y_count) dy = zone->desk_y_count - 1;
|
||||
desk = e_desk_at_xy_get(zone, dx, dy);
|
||||
if (desk)
|
||||
{
|
||||
ecore_x_window_focus(con->manager->root);
|
||||
e_desk_show(desk);
|
||||
e_zone_update_flip(zone);
|
||||
}
|
||||
|
||||
if (sscanf(params, "%i %i", &dx, &dy) == 2)
|
||||
e_zone_desk_flip_by(zone, dx, dy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************/
|
||||
ACT_FN_GO(desk_flip_to)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
||||
if (!obj) return;
|
||||
if (obj->type != E_MANAGER_TYPE) return;
|
||||
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||
if (zone)
|
||||
{
|
||||
if (params)
|
||||
{
|
||||
int dx = 0, dy = 0;
|
||||
|
||||
if (sscanf(params, "%i %i", &dx, &dy) == 2)
|
||||
e_zone_desk_flip_to(zone, dx, dy);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************/
|
||||
ACT_FN_GO(desk_linear_flip_by)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
||||
if (!obj) return;
|
||||
if (obj->type != E_MANAGER_TYPE) return;
|
||||
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||
if (zone)
|
||||
{
|
||||
if (params)
|
||||
{
|
||||
int dx = 0;
|
||||
|
||||
if (sscanf(params, "%i", &dx) == 1)
|
||||
e_zone_desk_linear_flip_by(zone, dx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************************************/
|
||||
ACT_FN_GO(desk_linear_flip_to)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
||||
if (!obj) return;
|
||||
if (obj->type != E_MANAGER_TYPE) return;
|
||||
zone = e_util_zone_current_get((E_Manager *)obj);
|
||||
if (zone)
|
||||
{
|
||||
if (params)
|
||||
{
|
||||
int dx = 0;
|
||||
|
||||
if (sscanf(params, "%i", &dx) == 1)
|
||||
e_zone_desk_linear_flip_to(zone, dx);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -238,6 +274,12 @@ e_actions_init(void)
|
|||
ACT_GO(window_close);
|
||||
|
||||
ACT_GO(desk_flip_by);
|
||||
|
||||
ACT_GO(desk_flip_to);
|
||||
|
||||
ACT_GO(desk_linear_flip_by);
|
||||
|
||||
ACT_GO(desk_linear_flip_to);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -82,6 +82,48 @@ e_bindings_init(void)
|
|||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"x", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
|
||||
"window_close", "");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"Left", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_by", "-1");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"Right", E_BINDING_MODIFIER_CTRL | E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_by", "1");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F1", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "0");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F2", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "1");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F3", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "2");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F4", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "3");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F5", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "4");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F6", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "5");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F7", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "6");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F8", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "7");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F9", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "8");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F10", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "9");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F11", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "10");
|
||||
e_bindings_key_add(E_BINDING_CONTEXT_ANY,
|
||||
"F12", E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_to", "11");
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -76,6 +76,22 @@ e_util_env_set(const char *var, const char *val)
|
|||
}
|
||||
}
|
||||
|
||||
E_Zone *
|
||||
e_util_zone_current_get(E_Manager *man)
|
||||
{
|
||||
E_Container *con;
|
||||
|
||||
con = e_manager_container_current_get(man);
|
||||
if (con)
|
||||
{
|
||||
E_Zone *zone;
|
||||
|
||||
zone = e_zone_current_get(con);
|
||||
return zone;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* local subsystem functions */
|
||||
static void
|
||||
_e_util_container_fake_mouse_up_cb(void *data)
|
||||
|
|
|
@ -10,6 +10,7 @@ EAPI void e_util_container_fake_mouse_up_later(E_Container *con, int button);
|
|||
EAPI void e_util_container_fake_mouse_up_all_later(E_Container *con);
|
||||
EAPI void e_util_wakeup(void);
|
||||
EAPI void e_util_env_set(const char *var, const char *val);
|
||||
|
||||
EAPI E_Zone *e_util_zone_current_get(E_Manager *man);
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -499,6 +499,49 @@ e_zone_update_flip(E_Zone *zone)
|
|||
_e_zone_update_flip(zone);
|
||||
}
|
||||
|
||||
void
|
||||
e_zone_desk_flip_by(E_Zone *zone, int dx, int dy)
|
||||
{
|
||||
dx = zone->desk_x_current + dx;
|
||||
dy = zone->desk_x_current + dy;
|
||||
e_zone_desk_flip_to(zone, dx, dy);
|
||||
}
|
||||
|
||||
void
|
||||
e_zone_desk_flip_to(E_Zone *zone, int x, int y)
|
||||
{
|
||||
E_Desk *desk;
|
||||
|
||||
if (x < 0) x = 0;
|
||||
else if (x >= zone->desk_x_count) x = zone->desk_x_count - 1;
|
||||
if (y < 0) y = 0;
|
||||
else if (y >= zone->desk_y_count) y = zone->desk_y_count - 1;
|
||||
desk = e_desk_at_xy_get(zone, x, y);
|
||||
if (desk)
|
||||
{
|
||||
e_desk_show(desk);
|
||||
_e_zone_update_flip(zone);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
e_zone_desk_linear_flip_by(E_Zone *zone, int dx)
|
||||
{
|
||||
dx = zone->desk_x_current +
|
||||
(zone->desk_y_current * zone->desk_x_count) + dx;
|
||||
e_zone_desk_linear_flip_to(zone, dx);
|
||||
}
|
||||
|
||||
void
|
||||
e_zone_desk_linear_flip_to(E_Zone *zone, int x)
|
||||
{
|
||||
int y;
|
||||
|
||||
y = x / zone->desk_x_count;
|
||||
x = x - (y * zone->desk_x_count);
|
||||
e_zone_desk_flip_to(zone, x, y);
|
||||
}
|
||||
|
||||
static void
|
||||
_e_zone_event_zone_desk_count_set_free(void *data, void *ev)
|
||||
{
|
||||
|
|
|
@ -58,6 +58,10 @@ EAPI void e_zone_flip_coords_handle(E_Zone *zone, int x, int y);
|
|||
EAPI void e_zone_desk_count_set(E_Zone *zone, int x_count, int y_count);
|
||||
EAPI void e_zone_desk_count_get(E_Zone *zone, int *x_count, int *y_count);
|
||||
EAPI void e_zone_update_flip(E_Zone *zone);
|
||||
EAPI void e_zone_desk_flip_by(E_Zone *zone, int dx, int dy);
|
||||
EAPI void e_zone_desk_flip_to(E_Zone *zone, int x, int y);
|
||||
EAPI void e_zone_desk_linear_flip_by(E_Zone *zone, int dx);
|
||||
EAPI void e_zone_desk_linear_flip_to(E_Zone *zone, int x);
|
||||
|
||||
extern EAPI int E_EVENT_ZONE_DESK_COUNT_SET;
|
||||
|
||||
|
|
Loading…
Reference in New Issue