public override void ViewDidLoad ()
		{
			View = new NSView (new RectangleF (0, 0, 320, 400));
			base.ViewDidLoad ();

			var textEditFirst = new NSTextField(new System.Drawing.RectangleF(0,0,320,40));
			View.AddSubview (textEditFirst);
			var textEditSecond = new NSTextField(new System.Drawing.RectangleF(0,50,320,40));
			View.AddSubview(textEditSecond);
			var slider = new NSSlider(new System.Drawing.RectangleF(0,150,320,40));
			slider.MinValue = 0;
			slider.MaxValue = 100;
			slider.IntValue = 23;
			View.AddSubview(slider);
			var labelFull = new NSTextField(new System.Drawing.RectangleF(0,100,320,40));
			labelFull.Editable = false;
			labelFull.Bordered = false;
			labelFull.AllowsEditingTextAttributes = false;
			labelFull.DrawsBackground = false;
			View.AddSubview (labelFull);
			var sw = new NSButton(new RectangleF(0,200,320,40));
			sw.SetButtonType (NSButtonType.Switch);
			View.AddSubview (sw);
			//sw.AddObserver()

			var set = this.CreateBindingSet<SecondViewController, SecondViewModel> ();
			set.Bind (textEditFirst).For(v => v.StringValue).To (vm => vm.FirstName);
			set.Bind (textEditSecond).For(v => v.StringValue).To (vm => vm.LastName);
			set.Bind (labelFull).Described("SliderValue + ' ' + OnOffValue").For("StringValue");	
			set.Bind (slider).For("IntValue").To (vm => vm.SliderValue);
			set.Bind (sw).For(c => c.State).To (vm => vm.OnOffValue);


			set.Apply ();
		}
Example #2
0
        protected override IView OnConvertToView(FigmaNode currentNode, ViewNode parentNode, ViewRenderService rendererService)
        {
            var slider = new NSSlider();

            var frame = (FigmaFrame)currentNode;

            frame.TryGetNativeControlType(out var controlType);
            frame.TryGetNativeControlVariant(out var controlVariant);

            slider.ControlSize = ViewHelper.GetNSControlSize(controlVariant);

            slider.MinValue = 0;
            slider.MaxValue = 1;

            if (controlType == FigmaControlType.SliderLinear)
            {
                slider.DoubleValue = 0.618;
            }

            FigmaGroup group = frame.children
                               .OfType <FigmaGroup>()
                               .FirstOrDefault(s => s.visible);

            if (group?.name == ComponentString.STATE_DISABLED)
            {
                slider.Enabled = false;
            }

            return(new View(slider));
        }
        public static void Initialize(IScheduler dispatcher)
        {
            Slider.Implementation.Factory = (value, min, max) =>
            {
                value = value
                        .PreventFeedback()
                        .AutoInvalidate(TimeSpan.FromMilliseconds(200));

                return(Control
                       .Create(self =>
                {
                    var s = new NSSlider();

                    self.BindNativeDefaults(s, dispatcher);

                    self.BindNativeProperty(dispatcher, "Minimum", min, (v) => s.MinValue = v);
                    self.BindNativeProperty(dispatcher, "Maximum", max, (v) => s.MaxValue = v);
                    self.BindNativeProperty(dispatcher, "Enabled", value.IsReadOnly, (e) => s.Enabled = !e);

                    self.BindNativeProperty(s, slider => slider.DoubleValue, s.WhenChanged(), value);

                    return s;
                }));
            };
        }
 partial void setWidth(NSSlider sender)
 {
     ((MyView)Animator).setLineWidth(sender.FloatValue);
     //((MyView)Animator).DrawnLineWidth = sender.FloatValue;
     //this.setLineWidth(sender.FloatValue);
     //((MyView)Animator).SetValueForKeyPath((NSNumber)sender.FloatValue,(NSString)"drawnLineWidth");
     //((MyView)Animator).DrawnLineWidth = sender.FloatValue;
     //DrawnLineWidth = sender.FloatValue;
 }
Example #5
0
        partial void ObserveBowlVolumeChange(NSSlider sender)
        {
            // TODO Why is sender sometimes null?
            if (sender == null)
            {
                return;
            }

            DisplayBowlVolumePercentage(sender.IntValue);
        }
Example #6
0
		partial void setWidth (NSSlider sender)
		{			
			((MyView)Animator).setLineWidth(sender.FloatValue);
			//((MyView)Animator).DrawnLineWidth = sender.FloatValue;
			//this.setLineWidth(sender.FloatValue);
			//((MyView)Animator).SetValueForKeyPath((NSNumber)sender.FloatValue,(NSString)"drawnLineWidth");
			//((MyView)Animator).DrawnLineWidth = sender.FloatValue;
			//DrawnLineWidth = sender.FloatValue;
			
		}
Example #7
0
        public void NSSlider_VertialTests()
        {
            TestRuntime.AssertXcodeVersion(8, 0);

            NSSlider slider = new NSSlider();
            var      isVert = slider.IsVertical;

#if NET
            slider.IsVertical = true;
            Assert.IsTrue(slider.IsVertical);
#else
            slider.IsVertical = 1;
            Assert.AreEqual((nint)1, slider.IsVertical);
#endif
        }
Example #8
0
        public SoundControlView()
        {
            TranslatesAutoresizingMaskIntoConstraints = false;

            MuteButton = NSButtonExtensions.ImageButton("Speaker");
            LoudButton = NSButtonExtensions.ImageButton("SpeakerLoud");

            VolumeSlider = new NSSlider();
            VolumeSlider.TranslatesAutoresizingMaskIntoConstraints = false;

            AddSubview(MuteButton);
            AddSubview(VolumeSlider);
            AddSubview(LoudButton);

            BuildConstraints();
        }
Example #9
0
        public void NSSlider_VertialTests()
        {
            if (PlatformHelper.ToMacVersion(PlatformHelper.GetHostApiPlatform()) < Platform.Mac_10_12)
            {
                return;
            }

            NSSlider slider = new NSSlider();
            var      isVert = slider.IsVertical;

#if XAMCORE_4_0
            slider.IsVertical = true;
#else
            slider.IsVertical = 1;
#endif
            Assert.AreEqual(1, slider.IsVertical);
        }
Example #10
0
        void CreateSlider(int index)
        {
            var band = Equalizer.Shared.Bands[index];
            var s    = new NSSlider(new CGRect(0, 0, 21, 100));

            s.DoubleValue = band.Gain;
            s.Tag         = index;
            s.Activated  += slider_changed;
            s.MinValue    = -12;
            s.MaxValue    = 12;
            sliders.Add(s);
            AddSubview(s);
            var label = new NSTextField {
                StringValue = band.ToString(),
            }.StyleAsMainTextCentered();

            sliderLabels.Add(label);
            AddSubview(label);
        }
Example #11
0
        public override NSTouchBarItem MakeItem(NSTouchBar touchBar, string identifier)
        {
            NSCustomTouchBarItem item = new NSCustomTouchBarItem(identifier);

            switch (ParseId(identifier))
            {
            case 0: {
                item.View = NSButton.CreateButton("1️⃣ Button", () => Console.WriteLine("Button"));
                return(item);
            }

            case 1: {
                item.View = NSSegmentedControl.FromLabels(new string [] { "Label1", "Label2" }, NSSegmentSwitchTracking.SelectAny, () => Console.WriteLine("Seg Label"));
                return(item);
            }

            case 2: {
                item.View = new NSImageView()
                {
                    Image = NSImage.ImageNamed(NSImageName.TouchBarGetInfoTemplate),
                };
                return(item);
            }

            case 3: {
                item.View = NSSegmentedControl.FromImages(
                    new NSImage [] {
                        NSImage.ImageNamed(NSImageName.TouchBarVolumeDownTemplate),
                        NSImage.ImageNamed(NSImageName.TouchBarVolumeUpTemplate)
                    },
                    NSSegmentSwitchTracking.SelectAny, () => Console.WriteLine("Seg Images"));
                return(item);
            }

            case 4: {
                item.View = NSSlider.FromValue(5, 0, 10, () => Console.WriteLine("Slider"));
                return(item);
            }
            }
            return(null);
        }
        public override void ViewDidLoad()
        {
            View = new NSView(new CGRect(0, 0, 320, 400));
            base.ViewDidLoad();

            var textEditFirst = new NSTextField(new CGRect(0, 0, 320, 40));

            View.AddSubview(textEditFirst);
            var textEditSecond = new NSTextField(new CGRect(0, 50, 320, 40));

            View.AddSubview(textEditSecond);
            var slider = new NSSlider(new CGRect(0, 150, 320, 40));

            slider.MinValue = 0;
            slider.MaxValue = 100;
            slider.IntValue = 23;
            View.AddSubview(slider);
            var labelFull = new NSTextField(new CGRect(0, 100, 320, 40));

            labelFull.Editable = false;
            labelFull.Bordered = false;
            labelFull.AllowsEditingTextAttributes = false;
            labelFull.DrawsBackground             = false;
            View.AddSubview(labelFull);
            var sw = new NSButton(new CGRect(0, 200, 320, 40));

            sw.SetButtonType(NSButtonType.Switch);
            View.AddSubview(sw);
            //sw.AddObserver()

            var set = this.CreateBindingSet <SecondViewController, SecondViewModel> ();

            set.Bind(textEditFirst).For(v => v.StringValue).To(vm => vm.FirstName);
            set.Bind(textEditSecond).For(v => v.StringValue).To(vm => vm.LastName);
            set.Bind(labelFull).Described("SliderValue + ' ' + OnOffValue").For("StringValue");
            set.Bind(slider).For("IntValue").To(vm => vm.SliderValue);
            set.Bind(sw).For(c => c.State).To(vm => vm.OnOffValue);


            set.Apply();
        }
Example #13
0
        public override IViewWrapper ConvertTo(FigmaNode currentNode, ProcessedNode parent)
        {
            var sliderView = new NSSlider();

            var keyValues = GetKeyValues(currentNode);

            foreach (var key in keyValues)
            {
                if (key.Key == "type")
                {
                    continue;
                }
                if (key.Key == "enabled")
                {
                    sliderView.Enabled = key.Value == "true";
                }
                else if (key.Key == "size")
                {
                    sliderView.ControlSize = ToEnum <NSControlSize> (key.Value);
                }
                else if (key.Key == "max")
                {
                    sliderView.MaxValue = Convert.ToDouble(key.Value);
                }
                else if (key.Key == "min")
                {
                    sliderView.MinValue = Convert.ToDouble(key.Value);
                }
                else if (key.Key == "value")
                {
                    sliderView.DoubleValue = Convert.ToDouble(key.Value);
                }
            }

            sliderView.SliderType = NSSliderType.Linear;
            //((NSSliderCell)sliderView.Cell).TickMarkPosition = NSTickMarkPosition.Right;
            sliderView.Configure(currentNode);
            return(new ViewWrapper(sliderView));
        }
Example #14
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var label = new SimpleLabel(new RectangleF(10, 100, 100, 30).Upside());

            label.Text = "Slide me:";
            Add(label);
            var seek = new NSSlider(new RectangleF(110, 100, 200, 30).Upside());

            seek.MinValue = 0;
            seek.MaxValue = 100;
            Add(seek);
            var mirrorLabel = new SimpleLabel(new RectangleF(110, 130, 200, 30).Upside());

            mirrorLabel.TextColor = NSColor.Blue;
            Add(mirrorLabel);

            var set = this.CreateBindingSet <SeekView, SeekViewModel>();

            set.Bind(seek).To(vm => vm.SeekProperty);
            set.Bind(mirrorLabel).To(vm => vm.SeekProperty);
            set.Apply();
        }
Example #15
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var label1 = new SimpleLabel(new RectangleF(10, 90, 100, 30).Upside());

            Add(label1);
            var seek1 = new NSSlider(new RectangleF(110, 90, 200, 30).Upside());

            seek1.MinValue = 0;
            seek1.MaxValue = 10;
            Add(seek1);

            var label2 = new SimpleLabel(new RectangleF(10, 120, 100, 30).Upside());

            Add(label2);
            var seek2 = new NSSlider(new RectangleF(110, 120, 200, 30).Upside());

            seek2.MinValue = 0;
            seek2.MaxValue = 10;
            Add(seek2);

            var labelA = new SimpleLabel(new RectangleF(10, 150, 300, 20).Upside());

            Add(labelA);
            var labelB = new SimpleLabel(new RectangleF(10, 170, 300, 20).Upside());

            Add(labelB);
            var labelC = new SimpleLabel(new RectangleF(10, 190, 300, 20).Upside());

            Add(labelC);
            var labelD = new SimpleLabel(new RectangleF(10, 210, 300, 20).Upside());

            Add(labelD);
            var labelE = new SimpleLabel(new RectangleF(10, 230, 300, 20).Upside());

            Add(labelE);
            var labelF = new SimpleLabel(new RectangleF(10, 250, 300, 20).Upside());

            Add(labelF);
            var labelG = new SimpleLabel(new RectangleF(10, 270, 300, 20).Upside());

            Add(labelG);
            var labelH = new SimpleLabel(new RectangleF(10, 290, 300, 20).Upside());

            Add(labelH);
            var labelI = new SimpleLabel(new RectangleF(10, 310, 300, 20).Upside());

            Add(labelI);
            var labelJ = new SimpleLabel(new RectangleF(10, 330, 300, 20).Upside());

            Add(labelJ);

            var set = this.CreateBindingSet <IfView, IfViewModel>();

            set.Bind(label1).To(vm => vm.TestVal1);
            set.Bind(seek1).To(vm => vm.TestVal1);
            set.Bind(label2).To(vm => vm.TestVal2);
            set.Bind(seek2).To(vm => vm.TestVal2);
            labelA.Text = "Smallest? (Second if equal)";
            set.Bind(labelB).SourceDescribed("If(TestVal1 < TestVal2, 'First', 'Second')");
            labelC.Text = "Largest? (Second if equal)";
            set.Bind(labelD).SourceDescribed("If(TestVal1 > TestVal2, 'First', 'Second')");
            labelE.Text = "Smallest? (First if equal)";
            set.Bind(labelF).SourceDescribed("If(TestVal1 <= TestVal2, 'First', 'Second')");
            labelG.Text = "Largest? (First if equal)";
            set.Bind(labelH).SourceDescribed("If(TestVal1 >= TestVal2, 'First', 'Second')");
            labelI.Text = "Equal?";
            set.Bind(labelJ).SourceDescribed("If(TestVal1 == TestVal2, 'Yes', 'No')");
            set.Apply();
        }
		partial void SliderChanged (NSSlider sender)
		{
			browserView.ZoomValue = sender.FloatValue;
		}
Example #17
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var label1 = new SimpleLabel(new RectangleF(10, 90, 100, 30).Upside());

            Add(label1);
            var seek1 = new NSSlider(new RectangleF(110, 90, 200, 30).Upside());

            seek1.MinValue = 0;
            seek1.MaxValue = 10;
            Add(seek1);

            var label2 = new SimpleLabel(new RectangleF(10, 120, 100, 30).Upside());

            Add(label2);
            var seek2 = new NSSlider(new RectangleF(110, 120, 200, 30).Upside());

            seek2.MinValue = 0;
            seek2.MaxValue = 10;
            Add(seek2);

            var labelA = new SimpleLabel(new RectangleF(10, 150, 300, 20).Upside());

            Add(labelA);
            var labelB = new SimpleLabel(new RectangleF(10, 170, 300, 20).Upside());

            Add(labelB);
            var labelC = new SimpleLabel(new RectangleF(10, 190, 300, 20).Upside());

            Add(labelC);
            var labelD = new SimpleLabel(new RectangleF(10, 210, 300, 20).Upside());

            Add(labelD);
            var labelE = new SimpleLabel(new RectangleF(10, 230, 300, 20).Upside());

            Add(labelE);
            var labelF = new SimpleLabel(new RectangleF(10, 250, 300, 20).Upside());

            Add(labelF);
            var labelG = new SimpleLabel(new RectangleF(10, 270, 300, 20).Upside());

            Add(labelG);
            var labelH = new SimpleLabel(new RectangleF(10, 290, 300, 20).Upside());

            Add(labelH);
            var labelI = new SimpleLabel(new RectangleF(10, 310, 300, 20).Upside());

            Add(labelI);
            var labelJ = new SimpleLabel(new RectangleF(10, 330, 300, 20).Upside());

            Add(labelJ);

            var set = this.CreateBindingSet <MathsView, MathsViewModel>();

            set.Bind(label1).To(vm => vm.TestVal1);
            set.Bind(seek1).To(vm => vm.TestVal1);
            set.Bind(label2).To(vm => vm.TestVal2);
            set.Bind(seek2).To(vm => vm.TestVal2);
            labelA.Text = "Add";
            set.Bind(labelB).SourceDescribed("TestVal1 + '+' + TestVal2 + '=' + (TestVal1 + TestVal2)");
            labelC.Text = "Subtract";
            set.Bind(labelD).SourceDescribed("TestVal1 + '-' + TestVal2 + '=' + (TestVal1 - TestVal2)");
            labelE.Text = "Multiply";
            set.Bind(labelF).SourceDescribed("TestVal1 + '*' + TestVal2 + '=' + (TestVal1 * TestVal2)");
            labelG.Text = "Divide";
            set.Bind(labelH).SourceDescribed("TestVal1 + '/' + TestVal2 + '=' + (TestVal1 / TestVal2)");
            labelI.Text = "Modulo";
            set.Bind(labelJ).SourceDescribed("TestVal1 + '%' + TestVal2 + '=' + (TestVal1 % TestVal2)");
            set.Apply();
        }
partial         void ObserveBowlVolumeChange(NSSlider sender)
        {
            // TODO Why is sender sometimes null?
            if (sender == null) return;

            DisplayBowlVolumePercentage (sender.IntValue);
        }
Example #19
0
		public override void ViewDidLoad()
		{
			base.ViewDidLoad();

			var label = new SimpleLabel(new RectangleF(10, 100, 100, 30).Upside());
			label.Text = "Slide me:";
			Add(label);
			var seek = new NSSlider(new RectangleF(110, 100, 200, 30).Upside());
			seek.MinValue = 0;
			seek.MaxValue = 100;
			Add(seek);
			var mirrorLabel = new SimpleLabel(new RectangleF(110, 130, 200, 30).Upside());
			mirrorLabel.TextColor = NSColor.Blue;
			Add(mirrorLabel);

			var set = this.CreateBindingSet<SeekView, SeekViewModel>();
			set.Bind(seek).To(vm => vm.SeekProperty);
			set.Bind(mirrorLabel).To(vm => vm.SeekProperty);
			set.Apply();
		}
 partial void SliderChanged(NSSlider sender)
 {
     browserView.ZoomValue = sender.FloatValue;
 }
Example #21
0
 public MacSlider(NSSlider trackbar)
 {
     this.control  = trackbar;
     this.trackbar = trackbar;
 }
Example #22
0
		public override void ViewDidLoad()
		{
			base.ViewDidLoad();

			var label1 = new SimpleLabel(new RectangleF(10, 90, 100, 30).Upside());
			Add(label1);
			var seek1 = new NSSlider(new RectangleF(110, 90, 200, 30).Upside());
			seek1.MinValue = 0;
			seek1.MaxValue = 10;
			Add(seek1);

			var label2 = new SimpleLabel(new RectangleF(10, 120, 100, 30).Upside());
			Add(label2);
			var seek2 = new NSSlider(new RectangleF(110, 120, 200, 30).Upside());
			seek2.MinValue = 0;
			seek2.MaxValue = 10;
			Add(seek2);

			var labelA = new SimpleLabel(new RectangleF(10, 150, 300, 20).Upside());
			Add(labelA);
			var labelB = new SimpleLabel(new RectangleF(10, 170, 300, 20).Upside());
			Add(labelB);
			var labelC = new SimpleLabel(new RectangleF(10, 190, 300, 20).Upside());
			Add(labelC);
			var labelD = new SimpleLabel(new RectangleF(10, 210, 300, 20).Upside());
			Add(labelD);
			var labelE = new SimpleLabel(new RectangleF(10, 230, 300, 20).Upside());
			Add(labelE);
			var labelF = new SimpleLabel(new RectangleF(10, 250, 300, 20).Upside());
			Add(labelF);
			var labelG = new SimpleLabel(new RectangleF(10, 270, 300, 20).Upside());
			Add(labelG);
			var labelH = new SimpleLabel(new RectangleF(10, 290, 300, 20).Upside());
			Add(labelH);
			var labelI = new SimpleLabel(new RectangleF(10, 310, 300, 20).Upside());
			Add(labelI);
			var labelJ = new SimpleLabel(new RectangleF(10, 330, 300, 20).Upside());
			Add(labelJ);

			var set = this.CreateBindingSet<IfView, IfViewModel>();
			set.Bind(label1).To(vm => vm.TestVal1);
			set.Bind(seek1).To(vm => vm.TestVal1);
			set.Bind(label2).To(vm => vm.TestVal2);
			set.Bind(seek2).To(vm => vm.TestVal2);
			labelA.Text = "Smallest? (Second if equal)";
			set.Bind(labelB).SourceDescribed("If(TestVal1 < TestVal2, 'First', 'Second')");
			labelC.Text = "Largest? (Second if equal)";
			set.Bind(labelD).SourceDescribed("If(TestVal1 > TestVal2, 'First', 'Second')");
			labelE.Text = "Smallest? (First if equal)";
			set.Bind(labelF).SourceDescribed("If(TestVal1 <= TestVal2, 'First', 'Second')");
			labelG.Text = "Largest? (First if equal)";
			set.Bind(labelH).SourceDescribed("If(TestVal1 >= TestVal2, 'First', 'Second')");
			labelI.Text = "Equal?";
			set.Bind(labelJ).SourceDescribed("If(TestVal1 == TestVal2, 'Yes', 'No')");
			set.Apply();
		}
 public static string BindIntValue(this NSSlider nsSlider)
 => MvxMacPropertyBinding.NSSlider_IntValue;
Example #24
0
		public override void ViewDidLoad()
		{
			base.ViewDidLoad();

			var label1 = new SimpleLabel(new RectangleF(10, 90, 100, 30).Upside());
			Add(label1);
			var seek1 = new NSSlider(new RectangleF(110, 90, 200, 30).Upside());
			seek1.MinValue = 0;
			seek1.MaxValue = 10;
			Add(seek1);

			var label2 = new SimpleLabel(new RectangleF(10, 120, 100, 30).Upside());
			Add(label2);
			var seek2 = new NSSlider(new RectangleF(110, 120, 200, 30).Upside());
			seek2.MinValue = 0;
			seek2.MaxValue = 10;
			Add(seek2);

			var labelA = new SimpleLabel(new RectangleF(10, 150, 300, 20).Upside());
			Add(labelA);
			var labelB = new SimpleLabel(new RectangleF(10, 170, 300, 20).Upside());
			Add(labelB);
			var labelC = new SimpleLabel(new RectangleF(10, 190, 300, 20).Upside());
			Add(labelC);
			var labelD = new SimpleLabel(new RectangleF(10, 210, 300, 20).Upside());
			Add(labelD);
			var labelE = new SimpleLabel(new RectangleF(10, 230, 300, 20).Upside());
			Add(labelE);
			var labelF = new SimpleLabel(new RectangleF(10, 250, 300, 20).Upside());
			Add(labelF);
			var labelG = new SimpleLabel(new RectangleF(10, 270, 300, 20).Upside());
			Add(labelG);
			var labelH = new SimpleLabel(new RectangleF(10, 290, 300, 20).Upside());
			Add(labelH);
			var labelI = new SimpleLabel(new RectangleF(10, 310, 300, 20).Upside());
			Add(labelI);
			var labelJ = new SimpleLabel(new RectangleF(10, 330, 300, 20).Upside());
			Add(labelJ);

			var set = this.CreateBindingSet<MathsView, MathsViewModel>();
			set.Bind(label1).To(vm => vm.TestVal1);
			set.Bind(seek1).To(vm => vm.TestVal1);
			set.Bind(label2).To(vm => vm.TestVal2);
			set.Bind(seek2).To(vm => vm.TestVal2);
			labelA.Text = "Add";
			set.Bind(labelB).SourceDescribed("TestVal1 + '+' + TestVal2 + '=' + (TestVal1 + TestVal2)");
			labelC.Text = "Subtract";
			set.Bind(labelD).SourceDescribed("TestVal1 + '-' + TestVal2 + '=' + (TestVal1 - TestVal2)");
			labelE.Text = "Multiply";
			set.Bind(labelF).SourceDescribed("TestVal1 + '*' + TestVal2 + '=' + (TestVal1 * TestVal2)");
			labelG.Text = "Divide";
			set.Bind(labelH).SourceDescribed("TestVal1 + '/' + TestVal2 + '=' + (TestVal1 / TestVal2)");
			labelI.Text = "Modulo";
			set.Bind(labelJ).SourceDescribed("TestVal1 + '%' + TestVal2 + '=' + (TestVal1 % TestVal2)");
			set.Apply();
		}
Example #25
0
        public PlaybackBar(CGRect rect) : base(rect)
        {
            BackgroundColor     = NSColor.FromRgba(249, 249, 249, 255);
            AutoresizingMask    = NSViewResizingMask.WidthSizable | NSViewResizingMask.HeightSizable;
            AddSubview(AlbumArt = new NSImageView(new CGRect(0, 0, 67, 67)));
            videoView           = new VideoView {
                WantsLayer = true, Hidden = true
            };

            videoView.MakeBackingLayer();

            AddSubview(previous = CreateButton("SVG/previous.svg", PlaybackManager.Shared.Previous));
            AddSubview(play     = CreateButton("SVG/playButtonBordered.svg", () => {
                if (playing)
                {
                    PlaybackManager.Shared.Pause();
                }
                else
                {
                    PlaybackManager.Shared.Play();
                }
            }));
            AddSubview(next     = CreateButton("SVG/next.svg", () => PlaybackManager.Shared.NextTrack()));
            AddSubview(textView = new TwoLabelView());

            AddSubview(progress = new ProgressView());

            AddSubview(shuffle = CreateButton("SVG/shuffle.svg", 25, PlaybackManager.Shared.ToggleRandom));
            AddSubview(repeat  = CreateButton("SVG/repeat.svg", 25, PlaybackManager.Shared.ToggleRepeat));

            AddSubview(time = new NSTextField {
                StringValue = "0000:00"
            }.StyleAsSubText());
            time.SizeToFit();

            AddSubview(remaining = new NSTextField {
                StringValue = "0000:00", Alignment = NSTextAlignment.Right
            }.StyleAsSubText());
            remaining.SizeToFit();

            AddSubview(volumeSlider = new NSSlider {
                DoubleValue = Settings.CurrentVolume, MinValue = 0, MaxValue = 1
            });
            volumeSlider.Activated += (object sender, EventArgs e) =>
            {
                Settings.CurrentVolume = (float)volumeSlider.DoubleValue;
            };
            volumeSlider.SizeToFit();

            AddSubview(thumbsDown = CreateButton("SVG/thumbsDown.svg", 30, async() =>
            {
                var song = MusicManager.Shared.GetCurrentSong();
                if (song.Rating != 1)
                {
                    await MusicManager.Shared.ThumbsDown(song);
                }
                else
                {
                    await MusicManager.Shared.Unrate(song);
                }
                SetThumbsState(song);
            }));

            AddSubview(thumbsUp = CreateButton("SVG/thumbsUp.svg", 30, async() =>
            {
                var song = MusicManager.Shared.GetCurrentSong();
                if (song.Rating != 5)
                {
                    await MusicManager.Shared.ThumbsUp(song);
                }
                else
                {
                    await MusicManager.Shared.Unrate(song);
                }
                SetThumbsState(song);
            }));

            Update(PlaybackManager.Shared.NativePlayer.CurrentSong);
            var dropShadow = new NSShadow {
                ShadowColor = NSColor.Black,
            };

            this.WantsLayer = true;
            this.Shadow     = dropShadow;
            NotificationManager.Shared.CurrentSongChanged   += (sender, e) => Update(e.Data);
            NotificationManager.Shared.PlaybackStateChanged += (sender, e) => SetState(e.Data);

            NotificationManager.Shared.CurrentTrackPositionChanged += (object sender, SimpleTables.EventArgs <TrackPosition> e) => {
                var data = e.Data;
                //timeLabel.Text = data.CurrentTimeString;
                //remainingTimeLabel.Text = data.RemainingTimeString;
                progress.Progress     = data.Percent;
                time.StringValue      = data.CurrentTimeString;
                remaining.StringValue = data.RemainingTimeString;
            };

            NotificationManager.Shared.ShuffleChanged     += (sender, args) => SetShuffleState(args.Data);
            NotificationManager.Shared.RepeatChanged      += (sender, args) => SetRepeatState(args.Data);
            NotificationManager.Shared.SongDownloadPulsed += (object sender, NotificationManager.SongDowloadEventArgs e) => {
                if (e.SongId != Settings.CurrentSong)
                {
                    return;
                }
                progress.DownloadProgress = e.Percent;
            };

//			NotificationManager.Shared.ToggleFullScreenVideo += (s, a) => ToggleFullScreenVideo();
            SetState(PlaybackState.Stopped);
            SetShuffleState(Settings.ShuffleSongs);
            SetRepeatState(Settings.RepeatMode);
        }