Redraw widgets on request. Add scrollbar demo.
#include "sdlterm.h"
class Application
{
public:
Terminal term;
bool done;
Application() : term(), done(false) {};
void init();
void wait_and_process_event();
};
void Application::init()
{
term.resize(800, 600);
term.select_font("font/DejaVuSansMono.ttf", "font/DejaVuSansMono-Bold.ttf", 12);
term.erase();
char hello[] = "Hello World!";
for (int bg = 0; bg < 16; bg++)
{
for (int fg = 0; fg < 16; fg++)
{
for (char *c = hello; *c; c++)
{
term.set_attr( term.prepare_attr(fg, bg, 1) );
term.putch(5 + 6 * bg + (c - hello), 5 + fg, *c);
}
}
}
term.commit();
}
void Application::wait_and_process_event()
{
Event event;
term.wait_event(event, 0);
switch (event.type)
{
case Event::QUIT:
done = true;
break;
case Event::MOUSEDOWN:
printf("mouse button down\n");
break;
case Event::MOUSEUP:
printf("mouse button up\n");
break;
default:
break;
}
}
int main(int argc, char *argv[])
{
Application app;
app.init();
while (!app.done)
{
app.wait_and_process_event();
}
return 0;
}