Removed the system cursor variant of love.mouse.newCursor and added love.mouse.getSystemCursor. love.mouse.newCursor can now take a file(path). Resolves issue #741.

This commit is contained in:
Alex Szpakowski
2013-10-28 12:59:03 -03:00
parent 900978baf7
commit 3b0d5c8b6d
7 changed files with 58 additions and 27 deletions
+16 -2
View File
@@ -46,6 +46,9 @@ Mouse::~Mouse()
{
if (curCursor)
setCursor();
for (auto it = systemCursors.begin(); it != systemCursors.end(); ++it)
it->second->release();
}
love::mouse::Cursor *Mouse::newCursor(love::image::ImageData *data, int hotx, int hoty)
@@ -53,9 +56,20 @@ love::mouse::Cursor *Mouse::newCursor(love::image::ImageData *data, int hotx, in
return new Cursor(data, hotx, hoty);
}
love::mouse::Cursor *Mouse::newCursor(love::mouse::Cursor::SystemCursor cursortype)
love::mouse::Cursor *Mouse::getSystemCursor(Cursor::SystemCursor cursortype)
{
return new Cursor(cursortype);
Cursor *cursor = NULL;
auto it = systemCursors.find(cursortype);
if (it != systemCursors.end())
cursor = it->second;
else
{
cursor = new Cursor(cursortype);
systemCursors[cursortype] = cursor;
}
return cursor;
}
void Mouse::setCursor(love::mouse::Cursor *cursor)
+6 -1
View File
@@ -25,6 +25,9 @@
#include "mouse/Mouse.h"
#include "Cursor.h"
// C++
#include <map>
namespace love
{
namespace mouse
@@ -43,7 +46,7 @@ public:
~Mouse();
love::mouse::Cursor *newCursor(love::image::ImageData *data, int hotx, int hoty);
love::mouse::Cursor *newCursor(love::mouse::Cursor::SystemCursor cursortype);
love::mouse::Cursor *getSystemCursor(Cursor::SystemCursor cursortype);
void setCursor(love::mouse::Cursor *cursor);
void setCursor();
@@ -66,6 +69,8 @@ private:
love::mouse::Cursor *curCursor;
std::map<Cursor::SystemCursor, Cursor *> systemCursors;
}; // Mouse
} // sdl