Exemplo n.º 1
0
 public SkiVStack()
 {
     SpacingProp = new LinkedProperty <float>(
         this,
         10,
         valueChanged: (sender, args) => InvalidateLayout()
         );
 }
Exemplo n.º 2
0
        public SkiScrollView()
        {
            CanScrollHorizontallyProp = new LinkedProperty <bool>(
                this,
                valueChanged: (sender, args) =>
            {
                UpdateScrollMax();
                InvalidateLayout();
            }
                );
            CanScrollVerticallyProp = new LinkedProperty <bool>(
                this,
                true,
                valueChanged: (sender, args) =>
            {
                UpdateScrollMax();
                InvalidateLayout();
            }
                );
            ScrollMaxProp = new LinkedProperty <SKPoint>(
                this,
                valueChanged: (sender, args) => AdjustScrollIfOutOfBounds()
                );
            ScrollProp = new LinkedProperty <SKPoint>(
                this,
                valueChanging: (oldValue, newValue) => AdjustScrollIfOutOfBounds(newValue),
                valueChanged: (sender, args) =>
            {
                UpdateChildPoint();
                InvalidateSurface();
            }
                );
            SizeProp.ValueChanged += OnSizeChanged;

            PaddingProp.ValueChanged += OnPaddingChanged;

            VerticalOptions = SkiLayoutOptions.Fill;
            Padding         = new SKRect(0, 0, VerticalScrollBarWidth, 0);

            var handleGestureRecognizer = new ScrollHandleGestureRecognizer(this);

            GestureRecognizers.Add(handleGestureRecognizer);

            FlingGestureRecognizer = new FlingGestureRecognizer(
                this,
                () => CanScrollHorizontally,
                () => CanScrollVertically,
                onMove: deltaPixels =>
            {
                var previousScroll = Scroll;
                Scroll            -= PixelToLocalMatrix.MapVector(deltaPixels);
                return(Scroll != previousScroll);
            }
                );

            GestureRecognizers.Add(FlingGestureRecognizer);
        }
Exemplo n.º 3
0
 public ColorBackground(SkiView view, SKColor color)
 {
     _view     = view;
     ColorProp = new LinkedProperty <SKColor>(
         this,
         color,
         valueChanged: (sender, args) => _view.InvalidateSurface()
         );
 }
Exemplo n.º 4
0
 public SkiView()
 {
     WidthRequestProp = new LinkedProperty <float?>(
         this,
         valueChanged: (sender, args) =>
     {
         if (!_updatingViewPreferredSize)
         {
             _allowViewPreferredWidth = false;
         }
     }
         );
     HeightRequestProp = new LinkedProperty <float?>(
         this,
         valueChanged: (sender, args) =>
     {
         if (!_updatingViewPreferredSize)
         {
             _allowViewPreferredHeight = false;
         }
     }
         );
     SizeProp    = new LinkedProperty <SKSize>(this);
     PaddingProp = new LinkedProperty <SKRect>(
         this,
         valueChanged: (sender, args) => InvalidateLayout()
         );
     HorizontalOptionsProp = new LinkedProperty <SkiLayoutOptions>(this);
     VerticalOptionsProp   = new LinkedProperty <SkiLayoutOptions>(this);
     IsFocusedProp         = new LinkedProperty <bool>(
         this,
         valueChanged: (sender, args) =>
     {
         var previousFocusedView = UiComponent.FocusedView;
         if (args.NewValue)
         {
             if (previousFocusedView != null)
             {
                 previousFocusedView.IsFocused = false;
             }
             UiComponent.FocusedView = this;
         }
         else if (previousFocusedView == this)
         {
             UiComponent.FocusedView = null;
         }
     }
         );
     BackgroundProp = new LinkedProperty <ISkiBackground>(
         this,
         valueChanged: (sender, args) => InvalidateSurface()
         );
 }
Exemplo n.º 5
0
 public SkiLabel()
 {
     TextProp = new LinkedProperty <string>(
         this,
         "",
         valueChanged: (sender, args) => UpdateTextBlock()
         );
     FontSizeProp = new LinkedProperty <float>(
         this,
         16,
         valueChanged: (sender, args) => UpdateTextBlock()
         );
 }
Exemplo n.º 6
0
        public SkiImageView(CachedResourceUsage <SKImage> imageUsage = null)
        {
            ImageUsageProp = new LinkedProperty <CachedResourceUsage <SKImage> >(
                this,
                valueChanged: async(sender, args) =>
            {
                args.OldValue?.Dispose();

                if (args.NewValue != null)
                {
                    await args.NewValue.WaitForLoadingAsync();
                }

                InvalidateSurface();
            }
                );

            ImageUsage = imageUsage;
        }
Exemplo n.º 7
0
 public override void UpdateProperty(ModConfig config)
 {
     LinkedProperty.SetValue(config, this.SaveData.Value, null);
 }
 public override void BuildCompled()
 {
     ShutDownPc = false;
     _linkedPlaying = LinkProperty(nameof(_player.Playing), _player, nameof(CanActivate));
 }