79 lines
2.4 KiB
C#
79 lines
2.4 KiB
C#
using System;
|
|
using System.IO;
|
|
using MatterHackers.Agg;
|
|
using MatterHackers.Agg.PlatformAbstract;
|
|
using MatterHackers.Agg.UI;
|
|
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; }
|
|
}
|
|
|
|
public void SetDisplayState(object state = null)
|
|
{
|
|
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, "Icons", "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;
|
|
|
|
SetDisplayState();
|
|
}
|
|
|
|
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;
|
|
}
|
|
}
|
|
}
|