Files
thepool/source/jui.cpp
Raimon Zamora 543c6a81e3 - [FIX] l'animació no funcionava be
- Versió del Update dels actors per al Editor
- [NEW] gui::TextBox
- [NEW] input::getKeyPressed()
- Acabant el editor...
2023-10-05 18:55:51 +02:00

48 lines
1.4 KiB
C++

#include "jui.h"
#include "jdraw.h"
#include "jinput.h"
#include <string.h>
namespace ui
{
const int button(const char *label, const int x, const int y, const int w, const int h, const int c1, const int c2, const int c3)
{
const int mx = input::mouseX();
const int my = input::mouseY();
const bool btnDown = input::mouseBtn(1) || input::mouseBtn(3);
const bool inside = (mx>=x) && (mx<x+w) && (my>=y) && (my<y+h);
const int txt_size = strlen(label)*4;
const int txt_x = x+(w-txt_size)/2;
draw::color(inside?(btnDown?c3:c2):c1);
draw::fillrect(x, y, w, h);
draw::print(label, 1+txt_x, y+3, LIGHT+WHITE, PAPER);
if (inside)
{
if (input::mouseClk(1)) return 1;
if (input::mouseClk(3)) return 3;
}
return 0;
}
const int textbox(const char *label, const int x, const int y, const int w, const int h, const int c1, const int c2)
{
const int mx = input::mouseX();
const int my = input::mouseY();
const bool inside = (mx>=x) && (mx<x+w) && (my>=y) && (my<y+h);
const int txt_size = strlen(label)*4;
const int txt_x = x+(w-txt_size)/2;
draw::color(inside?c2:c1);
draw::fillrect(x, y, w, h);
draw::print(label, 1+txt_x, y+3, LIGHT+WHITE, PAPER);
if (inside)
{
return input::getKeyPressed();
}
return 0;
}
}