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