예제 #1
0
        public void Update()
        {
            int clicks = clickCount;
            if (btnArea.Contains(Mouse.GetState().X, Mouse.GetState().Y))
            {
                switch(state)
                {
                    case Button_State.BUTTON_UP:
                        if (Mouse.GetState().LeftButton == ButtonState.Pressed)
                        {
                            state = Button_State.BUTTON_DOWN;
                        }
                        else
                        {
                            state = Button_State.BUTTON_HOVER;
                        }
                        break;
                    case Button_State.BUTTON_HOVER:
                        if (Mouse.GetState().LeftButton == ButtonState.Pressed)
                        {
                            state = Button_State.BUTTON_DOWN;
                        }
                        break;
                    case Button_State.BUTTON_DOWN:
                        if (Mouse.GetState().LeftButton == ButtonState.Released)
                        {
                            state = Button_State.BUTTON_HOVER;
                            clickCount++;
                        }
                        break;
                }
            }//if mouseover
            else
            {
                if (state == Button_State.BUTTON_HOVER || state == Button_State.BUTTON_DOWN)
                {
                    state = Button_State.BUTTON_UP;
                }
            }

            if (hotkey != Keys.None)
            {
                if (Keyboard.GetState().IsKeyDown(hotkey) && state != Button_State.BUTTON_DOWN)
                {
                    KeyPress = true;
                    state = Button_State.BUTTON_DOWN;
                    clickCount++;
                    KeyPress = false;
                }
                /*else if(Keyboard.GetState().IsKeyUp(hotkey) && KeyPress)
                {
                    state = Button_State.BUTTON_UP;
                    clickCount++;
                    KeyPress = false;
                }*/
            }

            if (clickCount > clicks)
            {
                clicked = true;
            }
        }
예제 #2
0
        public void Update()
        {
            int clicks = clickCount;

            if (btnArea.Contains(Mouse.GetState().X, Mouse.GetState().Y))
            {
                switch (state)
                {
                case Button_State.BUTTON_UP:
                    if (Mouse.GetState().LeftButton == ButtonState.Pressed)
                    {
                        state = Button_State.BUTTON_DOWN;
                    }
                    else
                    {
                        state = Button_State.BUTTON_HOVER;
                    }
                    break;

                case Button_State.BUTTON_HOVER:
                    if (Mouse.GetState().LeftButton == ButtonState.Pressed)
                    {
                        state = Button_State.BUTTON_DOWN;
                    }
                    break;

                case Button_State.BUTTON_DOWN:
                    if (Mouse.GetState().LeftButton == ButtonState.Released)
                    {
                        state = Button_State.BUTTON_HOVER;
                        clickCount++;
                    }
                    break;
                }
            }//if mouseover
            else
            {
                if (state == Button_State.BUTTON_HOVER || state == Button_State.BUTTON_DOWN)
                {
                    state = Button_State.BUTTON_UP;
                }
            }

            if (hotkey != Keys.None)
            {
                if (Keyboard.GetState().IsKeyDown(hotkey) && state != Button_State.BUTTON_DOWN)
                {
                    KeyPress = true;
                    state    = Button_State.BUTTON_DOWN;
                    clickCount++;
                    KeyPress = false;
                }

                /*else if(Keyboard.GetState().IsKeyUp(hotkey) && KeyPress)
                 * {
                 *  state = Button_State.BUTTON_UP;
                 *  clickCount++;
                 *  KeyPress = false;
                 * }*/
            }

            if (clickCount > clicks)
            {
                clicked = true;
            }
        }