internal void SelectAllTokensAndText()
        {
            var dispatcherQueue = DispatcherQueue.GetForCurrentThread();

            _ = dispatcherQueue.EnqueueAsync(
                () =>
            {
                this.SelectAllSafe();

                // need to synchronize the select all and the focus behavior on the text box
                // because there is no way to identify that the focus has been set from this point
                // to avoid instantly clearing the selection of tokens
                PauseTokenClearOnFocus = true;

                foreach (var item in Items)
                {
                    if (item is ITokenStringContainer)
                    {
                        // grab any selected text
                        var pretoken = ContainerFromItem(item) as TokenizingTextBoxItem;
                        pretoken._autoSuggestTextBox.SelectionStart  = 0;
                        pretoken._autoSuggestTextBox.SelectionLength = pretoken._autoSuggestTextBox.Text.Length;
                    }
                }

                (ContainerFromIndex(Items.Count - 1) as TokenizingTextBoxItem).Focus(FocusState.Programmatic);
            }, DispatcherQueuePriority.Normal);
        }
示例#2
0
 public PointerCursolAutoHideBehavior()
 {
     _AutoHideTimer             = DispatcherQueue.GetForCurrentThread().CreateTimer();
     _AutoHideTimer.Tick       += AutoHideTimer_Tick;
     _AutoHideTimer.IsRepeating = false;
     _DefaultCursor             = Window.Current.CoreWindow.PointerCursor;
 }
示例#3
0
                public InertiaProcessor(Manipulation owner, Point position, ManipulationDelta cumulative, ManipulationVelocities velocities)
                {
                    _owner       = owner;
                    _position0   = position;
                    _cumulative0 = cumulative;
                    _velocities0 = velocities;

                    _isTranslateInertiaXEnabled = _owner._isTranslateXEnabled &&
                                                  _owner._settings.HasFlag(Input.GestureSettings.ManipulationTranslateInertia) &&
                                                  Abs(velocities.Linear.X) > _owner._inertiaThresholds.TranslateX;
                    _isTranslateInertiaYEnabled = _owner._isTranslateYEnabled &&
                                                  _owner._settings.HasFlag(Input.GestureSettings.ManipulationTranslateInertia) &&
                                                  Abs(velocities.Linear.Y) > _owner._inertiaThresholds.TranslateY;
                    _isRotateInertiaEnabled = _owner._isRotateEnabled &&
                                              _owner._settings.HasFlag(Input.GestureSettings.ManipulationRotateInertia) &&
                                              Abs(velocities.Angular) > _owner._inertiaThresholds.Rotate;
                    _isScaleInertiaEnabled = _owner._isScaleEnabled &&
                                             _owner._settings.HasFlag(Input.GestureSettings.ManipulationScaleInertia) &&
                                             Abs(velocities.Expansion) > _owner._inertiaThresholds.Expansion;

                    global::System.Diagnostics.Debug.Assert(_isTranslateInertiaXEnabled || _isTranslateInertiaYEnabled || _isRotateInertiaEnabled || _isScaleInertiaEnabled);

                    // For better experience, as soon inertia kicked-in on an axis, we bypass threshold on the second axis.
                    _isTranslateInertiaXEnabled |= _isTranslateInertiaYEnabled && _owner._isTranslateXEnabled;
                    _isTranslateInertiaYEnabled |= _isTranslateInertiaXEnabled && _owner._isTranslateYEnabled;

                    _timer             = DispatcherQueue.GetForCurrentThread().CreateTimer();
                    _timer.Interval    = TimeSpan.FromMilliseconds(1000d / _framesPerSecond);
                    _timer.IsRepeating = true;
                    _timer.Tick       += (snd, e) => Process(snd.LastTickElapsed.TotalMilliseconds);
                }
示例#4
0
        /// <summary>
        /// Called when a link needs to be handled
        /// </summary>
        internal async void LinkHandled(string url, bool isHyperlink)
        {
            // Links that are nested within superscript elements cause the Click event to fire multiple times.
            // e.g. this markdown "[^bot](http://www.reddit.com/r/youtubefactsbot/wiki/index)"
            // Therefore we detect and ignore multiple clicks.
            if (multiClickDetectionTriggered)
            {
                return;
            }

            multiClickDetectionTriggered = true;
            var dispatcherQueue = DispatcherQueue.GetForCurrentThread();
            await dispatcherQueue.EnqueueAsync(() => multiClickDetectionTriggered = false, DispatcherQueuePriority.High);

            // Get the hyperlink URL.
            if (url == null)
            {
                return;
            }

            // Fire off the event.
            var eventArgs = new LinkClickedEventArgs(url);

            if (isHyperlink)
            {
                LinkClicked?.Invoke(this, eventArgs);
            }
            else
            {
                ImageClicked?.Invoke(this, eventArgs);
            }
        }
        public HohoemaListingPageViewModelBase(ILogger logger)
        {
            NowLoading = new ReactiveProperty <bool>(true)
                         .AddTo(_CompositeDisposable);

            HasItem = new ReactiveProperty <bool>(true)
                      .AddTo(_CompositeDisposable);

            HasError = new ReactiveProperty <bool>(false)
                       .AddTo(_CompositeDisposable);

            MaxItemsCount = new ReactiveProperty <int>(0)
                            .AddTo(_CompositeDisposable);

            LoadedItemsCount = new ReactiveProperty <int>(0)
                               .AddTo(_CompositeDisposable);

            NowRefreshable = new ReactiveProperty <bool>(false)
                             .AddTo(_CompositeDisposable);

            // 読み込み中または選択中はソートを変更できない
            CanChangeSort = Observable.CombineLatest(
                NowLoading
                )
                            .Select(x => !x.Any(y => y))
                            .ToReactiveProperty()
                            .AddTo(_CompositeDisposable);

            _dispatcherQueue = DispatcherQueue.GetForCurrentThread();
            _logger          = logger;
        }
        private void AssociatedObject_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
		{
            _parent = this.AssociatedObject.Parent as FrameworkElement;

            var currentDispatcherQueue = DispatcherQueue.GetForCurrentThread();
            _disposable = Observable.FromEventPattern<SizeChangedEventHandler, SizeChangedEventArgs>(
                h => _parent.SizeChanged += h,
                h => _parent.SizeChanged -= h
                )
                .Where(_=> !double.IsNaN(_parent.ActualWidth) && _parent.ActualWidth != this.AssociatedObject?.Width)
                .Do(_ =>
                {
                    if (this.AssociatedObject != null)
                    {
                        this.AssociatedObject.Width = _parent.ActualWidth;
                    }
                })
                .Throttle(TimeSpan.FromSeconds(1))
                .Subscribe(_ => 
                {
                    currentDispatcherQueue.TryEnqueue(async () => 
                    {
                        await ResetSizing();
                    });
                });

            _parent.Loaded += Parent_Loaded;
            this.AssociatedObject.NavigationCompleted += AssociatedObject_NavigationCompleted;
        }
示例#7
0
        public PreferencesViewModel()
        {
            ChangePageCommand = new AsyncRelayCommand(ChangePage);
            RemovePageCommand = new RelayCommand(RemovePage);
            AddPageCommand    = new RelayCommand <string>(async(path) => await AddPage(path));

            DefaultLanguages = App.AppSettings.DefaultLanguages;
            Terminals        = App.TerminalController.Model.Terminals;

            DateTimeOffset sampleDate1 = DateTime.Now;
            DateTimeOffset sampleDate2 = new DateTime(sampleDate1.Year - 5, 12, 31, 14, 30, 0);
            var            styles      = new TimeStyle[] { TimeStyle.Application, TimeStyle.System, TimeStyle.Universal };

            DateFormats = styles.Select(style => new DateFormatItem(style, sampleDate1, sampleDate2)).ToList();

            dispatcherQueue = DispatcherQueue.GetForCurrentThread();

            EditTerminalApplicationsCommand      = new AsyncRelayCommand(LaunchTerminalsConfigFile);
            OpenFilesAtStartupCommand            = new AsyncRelayCommand(OpenFilesAtStartup);
            App.TerminalController.ModelChanged += ReloadTerminals;

            if (UserSettingsService.PreferencesSettingsService.TabsOnStartupList != null)
            {
                PagesOnStartupList = new ObservableCollection <PageOnStartupViewModel>(UserSettingsService.PreferencesSettingsService.TabsOnStartupList.Select((p) => new PageOnStartupViewModel(p)));
            }
            else
            {
                PagesOnStartupList = new ObservableCollection <PageOnStartupViewModel>();
            }

            PagesOnStartupList.CollectionChanged += PagesOnStartupList_CollectionChanged;

            _ = InitStartupSettingsRecentFoldersFlyout();
            _ = DetectOpenFilesAtStartup();
        }
示例#8
0
        public VideoPlayerPage()
        {
            this.InitializeComponent();

            _UIdispatcher = Dispatcher;

            _mediaPlayer        = Microsoft.Toolkit.Mvvm.DependencyInjection.Ioc.Default.GetService <MediaPlayer>();
            _soundVolumeManager = Microsoft.Toolkit.Mvvm.DependencyInjection.Ioc.Default.GetService <MediaPlayerSoundVolumeManager>();
            VolumeSlider.Value  = _soundVolumeManager.Volume;

            _dispatcherQueue = DispatcherQueue.GetForCurrentThread();


            //SeekBarSlider.ManipulationMode = ManipulationModes.TranslateX;
            //SeekBarSlider.ManipulationStarting += SeekBarSlider_ManipulationStarting;
            //SeekBarSlider.ManipulationStarted += SeekBarSlider_ManipulationStarted;

            //SeekBarSlider.FocusEngaged += SeekBarSlider_FocusEngaged;
            //SeekBarSlider.FocusDisengaged += SeekBarSlider_FocusDisengaged;

            CommentTextBox.GotFocus  += CommentTextBox_GotFocus;
            CommentTextBox.LostFocus += CommentTextBox_LostFocus;

            MediaControl.SizeChanged += MediaControl_SizeChanged;

            Loaded   += VideoPlayerPage_Loaded;
            Unloaded += VideoPlayerPage_Unloaded;

            DataContext = _vm = Ioc.Default.GetRequiredService <VideoPlayerPageViewModel>();
        }
 public MixMediaPlayerService(IUserSettings userSettings)
 {
     _maxActive       = userSettings?.Get <int>(UserSettingsConstants.MaxActive) ?? 3;
     _dispatcherQueue = DispatcherQueue.GetForCurrentThread();
     _smtc            = SystemMediaTransportControls.GetForCurrentView();
     InitializeSmtc();
 }
示例#10
0
        public async Task Test_DispatcherQueueHelper_Action_Ok_NonUIThread()
        {
            var taskSource = new TaskCompletionSource <object>();
            await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(
                CoreDispatcherPriority.Normal, async() =>
            {
                try
                {
                    var dispatcherQueue = DispatcherQueue.GetForCurrentThread();
                    await Task.Run(async() =>
                    {
                        await DispatcherQueueHelper.ExecuteOnUIThreadAsync(dispatcherQueue, () =>
                        {
                            var textBlock = new TextBlock {
                                Text = nameof(Test_DispatcherQueueHelper_Action_Ok_NonUIThread)
                            };

                            Assert.AreEqual(textBlock.Text, nameof(Test_DispatcherQueueHelper_Action_Ok_NonUIThread));

                            taskSource.SetResult(null);
                        });
                    });
                }
                catch (Exception e)
                {
                    taskSource.SetException(e);
                }
            });

            await taskSource.Task;
        }
        private void Start()
        {
            _currentIndex = 0;
            var currentItem = GetCurrent();

            if (_currentElement != null)
            {
                _currentElement.DataContext = currentItem;
            }

            if (_nextElement != null)
            {
                _nextElement.DataContext = GetNext();
            }

            if (currentItem == null)
            {
                _currentIndex = -1;
                _timer?.Stop();
                return;
            }

            if (_timer == null)
            {
                _timer          = DispatcherQueue.GetForCurrentThread().CreateTimer();
                _timer.Interval = GetTileDuration();
                _timer.Tick    += Timer_Tick;
            }

            _timer.Start();
            _suppressFlipOnSet = true;
            CurrentItem        = currentItem;
            _suppressFlipOnSet = false;
        }
示例#12
0
        private static void ScrollViewer_PointerPressed(object sender, PointerRoutedEventArgs e)
        {
            // Unsubscribe if deferred moving is started
            if (_isDeferredMovingStarted)
            {
                UnsubscribeMiddleClickScrolling();
                return;
            }

            Pointer pointer = e.Pointer;

            if (pointer.PointerDeviceType == PointerDeviceType.Mouse)
            {
                _scrollViewer = sender as ScrollViewer;

                PointerPoint pointerPoint = e.GetCurrentPoint(_scrollViewer);

                // SubscribeMiddle if middle button is pressed
                if (pointerPoint.Properties.IsMiddleButtonPressed)
                {
                    SubscribeMiddleClickScrolling(DispatcherQueue.GetForCurrentThread());

                    _startPosition   = Window.Current.CoreWindow.PointerPosition;
                    _currentPosition = Window.Current.CoreWindow.PointerPosition;
                }
            }
        }
示例#13
0
        private static void CoreWindow_PointerReleased(CoreWindow sender, PointerEventArgs args)
        {
            // Start deferred moving if the pointer is pressed and not moved
            if (_isPressed && !_isMoved)
            {
                _isDeferredMovingStarted = true;

                // Event to stop deferred scrolling if pointer exited
                Window.Current.CoreWindow.PointerExited -= CoreWindow_PointerExited;
                Window.Current.CoreWindow.PointerExited += CoreWindow_PointerExited;

                // Event to stop deferred scrolling if pointer pressed
                Window.Current.CoreWindow.PointerPressed -= CoreWindow_PointerPressed;
                Window.Current.CoreWindow.PointerPressed += CoreWindow_PointerPressed;

                SetCursorType(DispatcherQueue.GetForCurrentThread(), 0, 0);
            }
            else
            {
                _isDeferredMovingStarted = false;
            }

            // Unsubscribe if the pointer is pressed and not DeferredMoving
            if (_isPressed && !_isDeferredMovingStarted)
            {
                UnsubscribeMiddleClickScrolling();
            }
        }
示例#14
0
 public MediaPlayerElementContentHeightGetter()
 {
     _Timer             = DispatcherQueue.GetForCurrentThread().CreateTimer();
     _Timer.IsRepeating = true;
     _Timer.Interval    = TimeSpan.FromMilliseconds(100);
     _Timer.Tick       += _Timer_Tick;
 }
示例#15
0
 public DashboardPageViewModel(IDeviceConsumptionRepository deviceConsumptionRepository, ScheduledTaskService scheduledTaskService, ISettingsRepository settingsRepository)
 {
     this.deviceConsumptionRepository = deviceConsumptionRepository;
     this.scheduledTaskService        = scheduledTaskService;
     this.settingsRepository          = settingsRepository;
     dispatcherQueue = DispatcherQueue.GetForCurrentThread();
     refreshGlobalInformationsTimer = new Timer(new TimerCallback(OnRefreshGlobalInformationTimer));
 }
示例#16
0
        public MicaBrush(bool checkForCompositionSupport = true)
        {
            DispatcherQueue = DispatcherQueue.GetForCurrentThread();

            FallbackColor = Colors.Transparent;

            _wallpaperBrushSupported = checkForCompositionSupport ? ApiInformation.IsMethodPresent("Windows.UI.Composition.Compositor", "TryCreateBlurredWallpaperBackdropBrush") : true;
        }
示例#17
0
        public MainTestHost()
        {
            InitializeComponent();

            WeakReferenceMessenger.Default.Register <RequestPageMessage>(this);

            _queue = DispatcherQueue.GetForCurrentThread();
        }
示例#18
0
 private void StartHoldingTimer()
 {
     _holdingTimer          = DispatcherQueue.GetForCurrentThread().CreateTimer();
     _holdingTimer.Interval = TimeSpan.FromTicks(HoldMinDelayTicks);
     _holdingTimer.State    = this;
     _holdingTimer.Tick    += OnHoldingTimerTick;
     _holdingTimer.Start();
 }
示例#19
0
        public AppServiceController(
            IMixMediaPlayerService player)
        {
            Guard.IsNotNull(player, nameof(player));

            _player          = player;
            _dispatcherQueue = DispatcherQueue.GetForCurrentThread();
        }
        /// <summary>
        /// Prevents a default instance of the <see cref="BluetoothLEHelper" /> class from being created.
        /// </summary>
        /// <param name="dispatcherQueue">The DispatcherQueue that should be used to dispatch UI updates, or null if this is being called from the UI thread.</param>
        private BluetoothLEHelper(DispatcherQueue dispatcherQueue = null)
        {
            DispatcherQueue = dispatcherQueue ?? DispatcherQueue.GetForCurrentThread();

#pragma warning disable CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
            Init();
#pragma warning restore CS4014 // Because this call is not awaited, execution of the current method continues before the call is completed
        }
示例#21
0
        public ColumnViewBase() : base()
        {
            this.InitializeComponent();
            CurrentColumn = this;
            var selectionRectangle = RectangleSelection.Create(FileList, SelectionRectangle, FileList_SelectionChanged);

            tapDebounceTimer = DispatcherQueue.GetForCurrentThread().CreateTimer();
        }
示例#22
0
        public void PlayPremium(MessageViewModel message, Sticker sticker)
        {
            if (Interactions == null)
            {
                InteractionsPopup = GetTemplateChild(nameof(InteractionsPopup)) as Popup;
                Interactions      = GetTemplateChild(nameof(Interactions)) as Grid;
            }

            var file = sticker.PremiumAnimation;

            if (file.Local.IsFileExisting() && Interactions.Children.Count < 1)
            {
                var dispatcher = DispatcherQueue.GetForCurrentThread();

                var player = new LottieView();
                player.Width            = 270;
                player.Height           = 270;
                player.IsFlipped        = !message.IsOutgoing;
                player.IsLoopingEnabled = false;
                player.IsHitTestVisible = false;
                player.FrameSize        = new Size(270 * 2, 270 * 2);
                player.Source           = UriEx.ToLocal(file.Local.Path);
                player.PositionChanged += (s, args) =>
                {
                    if (args == 1)
                    {
                        dispatcher.TryEnqueue(() =>
                        {
                            Interactions.Children.Remove(player);
                            InteractionsPopup.IsOpen = false;
                        });
                    }
                };

                var left   = 75;
                var right  = 15;
                var top    = 45;
                var bottom = 45;

                if (message.IsOutgoing)
                {
                    player.Margin = new Thickness(-left, -top, -right, -bottom);
                }
                else
                {
                    player.Margin = new Thickness(-right, -top, -left, -bottom);
                }

                Interactions.Children.Add(player);
                InteractionsPopup.IsOpen = true;
            }
            else if (file.Local.CanBeDownloaded && !file.Local.IsDownloadingActive)
            {
                message.Delegate.DownloadFile(message, file);
                UpdateManager.Subscribe(this, message, file, ref _interactionToken, UpdateFile, true);
            }
        }
示例#23
0
        public MediaPlayerService()
        {
            _player = new MediaPlayer {
                IsLoopingEnabled = true
            };
            _dispatcherQueue = DispatcherQueue.GetForCurrentThread();

            _player.PlaybackSession.PlaybackStateChanged += PlaybackSession_PlaybackStateChanged;
        }
示例#24
0
        public async Task When_ScheduleWorkItem()
        {
            var tcs   = new TaskCompletionSource <object>();
            var timer = DispatcherQueue.GetForCurrentThread().CreateTimer();

            try
            {
                timer.Interval = TimeSpan.FromMilliseconds(10);
                timer.Tick    += (snd, e) => tcs.TrySetResult(default);
 public RectangleSelection_ListViewBase(ListViewBase uiElement, Rectangle selectionRectangle, SelectionChangedEventHandler selectionChanged = null)
 {
     this.uiElement          = uiElement;
     this.selectionRectangle = selectionRectangle;
     this.selectionChanged   = selectionChanged;
     itemsPosition           = new Dictionary <object, System.Drawing.Rectangle>();
     timer = DispatcherQueue.GetForCurrentThread().CreateTimer();
     InitEvents(null, null);
 }
        private void Start()
        {
            if (updateTimer == null)
            {
                updateTimer       = DispatcherQueue.GetForCurrentThread().CreateTimer();
                updateTimer.Tick += UpdateTimer_Tick;
            }

            updateTimer.Start();
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="InAppNotification"/> class.
        /// </summary>
        public InAppNotification()
        {
            DefaultStyleKey = typeof(InAppNotification);

            _dispatcherQueue    = DispatcherQueue.GetForCurrentThread();
            _dismissTimer       = _dispatcherQueue.CreateTimer();
            _dismissTimer.Tick += DismissTimer_Tick;

            _stackedNotificationOptions = new List <NotificationOptions>();
        }
        public MainPage()
        {
            this.InitializeComponent();

            _timer          = DispatcherQueue.GetForCurrentThread().CreateTimer();
            _timer.Interval = TimeSpan.FromSeconds(1);

            _timer.Tick += _timer_Tick;
            _timer.Start();
        }
示例#29
0
        public void Test_DispatcherQueueHelper_FuncOfT_Ok_UIThread()
        {
            var textBlock = DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), () =>
            {
                return(new TextBlock {
                    Text = nameof(Test_DispatcherQueueHelper_FuncOfT_Ok_UIThread)
                });
            }).Result;

            Assert.AreEqual(textBlock.Text, nameof(Test_DispatcherQueueHelper_FuncOfT_Ok_UIThread));
        }
示例#30
0
        public void Test_DispatcherQueueHelper_Action_Ok_UIThread()
        {
            DispatcherQueueHelper.ExecuteOnUIThreadAsync(DispatcherQueue.GetForCurrentThread(), () =>
            {
                var textBlock = new TextBlock {
                    Text = nameof(Test_DispatcherQueueHelper_Action_Ok_UIThread)
                };

                Assert.AreEqual(textBlock.Text, nameof(Test_DispatcherQueueHelper_Action_Ok_UIThread));
            }).Wait();
        }