76 instantiations of PanelRect
aspire-tray (76)
src\Aspire.Tray\Common\TrayPanel.cs (66)
830
_viewport =
new
(0, HeaderHeight + noticeHeight, Width, Math.Max(0, height - chrome));
836
var panel = new
PanelRect
(0, 0, Width, height);
837
var footer = new
PanelRect
(0, height - FooterHeight, Width, FooterHeight);
840
commands.Add(new FillPathCommand(PanelPath.Rectangle(
new
(0, footer.Y, Width, 1)), palette.Separator));
843
commands.Add(new FillPathCommand(PanelPath.RoundedRect(
new
(0, 0, Width, HeaderHeight), CornerRadius, CornerRadius, 0, 0), palette.Gutter));
844
commands.Add(new FillPathCommand(PanelPath.Rectangle(
new
(0, HeaderHeight - 1, Width, 1)), palette.Separator));
862
commands.Add(new FillPathCommand(PanelPath.Rectangle(
new
(0, _viewport.Y, Width, 1)), palette.Separator));
882
var headerBounds = new
PanelRect
(20, top + 4, 200, 24);
915
commands.Add(new FillPathCommand(PanelPath.RoundedRect(
new
(Width - 7, thumbY, 4, thumb), 2), palette.TextTertiary.WithAlpha(0.4)));
951
var all = new
PanelRect
(0, 0, Width, height);
962
Line(HeaderHeight / 2, "header",
new
(0, 0, Width, HeaderHeight));
966
Line(HeaderHeight + 8 + 17, "notice",
new
(0, HeaderHeight, Width, _viewport.Y - HeaderHeight));
967
Box(
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)));
972
Box(
new
(EdgeMargin, HeaderHeight / 2 - 10, 20, 20), "logo");
976
Box(
new
(LeadingCenter - 8, HeaderHeight / 2 - 8, 16, 16), "back");
979
Line(footerTop + FooterHeight / 2, "footer",
new
(0, footerTop, Width, FooterHeight));
983
Box(
new
(center - 8, footerTop + FooterHeight / 2 - 8, 16, 16), "footer icon");
993
var span = new
PanelRect
(0, top, Width, item.Height);
1000
Box(
new
(EdgeMargin, top + RowHeight / 2 - 10, 20, 20), "status");
1005
Box(
new
(center - 8, top + RowHeight / 2 - 8, 16, 16), "row button icon");
1010
Box(
new
(TrailingCenter - 8, top + 8, 16, 16), "recent chevron");
1021
Line(middle, "action",
new
(0, itemTop, Width, ActionItemHeight));
1025
?
new
(TextLeft, middle - 8, 16, 16)
1026
:
new
(LeadingCenter - 8, middle - 8, 16, 16),
1048
Box(
new
(Width / 2 - 16, top + 20, 32, 32), "empty art");
1074
commands.Add(new LogoCommand(
new
(EdgeMargin, middle - 10, 20, 20)));
1075
var title = new
PanelRect
(TextLeft, middle - 10, HeaderTitleWidth, 20);
1084
var statusBounds = new
PanelRect
(statusLeft, middle - 8, Width - EdgeMargin - statusLeft, 16);
1091
var banner = new
PanelRect
(RowInset, HeaderHeight + 8, Width - 2 * RowInset, height);
1099
TrayPanelGlyphs.AddIcon(commands, PanelIcon.Alert,
new
(LeadingCenter - 8, banner.Y + 9, 16, 16), palette.BannerText);
1100
var text = new
PanelRect
(TextLeft, banner.Y + 8, NoticeTextWidth, height - 16);
1114
var art = new
PanelRect
(Width / 2 - 16, top + 20, 32, 32);
1123
var titleBounds = new
PanelRect
(20, top + 62, Width - 40, 20);
1124
var hintBounds = new
PanelRect
(44, top + 84, Width - 88, 34);
1141
var labelBounds = new
PanelRect
(20, top + 4, 200, 24);
1151
var toggle = new
PanelRect
(RowInset, top + 4, Width - 2 * RowInset, 24);
1156
new
(RowContentRight - 22, top + 8, 16, 16), palette.TextTertiary);
1162
var clear = new
PanelRect
(RowContentRight - 30 - 52, top + 6, 52, 20);
1174
var row = new
PanelRect
(RowInset, top + 2, Width - 2 * RowInset, RowHeight - 4);
1185
TrayPanelGlyphs.AddStatus(commands, GetStatusGlyph(host, live),
new
(20, top + 16, 20, 20), palette);
1192
commands.Add(new TextCommand(
new
(TextLeft, top + 8, textRight - TextLeft, 18), host.DisplayName, PanelFontRole.Name, palette.TextPrimary));
1193
commands.Add(new TextCommand(
new
(TextLeft, top + 27, textRight - TextLeft, 16), detail, PanelFontRole.Body,
1200
var bounds = new
PanelRect
(x, top + (RowHeight - ButtonSize) / 2, ButtonSize, ButtonSize);
1291
var card = new
PanelRect
(RowInset, top, Width - 2 * RowInset, height - ActionListGap);
1297
var item = new
PanelRect
(card.X + ActionListPadding, y, card.Width - 2 * ActionListPadding, ActionItemHeight);
1306
TrayPanelGlyphs.AddIcon(fallback, PanelIcon.AppWindow,
new
(TextLeft, item.Y + 7, 16, 16), iconColor);
1307
commands.Add(new AppIconCommand(
new
(TextLeft, item.Y + 7, 16, 16), _openInApplications[index], fallback));
1308
commands.Add(new TextCommand(
new
(NestedTextLeft, item.Y, item.Right - 8 - NestedTextLeft, item.Height), label,
1314
TrayPanelGlyphs.AddIcon(commands, icon,
new
(22, item.Y + 7, 16, 16), iconColor);
1321
new
(TrailingCenter - 8, item.Y + 7, 16, 16), palette.TextTertiary);
1323
commands.Add(new TextCommand(
new
(TextLeft, item.Y, labelRight - TextLeft, item.Height), label, PanelFontRole.Body, palette.TextPrimary));
1363
var card = new
PanelRect
(RowInset, top + 4, Width - 2 * RowInset, ConfirmHeight - 8);
1374
var questionBounds = new
PanelRect
(card.X + 12, card.Y + 9, textWidth, 18);
1375
var detailBounds = new
PanelRect
(card.X + 12, card.Y + 28, textWidth, 16);
1386
var acceptBounds = new
PanelRect
(card.Right - 10 - ButtonWidth, controlsY, ButtonWidth, ButtonSize);
1387
var cancelBounds = new
PanelRect
(acceptBounds.X - 8 - ButtonWidth, controlsY, ButtonWidth, ButtonSize);
1417
var back = new
PanelRect
(LeadingCenter - ButtonSize / 2, (HeaderHeight - ButtonSize) / 2, ButtonSize, ButtonSize);
1422
var title = new
PanelRect
(TextLeft, (HeaderHeight - 20) / 2, Width - EdgeMargin - TextLeft, 20);
1430
var row = new
PanelRect
(RowInset, top + 2, Width - 2 * RowInset, SettingsRowHeight - 4);
1444
var toggle = new
PanelRect
(RowContentRight - 36, top + 9, 32, 18);
1446
commands.Add(new TextCommand(
new
(20, top + 8, textWidth, 20), title, PanelFontRole.Name,
1448
commands.Add(new TextCommand(
new
(20, top + 28, textWidth, 30), description, PanelFontRole.Body,
1456
var name = new
PanelRect
(20, top + 4, Width - 40, 20);
1466
var bounds = new
PanelRect
(20, y, Width - 40, 16);
1488
var bounds = new
PanelRect
(x, footer.Y + 8, ButtonSize, ButtonSize);
src\Aspire.Tray\Common\TrayPanelGeometry.cs (4)
24
public PanelRect Inset(double dx, double dy) =>
new
(X + dx, Y + dy, Width - 2 * dx, Height - 2 * dy);
26
public PanelRect Offset(double dx, double dy) =>
new
(X + dx, Y + dy, Width, Height);
34
return right <= x || bottom <= y ? default :
new
(x, y, right - x, bottom - y);
205
return minX > maxX ? default :
new
(minX, minY, maxX - minX, maxY - minY);
src\Aspire.Tray\Common\TrayPanelGlyphs.cs (5)
81
Fill(PanelPath.RoundedRect(
new
(7, 7, 6, 6), 1.4), palette.Neutral);
112
Fill(PanelPath.RoundedRect(
new
(4.25, 4.25, 7.5, 7.5), 1.5));
156
Stroke(PanelPath.RoundedRect(
new
(2.25, 3, 11.5, 10), 1.75), 1.4);
167
Stroke(PanelPath.RoundedRect(
new
(5.75, 5.75, 7.5, 7.5), 1.5), 1.4);
208
var track = new
PanelRect
(0, 0, ToggleDesignWidth, ToggleDesignHeight);
TrayApplication.Panel.cs (1)
481
FillPanelPath(graphics, PanelPath.Rectangle(
new
(0, 0, width / scale + 1, height / scale + 1)), palette.Background);
72 references to PanelRect
aspire-tray (72)
src\Aspire.Tray\Common\TrayPanel.cs (41)
78
private
PanelRect
_viewport;
134
public
PanelRect
Viewport
836
var
panel = new PanelRect(0, 0, Width, height);
837
var
footer = new PanelRect(0, height - FooterHeight, Width, FooterHeight);
882
var
headerBounds = new PanelRect(20, top + 4, 200, 24);
933
var
clip = IsChrome(focused.Kind) ? panel : _viewport;
951
var
all = new PanelRect(0, 0, Width, height);
993
var
span = new PanelRect(0, top, Width, item.Height);
1053
void Line(double y, string label,
PanelRect
bounds) => _guides.Add(new(PanelGuideKind.Center, y, label, bounds));
1054
void Box(
PanelRect
bounds, string label) => _guides.Add(new(PanelGuideKind.Box, bounds.CenterY, label, bounds));
1075
var
title = new PanelRect(TextLeft, middle - 10, HeaderTitleWidth, 20);
1084
var
statusBounds = new PanelRect(statusLeft, middle - 8, Width - EdgeMargin - statusLeft, 16);
1091
var
banner = new PanelRect(RowInset, HeaderHeight + 8, Width - 2 * RowInset, height);
1100
var
text = new PanelRect(TextLeft, banner.Y + 8, NoticeTextWidth, height - 16);
1114
var
art = new PanelRect(Width / 2 - 16, top + 20, 32, 32);
1123
var
titleBounds = new PanelRect(20, top + 62, Width - 40, 20);
1124
var
hintBounds = new PanelRect(44, top + 84, Width - 88, 34);
1141
var
labelBounds = new PanelRect(20, top + 4, 200, 24);
1151
var
toggle = new PanelRect(RowInset, top + 4, Width - 2 * RowInset, 24);
1162
var
clear = new PanelRect(RowContentRight - 30 - 52, top + 6, 52, 20);
1174
var
row = new PanelRect(RowInset, top + 2, Width - 2 * RowInset, RowHeight - 4);
1200
var
bounds = new PanelRect(x, top + (RowHeight - ButtonSize) / 2, ButtonSize, ButtonSize);
1291
var
card = new PanelRect(RowInset, top, Width - 2 * RowInset, height - ActionListGap);
1297
var
item = new PanelRect(card.X + ActionListPadding, y, card.Width - 2 * ActionListPadding, ActionItemHeight);
1363
var
card = new PanelRect(RowInset, top + 4, Width - 2 * RowInset, ConfirmHeight - 8);
1374
var
questionBounds = new PanelRect(card.X + 12, card.Y + 9, textWidth, 18);
1375
var
detailBounds = new PanelRect(card.X + 12, card.Y + 28, textWidth, 16);
1386
var
acceptBounds = new PanelRect(card.Right - 10 - ButtonWidth, controlsY, ButtonWidth, ButtonSize);
1387
var
cancelBounds = new PanelRect(acceptBounds.X - 8 - ButtonWidth, controlsY, ButtonWidth, ButtonSize);
1417
var
back = new PanelRect(LeadingCenter - ButtonSize / 2, (HeaderHeight - ButtonSize) / 2, ButtonSize, ButtonSize);
1422
var
title = new PanelRect(TextLeft, (HeaderHeight - 20) / 2, Width - EdgeMargin - TextLeft, 20);
1430
var
row = new PanelRect(RowInset, top + 2, Width - 2 * RowInset, SettingsRowHeight - 4);
1444
var
toggle = new PanelRect(RowContentRight - 36, top + 9, 32, 18);
1456
var
name = new PanelRect(20, top + 4, Width - 40, 20);
1466
var
bounds = new PanelRect(20, y, Width - 40, 16);
1473
private void AddFooter(List<PanelCommand> commands, List<PanelHitTarget> targets,
PanelRect
footer, TrayPanelPalette palette)
1488
var
bounds = new PanelRect(x, footer.Y + 8, ButtonSize, ButtonSize);
1501
private void AddInteractionFill(List<PanelCommand> commands, PanelTargetKey key,
PanelRect
bounds, TrayPanelPalette palette, bool includeFocus)
1512
private void AddTarget(List<PanelHitTarget> targets, PanelTargetKey key,
PanelRect
bounds, string name, bool enabled, AppHostMenuItem? host,
1515
var
hit = IsChrome(key.Kind) ? bounds : bounds.Intersect(_viewport);
1525
private void AddLabel(string label, string text,
PanelRect
bounds, bool chrome)
src\Aspire.Tray\Common\TrayPanelGeometry.cs (10)
20
public bool Contains(
PanelRect
other) => other.X >= X && other.Y >= Y && other.Right <= Right && other.Bottom <= Bottom;
22
public bool IntersectsWith(
PanelRect
other) => other.X < Right && X < other.Right && other.Y < Bottom && Y < other.Bottom;
24
public
PanelRect
Inset(double dx, double dy) => new(X + dx, Y + dy, Width - 2 * dx, Height - 2 * dy);
26
public
PanelRect
Offset(double dx, double dy) => new(X + dx, Y + dy, Width, Height);
28
public
PanelRect
Intersect(
PanelRect
other)
133
public static PanelPath Rectangle(
PanelRect
rect)
137
public static PanelPath RoundedRect(
PanelRect
rect, double radius)
141
public static PanelPath RoundedRect(
PanelRect
rect, double topLeft, double topRight, double bottomRight, double bottomLeft)
188
public
PanelRect
GetControlBounds()
src\Aspire.Tray\Common\TrayPanelGlyphs.cs (4)
52
public static void AddStatus(List<PanelCommand> commands, PanelStatusGlyph glyph,
PanelRect
bounds, TrayPanelPalette palette)
97
public static void AddIcon(List<PanelCommand> commands, PanelIcon icon,
PanelRect
bounds, PanelColor color)
204
public static void AddToggle(List<PanelCommand> commands, bool on, bool enabled,
PanelRect
bounds, TrayPanelPalette palette)
208
var
track = new PanelRect(0, 0, ToggleDesignWidth, ToggleDesignHeight);
src\Aspire.Tray\Common\TrayPanelScene.cs (10)
72
PanelRect
Bounds,
89
internal sealed record LogoCommand(
PanelRect
Bounds) : PanelCommand;
96
internal sealed record AppIconCommand(
PanelRect
Bounds, string Application, IReadOnlyList<PanelCommand> Fallback) : PanelCommand;
99
internal sealed record PushClipCommand(
PanelRect
Bounds) : PanelCommand;
189
PanelRect
Bounds,
190
PanelRect
HitBounds,
221
PanelRect
Bounds,
222
PanelRect
VisibleBounds,
266
internal sealed record PanelGuide(PanelGuideKind Kind, double Position, string Label,
PanelRect
Bounds);
313
internal sealed record PanelAction(PanelActionKind Kind, AppHostMenuItem? Host = null,
PanelRect
Anchor = default)
src\Aspire.Tray\Common\TrayPanelSceneJson.cs (1)
107
static void Rect(Utf8JsonWriter json,
PanelRect
rect)
TrayApplication.NativeSmoke.cs (1)
217
var
viewport = panel.Viewport;
TrayApplication.Panel.cs (4)
482
var clips = new Stack<(uint State,
PanelRect
Bounds)>();
541
private void WithGdiDc(nint graphics, Stack<(uint State,
PanelRect
Bounds)> clips, Action<nint> draw)
747
private void DrawPanelLogo(nint dc,
PanelRect
bounds)
823
private NativeMethods.Rect ToDevice(
PanelRect
rect)
TrayApplication.PanelAutomation.cs (1)
187
private NativeMethods.UiaRect ToScreenRect(
PanelRect
bounds)