separate command handling
This commit is contained in:
parent
90db87bec9
commit
0be3768867
11 changed files with 143 additions and 52 deletions
12
kubo_input.c
12
kubo_input.c
|
|
@ -76,10 +76,11 @@ static void char_input(struct kubo_context *context) {
|
|||
int char_code;
|
||||
do {
|
||||
char_code = GetCharPressed();
|
||||
|
||||
if (char_code && context->state.id == KUBO_CONTEXT_COMMAND) {
|
||||
kubo_char_arr_add(&context->command, char_code);
|
||||
kubo_command_append_char(char_code);
|
||||
} else if (char_code == ':') {
|
||||
kubo_command_clear();
|
||||
kubo_command_append_char(':');
|
||||
kubo_context_set_state(context, KUBO_CONTEXT_COMMAND);
|
||||
}
|
||||
} while (char_code > 0);
|
||||
|
|
@ -92,13 +93,12 @@ static void handle_cmd_input(struct kubo_context *context) {
|
|||
kubo_context_set_state(context, KUBO_CONTEXT_NORMAL);
|
||||
break;
|
||||
case KEY_ENTER:
|
||||
kubo_context_accept_cmd(context);
|
||||
kubo_command_accept_cmd(context);
|
||||
kubo_context_set_state(context, KUBO_CONTEXT_NORMAL);
|
||||
break;
|
||||
case KEY_DELETE:
|
||||
case KEY_BACKSPACE:
|
||||
if (context->command.count > 1) {
|
||||
kubo_char_arr_pop(&context->command);
|
||||
}
|
||||
kubo_command_pop();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue