1 /** 2 * Copyright (c) 2006-2019 LOVE Development Team 3 * 4 * This software is provided 'as-is', without any express or implied 5 * warranty. In no event will the authors be held liable for any damages 6 * arising from the use of this software. 7 * 8 * Permission is granted to anyone to use this software for any purpose, 9 * including commercial applications, and to alter it and redistribute it 10 * freely, subject to the following restrictions: 11 * 12 * 1. The origin of this software must not be misrepresented; you must not 13 * claim that you wrote the original software. If you use this software 14 * in a product, an acknowledgment in the product documentation would be 15 * appreciated but is not required. 16 * 2. Altered source versions must be plainly marked as such, and must not be 17 * misrepresented as being the original software. 18 * 3. This notice may not be removed or altered from any source distribution. 19 **/ 20 21 #ifndef LOVE_MOUSE_MOUSE_H 22 #define LOVE_MOUSE_MOUSE_H 23 24 // LOVE 25 #include "Cursor.h" 26 #include "common/Module.h" 27 #include "image/ImageData.h" 28 29 // C++ 30 #include <vector> 31 32 namespace love 33 { 34 namespace mouse 35 { 36 37 class Mouse : public Module 38 { 39 public: 40 ~Mouse()41 virtual ~Mouse() {} 42 43 // Implements Module. getModuleType()44 virtual ModuleType getModuleType() const { return M_MOUSE; } 45 46 virtual Cursor *newCursor(love::image::ImageData *data, int hotx, int hoty) = 0; 47 virtual Cursor *getSystemCursor(Cursor::SystemCursor cursortype) = 0; 48 49 virtual void setCursor(Cursor *cursor) = 0; 50 virtual void setCursor() = 0; 51 52 virtual Cursor *getCursor() const = 0; 53 54 virtual bool isCursorSupported() const = 0; 55 56 virtual double getX() const = 0; 57 virtual double getY() const = 0; 58 virtual void getPosition(double &x, double &y) const = 0; 59 virtual void setX(double x) = 0; 60 virtual void setY(double y) = 0; 61 virtual void setPosition(double x, double y) = 0; 62 virtual void setVisible(bool visible) = 0; 63 virtual bool isDown(const std::vector<int> &buttons) const = 0; 64 virtual bool isVisible() const = 0; 65 virtual void setGrabbed(bool grab) = 0; 66 virtual bool isGrabbed() const = 0; 67 virtual bool setRelativeMode(bool relative) = 0; 68 virtual bool getRelativeMode() const = 0; 69 70 }; // Mouse 71 72 } // mouse 73 } // love 74 75 #endif // LOVE_MOUSE_MOUSE_H 76