Exemple #1
0
        void SetMouseMode(MouseModeEvent e)
        {
            if (e.Mode == null)
            {
                Raise(new LogEvent(LogEvent.Level.Info,
                                   $"MouseMode: {MouseMode} (Stack: {string.Join(", ", _mouseModeStack)})"));
                return;
            }

            _mouseModes.TryGetValue(e.Mode.Value, out var activeMode);
            if (MouseMode == e.Mode && activeMode?.IsActive == true)
            {
                return;
            }

            foreach (var mode in _mouseModes.Values)
            {
                mode.IsActive = false;
            }

            if (activeMode != null)
            {
                activeMode.IsActive = true;
            }

            MouseMode = e.Mode.Value;
        }
Exemple #2
0
        public InputManager()
        {
            On <SetInputModeEvent>(SetInputMode);
            On <MouseModeEvent>(SetMouseMode);
            On <PushMouseModeEvent>(e =>
            {
                var inputManager = Resolve <IInputManager>();
                _mouseModeStack.Push(inputManager.MouseMode);
                var setEvent = new MouseModeEvent(e.Mode);
                SetMouseMode(setEvent);
                Raise(setEvent);
            });
            On <PopMouseModeEvent>(e =>
            {
                if (_mouseModeStack.Count == 0)
                {
                    return;
                }

                var setEvent = new MouseModeEvent(_mouseModeStack.Pop());
                SetMouseMode(setEvent);
                Raise(setEvent);
            });
            On <PushInputModeEvent>(e =>
            {
                var inputManager = Resolve <IInputManager>();
                _inputModeStack.Push(inputManager.InputMode);
                var setEvent = new SetInputModeEvent(e.Mode);
                SetInputMode(setEvent);
                Raise(setEvent);
            });
            On <PopInputModeEvent>(e =>
            {
                if (_inputModeStack.Count == 0)
                {
                    return;
                }

                var setEvent = new SetInputModeEvent(_inputModeStack.Pop());
                SetInputMode(setEvent);
                Raise(setEvent);
            });
        }
Exemple #3
0
        public InputManager()
        {
            On <InputModeEvent>(SetInputMode);
            On <MouseModeEvent>(SetMouseMode);
            On <PushMouseModeEvent>(e =>
            {
                _mouseModeStack.Push(_mouseMode);
                var setEvent = new MouseModeEvent(e.Mode);
                SetMouseMode(setEvent);
                Raise(setEvent);
            });
            On <PopMouseModeEvent>(e =>
            {
                if (_mouseModeStack.Count == 0)
                {
                    return;
                }

                var setEvent = new MouseModeEvent(_mouseModeStack.Pop());
                SetMouseMode(setEvent);
                Raise(setEvent);
            });
            On <PushInputModeEvent>(e =>
            {
                _inputModeStack.Push(_inputMode);
                var setEvent = new InputModeEvent(e.Mode);
                SetInputMode(setEvent);
                Raise(setEvent);
            });
            On <PopInputModeEvent>(e =>
            {
                if (_inputModeStack.Count == 0)
                {
                    return;
                }

                var setEvent = new InputModeEvent(_inputModeStack.Pop());
                SetInputMode(setEvent);
                Raise(setEvent);
            });
        }