public UIDragHandler(UIElement mouseTarget, UIElement dragControl) { UpdateHook = new UpdateHookDelegate(Update); MouseTarget = mouseTarget; DragControl = dragControl; MouseEvent = mouseTarget.ListenForMouse(mouseTarget.GetBounds(), new UIMouseEvent(DragMouseEvents)); }
/** * Mouse utilities */ public UIMouseEventRef ListenForMouse(Rectangle region, UIMouseEvent callback) { var newRegion = new UIMouseEventRef() { Callback = callback, Region = region, Element = this }; if (m_MouseRefs == null) { m_MouseRefs = new List <UIMouseEventRef>(); } m_MouseRefs.Add(newRegion); return(newRegion); }
/// <summary> /// Listen for mouse events on the whole image /// </summary> /// <param name="callback"></param> public void ListenForMouse(UIMouseEvent callback) { m_MouseEvent = ListenForMouse(new Rectangle(0, 0, (int)Width, (int)Height), callback); }
public UIClickableLabel() { ClickHandler = ListenForMouse(new Rectangle(0, 0, 10, 10), new UIMouseEvent(OnMouseEvent)); }
public void HandleMouseEvents(UpdateState state) { var mouseBtnDown = state.MouseState.LeftButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed; var mouseDif = mouseBtnDown != LastMouseDownState; LastMouseDownState = mouseBtnDown; if (mouseDif) { if (mouseBtnDown) { if (LastMouseDown != null) { /** We already have mouse down on an object **/ return; } if (LastMouseOver != null) { LastMouseDown = LastMouseOver; LastMouseDown.Callback(UIMouseEventType.MouseDown, state); } } else { if (LastMouseDown != null) { LastMouseDown.Callback(UIMouseEventType.MouseUp, state); LastMouseDown = null; } } } if (state.MouseEvents.Count > 0) { var topMost = state.MouseEvents.OrderByDescending(x => x.Element.Depth).First(); /** Same element **/ if (LastMouseOver == topMost) { return; } if (LastMouseOver != null) { LastMouseOver.Callback(UIMouseEventType.MouseOut, state); } topMost.Callback(UIMouseEventType.MouseOver, state); LastMouseOver = topMost; } else { if (LastMouseOver != null) { LastMouseOver.Callback(UIMouseEventType.MouseOut, state); LastMouseOver = null; } } }
/** * Mouse utilities */ public UIMouseEventRef ListenForMouse(Rectangle region, UIMouseEvent callback) { var newRegion = new UIMouseEventRef() { Callback = callback, Region = region, Element = this }; if (m_MouseRefs == null) { m_MouseRefs = new List<UIMouseEventRef>(); } m_MouseRefs.Add(newRegion); return newRegion; }
/// <summary> /// /// </summary> /// <param name="Texture"></param> public UIButton(Texture2D Texture) { this.Texture = Texture; ClickHandler = ListenForMouse(new Rectangle(0, 0, m_Width, m_Texture.Height), new UIMouseEvent(OnMouseEvent)); }
public UITextBox() { this.SetBackgroundTexture( GetTexture((ulong)TSOClient.FileIDs.UIFileIDs.dialog_textboxbackground), 13, 13, 13, 13); TextMargin = new Rectangle(8, 3, 8, 5); m_MouseEvent = ListenForMouse(new Rectangle(0, 0, 10, 10), new UIMouseEvent(OnMouseEvent)); }
public UIBlocker() { MouseEvt = this.ListenForMouse(new Microsoft.Xna.Framework.Rectangle(0, 0, 10, 10), OnMouse); SetSize(GlobalSettings.Default.GraphicsWidth, GlobalSettings.Default.GraphicsHeight); }
public UISlider() { m_ThumbEvent = this.ListenForMouse(new Rectangle(0, 0, 0, 0), new UIMouseEvent(OnThumbClick)); }
public UITextEdit() { TextStyle = TextStyle.DefaultLabel; //this.SetBackgroundTexture( // GetTexture((ulong)TSOClient.FileIDs.UIFileIDs.dialog_textboxbackground), // 13, 13, 13, 13); //TextMargin = new Rectangle(8, 3, 8, 5); m_MouseEvent = ListenForMouse(new Rectangle(0, 0, 10, 10), new UIMouseEvent(OnMouseEvent)); }
public void HandleMouseEvents(TSOClient.Code.UI.Model.UpdateState state) { var mouseBtnDown = state.MouseState.LeftButton == Microsoft.Xna.Framework.Input.ButtonState.Pressed; var mouseDif = mouseBtnDown != LastMouseDownState; LastMouseDownState = mouseBtnDown; if (mouseDif) { if (mouseBtnDown) { if (LastMouseDown != null) { /** We already have mouse down on an object **/ return; } if (LastMouseOver != null) { LastMouseDown = LastMouseOver; LastMouseDown.Callback(UIMouseEventType.MouseDown, state); } } else { if (LastMouseDown != null) { LastMouseDown.Callback(UIMouseEventType.MouseUp, state); LastMouseDown = null; } } } if (state.MouseEvents.Count > 0) { var topMost = state.MouseEvents.OrderByDescending(x => x.Element.Depth).First(); /** Same element **/ if (LastMouseOver == topMost) { return; } if (LastMouseOver != null) { LastMouseOver.Callback(UIMouseEventType.MouseOut, state); } topMost.Callback(UIMouseEventType.MouseOver, state); LastMouseOver = topMost; } else { if (LastMouseOver != null) { LastMouseOver.Callback(UIMouseEventType.MouseOut, state); LastMouseOver = null; } } }