public ScrollPositionWithSingleContext(
            ScrollPhysics physics      = null,
            ScrollContext context      = null,
            float?initialPixels        = 0.0f,
            bool keepScrollOffset      = true,
            ScrollPosition oldPosition = null,
            string debugLabel          = null
            ) : base(
                physics: physics,
                context: context,
                keepScrollOffset: keepScrollOffset,
                oldPosition: oldPosition,
                debugLabel: debugLabel
                )
        {
            if (this._pixels == null && initialPixels != null)
            {
                this.correctPixels(initialPixels.Value);
            }

            if (this.activity == null)
            {
                this.goIdle();
            }

            D.assert(this.activity != null);
        }
Пример #2
0
        protected ScrollPosition(
            ScrollPhysics physics      = null,
            ScrollContext context      = null,
            bool keepScrollOffset      = true,
            ScrollPosition oldPosition = null,
            string debugLabel          = null
            )
        {
            D.assert(physics != null);
            D.assert(context != null);
            D.assert(context.vsync != null);

            this.physics          = physics;
            this.context          = context;
            this.keepScrollOffset = keepScrollOffset;
            this.debugLabel       = debugLabel;

            if (oldPosition != null)
            {
                this.absorb(oldPosition);
            }

            if (keepScrollOffset)
            {
                this.restoreScrollOffset();
            }
        }
Пример #3
0
 public override ScrollPosition createScrollPosition(ScrollPhysics physics, ScrollContext context,
                                                     ScrollPosition oldPosition)
 {
     return(new _FixedExtentScrollPosition(
                physics: physics,
                context: context,
                initialItem: this.initialItem,
                oldPosition: oldPosition
                ));
 }
Пример #4
0
 public override ScrollPosition createScrollPosition(ScrollPhysics physics, ScrollContext context,
                                                     ScrollPosition oldPosition)
 {
     return(new _TabBarScrollPosition(
                physics: physics,
                context: context,
                oldPosition: oldPosition,
                tabBar: this.tabBar
                ));
 }
Пример #5
0
 public override ScrollPosition createScrollPosition(ScrollPhysics physics, ScrollContext context,
                                                     ScrollPosition oldPosition)
 {
     return(new _PagePosition(
                physics: physics,
                context: context,
                initialPage: this.initialPage,
                keepPage: this.keepPage,
                viewportFraction: this.viewportFraction,
                oldPosition: oldPosition
                ));
 }
Пример #6
0
 public override ScrollPosition createScrollPosition(
     ScrollPhysics physics,
     ScrollContext context,
     ScrollPosition oldPosition
     )
 {
     return(new _DraggableScrollableSheetScrollPosition(
                physics: physics,
                context: context,
                oldPosition: oldPosition,
                extent: extent
                ));
 }
Пример #7
0
 public _TabBarScrollPosition(
     ScrollPhysics physics      = null,
     ScrollContext context      = null,
     ScrollPosition oldPosition = null,
     _TabBarState tabBar        = null
     ) : base(
         physics: physics,
         context: context,
         initialPixels: null,
         oldPosition: oldPosition)
 {
     this.tabBar = tabBar;
 }
Пример #8
0
 public TestScrollPositionWithSingleContext(
     ScrollPhysics physics      = null,
     ScrollContext context      = null,
     float?initialPixels        = 0.0f,
     bool keepScrollOffset      = true,
     ScrollPosition oldPosition = null,
     string debugLabel          = null
     ) : base(physics: physics,
              context: context,
              keepScrollOffset: keepScrollOffset,
              oldPosition: oldPosition,
              debugLabel: debugLabel)
 {
 }
Пример #9
0
 public virtual ScrollPosition createScrollPosition(
     ScrollPhysics physics,
     ScrollContext context,
     ScrollPosition oldPosition
     )
 {
     return(new ScrollPositionWithSingleContext(
                physics: physics,
                context: context,
                initialPixels: this.initialScrollOffset,
                keepScrollOffset: this.keepScrollOffset,
                oldPosition: oldPosition,
                debugLabel: this.debugLabel
                ));
 }
Пример #10
0
 public _DraggableScrollableSheetScrollPosition(
     ScrollPhysics physics        = null,
     ScrollContext context        = null,
     float initialPixels          = 0.0f,
     bool keepScrollOffset        = true,
     ScrollPosition oldPosition   = null,
     string debugLabel            = null,
     _DraggableSheetExtent extent = null
     ) : base(physics: physics,
              context: context,
              initialPixels: initialPixels,
              keepScrollOffset: keepScrollOffset,
              oldPosition: oldPosition,
              debugLabel: debugLabel)
 {
     D.assert(extent != null);
     this.extent = extent;
 }
Пример #11
0
 internal _PagePosition(
     ScrollPhysics physics      = null,
     ScrollContext context      = null,
     int initialPage            = 0,
     bool keepPage              = true,
     float viewportFraction     = 1.0f,
     ScrollPosition oldPosition = null
     ) : base(
         physics: physics,
         context: context,
         initialPixels: null,
         keepScrollOffset: keepPage,
         oldPosition: oldPosition
         )
 {
     D.assert(viewportFraction > 0.0);
     this.initialPage    = initialPage;
     _viewportFraction   = viewportFraction;
     _pageToUseOnStartup = initialPage;
 }
Пример #12
0
 public _FixedExtentScrollPosition(
     ScrollPhysics physics,
     ScrollContext context,
     int initialItem,
     bool keepScrollOffset      = true,
     ScrollPosition oldPosition = null,
     string debugLabel          = null
     ) : base(
         physics: physics,
         context: context,
         initialPixels: _getItemExtentFromScrollContext(context) * initialItem,
         keepScrollOffset: keepScrollOffset,
         oldPosition: oldPosition,
         debugLabel: debugLabel
         )
 {
     D.assert(
         context is _FixedExtentScrollableState,
         () => "FixedExtentScrollController can only be used with ListWheelScrollViews"
         );
 }
Пример #13
0
        private static Composite CreateUseBestScroll()
        {
            return(new ThrottlePasses(
                       TimeSpan.FromMilliseconds(250),
                       new Sequence(
                           ctx =>
            {
                ScrollContext sc = new ScrollContext();
                sc.scroll = FindBestScroll();
                return sc;
            },

                           new Decorator(
                               req => req != null && ((ScrollContext)req).scroll != null,
                               new Action(r => Logger.WriteDebug("UseBestScroll: will attempt to use {0} #{1}", ((ScrollContext)r).scroll.Name, ((ScrollContext)r).scroll.Entry))
                               ),

                           new Action(r =>
            {
                ScrollContext sc = (ScrollContext)r;
                sc.usedAt = DateTime.UtcNow;
                UseItem(sc.scroll);
            }),

                           new WaitContinue(
                               TimeSpan.FromMilliseconds(250),
                               until => Utilities.EventHandlers.LastRedErrorMessage > ((ScrollContext)until).usedAt,
                               new Action(r => {
                int suppressFor = 5;
                suppressScrollsUntil = DateTime.UtcNow.AddMinutes(suppressFor);
                Logger.WriteDebug("UseBestScroll: suppressing Scroll Use for {0} minutes due to WoWRedError encountered", suppressFor);
                return RunStatus.Failure;
            })
                               )
                           )
                       ));
        }
Пример #14
0
        static float _getItemExtentFromScrollContext(ScrollContext context)
        {
            _FixedExtentScrollableState scrollable = (_FixedExtentScrollableState)context;

            return(scrollable.itemExtent);
        }