mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-11-08 13:29:56 -05:00
feat: support two arg in dispatch in config
This commit is contained in:
parent
7b527ed485
commit
2e7245f960
2 changed files with 20 additions and 17 deletions
|
|
@ -400,7 +400,7 @@ void convert_hex_to_rgba(float *color, unsigned long int hex) {
|
||||||
color[3] = (hex & 0xFF) / 255.0f;
|
color[3] = (hex & 0xFF) / 255.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value) {
|
FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value, char *arg_value2) {
|
||||||
|
|
||||||
FuncType func = NULL;
|
FuncType func = NULL;
|
||||||
(*arg).v = NULL;
|
(*arg).v = NULL;
|
||||||
|
|
@ -993,9 +993,9 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
KeyBinding *binding = &config->key_bindings[config->key_bindings_count];
|
KeyBinding *binding = &config->key_bindings[config->key_bindings_count];
|
||||||
memset(binding, 0, sizeof(KeyBinding));
|
memset(binding, 0, sizeof(KeyBinding));
|
||||||
|
|
||||||
char mod_str[256], keysym_str[256], func_name[256], arg_value[256] = "none";
|
char mod_str[256], keysym_str[256], func_name[256], arg_value[256] = "none",arg_value2[256] = "none";
|
||||||
if (sscanf(value, "%[^,],%[^,],%[^,],%[^\n]", mod_str, keysym_str,
|
if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, keysym_str,
|
||||||
func_name, arg_value) < 3) {
|
func_name, arg_value, arg_value2) < 3) {
|
||||||
fprintf(stderr, "Error: Invalid bind format: %s\n", value);
|
fprintf(stderr, "Error: Invalid bind format: %s\n", value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1003,7 +1003,7 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
binding->mod = parse_mod(mod_str);
|
binding->mod = parse_mod(mod_str);
|
||||||
binding->keysym = parse_keysym(keysym_str);
|
binding->keysym = parse_keysym(keysym_str);
|
||||||
binding->arg.v = NULL;
|
binding->arg.v = NULL;
|
||||||
binding->func = parse_func_name(func_name, &binding->arg, arg_value);
|
binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2);
|
||||||
if (!binding->func) {
|
if (!binding->func) {
|
||||||
fprintf(stderr, "Error: Unknown function in bind: %s\n", func_name);
|
fprintf(stderr, "Error: Unknown function in bind: %s\n", func_name);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1023,9 +1023,9 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
&config->mouse_bindings[config->mouse_bindings_count];
|
&config->mouse_bindings[config->mouse_bindings_count];
|
||||||
memset(binding, 0, sizeof(MouseBinding));
|
memset(binding, 0, sizeof(MouseBinding));
|
||||||
|
|
||||||
char mod_str[256], button_str[256], func_name[256], arg_value[256] = "none";
|
char mod_str[256], button_str[256], func_name[256], arg_value[256] = "none", arg_value2[256] = "none";
|
||||||
if (sscanf(value, "%[^,],%[^,],%[^,],%[^\n]", mod_str, button_str,
|
if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, button_str,
|
||||||
func_name, arg_value) < 3) {
|
func_name, arg_value, arg_value2) < 3) {
|
||||||
fprintf(stderr, "Error: Invalid mousebind format: %s\n", value);
|
fprintf(stderr, "Error: Invalid mousebind format: %s\n", value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1033,7 +1033,7 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
binding->mod = parse_mod(mod_str);
|
binding->mod = parse_mod(mod_str);
|
||||||
binding->button = parse_button(button_str);
|
binding->button = parse_button(button_str);
|
||||||
binding->arg.v = NULL;
|
binding->arg.v = NULL;
|
||||||
binding->func = parse_func_name(func_name, &binding->arg, arg_value);
|
binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2);
|
||||||
if (!binding->func) {
|
if (!binding->func) {
|
||||||
fprintf(stderr, "Error: Unknown function in mousebind: %s\n", func_name);
|
fprintf(stderr, "Error: Unknown function in mousebind: %s\n", func_name);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -1051,9 +1051,9 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
AxisBinding *binding = &config->axis_bindings[config->axis_bindings_count];
|
AxisBinding *binding = &config->axis_bindings[config->axis_bindings_count];
|
||||||
memset(binding, 0, sizeof(AxisBinding));
|
memset(binding, 0, sizeof(AxisBinding));
|
||||||
|
|
||||||
char mod_str[256], dir_str[256], func_name[256], arg_value[256] = "none";
|
char mod_str[256], dir_str[256], func_name[256], arg_value[256] = "none", arg_value2[256] = "none";
|
||||||
if (sscanf(value, "%[^,],%[^,],%[^,],%[^\n]", mod_str, dir_str, func_name,
|
if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, dir_str, func_name,
|
||||||
arg_value) < 3) {
|
arg_value, arg_value2) < 3) {
|
||||||
fprintf(stderr, "Error: Invalid axisbind format: %s\n", value);
|
fprintf(stderr, "Error: Invalid axisbind format: %s\n", value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1061,7 +1061,7 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
binding->mod = parse_mod(mod_str);
|
binding->mod = parse_mod(mod_str);
|
||||||
binding->dir = parse_direction(dir_str);
|
binding->dir = parse_direction(dir_str);
|
||||||
binding->arg.v = NULL;
|
binding->arg.v = NULL;
|
||||||
binding->func = parse_func_name(func_name, &binding->arg, arg_value);
|
binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2);
|
||||||
|
|
||||||
if (!binding->func) {
|
if (!binding->func) {
|
||||||
fprintf(stderr, "Error: Unknown function in axisbind: %s\n", func_name);
|
fprintf(stderr, "Error: Unknown function in axisbind: %s\n", func_name);
|
||||||
|
|
@ -1084,9 +1084,9 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
memset(binding, 0, sizeof(GestureBinding));
|
memset(binding, 0, sizeof(GestureBinding));
|
||||||
|
|
||||||
char mod_str[256], motion_str[256], fingers_count_str[256], func_name[256],
|
char mod_str[256], motion_str[256], fingers_count_str[256], func_name[256],
|
||||||
arg_value[256] = "none";
|
arg_value[256] = "none", arg_value2[256] = "none";
|
||||||
if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, motion_str,
|
if (sscanf(value, "%[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]", mod_str, motion_str,
|
||||||
fingers_count_str, func_name, arg_value) < 4) {
|
fingers_count_str, func_name, arg_value, arg_value2) < 4) {
|
||||||
fprintf(stderr, "Error: Invalid gesturebind format: %s\n", value);
|
fprintf(stderr, "Error: Invalid gesturebind format: %s\n", value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -1095,7 +1095,7 @@ void parse_config_line(Config *config, const char *line) {
|
||||||
binding->motion = parse_direction(motion_str);
|
binding->motion = parse_direction(motion_str);
|
||||||
binding->fingers_count = atoi(fingers_count_str);
|
binding->fingers_count = atoi(fingers_count_str);
|
||||||
binding->arg.v = NULL;
|
binding->arg.v = NULL;
|
||||||
binding->func = parse_func_name(func_name, &binding->arg, arg_value);
|
binding->func = parse_func_name(func_name, &binding->arg, arg_value, arg_value2);
|
||||||
|
|
||||||
if (!binding->func) {
|
if (!binding->func) {
|
||||||
fprintf(stderr, "Error: Unknown function in axisbind: %s\n", func_name);
|
fprintf(stderr, "Error: Unknown function in axisbind: %s\n", func_name);
|
||||||
|
|
|
||||||
|
|
@ -149,9 +149,12 @@ struct uvec2 {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
int i;
|
int i;
|
||||||
|
int i2;
|
||||||
float f;
|
float f;
|
||||||
|
float f2;
|
||||||
char *v;
|
char *v;
|
||||||
unsigned int ui;
|
unsigned int ui;
|
||||||
|
unsigned int ui2;
|
||||||
} Arg;
|
} Arg;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue