public virtual void MouseStatusChanged(EMouseStatus e, Vector2 pos) { if (OnMouse != null) { OnMouse(this, e, pos); } }
public int HandleMouseEvent(Event e) { // Console.WriteLine(); // Console.WriteLine("SGUI-IM: Handling mouse event " + e); SGroup lastWindowDragging = _WindowDragging; EventType type = e.type; EMouseStatus status = EMouseStatus.Outside; switch (type) { case EventType.MouseUp: status = EMouseStatus.Up; break; case EventType.MouseDown: status = EMouseStatus.Down; break; case EventType.MouseDrag: status = EMouseStatus.Drag; break; } Vector2 pos = e.mousePosition; int handled = HandleMouseEventIn(e, null); if (handled != -1) { if (type != EventType.MouseMove) { _RegisteredNextElement = false; for (int i = 0; i < _OPs.Count; i++) { _RecreateOperation(i, handled); } _ComponentElements[handled]?.SetMouseStatus(_Secret, status, pos); } else { for (int i = 0; i < _Elements.Count; i++) { SElement elem = _Elements[i]; if (elem == null) { continue; } // TODO replace GetFirstComponentID with possible future HasComponentID elem.SetMouseStatus(_Secret, GetFirstComponentID(elem) == handled ? EMouseStatus.Inside : EMouseStatus.Outside, pos); } } } if (lastWindowDragging == null && _WindowDragging != null) { IList <SElement> children = _WindowDragging.Parent?.Children ?? _WindowDragging.Root.Children; children.Remove(_WindowDragging); children.Insert(children.Count, _WindowDragging); } // Console.WriteLine("SGUI-IM: Mouse event handled: " + handled); // Console.WriteLine(); return(handled); }
public override void MouseStatusChanged(EMouseStatus e, Vector2 pos) { base.MouseStatusChanged(e, pos); if (e == EMouseStatus.Down) { OnClick?.Invoke(this); } }
public override void MouseStatusChanged(EMouseStatus e, Vector2 pos) { base.MouseStatusChanged(e, pos); if (e == EMouseStatus.Down) { Focus(); } }
public SElement() { IsHovered = true; WasHovered = true; MouseStatus = EMouseStatus.Inside; MouseStatusPrev = EMouseStatus.Inside; Children.ListChanged += HandleChange; Modifiers.ListChanged += HandleModifierChange; if (SGUIRoot.Main != null) { SGUIRoot.Main.AdoptedChildren.Add(this); Foreground = SGUIRoot.Main.Foreground; Background = SGUIRoot.Main.Background; } }
public override void MouseStatusChanged(EMouseStatus e, Vector2 pos) { base.MouseStatusChanged(e, pos); if (e == EMouseStatus.Down) { IsClicked = true; } if (e == EMouseStatus.Up && IsClicked) { if (OnClick != null) { OnClick(this); } IsClicked = false; } if (e == EMouseStatus.Outside) { IsClicked = false; } }
public virtual void SetMouseStatus(int secret, EMouseStatus e, Vector2 pos) { Backend.VerifySecret(secret); if (MouseStatus != e) { if (e != EMouseStatus.Inside && e != EMouseStatus.Outside) { MouseStatusChanged(e, pos); } else { bool inside = e == EMouseStatus.Inside; if (IsHovered != inside) { MouseStatusChanged(e, pos); } WasHovered = IsHovered; IsHovered = inside; } } MouseStatusPrev = MouseStatus; MouseStatus = e; }
public virtual void MouseStatusChanged(EMouseStatus e, Vector2 pos) { OnMouse?.Invoke(this, e, pos); }