aboutsummaryrefslogtreecommitdiff
path: root/src/lua/modules/event/luaopen_event.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-08-22 13:58:13 +0800
committerchai <chaifix@163.com>2018-08-22 13:58:13 +0800
commit36621e6be9604517c900adc0d97665e975c2b325 (patch)
treed3db26c2de6b47aee96f6a24d2595ff80a8869b7 /src/lua/modules/event/luaopen_event.cpp
parent95df5cf921f57bfeac0d819994210dfcc2dcad14 (diff)
*update
Diffstat (limited to 'src/lua/modules/event/luaopen_event.cpp')
-rw-r--r--src/lua/modules/event/luaopen_event.cpp106
1 files changed, 0 insertions, 106 deletions
diff --git a/src/lua/modules/event/luaopen_event.cpp b/src/lua/modules/event/luaopen_event.cpp
deleted file mode 100644
index af9f8fc..0000000
--- a/src/lua/modules/event/luaopen_event.cpp
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
-* Event module
-*/
-#include "lua/modules/luax.h"
-#include "libjin/jin.h"
-
-namespace jin
-{
-namespace lua
-{
-
- using namespace jin::input;
-
- /**
- * Load event poll, return a iterator(a table).
- */
- static int l_event_poll(lua_State *L)
- {
- // table to store events
- luax_newtable(L);
- static Event e;
- int i = 1;
- poll:
- while (pollEvent(&e))
- {
- // each event is a table
- luax_newtable(L);
- switch (e.type)
- {
- case EventType::QUIT:
- luax_setfield_string(L, "type", "quit");
- break;
-
- case EventType::KEY_DOWN:
- luax_setfield_string(L, "type", "keydown");
- luax_setfield_string(L, "key", getKeyName(e.key.keysym.sym));
- break;
-
- case EventType::KEY_UP:
- luax_setfield_string(L, "type", "keyup");
- luax_setfield_string(L, "key", getKeyName(e.key.keysym.sym));
- break;
-
- case EventType::MOUSE_MOTION:
- luax_setfield_string(L, "type", "mousemotion");
- luax_setfield_number(L, "x", e.motion.x);
- luax_setfield_number(L, "y", e.motion.y);
- break;
-
- case EventType::MOUSE_BUTTON_DOWN:
- luax_setfield_string(L, "type", "mousebuttondown");
- luax_setfield_string(L, "button", getButtonName(e.button.button));
- luax_setfield_number(L, "x", e.button.x);
- luax_setfield_number(L, "y", e.button.y);
- break;
-
- case EventType::MOUSE_BUTTON_UP:
- luax_setfield_string(L, "type", "mousebuttonup");
- luax_setfield_string(L, "button", getButtonName(e.button.button));
- luax_setfield_number(L, "x", e.button.x);
- luax_setfield_number(L, "y", e.button.y);
- break;
-
- case EventType::MOUSE_WHEEL:
- luax_setfield_string(L, "type", "wheel");
- if(e.wheel.x == -1)
- luax_setfield_string(L, "x", "left");
- else if(e.wheel.x == 1)
- luax_setfield_string(L, "x", "right");
- else
- luax_setfield_string(L, "x", "none");
- if (e.wheel.y == -1)
- luax_setfield_string(L, "y", "near");
- else if (e.wheel.y == 1)
- luax_setfield_string(L, "y", "far");
- else
- luax_setfield_string(L, "y", "none");
- break;
-
- default:
- /* ignore other events */
- luax_pop(L, 1); // pop table out
- goto poll;
- break;
- }
- luax_rawseti(L, -2, i++);
- }
- return 1;
- }
-
- static const luaL_Reg f[] = {
- { "poll", l_event_poll },
- { 0, 0 }
- };
-
- /**
- * load event module
- */
- int luaopen_event(lua_State* L)
- {
- luax_newlib(L, f);
- return 1;
- }
-
-} // lua
-} // jin \ No newline at end of file