Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }
Ejemplo n.º 3
0
        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;
            }
        }
Ejemplo n.º 4
0
    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;
            }
        }
    }
Ejemplo n.º 5
0
 public HIDMouseInput(MouseStatus mouseStatus, int xPos, int yPos, int time)
 {
     Status = mouseStatus;
     PosX   = xPos;
     PosY   = yPos;
     Time   = time;
 }
Ejemplo n.º 6
0
    /// <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);
    }
Ejemplo n.º 7
0
 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;
 }
Ejemplo n.º 8
0
        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;
            }
        }
Ejemplo n.º 9
0
    // 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;
    }
Ejemplo n.º 10
0
 protected override void OnMouseDown(MouseEventArgs e)
 {
     base.OnMouseDown(e);
     mouseStatus = MouseStatus.Down;
     mousePoint  = e.Location;
     MPointToValue();
     Invalidate();
 }
Ejemplo n.º 11
0
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     MouseFlag = MouseStatus.Default;
     if (this.img != null)
     {
         drawBg();
     }
 }
Ejemplo n.º 12
0
        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>();
    }
Ejemplo n.º 14
0
        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;
            }
        }
Ejemplo n.º 15
0
 protected override void OnMouseLeave(EventArgs e)
 {
     base.OnMouseLeave(e);
     if (!_showExcelButton)
     {
         return;                   //显示按钮为大前提
     }
     _ms = MouseStatus.None;
     this.Invalidate(_rePaintRectangle);
 }
Ejemplo n.º 16
0
 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();
 }
Ejemplo n.º 17
0
        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);
        }
Ejemplo n.º 18
0
        public List <string> FormatColumns;//这里是需要格式化的列名称集合。如果为空则所有的格式化。
        public DataGridViewEx()
        {
            InitializeComponent();
            _containColReadOnly = false;
            _containRowHead     = false;
            _showExcelButton    = true;//显示excel数据操作的按钮
            _ms = MouseStatus.None;

            FormatColumns = null;
            CalcRectangle();
        }
Ejemplo n.º 19
0
        public override void UserInteractionDuringCreation()
        {
            SetPosition(MouseStatus.WorldPosition);

            if (MouseStatus.IsNewLeftMouseButtonClick())
            {
                PreviewEndedReadyForCreation(this, EventArgs.Empty);
            }

            WhenUpdatedByUi();
        }
Ejemplo n.º 20
0
        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;
        }
Ejemplo n.º 21
0
        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(  );
        }
Ejemplo n.º 22
0
        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);
                }
            }
        }
Ejemplo n.º 23
0
 protected override void OnMouseEnter(EventArgs e)
 {
     base.OnMouseEnter(e);
     if (!_showExcelButton)
     {
         return;                   //显示按钮为大前提
     }
     if (!MouseStatus.HasMouse.HasFlag(_ms))
     {
         _ms = MouseStatus.HasMouse;
     }
     this.Invalidate(_rePaintRectangle);
 }
Ejemplo n.º 24
0
 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);
     }
 }
Ejemplo n.º 25
0
        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";
        }
Ejemplo n.º 26
0
 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);
     }
 }
Ejemplo n.º 27
0
        void handleInput(GameTime gameTime)
        {
            KeyboardStatus.Update(Keyboard.GetState( ));

            MouseStatus.Update(Mouse.GetState( ), Camera);

            handleCameraControls(gameTime);


            if (_inputActionLookup.ContainsKey(_userActionInEditor))
            {
                _inputActionLookup[_userActionInEditor]( );
            }
        }
Ejemplo n.º 28
0
    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");
    }
Ejemplo n.º 29
0
        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( );
                }
            }
        }
Ejemplo n.º 31
0
        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);
                }
            }
        }
Ejemplo n.º 32
0
 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;
         }
     }
 }
Ejemplo n.º 33
0
        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);
        }
Ejemplo n.º 34
0
        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;
                }
            }
        }
Ejemplo n.º 35
0
        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);
                }
            }
        }
Ejemplo n.º 36
0
        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);
                }
            }
        }
Ejemplo n.º 37
0
 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;
     }
 }
Ejemplo n.º 38
0
 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;
     }
 }
Ejemplo n.º 39
0
 protected override void OnLoad(EventArgs e)
 {
     base.OnLoad(e);
     MouseFlag = MouseStatus.Default;
     if (this.img != null) drawBg();
 }
Ejemplo n.º 40
0
        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;
            }
        }
Ejemplo n.º 41
0
        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);
        }
Ejemplo n.º 42
0
        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;
            }
        }
Ejemplo n.º 43
0
        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;
            }
        }