diff options
Diffstat (limited to 'src/widget/widget_catchkey.c')
| -rw-r--r-- | src/widget/widget_catchkey.c | 219 |
1 files changed, 112 insertions, 107 deletions
diff --git a/src/widget/widget_catchkey.c b/src/widget/widget_catchkey.c index 19678a3..215e5b3 100644 --- a/src/widget/widget_catchkey.c +++ b/src/widget/widget_catchkey.c @@ -9,141 +9,146 @@ #include "widget.h" #include "widget_catchkey.h" -widget_t * -newWidgetCatchkey(int key, int x, int y, void *event) +widget_t* newWidgetCatchkey(int key, int x, int y, void *event) { - widget_catchkey_t *new; + widget_catchkey_t *new; - new = malloc(sizeof(widget_catchkey_t)); - new->key = key; - new->fce_event = event; - new->active = FALSE; + new = malloc( sizeof(widget_catchkey_t) ); + new->key = key; + new->fce_event = event; + new->active = FALSE; - return newWidget(WIDGET_TYPE_CATCHKEY, x, y, WIDGET_CATCHKEY_WIDTH, - WIDGET_CATCHKEY_HEIGHT, new); + return newWidget(WIDGET_TYPE_CATCHKEY, x, y, WIDGET_CATCHKEY_WIDTH, WIDGET_CATCHKEY_HEIGHT, new); } -int -getWidgetCatchKey(widget_t * widget) +int getWidgetCatchKey(widget_t *widget) { - widget_catchkey_t *p; + widget_catchkey_t *p; - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_CATCHKEY ); - p = (widget_catchkey_t *) widget->private_data; + p = (widget_catchkey_t *) widget->private_data; - return p->key; + return p->key; } -void -setWidgetCatchKey(widget_t * widget, int key) +void setWidgetCatchKey(widget_t *widget, int key) { - widget_catchkey_t *p; + widget_catchkey_t *p; - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_CATCHKEY ); - p = (widget_catchkey_t *) widget->private_data; + p = (widget_catchkey_t *) widget->private_data; - p->key = key; + p->key = key; } -void -drawWidgetCatchkey(widget_t * widget) +void drawWidgetCatchkey(widget_t *widget) { - widget_catchkey_t *p; - char *name; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); - - p = (widget_catchkey_t *) widget->private_data; - name = NULL; - - if (p->key != WIDGET_CATCHKEY_NOKEY) { - name = (char *) SDL_GetKeyName(p->key); - } - - if (name == NULL) { - name = "no key"; - } - - if (p->active) { - drawFont(name, widget->x, widget->y, COLOR_RED); - } - else { - drawFont(name, widget->x, widget->y, COLOR_WHITE); - } + widget_catchkey_t *p; + char *name; + + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_CATCHKEY ); + + p = (widget_catchkey_t *) widget->private_data; + name = NULL; + + if( p->key != WIDGET_CATCHKEY_NOKEY ) + { + name = (char *) SDL_GetKeyName(p->key); + } + + if( name == NULL ) + { + name = "no key"; + } + + if( p->active ) + { + drawFont(name, widget->x, widget->y, COLOR_RED); + } + else + { + drawFont(name, widget->x, widget->y, COLOR_WHITE); + } } -static int -getPessAnyKey() +static int getPessAnyKey() { - Uint8 *mapa; - int i; - - mapa = SDL_GetKeyState(NULL); - - for (i = SDLK_FIRST; i <= SDLK_COMPOSE; i++) { - if (i == SDLK_NUMLOCK || // black key - i == SDLK_CAPSLOCK || i == SDLK_SCROLLOCK) { - continue; - } - - if (mapa[i] == SDL_PRESSED) { - return i; - } - } - - return WIDGET_CATCHKEY_NOKEY; + Uint8 *mapa; + int i; + + mapa = SDL_GetKeyState(NULL); + + for( i = SDLK_FIRST ; i <= SDLK_COMPOSE ; i++ ) + { + if( i == SDLK_NUMLOCK || // black key + i == SDLK_CAPSLOCK || + i == SDLK_SCROLLOCK ) + { + continue; + } + + if( mapa[i] == SDL_PRESSED ) + { + return i; + } + } + + return WIDGET_CATCHKEY_NOKEY; } -void -eventWidgetCatchkey(widget_t * widget) +void eventWidgetCatchkey(widget_t *widget) { - widget_catchkey_t *p; - int x, y; - - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); - - p = (widget_catchkey_t *) widget->private_data; - - getMousePosition(&x, &y); - - if (isMouseClicked()) { - if (x >= widget->x && x <= widget->x + WIDGET_CATCHKEY_WIDTH && - y >= widget->y && y <= widget->y + WIDGET_CATCHKEY_HEIGHT) { - p->active = TRUE; - } - else { - p->active = FALSE; - } - } - - if (p->active == TRUE) { - int key; - - key = getPessAnyKey(); - - if (key != WIDGET_CATCHKEY_NOKEY) { - p->key = key; - p->fce_event(widget); - } - } + widget_catchkey_t *p; + int x, y; + + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_CATCHKEY ); + + p = (widget_catchkey_t *) widget->private_data; + + getMousePosition(&x, &y); + + if( isMouseClicked() ) + { + if( x >= widget->x && x <= widget->x+WIDGET_CATCHKEY_WIDTH && + y >= widget->y && y <= widget->y+WIDGET_CATCHKEY_HEIGHT ) + { + p->active = TRUE; + } + else + { + p->active = FALSE; + } + } + + if( p->active == TRUE ) + { + int key; + + key = getPessAnyKey(); + + if( key != WIDGET_CATCHKEY_NOKEY ) + { + p->key = key; + p->fce_event(widget); + } + } } -void -destroyWidgetCatchkey(widget_t * widget) +void destroyWidgetCatchkey(widget_t *widget) { - widget_catchkey_t *p; + widget_catchkey_t *p; - assert(widget != NULL); - assert(widget->type == WIDGET_TYPE_CATCHKEY); + assert( widget != NULL ); + assert( widget->type == WIDGET_TYPE_CATCHKEY ); - p = (widget_catchkey_t *) widget->private_data; + p = (widget_catchkey_t *) widget->private_data; - free(p); - destroyWidget(widget); + free(p); + destroyWidget(widget); } |