예제 #1
0
        public EditorViewModel( IPluginConfigAccessor scrollConfig, IPluginConfigAccessor keyboardTriggerConfig, IKeyboardDriver keyboardHook, IPointerDeviceDriver pointerHook )
        {
            _scrollConfig = scrollConfig;
            _keyboardTriggerConfig = keyboardTriggerConfig;

            _keyboardHook = keyboardHook;
            _pointerHook = pointerHook;
            _currentIndexStrategy = KeyScrollerPlugin.AvailableStrategies.IndexOf(_scrollConfig.User.GetOrSet( "Strategy", "BasicScrollingStrategy" ));
            this.DisplayName = R.ScrollEditor;
        }
예제 #2
0
        internal Radar( IPointerDeviceDriver pdd )
            : this()
        {
            ViewModel = new RadarViewModel();
            ViewModel.SetCircleColor( Colors.Black );
            ViewModel.SetArrowColor( Colors.Black );
            ViewModel.Opacity = 1;
            ViewModel.RadarSize = 100;
            SnakeMode = false;
            DataContext = ViewModel;
            _mouseDriver = pdd;
            Left = pdd.CurrentPointerXLocation - ViewModel.WindowSize / 2;
            Top = pdd.CurrentPointerYLocation - ViewModel.WindowSize / 2;
            RotationSpeed = 10;
            TranslationSpeed = 1;

            CurrentStep = RadarStep.Paused;

            _timerRotate = new DispatcherTimer( DispatcherPriority.Send );
            _timerRotate.Interval = new TimeSpan( 1000 );
            _timerRotate.Tick += ProcessRotation;

            _timerTranslate = new DispatcherTimer( DispatcherPriority.Normal );
            _timerTranslate.Interval = new TimeSpan( 1000 );
            _timerTranslate.Tick += ProcessTranslation;

            _mouseDriver.PointerMove += OnMouseLocationChanged;
            ViewModel.PropertyChanged += ( o, e ) =>
            {
                if( e.PropertyName == "WindowSize" )
                {
                    Width = ViewModel.WindowSize;
                    Height = ViewModel.WindowSize;
                }
            };
        }