Beispiel #1
0
        public ReaderViewBase()
        {
            this.DefaultStyleKey = typeof(ReaderViewBase);

            _gestureRecognizer = new GestureRecognizer();
            _gestureRecognizer.GestureSettings        = GestureSettings.ManipulationTranslateX;
            _gestureRecognizer.ManipulationStarted   += _gestureRecognizer_ManipulationStarted;
            _gestureRecognizer.ManipulationUpdated   += _gestureRecognizer_ManipulationUpdated;
            _gestureRecognizer.ManipulationCompleted += _gestureRecognizer_ManipulationCompleted;

            PointerWheelChangedEventHandler = new PointerEventHandler(_PointerWheelChanged);
            PointerPressedEventHandler      = new PointerEventHandler(_PointerPressed);
            PointerMovedEventHandler        = new PointerEventHandler(_PointerMoved);
            PointerReleasedEventHandler     = new PointerEventHandler(_PointerReleased);
            PointerCanceledEventHandler     = new PointerEventHandler(_PointerCanceled);
            TouchTappedEventHandler         = new TappedEventHandler(_TouchTapped);
            TouchHoldingEventHandler        = new HoldingEventHandler(_TouchHolding);

            this.AddHandler(UIElement.PointerWheelChangedEvent, PointerWheelChangedEventHandler, true);
            this.AddHandler(UIElement.PointerPressedEvent, PointerPressedEventHandler, true);
            this.AddHandler(UIElement.PointerMovedEvent, PointerMovedEventHandler, true);
            this.AddHandler(UIElement.PointerReleasedEvent, PointerReleasedEventHandler, true);
            this.AddHandler(UIElement.PointerCanceledEvent, PointerCanceledEventHandler, true);
            this.AddHandler(UIElement.TappedEvent, TouchTappedEventHandler, true);
            this.AddHandler(UIElement.HoldingEvent, TouchHoldingEventHandler, true);
            this.SizeChanged += ReaderViewBase_SizeChanged;

            CreateContentDelayer = new EventDelayer();
            _tempOverflowList    = new List <RenderOverflow>();
            CreateContentDelayer.ResetWhenDelayed = true;
            CreateContentDelayer.Arrived         += CreateContentWaiter_Arrived;
        }
Beispiel #2
0
    /// <summary>
    /// shows how to create a event delayer and use it to listen to the events from a text box and call if no further changes for 2 seconds.
    /// </summary>
    private static void ShowUsage(System.Windows.Controls.TextBox textBox)
    {
        EventDelayer eventDelayer = new EventDelayer(TimeSpan.FromSeconds(2));

        textBox.TextChanged       += eventDelayer.Enqueue;
        eventDelayer.DelayedEvent += eventDelayer_DelayedEvent;
    }
Beispiel #3
0
        /// <summary>
        /// Construct new menu builder with the view and member container.
        /// </summary>
        public MemberListViewMenu(IMemberListView view, MembersContainer container)
        {
            _container = container;
            _view = view;
            _dispatcher = Dispatcher.CurrentDispatcher;

            // menu needs to be rebuilt when selected items or the members in the container are changed
            _delayMenuRebuild = new EventDelayer<bool>(delegate { RebuildMenu(); return true; }, _dispatcher);
            _container.SavingChanges += delegate { _delayMenuRebuild.DelayEvent(); };
            _view.SelectedItems.CollectionChanged += delegate { _delayMenuRebuild.DelayEvent(); };
        }
        public MainPage()
        {
            this.InitializeComponent();

            resizeEventTimer = new DispatcherTimer {
                Interval = TimeSpan.FromMilliseconds(100)
            };
            resizeEventTimer.Tick           += (sender, e) => UpdateImageControlSource();
            resizeEventDelayer               = new EventDelayer(TimeSpan.FromMilliseconds(100));
            resizeEventDelayer.DelayedEvent += (sender, e) => UpdateImageControlSource();
        }
Beispiel #5
0
        public ReaderView()
        {
            this.DefaultStyleKey = typeof(ReaderView);

            _GestureRecognizer = new GestureRecognizer();
            _GestureRecognizer.GestureSettings        = GestureSettings.ManipulationTranslateX;
            _GestureRecognizer.ManipulationStarted   += _GestureRecognizer_ManipulationStarted;
            _GestureRecognizer.ManipulationUpdated   += _GestureRecognizer_ManipulationUpdated;
            _GestureRecognizer.ManipulationCompleted += _GestureRecognizer_ManipulationCompleted;

            PointerWheelChangedEventHandler = new PointerEventHandler(_PointerWheelChanged);
            PointerPressedEventHandler      = new PointerEventHandler(_PointerPressed);
            PointerMovedEventHandler        = new PointerEventHandler(_PointerMoved);
            PointerReleasedEventHandler     = new PointerEventHandler(_PointerReleased);
            PointerCanceledEventHandler     = new PointerEventHandler(_PointerCanceled);

            this.AddHandler(UIElement.PointerWheelChangedEvent, PointerWheelChangedEventHandler, true);
            this.AddHandler(UIElement.PointerPressedEvent, PointerPressedEventHandler, true);
            this.AddHandler(UIElement.PointerMovedEvent, PointerMovedEventHandler, true);
            this.AddHandler(UIElement.PointerReleasedEvent, PointerReleasedEventHandler, true);
            this.AddHandler(UIElement.PointerCanceledEvent, PointerCanceledEventHandler, true);
            this.SizeChanged += ReaderView_SizeChanged;


            IndexWaiter          = new EventWaiter();
            CreateContentDelayer = new EventDelayer();
            CreateContentDelayer.ResetWhenDelayed = true;
            CreateContentDelayer.Arrived         += CreateContentWaiter_Arrived;

            this.Unloaded += (s, a) =>
            {
                this.RemoveHandler(UIElement.PointerWheelChangedEvent, PointerWheelChangedEventHandler);
                this.RemoveHandler(UIElement.PointerPressedEvent, PointerPressedEventHandler);
                this.RemoveHandler(UIElement.PointerMovedEvent, PointerMovedEventHandler);
                this.RemoveHandler(UIElement.PointerReleasedEvent, PointerReleasedEventHandler);
                this.RemoveHandler(UIElement.PointerCanceledEvent, PointerCanceledEventHandler);
            };
        }
Beispiel #6
0
    private static void ThreadProc(Object stateInfo)
    {
        EventDelayer thisObj = (EventDelayer)stateInfo;

        thisObj.HandleTimer();
    }