aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.Main/MainGame/Apps/ShifterStuff/Shifter.cs
diff options
context:
space:
mode:
authorRichie Moch <[email protected]>2018-12-22 15:24:55 -0600
committerRichie Moch <[email protected]>2018-12-22 15:24:55 -0600
commitd94c79dbf5183230e5fd3342848408f776de60ea (patch)
treee679a6ebd541e4c84ef39fdc2af78229eebea363 /ShiftOS.Main/MainGame/Apps/ShifterStuff/Shifter.cs
parent9d9958e18bda9142cb118f13332f2649a530f27f (diff)
downloadshiftos-rewind-d94c79dbf5183230e5fd3342848408f776de60ea.tar.gz
shiftos-rewind-d94c79dbf5183230e5fd3342848408f776de60ea.tar.bz2
shiftos-rewind-d94c79dbf5183230e5fd3342848408f776de60ea.zip
Various changes, began working on the texture skinning.
Diffstat (limited to 'ShiftOS.Main/MainGame/Apps/ShifterStuff/Shifter.cs')
-rw-r--r--ShiftOS.Main/MainGame/Apps/ShifterStuff/Shifter.cs227
1 files changed, 227 insertions, 0 deletions
diff --git a/ShiftOS.Main/MainGame/Apps/ShifterStuff/Shifter.cs b/ShiftOS.Main/MainGame/Apps/ShifterStuff/Shifter.cs
new file mode 100644
index 0000000..529e603
--- /dev/null
+++ b/ShiftOS.Main/MainGame/Apps/ShifterStuff/Shifter.cs
@@ -0,0 +1,227 @@
+using System;
+using System.Drawing;
+using System.IO;
+using System.Windows.Forms;
+using ShiftOS.Engine.Misc;
+using ShiftOS.Engine.WindowManager;
+using ShiftOS.Main.Properties;
+using Whoa;
+
+namespace ShiftOS.Main.ShiftOS.Apps.ShifterStuff
+{
+ public partial class Shifter : UserControl
+ {
+ public static readonly ImageConverter imageConverter = new ImageConverter();
+ public int ColorType; //This is a check to see what option was chosen.
+ public Shifter()
+ {
+ InitializeComponent();
+ }
+
+ void button1_Click(object sender, EventArgs e)
+ {
+ ColorType = 1;
+ ShiftWM.Init(new SelectColor(), "Select a color", Resources.iconColourPicker_fw);
+ }
+
+ /// <summary>
+ /// Modifies the values in ShiftShiftSkinData.Colors.
+ /// </summary>
+ /// <param name="borderColor">The border color of the window.</param>
+ /// <param name="btnClose">The close button color of the window.</param>
+ /// <param name="btnCloseHover">The close button color of the window while hovering.</param>
+ /// <param name="btnMax">The maximize button color of the window.</param>
+ /// <param name="btnMaxHover">The maximize button color of the window while hovering.</param>
+ /// <param name="btnMin">The minimize button color of the window.</param>
+ /// <param name="btnMinHover">The minimize button color of the window while hovering.</param>
+ void ModifyData(Color borderColor, Color btnClose, Color btnCloseHover, Color btnMax, Color btnMaxHover, Color btnMin, Color btnMinHover)
+ {
+ SetBorderColor(borderColor);
+ ShiftSkinData.Colors.BtnCloseColor = btnClose;
+ ShiftSkinData.Colors.BtnCloseHoverColor = btnCloseHover;
+ ShiftSkinData.Colors.BtnMaxColor = btnMax;
+ ShiftSkinData.Colors.BtnMaxHoverColor = btnMaxHover;
+ ShiftSkinData.Colors.BtnMinColor = btnMin;
+ ShiftSkinData.Colors.BtnMinHoverColor = btnMinHover;
+ }
+
+ // SetBorderColor
+ public void SetBorderColor(Color borderColor)
+ {
+ ShiftSkinData.Colors.LeftTopCornerColor = borderColor;
+ ShiftSkinData.Colors.TitleBarColor = borderColor;
+ ShiftSkinData.Colors.RightTopCornerColor = borderColor;
+ ShiftSkinData.Colors.LeftSideColor = borderColor;
+ ShiftSkinData.Colors.RightSideColor = borderColor;
+ ShiftSkinData.Colors.LeftBottomCornerColor = borderColor;
+ ShiftSkinData.Colors.BottomSideColor = borderColor;
+ ShiftSkinData.Colors.RightBottomCornerColor = borderColor;
+ }
+
+ void SetDefaultSkin(object sender, EventArgs e)
+ {
+ ModifyData(Color.FromArgb(64, 64, 64), Color.Black, Color.FromArgb(40, 40, 40), Color.Black, Color.FromArgb(40, 40, 40), Color.Black, Color.FromArgb(40, 40, 40));
+ ApplySkin();
+ }
+
+ void SetColorSkin(object sender, EventArgs e)
+ {
+ ModifyData(Color.Blue, Color.Red, Color.FromArgb(255, 102, 102), Color.Yellow, Color.FromArgb(255, 255, 153), Color.Green, Color.FromArgb(102, 255, 102));
+ ApplySkin();
+ }
+
+ void SetRandomSkin(object sender, EventArgs e)
+ {
+ var rnd = new Random();
+ ModifyData(
+ Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)), // Border Color
+ Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)), // Close Button Color
+ Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)), // Close Hover Color
+ Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)), // Maximize Button Color
+ Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)), // Maximize Hover Color
+ Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)), // Minimize Button Color
+ Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))); // Minimize Hover Color
+ ApplySkin();
+ }
+
+ void ApplySkin()
+ {
+ foreach (var window in ShiftWM.Windows)
+ {
+ window.Invoke(new Action(() => window.titleBar.BackColor = ShiftSkinData.Colors.TitleBarColor));
+ window.Invoke(new Action(() => window.leftTopCorner.BackColor = ShiftSkinData.Colors.LeftTopCornerColor));
+ window.Invoke(new Action(() => window.rightTopCorner.BackColor = ShiftSkinData.Colors.RightTopCornerColor));
+ window.Invoke(new Action(() => window.leftSide.BackColor = ShiftSkinData.Colors.LeftSideColor));
+ window.Invoke(new Action(() => window.rightSide.BackColor = ShiftSkinData.Colors.RightSideColor));
+ window.Invoke(new Action(() => window.leftBottomCorner.BackColor = ShiftSkinData.Colors.LeftBottomCornerColor));
+ window.Invoke(new Action(() => window.bottomSide.BackColor = ShiftSkinData.Colors.BottomSideColor));
+ window.Invoke(new Action(() => window.rightBottomCorner.BackColor = ShiftSkinData.Colors.RightBottomCornerColor));
+ window.Invoke(new Action(() => window.btnClose.BackColor = ShiftSkinData.Colors.BtnCloseColor));
+ window.Invoke(new Action(() => window.btnMax.BackColor = ShiftSkinData.Colors.BtnMaxColor));
+ window.Invoke(new Action(() => window.btnMin.BackColor = ShiftSkinData.Colors.BtnMinColor));
+ }
+ }
+ void ApplyTexturedSkin() //not implemented
+ {
+ throw new NotImplementedException("Not implemented.");
+
+ /*foreach (var window in ShiftWM.Windows)
+ {
+ window.Invoke(new Action(() => window.titleBar.Height = ShiftSkinData.Images.TitleBarImage.Height));
+ window.Invoke(new Action(() => window.leftTopCorner.Width = ShiftSkinData.Images.LeftTopCornerImage.Width));
+ window.Invoke(new Action(() => window.rightTopCorner.Width = ShiftSkinData.Images.RightTopCornerImage.Width));
+ window.Invoke(new Action(() => window.leftSide.Width = ShiftSkinData.Images.LeftSideImage.Width));
+ window.Invoke(new Action(() => window.rightSide.Width = ShiftSkinData.Images.RightSideImage.Width));
+ window.Invoke(new Action(() => window.leftBottomCorner.Width = ShiftSkinData.Images.LeftBottomCornerImage.Width));
+ window.Invoke(new Action(() => window.bottomSide.Width = ShiftSkinData.Images.BottomSideImage.Width));
+ window.Invoke(new Action(() => window.rightBottomCorner.Width = ShiftSkinData.Images.RightBottomCornerImage.Width));
+ window.Invoke(new Action(() => window.btnClose.Width = ShiftSkinData.Images.BtnCloseImage.Width));
+ window.Invoke(new Action(() => window.btnMax.Width = ShiftSkinData.Images.BtnMaxImage.Width));
+ window.Invoke(new Action(() => window.btnMin.Width = ShiftSkinData.Images.BtnMinImage.Width));
+ window.Invoke(new Action(() => window.titleBar.BackgroundImage = ShiftSkinData.Images.TitleBarImage));
+ window.Invoke(new Action(() => window.leftTopCorner.BackgroundImage = ShiftSkinData.Images.LeftTopCornerImage));
+ window.Invoke(new Action(() => window.rightTopCorner.BackgroundImage = ShiftSkinData.Images.RightTopCornerImage));
+ window.Invoke(new Action(() => window.leftSide.BackgroundImage = ShiftSkinData.Images.LeftSideImage));
+ window.Invoke(new Action(() => window.rightSide.BackgroundImage = ShiftSkinData.Images.RightSideImage));
+ window.Invoke(new Action(() => window.leftBottomCorner.BackgroundImage = ShiftSkinData.Images.LeftBottomCornerImage));
+ window.Invoke(new Action(() => window.bottomSide.BackgroundImage = ShiftSkinData.Images.BottomSideImage));
+ window.Invoke(new Action(() => window.rightBottomCorner.BackgroundImage = ShiftSkinData.Images.RightBottomCornerImage));
+ window.Invoke(new Action(() => window.btnClose.BackgroundImage = ShiftSkinData.Images.BtnCloseImage));
+ window.Invoke(new Action(() => window.btnMax.BackgroundImage = ShiftSkinData.Images.BtnMaxImage));
+ window.Invoke(new Action(() => window.btnMin.BackgroundImage = ShiftSkinData.Images.BtnMinImage));
+ }*/
+ }
+
+ void btnSave_Click(object sender, EventArgs e)
+ {
+ Color[] shiftSkinColors = new Color[14];
+
+ shiftSkinColors[0] = ShiftSkinData.Colors.LeftTopCornerColor;
+ shiftSkinColors[1] = ShiftSkinData.Colors.TitleBarColor;
+ shiftSkinColors[2] = ShiftSkinData.Colors.RightTopCornerColor;
+ shiftSkinColors[3] = ShiftSkinData.Colors.LeftSideColor;
+ shiftSkinColors[4] = ShiftSkinData.Colors.RightSideColor;
+ shiftSkinColors[5] = ShiftSkinData.Colors.LeftBottomCornerColor;
+ shiftSkinColors[6] = ShiftSkinData.Colors.BottomSideColor;
+ shiftSkinColors[7] = ShiftSkinData.Colors.RightBottomCornerColor;
+ shiftSkinColors[8] = ShiftSkinData.Colors.BtnCloseColor;
+ shiftSkinColors[9] = ShiftSkinData.Colors.BtnCloseHoverColor;
+ shiftSkinColors[10] = ShiftSkinData.Colors.BtnMaxColor;
+ shiftSkinColors[11] = ShiftSkinData.Colors.BtnMaxHoverColor;
+ shiftSkinColors[12] = ShiftSkinData.Colors.BtnMinColor;
+ shiftSkinColors[13] = ShiftSkinData.Colors.BtnMinHoverColor;
+
+ using (var fobj = File.OpenWrite(@"C:\Users\Public\Documents\Skin.whoa"))
+ Whoa.Whoa.SerialiseObject(fobj, shiftSkinColors);
+
+ InfoboxTemplate shiftWindow = ShiftWM.StartInfoboxSession(
+ "Saved Skin",
+ "Saved Skin to C:\\Users\\Public\\Documents\\Skin.whoa",
+ InfoboxTemplate.ButtonType.Ok);
+
+ }
+
+ private void btnLoad_Click(object sender, EventArgs e)
+ {
+ Color[] shiftSkinColors = new Color[14];
+ using (var fobj = File.OpenRead(@"C:\Users\Public\Documents\Skin.whoa"))
+ shiftSkinColors = Whoa.Whoa.DeserialiseObject<Color[]>(fobj);
+
+ ShiftSkinData.Colors.LeftTopCornerColor = shiftSkinColors[0];
+ ShiftSkinData.Colors.TitleBarColor = shiftSkinColors[1];
+ ShiftSkinData.Colors.RightTopCornerColor = shiftSkinColors[2];
+ ShiftSkinData.Colors.LeftSideColor = shiftSkinColors[3];
+ ShiftSkinData.Colors.RightSideColor = shiftSkinColors[4];
+ ShiftSkinData.Colors.LeftBottomCornerColor = shiftSkinColors[5];
+ ShiftSkinData.Colors.BottomSideColor = shiftSkinColors[6];
+ ShiftSkinData.Colors.RightBottomCornerColor = shiftSkinColors[7];
+ ShiftSkinData.Colors.BtnCloseColor = shiftSkinColors[8];
+ ShiftSkinData.Colors.BtnCloseHoverColor = shiftSkinColors[9];
+ ShiftSkinData.Colors.BtnMaxColor = shiftSkinColors[10];
+ ShiftSkinData.Colors.BtnMaxHoverColor = shiftSkinColors[11];
+ ShiftSkinData.Colors.BtnMinColor = shiftSkinColors[12];
+ ShiftSkinData.Colors.BtnMinHoverColor = shiftSkinColors[13];
+
+ ApplySkin();
+ ShiftWM.StartInfoboxSession(
+ "Loaded Skin",
+ "Loaded Skin from C:\\Users\\Public\\Documents\\Skin.whoa",
+ InfoboxTemplate.ButtonType.Ok);
+ }
+
+ private void button6_Click(object sender, EventArgs e)
+ {
+ ModifyData(
+ Color.FromArgb(15, 29, 45),
+ Color.FromArgb(15, 29, 78),
+ Color.FromArgb(15, 29, 100),
+ Color.FromArgb(15, 29, 130),
+ Color.FromArgb(15, 29, 108),
+ Color.FromArgb(15, 29, 130),
+ Color.FromArgb(15, 29, 160));
+ ApplySkin();
+ }
+
+ private void shiftButton1_Click(object sender, EventArgs e)
+ {
+ MessageBox.Show("This was clicked.");
+ }
+
+ private void shiftButton2_Click(object sender, EventArgs e)
+ {
+
+ }
+ public static Bitmap LoadImage(byte[] byteArray)
+ {
+ var bm = (Bitmap)imageConverter.ConvertFrom(byteArray);
+
+ if (bm != null && (bm.HorizontalResolution != (int)bm.HorizontalResolution ||
+ bm.VerticalResolution != (int)bm.VerticalResolution))
+ {
+ bm.SetResolution((int)(bm.HorizontalResolution + 0.5f),
+ (int)(bm.VerticalResolution + 0.5f));
+ }
+ return bm;
+ }
+ }
+} \ No newline at end of file