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 (); }
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; }
partial void ObserveBowlVolumeChange(NSSlider sender) { // TODO Why is sender sometimes null? if (sender == null) { return; } DisplayBowlVolumePercentage(sender.IntValue); }
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; }
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 }
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(); }
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); }
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); }
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(); }
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)); }
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(); }
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; }
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); }
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; }
public MacSlider(NSSlider trackbar) { this.control = trackbar; this.trackbar = trackbar; }
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;
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(); }
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); }