57 instantiations of TrayPanel
Aspire.Tray.Tests (57)
src\Aspire.Tray\Linux\LinuxTrayPanel.cs (1)
154_panel = new(controller.State, TrayPanelPalette.Dark)
TrayPanelTests.cs (56)
36var panel = new TrayPanel(state, palette) { MaxHeight = maxHeight, OpenInApplications = s_applications }; 131var scene = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene; 143var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 157var panel = new TrayPanel(TrayPanelSamples.Empty(), TrayPanelPalette.Light); 168var panel = new TrayPanel(state, TrayPanelPalette.Light); 186var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications }; 214var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications, FileManagerName = "File Explorer" }; 245var panel = new TrayPanel(state, TrayPanelPalette.Light); 265var panel = new TrayPanel(state, TrayPanelPalette.Light); 285var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications }; 315var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications }; 342var panel = new TrayPanel(state, TrayPanelPalette.Light); 352var panel = new TrayPanel(state, TrayPanelPalette.Light); 365var panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 }; 379var panel = new TrayPanel(state, TrayPanelPalette.Light); 391var panel = new TrayPanel(state, TrayPanelPalette.Light); 407var panel = new TrayPanel(state, TrayPanelPalette.Light); 418var panel = new TrayPanel(state, TrayPanelPalette.Light); 432var panel = new TrayPanel(state, TrayPanelPalette.Light); 449var panel = new TrayPanel(state, TrayPanelPalette.Light); 466var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 480 }; 489var panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 }; 502var panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 }; 523var panel = new TrayPanel(state, TrayPanelPalette.Light); 543var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 553var panel = new TrayPanel(state, TrayPanelPalette.Light); 566var panel = new TrayPanel(state, TrayPanelPalette.Light); 578var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 592var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 605var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 618var panel = new TrayPanel(state, TrayPanelPalette.Light); 630var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 650var panel = new TrayPanel(state, TrayPanelPalette.Light); 667var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 694var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 707var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 720var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 }; 742var panel = new TrayPanel(state, TrayPanelPalette.Light); 772var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 785var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 }; 830var scene = new TrayPanel(TrayPanelSamples.Errors(), TrayPanelPalette.Light).Scene; 942var scene = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene; 999var scene = new TrayPanel(state, TrayPanelPalette.Light).Scene; 1012var withNotice = new TrayPanel(TrayPanelSamples.Errors(), TrayPanelPalette.Light); 1013var without = new TrayPanel(TrayPanelSamples.Errors() with { Notice = null }, TrayPanelPalette.Light); 1128var panel = new TrayPanel(state, palette); 1235var scene = new TrayPanel(TrayPanelSamples.Errors(), palette).Scene; 1314var scene = new TrayPanel(state, TrayPanelPalette.Light).Scene; 1331var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 1349var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 1365var panel = new TrayPanel(state, TrayPanelPalette.Light); 1377var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 }; 1396var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 1413var panel = new TrayPanel(state, TrayPanelPalette.Light); 1438var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light) { QuitVerb = verb }; 1450var scene = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Scene;
130 references to TrayPanel
Aspire.Tray.Tests (130)
Helpers\TrayPanelSvgRenderer.cs (1)
42new XAttribute("rx", F(TrayPanel.CornerRadius)), new XAttribute("fill", "#000"), new XAttribute("filter", "url(#shadow)")));
LinuxTrayTests.cs (3)
102Assert.Equal(new PanelRect(x, y, TrayPanel.Width, 180), bounds); 110Assert.Equal(new PanelRect(-1080, 34, TrayPanel.Width, 300), bounds); 146Assert.Equal(TrayPanel.Width * scale, bounds.Width);
src\Aspire.Tray\Common\TrayPanelScene.cs (5)
92/// Draws the icon of an installed application, one of <see cref="TrayPanel.OpenInApplications"/>, 129/// <see cref="TrayPanel.OpenInApplications"/>. 275/// <see cref="TrayPanel.ConfirmRemoveMissing"/> instead of showing a dialog. 280/// <see cref="TrayPanel.OpenInApplications"/>. 300/// <see cref="TrayPanel.ShowSettings"/> to switch the panel to its Settings view.
src\Aspire.Tray\Linux\LinuxTrayMenu.cs (1)
30var (summary, _) = TrayPanel.GetHeaderStatus(state, TrayPanelPalette.Dark);
src\Aspire.Tray\Linux\LinuxTrayPanel.cs (7)
14private readonly TrayPanel _panel; 430if (workarea.Width < (TrayPanel.Width + 8) * _scale 431|| workarea.Height < (TrayPanel.HeaderHeight + TrayPanel.FooterHeight + TrayPanel.RowHeight + 16) * _scale) 435_panel.MaxHeight = Math.Min(TrayPanel.DefaultMaxHeight, workarea.Height / _scale - 16); 468var width = TrayPanel.Width * scale;
TrayPanelTests.cs (113)
33private static TrayPanel CreatePanel(string name, TrayPanelPalette palette, double maxHeight = TrayPanel.DefaultMaxHeight) 36var panel = new TrayPanel(state, palette) { MaxHeight = maxHeight, OpenInApplications = s_applications }; 70var panel = CreatePanel(name, TrayPanelPalette.Light, maxHeight: 600); 74Assert.Equal(TrayPanel.Width, scene.Width); 75Assert.InRange(scene.Height, TrayPanel.HeaderHeight + TrayPanel.FooterHeight, 600); 83Assert.All(footer, target => Assert.InRange(target.Bounds.Y, scene.Height - TrayPanel.FooterHeight, scene.Height - target.Bounds.Height)); 143var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 157var panel = new TrayPanel(TrayPanelSamples.Empty(), TrayPanelPalette.Light); 168var panel = new TrayPanel(state, TrayPanelPalette.Light); 186var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications }; 214var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications, FileManagerName = "File Explorer" }; 245var panel = new TrayPanel(state, TrayPanelPalette.Light); 265var panel = new TrayPanel(state, TrayPanelPalette.Light); 285var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications }; 315var panel = new TrayPanel(state, TrayPanelPalette.Light) { OpenInApplications = s_applications }; 342var panel = new TrayPanel(state, TrayPanelPalette.Light); 352var panel = new TrayPanel(state, TrayPanelPalette.Light); 365var panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 }; 379var panel = new TrayPanel(state, TrayPanelPalette.Light); 391var panel = new TrayPanel(state, TrayPanelPalette.Light); 407var panel = new TrayPanel(state, TrayPanelPalette.Light); 418var panel = new TrayPanel(state, TrayPanelPalette.Light); 432var panel = new TrayPanel(state, TrayPanelPalette.Light); 449var panel = new TrayPanel(state, TrayPanelPalette.Light); 466var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 480 }; 489var panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 }; 495Assert.Null(panel.HitTest(100, TrayPanel.HeaderHeight - 1)); 502var panel = new TrayPanel(state, TrayPanelPalette.Light) { MaxHeight = 400 }; 523var panel = new TrayPanel(state, TrayPanelPalette.Light); 543var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 553var panel = new TrayPanel(state, TrayPanelPalette.Light); 566var panel = new TrayPanel(state, TrayPanelPalette.Light); 578var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 592var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 605var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 618var panel = new TrayPanel(state, TrayPanelPalette.Light); 630var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 650var panel = new TrayPanel(state, TrayPanelPalette.Light); 667var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 694var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 707var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 720var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 }; 742var panel = new TrayPanel(state, TrayPanelPalette.Light); 772var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 785var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 }; 802var (text, _) = TrayPanel.GetHeaderStatus(new((DiscoveryState)discovery, [], ""), TrayPanelPalette.Light); 810Assert.Equal("3 running · 1 needs attention", TrayPanel.GetHeaderStatus(TrayPanelSamples.Typical(), TrayPanelPalette.Light).Text); 811Assert.Equal("No AppHosts running", TrayPanel.GetHeaderStatus(TrayPanelSamples.Empty(), TrayPanelPalette.Light).Text); 813TrayPanel.GetHeaderStatus(TrayPanelSamples.Errors(), TrayPanelPalette.Light).Text); 823Assert.Equal(($"Needs attention · {location}", false), TrayPanel.GetRowDetail(host, live: true, showPid: false)); 824Assert.Equal(($"Needs attention · {location} · PID 48213", false), TrayPanel.GetRowDetail(host, live: true, showPid: true)); 825Assert.Equal(($"Status unavailable · {location}", false), TrayPanel.GetRowDetail(host, live: false, showPid: false)); 826Assert.Equal(("Boom.", true), TrayPanel.GetRowDetail(host with { Error = "Boom." }, live: true, showPid: false)); 828TrayPanel.GetRowDetail(host with { Health = AppHostHealth.NoResources }, live: true, showPid: false)); 847Assert.Equal((PanelStatusGlyph)expected, TrayPanel.GetStatusGlyph(host, live)); 853Assert.Equal(PanelStatusGlyph.Stopped, TrayPanel.GetStatusGlyph(TrayPanelSamples.Offline("/src/A/A.cs"), live: true)); 854Assert.Equal(PanelStatusGlyph.Busy, TrayPanel.GetStatusGlyph(TrayPanelSamples.Offline("/src/A/A.cs", starting: true), live: true)); 855Assert.Equal(PanelStatusGlyph.Warning, TrayPanel.GetStatusGlyph(TrayPanelSamples.Offline("/src/A/A.cs", error: "No."), live: true)); 863double[] columns = [TrayPanel.EdgeMargin, TrayPanel.TextLeft, TrayPanel.NestedTextLeft]; 887double[] trailing = [TrayPanel.TrailingCenter, TrayPanel.TrailingCenter - 30, TrayPanel.TrailingCenter - 60]; 893Assert.Equal(TrayPanel.ButtonSize, button.Bounds.Width); 896Assert.Equal(TrayPanel.LeadingCenter, button.Bounds.CenterX); 915Assert.Equal(TrayPanel.TextLeft, box.Bounds.X); 919Assert.Equal(TrayPanel.LeadingCenter, box.Bounds.CenterX); 924row => Assert.True(row.Bounds.X == TrayPanel.RowInset && row.Bounds.Right == TrayPanel.Width - TrayPanel.RowInset, $"{name}: {row.Key} at {row.Bounds}")); 936Assert.All(scene.Guides.Where(guide => guide.Label == "action icon"), guide => Assert.Equal(TrayPanel.LeadingCenter, guide.Bounds.CenterX)); 947&& bounds.CenterY < TrayPanel.HeaderHeight); 950Assert.Equal(TrayPanel.HeaderHeight / 2, logo.Bounds.CenterY); 951Assert.Equal(TrayPanel.HeaderHeight / 2, title.Baseline - PanelFonts.CapHeight(PanelFontRole.Title) / 2); 952Assert.Equal(TrayPanel.LeadingCenter, logo.Bounds.CenterX); 953Assert.Equal(TrayPanel.TextLeft, title.Bounds.X); 957Assert.Equal(TrayPanel.Width - TrayPanel.EdgeMargin, status.Bounds.Right); 967var panel = CreatePanel(name, palette); 972Assert.Equal(TrayPanel.FooterHeight, TrayPanel.HeaderHeight); 976Assert.Contains(gutters, bounds => Near(bounds, new(0, 0, TrayPanel.Width, TrayPanel.HeaderHeight))); 977Assert.Contains(gutters, bounds => Near(bounds, new(0, scene.Height - TrayPanel.FooterHeight, TrayPanel.Width, TrayPanel.FooterHeight))); 980Assert.Contains(new PanelRect(0, TrayPanel.HeaderHeight - 1, TrayPanel.Width, 1), separators); 981Assert.Contains(new PanelRect(0, scene.Height - TrayPanel.FooterHeight, TrayPanel.Width, 1), separators); 984var middle = TrayPanel.HeaderHeight / 2; 985var header = scene.Commands.OfType<TextCommand>().Where(text => text.Bounds.Bottom <= TrayPanel.HeaderHeight).ToList(); 991Assert.All(scene.Targets.TakeLast(3), button => Assert.Equal(scene.Height - TrayPanel.FooterHeight / 2, button.Bounds.CenterY)); 1004Assert.Equal(TrayPanel.GetHeaderStatus(state, TrayPanelPalette.Light).Text, status.Name); 1012var withNotice = new TrayPanel(TrayPanelSamples.Errors(), TrayPanelPalette.Light); 1013var without = new TrayPanel(TrayPanelSamples.Errors() with { Notice = null }, TrayPanelPalette.Light); 1017Assert.Equal(TrayPanel.HeaderHeight, without.Viewport.Y); 1128var panel = new TrayPanel(state, palette); 1271var panel = CreatePanel(name, palette, maxHeight: 520); 1315var (status, _) = TrayPanel.GetHeaderStatus(state, TrayPanelPalette.Light); 1331var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 1349var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 1365var panel = new TrayPanel(state, TrayPanelPalette.Light); 1377var panel = new TrayPanel(TrayPanelSamples.Many(), TrayPanelPalette.Light) { MaxHeight = 400 }; 1396var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light); 1413var panel = new TrayPanel(state, TrayPanelPalette.Light); 1438var panel = new TrayPanel(TrayPanelSamples.Typical(), TrayPanelPalette.Light) { QuitVerb = verb }; 1454Assert.All(footer, target => Assert.Equal(TrayPanel.ButtonSize, target.Bounds.Width)); 1459private static PanelHitTarget Target(TrayPanel panel, PanelTargetKind kind, AppHostMenuItem host) 1462private static PanelResponse Click(TrayPanel panel, PanelRect bounds, double? offsetX = null)