#include "DiabloUI/button.h" #include "DiabloUI/art_draw.h" #include "DiabloUI/text_draw.h" #include "DiabloUI/errorart.h" #include "display.h" namespace dvl { Art SmlButton; void LoadSmlButtonArt() { LoadArt(&SmlButton, btnData, SML_BUTTON_WIDTH, SML_BUTTON_HEIGHT * 2, 2); } void RenderButton(UiButton *button) { int frame; if (button->pressed) { frame = UiButton::PRESSED; } else { frame = UiButton::DEFAULT; } DrawArt(button->rect.x, button->rect.y, button->art, frame, button->rect.w, button->rect.h); SDL_Rect text_rect = button->rect; if (!button->pressed) --text_rect.y; DrawTTF(button->text, text_rect, UIS_CENTER, SDL_Color { 243, 243, 243, 0 }, SDL_Color { 0, 0, 0, 0 }, &button->render_cache); } bool HandleMouseEventButton(const SDL_Event &event, UiButton *button) { if (event.button.button != SDL_BUTTON_LEFT) return false; switch (event.type) { case SDL_MOUSEBUTTONUP: button->action(); return true; case SDL_MOUSEBUTTONDOWN: button->pressed = true; return true; default: return false; } } void HandleGlobalMouseUpButton(UiButton *button) { button->pressed = false; } } // namespace dvl