private void GLSurface_GLMouseDown(object sender, GLMouseEventArgs e) { try { MouseManager.BeginDrag(e.Location); if (e.Button.HasFlag(MouseButtons.Left)) { int tx = (int)Math.Round(-OffsetX + e.X + GLSurface.FieldW / 2 - 0.5); int ty = (int)Math.Round(-OffsetY + e.Y + GLSurface.FieldH / 2 - 0.5); if (GLSurface.GetTile(tx, ty) == null) { GLSurface.PlaceTile(TileComboBox.SelectedIndex <= 0 ? TileName : (string)TileComboBox.SelectedItem, tx, ty); MouseState = MouseStatus.Placing; } else { GLSurface.PlaceTile(null, tx, ty); MouseState = MouseStatus.Removing; } } } catch (Exception ex) { MessageBox.Show(this, ex.ToString(), "Error: Can not handle MouseDown event.", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
void fingerEnded(Finger obj) { if (obj.Id == currentFingerId) { stopTrackingFinger(); if (ForwardTouchesAsMouse) { inputHandler.injectMoved(obj.PixelX, obj.PixelY); switch (mouseInjectionMode) { case MouseStatus.Released: if (systemTimer.getCurrentTime() - fingerDownTime < RightClickDeltaTime) { inputHandler.injectButtonDown(MouseButtonCode.MB_BUTTON0); inputHandler.injectButtonUp(MouseButtonCode.MB_BUTTON0); } else { inputHandler.injectButtonDown(MouseButtonCode.MB_BUTTON1); inputHandler.injectButtonUp(MouseButtonCode.MB_BUTTON1); } break; case MouseStatus.Left: inputHandler.injectButtonUp(MouseButtonCode.MB_BUTTON0); break; case MouseStatus.Right: inputHandler.injectButtonUp(MouseButtonCode.MB_BUTTON1); break; } } mouseInjectionMode = MouseStatus.Released; } }
protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); MouseFlag = 0; int xx, yy; switch (this.mode) { case KnobType.MatrixA: LastMousePoint.X = e.X; LastMousePoint.Y = e.Y; yy = ((e.Y - rCol.Y) / 15) + 1; xx = ((e.X - rCol.X) / 15) + 1; if (yy == 2) { xx += 4; } knobFrameIndex = xx; break; case KnobType.MatrixB: LastMousePoint.X = e.X; LastMousePoint.Y = e.Y; xx = ((e.X - rCol.X) / 15); if ((xx > 0) && (xx < length)) { knobFrameIndex = xx; } break; } }
private void UpdateDetect() { if (!_game.gameSkill.IsSelecting()) { _state = STATE.IDLE; return; } if (_mouseControl.state == MouseControl.STATE.DRAGGING || _mouseControl.state == MouseControl.STATE.EASING) { _state = STATE.IDLE; return; } if (_mouseStatus.GetMouseJustUp()) { Vector3 mousePosition = _game.mouseStatus.GetMouseJustUpPos(); bool cast = MouseStatus.UnprojectMousePosition(out _worldPosition, mousePosition); if (cast) { CreateAnimation(mousePosition); //TODO create target area CreateTargetArea(); _game.gameSkill.Use(); _state = STATE.ANIMATION; return; } } }
public HIDMouseInput(MouseStatus mouseStatus, int xPos, int yPos, int time) { Status = mouseStatus; PosX = xPos; PosY = yPos; Time = time; }
/// <summary> /// 返回多个UI检查值 /// </summary> /// <param name="uiPanels"></param> /// <param name="mouseStatus"></param> /// <returns></returns> public static bool IsPointerOverUI(this List <Transform> uiPanels, MouseStatus mouseStatus = MouseStatus.DownAndWheel) { switch (mouseStatus) { case MouseStatus.DownAndWheel: if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1) || Input.GetAxis("Mouse ScrollWheel") != 0) { return(IsPointerOverUI(uiPanels)); } return(false); case MouseStatus.Down: if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1)) { return(IsPointerOverUI(uiPanels)); } return(false); case MouseStatus.Up: if (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1)) { return(IsPointerOverUI(uiPanels)); } return(false); case MouseStatus.UpAndWheel: if (Input.GetMouseButtonUp(0) || Input.GetMouseButtonUp(1) || Input.GetAxis("Mouse ScrollWheel") != 0) { return(IsPointerOverUI(uiPanels)); } return(false); } return(false); }
protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); if (_mouseStatus == MouseStatus.UseBeforeOrderArea) { if (_recUseB4OrderTip.HasValue) { this.Invalidate(new Rectangle(_recUseB4Order.Value.Left, _recUseB4Order.Value.Top, _recUseB4OrderTip.Value.Right - _recUseB4Order.Value.Left + 2, _recUseB4OrderTip.Value.Bottom - _recUseB4Order.Value.Top + 2)); } else { this.Invalidate(_recUseB4Order.Value); } } if (_mouseStatus == MouseStatus.OrderAnalyseArea) { if (_recOrdersTip.HasValue) { this.Invalidate(new Rectangle(_recOrders.Value.Left, _recOrders.Value.Top, _recOrdersTip.Value.Right - _recOrders.Value.Left + 2, _recOrdersTip.Value.Bottom - _recOrders.Value.Top + 2)); } else { this.Invalidate(_recOrders.Value); } } _mouseStatus = MouseStatus.None; }
private void EmitMouseEvents(Kernel32.MOUSE_EVENT_RECORD mr) { // full state is available on every mouse event var curState = new MouseStatus( mr.dwMousePosition.X, mr.dwMousePosition.Y, GetButtonState(mr.dwButtonState, Constants.mouse_lmb, MouseButton.Left) & GetButtonState(mr.dwButtonState, Constants.mouse_rmb, MouseButton.Right) & GetButtonState(mr.dwButtonState, Constants.mouse_mmb, MouseButton.Left) ); OnMouseChange(curState); var flags = mr.dwEventFlags; switch (flags) { case 0: // single click case 2: // double click case 1: // mouse motion break; case 4: // mouse wheel var n = (mr.dwButtonState >> 16); OnMouseWheel(n > 0 ? MouseWheelDirection.Up : MouseWheelDirection.Down, curState); break; default: break; } }
// Use this for initialization void Start() { _mat = new Material("Shader \"Lines/Colored Blended\" {" + "SubShader { Tags { \"RenderType\"=\"Transparent\" } Pass { " + " Blend SrcAlpha OneMinusSrcAlpha " + " ZWrite On ZTest LEqual Cull Off Fog { Mode Off } " + " BindChannels {" + " Bind \"vertex\", vertex Bind \"color\", color }" + "} } }" ); _phyMat = Resources.Load("PhysicsMaterial/Draw2D") as PhysicsMaterial2D; _degRad = Mathf.PI / 180; _mouseStatus = GetComponentInChildren <MouseStatus> (); _myTrans = this.transform; _parentTrans = _myTrans.parent; _drawContainerGO = new GameObject(); _drawContainerGO.name = Constants.DRAW_CONTAINER_GO_NAME; _drawContainerGO.layer = Constants.LAYER_GAME; _drawContainerGO.transform.parent = _myTrans; _drawContainerGO.transform.localPosition = Vector3.zero; _drawContainerGO.transform.localScale = Vector3.one; }
protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); mouseStatus = MouseStatus.Down; mousePoint = e.Location; MPointToValue(); Invalidate(); }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); MouseFlag = MouseStatus.Default; if (this.img != null) { drawBg(); } }
public override void UserInteractionDuringCreation( ) { _properties.Range = (MouseStatus.WorldPosition - _properties.Position).Length( ); if (MouseStatus.IsNewLeftMouseButtonClick( )) { PreviewEndedReadyForCreation(this, EventArgs.Empty); } }
private void Start() { roomGen = GetComponent <RoomGen>(); tileGen = GetComponent <TileGen>(); pathGen = GetComponent <PathGen>(); mouseStatus = GetComponent <MouseStatus>(); rooms = new List <Room>(); }
public void Draw(SpriteBatch spriteBatch) { switch (state) { case MouseStatus.Normal: spriteBatch.Draw(buttons[textureID], bounds, Color.White); break; case MouseStatus.Released: spriteBatch.Draw(buttons[textureID], bounds, Color.DarkGray); int measureString = (int)fonts[1].MeasureString(tooltip.ToUpper()).X; if (tooltip != null) { if (bounds.X + 5 >= gameWidth - bounds.X) { spriteBatch.Draw(buttons[1], new Rectangle(bounds.X + buttons[1].Width - measureString, bounds.Y - 27, measureString + 20, 20), Color.Black); spriteBatch.DrawString(fonts[1], tooltip.ToUpper(), new Vector2(bounds.X + buttons[1].Width + 5 - measureString, bounds.Y - 25), Color.White); } else { if (bounds.X >= 100) { spriteBatch.Draw(buttons[1], new Rectangle(bounds.X + 7, bounds.Y - 13, measureString + 25, 20), Color.Black); spriteBatch.DrawString(fonts[1], tooltip.ToUpper(), new Vector2(bounds.X + 13, bounds.Y - 9), Color.White); } else { spriteBatch.Draw(buttons[1], new Rectangle(bounds.X - 5, bounds.Y - 27, measureString + 25, 20), Color.Black); spriteBatch.DrawString(fonts[1], tooltip.ToUpper(), new Vector2(bounds.X + 5, bounds.Y - 25), Color.White); } } } break; case MouseStatus.Clicked: if (input.currentMouseState.LeftButton != input.previousMouseState.LeftButton) { if (clicked != null) { clicked(this.type); state = MouseStatus.Normal; } } spriteBatch.Draw(buttons[textureID], bounds, Color.Red); break; default: spriteBatch.Draw(buttons[textureID], bounds, Color.Black); break; } }
protected override void OnMouseLeave(EventArgs e) { base.OnMouseLeave(e); if (!_showExcelButton) { return; //显示按钮为大前提 } _ms = MouseStatus.None; this.Invalidate(_rePaintRectangle); }
private void buttonCancel_Click(object sender, EventArgs e) { buttonAddPatch.Visible = true; buttonCancel.Visible = false; currentStatus = MouseStatus.selecting; selectedPatch = null; groupBoxPatchInfo.Visible = false; startPosition = currentPosition = new Point(-1, -1); panelPatchContainer.Refresh(); }
public static void Update(GameWindow window) { MouseState state = Mouse.GetState(); float x = ((float)CurrentX / window.ClientSize.Width - 0.5f) * Editor.screenWidth; float y = ((float)CurrentY / window.ClientSize.Height - 0.5f) * Editor.screenHeight * -1; previous = current; current = new MouseStatus(x, y, state); }
public List <string> FormatColumns;//这里是需要格式化的列名称集合。如果为空则所有的格式化。 public DataGridViewEx() { InitializeComponent(); _containColReadOnly = false; _containRowHead = false; _showExcelButton = true;//显示excel数据操作的按钮 _ms = MouseStatus.None; FormatColumns = null; CalcRectangle(); }
public override void UserInteractionDuringCreation() { SetPosition(MouseStatus.WorldPosition); if (MouseStatus.IsNewLeftMouseButtonClick()) { PreviewEndedReadyForCreation(this, EventArgs.Empty); } WhenUpdatedByUi(); }
public void Update( ) { IEnumerable <ItemEditor> allSelectedEditors = selectedEditors( ).ToList( ); Vector2 newDistance = MouseStatus.WorldPosition - allSelectedEditors.First().ItemProperties.Position; float factor = newDistance.Length( ) / _canvas.GrabPoint.Length( ); int i = 0; allSelectedEditors.Where(si => si.CanScale).ForEach( thingToScale => { //todo: reimplement texture //if (selitem is TextureItem) //{ // _mainForm.SetToolStripStatusLabel1("Hold down [X] or [Y] to limit scaling to the according dimension."); //} Vector2 newscale = _canvas.ScalesBeforeUserInteraction[i]; if (!KeyboardStatus.IsKeyDown(Keys.Y)) { newscale.X = _canvas.ScalesBeforeUserInteraction[i].X * (((factor - 1.0f) * 0.5f) + 1.0f); } if (!KeyboardStatus.IsKeyDown(Keys.X)) { newscale.Y = _canvas.ScalesBeforeUserInteraction[i].Y * (((factor - 1.0f) * 0.5f) + 1.0f); } thingToScale.Scale = newscale; if (KeyboardStatus.IsKeyDown(Keys.LeftControl)) { Vector2 scale; scale.X = (float)Math.Round(thingToScale.Scale.X * 10) / 10; scale.Y = (float)Math.Round(thingToScale.Scale.Y * 10) / 10; thingToScale.Scale = scale; } i++; }); IoC.Model.NotifyChanged(allSelectedEditors); if (MouseStatus.IsNewRightMouseButtonRelease( ) || KeyboardStatus.IsNewKeyRelease(Keys.D3)) { _canvas.SetModeToIdle( ); ObjectFactory.GetInstance <IMemento>().EndCommand( ); } return; }
public override void UserInteractionDuringCreation( ) { _properties.Width = MouseStatus.WorldPosition.X - _properties.Position.X; _properties.Height = MouseStatus.WorldPosition.Y - _properties.Position.Y; if (MouseStatus.IsNewLeftMouseButtonClick( )) { PreviewEndedReadyForCreation(this, EventArgs.Empty); } WhenUpdatedByUi( ); }
void handleInputWhenAddingAnEntity( ) { //mef: this might need to go back to the main Update method if (Constants.Instance.SnapToGrid || KeyboardStatus.IsKeyDown(Keys.G)) { MouseStatus.WorldPosition = SnapToGrid(MouseStatus.WorldPosition); } if (MouseStatus.IsNewRightMouseButtonClick( ) || KeyboardStatus.IsNewKeyPress(Keys.D3)) { //mef: delegate to current primitive plugin if (_entityCreation.StartedCreating) { _entityCreation.StartedCreating = false; _entityCreation.ClearCurrentEditor( ); //mef: implement //switch (_currentPrimitiveName) //{ // case PrimitiveType.Rectangle: // //_mainForm.SetToolStripStatusLabel1(Resources.Rectangle_Entered); // break; // case PrimitiveType.Circle: // //_mainForm.SetToolStripStatusLabel1(Resources.Circle_Entered); // break; // case PrimitiveType.Path: // //_mainForm.SetToolStripStatusLabel1(Resources.Path_Entered); // break; //} } else { destroyPrimitiveBrush( ); _entityCreation.StartedCreating = false; } } if (_entityCreation.StartedCreating) { _entityCreation.CurrentEditor.UserInteractionDuringCreation( ); return; } if (MouseStatus.IsNewLeftMouseButtonClick( ) || KeyboardStatus.IsNewKeyPress(Keys.D3)) { if (_entityCreation.StartedCreating == false) { _entityCreation.StartedCreating = true; _entityCreation.CurrentEditor = buildPrimitiveEditorReadyForDesigning(_entityCreation.CreationProperties); } } }
protected override void OnMouseEnter(EventArgs e) { base.OnMouseEnter(e); if (!_showExcelButton) { return; //显示按钮为大前提 } if (!MouseStatus.HasMouse.HasFlag(_ms)) { _ms = MouseStatus.HasMouse; } this.Invalidate(_rePaintRectangle); }
public void SetMouseStatus(MouseStatus status, Point point) { this.mouseStatus = status; if (status == MouseStatus.Up) { this.mouseOffsetPosition = new Point(0, 0); } else { point = this.PointToScreen(point); this.mouseOffsetPosition = new Point(point.X - this.Left, point.Y - this.Top); } }
private void buttonAddPatch_Click(object sender, EventArgs e) { currentStatus = MouseStatus.drawing; buttonAddPatch.Visible = false; buttonCancel.Visible = true; groupBoxPatchInfo.Visible = true; labelX.Text = "N/A"; labelY.Text = "N/A"; labelLength.Text = "N/A"; textBoxUniverse.Text = "1"; textBoxStartChannel.Text = "1"; }
public void SetMouseStatus(MouseStatus status,Point point) { this.mouseStatus = status; if (status == MouseStatus.Up) { this.mouseOffsetPosition = new Point(0, 0); } else { point = this.PointToScreen(point); this.mouseOffsetPosition = new Point(point.X - this.Left, point.Y - this.Top); } }
void handleInput(GameTime gameTime) { KeyboardStatus.Update(Keyboard.GetState( )); MouseStatus.Update(Mouse.GetState( ), Camera); handleCameraControls(gameTime); if (_inputActionLookup.ContainsKey(_userActionInEditor)) { _inputActionLookup[_userActionInEditor]( ); } }
override public void Init() { base.Init(); float length_sum = UIHelper.FindChildInObject(this.gameObject, "mian_Bg_sp").GetComponent <UIWidget>().localSize.x; float center_sum = UIHelper.FindChildInObject(this.gameObject, "MainUIContainer").GetComponent <UIWidget>().localSize.x; limit_length = (length_sum - center_sum) / 2.0f; _mouseStatus = new MouseStatus(); _state = STATE.IDLE; touch_Panel = UIHelper.FindChildInObject(this.gameObject, "Touch_Panel"); }
public Button(Texture2D idleTexture, SpriteFont font) { _textures = new Texture2D[3]; _textPosition = new Vector2(); _position = Vector2.Zero; _textures[0] = idleTexture; _buttonState = MouseStatus.Idle; this.Font = font; this.Text = ""; this.ForeColor = Color.Black; this.Visible = true; this.Scale = new Vector2(1, 1); }
public void Update( ) { int i = 0; IEnumerable <ItemEditor> allSelectedEditors = selectedEditors( ).ToList( ); foreach (ItemEditor eachSelectedEditor in allSelectedEditors) { _newPosition = _canvas.PositionsBeforeUserInteraction[i] + MouseStatus.WorldPosition - _canvas.GrabPoint; if (Constants.Instance.SnapToGrid || KeyboardStatus.IsKeyDown(Keys.G)) { _newPosition = _canvas.SnapToGrid(_newPosition); } //_editor.SnapPoint.Visible = false ; eachSelectedEditor.SetPosition(_newPosition); i++; } IoC.Model.NotifyChanged(allSelectedEditors); if (MouseStatus.IsNewLeftMouseButtonReleased( ) || KeyboardStatus.IsNewKeyRelease(Keys.D1)) { foreach (ItemEditor eachSelectedEditor in allSelectedEditors) { eachSelectedEditor.OnMouseButtonUp(MouseStatus.WorldPosition); } bool isMoving = _canvas.CurrentUserAction == UserActionInEditor.MovingItems; _canvas.SetModeToIdle( ); var samePoint = MouseStatus.WorldPosition == _canvas.GrabPoint; var memento = ObjectFactory.GetInstance <IMemento>(); if (samePoint && isMoving) { memento.AbortCommand( ); } else { memento.EndCommand( ); } } }
public void Update() { input.Update(); state = MouseStatus.Normal; bool isMouseOver = bounds.Contains((int)input.Position.X, (int)input.Position.Y); if (isMouseOver && !input.LeftClick) { state = MouseStatus.Released; } else if (!isMouseOver && !input.LeftClick) { state = MouseStatus.Normal; } else if (isMouseOver && input.LeftClick) { state = MouseStatus.Clicked; } if (input.NewLeftClick) { if (isMouseOver) { state = MouseStatus.Clicked; } } if (input.ReleaseLeftClick) { if (isMouseOver) { state = MouseStatus.Released; } } if (input.IsKeyPressed(key)) { if (clicked != null) { clicked(this.type); } } }
void HandleFingerStarted(Finger obj) { if (currentFingerId == int.MinValue && enabled) { fingerDownTime = systemTimer.getCurrentTime(); var finger = touches.Fingers[0]; currentFingerId = finger.Id; touches.FingerEnded += fingerEnded; touches.FingerMoved += HandleFingerMoved; touches.FingersCanceled += HandleFingersCanceled; captureClickZone.reset(); if (ForwardTouchesAsMouse) { inputHandler.injectMoved(finger.PixelX, finger.PixelY); mouseInjectionMode = MouseStatus.Released; } } }
public Textbox(Texture2D texture, SpriteFont font, GraphicsDevice graphicsDevice, int characterLimit) { this.Font = font; this.CharacterLimit = characterLimit; _text = ""; _cursor = new Texture2D(graphicsDevice, 1, (int)this.Font.MeasureString("|").Y / 2); this.Position = Vector2.Zero; _textPosition = Vector2.Zero; _texture = texture; this.Visible = true; _mouseStatus = MouseStatus.Idle; Color[] cursorData = new Color[_cursor.Width * _cursor.Height]; for (int i = 0; i < cursorData.Length; ++i) cursorData[i] = Color.White; _cursor.SetData(cursorData); }
public void Update(GameTime gameTime) { if (!this.Visible) return; var mouseState = Mouse.GetState(); if (_area.Contains(new Point(mouseState.X, mouseState.Y))) { if (mouseState.LeftButton == ButtonState.Pressed && _mouseStatus != MouseStatus.MouseDown) { _mouseStatus = MouseStatus.MouseDown; } else if (_mouseStatus == MouseStatus.MouseDown) { this.Active = true; _mouseStatus = MouseStatus.Hover; } else { _mouseStatus = MouseStatus.Hover; } } else { _mouseStatus = MouseStatus.Idle; } if (this.Active) { if (_nextInputCheckTime < gameTime.TotalGameTime.TotalMilliseconds) { this.CheckInput(); _nextInputCheckTime = (int)gameTime.TotalGameTime.TotalMilliseconds + 50; } if (_nextCursorBlinkTime < gameTime.TotalGameTime.TotalMilliseconds) { _cursorVisible = !_cursorVisible; _nextCursorBlinkTime = (int)gameTime.TotalGameTime.TotalMilliseconds + 500; } } }
public void Update() { input.Update(); state = MouseStatus.Normal; if (bounds == new Rectangle(0, 0, 0, 0)) { bounds = new Rectangle((int)Position.X, (int)Position.Y, TextureDay.Width, TextureDay.Height); } bool isMouseOver = bounds.Contains((int)input.Position.X, (int)input.Position.Y); if (isMouseOver && !input.LeftClick) { state = MouseStatus.Released; } else if (!isMouseOver && !input.LeftClick) { state = MouseStatus.Normal; } else if (isMouseOver && input.LeftClick) { state = MouseStatus.Clicked; } if (input.NewLeftClick) { if (isMouseOver) { state = MouseStatus.Clicked; } } if (input.ReleaseLeftClick) { if (isMouseOver) { state = MouseStatus.Released; } } if (input.IsKeyPressed(key)) { if (clicked != null) { clicked(this.type); } } }
public void Update() { input.Update(); state = MouseStatus.Normal; bool isMouseOver = bounds.Contains((int)input.Position.X, (int)input.Position.Y); if (isMouseOver && !input.LeftClick) { state = MouseStatus.Released; } else if (!isMouseOver && !input.LeftClick) state = MouseStatus.Normal; else if (isMouseOver && input.LeftClick) state = MouseStatus.Clicked; if (input.NewLeftClick) { if (isMouseOver) { state = MouseStatus.Clicked; } } if (input.ReleaseLeftClick) { if (isMouseOver) { state = MouseStatus.Released; } } if (input.IsKeyPressed(key)) { if (clicked != null) { clicked(this.type); } } }
protected override void OnMouseDown(MouseEventArgs e) { base.OnMouseDown(e); MouseFlag = MouseStatus.Down; switch (this.mode) { case KnobType.Knob: LastMousePoint = new Point(e.X, e.Y); break; case KnobType.MatrixA: if ((e.X > rCol.X) && (e.Y > rCol.Y)) { OnMouseMove(e); } break; } }
protected override void OnMouseUp(MouseEventArgs e) { base.OnMouseUp(e); MouseFlag = 0; int xx, yy; switch (this.mode) { case KnobType.MatrixA: LastMousePoint.X = e.X; LastMousePoint.Y = e.Y; yy = ((e.Y - rCol.Y) / 15) + 1; xx = ((e.X - rCol.X) / 15) + 1; if (yy == 2) xx += 4; knobFrameIndex = xx; break; case KnobType.MatrixB: LastMousePoint.X = e.X; LastMousePoint.Y = e.Y; xx = ((e.X - rCol.X) / 15); if ((xx > 0) && (xx < length)) knobFrameIndex = xx; break; } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); MouseFlag = MouseStatus.Default; if (this.img != null) drawBg(); }
public new void Draw(SpriteBatch spriteBatch) { switch (state) { case MouseStatus.Normal: spriteBatch.Draw(TextureDay, bounds, Color.White); break; case MouseStatus.Released: spriteBatch.Draw(TextureDay, bounds, Color.DarkGray); break; case MouseStatus.Clicked: if (input.currentMouseState.LeftButton != input.previousMouseState.LeftButton) { if (clicked != null) { clicked(this.type); state = MouseStatus.Normal; } } spriteBatch.Draw(TextureDay, bounds, Color.Red); break; default: spriteBatch.Draw(TextureDay, bounds, Color.Black); break; } }
public void Load(ContentManager content, XmlNode node) { _textures = new Texture2D[3]; _textPosition = new Vector2(); _position = Vector2.Zero; _buttonState = MouseStatus.Idle; this.Font = content.Load<SpriteFont>("menufont"); this.Text = node.ChildNodes[2].InnerText ?? ""; this.IdleTexture = ContentManagerUtilities.LoadTexture2D(content, node.ChildNodes[5].ChildNodes[1].InnerText); this.HoverTexture = ContentManagerUtilities.LoadTexture2D(content, node.ChildNodes[5].ChildNodes[0].InnerText); this.ForeColor = new Color().FromString(node.ChildNodes[3].InnerText); this.Visible = bool.Parse(node.ChildNodes[4].InnerText); this.Scale = new Vector2().FromString(node.ChildNodes[1].InnerText); this.Position = new Vector2().FromString(node.ChildNodes[0].InnerText); }
public void Update(GameTime gameTime) { if (!this.Visible) return; var mouseState = Mouse.GetState(); if (_buttonArea.Contains(new Point(mouseState.X, mouseState.Y))) { if (mouseState.LeftButton == ButtonState.Pressed && _buttonState != MouseStatus.MouseDown) { _buttonState = MouseStatus.MouseDown; this.Active = true; return; } else if (mouseState.LeftButton == ButtonState.Released && _buttonState == MouseStatus.MouseDown) { if (this.ButtonClicked != null) this.ButtonClicked.Invoke(this, new EventArgs()); _buttonState = MouseStatus.Hover; return; } else if (_buttonState != MouseStatus.MouseDown) _buttonState = MouseStatus.Hover; } else { _buttonState = MouseStatus.Idle; } }