Index: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc	(revision 12274)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.cc	(revision 12275)
@@ -49,5 +49,6 @@
     for(auto event: clickEvents)
     {
-        for(auto wantedButton:event.buttons){
+        for(auto wantedButton:event.buttons)
+        {
             if(wantedButton == button && ray.intersects(Ogre::Sphere(event.position,event.radius)).first)
                 event.onClickedFunction(button);
@@ -66,5 +67,6 @@
     Ogre::Viewport *vp = GraphicsManager::getInstance().getViewport();
     Ogre::Ray ray = cam->getCameraToViewportRay(mousePos.x/((float)vp->getActualWidth()),mousePos.y/((float)vp->getActualHeight()));
-    for(auto event:scrollEvents){
+    for(auto event:scrollEvents)
+    {
         if(!event.considerPosition || ray.intersects(Ogre::Sphere(event.position,event.radius)).first)
             event.onScrolledFunction(abs,rel,mousePos);
@@ -88,11 +90,77 @@
 }
 
-//todo
-void MouseAPI::changePositionOfClickableObject(ClickableObjectID id,const Vector3& position){}
-void MouseAPI::changePositionOfScrollableElement(ScrollableElementID id,const Vector3& position){}
-void MouseAPI::changeRadiusOfClickableObject(ClickableObjectID id,float radius){}
-void MouseAPI::changeRadiusOfScrollableElement(ScrollableElementID id,float radius){}
-void MouseAPI::deleteClickableObject(ClickableObjectID){}
-void MouseAPI::deleteScrollableElement(ScrollableElementID){}
+
+bool MouseAPI::changePositionOfClickableObject(ClickableObjectID id,const Vector3& position)
+{
+    for(auto event:clickEvents)
+    {
+        if(event.id == id)
+        {
+            event.position = position;
+            return true;
+        }
+    }
+    return false;
+}
+bool MouseAPI::changePositionOfScrollableElement(ScrollableElementID id,const Vector3& position)
+{
+    for(auto event:scrollEvents)
+    {
+        if(event.id == id)
+        {
+            event.position = position;
+            return true;
+        }
+    }
+    return false;
+}
+bool MouseAPI::changeRadiusOfClickableObject(ClickableObjectID id,float radius)
+{
+    for(auto event:clickEvents)
+    {
+        if(event.id == id)
+        {
+            event.radius = radius;
+            return true;
+        }
+    }
+    return false;
+}
+bool MouseAPI::changeRadiusOfScrollableElement(ScrollableElementID id,float radius)
+{
+    for(auto event:scrollEvents)
+    {
+        if(event.id == id)
+        {
+            event.radius = radius;
+            return true;
+        }
+    }
+    return false;
+}
+bool MouseAPI::deleteClickableObject(ClickableObjectID id)
+{
+    for(auto eventIt = clickEvents.begin();eventIt != clickEvents.end();eventIt++ )
+    {
+        if(eventIt->id == id)
+        {
+            clickEvents.erase(eventIt);
+            return true;
+        }
+    }
+    return false;
+}
+bool MouseAPI::deleteScrollableElement(ScrollableElementID id)
+{
+    for(auto eventIt = scrollEvents.begin();eventIt != scrollEvents.end();eventIt++ )
+    {
+        if(eventIt->id == id)
+        {
+            scrollEvents.erase(eventIt);
+            return true;
+        }
+    }
+    return false;
+}
 
 }
Index: code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h
===================================================================
--- code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h	(revision 12274)
+++ code/branches/MouseAPI_FS19/src/modules/MouseAPI/mouseapi.h	(revision 12275)
@@ -30,5 +30,4 @@
     struct clickableElement
     {
-        //static ClickableObjectID lastClID;
         ClickableObjectID id;
         Vector3 position;
@@ -36,11 +35,10 @@
         std::list<MouseButtonCode::ByEnum> buttons;
         std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction;
-        clickableElement(ClickableObjectID id,const Vector3& position,float radius,const std::list<MouseButtonCode::ByEnum>& buttons,std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction):position(position),
-            radius(radius), buttons(buttons), onClickedFunction(onClickedFunction),id(id){}
+        clickableElement(ClickableObjectID id,const Vector3& position,float radius,const std::list<MouseButtonCode::ByEnum>& buttons,std::function<void(MouseButtonCode::ByEnum button)> onClickedFunction):id(id),position(position),
+            radius(radius), buttons(buttons), onClickedFunction(onClickedFunction){}
     };
 
     struct scrollElement
     {
-        static ScrollableElementID lastScID;
         ScrollableElementID id;
         bool considerPosition;
@@ -48,8 +46,8 @@
         float radius;
         std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction;
-        scrollElement(ScrollableElementID id,std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction):considerPosition(false),
-            onScrolledFunction(onScrolledFunction),id(id){}
-        scrollElement(ScrollableElementID id,const Vector3& position, float radius, std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction):considerPosition(true),
-            position(position), radius(radius), onScrolledFunction(onScrolledFunction),id(id){}
+        scrollElement(ScrollableElementID id,std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction):id(id),considerPosition(false),
+            onScrolledFunction(onScrolledFunction){}
+        scrollElement(ScrollableElementID id,const Vector3& position, float radius, std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction):id(id),considerPosition(true),
+            position(position), radius(radius), onScrolledFunction(onScrolledFunction){}
     };
 
@@ -78,10 +76,11 @@
     ScrollableElementID addScrollElement(std::function<void(int abs,int rel,const IntVector2& mousePos)> onScrolledFunction);
 
-    void changePositionOfClickableObject(ClickableObjectID id,const Vector3& position);
-    void changePositionOfScrollableElement(ScrollableElementID id,const Vector3& position);
-    void changeRadiusOfClickableObject(ClickableObjectID id,float radius);
-    void changeRadiusOfScrollableElement(ScrollableElementID id,float radius);
-    void deleteClickableObject(ClickableObjectID);
-    void deleteScrollableElement(ScrollableElementID);
+    //true: success; false: element not found
+    bool changePositionOfClickableObject(ClickableObjectID id,const Vector3& position);
+    bool changePositionOfScrollableElement(ScrollableElementID id,const Vector3& position);
+    bool changeRadiusOfClickableObject(ClickableObjectID id,float radius);
+    bool changeRadiusOfScrollableElement(ScrollableElementID id,float radius);
+    bool deleteClickableObject(ClickableObjectID id);
+    bool deleteScrollableElement(ScrollableElementID id);
 
     void activate();
