public bool OnLayerMouseMove(MouseEventArgs e) { // TODO: Needs to use persistent markers for mouse pos in each layer // try each layer from top to bottom foreach (ILayer layer in layers) { if (layer.Enabled && layer is SimpleGUILayer) { SimpleGUILayer guiLayer = (SimpleGUILayer)layer; GUILayerItem item; if ((item = guiLayer.TraceCollisionPointer(e.Location)) != null && item.Visible && item.Enabled) { if (item.WantMouseOver && layerMouseOverItem != item) { item.OnMouseEnter(); if (layerMouseOverItem != null && layerMouseOverItem.WantMouseOver) { layerMouseOverItem.OnMouseLeave(); } layerMouseOverItem = item; } return(true); } } } if (layerMouseOverItem != null) { layerMouseOverItem.OnMouseLeave(); layerMouseOverItem = null; return(true); } return(false); }
public bool OnLayerMouseUp(MouseEventArgs e) { // find new item (that does not want mouseover) // try each layer from top to bottom foreach (ILayer layer in layers) { if (layer.Enabled && layer is SimpleGUILayer) { SimpleGUILayer guiLayer = (SimpleGUILayer)layer; GUILayerItem item; if ((item = guiLayer.TraceCollisionPointer(e.Location)) != null && item.Visible && item.Enabled) { if (item == layerMouseDownItem) { layerMouseDownItem.OnMouseUp(e); } else if (layerMouseDownItem != null) { layerMouseDownItem.OnMouseUp(null); } layerMouseDownItem = null; return(true); } } } if (layerMouseOverItem != null) { layerMouseOverItem.OnMouseUp(e); } return(false); }
public bool OnLayerMouseDown(MouseEventArgs e) { if (layerMouseOverItem != null) { // use existing found item if (layerMouseOverItem.WantMouseClicks) { layerMouseOverItem.OnMouseDown(e); } layerMouseDownItem = layerMouseOverItem; return(true); } else { // find new item (that does not want mouseover) // try each layer from top to bottom foreach (ILayer layer in layers) { if (layer.Enabled && layer is SimpleGUILayer) { SimpleGUILayer guiLayer = (SimpleGUILayer)layer; GUILayerItem item; if ((item = guiLayer.TraceCollisionPointer(e.Location)) != null && item.Visible /* && item.Enabled*/) { if (item.WantMouseClicks) { item.OnMouseDown(e); layerMouseDownItem = item; } return(true); } } } } return(false); }