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)); 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);
TrayApplication.Panel.cs (1)
481FillPanelPath(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)
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)
TrayApplication.NativeSmoke.cs (1)
217var viewport = panel.Viewport;
TrayApplication.Panel.cs (4)
482var clips = new Stack<(uint State, PanelRect Bounds)>(); 541private void WithGdiDc(nint graphics, Stack<(uint State, PanelRect Bounds)> clips, Action<nint> draw) 747private void DrawPanelLogo(nint dc, PanelRect bounds) 823private NativeMethods.Rect ToDevice(PanelRect rect)
TrayApplication.PanelAutomation.cs (1)
187private NativeMethods.UiaRect ToScreenRect(PanelRect bounds)