#ifndef IC_EXPLORER_BUTTON_H #define IC_EXPLORER_BUTTON_H #include "window.h" #include #include #define BUTTON_PADDING 0.005f typedef struct { Mix_Chunk *down; Mix_Chunk *up; Mix_Chunk *hover; } ButtonSoundSet; struct Button; typedef void (*ButtonAction)(struct Button *button, Window *window, float x, float y); typedef struct Button { float x; float y; float w; float h; char *text; SDL_Texture *current; SDL_Texture *inactive; SDL_Texture *active; SDL_Color textColor; TTF_Font *font; SDL_Texture *renderedText; ButtonSoundSet sounds; int textW; int textH; ButtonAction action; int down; } Button; Button *buttonNew(const char *text, float x, float y, float w, float h, SDL_Texture *inactive, SDL_Texture *active, SDL_Color textColor, TTF_Font *font, ButtonSoundSet sounds, const Window *window); void buttonDelete(Button *button); void buttonDraw(const Button *button, const Window *window); void buttonUpdate(Button *button, const Window *window); void buttonProcessInput(Button *button, Window *window, const SDL_Event *event); void buttonGetCenter(const Button *button, Point *point); #endif /* IC_EXPLORER_BUTTON_H */