123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- #ifndef IC_EXPLORER_BUTTON_H
- #define IC_EXPLORER_BUTTON_H
- #include "window.h"
- #include <SDL_mixer.h>
- #include <SDL_ttf.h>
- #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 */
|