143 references to PanelTargetKind
aspire-tray (143)
NativeSmokeHarness.cs (17)
165
_application.PickRowActionForSmoke(id,
PanelTargetKind
.CopyPath);
170
_application.ClickPanelForSmoke(
PanelTargetKind
.Dashboard, _hosts[0].Id);
172
_application.ClickPanelForSmoke(
PanelTargetKind
.Documentation);
176
_application.PickRowActionForSmoke(_hosts[0].Id,
PanelTargetKind
.TogglePin);
179
_application.ClickPanelForSmoke(
PanelTargetKind
.Stop, _hosts[0].Id);
201
_application.PressPanelForSmoke(
PanelTargetKind
.Stop, _hosts[2].Id);
204
_application.ClickPanelForSmoke(
PanelTargetKind
.Start, missing.Id);
206
_application.ClickPanelForSmoke(
PanelTargetKind
.ConfirmCancel, missing.Id);
208
_application.ClickPanelForSmoke(
PanelTargetKind
.Start, missing.Id);
209
_application.ClickPanelForSmoke(
PanelTargetKind
.ConfirmAccept, missing.Id);
212
_application.ClickPanelForSmoke(
PanelTargetKind
.Start, pinned.Id);
223
_application.ClickPanelForSmoke(
PanelTargetKind
.ClearRecent);
225
_application.ClickPanelForSmoke(
PanelTargetKind
.ConfirmCancel);
227
_application.ClickPanelForSmoke(
PanelTargetKind
.ClearRecent);
228
_application.ClickPanelForSmoke(
PanelTargetKind
.ConfirmAccept);
273
_application.ClickPanelForSmoke(
PanelTargetKind
.Dashboard, state.AppHosts.Single(host => host.IsRunning).Id);
350
Require(_application.PanelForSmoke.Scene.Accessibility.Single(element => element.Target?.Kind ==
PanelTargetKind
.LaunchAtSignIn)
src\Aspire.Tray\Common\TrayPanel.cs (101)
232
_focus = new(
PanelTargetKind
.Back, PanelSection.None, null);
428
_focus = new(
PanelTargetKind
.OpenInMenu, open.Section, open.Host);
465
private static bool IsPrimary(
PanelTargetKind
kind)
466
=> kind is
PanelTargetKind
.Row or
PanelTargetKind
.ToggleRecent or
PanelTargetKind
.Documentation
467
or
PanelTargetKind
.Settings or
PanelTargetKind
.Quit or
PanelTargetKind
.ConfirmCancel or
PanelTargetKind
.Back
468
or
PanelTargetKind
.LaunchAtSignIn || IsActionItem(kind);
470
private static bool IsConfirmTarget(
PanelTargetKind
kind)
471
=> kind is
PanelTargetKind
.ConfirmCancel or
PanelTargetKind
.ConfirmAccept;
474
private static bool IsActionItem(
PanelTargetKind
kind)
475
=> kind is
PanelTargetKind
.OpenInMenu or
PanelTargetKind
.OpenIn or
PanelTargetKind
.ShowInFolder or
PanelTargetKind
.CopyPath
476
or
PanelTargetKind
.TogglePin or
PanelTargetKind
.RemoveRecent;
508
var top = Scene.Targets.FirstOrDefault(target => target.Key == row with { Kind =
PanelTargetKind
.Row, Item = 0 })?.Bounds.Y ?? bottom;
528
_focus = new(
PanelTargetKind
.More, actions.Section, actions.Host);
538
_focus = new(
PanelTargetKind
.ConfirmCancel, confirm.Section, confirm.Host?.Id);
570
PanelConfirmKind.ClearRecent => new(
PanelTargetKind
.ClearRecent, confirm.Section, null),
571
_ => new(
PanelTargetKind
.Start, confirm.Section, confirm.Host?.Id)
580
_focus = new(
PanelTargetKind
.Settings, PanelSection.None, null);
605
index = order.FindIndex(target => target.Kind ==
PanelTargetKind
.Row && target.Key.Host == current.Host
661
if (_actions is not null && target.Kind is not (
PanelTargetKind
.More or
PanelTargetKind
.Row) && !IsActionItem(target.Kind))
671
case
PanelTargetKind
.Row:
673
case
PanelTargetKind
.Dashboard:
675
case
PanelTargetKind
.More:
678
case
PanelTargetKind
.Stop:
680
case
PanelTargetKind
.Start:
682
case
PanelTargetKind
.OpenInMenu:
688
case
PanelTargetKind
.OpenIn:
695
case
PanelTargetKind
.ShowInFolder:
698
case
PanelTargetKind
.CopyPath:
701
case
PanelTargetKind
.TogglePin:
704
case
PanelTargetKind
.RemoveRecent:
707
case
PanelTargetKind
.ToggleRecent:
711
case
PanelTargetKind
.ClearRecent:
714
case
PanelTargetKind
.ConfirmCancel:
717
case
PanelTargetKind
.ConfirmAccept when _confirm is { } confirmed:
725
case
PanelTargetKind
.Back:
726
case
PanelTargetKind
.Settings when _settings is not null:
729
case
PanelTargetKind
.LaunchAtSignIn:
731
case
PanelTargetKind
.Documentation:
733
case
PanelTargetKind
.Settings:
735
case
PanelTargetKind
.Quit:
777
void Add(ListItemKind kind, double height, PanelSection section, AppHostMenuItem? host,
PanelTargetKind
target = default)
818
Add(ListItemKind.SectionHeader, SectionHeaderHeight, PanelSection.None, null,
PanelTargetKind
.LaunchAtSignIn);
819
Add(ListItemKind.SettingsToggle, SettingsRowHeight, PanelSection.None, null,
PanelTargetKind
.LaunchAtSignIn);
820
Add(ListItemKind.SectionHeader, SectionHeaderHeight, PanelSection.None, null,
PanelTargetKind
.Documentation);
881
var general = item.Target ==
PanelTargetKind
.LaunchAtSignIn;
1024
Box(actions[i].Kind ==
PanelTargetKind
.OpenIn
1027
actions[i].Kind ==
PanelTargetKind
.OpenIn ? "open-in app icon" : "action icon");
1152
var toggleKey = new PanelTargetKey(
PanelTargetKind
.ToggleRecent, section, null);
1163
var clearKey = new PanelTargetKey(
PanelTargetKind
.ClearRecent, section, null);
1173
var rowKey = new PanelTargetKey(
PanelTargetKind
.Row, section, host.Id);
1188
? new[] {
PanelTargetKind
.Dashboard,
PanelTargetKind
.Stop,
PanelTargetKind
.More }
1189
: [
PanelTargetKind
.Start,
PanelTargetKind
.More];
1198
foreach (
var
kind in buttons)
1205
PanelTargetKind
.Dashboard => (PanelIcon.ExternalLink, $"Open dashboard for {host.DisplayName}", "Open dashboard", host.CanOpenDashboard),
1206
PanelTargetKind
.Stop => (PanelIcon.Stop, $"Stop {host.DisplayName}", "Stop", host.CanStop),
1207
PanelTargetKind
.Start => (PanelIcon.Play, $"Start {host.DisplayName}", "Start", host.CanStart),
1218
if (kind ==
PanelTargetKind
.More && expanded && _hover != key && _pressed != key)
1257
private List<(
PanelTargetKind
Kind, int Item, PanelIcon Icon, string Label, string Name)> GetRowActions(AppHostMenuItem host, PanelSection section)
1260
var actions = new List<(
PanelTargetKind
, int, PanelIcon, string, string)>();
1263
actions.Add((
PanelTargetKind
.OpenInMenu, 0, PanelIcon.AppWindow, "Open in",
1268
actions.Add((
PanelTargetKind
.OpenIn, i, PanelIcon.AppWindow, application, $"Open {name} in {application}"));
1271
actions.Add((
PanelTargetKind
.ShowInFolder, 0, PanelIcon.Folder, $"Show in {_fileManagerName}", $"Show {name} in {_fileManagerName}"));
1272
actions.Add((
PanelTargetKind
.CopyPath, 0, PanelIcon.Copy, "Copy path", $"Copy the folder path of {name}"));
1274
? (
PanelTargetKind
.TogglePin, 0, PanelIcon.Unpin, "Unpin", $"Unpin {name}")
1275
: (
PanelTargetKind
.TogglePin, 0, PanelIcon.Pin, "Pin", $"Pin {name}"));
1278
actions.Add((
PanelTargetKind
.RemoveRecent, 0, PanelIcon.Remove, "Remove from recent", $"Remove {name} from recent AppHosts"));
1301
if (kind ==
PanelTargetKind
.OpenIn)
1316
if (kind ==
PanelTargetKind
.OpenInMenu)
1388
var cancelKey = new PanelTargetKey(
PanelTargetKind
.ConfirmCancel, section, id);
1389
var acceptKey = new PanelTargetKey(
PanelTargetKind
.ConfirmAccept, section, id);
1418
var backKey = new PanelTargetKey(
PanelTargetKind
.Back, PanelSection.None, null);
1427
private void AddSettingsToggle(List<PanelCommand> commands, List<PanelHitTarget> targets,
PanelTargetKind
kind, PanelSettings settings,
1482
(
PanelTargetKind
.Settings, PanelIcon.Gear, _settings is null ? "Settings" : "Close settings",
1484
(
PanelTargetKind
.Documentation, PanelIcon.Globe, "Open Aspire documentation", "Documentation", null, right - 2 * ButtonSize - ButtonGap),
1485
(
PanelTargetKind
.Quit, PanelIcon.Power, _quitVerb, quitDescription, quitDescription, right - ButtonSize)
1490
if (kind ==
PanelTargetKind
.Settings && _settings is not null && _hover != key && _pressed != key)
1535
private static bool IsChrome(
PanelTargetKind
kind)
1536
=> kind is
PanelTargetKind
.Documentation or
PanelTargetKind
.Settings or
PanelTargetKind
.Quit or
PanelTargetKind
.Back;
1540
&& value.Kind is
PanelTargetKind
.Row or
PanelTargetKind
.Dashboard or
PanelTargetKind
.Stop
1541
or
PanelTargetKind
.Start or
PanelTargetKind
.More;
1630
PanelTargetKind
Target);
src\Aspire.Tray\Common\TrayPanelScene.cs (2)
165
internal readonly record struct PanelTargetKey(
PanelTargetKind
Kind, PanelSection Section, AppHostId? Host, int Item = 0);
198
public
PanelTargetKind
Kind => Key.Kind;
TrayApplication.NativeSmoke.cs (23)
93
var first = panel.Scene.Targets.FirstOrDefault(target => target.Kind ==
PanelTargetKind
.Row);
102
ApplyPanelResponse(panel.Invoke(first.Key with { Kind =
PanelTargetKind
.More }));
204
private PanelHitTarget FindPanelTargetForSmoke(
PanelTargetKind
kind, AppHostId? host, int item = 0)
210
ClickPanelForSmoke(panel.Scene.Targets.Single(target => target.Kind ==
PanelTargetKind
.ToggleRecent));
225
internal void ClickPanelForSmoke(
PanelTargetKind
kind, AppHostId? host = null, int item = 0)
240
internal void PressPanelForSmoke(
PanelTargetKind
kind, AppHostId? host = null)
251
internal void PickRowActionForSmoke(AppHostId host,
PanelTargetKind
kind, int item = 0)
253
ClickPanelForSmoke(
PanelTargetKind
.More, host);
264
PressPanelForSmoke(
PanelTargetKind
.More, host);
266
var row = panel.Scene.Targets.Single(target => target.Kind ==
PanelTargetKind
.Row && target.Key.Host == host);
280
NativeSmokeHarness.Require(panel.Scene.Targets.Where(target => target.Kind ==
PanelTargetKind
.OpenIn).Select(target => target.AccessibleName)
287
NativeSmokeHarness.Require(panel.FocusedTarget == items[0].Key && !panel.Scene.Targets.Any(target => target.Kind ==
PanelTargetKind
.OpenIn),
291
NativeSmokeHarness.Require(panel.ActionsRow is null && _panelVisible && panel.FocusedTarget?.Kind ==
PanelTargetKind
.More,
377
ClickPanelForSmoke(
PanelTargetKind
.Settings);
384
var toggle = panel.Scene.Accessibility.Single(element => element.Target?.Kind ==
PanelTargetKind
.LaunchAtSignIn);
393
ClickPanelForSmoke(
PanelTargetKind
.LaunchAtSignIn);
400
ClickPanelForSmoke(
PanelTargetKind
.Back);
433
var rows = panel.Scene.Targets.Where(target => target.Kind ==
PanelTargetKind
.Row && target.Key.Section != PanelSection.Recent).ToList();
440
bool Enabled(
PanelTargetKind
kind) => panel.Scene.Targets.FirstOrDefault(target => target.Key == row.Key with { Kind = kind })?.Enabled == true;
442
&& Enabled(
PanelTargetKind
.Dashboard) == host.CanOpenDashboard && Enabled(
PanelTargetKind
.Stop) == host.CanStop
443
&& Enabled(
PanelTargetKind
.Start) == host.CanStart, "A panel row misrepresents its AppHost's actions.");
452
NativeSmokeHarness.Require(panel.Scene.Accessibility.Single(element => element.Target?.Kind ==
PanelTargetKind
.Quit) is