138 instantiations of new
Aspire.Tray.Tests (138)
LinuxPlasmaAnchorTests.cs (31)
57new LinuxPlasmaAnchor.Output("eDP-1", new(0, 0, 1920, 1280), 1.5), 58new LinuxPlasmaAnchor.Output("DP-5", new(-3072, -100, 3072, 1728), 1.25) 79new("eDP-1", new(0, 0, 1920, 1280), 1.5), 80new("DP-5", new(1920, 0, 3072, 1728), 1.25) 83new("eDP-1", new(0, 0, 2880, 1920), false), 84new("DP-5", new(2880, 0, 4608, 2592), true) 87var anchor = LinuxPlasmaAnchor.Map(new(5735, 20, 0, 0), outputs, monitors, true, pointer: null); 89Assert.Equal(new PanelRect(7458, 24, 0, 0), anchor); 98new("eDP-1", new(0, 0, 1920, 1280), 1.5), 99new("DP-5", new(1920, 0, 3072, 1728), 1.25) 101LinuxPlasmaAnchor.Monitor[] monitors = [new("GTK model name", new(1920, 0, 3072, 1728), true)]; 103var anchor = LinuxPlasmaAnchor.Map(new(5735, 20, 0, 0), outputs, monitors, true, pointer: null); 105Assert.Equal(new PanelRect(4972, 16, 0, 0), anchor); 117new("eDP-1", new(0, 0, 1920, 1280), 1.5), 118new("DP-5", new(1920, 0, 3072, 1728), 1.25) 121new("eDP-1", new(0, 0, 2880, 1920), !externalPrimary), 122new("DP-5", new(2880, 0, 4608, 2592), externalPrimary) 124var anchor = LinuxPlasmaAnchor.Map(new(2000, 20, 0, 0), outputs, monitors, true, (pointerX, pointerY)); 132LinuxPlasmaAnchor.Output[] outputs = [new("DP-5", new(-1920, -100, 1920, 1080), 1.25)]; 133LinuxPlasmaAnchor.Monitor[] monitors = [new("DP-5", new(-2880, -150, 2880, 1620), true)]; 135var anchor = LinuxPlasmaAnchor.Map(new(-2380, -105, 0, 0), outputs, monitors, true, pointer: null); 137Assert.Equal(new PanelRect(-2856, -126, 0, 0), anchor); 144new("eDP-1", new(0, 0, 1920, 1280), 1.5), 145new("DP-5", new(1920, 0, 3072, 1728), 1.25) 147LinuxPlasmaAnchor.Monitor[] monitors = [new("DP-5", new(2880, 0, 4608, 2592), true)]; 149var anchor = LinuxPlasmaAnchor.Map(new(5735, 20, 0, 0), outputs, monitors, true, pointer: (100, 100)); 151Assert.Equal(new PanelRect(7458, 24, 0, 0), anchor); 178LinuxPlasmaAnchor.Output[] outputs = [new("DP-5", new(1920, 0, 3072, 1728), 1.25)]; 180new("DP-5", new(1920 * gtkScale, 0, 3072 * gtkScale, 1728 * gtkScale), true) 183var anchor = LinuxPlasmaAnchor.Map(new(4972, 16, 0, 0), outputs, monitors, false, pointer: null); 185Assert.Equal(new PanelRect(expectedX, expectedY, 0, 0), anchor);
LinuxTrayTests.cs (7)
100var bounds = LinuxTrayPanel.Place(new(0, 30, 1000, 770), anchorX, anchorY, 180, 1); 102Assert.Equal(new PanelRect(x, y, TrayPanel.Width, 180), bounds); 108var bounds = LinuxTrayPanel.Place(new(-1920, 30, 1920, 1050), -900, 15, 300, 1); 110Assert.Equal(new PanelRect(-1080, 34, TrayPanel.Width, 300), bounds); 143var workarea = new PanelRect(-1920, 30, 1920, 1050); 160var geometry = new PanelRect(-1920, 30, 1920, 1050); 162var target = new PanelRect(20, 100, 64, 30);
src\Aspire.Tray\Common\TrayPanel.cs (66)
830_viewport = new(0, HeaderHeight + noticeHeight, Width, Math.Max(0, height - chrome)); 836var panel = new PanelRect(0, 0, Width, height); 837var footer = new PanelRect(0, height - FooterHeight, Width, FooterHeight); 840commands.Add(new FillPathCommand(PanelPath.Rectangle(new(0, footer.Y, Width, 1)), palette.Separator)); 843commands.Add(new FillPathCommand(PanelPath.RoundedRect(new(0, 0, Width, HeaderHeight), CornerRadius, CornerRadius, 0, 0), palette.Gutter)); 844commands.Add(new FillPathCommand(PanelPath.Rectangle(new(0, HeaderHeight - 1, Width, 1)), palette.Separator)); 862commands.Add(new FillPathCommand(PanelPath.Rectangle(new(0, _viewport.Y, Width, 1)), palette.Separator)); 882var headerBounds = new PanelRect(20, top + 4, 200, 24); 915commands.Add(new FillPathCommand(PanelPath.RoundedRect(new(Width - 7, thumbY, 4, thumb), 2), palette.TextTertiary.WithAlpha(0.4))); 951var all = new PanelRect(0, 0, Width, height); 962Line(HeaderHeight / 2, "header", new(0, 0, Width, HeaderHeight)); 966Line(HeaderHeight + 8 + 17, "notice", new(0, HeaderHeight, Width, _viewport.Y - HeaderHeight)); 967Box(new(LeadingCenter - 8, HeaderHeight + 8 + 9, 16, 16), "notice icon"); 969_guides.Add(new(PanelGuideKind.Baseline, HeaderBaseline, "header baseline", new(TextLeft, 0, Width - TextLeft, HeaderHeight))); 972Box(new(EdgeMargin, HeaderHeight / 2 - 10, 20, 20), "logo"); 976Box(new(LeadingCenter - 8, HeaderHeight / 2 - 8, 16, 16), "back"); 979Line(footerTop + FooterHeight / 2, "footer", new(0, footerTop, Width, FooterHeight)); 983Box(new(center - 8, footerTop + FooterHeight / 2 - 8, 16, 16), "footer icon"); 993var span = new PanelRect(0, top, Width, item.Height); 1000Box(new(EdgeMargin, top + RowHeight / 2 - 10, 20, 20), "status"); 1005Box(new(center - 8, top + RowHeight / 2 - 8, 16, 16), "row button icon"); 1010Box(new(TrailingCenter - 8, top + 8, 16, 16), "recent chevron"); 1021Line(middle, "action", new(0, itemTop, Width, ActionItemHeight)); 1025? new(TextLeft, middle - 8, 16, 16) 1026: new(LeadingCenter - 8, middle - 8, 16, 16), 1048Box(new(Width / 2 - 16, top + 20, 32, 32), "empty art"); 1074commands.Add(new LogoCommand(new(EdgeMargin, middle - 10, 20, 20))); 1075var title = new PanelRect(TextLeft, middle - 10, HeaderTitleWidth, 20); 1084var statusBounds = new PanelRect(statusLeft, middle - 8, Width - EdgeMargin - statusLeft, 16); 1091var banner = new PanelRect(RowInset, HeaderHeight + 8, Width - 2 * RowInset, height); 1099TrayPanelGlyphs.AddIcon(commands, PanelIcon.Alert, new(LeadingCenter - 8, banner.Y + 9, 16, 16), palette.BannerText); 1100var text = new PanelRect(TextLeft, banner.Y + 8, NoticeTextWidth, height - 16); 1114var art = new PanelRect(Width / 2 - 16, top + 20, 32, 32); 1123var titleBounds = new PanelRect(20, top + 62, Width - 40, 20); 1124var hintBounds = new PanelRect(44, top + 84, Width - 88, 34); 1141var labelBounds = new PanelRect(20, top + 4, 200, 24); 1151var toggle = new PanelRect(RowInset, top + 4, Width - 2 * RowInset, 24); 1156new(RowContentRight - 22, top + 8, 16, 16), palette.TextTertiary); 1162var clear = new PanelRect(RowContentRight - 30 - 52, top + 6, 52, 20); 1174var row = new PanelRect(RowInset, top + 2, Width - 2 * RowInset, RowHeight - 4); 1185TrayPanelGlyphs.AddStatus(commands, GetStatusGlyph(host, live), new(20, top + 16, 20, 20), palette); 1192commands.Add(new TextCommand(new(TextLeft, top + 8, textRight - TextLeft, 18), host.DisplayName, PanelFontRole.Name, palette.TextPrimary)); 1193commands.Add(new TextCommand(new(TextLeft, top + 27, textRight - TextLeft, 16), detail, PanelFontRole.Body, 1200var bounds = new PanelRect(x, top + (RowHeight - ButtonSize) / 2, ButtonSize, ButtonSize); 1291var card = new PanelRect(RowInset, top, Width - 2 * RowInset, height - ActionListGap); 1297var item = new PanelRect(card.X + ActionListPadding, y, card.Width - 2 * ActionListPadding, ActionItemHeight); 1306TrayPanelGlyphs.AddIcon(fallback, PanelIcon.AppWindow, new(TextLeft, item.Y + 7, 16, 16), iconColor); 1307commands.Add(new AppIconCommand(new(TextLeft, item.Y + 7, 16, 16), _openInApplications[index], fallback)); 1308commands.Add(new TextCommand(new(NestedTextLeft, item.Y, item.Right - 8 - NestedTextLeft, item.Height), label, 1314TrayPanelGlyphs.AddIcon(commands, icon, new(22, item.Y + 7, 16, 16), iconColor); 1321new(TrailingCenter - 8, item.Y + 7, 16, 16), palette.TextTertiary); 1323commands.Add(new TextCommand(new(TextLeft, item.Y, labelRight - TextLeft, item.Height), label, PanelFontRole.Body, palette.TextPrimary)); 1363var card = new PanelRect(RowInset, top + 4, Width - 2 * RowInset, ConfirmHeight - 8); 1374var questionBounds = new PanelRect(card.X + 12, card.Y + 9, textWidth, 18); 1375var detailBounds = new PanelRect(card.X + 12, card.Y + 28, textWidth, 16); 1386var acceptBounds = new PanelRect(card.Right - 10 - ButtonWidth, controlsY, ButtonWidth, ButtonSize); 1387var cancelBounds = new PanelRect(acceptBounds.X - 8 - ButtonWidth, controlsY, ButtonWidth, ButtonSize); 1417var back = new PanelRect(LeadingCenter - ButtonSize / 2, (HeaderHeight - ButtonSize) / 2, ButtonSize, ButtonSize); 1422var title = new PanelRect(TextLeft, (HeaderHeight - 20) / 2, Width - EdgeMargin - TextLeft, 20); 1430var row = new PanelRect(RowInset, top + 2, Width - 2 * RowInset, SettingsRowHeight - 4); 1444var toggle = new PanelRect(RowContentRight - 36, top + 9, 32, 18); 1446commands.Add(new TextCommand(new(20, top + 8, textWidth, 20), title, PanelFontRole.Name, 1448commands.Add(new TextCommand(new(20, top + 28, textWidth, 30), description, PanelFontRole.Body, 1456var name = new PanelRect(20, top + 4, Width - 40, 20); 1466var bounds = new PanelRect(20, y, Width - 40, 16); 1488var bounds = new PanelRect(x, footer.Y + 8, ButtonSize, ButtonSize);
src\Aspire.Tray\Common\TrayPanelGeometry.cs (4)
24public PanelRect Inset(double dx, double dy) => new(X + dx, Y + dy, Width - 2 * dx, Height - 2 * dy); 26public PanelRect Offset(double dx, double dy) => new(X + dx, Y + dy, Width, Height); 34return right <= x || bottom <= y ? default : new(x, y, right - x, bottom - y); 205return minX > maxX ? default : new(minX, minY, maxX - minX, maxY - minY);
src\Aspire.Tray\Common\TrayPanelGlyphs.cs (5)
81Fill(PanelPath.RoundedRect(new(7, 7, 6, 6), 1.4), palette.Neutral); 112Fill(PanelPath.RoundedRect(new(4.25, 4.25, 7.5, 7.5), 1.5)); 156Stroke(PanelPath.RoundedRect(new(2.25, 3, 11.5, 10), 1.75), 1.4); 167Stroke(PanelPath.RoundedRect(new(5.75, 5.75, 7.5, 7.5), 1.5), 1.4); 208var track = new PanelRect(0, 0, ToggleDesignWidth, ToggleDesignHeight);
src\Aspire.Tray\Linux\LinuxPanelAccessibility.cs (1)
114return new(x + bounds.X * scale, y + bounds.Y * scale, bounds.Width * scale, bounds.Height * scale);
src\Aspire.Tray\Linux\LinuxPlasmaAnchor.cs (4)
28new(geometry.X, geometry.Y, geometry.Width, geometry.Height), monitor == primary); 58var native = new PanelRect(output.Logical.X * originScale, output.Logical.Y * originScale, 73candidates.Add((new(monitor.Geometry.X + (anchor.X - native.X) * scaleX, 229geometry = new(values[0], values[1], values[2], values[3]);
src\Aspire.Tray\Linux\LinuxTrayPanel.cs (8)
100return surface.Geometry != new PanelRect(geometry.X, geometry.Y, geometry.Width, geometry.Height) 133_anchorRequest ??= LinuxPlasmaAnchor.TranslateAsync(new(x, y, 0, 0)); 138SetAnchor(new(x, y, 0, 0)); 273return (Monitor: monitor, Geometry: new PanelRect(geometry.X, geometry.Y, geometry.Width, geometry.Height), 429_workarea = new(workarea.X, workarea.Y, workarea.Width, workarea.Height); 475return new(x, y, width, height); 552&& (!surface.Main || !new PanelRect(0, 0, _panel.Scene.Width, _panel.Scene.Height).Contains(x, y))) 565if (!surface.Main || !new PanelRect(0, 0, _panel.Scene.Width, _panel.Scene.Height).Contains(x, y))
TrayPanelTests.cs (12)
72var bounds = new PanelRect(0, 0, scene.Width, scene.Height); 762var box = new PanelRect(10, 20, 32, 18); 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); 988Assert.All(scene.Commands.OfType<LogoCommand>(), logo => Assert.Equal(new PanelRect(20, middle - 10, 20, 20), logo.Bounds)); 1055var rect = new PanelRect(8, 10, 100, 40); 1073var box = new PanelRect(40, 60, 20, 20); 1102var box = new PanelRect(4, 8, 16, 16); 1159TrayPanelGlyphs.AddStatus(commands, PanelStatusGlyph.Unhealthy, new(0, 0, 20, 20), palette); 1204TrayPanelGlyphs.AddStatus(commands, glyph, new(0, 0, 20, 20), palette);
117 references to new
Aspire.Tray.Tests (117)
Helpers\TrayPanelSvgRenderer.cs (2)
128var b = guide.Bounds; 255private static object[] Bounds(PanelRect rect)
LinuxPlasmaAnchorTests.cs (7)
87var anchor = LinuxPlasmaAnchor.Map(new(5735, 20, 0, 0), outputs, monitors, true, pointer: null); 90var panel = LinuxTrayPanel.Place(monitors[1].Geometry, anchor.CenterX, anchor.Bottom, 200, 1.5); 103var anchor = LinuxPlasmaAnchor.Map(new(5735, 20, 0, 0), outputs, monitors, true, pointer: null); 124var anchor = LinuxPlasmaAnchor.Map(new(2000, 20, 0, 0), outputs, monitors, true, (pointerX, pointerY)); 135var anchor = LinuxPlasmaAnchor.Map(new(-2380, -105, 0, 0), outputs, monitors, true, pointer: null); 149var anchor = LinuxPlasmaAnchor.Map(new(5735, 20, 0, 0), outputs, monitors, true, pointer: (100, 100)); 183var anchor = LinuxPlasmaAnchor.Map(new(4972, 16, 0, 0), outputs, monitors, false, pointer: null);
LinuxTrayTests.cs (8)
100var bounds = LinuxTrayPanel.Place(new(0, 30, 1000, 770), anchorX, anchorY, 180, 1); 108var bounds = LinuxTrayPanel.Place(new(-1920, 30, 1920, 1050), -900, 15, 300, 1); 143var workarea = new PanelRect(-1920, 30, 1920, 1050); 144var bounds = LinuxTrayPanel.Place(workarea, -20, workarea.Bottom, 300, scale); 160var geometry = new PanelRect(-1920, 30, 1920, 1050); 161var panel = LinuxTrayPanel.Place(geometry, -900, 15, 300, scale); 162var target = new PanelRect(20, 100, 64, 30); 163var control = LinuxPanelAccessibility.PlaceControl(target, panel.X - geometry.X, panel.Y - geometry.Y, scale);
src\Aspire.Tray\Common\TrayPanel.cs (41)
78private PanelRect _viewport; 134public PanelRect Viewport 836var panel = new PanelRect(0, 0, Width, height); 837var footer = new PanelRect(0, height - FooterHeight, Width, FooterHeight); 882var headerBounds = new PanelRect(20, top + 4, 200, 24); 933var clip = IsChrome(focused.Kind) ? panel : _viewport; 951var all = new PanelRect(0, 0, Width, height); 993var span = new PanelRect(0, top, Width, item.Height); 1053void Line(double y, string label, PanelRect bounds) => _guides.Add(new(PanelGuideKind.Center, y, label, bounds)); 1054void Box(PanelRect bounds, string label) => _guides.Add(new(PanelGuideKind.Box, bounds.CenterY, label, bounds)); 1075var title = new PanelRect(TextLeft, middle - 10, HeaderTitleWidth, 20); 1084var statusBounds = new PanelRect(statusLeft, middle - 8, Width - EdgeMargin - statusLeft, 16); 1091var banner = new PanelRect(RowInset, HeaderHeight + 8, Width - 2 * RowInset, height); 1100var text = new PanelRect(TextLeft, banner.Y + 8, NoticeTextWidth, height - 16); 1114var art = new PanelRect(Width / 2 - 16, top + 20, 32, 32); 1123var titleBounds = new PanelRect(20, top + 62, Width - 40, 20); 1124var hintBounds = new PanelRect(44, top + 84, Width - 88, 34); 1141var labelBounds = new PanelRect(20, top + 4, 200, 24); 1151var toggle = new PanelRect(RowInset, top + 4, Width - 2 * RowInset, 24); 1162var clear = new PanelRect(RowContentRight - 30 - 52, top + 6, 52, 20); 1174var row = new PanelRect(RowInset, top + 2, Width - 2 * RowInset, RowHeight - 4); 1200var bounds = new PanelRect(x, top + (RowHeight - ButtonSize) / 2, ButtonSize, ButtonSize); 1291var card = new PanelRect(RowInset, top, Width - 2 * RowInset, height - ActionListGap); 1297var item = new PanelRect(card.X + ActionListPadding, y, card.Width - 2 * ActionListPadding, ActionItemHeight); 1363var card = new PanelRect(RowInset, top + 4, Width - 2 * RowInset, ConfirmHeight - 8); 1374var questionBounds = new PanelRect(card.X + 12, card.Y + 9, textWidth, 18); 1375var detailBounds = new PanelRect(card.X + 12, card.Y + 28, textWidth, 16); 1386var acceptBounds = new PanelRect(card.Right - 10 - ButtonWidth, controlsY, ButtonWidth, ButtonSize); 1387var cancelBounds = new PanelRect(acceptBounds.X - 8 - ButtonWidth, controlsY, ButtonWidth, ButtonSize); 1417var back = new PanelRect(LeadingCenter - ButtonSize / 2, (HeaderHeight - ButtonSize) / 2, ButtonSize, ButtonSize); 1422var title = new PanelRect(TextLeft, (HeaderHeight - 20) / 2, Width - EdgeMargin - TextLeft, 20); 1430var row = new PanelRect(RowInset, top + 2, Width - 2 * RowInset, SettingsRowHeight - 4); 1444var toggle = new PanelRect(RowContentRight - 36, top + 9, 32, 18); 1456var name = new PanelRect(20, top + 4, Width - 40, 20); 1466var bounds = new PanelRect(20, y, Width - 40, 16); 1473private void AddFooter(List<PanelCommand> commands, List<PanelHitTarget> targets, PanelRect footer, TrayPanelPalette palette) 1488var bounds = new PanelRect(x, footer.Y + 8, ButtonSize, ButtonSize); 1501private void AddInteractionFill(List<PanelCommand> commands, PanelTargetKey key, PanelRect bounds, TrayPanelPalette palette, bool includeFocus) 1512private void AddTarget(List<PanelHitTarget> targets, PanelTargetKey key, PanelRect bounds, string name, bool enabled, AppHostMenuItem? host, 1515var hit = IsChrome(key.Kind) ? bounds : bounds.Intersect(_viewport); 1525private void AddLabel(string label, string text, PanelRect bounds, bool chrome)
src\Aspire.Tray\Common\TrayPanelGeometry.cs (10)
20public bool Contains(PanelRect other) => other.X >= X && other.Y >= Y && other.Right <= Right && other.Bottom <= Bottom; 22public bool IntersectsWith(PanelRect other) => other.X < Right && X < other.Right && other.Y < Bottom && Y < other.Bottom; 24public PanelRect Inset(double dx, double dy) => new(X + dx, Y + dy, Width - 2 * dx, Height - 2 * dy); 26public PanelRect Offset(double dx, double dy) => new(X + dx, Y + dy, Width, Height); 28public PanelRect Intersect(PanelRect other) 133public static PanelPath Rectangle(PanelRect rect) 137public static PanelPath RoundedRect(PanelRect rect, double radius) 141public static PanelPath RoundedRect(PanelRect rect, double topLeft, double topRight, double bottomRight, double bottomLeft) 188public PanelRect GetControlBounds()
src\Aspire.Tray\Common\TrayPanelGlyphs.cs (4)
52public static void AddStatus(List<PanelCommand> commands, PanelStatusGlyph glyph, PanelRect bounds, TrayPanelPalette palette) 97public static void AddIcon(List<PanelCommand> commands, PanelIcon icon, PanelRect bounds, PanelColor color) 204public static void AddToggle(List<PanelCommand> commands, bool on, bool enabled, PanelRect bounds, TrayPanelPalette palette) 208var track = new PanelRect(0, 0, ToggleDesignWidth, ToggleDesignHeight);
src\Aspire.Tray\Common\TrayPanelScene.cs (10)
72PanelRect Bounds, 89internal sealed record LogoCommand(PanelRect Bounds) : PanelCommand; 96internal sealed record AppIconCommand(PanelRect Bounds, string Application, IReadOnlyList<PanelCommand> Fallback) : PanelCommand; 99internal sealed record PushClipCommand(PanelRect Bounds) : PanelCommand; 189PanelRect Bounds, 190PanelRect HitBounds, 221PanelRect Bounds, 222PanelRect VisibleBounds, 266internal sealed record PanelGuide(PanelGuideKind Kind, double Position, string Label, PanelRect Bounds); 313internal sealed record PanelAction(PanelActionKind Kind, AppHostMenuItem? Host = null, PanelRect Anchor = default)
src\Aspire.Tray\Common\TrayPanelSceneJson.cs (1)
107static void Rect(Utf8JsonWriter json, PanelRect rect)
src\Aspire.Tray\Linux\LinuxPanelAccessibility.cs (4)
81var bounds = PlaceControl(element.VisibleBounds, x, y, scale); 103var bounds = PlaceControl(scene.Accessibility.Single(element => element.Key == key).VisibleBounds, x, y, scale); 112internal static PanelRect PlaceControl(PanelRect bounds, double x, double y, double scale)
src\Aspire.Tray\Linux\LinuxPlasmaAnchor.cs (9)
17internal static Task<PanelRect> TranslateAsync(PanelRect anchor) 44internal static PanelRect Map(PanelRect anchor, IReadOnlyList<Output> outputs, IReadOnlyList<Monitor> monitors, 53var candidates = new List<(PanelRect Bounds, Monitor Monitor)>(); 58var native = new PanelRect(output.Logical.X * originScale, output.Logical.Y * originScale, 179PanelRect? geometry = null; 330internal sealed record Output(string Name, PanelRect Logical, double Scale); 331internal sealed record Monitor(string Name, PanelRect Geometry, bool Primary);
src\Aspire.Tray\Linux\LinuxTrayPanel.cs (11)
24private PanelRect _workarea; 25private PanelRect _bounds; 35private Task<PanelRect>? _anchorRequest; 56PanelRect? anchor = null; 114internal void SetAnchor(PanelRect anchor) 312private unsafe Surface CreateSurface(nint monitor, PanelRect geometry, int deviceScale, bool main) 465internal static PanelRect Place(PanelRect workarea, double anchorX, double anchorY, double height, double scale) 478internal static (double X, double Y) ToPanelPoint(PanelRect bounds, PanelRect geometry, double x, double y, double scale) 830private sealed record Surface(nint Window, nint Area, nint Fixed, nint Monitor, PanelRect Geometry, int DeviceScale, bool Main)
TrayPanelTests.cs (10)
72var bounds = new PanelRect(0, 0, scene.Width, scene.Height); 468var footer = scene.Targets.Single(target => target.Kind == PanelTargetKind.Quit).Bounds; 762var box = new PanelRect(10, 20, 32, 18); 974static bool Near(PanelRect a, PanelRect b) 1055var rect = new PanelRect(8, 10, 100, 40); 1073var box = new PanelRect(40, 60, 20, 20); 1102var box = new PanelRect(4, 8, 16, 16); 1462private static PanelResponse Click(TrayPanel panel, PanelRect bounds, double? offsetX = null) 1481private static PanelRect GetBounds(PanelCommand command)