28 instantiations of LinuxTrayMenuItem
Aspire.Tray.Tests (28)
LinuxTrayTests.cs (1)
340
Assert.Throws<UnauthorizedAccessException>(() => application.Execute(
new
("", LinuxTrayAction.Folder, host)));
src\Aspire.Tray\Linux\LinuxTrayApplication.cs (1)
667
Execute(
new
("", command, action.Host)
src\Aspire.Tray\Linux\LinuxTrayMenu.cs (26)
31
List<LinuxTrayMenuItem> items = [
new
($"Aspire \u00b7 {summary}", Enabled: false)];
36
items.Add(
new
(notice, Enabled: false));
42
items.Add(
new
("", LinuxTrayAction.Separator));
44
recent.Add(
new
("", LinuxTrayAction.Separator));
45
recent.Add(
new
("Clear recent AppHosts...", LinuxTrayAction.ClearRecent, Enabled: state.CanClearRecent));
46
items.Add(
new
($"Recently opened \u00b7 {state.RecentAppHosts.Count}", Children: recent));
48
items.Add(
new
("", LinuxTrayAction.Separator));
49
items.Add(
new
("Settings...", LinuxTrayAction.Settings) { Icon = LinuxTrayIcon.Settings });
50
items.Add(
new
("Documentation", LinuxTrayAction.Documentation) { Icon = LinuxTrayIcon.Documentation });
51
items.Add(
new
("Quit", LinuxTrayAction.Quit));
61
items.Add(
new
("", LinuxTrayAction.Separator));
62
items.Add(
new
(title, Enabled: false));
71
actions.Add(
new
("Open dashboard", LinuxTrayAction.Dashboard, host, host.CanOpenDashboard));
72
actions.Add(
new
(host.IsStopping ? "Stopping..." : "Stop",
77
actions.Add(
new
(host.IsStarting ? "Starting..." : "Start", LinuxTrayAction.Start, host, host.CanStart));
79
actions.Add(
new
("", LinuxTrayAction.Separator));
82
actions.Add(
new
("Open in", Children: applications.Select(application =>
83
new
LinuxTrayMenuItem
(application.Title, LinuxTrayAction.OpenIn, host) { Application = application }).ToArray()));
85
actions.Add(
new
("Show in file manager", LinuxTrayAction.Folder, host));
86
actions.Add(
new
("Copy path", LinuxTrayAction.CopyPath, host));
87
actions.Add(
new
(host.IsPinned ? "Unpin" : "Pin", LinuxTrayAction.TogglePin, host));
90
actions.Add(
new
("Remove from recent", LinuxTrayAction.RemoveRecent, host));
92
actions.Add(
new
("", LinuxTrayAction.Separator));
93
actions.Add(
new
(host.Error ?? Status(host), Enabled: false));
95
actions.Add(
new
(host.IsRunning ? $"{location} \u00b7 PID {host.Id.AppHostPid}" : location, Enabled: false));
100
return
new
($"{host.Title} \u00b7 {status}", Host: host, Children: actions)
26 references to LinuxTrayMenuItem
Aspire.Tray.Tests (26)
LinuxTrayTests.cs (16)
56
void Append(IReadOnlyList<
LinuxTrayMenuItem
> items, int depth)
58
foreach (
var
item in items)
458
var
row = Assert.Single(menu, item => item.Host is not null);
467
var
openIn = row.Children!.Single(item => item.Label == "Open in");
468
var
editor = Assert.Single(openIn.Children!);
488
var
row = Assert.Single(menu, item => item.Host is not null);
490
var
recentRow = Assert.Single(menu.Single(item => item.Label == "Recently opened \u00b7 1").Children!, item => item.Host is not null);
508
var
row = Assert.Single(menu, item => item.Host is not null);
528
var
recent = menu.Single(item => item.Label == "Recently opened \u00b7 2");
529
var
row = recent.Children!.Single(item => item.Host?.Id.AppHostPath == removed);
530
var
action = row.Children!.Single(item => item.Action == LinuxTrayAction.RemoveRecent);
560
var
openIn = row.Children!.Single(item => item.Label == "Open in");
585
var
row = Assert.Single(menu, item => item.Host is not null);
595
var
row = Assert.Single(LinuxTrayMenu.Build(new(DiscoveryState.Live, [host], ""), []), item => item.Host is not null);
617
var
row = Assert.Single(LinuxTrayMenu.Build(state, []), item => item.Host is not null);
641
var
row = LinuxTrayMenu.Build(new(DiscoveryState.Live, [host], ""), [])
src\Aspire.Tray\Linux\LinuxTrayApplication.cs (5)
17
private readonly Dictionary<nint,
LinuxTrayMenuItem
> _commands = [];
372
private unsafe nint BuildMenu(IReadOnlyList<
LinuxTrayMenuItem
> items)
375
foreach (
var
item in items)
473
&& app._commands.TryGetValue(widget, out
var
item) && item.Enabled)
486
internal void Execute(
LinuxTrayMenuItem
item)
src\Aspire.Tray\Linux\LinuxTrayMenu.cs (5)
10
AppHostMenuItem? Host = null, bool Enabled = true, IReadOnlyList<
LinuxTrayMenuItem
>? Children = null)
28
internal static IReadOnlyList<
LinuxTrayMenuItem
> Build(TrayViewState state, IReadOnlyList<LinuxFolderApplication> applications)
31
List<
LinuxTrayMenuItem
> items = [new($"Aspire \u00b7 {summary}", Enabled: false)];
66
LinuxTrayMenuItem
Host(AppHostMenuItem host, bool recent)
68
List<
LinuxTrayMenuItem
> actions = [];