1
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
2
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
6
using System.Windows.Forms;
8
namespace ICSharpCode.SharpDevelop.Widgets.SideBar
10
public enum SideTabItemStatus {
17
public class SideTabItem
21
SideTabItemStatus sideTabItemStatus;
23
bool canBeRenamed = true;
24
bool canBeDeleted = true;
35
public SideTabItemStatus SideTabItemStatus {
37
return sideTabItemStatus;
40
sideTabItemStatus = value;
62
public bool CanBeRenamed {
71
public bool CanBeDeleted {
80
public SideTabItem(string name)
82
int idx = name.IndexOf("\n");
84
this.name = name.Substring(0, idx);
90
public SideTabItem(string name, object tag) : this(name)
95
public SideTabItem(string name, object tag, Bitmap icon) : this(name, tag)
97
this.icon = new Bitmap(icon);
100
public SideTabItem Clone()
102
return (SideTabItem)MemberwiseClone();
105
public virtual void DrawItem(Graphics g, Font f, Rectangle rectangle)
108
switch (sideTabItemStatus) {
109
case SideTabItemStatus.Normal:
111
g.DrawImage(Icon, 0, rectangle.Y);
114
g.DrawString(name, f, SystemBrushes.ControlText, new PointF(rectangle.X + width + 1, rectangle.Y + 1));
116
case SideTabItemStatus.Drag:
117
ControlPaint.DrawBorder3D(g, rectangle, Border3DStyle.RaisedInner);
120
rectangle.Width -= 2;
121
rectangle.Height -= 2;
123
g.FillRectangle(SystemBrushes.ControlDarkDark, rectangle);
125
g.DrawImage(Icon, 0, rectangle.Y);
128
g.DrawString(name, f, SystemBrushes.HighlightText, new PointF(rectangle.X + width + 1, rectangle.Y + 1));
130
case SideTabItemStatus.Selected:
131
ControlPaint.DrawBorder3D(g, rectangle, Border3DStyle.RaisedInner);
133
g.DrawImage(Icon, 0, rectangle.Y);
136
g.DrawString(name, f, SystemBrushes.ControlText, new PointF(rectangle.X + width + 1, rectangle.Y + 1));
138
case SideTabItemStatus.Choosed:
139
ControlPaint.DrawBorder3D(g, rectangle, Border3DStyle.Sunken);
142
rectangle.Width -= 2;
143
rectangle.Height -= 2;
145
using (Brush brush = new SolidBrush(ControlPaint.Light(SystemColors.Control))) {
146
g.FillRectangle(brush , rectangle);
150
g.DrawImage(Icon, 1, rectangle.Y + 1);
153
g.DrawString(name, f, SystemBrushes.ControlText, new PointF(rectangle.X + width + 2, rectangle.Y + 2));