From 8d081e50e63bb56f024d51fb140e7f2b39d9adf4 Mon Sep 17 00:00:00 2001 From: Kevin Harrison Date: Wed, 26 Dec 2018 13:08:45 -0500 Subject: [PATCH] Add `presses` parameter to ui:mousepressed and ui:mousereleased --- README.md | 8 ++++---- example/main.lua | 8 ++++---- src/nuklear_love.c | 12 +++++++----- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index b624583..fe9758d 100644 --- a/README.md +++ b/README.md @@ -54,12 +54,12 @@ function love.keyreleased(key, scancode) ui:keyreleased(key, scancode) end -function love.mousepressed(x, y, button, istouch) - ui:mousepressed(x, y, button, istouch) +function love.mousepressed(x, y, button, istouch, presses) + ui:mousepressed(x, y, button, istouch, presses) end -function love.mousereleased(x, y, button, istouch) - ui:mousereleased(x, y, button, istouch) +function love.mousereleased(x, y, button, istouch, presses) + ui:mousereleased(x, y, button, istouch, presses) end function love.mousemoved(x, y, dx, dy, istouch) diff --git a/example/main.lua b/example/main.lua index 049102f..5fd2010 100644 --- a/example/main.lua +++ b/example/main.lua @@ -50,12 +50,12 @@ function love.keyreleased(key, scancode) input('keyreleased', key, scancode) end -function love.mousepressed(x, y, button, istouch) - input('mousepressed', x, y, button, istouch) +function love.mousepressed(x, y, button, istouch, presses) + input('mousepressed', x, y, button, istouch, presses) end -function love.mousereleased(x, y, button, istouch) - input('mousereleased', x, y, button, istouch) +function love.mousereleased(x, y, button, istouch, presses) + input('mousereleased', x, y, button, istouch, presses) end function love.mousemoved(x, y, dx, dy, istouch) diff --git a/src/nuklear_love.c b/src/nuklear_love.c index 775b99d..0991273 100644 --- a/src/nuklear_love.c +++ b/src/nuklear_love.c @@ -1035,7 +1035,7 @@ static int nk_love_keyevent(struct nk_context *ctx, const char *key, } static int nk_love_clickevent(struct nk_love_context *ctx, int x, int y, - int button, int istouch, int down) + int button, int istouch, int presses, int down) { nk_love_transform(ctx->Ti, &x, &y); struct nk_context *nkctx = &ctx->nkctx; @@ -1161,26 +1161,28 @@ static int nk_love_keyreleased(lua_State *L) static int nk_love_mousepressed(lua_State *L) { - nk_love_assert_argc(lua_gettop(L) == 5); + nk_love_assert_argc(lua_gettop(L) == 5 || lua_gettop(L) == 6); struct nk_love_context *ctx = nk_love_checkcontext(1); int x = luaL_checkint(L, 2); int y = luaL_checkint(L, 3); int button = luaL_checkint(L, 4); int istouch = nk_love_checkboolean(L, 5); - int consume = nk_love_clickevent(ctx, x, y, button, istouch, 1); + int presses = lua_gettop(L) == 6 ? luaL_checkint(L, 6) : 1; + int consume = nk_love_clickevent(ctx, x, y, button, istouch, presses, 1); lua_pushboolean(L, consume); return 1; } static int nk_love_mousereleased(lua_State *L) { - nk_love_assert_argc(lua_gettop(L) == 5); + nk_love_assert_argc(lua_gettop(L) == 5 || lua_gettop(L) == 6); struct nk_love_context *ctx = nk_love_checkcontext(1); int x = luaL_checkint(L, 2); int y = luaL_checkint(L, 3); int button = luaL_checkint(L, 4); int istouch = nk_love_checkboolean(L, 5); - int consume = nk_love_clickevent(ctx, x, y, button, istouch, 0); + int presses = lua_gettop(L) == 6 ? luaL_checkint(L, 6) : 1; + int consume = nk_love_clickevent(ctx, x, y, button, istouch, presses, 0); lua_pushboolean(L, consume); return 1; }