timesynk/engine/state_menu.c

49 lines
1.2 KiB
C

/******
State entry for the main menu
******/
#include "state_menu.h"
/* allocate memory for menu */
void initMenuState() {
s_menu_elements = newElementList();
s_menu_elements->user = g_screen;
struct Dimension dimen = { 32, 32, 128, 32};
struct Element *element = newElement(E_TYPE_TEXT, 0, E_STATE_NORMAL, dimen);
element->target = g_screen;
addElementToList(s_menu_elements, element);
g_renderElements(s_menu_elements); // draw all
}
/* free memory for menu */
void freeMenuState() {
freeElementList(s_menu_elements);
}
void processMenuState(int delta) {
}
/* handles events */
void handleMenuState(struct TSEvent event) {
switch(event.type) {
case TS_KEYBOARD:
handleMenuKeyInput(event.keyboard);
break;
default:
break;
}
}
void handleMenuKeyInput(struct TSEvent_Keyboard key_event) {
if (key_event.key.mod & KMOD_CTRL) {
if (key_event.key.sym == 113)
g_running = 0;
}
if (key_event.key.mod & KMOD_SHIFT) {
printf("shift is held\n");
}
printf("state is %d, scan is %d, sym is %d(%c), and unicode is %d(%c)\n", key_event.state, key_event.key.scancode, key_event.key.sym, key_event.key.sym, key_event.key.unicode, key_event.key.unicode);
};