Skip to content

Commit bfbc511

Browse files
Merge pull request PavelTorgashov#236 from Ericvf/master
Added ability for folding markers to scale with zoom
2 parents a6494ca + b525d0d commit bfbc511

1 file changed

Lines changed: 21 additions & 3 deletions

File tree

FastColoredTextBox/FastColoredTextBox.cs

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,6 +1686,22 @@ public int ReservedCountOfLineNumberChars
16861686
[Description("Occurs when mouse is moving over text and tooltip is needed.")]
16871687
public event EventHandler<ToolTipNeededEventArgs> ToolTipNeeded;
16881688

1689+
/// <summary>
1690+
/// Default size of the markers
1691+
/// </summary>
1692+
[Browsable(false)]
1693+
[DefaultValue(0)]
1694+
public int DefaultMarkerSize
1695+
{
1696+
get { return defaultMarkerSize; }
1697+
set
1698+
{
1699+
defaultMarkerSize = value;
1700+
Invalidate();
1701+
}
1702+
}
1703+
private int defaultMarkerSize = 8;
1704+
16891705
/// <summary>
16901706
/// Removes all hints
16911707
/// </summary>
@@ -5083,14 +5099,16 @@ protected override void OnPaint(PaintEventArgs e)
50835099
new RectangleF(-10, y, LeftIndent - minLeftIndent - 2 + 10, CharHeight + (int)(lineInterval * 0.5f)),
50845100
new StringFormat(StringFormatFlags.DirectionRightToLeft) { LineAlignment = StringAlignment.Center });
50855101
}
5086-
5102+
50875103
//create markers
5104+
int markerSize = (int)(defaultMarkerSize * zoom / 100f);
5105+
int markerRadius = markerSize / 2;
50885106
if (lineInfo.VisibleState == VisibleState.StartOfHiddenBlock)
5089-
visibleMarkers.Add(new ExpandFoldingMarker(iLine, new Rectangle(LeftIndentLine - 4, y + CharHeight/2 - 3, 8, 8)));
5107+
visibleMarkers.Add(new ExpandFoldingMarker(iLine, new Rectangle(LeftIndentLine - markerRadius, y + CharHeight/2 - markerRadius + 1, markerSize, markerSize)));
50905108

50915109
if (!string.IsNullOrEmpty(line.FoldingStartMarker) && lineInfo.VisibleState == VisibleState.Visible &&
50925110
string.IsNullOrEmpty(line.FoldingEndMarker))
5093-
visibleMarkers.Add(new CollapseFoldingMarker(iLine, new Rectangle(LeftIndentLine - 4, y + CharHeight/2 - 3, 8, 8)));
5111+
visibleMarkers.Add(new CollapseFoldingMarker(iLine, new Rectangle(LeftIndentLine - markerRadius, y + CharHeight/2 - markerRadius + 1, markerSize, markerSize)));
50945112

50955113
if (lineInfo.VisibleState == VisibleState.Visible && !string.IsNullOrEmpty(line.FoldingEndMarker) &&
50965114
string.IsNullOrEmpty(line.FoldingStartMarker))

0 commit comments

Comments
 (0)