mattercontrol/CustomWidgets/ThemeColorSelectorWidget.cs
2014-01-29 19:09:30 -08:00

67 lines
2.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.IO;
using System.Diagnostics;
using System.Threading;
using MatterHackers.Agg.Image;
using MatterHackers.Agg.VertexSource;
using MatterHackers.Agg;
using MatterHackers.Agg.UI;
using MatterHackers.VectorMath;
using MatterHackers.MatterControl.DataStorage;
namespace MatterHackers.MatterControl
{
public class ThemeColorSelectorWidget : FlowLayoutWidget
{
public ThemeColorSelectorWidget ()
{
//TextWidget colorText = new TextWidget("Accent Color", color: RGBA_Bytes.White);
//colorText.VAnchor = Agg.UI.VAnchor.ParentCenter;
//this.AddChild(colorText);
//Temporary theme changer button
GuiWidget themeButtons = new GuiWidget(96, 42);
themeButtons.BackgroundColor = RGBA_Bytes.White;
int index = 0;
for (int x = 0; x < 5; x++)
{
for (int y = 0; y < 2; y++)
{
GuiWidget normal = new GuiWidget(16, 16);
normal.BackgroundColor = ActiveTheme.Instance.AvailableThemes[index].primaryAccentColor;
GuiWidget hover = new GuiWidget(16, 16);
hover.BackgroundColor = ActiveTheme.Instance.AvailableThemes[index].secondaryAccentColor;
GuiWidget pressed = new GuiWidget(16, 16);
pressed.BackgroundColor = ActiveTheme.Instance.AvailableThemes[index].secondaryAccentColor;
GuiWidget disabled = new GuiWidget(16, 16);
new GuiWidget(16, 16);
Button colorButton = new Button(4 + x * 18, 4 + y * 18, new ButtonViewStates(normal, hover, pressed, disabled));
colorButton.Name = index.ToString();
colorButton.Click += (sender, mouseEvent) =>
{
UserSettings.Instance.set("ActiveThemeIndex",((GuiWidget)sender).Name);
ActiveTheme.Instance.LoadThemeSettings(int.Parse(((GuiWidget)sender).Name));
};
index++;
themeButtons.AddChild(colorButton);
}
}
themeButtons.Margin = new BorderDouble(5);
this.AddChild(themeButtons);
this.VAnchor = VAnchor.ParentCenter;
}
public override void OnDraw(Graphics2D graphics2D)
{
base.OnDraw(graphics2D);
RectangleDouble border = LocalBounds;
border.Deflate(new BorderDouble(1));
graphics2D.Rectangle(border, ActiveTheme.Instance.SecondaryBackgroundColor, 4);
}
}
}