57 lines
1.7 KiB
C++
57 lines
1.7 KiB
C++
#include "propertygrid.h"
|
|
#include "japi/draw.h"
|
|
#include "japi/font.h"
|
|
#include "japi/input.h"
|
|
|
|
namespace propertygrid
|
|
{
|
|
int width = 200;
|
|
int scroll = 0;
|
|
int line = 0;
|
|
int element = 0;
|
|
int max_elements = 0;
|
|
|
|
void start()
|
|
{
|
|
const SDL_Point win_size = draw::getWindowSize();
|
|
draw::setClip(win_size.x-propertygrid::width,48,propertygrid::width, win_size.y-48);
|
|
draw::setColor(0xff181818);
|
|
draw::fillrect(win_size.x-propertygrid::width,48,propertygrid::width, win_size.y-48);
|
|
//current[0] = current[1] = current[2] =
|
|
line = element = 0;
|
|
|
|
max_elements = (win_size.y-48) / 24;
|
|
int mx = input::mouseX();
|
|
int my = input::mouseY();
|
|
if (mx>=win_size.x-propertygrid::width && my>=48 && mx<win_size.x && my<draw::getWindowSize().y) {
|
|
scroll -= input::mouseWheel();
|
|
if (scroll < 0) scroll = 0;
|
|
}
|
|
}
|
|
|
|
std::string stringProperty(std::string label, std::string value)
|
|
{
|
|
const SDL_Point win_size = draw::getWindowSize();
|
|
const int x = win_size.x-propertygrid::width;
|
|
const int y = 48+line*24;
|
|
draw::setClip(x,y,propertygrid::width, 24);
|
|
draw::setColor(0xffffffff);
|
|
draw::fillrect(x,y,propertygrid::width, 24);
|
|
draw::setColor(0xffa0a0a0);
|
|
draw::line(x,71+line*24,win_size.x, y+23);
|
|
draw::line(x+propertygrid::width/2,y,x+propertygrid::width/2, y+23);
|
|
font::print(label.c_str(), x+8, y+9, 0xff000000);
|
|
line++;
|
|
return "";
|
|
}
|
|
|
|
void end()
|
|
{
|
|
draw::resetClip();
|
|
if (element>max_elements && line<max_elements) {
|
|
scroll -= max_elements-line;
|
|
}
|
|
}
|
|
|
|
}
|