Added non working text input
This commit is contained in:
49
src/gui.c
49
src/gui.c
@@ -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
|
||||
|
||||
30
src/gui.h
30
src/gui.h
@@ -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;
|
||||
|
||||
@@ -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) &&
|
||||
|
||||
Reference in New Issue
Block a user