Skip to content

Commit 0401c97

Browse files
Address review suggestions.
1 parent 07ad246 commit 0401c97

File tree

4 files changed

+54
-43
lines changed

4 files changed

+54
-43
lines changed

.github/copilot-instructions.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,16 @@ using Pen focusPen = new(focusColor) // Use 'using' with type name and omit type
423423

424424
- **Don't XML-comment local functions**, as this is not supported. Instead, be more verbose in a comment if the local function's purpose is not immediately obvious.
425425

426+
- **Use `<inheritdoc/>` for inherited members** to avoid duplication and ensure consistency in documentation.
427+
```csharp
428+
/// <inheritdoc/>
429+
public override void OnClick(EventArgs e)
430+
{
431+
base.OnClick(e);
432+
// Additional logic here
433+
}
434+
```
435+
426436
### 1.9 File Structure and Formatting
427437

428438
- **Use file-scoped namespaces**

src/System.Windows.Forms/System/Windows/Forms/Controls/ToolStrips/ToolStripRenderer.cs

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -628,7 +628,7 @@ protected virtual void OnRenderArrow(ToolStripArrowRenderEventArgs e)
628628
/// <param name="e">The event arguments containing rendering information.</param>
629629
/// <param name="arrowColor">The color to use for the arrow.</param>
630630
/// <returns>The rendered arrow points.</returns>
631-
private protected Point[] RenderArrowCore(
631+
private protected void RenderArrowCore(
632632
ToolStripArrowRenderEventArgs e,
633633
Color arrowColor)
634634
{
@@ -661,38 +661,39 @@ private protected Point[] RenderArrowCore(
661661
? s_offset4X - Offset2X
662662
: Offset2X;
663663

664-
Point[] arrow = e.Direction switch
664+
// Use stackalloc for the 3 arrow points
665+
Span<Point> arrow = stackalloc Point[3];
666+
667+
// Fill the points based on arrow direction
668+
switch (e.Direction)
665669
{
666-
ArrowDirection.Up =>
667-
[
668-
new(middle.X - Offset2X, middle.Y + 1),
669-
new(middle.X + Offset2X + 1, middle.Y + 1),
670-
new(middle.X, middle.Y - Offset2Y)
671-
],
672-
ArrowDirection.Left =>
673-
[
674-
new(middle.X + Offset2X, middle.Y - s_offset4Y),
675-
new(middle.X + Offset2X, middle.Y + s_offset4Y),
676-
new(middle.X - horizontalOffset, middle.Y)
677-
],
678-
ArrowDirection.Right =>
679-
[
680-
new(middle.X - Offset2X, middle.Y - s_offset4Y),
681-
new(middle.X - Offset2X, middle.Y + s_offset4Y),
682-
new(middle.X + horizontalOffset, middle.Y)
683-
],
684-
_ =>
685-
[
686-
new(middle.X - Offset2X, middle.Y - 1),
687-
new(middle.X + Offset2X + 1, middle.Y - 1),
688-
new(middle.X, middle.Y + Offset2Y)
689-
],
690-
};
670+
case ArrowDirection.Up:
671+
arrow[0] = new(middle.X - Offset2X, middle.Y + 1);
672+
arrow[1] = new(middle.X + Offset2X + 1, middle.Y + 1);
673+
arrow[2] = new(middle.X, middle.Y - Offset2Y);
674+
break;
675+
676+
case ArrowDirection.Left:
677+
arrow[0] = new(middle.X + Offset2X, middle.Y - s_offset4Y);
678+
arrow[1] = new(middle.X + Offset2X, middle.Y + s_offset4Y);
679+
arrow[2] = new(middle.X - horizontalOffset, middle.Y);
680+
break;
681+
682+
case ArrowDirection.Right:
683+
arrow[0] = new(middle.X - Offset2X, middle.Y - s_offset4Y);
684+
arrow[1] = new(middle.X - Offset2X, middle.Y + s_offset4Y);
685+
arrow[2] = new(middle.X + horizontalOffset, middle.Y);
686+
break;
687+
688+
default: // Down
689+
arrow[0] = new(middle.X - Offset2X, middle.Y - 1);
690+
arrow[1] = new(middle.X + Offset2X + 1, middle.Y - 1);
691+
arrow[2] = new(middle.X, middle.Y + Offset2Y);
692+
break;
693+
}
691694

692695
using var brush = arrowColor.GetCachedSolidBrushScope();
693696
g.FillPolygon(brush, arrow);
694-
695-
return arrow;
696697
}
697698

698699
/// <summary>
@@ -1029,17 +1030,17 @@ protected virtual void OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs e)
10291030
}
10301031

10311032
OnRenderStatusStripSizingGrip(
1032-
eArgs: e,
1033+
e: e,
10331034
highLightBrush: SystemBrushes.ButtonHighlight,
10341035
shadowBrush: SystemBrushes.GrayText);
10351036
}
10361037

10371038
private protected static void OnRenderStatusStripSizingGrip(
1038-
ToolStripRenderEventArgs eArgs,
1039+
ToolStripRenderEventArgs e,
10391040
Brush highLightBrush,
10401041
Brush shadowBrush)
10411042
{
1042-
if (eArgs.ToolStrip is not StatusStrip statusStrip)
1043+
if (e.ToolStrip is not StatusStrip statusStrip)
10431044
{
10441045
return;
10451046
}
@@ -1051,7 +1052,7 @@ private protected static void OnRenderStatusStripSizingGrip(
10511052
return;
10521053
}
10531054

1054-
Graphics g = eArgs.Graphics;
1055+
Graphics g = e.Graphics;
10551056
ReadOnlySpan<Rectangle> baseRectangles = s_baseSizeGripRectangles;
10561057

10571058
// Reference height for sizing grips at 96 DPI (standard sizing)

src/System.Windows.Forms/System/Windows/Forms/Controls/ToolStrips/ToolStripSystemDarkModeRenderer.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,14 +114,15 @@ protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
114114
ArgumentNullException.ThrowIfNull(e);
115115

116116
ToolStrip toolStrip = e.ToolStrip;
117-
Graphics g = e.Graphics;
118117
Rectangle bounds = e.AffectedBounds;
119118

120119
if (!ShouldPaintBackground(toolStrip))
121120
{
122121
return;
123122
}
124123

124+
Graphics g = e.Graphics;
125+
125126
if (toolStrip is StatusStrip)
126127
{
127128
RenderStatusStripBackground(e);
@@ -152,11 +153,10 @@ protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
152153
/// <param name="e">A ToolStripRenderEventArgs that contains the event data.</param>
153154
internal static void RenderStatusStripBackground(ToolStripRenderEventArgs e)
154155
{
155-
Graphics g = e.Graphics;
156156
Rectangle bounds = e.AffectedBounds;
157157

158158
// Dark mode StatusStrip background
159-
FillBackground(g, bounds, GetDarkModeColor(SystemColors.Control));
159+
FillBackground(e.Graphics, bounds, GetDarkModeColor(SystemColors.Control));
160160
}
161161

162162
/// <summary>
@@ -168,18 +168,18 @@ protected override void OnRenderToolStripBorder(ToolStripRenderEventArgs e)
168168
ArgumentNullException.ThrowIfNull(e);
169169

170170
ToolStrip toolStrip = e.ToolStrip;
171-
Graphics g = e.Graphics;
172-
Rectangle bounds = e.ToolStrip.ClientRectangle;
173-
174-
using var borderPen = GetDarkModePen(SystemColors.ControlDark);
175171

176172
if (toolStrip is StatusStrip)
177173
{
178174
RenderStatusStripBorder(e);
179-
180175
return;
181176
}
182177

178+
Graphics g = e.Graphics;
179+
Rectangle bounds = e.ToolStrip.ClientRectangle;
180+
181+
using var borderPen = GetDarkModePen(SystemColors.ControlDark);
182+
183183
if (toolStrip is ToolStripDropDown toolStripDropDown)
184184
{
185185
if (toolStripDropDown.DropShadowEnabled)
@@ -648,7 +648,7 @@ protected override void OnRenderStatusStripSizingGrip(ToolStripRenderEventArgs e
648648
using var shadowBrush = GetDarkModeBrush(SystemColors.ButtonShadow);
649649

650650
OnRenderStatusStripSizingGrip(
651-
eArgs: e,
651+
e: e,
652652
highLightBrush: highLightBrush,
653653
shadowBrush: shadowBrush);
654654
}

src/System.Windows.Forms/System/Windows/Forms/Controls/ToolStrips/ToolStripSystemRenderer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,7 @@ protected override void OnRenderToolStripBackground(ToolStripRenderEventArgs e)
251251
}
252252
else if (DisplayInformation.LowResolution)
253253
{
254-
FillBackground(g, bounds, (toolStrip is ToolStripDropDown)
254+
FillBackground(g, bounds, toolStrip is ToolStripDropDown
255255
? SystemColors.ControlLight
256256
: e.BackColor);
257257
}

0 commit comments

Comments
 (0)