void EnableEditor() { TimeSpan dueTime = TimeSpan.FromMilliseconds( 250 ); _textArea = new TextualContextAreaViewModel( PredictionTextAreaService, CommandTextualContextService ); var propertyChangedEvents = Observable.FromEvent<PropertyChangedEventHandler, PropertyChangedEventArgs>( h => new PropertyChangedEventHandler( ( sender, e ) => h( e ) ), h => _textArea.PropertyChanged += h, h => _textArea.PropertyChanged -= h ); var textualContextChanged = propertyChangedEvents .Where( x => x.PropertyName == "TextualContext" ) .Throttle( dueTime ); var caretIndexChanged = propertyChangedEvents .Where( x => x.PropertyName == "CaretIndex" ) .Throttle( dueTime ); var isFocusedChanged = propertyChangedEvents.Where( x => x.PropertyName == "IsFocused" ); _observersChain = textualContextChanged .Merge( caretIndexChanged ) .Merge( isFocusedChanged ) .Subscribe( OnTextAreaPropertyChanged ); _window = new TextualContextAreaWindow( _textArea ) { Width = 600, Height = 200 }; _window.Show(); //Feature.PredictionContextFactory.PredictionZoneCreated += OnZoneCreated; Feature.AutonomousKeyboardPredictionFactory.PredictionZoneCreated += OnAutonomousZoneCreated; CreateSendKeyInSendZone( Context.Keyboards[Feature.AutonomousKeyboardPredictionFactory.PredictionKeyboardAndZoneName] ); EnableWindowManagerSubscription(); }
void EnableEditor() { _textArea = new TextualContextAreaViewModel( TextualContextService, PredictionTextAreaService, CommandTextualContextService ); _textArea.PropertyChanged += OnTextAreaPropertyChanged; _window = new TextualContextAreaWindow( _textArea ) { Width = 600, Height = 200 }; _window.Show(); Feature.PredictionContextFactory.PredictionZoneCreated += OnZoneCreated; Context.CurrentKeyboard.Zones.ZoneDestroyed += OnZoneDestroyed; var zone = Context.CurrentKeyboard.Zones[Feature.PredictionContextFactory.PredictionZoneName]; CreateSendContextKeyInPredictionZone( zone ); }