55 lines
1.1 KiB
D
55 lines
1.1 KiB
D
module jes.gui;
|
|
|
|
static import jtk;
|
|
import std.stdio;
|
|
import jes.gui.window;
|
|
|
|
class Gui
|
|
{
|
|
this()
|
|
{
|
|
if (!jtk.initialize())
|
|
{
|
|
throw new Exception("JTK initialization failed.");
|
|
}
|
|
}
|
|
|
|
void run()
|
|
{
|
|
try
|
|
{
|
|
new Window();
|
|
event_loop();
|
|
}
|
|
finally
|
|
{
|
|
jtk.quit();
|
|
}
|
|
}
|
|
|
|
private void event_loop()
|
|
{
|
|
bool running = true;
|
|
while (running)
|
|
{
|
|
jtk.Event event = jtk.wait_event();
|
|
switch (event.type)
|
|
{
|
|
case jtk.Event.WINDOW_CLOSE:
|
|
Window window = Window[event.window_close.window];
|
|
window.close();
|
|
running = false;
|
|
break;
|
|
|
|
case jtk.Event.WINDOW_RESIZE:
|
|
Window window = Window[event.window_resize.window];
|
|
window.resize(event.window_resize.width, event.window_resize.height);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|