mattercontrol/CustomWidgets/PanelSeparator.cs
2014-04-11 13:41:34 -07:00

84 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using MatterHackers.Agg;
using MatterHackers.Agg.Transform;
using MatterHackers.Agg.Image;
using MatterHackers.Agg.VertexSource;
using MatterHackers.Agg.UI;
using MatterHackers.Agg.Font;
using MatterHackers.VectorMath;
using MatterHackers.MatterControl.DataStorage;
namespace MatterHackers.MatterControl.CustomWidgets
{
class PanelSeparator : ClickWidget
{
RGBA_Bytes defaultBackgroundColor;
RGBA_Bytes hoverBackgroundColor;
bool hidden;
ImageWidget arrowIndicator;
public bool Hidden
{
get { return hidden; }
set
{
hidden = value;
if (hidden)
{
this.Width = 24;
arrowIndicator.Visible = true;
}
else
{
this.Width = 4;
arrowIndicator.Visible = false;
}
}
}
public PanelSeparator()
: base(4, 1)
{
AddHandlers();
defaultBackgroundColor = new RGBA_Bytes(200, 200, 200);
hoverBackgroundColor = new RGBA_Bytes(100, 100, 100);
Agg.Image.ImageBuffer arrowImage = new Agg.Image.ImageBuffer();
ImageIO.LoadImageData(Path.Combine(ApplicationDataStorage.Instance.ApplicationStaticDataPath, "icon_arrow_left_16x16.png"), arrowImage);
arrowIndicator = new ImageWidget(arrowImage);
arrowIndicator.HAnchor = Agg.UI.HAnchor.ParentCenter;
arrowIndicator.VAnchor = Agg.UI.VAnchor.ParentCenter;
arrowIndicator.Visible = true;
this.AddChild(arrowIndicator);
this.Hidden = false;
this.BackgroundColor = defaultBackgroundColor;
this.VAnchor = VAnchor.ParentBottomTop;
this.Margin = new BorderDouble(8, 0);
this.Cursor = Cursors.Hand;
}
void AddHandlers()
{
this.MouseEnterBounds += new EventHandler(PanelSeparator_MouseEnterBounds);
this.MouseLeaveBounds += new EventHandler(PanelSeparator_MouseLeaveBounds);
}
void PanelSeparator_MouseLeaveBounds(object sender, EventArgs e)
{
this.BackgroundColor = defaultBackgroundColor;
}
void PanelSeparator_MouseEnterBounds(object sender, EventArgs e)
{
this.BackgroundColor = hoverBackgroundColor;
}
}
}