diff options
Diffstat (limited to 'src/ui.c')
-rw-r--r-- | src/ui.c | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -7,9 +7,13 @@ TexturedButton createTexturedButton(Texture* texture, Rectangle rect, const char TexturedButton button; button.texture = texture; button.rect = rect; + strncpy((char*)button.message, message, UI_BUTTON_NAME_MAX); + button.messageLength = strnlen(button.message, UI_BUTTON_NAME_MAX); + button.backgroundColor = backgroundColor; button.foregroundColor = foregroundColor; + button.fontSize = UI_BUTTON_DEFAULT_FONT_SIZE; button.isPressed = false; return button; @@ -27,5 +31,32 @@ bool updateTexturedButton(TexturedButton* button) button->backgroundColor ); + + // Draw outline thingy. + if (IsMouseButtonDown(MOUSE_LEFT_BUTTON)) + { + DrawRectangleLinesEx(button->rect, 2, button->foregroundColor); + } + + // Draw text centered in button. + DrawText( + button->message, + button->rect.x + (button->rect.width / 2.0 - (button->messageLength * button->fontSize / 4.0)), + button->rect.y + (button->rect.height / 2.0 - button->fontSize / 2.0), + button->fontSize, + button->foregroundColor + ); + + button->isPressed = false; + + // Check if the button is clicked. + if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) + { + if (CheckCollisionPointRec(GetMousePosition(), button->rect)) + { + button->isPressed = true; + } + } + return button->isPressed; } |