Add love.mouse.setX/setY (issue #438)

This commit is contained in:
Bart van Strien
2012-06-01 17:19:36 +02:00
parent f62bad6e12
commit 1eb17f2376
5 changed files with 35 additions and 1 deletions
+3 -1
View File
@@ -51,6 +51,8 @@ namespace mouse
virtual int getX() const = 0;
virtual int getY() const = 0;
virtual void getPosition(int & x, int & y) const = 0;
virtual void setX(int x) = 0;
virtual void setY(int y) = 0;
virtual void setPosition(int x, int y) = 0;
virtual void setVisible(bool visible) = 0;
virtual bool isDown(Button * buttonlist) const = 0;
@@ -71,4 +73,4 @@ namespace mouse
} // mouse
} // love
#endif // LOVE_MOUSE_MOUSE_H
#endif // LOVE_MOUSE_MOUSE_H
+12
View File
@@ -58,6 +58,18 @@ namespace sdl
SDL_WarpMouse(x, y);
}
void Mouse::setX(int x)
{
int y = getY();
setPosition(x, y);
}
void Mouse::setY(int y)
{
int x = getX();
setPosition(x, y);
}
void Mouse::setVisible(bool visible)
{
SDL_ShowCursor(visible ? SDL_ENABLE : SDL_DISABLE);
+2
View File
@@ -40,6 +40,8 @@ namespace sdl
int getX() const;
int getY() const;
void getPosition(int & x, int & y) const;
void setX(int x);
void setY(int y);
void setPosition(int x, int y);
void setVisible(bool visible);
bool isDown(Button * buttonlist) const;
+16
View File
@@ -51,6 +51,20 @@ namespace mouse
return 2;
}
int w_setX(lua_State * L)
{
int x = luaL_checkint(L, 1);
instance->setX(x);
return 0;
}
int w_setY(lua_State * L)
{
int y = luaL_checkint(L, 1);
instance->setY(y);
return 0;
}
int w_setPosition(lua_State * L)
{
int x = luaL_checkint(L, 1);
@@ -108,6 +122,8 @@ namespace mouse
static const luaL_Reg functions[] = {
{ "getX", w_getX },
{ "getY", w_getY },
{ "setX", w_setX },
{ "setY", w_setY },
{ "setPosition", w_setPosition },
{ "isDown", w_isDown },
{ "setVisible", w_setVisible },
+2
View File
@@ -31,6 +31,8 @@ namespace mouse
int w_getX(lua_State * L);
int w_getY(lua_State * L);
int w_getPosition(lua_State * L);
int w_setX(lua_State * L);
int w_setY(lua_State * L);
int w_setPosition(lua_State * L);
int w_isDown(lua_State * L);
int w_setVisible(lua_State * L);