- Timestamp:
- Apr 4, 2019, 3:28:50 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h
r12253 r12271 20 20 { 21 21 22 class MouseAPI : public InputHandler 22 typedef uint ClickableObjectID; 23 typedef uint ScrollableElementID; 24 25 class MouseAPI : public InputHandler, public Singleton<MouseAPI> 23 26 { 24 27 friend class Singleton<MouseAPI>; 25 28 private: 26 29 27 30 struct clickableElement 28 31 { 32 //static ClickableObjectID lastClID; 33 ClickableObjectID id; 29 34 Vector3 position; 30 35 float radius; 31 36 std::list<MouseButtonCode::ByEnum> buttons; 32 37 std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction; 33 clickableElement( const Vector3& position,float radius,const std::list<MouseButtonCode::ByEnum>& buttons,std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction):position(position),34 radius(radius), buttons(buttons), onClickedFunction(onClickedFunction) {}38 clickableElement(ClickableObjectID id,const Vector3& position,float radius,const std::list<MouseButtonCode::ByEnum>& buttons,std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction):position(position), 39 radius(radius), buttons(buttons), onClickedFunction(onClickedFunction),id(id){} 35 40 }; 36 41 37 42 struct scrollElement 38 43 { 44 static ScrollableElementID lastScID; 45 ScrollableElementID id; 39 46 bool considerPosition; 40 47 Vector3 position; 41 48 float radius; 42 void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos);43 scrollElement( void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos)):considerPosition(false),44 onScrolledFunction(onScrolledFunction) {}45 scrollElement( const Vector3& position, float radius, void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos)):considerPosition(true),46 position(position), radius(radius), onScrolledFunction(onScrolledFunction) {}49 std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction; 50 scrollElement(ScrollableElementID id,std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction):considerPosition(false), 51 onScrolledFunction(onScrolledFunction),id(id){} 52 scrollElement(ScrollableElementID id,const Vector3& position, float radius, std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction):considerPosition(true), 53 position(position), radius(radius), onScrolledFunction(onScrolledFunction),id(id){} 47 54 }; 48 55 49 56 static MouseAPI* singletonPtr_s; 50 57 std::list<clickableElement> clickEvents; 51 58 std::list<scrollElement> scrollEvents; … … 53 60 IntVector2 mousePos; 54 61 InputState* state; 62 bool active = false; 63 55 64 56 65 … … 65 74 virtual void mouseScrolled (int abs, int rel) override; 66 75 67 voidaddClickableObject(const Vector3& position,float radius,const std::list<MouseButtonCode::ByEnum>& buttons,std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction);68 void addScrollElement(const Vector3& position,float radius,void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos));69 void addScrollElement(void (*onScrolledFunction)(int abs,int rel,const IntVector2& mousePos));76 ClickableObjectID addClickableObject(const Vector3& position,float radius,const std::list<MouseButtonCode::ByEnum>& buttons,std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction); 77 ScrollableElementID addScrollElement(const Vector3& position,float radius,std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction); 78 ScrollableElementID addScrollElement(std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction); 70 79 71 void changeCamera(Camera& camera); 80 void changePositionOfClickableObject(ClickableObjectID id,const Vector3& position); 81 void changePositionOfScrollableElement(ScrollableElementID id,const Vector3& position); 82 void changeRadiusOfClickableObject(ClickableObjectID id,float radius); 83 void changeRadiusOfScrollableElement(ScrollableElementID id,float radius); 84 void deleteClickableObject(ClickableObjectID); 85 void deleteScrollableElement(ScrollableElementID); 72 86 73 87 void activate(); 88 static bool isActive(){return singletonPtr_s != nullptr && getInstance().active;} 74 89 void deactivate(); 75 90 };
Note: See TracChangeset
for help on using the changeset viewer.