mirror of
https://github.com/DreamMaoMao/maomaowm.git
synced 2025-11-23 06:59:51 -05:00
feat: add mvoewin resizewin dispatch
This commit is contained in:
parent
3a8ebf549b
commit
c64dd51b69
4 changed files with 122 additions and 8 deletions
|
|
@ -7,6 +7,8 @@
|
|||
#define SYSCONFDIR "/etc"
|
||||
#endif
|
||||
|
||||
enum { NUM_TYPE_MINUS, NUM_TYPE_PLUS, NUM_TYPE_DEFAULT };
|
||||
|
||||
typedef struct {
|
||||
uint32_t mod;
|
||||
xkb_keysym_t keysym;
|
||||
|
|
@ -400,6 +402,17 @@ void convert_hex_to_rgba(float *color, unsigned long int hex) {
|
|||
color[3] = (hex & 0xFF) / 255.0f;
|
||||
}
|
||||
|
||||
unsigned int parse_num_type(char *str) {
|
||||
switch (str[0]) {
|
||||
case '-':
|
||||
return NUM_TYPE_MINUS;
|
||||
case '+':
|
||||
return NUM_TYPE_PLUS;
|
||||
default:
|
||||
return NUM_TYPE_DEFAULT;
|
||||
}
|
||||
}
|
||||
|
||||
FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value, char *arg_value2) {
|
||||
|
||||
FuncType func = NULL;
|
||||
|
|
@ -526,6 +539,18 @@ FuncType parse_func_name(char *func_name, Arg *arg, char *arg_value, char *arg_v
|
|||
} else if (strcmp(func_name, "smartresizewin") == 0) {
|
||||
func = smartresizewin;
|
||||
(*arg).i = parse_direction(arg_value);
|
||||
} else if (strcmp(func_name, "resizewin") == 0) {
|
||||
func = resizewin;
|
||||
(*arg).ui = parse_num_type(arg_value);
|
||||
(*arg).ui2 = parse_num_type(arg_value2);
|
||||
(*arg).i = (*arg).ui == NUM_TYPE_DEFAULT ? atoi(arg_value) : atoi(arg_value+1);
|
||||
(*arg).i2 = (*arg).ui2 == NUM_TYPE_DEFAULT ? atoi(arg_value2) : atoi(arg_value2+1);
|
||||
} else if (strcmp(func_name, "movewin") == 0) {
|
||||
func = movewin;
|
||||
(*arg).ui = parse_num_type(arg_value);
|
||||
(*arg).ui2 = parse_num_type(arg_value2);
|
||||
(*arg).i = (*arg).ui == NUM_TYPE_DEFAULT ? atoi(arg_value) : atoi(arg_value+1);
|
||||
(*arg).i2 = (*arg).ui2 == NUM_TYPE_DEFAULT ? atoi(arg_value2) : atoi(arg_value2+1);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue