Textbox example.
This commit is contained in:
45
src/ui/uitextbox.c
Normal file
45
src/ui/uitextbox.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/**
|
||||
* Copyright (c) 2025 Dominic Masters
|
||||
*
|
||||
* This software is released under the MIT License.
|
||||
* https://opensource.org/licenses/MIT
|
||||
*/
|
||||
|
||||
#include "uitextbox.h"
|
||||
#include "ui/ui.h"
|
||||
#include "ui/uitext.h"
|
||||
#include "rpg/rpgtextbox.h"
|
||||
#include "display/screen.h"
|
||||
#include "display/spritebatch.h"
|
||||
#include "input/input.h"
|
||||
|
||||
void uiTextboxUpdate() {
|
||||
if(!rpgTextboxIsVisible()) return;
|
||||
|
||||
if(inputPressed(INPUT_ACTION_ACCEPT)) {
|
||||
rpgTextboxHide();
|
||||
}
|
||||
}
|
||||
|
||||
void uiTextboxRender() {
|
||||
if(!rpgTextboxIsVisible()) return;
|
||||
|
||||
const char_t *text = RPG_TEXTBOX.text;
|
||||
int32_t textWidth, textHeight;
|
||||
|
||||
uiTextMeasure(text, UI.fontTileset, &textWidth, &textHeight);
|
||||
|
||||
float_t y = 0;
|
||||
if(RPG_TEXTBOX.position == RPG_TEXTBOX_POS_BOTTOM) {
|
||||
y = SCREEN.height - (float_t)textHeight;
|
||||
}
|
||||
|
||||
spriteBatchPush(
|
||||
NULL,
|
||||
0.0f, y,
|
||||
(float_t)SCREEN.width, (float_t)(y + textHeight),
|
||||
COLOR_BLACK,
|
||||
0.0f, 0.0f, 1.0f, 1.0f
|
||||
);
|
||||
uiTextDraw(0, y, text, COLOR_RED, UI.fontTileset, &UI.fontTexture);
|
||||
}
|
||||
Reference in New Issue
Block a user