diff --git a/src/jes/gui/jtk.d b/src/jes/gui/jtk.d deleted file mode 100644 index d61040e..0000000 --- a/src/jes/gui/jtk.d +++ /dev/null @@ -1,74 +0,0 @@ -private extern(C) bool jtk_init(); -private extern(C) void * jtk_window_create(); -private extern(C) void jtk_window_swap_buffers(void * window); -private extern(C) void jtk_window_close(void * window); -private extern(C) void jtk_window_set_title(void * window, const char * title); -private extern(C) void jtk_window_set_icon(void * window, const ubyte * data, - size_t width, size_t height); - -struct Jtk -{ - struct Event - { - enum Type : ubyte - { - WINDOW_CLOSE, - WINDOW_EXPOSE, - KEY_PRESS, - KEY_RELEASE, - BUTTON_PRESS, - BUTTON_RELEASE, - TIMER, - WINDOW_RESIZE, - }; - - struct KeyEvent - { - bool repeat; - uint key; - uint x_keycode; - }; - - struct ButtonEvent - { - uint mods; - ubyte button; - }; - - struct TimerEvent - { - uint timer_id; - void * user1; - void * user2; - }; - - struct WindowResizeEvent - { - uint width; - uint height; - }; - - Type type; - union - { - KeyEvent key; - ButtonEvent button; - TimerEvent timer; - WindowResizeEvent resize; - }; - } - - class Window - { - } - - static bool init() - { - if (!jtk_init()) - { - return false; - } - - return true; - } -} diff --git a/src/jtk/event.d b/src/jtk/event.d new file mode 100644 index 0000000..99df147 --- /dev/null +++ b/src/jtk/event.d @@ -0,0 +1,51 @@ +module jtk.event; + +struct Event +{ + enum Type : ubyte + { + WINDOW_CLOSE, + WINDOW_EXPOSE, + KEY_PRESS, + KEY_RELEASE, + BUTTON_PRESS, + BUTTON_RELEASE, + TIMER, + WINDOW_RESIZE, + }; + + struct KeyEvent + { + bool repeat; + uint key; + uint x_keycode; + }; + + struct ButtonEvent + { + uint mods; + ubyte button; + }; + + struct TimerEvent + { + uint timer_id; + void * user1; + void * user2; + }; + + struct WindowResizeEvent + { + uint width; + uint height; + }; + + Type type; + union + { + KeyEvent key; + ButtonEvent button; + TimerEvent timer; + WindowResizeEvent resize; + }; +} diff --git a/src/jtk/init.d b/src/jtk/init.d new file mode 100644 index 0000000..aca3ea5 --- /dev/null +++ b/src/jtk/init.d @@ -0,0 +1,13 @@ +module jtk.init; + +private extern(C) bool jtk_init(); + +bool init() +{ + if (!jtk_init()) + { + return false; + } + + return true; +} diff --git a/src/jes/gui/jtk.c b/src/jtk/jtk.c similarity index 100% rename from src/jes/gui/jtk.c rename to src/jtk/jtk.c diff --git a/src/jtk/window.d b/src/jtk/window.d new file mode 100644 index 0000000..769f52e --- /dev/null +++ b/src/jtk/window.d @@ -0,0 +1,12 @@ +module jtk.window; + +private extern(C) void * jtk_window_create(); +private extern(C) void jtk_window_swap_buffers(void * window); +private extern(C) void jtk_window_close(void * window); +private extern(C) void jtk_window_set_title(void * window, const char * title); +private extern(C) void jtk_window_set_icon(void * window, const ubyte * data, + size_t width, size_t height); + +class Window +{ +} diff --git a/src/main.d b/src/main.d index b59782f..dbae5d5 100644 --- a/src/main.d +++ b/src/main.d @@ -1,7 +1,8 @@ -import jes.gui.jtk; +static import jtk.init; +import std.stdio; int main(string[] args) { - Jtk.init(); + jtk.init.init(); return 0; }