aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/GraphicObjects
diff options
context:
space:
mode:
Diffstat (limited to 'src/GraphicObjects')
-rw-r--r--src/GraphicObjects/GraphicObject.cs23
-rw-r--r--src/GraphicObjects/Group.cs16
-rw-r--r--src/GraphicObjects/PrivateContainer.cs8
-rw-r--r--src/GraphicObjects/Scroller.cs4
4 files changed, 26 insertions, 25 deletions
diff --git a/src/GraphicObjects/GraphicObject.cs b/src/GraphicObjects/GraphicObject.cs
index e1972669..d74442d7 100644
--- a/src/GraphicObjects/GraphicObject.cs
+++ b/src/GraphicObjects/GraphicObject.cs
@@ -661,20 +661,23 @@ namespace go
{
return Visible ? ScreenCoordinates(Slot).ContainsOrIsEqual (m) : false;
}
- internal virtual void checkHoverWidget(Point m)
+ internal virtual void checkHoverWidget(MouseMoveEventArgs e)
{
-
- }
- public virtual void onMouseMove(object sender, MouseMoveEventArgs e)
- {
- //ILayoutable w = sender as ILayoutable;
-
if (TopContainer.hoverWidget != this) {
TopContainer.hoverWidget = this;
- onMouseEnter (sender, e);
+ onMouseEnter (this, e);
}
-
- MouseMove.Raise (this, e);
+
+ this.onMouseMove (this, e);
+ }
+ public virtual void onMouseMove(object sender, MouseMoveEventArgs e)
+ {
+ //bubble event to the top
+ GraphicObject p = Parent as GraphicObject;
+ if (p != null)
+ p.onMouseMove(sender,e);
+
+ MouseMove.Raise (sender, e);
}
public virtual void onMouseButtonUp(object sender, MouseButtonEventArgs e){
if (MouseIsIn (e.Position))
diff --git a/src/GraphicObjects/Group.cs b/src/GraphicObjects/Group.cs
index e2d64c89..41294231 100644
--- a/src/GraphicObjects/Group.cs
+++ b/src/GraphicObjects/Group.cs
@@ -215,17 +215,17 @@ namespace go
#region Mouse handling
- public override void onMouseMove (object sender, OpenTK.Input.MouseMoveEventArgs e)
+ internal override void checkHoverWidget (OpenTK.Input.MouseMoveEventArgs e)
{
foreach (GraphicObject g in Children)
- {
+ {
if (g.MouseIsIn(e.Position))
- {
- g.onMouseMove (sender, e);
- return;
- }
- }
- base.onMouseMove (sender, e);
+ {
+ g.checkHoverWidget (e);
+ return;
+ }
+ }
+ base.checkHoverWidget (e);
}
#endregion
diff --git a/src/GraphicObjects/PrivateContainer.cs b/src/GraphicObjects/PrivateContainer.cs
index f863fae8..01502bd4 100644
--- a/src/GraphicObjects/PrivateContainer.cs
+++ b/src/GraphicObjects/PrivateContainer.cs
@@ -146,14 +146,12 @@ namespace go
#endregion
#region Mouse handling
- public override void onMouseMove (object sender, MouseMoveEventArgs e)
+ internal override void checkHoverWidget (MouseMoveEventArgs e)
{
- base.onMouseMove (sender, e);
-
+ base.checkHoverWidget (e);
if (child != null)
if (child.MouseIsIn (e.Position))
- child.onMouseMove (sender, e);
-
+ child.checkHoverWidget (e);
}
#endregion
}
diff --git a/src/GraphicObjects/Scroller.cs b/src/GraphicObjects/Scroller.cs
index a413da94..8996c464 100644
--- a/src/GraphicObjects/Scroller.cs
+++ b/src/GraphicObjects/Scroller.cs
@@ -118,10 +118,10 @@ namespace go
{
return Visible ? base.ScreenCoordinates(Slot).ContainsOrIsEqual (m) : false;
}
- public override void onMouseMove (object sender, MouseMoveEventArgs e)
+ internal override void checkHoverWidget (MouseMoveEventArgs e)
{
Point m = e.Position - new Point ((int)ScrollX, (int)ScrollY);
- base.onMouseMove (sender, new MouseMoveEventArgs(m.X,m.Y,e.XDelta,e.YDelta));
+ base.checkHoverWidget (new MouseMoveEventArgs(m.X,m.Y,e.XDelta,e.YDelta));
}
public override void onMouseWheel (object sender, MouseWheelEventArgs e)
{