Added non working text input

This commit is contained in:
Sasha Koshka
2022-04-29 23:06:33 -04:00
parent 03ccb37def
commit e6c423f633
3 changed files with 71 additions and 16 deletions

View File

@@ -188,14 +188,14 @@ int button (
x--;
y--;
if(hover) {
if (hover) {
SDL_SetRenderDrawColor(renderer, 255, 255, 160, 255);
} else {
white(renderer);
}
centerStr(renderer, str, x, y);
if(hover) {
if (hover) {
white(renderer);
} else {
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
@@ -205,6 +205,51 @@ int button (
return hover;
}
/* input
* Draws a simple text input. Draws the string in buffer. If buffer is empty,
* the placeholder text is drawn instead (but in a darker color). Returns
* whether or not the mouse is inside of the input.
*/
int input (
SDL_Renderer *renderer,
const char *placeholder,
const char *buffer,
int x, int y, int w,
int mouseX, int mouseY,
int active
) {
int hover = mouseX >= x &&
mouseY >= y &&
mouseX < x + w &&
mouseY < y + 16 ;
SDL_Rect rect;
rect.x = x;
rect.y = y;
rect.w = w;
rect.h = 16;
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderFillRect(renderer, &rect);
if (hover || active) {
white(renderer);
} else {
SDL_SetRenderDrawColor(renderer, 139, 139, 139, 255);
}
SDL_RenderDrawRect(renderer, &rect);
if (buffer[0]) {
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
drawStr(renderer, buffer, x + 4, y + 4);
} else {
SDL_SetRenderDrawColor(renderer, 63, 63, 63, 255);
drawStr(renderer, placeholder, x + 4, y + 4);
}
return hover;
}
/* drawSlot
* Takes in a pointer to a renderer, an InvSlot, draws the item
* with the specified x and y coordinates and width, and then

View File

@@ -7,21 +7,23 @@
#include "minecraftfont.h"
#include "textures.h"
void strnum (char*, int, int);
int drawChar (SDL_Renderer*, int, int, int);
int drawStr (SDL_Renderer*, const char*, int, int);
int shadowStr (SDL_Renderer*, const char*, int, int);
int centerStr (SDL_Renderer*, const char*, int, int);
int shadowCenterStr (SDL_Renderer*, const char*, int, int);
int drawBig (SDL_Renderer*, const char*, int, int);
int drawBGStr (SDL_Renderer*, const char*, int, int);
int button (SDL_Renderer*, const char*, int, int, int, int, int);
int drawSlot (SDL_Renderer*, InvSlot*, int, int, int, int);
void dirtBg (SDL_Renderer*);
void loadScreen (SDL_Renderer*, const char*, float, float);
void strnum (char *, int, int);
int drawChar (SDL_Renderer *, int, int, int);
int drawStr (SDL_Renderer *, const char *, int, int);
int shadowStr (SDL_Renderer *, const char *, int, int);
int centerStr (SDL_Renderer *, const char *, int, int);
int shadowCenterStr (SDL_Renderer *, const char *, int, int);
int drawBig (SDL_Renderer *, const char *, int, int);
int drawBGStr (SDL_Renderer *, const char *, int, int);
int button (SDL_Renderer *, const char *, int, int, int, int, int);
int input (SDL_Renderer *, const char *, const char *, int, int, int,
int, int, int);
int drawSlot (SDL_Renderer *, InvSlot *, int, int, int, int);
void dirtBg (SDL_Renderer *);
void loadScreen (SDL_Renderer *, const char *, float, float);
void chatAdd (const char*);
void white (SDL_Renderer*);
void tblack (SDL_Renderer*);
void white (SDL_Renderer *);
void tblack (SDL_Renderer *);
extern const int BUFFER_W;
extern const int BUFFER_H;

View File

@@ -74,6 +74,14 @@ void state_newWorld (
typeSelect = (typeSelect + 1) % 4;
}
if (input(renderer, "", "Seed",
BUFFER_HALF_W - 64, 42, 128,
inputs->mouse.x, inputs->mouse.y, 0) &&
inputs->mouse.left
) {
}
if (button(renderer, "Cancel",
BUFFER_HALF_W - 64, 64, 61,
inputs->mouse.x, inputs->mouse.y) &&