Exemple #1
0
        public NSScrubberItemView GetViewForItem(NSScrubber scrubber, nint index)
        {
            NSScrubberTextItemView item = new NSScrubberTextItemView();

            item.TextField.StringValue = index.ToString();
            return(item);
        }
Exemple #2
0
        public NSScrubberItemView GetViewForItem(NSScrubber scrubber, nint index)
        {
            ScrubberImage item = (ScrubberImage)scrubber.MakeItem("com.xamarin.scrubber.image", null);

            // Tining each image causes lag, so cache and do off the main thread
            // Using ScrubberImage instead of NSScrubberImageItemView since
            // it does not handle setting Image later
            NSImage image;

            if (!imageCache.TryGetValue((int)index, out image))
            {
                var template = (NSImage)Xamargon.Copy();
                Task.Factory.StartNew(() => {
                    var tintedImage = TintImage(template);
                    BeginInvokeOnMainThread(() => {
                        imageCache [(int)index] = tintedImage;
                        item.Image = tintedImage;
                    });
                });
            }
            else
            {
                item.Image = image;
            }

            // Put a nice border around it
            item.Layer.BorderColor   = NSColor.DarkGray.CGColor;
            item.Layer.BorderWidth   = 2;
            item.Layer.CornerRadius  = 8;
            item.Layer.MasksToBounds = true;
            return(item);
        }
Exemple #3
0
 public void DidSelectItem(NSScrubber scrubber, nint selectedIndex)
 {
     Console.WriteLine("Scrubber DidSelectItem - " + selectedIndex);
 }
Exemple #4
0
 public void DidBeginInteracting(NSScrubber scrubber)
 {
     Console.WriteLine("Scrubber DidBeginInteracting");
 }
Exemple #5
0
 public nint GetNumberOfItems(NSScrubber scrubber)
 {
     return(100);
 }
Exemple #6
0
        public override NSTouchBarItem MakeItem(NSTouchBar touchBar, string identifier)
        {
            if (IsPopupID(identifier))
            {
                NSCustomTouchBarItem item     = new NSCustomTouchBarItem(identifier);
                NSScrubber           scrubber = new NSScrubber()
                {
                    Identifier               = identifier,
                    SelectedIndex            = 0,
                    ShowsArrowButtons        = true,
                    SelectionOverlayStyle    = NSScrubberSelectionStyle.OutlineOverlayStyle,
                    SelectionBackgroundStyle = NSScrubberSelectionStyle.RoundedBackgroundStyle,
                };

                item.View = scrubber;

                switch (ParseNestedId(identifier))
                {
                case 0: {
                    var data = new TextScrubberData();

                    scrubber.Delegate   = data;
                    scrubber.DataSource = data;

                    scrubber.RegisterClass(new Class("NSScrubberTextItemView"), "com.xamarin.scrubber.text");

                    return(item);
                }

                case 1: {
                    var data = new ImageScrubberData();

                    scrubber.Delegate   = data;
                    scrubber.DataSource = data;

                    scrubber.RegisterClass(new Class(typeof(ScrubberImage)), "com.xamarin.scrubber.image");
                    scrubber.ShowsAdditionalContentIndicators = true;

                    return(item);
                }
                }
            }
            else
            {
                switch (ParseId(identifier))
                {
                case 0: {
                    NSPopoverTouchBarItem item = new NSPopoverTouchBarItem(identifier);
                    item.PopoverTouchBar = new NSTouchBar()
                    {
                        Delegate = this,
                        DefaultItemIdentifiers = new string [] { CreateNestedID(0) }
                    };
                    item.CollapsedRepresentationLabel = "NSScrubber Text";
                    return(item);
                }

                case 1: {
                    NSPopoverTouchBarItem item = new NSPopoverTouchBarItem(identifier);
                    item.PopoverTouchBar = new NSTouchBar()
                    {
                        Delegate = this,
                        DefaultItemIdentifiers = new string [] { CreateNestedID(1) }
                    };
                    item.CollapsedRepresentationLabel = "NSScrubber Image";
                    return(item);
                }
                }
            }

            return(null);
        }