forked from enlightenment/enlightenment
Config for wheel and signal bindings.
NEW CONFIG VERSION!! SVN revision: 16853
This commit is contained in:
parent
06ec0ea970
commit
d0cb4b111a
|
@ -42,135 +42,24 @@ e_bindings_init(void)
|
|||
e_bindings_key_add(eb->context, eb->key, eb->modifiers,
|
||||
eb->any_mod, eb->action, eb->params);
|
||||
}
|
||||
|
||||
/* FIXME: these need to be come normal e_config bindings that you can
|
||||
* modify via ipc and are saved/loaded to/from the user's config
|
||||
*/
|
||||
/* wheel events.. anywhere! :) */
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_CONTAINER,
|
||||
0, -1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "-1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_CONTAINER,
|
||||
1, -1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "-1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_CONTAINER,
|
||||
0, 1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_CONTAINER,
|
||||
1, 1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_POPUP,
|
||||
0, -1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "-1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_POPUP,
|
||||
1, -1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "-1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_POPUP,
|
||||
0, 1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_POPUP,
|
||||
1, 1, E_BINDING_MODIFIER_NONE, 1,
|
||||
"desk_linear_flip_by", "1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_BORDER,
|
||||
0, -1, E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_by", "-1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_BORDER,
|
||||
1, -1, E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_by", "-1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_BORDER,
|
||||
0, 1, E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_by", "1");
|
||||
e_bindings_wheel_add(E_BINDING_CONTEXT_BORDER,
|
||||
1, 1, E_BINDING_MODIFIER_ALT, 0,
|
||||
"desk_linear_flip_by", "1");
|
||||
|
||||
/* these now let you bind your own actions to a border */
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1,double", "title", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_shaded_toggle", "up");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,2", "title", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_shaded_toggle", "up");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,wheel,?,1", "title", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_shaded", "0 up");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,wheel,?,-1", "title", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_shaded", "1 up");
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,3", "title", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_menu", "");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,?", "icon", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_menu", "");
|
||||
for (l = e_config->signal_bindings; l; l = l->next)
|
||||
{
|
||||
E_Config_Binding_Signal *eb;
|
||||
|
||||
eb = l->data;
|
||||
e_bindings_signal_add(eb->context, eb->signal, eb->source, eb->modifiers,
|
||||
eb->any_mod, eb->action, eb->params);
|
||||
}
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,[12]", "close", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_close", "");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,3", "close", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_kill", "");
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,1", "maximize", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_maximized_toggle", "");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,2", "maximize", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_maximized_toggle", "smart");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,3", "maximize", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_maximized_toggle", "expand");
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,clicked,?", "minimize", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_iconic_toggle", "");
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "icon", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_drag_icon", "");
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "title", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_move", "");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,up,1", "title", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_move", "end");
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_tl", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "tl");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_t", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "t");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_tr", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "tr");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_r", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "r");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_br", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "br");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_b", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "b");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_bl", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "bl");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,1", "resize_l", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "l");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,up,1", "resize_*", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_resize", "end");
|
||||
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,down,3", "resize_*", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_move", "");
|
||||
e_bindings_signal_add(E_BINDING_CONTEXT_BORDER,
|
||||
"mouse,up,3", "resize_*", E_BINDING_MODIFIER_NONE, 1,
|
||||
"window_move", "end");
|
||||
for (l = e_config->wheel_bindings; l; l = l->next)
|
||||
{
|
||||
E_Config_Binding_Wheel *eb;
|
||||
|
||||
eb = l->data;
|
||||
e_bindings_wheel_add(eb->context, eb->direction, eb->z, eb->modifiers,
|
||||
eb->any_mod, eb->action, eb->params);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ static E_Config_DD *_e_config_font_default_edd = NULL;
|
|||
static E_Config_DD *_e_config_theme_edd = NULL;
|
||||
static E_Config_DD *_e_config_bindings_mouse_edd = NULL;
|
||||
static E_Config_DD *_e_config_bindings_key_edd = NULL;
|
||||
static E_Config_DD *_e_config_bindings_signal_edd = NULL;
|
||||
static E_Config_DD *_e_config_bindings_wheel_edd = NULL;
|
||||
static E_Config_DD *_e_config_path_append_edd = NULL;
|
||||
static E_Config_DD *_e_config_desktop_bg_edd = NULL;
|
||||
static E_Config_DD *_e_config_desktop_name_edd = NULL;
|
||||
|
@ -158,6 +160,32 @@ e_config_init(void)
|
|||
E_CONFIG_VAL(D, T, params, STR);
|
||||
E_CONFIG_VAL(D, T, any_mod, UCHAR);
|
||||
|
||||
_e_config_bindings_signal_edd = E_CONFIG_DD_NEW("E_Config_Binding_Signal", E_Config_Binding_Signal);
|
||||
#undef T
|
||||
#undef D
|
||||
#define T E_Config_Binding_Signal
|
||||
#define D _e_config_bindings_signal_edd
|
||||
E_CONFIG_VAL(D, T, context, INT);
|
||||
E_CONFIG_VAL(D, T, signal, STR);
|
||||
E_CONFIG_VAL(D, T, source, STR);
|
||||
E_CONFIG_VAL(D, T, modifiers, INT);
|
||||
E_CONFIG_VAL(D, T, any_mod, UCHAR);
|
||||
E_CONFIG_VAL(D, T, action, STR);
|
||||
E_CONFIG_VAL(D, T, params, STR);
|
||||
|
||||
_e_config_bindings_wheel_edd = E_CONFIG_DD_NEW("E_Config_Binding_Wheel", E_Config_Binding_Wheel);
|
||||
#undef T
|
||||
#undef D
|
||||
#define T E_Config_Binding_Wheel
|
||||
#define D _e_config_bindings_wheel_edd
|
||||
E_CONFIG_VAL(D, T, context, INT);
|
||||
E_CONFIG_VAL(D, T, direction, INT);
|
||||
E_CONFIG_VAL(D, T, z, INT);
|
||||
E_CONFIG_VAL(D, T, modifiers, INT);
|
||||
E_CONFIG_VAL(D, T, any_mod, UCHAR);
|
||||
E_CONFIG_VAL(D, T, action, STR);
|
||||
E_CONFIG_VAL(D, T, params, STR);
|
||||
|
||||
_e_config_remember_edd = E_CONFIG_DD_NEW("E_Remember", E_Remember);
|
||||
#undef T
|
||||
#undef D
|
||||
|
@ -247,6 +275,8 @@ e_config_init(void)
|
|||
E_CONFIG_LIST(D, T, themes, _e_config_theme_edd); /**/
|
||||
E_CONFIG_LIST(D, T, mouse_bindings, _e_config_bindings_mouse_edd); /**/
|
||||
E_CONFIG_LIST(D, T, key_bindings, _e_config_bindings_key_edd); /**/
|
||||
E_CONFIG_LIST(D, T, signal_bindings, _e_config_bindings_signal_edd); /**/
|
||||
E_CONFIG_LIST(D, T, wheel_bindings, _e_config_bindings_wheel_edd); /**/
|
||||
E_CONFIG_LIST(D, T, path_append_data, _e_config_path_append_edd); /**/
|
||||
E_CONFIG_LIST(D, T, path_append_images, _e_config_path_append_edd); /**/
|
||||
E_CONFIG_LIST(D, T, path_append_fonts, _e_config_path_append_edd); /**/
|
||||
|
@ -931,6 +961,372 @@ e_config_init(void)
|
|||
*/
|
||||
/* ALT Return - fullscreen window */
|
||||
}
|
||||
{
|
||||
E_Config_Binding_Signal *eb;
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1,double");
|
||||
eb->source= strdup("title");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_shaded_toggle");
|
||||
eb->params = strdup("up");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,2");
|
||||
eb->source = strdup("title");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_shaded_toggle");
|
||||
eb->params = strdup("up");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,wheel,?,1");
|
||||
eb->source = strdup("title");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_shaded");
|
||||
eb->params = strdup("0 up");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,wheel,?,-1");
|
||||
eb->source = strdup("title");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_shaded");
|
||||
eb->params = strdup("1 up");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,clicked,?");
|
||||
eb->source = strdup("icon");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_menu");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,clicked,[12]");
|
||||
eb->source = strdup("close");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_close");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,clicked,3");
|
||||
eb->source = strdup("close");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_kill");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,clicked,1");
|
||||
eb->source = strdup("maximize");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_maximized_toggle");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,clicked,2");
|
||||
eb->source = strdup("maximize");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_maximized_toggle");
|
||||
eb->params = strdup("smart");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,clicked,3");
|
||||
eb->source = strdup("maximize");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_maximized_toggle");
|
||||
eb->params = strdup("expand");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,clicked,?");
|
||||
eb->source = strdup("minimize");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_iconic_toggle");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("icon");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_drag_icon");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("title");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_move");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,up,1");
|
||||
eb->source = strdup("title");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_move");
|
||||
eb->params = strdup("end");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_tl");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("tl");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_t");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("t");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_tr");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("tr");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_r");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("r");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_br");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("br");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_b");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("b");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_bl");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("bl");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,1");
|
||||
eb->source = strdup("resize_l");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("l");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,up,1");
|
||||
eb->source = strdup("resize_*");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_resize");
|
||||
eb->params = strdup("end");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,down,3");
|
||||
eb->source = strdup("resize_*");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_move");
|
||||
eb->params = strdup("");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->signal = strdup("mouse,up,3");
|
||||
eb->source = strdup("resize_*");
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("window_move");
|
||||
eb->params = strdup("end");
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
}
|
||||
{
|
||||
E_Config_Binding_Wheel *eb;
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_CONTAINER;
|
||||
eb->direction = 0;
|
||||
eb->z = -1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("-1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_CONTAINER;
|
||||
eb->direction = 0;
|
||||
eb->z = 1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_CONTAINER;
|
||||
eb->direction = 1;
|
||||
eb->z = 1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_POPUP;
|
||||
eb->direction = 0;
|
||||
eb->z = -1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("-1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_POPUP;
|
||||
eb->direction = 1;
|
||||
eb->z = -1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("-1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_POPUP;
|
||||
eb->direction = 0;
|
||||
eb->z = 1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_POPUP;
|
||||
eb->direction = 1;
|
||||
eb->z = 1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_NONE;
|
||||
eb->any_mod = 1;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->direction = 0;
|
||||
eb->z = -1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_ALT;
|
||||
eb->any_mod = 0;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("-1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->direction = 1;
|
||||
eb->z = -1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_ALT;
|
||||
eb->any_mod = 0;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("-1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->direction = 0;
|
||||
eb->z = 1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_ALT;
|
||||
eb->any_mod = 0;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
eb->context = E_BINDING_CONTEXT_BORDER;
|
||||
eb->direction = 1;
|
||||
eb->z = 1;
|
||||
eb->modifiers = E_BINDING_MODIFIER_ALT;
|
||||
eb->any_mod = 0;
|
||||
eb->action = strdup("desk_linear_flip_by");
|
||||
eb->params = strdup("1");
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
}
|
||||
e_config_save_queue();
|
||||
}
|
||||
// e_config->evas_engine_container = E_EVAS_ENGINE_GL_X11;
|
||||
|
@ -1020,6 +1416,8 @@ e_config_shutdown(void)
|
|||
E_CONFIG_DD_FREE(_e_config_theme_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_bindings_mouse_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_bindings_key_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_bindings_signal_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_bindings_wheel_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_path_append_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_desktop_bg_edd);
|
||||
E_CONFIG_DD_FREE(_e_config_desktop_name_edd);
|
||||
|
@ -1242,7 +1640,7 @@ e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in)
|
|||
(eb->modifiers == eb_in->modifiers) &&
|
||||
(eb->any_mod == eb_in->any_mod) &&
|
||||
(!strcmp(eb->action, eb_in->action)) &&
|
||||
(!strcmp(eb->action, eb_in->action)))
|
||||
(!strcmp(eb->params, eb_in->params)))
|
||||
return eb;
|
||||
}
|
||||
return NULL;
|
||||
|
@ -1263,7 +1661,51 @@ e_config_binding_key_match(E_Config_Binding_Key *eb_in)
|
|||
(eb->any_mod == eb_in->any_mod) &&
|
||||
(!strcmp(eb->key, eb_in->key)) &&
|
||||
(!strcmp(eb->action, eb_in->action)) &&
|
||||
(!strcmp(eb->action, eb_in->action)))
|
||||
(!strcmp(eb->params, eb_in->params)))
|
||||
return eb;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
E_Config_Binding_Signal *
|
||||
e_config_binding_signal_match(E_Config_Binding_Signal *eb_in)
|
||||
{
|
||||
Evas_List *l;
|
||||
|
||||
for (l = e_config->signal_bindings; l; l = l->next)
|
||||
{
|
||||
E_Config_Binding_Signal *eb;
|
||||
|
||||
eb = l->data;
|
||||
if ((eb->context == eb_in->context) &&
|
||||
(eb->modifiers == eb_in->modifiers) &&
|
||||
(eb->any_mod == eb_in->any_mod) &&
|
||||
(!strcmp(eb->signal, eb_in->signal)) &&
|
||||
(!strcmp(eb->source, eb_in->source)) &&
|
||||
(!strcmp(eb->action, eb_in->action)) &&
|
||||
(!strcmp(eb->params, eb_in->params)))
|
||||
return eb;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
E_Config_Binding_Wheel *
|
||||
e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in)
|
||||
{
|
||||
Evas_List *l;
|
||||
|
||||
for (l = e_config->wheel_bindings; l; l = l->next)
|
||||
{
|
||||
E_Config_Binding_Wheel *eb;
|
||||
|
||||
eb = l->data;
|
||||
if ((eb->context == eb_in->context) &&
|
||||
(eb->direction == eb_in->direction) &&
|
||||
(eb->z == eb_in->z) &&
|
||||
(eb->modifiers == eb_in->modifiers) &&
|
||||
(eb->any_mod == eb_in->any_mod) &&
|
||||
(!strcmp(eb->action, eb_in->action)) &&
|
||||
(!strcmp(eb->params, eb_in->params)))
|
||||
return eb;
|
||||
}
|
||||
return NULL;
|
||||
|
@ -1343,6 +1785,28 @@ _e_config_free(void)
|
|||
E_FREE(eb->params);
|
||||
E_FREE(eb);
|
||||
}
|
||||
while (e_config->signal_bindings)
|
||||
{
|
||||
E_Config_Binding_Signal *eb;
|
||||
|
||||
eb = e_config->signal_bindings->data;
|
||||
e_config->signal_bindings = evas_list_remove_list(e_config->signal_bindings, e_config->signal_bindings);
|
||||
E_FREE(eb->signal);
|
||||
E_FREE(eb->source);
|
||||
E_FREE(eb->action);
|
||||
E_FREE(eb->params);
|
||||
E_FREE(eb);
|
||||
}
|
||||
while (e_config->wheel_bindings)
|
||||
{
|
||||
E_Config_Binding_Wheel *eb;
|
||||
|
||||
eb = e_config->wheel_bindings->data;
|
||||
e_config->wheel_bindings = evas_list_remove_list(e_config->wheel_bindings, e_config->wheel_bindings);
|
||||
E_FREE(eb->action);
|
||||
E_FREE(eb->params);
|
||||
E_FREE(eb);
|
||||
}
|
||||
while (e_config->path_append_data)
|
||||
{
|
||||
E_Path_Dir *epd;
|
||||
|
|
|
@ -36,6 +36,8 @@ typedef struct _E_Config_Module E_Config_Module;
|
|||
typedef struct _E_Config_Theme E_Config_Theme;
|
||||
typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse;
|
||||
typedef struct _E_Config_Binding_Key E_Config_Binding_Key;
|
||||
typedef struct _E_Config_Binding_Signal E_Config_Binding_Signal;
|
||||
typedef struct _E_Config_Binding_Wheel E_Config_Binding_Wheel;
|
||||
typedef struct _E_Config_Desktop_Background E_Config_Desktop_Background;
|
||||
typedef struct _E_Config_Desktop_Name E_Config_Desktop_Name;
|
||||
typedef Eet_Data_Descriptor E_Config_DD;
|
||||
|
@ -48,7 +50,7 @@ typedef Eet_Data_Descriptor E_Config_DD;
|
|||
* defaults for e to work - started at 100 when we introduced this config
|
||||
* versioning feature
|
||||
*/
|
||||
#define E_CONFIG_FILE_VERSION 124
|
||||
#define E_CONFIG_FILE_VERSION 125
|
||||
|
||||
#define E_EVAS_ENGINE_DEFAULT 0
|
||||
#define E_EVAS_ENGINE_SOFTWARE_X11 1
|
||||
|
@ -91,6 +93,8 @@ struct _E_Config
|
|||
Evas_List *themes;
|
||||
Evas_List *mouse_bindings;
|
||||
Evas_List *key_bindings;
|
||||
Evas_List *signal_bindings;
|
||||
Evas_List *wheel_bindings;
|
||||
Evas_List *path_append_data;
|
||||
Evas_List *path_append_images;
|
||||
Evas_List *path_append_fonts;
|
||||
|
@ -190,6 +194,28 @@ struct _E_Config_Binding_Key
|
|||
unsigned char any_mod;
|
||||
};
|
||||
|
||||
struct _E_Config_Binding_Signal
|
||||
{
|
||||
int context;
|
||||
char *signal;
|
||||
char *source;
|
||||
int modifiers;
|
||||
unsigned char any_mod;
|
||||
char *action;
|
||||
char *params;
|
||||
};
|
||||
|
||||
struct _E_Config_Binding_Wheel
|
||||
{
|
||||
int context;
|
||||
int direction;
|
||||
int z;
|
||||
int modifiers;
|
||||
unsigned char any_mod;
|
||||
char *action;
|
||||
char *params;
|
||||
};
|
||||
|
||||
struct _E_Config_Desktop_Background
|
||||
{
|
||||
int container;
|
||||
|
@ -228,8 +254,10 @@ EAPI void *e_config_domain_load(char *domain, E_Config_DD *edd);
|
|||
EAPI int e_config_profile_save(void);
|
||||
EAPI int e_config_domain_save(char *domain, E_Config_DD *edd, void *data);
|
||||
|
||||
EAPI E_Config_Binding_Mouse *e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in);
|
||||
EAPI E_Config_Binding_Key *e_config_binding_key_match(E_Config_Binding_Key *eb_in);
|
||||
EAPI E_Config_Binding_Mouse *e_config_binding_mouse_match(E_Config_Binding_Mouse *eb_in);
|
||||
EAPI E_Config_Binding_Key *e_config_binding_key_match(E_Config_Binding_Key *eb_in);
|
||||
EAPI E_Config_Binding_Signal *e_config_binding_signal_match(E_Config_Binding_Signal *eb_in);
|
||||
EAPI E_Config_Binding_Wheel *e_config_binding_wheel_match(E_Config_Binding_Wheel *eb_in);
|
||||
|
||||
extern EAPI E_Config *e_config;
|
||||
|
||||
|
|
|
@ -18,6 +18,10 @@ static Eet_Data_Descriptor *_e_ipc_2str_int_edd = NULL;
|
|||
static Eet_Data_Descriptor *_e_ipc_2str_int_list_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_4int_2str_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_4int_2str_list_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_5int_2str_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_5int_2str_list_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_3int_4str_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_3int_4str_list_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_3int_3str_edd = NULL;
|
||||
static Eet_Data_Descriptor *_e_ipc_3int_3str_list_edd = NULL;
|
||||
|
||||
|
@ -74,6 +78,30 @@ e_ipc_codec_init(void)
|
|||
_e_ipc_4int_2str_list_edd = E_CONFIG_DD_NEW("4int_2str_list", E_Ipc_List);
|
||||
E_CONFIG_LIST(_e_ipc_4int_2str_list_edd, E_Ipc_List, list, _e_ipc_4int_2str_edd);
|
||||
|
||||
_e_ipc_5int_2str_edd = E_CONFIG_DD_NEW("5int_2str", E_Ipc_5Int_2Str);
|
||||
E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val1, INT);
|
||||
E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val2, INT);
|
||||
E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val3, INT);
|
||||
E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val4, INT);
|
||||
E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, val5, INT);
|
||||
E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, str1, STR);
|
||||
E_CONFIG_VAL(_e_ipc_5int_2str_edd, E_Ipc_5Int_2Str, str2, STR);
|
||||
|
||||
_e_ipc_5int_2str_list_edd = E_CONFIG_DD_NEW("5int_2str_list", E_Ipc_List);
|
||||
E_CONFIG_LIST(_e_ipc_5int_2str_list_edd, E_Ipc_List, list, _e_ipc_5int_2str_edd);
|
||||
|
||||
_e_ipc_3int_4str_edd = E_CONFIG_DD_NEW("3int_4str", E_Ipc_3Int_4Str);
|
||||
E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, val1, INT);
|
||||
E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, val2, INT);
|
||||
E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, val3, INT);
|
||||
E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, str1, STR);
|
||||
E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, str2, STR);
|
||||
E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, str3, STR);
|
||||
E_CONFIG_VAL(_e_ipc_3int_4str_edd, E_Ipc_3Int_4Str, str4, STR);
|
||||
|
||||
_e_ipc_3int_4str_list_edd = E_CONFIG_DD_NEW("3int_4str_list", E_Ipc_List);
|
||||
E_CONFIG_LIST(_e_ipc_3int_4str_list_edd, E_Ipc_List, list, _e_ipc_3int_4str_edd);
|
||||
|
||||
_e_ipc_3int_3str_edd = E_CONFIG_DD_NEW("3int_3str", E_Ipc_3Int_3Str);
|
||||
E_CONFIG_VAL(_e_ipc_3int_3str_edd, E_Ipc_3Int_3Str, val1, INT);
|
||||
E_CONFIG_VAL(_e_ipc_3int_3str_edd, E_Ipc_3Int_3Str, val2, INT);
|
||||
|
@ -103,6 +131,8 @@ e_ipc_codec_shutdown(void)
|
|||
E_CONFIG_DD_FREE(_e_ipc_2str_int_list_edd);
|
||||
E_CONFIG_DD_FREE(_e_ipc_4int_2str_edd);
|
||||
E_CONFIG_DD_FREE(_e_ipc_4int_2str_list_edd);
|
||||
E_CONFIG_DD_FREE(_e_ipc_3int_4str_edd);
|
||||
E_CONFIG_DD_FREE(_e_ipc_3int_4str_list_edd);
|
||||
E_CONFIG_DD_FREE(_e_ipc_3int_3str_edd);
|
||||
E_CONFIG_DD_FREE(_e_ipc_3int_3str_list_edd);
|
||||
}
|
||||
|
@ -425,6 +455,102 @@ e_ipc_codec_4int_2str_list_enc(Evas_List *list, int *size_ret)
|
|||
return eet_data_descriptor_encode(_e_ipc_4int_2str_list_edd, &dat, size_ret);
|
||||
}
|
||||
|
||||
int
|
||||
e_ipc_codec_5int_2str_dec(char *data, int bytes, E_Ipc_5Int_2Str **dest)
|
||||
{
|
||||
E_Ipc_5Int_2Str *dat;
|
||||
|
||||
if (!data) return 0;
|
||||
dat = eet_data_descriptor_decode(_e_ipc_5int_2str_edd, data, bytes);
|
||||
if (!dat) return 0;
|
||||
if (dest) *dest = dat;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void *
|
||||
e_ipc_codec_5int_2str_enc(int val1, int val2, int val3, int val4, int val5, char *str1, char *str2, int *size_ret)
|
||||
{
|
||||
E_Ipc_5Int_2Str dat;
|
||||
|
||||
dat.val1 = val1;
|
||||
dat.val2 = val2;
|
||||
dat.val3 = val3;
|
||||
dat.val4 = val4;
|
||||
dat.val5 = val5;
|
||||
dat.str1 = str1;
|
||||
dat.str2 = str2;
|
||||
return eet_data_descriptor_encode(_e_ipc_5int_2str_edd, &dat, size_ret);
|
||||
}
|
||||
|
||||
int
|
||||
e_ipc_codec_5int_2str_list_dec(char *data, int bytes, Evas_List **dest)
|
||||
{
|
||||
E_Ipc_List *dat;
|
||||
|
||||
if (!data) return 0;
|
||||
dat = eet_data_descriptor_decode(_e_ipc_5int_2str_list_edd, data, bytes);
|
||||
if (!dat) return 0;
|
||||
if (dest) *dest = dat->list;
|
||||
free(dat);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void *
|
||||
e_ipc_codec_5int_2str_list_enc(Evas_List *list, int *size_ret)
|
||||
{
|
||||
E_Ipc_List dat;
|
||||
dat.list = list;
|
||||
return eet_data_descriptor_encode(_e_ipc_5int_2str_list_edd, &dat, size_ret);
|
||||
}
|
||||
|
||||
int
|
||||
e_ipc_codec_3int_4str_dec(char *data, int bytes, E_Ipc_3Int_4Str **dest)
|
||||
{
|
||||
E_Ipc_3Int_4Str *dat;
|
||||
|
||||
if (!data) return 0;
|
||||
dat = eet_data_descriptor_decode(_e_ipc_3int_4str_edd, data, bytes);
|
||||
if (!dat) return 0;
|
||||
if (dest) *dest = dat;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void *
|
||||
e_ipc_codec_3int_4str_enc(int val1, int val2, int val3, char *str1, char *str2, char *str3, char *str4, int *size_ret)
|
||||
{
|
||||
E_Ipc_3Int_4Str dat;
|
||||
|
||||
dat.val1 = val1;
|
||||
dat.val2 = val2;
|
||||
dat.val3 = val3;
|
||||
dat.str1 = str1;
|
||||
dat.str2 = str2;
|
||||
dat.str3 = str3;
|
||||
dat.str4 = str4;
|
||||
return eet_data_descriptor_encode(_e_ipc_3int_4str_edd, &dat, size_ret);
|
||||
}
|
||||
|
||||
int
|
||||
e_ipc_codec_3int_4str_list_dec(char *data, int bytes, Evas_List **dest)
|
||||
{
|
||||
E_Ipc_List *dat;
|
||||
|
||||
if (!data) return 0;
|
||||
dat = eet_data_descriptor_decode(_e_ipc_3int_4str_list_edd, data, bytes);
|
||||
if (!dat) return 0;
|
||||
if (dest) *dest = dat->list;
|
||||
free(dat);
|
||||
return 1;
|
||||
}
|
||||
|
||||
void *
|
||||
e_ipc_codec_3int_4str_list_enc(Evas_List *list, int *size_ret)
|
||||
{
|
||||
E_Ipc_List dat;
|
||||
dat.list = list;
|
||||
return eet_data_descriptor_encode(_e_ipc_3int_4str_list_edd, &dat, size_ret);
|
||||
}
|
||||
|
||||
int
|
||||
e_ipc_codec_3int_3str_dec(char *data, int bytes, E_Ipc_3Int_3Str **dest)
|
||||
{
|
||||
|
|
|
@ -14,6 +14,8 @@ typedef struct _E_Ipc_Str_Int_List E_Ipc_Str_Int_List;
|
|||
typedef struct _E_Ipc_2Str_Int E_Ipc_2Str_Int;
|
||||
typedef struct _E_Ipc_2Str_Int_List E_Ipc_2Str_Int_List;
|
||||
typedef struct _E_Ipc_4Int_2Str E_Ipc_4Int_2Str;
|
||||
typedef struct _E_Ipc_5Int_2Str E_Ipc_5Int_2Str;
|
||||
typedef struct _E_Ipc_3Int_4Str E_Ipc_3Int_4Str;
|
||||
typedef struct _E_Ipc_3Int_3Str E_Ipc_3Int_3Str;
|
||||
|
||||
#else
|
||||
|
@ -68,6 +70,18 @@ struct _E_Ipc_4Int_2Str
|
|||
char *str1, *str2;
|
||||
};
|
||||
|
||||
struct _E_Ipc_5Int_2Str
|
||||
{
|
||||
int val1, val2, val3, val4, val5;
|
||||
char *str1, *str2;
|
||||
};
|
||||
|
||||
struct _E_Ipc_3Int_4Str
|
||||
{
|
||||
int val1, val2, val3;
|
||||
char *str1, *str2, *str3, *str4;
|
||||
};
|
||||
|
||||
struct _E_Ipc_3Int_3Str
|
||||
{
|
||||
int val1, val2, val3;
|
||||
|
@ -109,6 +123,16 @@ EAPI void *e_ipc_codec_4int_2str_enc(int val1, int val2, int val3, int val4,
|
|||
EAPI int e_ipc_codec_4int_2str_list_dec(char *data, int bytes, Evas_List **dest);
|
||||
EAPI void *e_ipc_codec_4int_2str_list_enc(Evas_List *list, int *size_ret);
|
||||
|
||||
EAPI int e_ipc_codec_5int_2str_dec(char *data, int bytes, E_Ipc_5Int_2Str **dest);
|
||||
EAPI void *e_ipc_codec_5int_2str_enc(int val1, int val2, int val3, int val4, int val5, char *str1, char *str2, int *size_ret);
|
||||
EAPI int e_ipc_codec_5int_2str_list_dec(char *data, int bytes, Evas_List **dest);
|
||||
EAPI void *e_ipc_codec_5int_2str_list_enc(Evas_List *list, int *size_ret);
|
||||
|
||||
EAPI int e_ipc_codec_3int_4str_dec(char *data, int bytes, E_Ipc_3Int_4Str **dest);
|
||||
EAPI void *e_ipc_codec_3int_4str_enc(int val1, int val2, int val3, char *str1, char *str2, char *str3, char *str4, int *size_ret);
|
||||
EAPI int e_ipc_codec_3int_4str_list_dec(char *data, int bytes, Evas_List **dest);
|
||||
EAPI void *e_ipc_codec_3int_4str_list_enc(Evas_List *list, int *size_ret);
|
||||
|
||||
EAPI int e_ipc_codec_3int_3str_dec(char *data, int bytes, E_Ipc_3Int_3Str **dest);
|
||||
EAPI void *e_ipc_codec_3int_3str_enc(int val1, int val2, int val3, char *str1, char *str2, char *str3, int *size_ret);
|
||||
EAPI int e_ipc_codec_3int_3str_list_dec(char *data, int bytes, Evas_List **dest);
|
||||
|
|
|
@ -92,6 +92,44 @@ if (e->data) { \
|
|||
} \
|
||||
break;
|
||||
|
||||
/**
|
||||
* INT5_STRING2:
|
||||
* Decode event data of type E_Ipc_5Int_2Str
|
||||
*/
|
||||
# define INT5_STRING2(__5int_2str, HDL) \
|
||||
case HDL: \
|
||||
if (e->data) { \
|
||||
E_Ipc_5Int_2Str *__5int_2str = NULL; \
|
||||
__5int_2str = calloc(1, sizeof(E_Ipc_5Int_2Str)); \
|
||||
if (e_ipc_codec_5int_2str_dec(e->data, e->size, &(__5int_2str))) {
|
||||
# define END_INT5_STRING2(__5int_2str) \
|
||||
free(__5int_2str->str1); \
|
||||
free(__5int_2str->str2); \
|
||||
free(__5int_2str); \
|
||||
} \
|
||||
} \
|
||||
break;
|
||||
|
||||
/**
|
||||
* INT3_STRING4:
|
||||
* Decode event data of type E_Ipc_4Int_2Str
|
||||
*/
|
||||
# define INT3_STRING4(__3int_4str, HDL) \
|
||||
case HDL: \
|
||||
if (e->data) { \
|
||||
E_Ipc_3Int_4Str *__3int_4str = NULL; \
|
||||
__3int_4str = calloc(1, sizeof(E_Ipc_3Int_4Str)); \
|
||||
if (e_ipc_codec_3int_4str_dec(e->data, e->size, &(__3int_4str))) {
|
||||
# define END_INT3_STRING4(__3int_4str) \
|
||||
free(__3int_4str->str1); \
|
||||
free(__3int_4str->str2); \
|
||||
free(__3int_4str->str3); \
|
||||
free(__3int_4str->str4); \
|
||||
free(__3int_4str); \
|
||||
} \
|
||||
} \
|
||||
break;
|
||||
|
||||
# define STRING2_INT(__str1, __str2, __int, __2str_int, HDL) \
|
||||
case HDL: \
|
||||
if (e->data) { \
|
||||
|
@ -199,6 +237,30 @@ case HDL: { void *data; int bytes; \
|
|||
} \
|
||||
break;
|
||||
|
||||
#define REQ_5INT_2STRING_START(HDL) \
|
||||
case HDL: { void *data; int bytes; \
|
||||
|
||||
#define REQ_5INT_2STRING_END(__val1, __val2, __val3, __val4, __val5, __str1, __str2, HDL) \
|
||||
data = e_ipc_codec_5int_2str_enc(__val1, __val2, __val3, __val4, __val5, __str1, __str2, &bytes); \
|
||||
if (data) { \
|
||||
ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HDL, 0, 0, 0, data, bytes); \
|
||||
free(data); \
|
||||
} \
|
||||
} \
|
||||
break;
|
||||
|
||||
#define REQ_3INT_4STRING_START(HDL) \
|
||||
case HDL: { void *data; int bytes; \
|
||||
|
||||
#define REQ_3INT_4STRING_END(__val1, __val2, __val3, __str1, __str2, __str3, __str4, HDL) \
|
||||
data = e_ipc_codec_3int_4str_enc(__val1, __val2, __val3, __str1, __str1, __str3, __str4, &bytes); \
|
||||
if (data) { \
|
||||
ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HDL, 0, 0, 0, data, bytes); \
|
||||
free(data); \
|
||||
} \
|
||||
} \
|
||||
break;
|
||||
|
||||
# define REQ_2STRING_INT(__str1, __str2, __int, HDL) \
|
||||
case HDL: { void *data; int bytes; \
|
||||
data = e_ipc_codec_2str_int_enc(__str1, __str2, __int, &bytes); \
|
||||
|
@ -419,6 +481,132 @@ free(data);
|
|||
} \
|
||||
break;
|
||||
|
||||
/**
|
||||
* INT5_STRING2:
|
||||
* Decode event data is a list of E_Ipc_5Int_2Str objects and iterate
|
||||
* the list. For each iteration the object __v will contain a decoded list
|
||||
* element.
|
||||
*
|
||||
* Use END_INT5_STRING2_LIST to terminate the loop and free all data.
|
||||
*/
|
||||
#define INT5_STRING2_LIST(__v, HDL) \
|
||||
INT5_STRING2_LIST_START(__v, HDL) \
|
||||
INT5_STRING2_LIST_ITERATE(__v)
|
||||
|
||||
#define INT5_STRING2_LIST_START(__v, HDL) \
|
||||
case HDL: { \
|
||||
Evas_List *dat = NULL, *l; \
|
||||
if (e_ipc_codec_5int_2str_list_dec(e->data, e->size, &dat)) {
|
||||
#define INT5_STRING2_LIST_ITERATE(__v) \
|
||||
for (l = dat; l; l = l->next) { \
|
||||
E_Ipc_5Int_2Str *__v; \
|
||||
__v = l->data;
|
||||
#define END_INT5_STRING2_LIST(__v) \
|
||||
END_INT5_STRING2_LIST_ITERATE(__v) \
|
||||
END_INT5_STRING2_LIST_START()
|
||||
|
||||
#define END_INT5_STRING2_LIST_ITERATE(__v) \
|
||||
free(__v->str1); \
|
||||
free(__v->str2); \
|
||||
free(__v); \
|
||||
} \
|
||||
evas_list_free(dat);
|
||||
#define END_INT5_STRING2_LIST_START() \
|
||||
} \
|
||||
} \
|
||||
break;
|
||||
|
||||
/**
|
||||
* SEND_INT5_STRING2_LIST:
|
||||
* Start to encode a list of objects to prepare them for sending via
|
||||
* ipc. The object __v1 will be of type __typ1 and __v2 will be of type
|
||||
* E_Ipc_5Int_2Str.
|
||||
*
|
||||
* Use END_SEND_INT5_STRING2_LIST to terminate the encode iteration and
|
||||
* send that data. The list will be freed.
|
||||
*/
|
||||
#define SEND_INT5_STRING2_LIST(__list, __typ1, __v1, __v2, HDL) \
|
||||
case HDL: { \
|
||||
Evas_List *dat = NULL, *l; \
|
||||
void *data; int bytes; \
|
||||
for (l = __list; l; l = l->next) { \
|
||||
__typ1 *__v1; \
|
||||
E_Ipc_5Int_2Str *__v2; \
|
||||
__v1 = l->data; \
|
||||
__v2 = calloc(1, sizeof(E_Ipc_5Int_2Str));
|
||||
#define END_SEND_INT5_STRING2_LIST(__v1, __op) \
|
||||
dat = evas_list_append(dat, __v1); \
|
||||
} \
|
||||
data = e_ipc_codec_5int_2str_list_enc(dat, &bytes); \
|
||||
SEND_DATA(__op); \
|
||||
FREE_LIST(dat); \
|
||||
} \
|
||||
break;
|
||||
|
||||
/**
|
||||
* INT3_STRING4:
|
||||
* Decode event data is a list of E_Ipc_3Int_4Str objects and iterate
|
||||
* the list. For each iteration the object __v will contain a decoded list
|
||||
* element.
|
||||
*
|
||||
* Use END_INT3_STRING4_LIST to terminate the loop and free all data.
|
||||
*/
|
||||
#define INT3_STRING4_LIST(__v, HDL) \
|
||||
INT3_STRING4_LIST_START(__v, HDL) \
|
||||
INT3_STRING4_LIST_ITERATE(__v)
|
||||
|
||||
#define INT3_STRING4_LIST_START(__v, HDL) \
|
||||
case HDL: { \
|
||||
Evas_List *dat = NULL, *l; \
|
||||
if (e_ipc_codec_3int_4str_list_dec(e->data, e->size, &dat)) {
|
||||
#define INT3_STRING4_LIST_ITERATE(__v) \
|
||||
for (l = dat; l; l = l->next) { \
|
||||
E_Ipc_3Int_4Str *__v; \
|
||||
__v = l->data;
|
||||
#define END_INT3_STRING4_LIST(__v) \
|
||||
END_INT3_STRING4_LIST_ITERATE(__v) \
|
||||
END_INT3_STRING4_LIST_START()
|
||||
|
||||
#define END_INT3_STRING4_LIST_ITERATE(__v) \
|
||||
free(__v->str1); \
|
||||
free(__v->str2); \
|
||||
free(__v->str3); \
|
||||
free(__v->str4); \
|
||||
free(__v); \
|
||||
} \
|
||||
evas_list_free(dat);
|
||||
#define END_INT3_STRING4_LIST_START() \
|
||||
} \
|
||||
} \
|
||||
break;
|
||||
|
||||
/**
|
||||
* SEND_INT3_STRING4_LIST:
|
||||
* Start to encode a list of objects to prepare them for sending via
|
||||
* ipc. The object __v1 will be of type __typ1 and __v2 will be of type
|
||||
* E_Ipc_3Int_4Str.
|
||||
*
|
||||
* Use END_SEND_INT3_STRING4_LIST to terminate the encode iteration and
|
||||
* send that data. The list will be freed.
|
||||
*/
|
||||
#define SEND_INT3_STRING4_LIST(__list, __typ1, __v1, __v2, HDL) \
|
||||
case HDL: { \
|
||||
Evas_List *dat = NULL, *l; \
|
||||
void *data; int bytes; \
|
||||
for (l = __list; l; l = l->next) { \
|
||||
__typ1 *__v1; \
|
||||
E_Ipc_3Int_4Str *__v2; \
|
||||
__v1 = l->data; \
|
||||
__v2 = calloc(1, sizeof(E_Ipc_3Int_4Str));
|
||||
#define END_SEND_INT3_STRING4_LIST(__v1, __op) \
|
||||
dat = evas_list_append(dat, __v1); \
|
||||
} \
|
||||
data = e_ipc_codec_3int_4str_list_enc(dat, &bytes); \
|
||||
SEND_DATA(__op); \
|
||||
FREE_LIST(dat); \
|
||||
} \
|
||||
break;
|
||||
|
||||
/**
|
||||
* STRING2_INT_LIST:
|
||||
* Decode event data which is a list of E_Ipc_2Str_Int objects and iterate
|
||||
|
@ -5086,3 +5274,652 @@ break;
|
|||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_SIGNAL_LIST
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
/* e_remote define command line args */
|
||||
OP("-binding-signal-list", 0, "List all signal bindings", 1, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
/* e_remote parse command line args encode and send request */
|
||||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
/* e_ipc decode request and do action or send reply */
|
||||
SEND_INT3_STRING4_LIST(e_config->signal_bindings, E_Config_Binding_Signal, emb, v, HDL);
|
||||
v->val1 = emb->context;
|
||||
v->str1 = emb->signal;
|
||||
v->str2 = emb->source;
|
||||
v->val2 = emb->modifiers;
|
||||
v->val3 = emb->any_mod;
|
||||
v->str3 = emb->action;
|
||||
v->str4 = emb->params;
|
||||
END_SEND_INT3_STRING4_LIST(v, E_IPC_OP_BINDING_SIGNAL_LIST_REPLY);
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_SIGNAL_LIST_REPLY
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
#elif (TYPE == E_WM_IN)
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
/* e_remote decode the response from e_ipc and print it to the console */
|
||||
INT3_STRING4_LIST(v, HDL);
|
||||
{
|
||||
char *context;
|
||||
char modifier[256];
|
||||
|
||||
if (v->val1 == E_BINDING_CONTEXT_NONE) context = "NONE";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_UNKNOWN) context = "UNKNOWN";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_BORDER) context = "BORDER";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_ZONE) context = "ZONE";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_CONTAINER) context = "CONTAINER";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_MANAGER) context = "MANAGER";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_MENU) context = "MENU";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_WINLIST) context = "WINLIST";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_ANY) context = "ANY";
|
||||
else context = "";
|
||||
|
||||
modifier[0] = 0;
|
||||
if (v->val2 & E_BINDING_MODIFIER_SHIFT)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "SHIFT");
|
||||
}
|
||||
if (v->val2 & E_BINDING_MODIFIER_CTRL)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "CTRL");
|
||||
}
|
||||
if (v->val2 & E_BINDING_MODIFIER_ALT)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "ALT");
|
||||
}
|
||||
if (v->val2 & E_BINDING_MODIFIER_WIN)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "WIN");
|
||||
}
|
||||
if (v->val2 == E_BINDING_MODIFIER_NONE)
|
||||
strcpy(modifier, "NONE");
|
||||
|
||||
printf("REPLY: BINDING CONTEXT=%s SIGNAL=%s SOURCE=%s MODIFIERS=%s ANY_MOD=%i ACTION=\"%s\" PARAMS=\"%s\"\n",
|
||||
context,
|
||||
v->str1,
|
||||
v->str2,
|
||||
modifier,
|
||||
v->val3,
|
||||
v->str3,
|
||||
v->str4
|
||||
);
|
||||
}
|
||||
END_INT3_STRING4_LIST(v);
|
||||
#elif E_LIB_IN
|
||||
INT3_STRING4_LIST_START(v, HDL);
|
||||
{
|
||||
int count;
|
||||
RESPONSE(r, E_Response_Binding_Signal_List);
|
||||
count = evas_list_count(dat);
|
||||
r->bindings = malloc(sizeof(E_Response_Binding_Signal_Data *) * count);
|
||||
r->count = count;
|
||||
|
||||
count = 0;
|
||||
INT3_STRING4_LIST_ITERATE(v);
|
||||
{
|
||||
E_Response_Binding_Signal_Data *d;
|
||||
|
||||
d = malloc(sizeof(E_Response_Binding_Signal_Data));
|
||||
d->ctx = v->val1;
|
||||
d->signal = v->str1;
|
||||
d->source = v->str2;
|
||||
d->mod = v->val2;
|
||||
d->any_mod = v->val3;
|
||||
d->action = ((v->str3) ? strdup(v->str3) : NULL);
|
||||
d->params = ((v->str4) ? strdup(v->str4) : NULL);
|
||||
|
||||
r->bindings[count] = d;
|
||||
count++;
|
||||
}
|
||||
END_INT3_STRING4_LIST_ITERATE(v);
|
||||
/* this will leak, need to free the event data */
|
||||
END_RESPONSE(r, E_RESPONSE_BINDING_SIGNAL_LIST);
|
||||
}
|
||||
END_INT3_STRING4_LIST_START();
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_SIGNAL_ADD
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
/* e_remote define command line args */
|
||||
OP("-binding-signal-add", 7, "Add an existing signal binding. OPT1 = Context, OPT2 = signal, OPT3 = source, OPT4 = modifiers, OPT5 = any modifier ok, OPT6 = action, OPT7 = action parameters", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
/* e_remote parse command line args encode and send request */
|
||||
REQ_3INT_4STRING_START(HDL);
|
||||
E_Config_Binding_Signal eb;
|
||||
|
||||
if (!strcmp(params[0], "NONE")) eb.context = E_BINDING_CONTEXT_NONE;
|
||||
else if (!strcmp(params[0], "UNKNOWN")) eb.context = E_BINDING_CONTEXT_UNKNOWN;
|
||||
else if (!strcmp(params[0], "BORDER")) eb.context = E_BINDING_CONTEXT_BORDER;
|
||||
else if (!strcmp(params[0], "ZONE")) eb.context = E_BINDING_CONTEXT_ZONE;
|
||||
else if (!strcmp(params[0], "CONTAINER")) eb.context = E_BINDING_CONTEXT_CONTAINER;
|
||||
else if (!strcmp(params[0], "MANAGER")) eb.context = E_BINDING_CONTEXT_MANAGER;
|
||||
else if (!strcmp(params[0], "MENU")) eb.context = E_BINDING_CONTEXT_MENU;
|
||||
else if (!strcmp(params[0], "WINLIST")) eb.context = E_BINDING_CONTEXT_WINLIST;
|
||||
else if (!strcmp(params[0], "ANY")) eb.context = E_BINDING_CONTEXT_ANY;
|
||||
else
|
||||
{
|
||||
printf("OPT1 (CONTEXT) is not a valid context. Must be:\n"
|
||||
" NONE UNKNOWN BORDER ZONE CONTAINER MANAGER MENU WINLIST ANY\n");
|
||||
exit(-1);
|
||||
}
|
||||
eb.signal = params[1];
|
||||
eb.source = params[2];
|
||||
/* M1[|M2...] */
|
||||
{
|
||||
char *p, *pp;
|
||||
|
||||
eb.modifiers = 0;
|
||||
pp = params[3];
|
||||
for (;;)
|
||||
{
|
||||
p = strchr(pp, '|');
|
||||
if (p)
|
||||
{
|
||||
if (!strncmp(pp, "SHIFT|", 6)) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strncmp(pp, "CTRL|", 5)) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strncmp(pp, "ALT|", 4)) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strncmp(pp, "WIN|", 4)) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
pp = p + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!strcmp(pp, "SHIFT")) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strcmp(pp, "CTRL")) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strcmp(pp, "ALT")) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strcmp(pp, "WIN")) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (!strcmp(pp, "NONE")) eb.modifiers = E_BINDING_MODIFIER_NONE;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
eb.any_mod = atoi(params[4]);
|
||||
eb.action = params[5];
|
||||
eb.params = params[6];
|
||||
REQ_3INT_4STRING_END(eb.context, eb.modifiers, eb.any_mod, eb.signal, eb.source, eb.action, eb.params, HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
/* e_ipc decode request and do action */
|
||||
INT3_STRING4(v, HDL)
|
||||
E_Config_Binding_Signal bind, *eb;
|
||||
|
||||
bind.context = v->val1;
|
||||
bind.signal = v->str1;
|
||||
bind.source = v->str2;
|
||||
bind.modifiers = v->val2;
|
||||
bind.any_mod = v->val3;
|
||||
bind.action = v->str3;
|
||||
bind.params = v->str4;
|
||||
|
||||
eb = e_config_binding_signal_match(&bind);
|
||||
if (!eb)
|
||||
{
|
||||
eb = E_NEW(E_Config_Binding_Signal, 1);
|
||||
e_config->signal_bindings = evas_list_append(e_config->signal_bindings, eb);
|
||||
eb->context = bind.context;
|
||||
eb->signal = strdup(bind.signal);
|
||||
eb->source = strdup(bind.source);
|
||||
eb->modifiers = bind.modifiers;
|
||||
eb->any_mod = bind.any_mod;
|
||||
eb->action = strdup(bind.action);
|
||||
eb->params = strdup(bind.params);
|
||||
e_bindings_signal_add(bind.context, bind.signal, bind.source, bind.modifiers,
|
||||
bind.any_mod, bind.action, bind.params);
|
||||
e_config_save_queue();
|
||||
}
|
||||
END_INT3_STRING4(v);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_SIGNAL_DEL
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
/* e_remote define command line args */
|
||||
OP("-binding-signal-del", 7, "Delete an existing signal binding. OPT1 = Context, OPT2 = signal, OPT3 = source, OPT4 = modifiers, OPT5 = any modifier ok, OPT6 = action, OPT7 = action parameters", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
/* e_remote parse command line args encode and send request */
|
||||
REQ_3INT_4STRING_START(HDL);
|
||||
E_Config_Binding_Signal eb;
|
||||
|
||||
if (!strcmp(params[0], "NONE")) eb.context = E_BINDING_CONTEXT_NONE;
|
||||
else if (!strcmp(params[0], "UNKNOWN")) eb.context = E_BINDING_CONTEXT_UNKNOWN;
|
||||
else if (!strcmp(params[0], "BORDER")) eb.context = E_BINDING_CONTEXT_BORDER;
|
||||
else if (!strcmp(params[0], "ZONE")) eb.context = E_BINDING_CONTEXT_ZONE;
|
||||
else if (!strcmp(params[0], "CONTAINER")) eb.context = E_BINDING_CONTEXT_CONTAINER;
|
||||
else if (!strcmp(params[0], "MANAGER")) eb.context = E_BINDING_CONTEXT_MANAGER;
|
||||
else if (!strcmp(params[0], "MENU")) eb.context = E_BINDING_CONTEXT_MENU;
|
||||
else if (!strcmp(params[0], "WINLIST")) eb.context = E_BINDING_CONTEXT_WINLIST;
|
||||
else if (!strcmp(params[0], "ANY")) eb.context = E_BINDING_CONTEXT_ANY;
|
||||
else
|
||||
{
|
||||
printf("OPT1 (CONTEXT) is not a valid context. Must be:\n"
|
||||
" NONE UNKNOWN BORDER ZONE CONTAINER MANAGER MENU WINLIST ANY\n");
|
||||
exit(-1);
|
||||
}
|
||||
eb.signal = params[1];
|
||||
eb.source = params[2];
|
||||
/* M1[|M2...] */
|
||||
{
|
||||
char *p, *pp;
|
||||
|
||||
eb.modifiers = 0;
|
||||
pp = params[3];
|
||||
for (;;)
|
||||
{
|
||||
p = strchr(pp, '|');
|
||||
if (p)
|
||||
{
|
||||
if (!strncmp(pp, "SHIFT|", 6)) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strncmp(pp, "CTRL|", 5)) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strncmp(pp, "ALT|", 4)) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strncmp(pp, "WIN|", 4)) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
pp = p + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!strcmp(pp, "SHIFT")) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strcmp(pp, "CTRL")) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strcmp(pp, "ALT")) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strcmp(pp, "WIN")) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (!strcmp(pp, "NONE")) eb.modifiers = E_BINDING_MODIFIER_NONE;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
eb.any_mod = atoi(params[4]);
|
||||
eb.action = params[5];
|
||||
eb.params = params[6];
|
||||
|
||||
REQ_3INT_4STRING_END(eb.context, eb.modifiers, eb.any_mod, eb.signal, eb.source, eb.action, eb.params, HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
/* e_ipc decode request and do action */
|
||||
INT3_STRING4(v, HDL)
|
||||
E_Config_Binding_Signal bind, *eb;
|
||||
|
||||
bind.context = v->val1;
|
||||
bind.signal = v->str1;
|
||||
bind.source = v->str2;
|
||||
bind.modifiers = v->val2;
|
||||
bind.any_mod = v->val3;
|
||||
bind.action = v->str3;
|
||||
bind.params = v->str4;
|
||||
|
||||
eb = e_config_binding_signal_match(&bind);
|
||||
if (eb)
|
||||
{
|
||||
e_config->signal_bindings = evas_list_remove(e_config->signal_bindings, eb);
|
||||
E_FREE(eb->signal);
|
||||
E_FREE(eb->source);
|
||||
E_FREE(eb->action);
|
||||
E_FREE(eb->params);
|
||||
E_FREE(eb);
|
||||
e_bindings_signal_del(bind.context, bind.signal, bind.source, bind.modifiers,
|
||||
bind.any_mod, bind.action, bind.params);
|
||||
e_config_save_queue();
|
||||
}
|
||||
END_INT3_STRING4(v);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_WHEEL_LIST
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
/* e_remote define command line args */
|
||||
OP("-binding-wheel-list", 0, "List all wheel bindings", 1, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
/* e_remote parse command line args encode and send request */
|
||||
REQ_NULL(HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
/* e_ipc decode request and do action or send reply */
|
||||
SEND_INT5_STRING2_LIST(e_config->wheel_bindings, E_Config_Binding_Wheel, emb, v, HDL);
|
||||
v->val1 = emb->context;
|
||||
v->val2 = emb->direction;
|
||||
v->val3 = emb->z;
|
||||
v->val4 = emb->modifiers;
|
||||
v->val5 = emb->any_mod;
|
||||
v->str1 = emb->action;
|
||||
v->str2 = emb->params;
|
||||
END_SEND_INT5_STRING2_LIST(v, E_IPC_OP_BINDING_WHEEL_LIST_REPLY);
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_WHEEL_LIST_REPLY
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
#elif (TYPE == E_WM_IN)
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
/* e_remote decode the response from e_ipc and print it to the console */
|
||||
INT5_STRING2_LIST(v, HDL);
|
||||
{
|
||||
char *context;
|
||||
char modifier[256];
|
||||
|
||||
if (v->val1 == E_BINDING_CONTEXT_NONE) context = "NONE";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_UNKNOWN) context = "UNKNOWN";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_BORDER) context = "BORDER";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_ZONE) context = "ZONE";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_CONTAINER) context = "CONTAINER";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_MANAGER) context = "MANAGER";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_MENU) context = "MENU";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_WINLIST) context = "WINLIST";
|
||||
else if (v->val1 == E_BINDING_CONTEXT_ANY) context = "ANY";
|
||||
else context = "";
|
||||
|
||||
modifier[0] = 0;
|
||||
if (v->val4 & E_BINDING_MODIFIER_SHIFT)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "SHIFT");
|
||||
}
|
||||
if (v->val4 & E_BINDING_MODIFIER_CTRL)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "CTRL");
|
||||
}
|
||||
if (v->val4 & E_BINDING_MODIFIER_ALT)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "ALT");
|
||||
}
|
||||
if (v->val4 & E_BINDING_MODIFIER_WIN)
|
||||
{
|
||||
if (modifier[0] != 0) strcat(modifier, "|");
|
||||
strcat(modifier, "WIN");
|
||||
}
|
||||
if (v->val4 == E_BINDING_MODIFIER_NONE)
|
||||
strcpy(modifier, "NONE");
|
||||
|
||||
printf("REPLY: BINDING CONTEXT=%s DIRECTION=%i Z=%i MODIFIERS=%s ANY_MOD=%i ACTION=\"%s\" PARAMS=\"%s\"\n",
|
||||
context,
|
||||
v->val2,
|
||||
v->val3,
|
||||
modifier,
|
||||
v->val5,
|
||||
v->str1,
|
||||
v->str2
|
||||
);
|
||||
}
|
||||
END_INT5_STRING2_LIST(v);
|
||||
#elif E_LIB_IN
|
||||
INT5_STRING2_LIST_START(v, HDL);
|
||||
{
|
||||
int count;
|
||||
RESPONSE(r, E_Response_Binding_Wheel_List);
|
||||
count = evas_list_count(dat);
|
||||
r->bindings = malloc(sizeof(E_Response_Binding_Wheel_Data *) * count);
|
||||
r->count = count;
|
||||
|
||||
count = 0;
|
||||
INT5_STRING2_LIST_ITERATE(v);
|
||||
{
|
||||
E_Response_Binding_Wheel_Data *d;
|
||||
|
||||
d = malloc(sizeof(E_Response_Binding_Wheel_Data));
|
||||
d->ctx = v->val1;
|
||||
d->direction = v->val2;
|
||||
d->z = v->val3;
|
||||
d->mod = v->val4;
|
||||
d->any_mod = v->val5;
|
||||
d->action = ((v->str1) ? strdup(v->str1) : NULL);
|
||||
d->params = ((v->str2) ? strdup(v->str2) : NULL);
|
||||
|
||||
r->bindings[count] = d;
|
||||
count++;
|
||||
}
|
||||
END_INT5_STRING2_LIST_ITERATE(v);
|
||||
/* this will leak, need to free the event data */
|
||||
END_RESPONSE(r, E_RESPONSE_BINDING_WHEEL_LIST);
|
||||
}
|
||||
END_INT5_STRING2_LIST_START();
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_WHEEL_ADD
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
/* e_remote define command line args */
|
||||
OP("-binding-wheel-add", 7, "Add an existing wheel binding. OPT1 = Context, OPT2 = direction, OPT3 = z, OPT4 = modifiers, OPT5 = any modifier ok, OPT6 = action, OPT7 = action parameters", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
/* e_remote parse command line args encode and send request */
|
||||
REQ_5INT_2STRING_START(HDL);
|
||||
E_Config_Binding_Wheel eb;
|
||||
|
||||
if (!strcmp(params[0], "NONE")) eb.context = E_BINDING_CONTEXT_NONE;
|
||||
else if (!strcmp(params[0], "UNKNOWN")) eb.context = E_BINDING_CONTEXT_UNKNOWN;
|
||||
else if (!strcmp(params[0], "BORDER")) eb.context = E_BINDING_CONTEXT_BORDER;
|
||||
else if (!strcmp(params[0], "ZONE")) eb.context = E_BINDING_CONTEXT_ZONE;
|
||||
else if (!strcmp(params[0], "CONTAINER")) eb.context = E_BINDING_CONTEXT_CONTAINER;
|
||||
else if (!strcmp(params[0], "MANAGER")) eb.context = E_BINDING_CONTEXT_MANAGER;
|
||||
else if (!strcmp(params[0], "MENU")) eb.context = E_BINDING_CONTEXT_MENU;
|
||||
else if (!strcmp(params[0], "WINLIST")) eb.context = E_BINDING_CONTEXT_WINLIST;
|
||||
else if (!strcmp(params[0], "ANY")) eb.context = E_BINDING_CONTEXT_ANY;
|
||||
else
|
||||
{
|
||||
printf("OPT1 (CONTEXT) is not a valid context. Must be:\n"
|
||||
" NONE UNKNOWN BORDER ZONE CONTAINER MANAGER MENU WINLIST ANY\n");
|
||||
exit(-1);
|
||||
}
|
||||
eb.direction = atoi(params[1]);
|
||||
eb.z = atoi(params[2]);
|
||||
/* M1[|M2...] */
|
||||
{
|
||||
char *p, *pp;
|
||||
|
||||
eb.modifiers = 0;
|
||||
pp = params[3];
|
||||
for (;;)
|
||||
{
|
||||
p = strchr(pp, '|');
|
||||
if (p)
|
||||
{
|
||||
if (!strncmp(pp, "SHIFT|", 6)) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strncmp(pp, "CTRL|", 5)) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strncmp(pp, "ALT|", 4)) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strncmp(pp, "WIN|", 4)) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
pp = p + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!strcmp(pp, "SHIFT")) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strcmp(pp, "CTRL")) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strcmp(pp, "ALT")) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strcmp(pp, "WIN")) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (!strcmp(pp, "NONE")) eb.modifiers = E_BINDING_MODIFIER_NONE;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
eb.any_mod = atoi(params[4]);
|
||||
eb.action = params[5];
|
||||
eb.params = params[6];
|
||||
REQ_5INT_2STRING_END(eb.context, eb.direction, eb.z, eb.modifiers, eb.any_mod, eb.action, eb.params, HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
/* e_ipc decode request and do action */
|
||||
INT5_STRING2(v, HDL)
|
||||
E_Config_Binding_Wheel bind, *eb;
|
||||
|
||||
bind.context = v->val1;
|
||||
bind.direction = v->val2;
|
||||
bind.z = v->val3;
|
||||
bind.modifiers = v->val4;
|
||||
bind.any_mod = v->val5;
|
||||
bind.action = v->str1;
|
||||
bind.params = v->str2;
|
||||
|
||||
eb = e_config_binding_wheel_match(&bind);
|
||||
if (!eb)
|
||||
{
|
||||
eb = E_NEW(E_Config_Binding_Wheel, 1);
|
||||
e_config->wheel_bindings = evas_list_append(e_config->wheel_bindings, eb);
|
||||
eb->context = bind.context;
|
||||
eb->direction = bind.direction;
|
||||
eb->z = bind.z;
|
||||
eb->modifiers = bind.modifiers;
|
||||
eb->any_mod = bind.any_mod;
|
||||
eb->action = strdup(bind.action);
|
||||
eb->params = strdup(bind.params);
|
||||
e_bindings_wheel_add(bind.context, bind.direction, bind.z, bind.modifiers,
|
||||
bind.any_mod, bind.action, bind.params);
|
||||
e_config_save_queue();
|
||||
}
|
||||
END_INT5_STRING2(v);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
||||
/****************************************************************************/
|
||||
|
||||
#define HDL E_IPC_OP_BINDING_WHEEL_DEL
|
||||
#if (TYPE == E_REMOTE_OPTIONS)
|
||||
/* e_remote define command line args */
|
||||
OP("-binding-wheel-del", 7, "Delete an existing wheel binding. OPT1 = Context, OPT2 = direction, OPT3 = z, OPT4 = modifiers, OPT5 = any modifier ok, OPT6 = action, OPT7 = action parameters", 0, HDL)
|
||||
#elif (TYPE == E_REMOTE_OUT)
|
||||
/* e_remote parse command line args encode and send request */
|
||||
REQ_5INT_2STRING_START(HDL);
|
||||
E_Config_Binding_Wheel eb;
|
||||
|
||||
if (!strcmp(params[0], "NONE")) eb.context = E_BINDING_CONTEXT_NONE;
|
||||
else if (!strcmp(params[0], "UNKNOWN")) eb.context = E_BINDING_CONTEXT_UNKNOWN;
|
||||
else if (!strcmp(params[0], "BORDER")) eb.context = E_BINDING_CONTEXT_BORDER;
|
||||
else if (!strcmp(params[0], "ZONE")) eb.context = E_BINDING_CONTEXT_ZONE;
|
||||
else if (!strcmp(params[0], "CONTAINER")) eb.context = E_BINDING_CONTEXT_CONTAINER;
|
||||
else if (!strcmp(params[0], "MANAGER")) eb.context = E_BINDING_CONTEXT_MANAGER;
|
||||
else if (!strcmp(params[0], "MENU")) eb.context = E_BINDING_CONTEXT_MENU;
|
||||
else if (!strcmp(params[0], "WINLIST")) eb.context = E_BINDING_CONTEXT_WINLIST;
|
||||
else if (!strcmp(params[0], "ANY")) eb.context = E_BINDING_CONTEXT_ANY;
|
||||
else
|
||||
{
|
||||
printf("OPT1 (CONTEXT) is not a valid context. Must be:\n"
|
||||
" NONE UNKNOWN BORDER ZONE CONTAINER MANAGER MENU WINLIST ANY\n");
|
||||
exit(-1);
|
||||
}
|
||||
eb.direction = atoi(params[1]);
|
||||
eb.z = atoi(params[2]);
|
||||
/* M1[|M2...] */
|
||||
{
|
||||
char *p, *pp;
|
||||
|
||||
eb.modifiers = 0;
|
||||
pp = params[3];
|
||||
for (;;)
|
||||
{
|
||||
p = strchr(pp, '|');
|
||||
if (p)
|
||||
{
|
||||
if (!strncmp(pp, "SHIFT|", 6)) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strncmp(pp, "CTRL|", 5)) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strncmp(pp, "ALT|", 4)) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strncmp(pp, "WIN|", 4)) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
pp = p + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!strcmp(pp, "SHIFT")) eb.modifiers |= E_BINDING_MODIFIER_SHIFT;
|
||||
else if (!strcmp(pp, "CTRL")) eb.modifiers |= E_BINDING_MODIFIER_CTRL;
|
||||
else if (!strcmp(pp, "ALT")) eb.modifiers |= E_BINDING_MODIFIER_ALT;
|
||||
else if (!strcmp(pp, "WIN")) eb.modifiers |= E_BINDING_MODIFIER_WIN;
|
||||
else if (!strcmp(pp, "NONE")) eb.modifiers = E_BINDING_MODIFIER_NONE;
|
||||
else if (strlen(pp) > 0)
|
||||
{
|
||||
printf("OPT3 moidifier unknown. Must be or mask of:\n"
|
||||
" SHIFT CTRL ALT WIN (eg SHIFT|CTRL or ALT|SHIFT|CTRL or ALT or just NONE)\n");
|
||||
exit(-1);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
eb.any_mod = atoi(params[4]);
|
||||
eb.action = params[5];
|
||||
eb.params = params[6];
|
||||
|
||||
REQ_5INT_2STRING_END(eb.context, eb.direction, eb.z, eb.modifiers, eb.any_mod, eb.action, eb.params, HDL);
|
||||
#elif (TYPE == E_WM_IN)
|
||||
/* e_ipc decode request and do action */
|
||||
INT5_STRING2(v, HDL)
|
||||
E_Config_Binding_Wheel bind, *eb;
|
||||
|
||||
bind.context = v->val1;
|
||||
bind.direction = v->val2;
|
||||
bind.z = v->val3;
|
||||
bind.modifiers = v->val4;
|
||||
bind.any_mod = v->val5;
|
||||
bind.action = v->str1;
|
||||
bind.params = v->str2;
|
||||
|
||||
eb = e_config_binding_wheel_match(&bind);
|
||||
if (eb)
|
||||
{
|
||||
e_config->wheel_bindings = evas_list_remove(e_config->wheel_bindings, eb);
|
||||
E_FREE(eb->action);
|
||||
E_FREE(eb->params);
|
||||
E_FREE(eb);
|
||||
e_bindings_wheel_del(bind.context, bind.direction, bind.z, bind.modifiers,
|
||||
bind.any_mod, bind.action, bind.params);
|
||||
e_config_save_queue();
|
||||
}
|
||||
END_INT5_STRING2(v);
|
||||
#elif (TYPE == E_REMOTE_IN)
|
||||
#endif
|
||||
#undef HDL
|
||||
|
|
|
@ -263,3 +263,12 @@
|
|||
#define E_IPC_OP_WINDOW_PLACEMENT_POLICY_GET_REPLY 260
|
||||
|
||||
#define E_IPC_OP_CONFIG_PANEL_SHOW 261
|
||||
|
||||
#define E_IPC_OP_BINDING_SIGNAL_LIST 262
|
||||
#define E_IPC_OP_BINDING_SIGNAL_LIST_REPLY 263
|
||||
#define E_IPC_OP_BINDING_SIGNAL_ADD 264
|
||||
#define E_IPC_OP_BINDING_SIGNAL_DEL 265
|
||||
#define E_IPC_OP_BINDING_WHEEL_LIST 266
|
||||
#define E_IPC_OP_BINDING_WHEEL_LIST_REPLY 267
|
||||
#define E_IPC_OP_BINDING_WHEEL_ADD 268
|
||||
#define E_IPC_OP_BINDING_WHEEL_DEL 269
|
||||
|
|
|
@ -220,18 +220,9 @@ E_Zone *
|
|||
e_zone_current_get(E_Container *con)
|
||||
{
|
||||
Evas_List *l;
|
||||
E_Border *bd;
|
||||
|
||||
|
||||
E_OBJECT_CHECK_RETURN(con, NULL);
|
||||
E_OBJECT_TYPE_CHECK_RETURN(con, E_CONTAINER_TYPE, NULL);
|
||||
/*
|
||||
bd = e_border_focused_get();
|
||||
if (bd)
|
||||
{
|
||||
return bd->zone;
|
||||
}
|
||||
else
|
||||
*/
|
||||
if (!starting)
|
||||
{
|
||||
int x, y;
|
||||
|
|
|
@ -54,6 +54,10 @@ typedef struct _E_Response_Binding_Mouse_List E_Response_Binding_Mouse_List;
|
|||
typedef struct _E_Response_Binding_Mouse_Data E_Response_Binding_Mouse_Data;
|
||||
typedef struct _E_Response_Binding_Key_List E_Response_Binding_Key_List;
|
||||
typedef struct _E_Response_Binding_Key_Data E_Response_Binding_Key_Data;
|
||||
typedef struct _E_Response_Binding_Signal_List E_Response_Binding_Signal_List;
|
||||
typedef struct _E_Response_Binding_Signal_Data E_Response_Binding_Signal_Data;
|
||||
typedef struct _E_Response_Binding_Wheel_List E_Response_Binding_Wheel_List;
|
||||
typedef struct _E_Response_Binding_Wheel_Data E_Response_Binding_Wheel_Data;
|
||||
|
||||
struct _E_Response_Module_List
|
||||
{
|
||||
|
@ -121,6 +125,41 @@ struct _E_Response_Binding_Mouse_Data
|
|||
char *params;
|
||||
};
|
||||
|
||||
struct _E_Response_Binding_Signal_List
|
||||
{
|
||||
E_Response_Binding_Signal_Data **bindings;
|
||||
int count;
|
||||
};
|
||||
|
||||
struct _E_Response_Binding_Signal_Data
|
||||
{
|
||||
E_Lib_Binding_Context ctx;
|
||||
char *signal;
|
||||
char *source;
|
||||
E_Lib_Binding_Modifier mod;
|
||||
unsigned char any_mod : 1;
|
||||
char *action;
|
||||
char *params;
|
||||
};
|
||||
|
||||
struct _E_Response_Binding_Wheel_List
|
||||
{
|
||||
E_Response_Binding_Wheel_Data **bindings;
|
||||
int count;
|
||||
};
|
||||
|
||||
struct _E_Response_Binding_Wheel_Data
|
||||
{
|
||||
E_Lib_Binding_Context ctx;
|
||||
int direction;
|
||||
int z;
|
||||
E_Lib_Binding_Modifier mod;
|
||||
unsigned char any_mod : 1;
|
||||
char *action;
|
||||
char *params;
|
||||
};
|
||||
|
||||
|
||||
extern EAPI int E_RESPONSE_MODULE_LIST;
|
||||
extern EAPI int E_RESPONSE_BACKGROUND_GET;
|
||||
extern EAPI int E_RESPONSE_LANGUAGE_GET;
|
||||
|
@ -137,6 +176,8 @@ extern EAPI int E_RESPONSE_BACKGROUND_DIRS_LIST;
|
|||
|
||||
extern EAPI int E_RESPONSE_BINDING_KEY_LIST;
|
||||
extern EAPI int E_RESPONSE_BINDING_MOUSE_LIST;
|
||||
extern EAPI int E_RESPONSE_BINDING_SIGNAL_LIST;
|
||||
extern EAPI int E_RESPONSE_BINDING_WHEEL_LIST;
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
|
Loading…
Reference in New Issue