52 lines
1.1 KiB
C#
52 lines
1.1 KiB
C#
using System.Drawing;
|
|
|
|
namespace DevComponents.Tree.Display
|
|
{
|
|
/// <summary>
|
|
/// Represent class that paints selection around node.
|
|
/// </summary>
|
|
internal class NodeSelectionDisplay
|
|
{
|
|
public void PaintSelection(SelectionRendererEventArgs info)
|
|
{
|
|
Rectangle inside=info.Bounds;
|
|
inside.Inflate(1,1);
|
|
inside.Width--;
|
|
inside.Height--;
|
|
Rectangle outside=info.Bounds;
|
|
outside.Inflate(info.Width,info.Width);
|
|
outside.Width--;
|
|
outside.Height--;
|
|
|
|
if(!info.BorderColor.IsEmpty)
|
|
{
|
|
using(Pen pen=new Pen(info.BorderColor,1))
|
|
{
|
|
info.Graphics.DrawRectangle(pen,inside);
|
|
info.Graphics.DrawRectangle(pen,outside);
|
|
}
|
|
}
|
|
|
|
if(!info.FillColor.IsEmpty)
|
|
{
|
|
using(SolidBrush brush=new SolidBrush(info.FillColor))
|
|
{
|
|
Region region=new Region(outside);
|
|
region.Exclude(inside);
|
|
info.Graphics.FillRegion(brush,region);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
internal class NodeSelectionDisplayInfo
|
|
{
|
|
public Node Node=null;
|
|
public Graphics Graphics=null;
|
|
public Rectangle Bounds=Rectangle.Empty;
|
|
public Color BorderColor=Color.Empty;
|
|
public Color FillColor=Color.Empty;
|
|
public int Width=4;
|
|
}
|
|
}
|