From c23e42cc396d4fc55799d659bae2149cc183dbf6 Mon Sep 17 00:00:00 2001 From: FloppyDiskDrive Date: Sun, 1 Oct 2017 09:49:14 -0500 Subject: [PATCH 1/6] Added a fuckton of changes New infobox icons, new WIP port of Snakey, we are getting closer to a pre-alpha! --- .vs/ShiftOS/v15/sqlite3/storage.ide | Bin 659456 -> 819200 bytes .../Properties/Resources.Designer.cs | 34 +++- ShiftOS.Engine/Properties/Resources.resx | 15 +- .../Resources/Symbolinfo - Copy.png | Bin 56780 -> 0 bytes ShiftOS.Engine/Resources/symbolError.png | Bin 0 -> 3297 bytes ShiftOS.Engine/Resources/symbolQuestion.png | Bin 0 -> 3078 bytes ShiftOS.Engine/Resources/symbolWarning.png | Bin 3463 -> 2929 bytes ShiftOS.Engine/ShiftOS.Engine.csproj | 9 + .../Templates/InfoboxTemplate.Designer.cs | 110 ------------ ShiftOS.Engine/Templates/InfoboxTemplate.cs | 35 ---- .../WindowManager/InfoboxTemplate.Designer.cs | 3 +- .../WindowManager/InfoboxTemplate.cs | 29 ++- ShiftOS.Main/HijackScreen.Designer.cs | 7 +- ShiftOS.Main/ShiftOS.Main.csproj | 9 + .../ShiftOS/Apps/ShifterStuff/SelectColor.cs | 10 +- ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs | 93 ++++++++++ ShiftOS.Main/ShiftOS/Apps/Snakey.cs | 123 +++++++++++++ .../ShiftOS/Apps/Snakey.resx | 0 .../ShiftOS/Apps/TestForm.Designer.cs | 168 +++++++++--------- ShiftOS.Main/ShiftOS/Apps/TestForm.cs | 24 ++- ShiftOS.Main/ShiftOS/Desktop.Designer.cs | 137 +++++++------- ShiftOS.Main/ShiftOS/Desktop.cs | 10 +- 22 files changed, 496 insertions(+), 320 deletions(-) delete mode 100644 ShiftOS.Engine/Resources/Symbolinfo - Copy.png create mode 100644 ShiftOS.Engine/Resources/symbolError.png create mode 100644 ShiftOS.Engine/Resources/symbolQuestion.png delete mode 100644 ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs delete mode 100644 ShiftOS.Engine/Templates/InfoboxTemplate.cs create mode 100644 ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs create mode 100644 ShiftOS.Main/ShiftOS/Apps/Snakey.cs rename ShiftOS.Engine/Templates/InfoboxTemplate.resx => ShiftOS.Main/ShiftOS/Apps/Snakey.resx (100%) diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index 3be545347161e0f3a0bdb4b06d984fe738e3e343..d58d29edf182612313d29f39b0cea505792ea645 100644 GIT binary patch delta 80084 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 diff --git a/ShiftOS.Engine/Properties/Resources.Designer.cs b/ShiftOS.Engine/Properties/Resources.Designer.cs index db83dd9..470100c 100644 --- a/ShiftOS.Engine/Properties/Resources.Designer.cs +++ b/ShiftOS.Engine/Properties/Resources.Designer.cs @@ -92,9 +92,39 @@ namespace ShiftOS.Engine.Properties { /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap Symbolinfo { + internal static System.Drawing.Bitmap symbolError { get { - object obj = ResourceManager.GetObject("Symbolinfo", resourceCulture); + object obj = ResourceManager.GetObject("symbolError", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap symbolInfo { + get { + object obj = ResourceManager.GetObject("symbolInfo", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap symbolQuestion { + get { + object obj = ResourceManager.GetObject("symbolQuestion", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap symbolWarning { + get { + object obj = ResourceManager.GetObject("symbolWarning", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } diff --git a/ShiftOS.Engine/Properties/Resources.resx b/ShiftOS.Engine/Properties/Resources.resx index db3d27b..7c6edde 100644 --- a/ShiftOS.Engine/Properties/Resources.resx +++ b/ShiftOS.Engine/Properties/Resources.resx @@ -121,13 +121,22 @@ ..\Resources\nullIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Symbolinfo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\iconInfoBox.fw.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\infobox.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\symbolError.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Symbolinfo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\symbolQuestion.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\symbolWarning.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/ShiftOS.Engine/Resources/Symbolinfo - Copy.png b/ShiftOS.Engine/Resources/Symbolinfo - Copy.png deleted file mode 100644 index 659d9b380b97b7c7732d82c43246dda41ca3ac0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56780 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 literal 0 HcmV?d00001 diff --git a/ShiftOS.Engine/Resources/symbolQuestion.png b/ShiftOS.Engine/Resources/symbolQuestion.png new file mode 100644 index 0000000000000000000000000000000000000000..f6f9325f5c80248920cb8352f2768e3e02ea3931 GIT binary patch literal 3078 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 UcLpcJkN^Mx07*qoM6N<$f`LTavH$=8 literal 0 HcmV?d00001 diff --git a/ShiftOS.Engine/Resources/symbolWarning.png b/ShiftOS.Engine/Resources/symbolWarning.png index f8805f6544c93ef32a689ebdc74f4379404b0eb3..1ea42873351294ceb0faaeb7adf7349cfeb8d152 100644 GIT binary patch delta 2836 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 m+C*auRzvAL>au2o{{h3VQPS^o@(q>%0000QG delta 3374 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 + + + + + + + + + \ No newline at end of file diff --git a/ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs b/ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs deleted file mode 100644 index ca37891..0000000 --- a/ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs +++ /dev/null @@ -1,110 +0,0 @@ -namespace ShiftOS.Engine.Templates -{ - partial class InfoboxTemplate - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.label1 = new System.Windows.Forms.Label(); - this.button2 = new System.Windows.Forms.Button(); - this.button1 = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - this.SuspendLayout(); - // - // pictureBox1 - // - this.pictureBox1.Image = global::ShiftOS.Engine.Properties.Resources.Symbolinfo; - this.pictureBox1.Location = new System.Drawing.Point(15, 17); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(80, 70); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 0; - this.pictureBox1.TabStop = false; - // - // label1 - // - this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.label1.AutoSize = true; - this.label1.Font = new System.Drawing.Font("Lucida Console", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(114, 40); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(115, 15); - this.label1.TabIndex = 1; - this.label1.Text = "Generic Body"; - // - // button2 - // - this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.button2.Font = new System.Drawing.Font("Lucida Console", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button2.Location = new System.Drawing.Point(194, 122); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(116, 27); - this.button2.TabIndex = 3; - this.button2.Text = "No"; - this.button2.UseVisualStyleBackColor = true; - // - // button1 - // - this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.button1.Font = new System.Drawing.Font("Lucida Console", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(51, 122); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(116, 27); - this.button1.TabIndex = 4; - this.button1.Text = "Yes"; - this.button1.UseVisualStyleBackColor = true; - // - // InfoboxTemplate - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.button1); - this.Controls.Add(this.button2); - this.Controls.Add(this.label1); - this.Controls.Add(this.pictureBox1); - this.Name = "InfoboxTemplate"; - this.Size = new System.Drawing.Size(367, 177); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Button button1; - } -} diff --git a/ShiftOS.Engine/Templates/InfoboxTemplate.cs b/ShiftOS.Engine/Templates/InfoboxTemplate.cs deleted file mode 100644 index bfc91a6..0000000 --- a/ShiftOS.Engine/Templates/InfoboxTemplate.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ShiftOS.Engine.Templates -{ - public partial class InfoboxTemplate : UserControl - { - public int buttonResult; - public InfoboxTemplate(buttonType type) - { - InitializeComponent(); - switch (type) - { - case buttonType.OK: - button1.Text = "OK"; - button2.Visible = false; - button1.Location = new Point(117, 122); - - } - } - public enum buttonType - { - YesNo, - OK, - OKCancel, - } - } -} diff --git a/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs b/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs index a076c2a..2675935 100644 --- a/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs +++ b/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs @@ -69,7 +69,7 @@ // this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); - this.pictureBox1.Image = global::ShiftOS.Engine.Properties.Resources.Symbolinfo; + this.pictureBox1.Image = global::ShiftOS.Engine.Properties.Resources.symbolInfo; this.pictureBox1.Location = new System.Drawing.Point(3, 35); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(80, 70); @@ -80,7 +80,6 @@ // changeSize // this.changeSize.Interval = 1; - this.changeSize.Tick += new System.EventHandler(this.changeSize_Tick); // // label1 // diff --git a/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs b/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs index a5be129..c5e49de 100644 --- a/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs +++ b/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs @@ -11,7 +11,7 @@ namespace ShiftOS.Engine.WindowManager Stream _str; private int _buttonChoice; private int _buttonSelected; - public InfoboxTemplate(ButtonType type) + public InfoboxTemplate(ButtonType type, ErrorIcon icon) { InitializeComponent(); @@ -34,6 +34,21 @@ namespace ShiftOS.Engine.WindowManager _buttonChoice = 3; break; } + switch (icon) + { + case ErrorIcon.Critical: + SetImage(Properties.Resources.symbolError); + break; + case ErrorIcon.Error: + SetImage(Properties.Resources.symbolWarning); + break; + case ErrorIcon.Info: + SetImage(Properties.Resources.symbolInfo); + break; + case ErrorIcon.Question: + SetImage(Properties.Resources.symbolQuestion); + break; + } } public enum ButtonType @@ -43,6 +58,13 @@ namespace ShiftOS.Engine.WindowManager Ok } + public enum ErrorIcon + { + Info, + Critical, + Error, + Question + } private void btnOpt1_Click(object sender, EventArgs e) { switch (btnOpt1.Text) @@ -82,10 +104,9 @@ namespace ShiftOS.Engine.WindowManager private void InfoboxTemplate_Load(object sender, EventArgs e) => Play(); - private void changeSize_Tick(object sender, EventArgs e) + private void SetImage(Image imageType) { - this.Height += label1.Height; - this.Width += label1.Width; + pictureBox1.Image = imageType; } } } diff --git a/ShiftOS.Main/HijackScreen.Designer.cs b/ShiftOS.Main/HijackScreen.Designer.cs index fab31dc..c0e5de9 100644 --- a/ShiftOS.Main/HijackScreen.Designer.cs +++ b/ShiftOS.Main/HijackScreen.Designer.cs @@ -28,12 +28,11 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); - this.conversationtimer = new System.Windows.Forms.Timer(this.components); - this.hackeffecttimer = new System.Windows.Forms.Timer(this.components); + this.conversationtimer = new System.Windows.Forms.Timer(); + this.hackeffecttimer = new System.Windows.Forms.Timer(); this.lblHijack = new System.Windows.Forms.Label(); - this.textgen = new System.Windows.Forms.Timer(this.components); + this.textgen = new System.Windows.Forms.Timer(); this.lblhackwords = new System.Windows.Forms.Label(); this.SuspendLayout(); // diff --git a/ShiftOS.Main/ShiftOS.Main.csproj b/ShiftOS.Main/ShiftOS.Main.csproj index c814c14..84d64ab 100644 --- a/ShiftOS.Main/ShiftOS.Main.csproj +++ b/ShiftOS.Main/ShiftOS.Main.csproj @@ -70,6 +70,12 @@ Shifter.cs + + UserControl + + + Snakey.cs + Form @@ -104,6 +110,9 @@ Shifter.cs + + Snakey.cs + TestForm.cs diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs index 697e22e..5eb5faa 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs @@ -27,12 +27,12 @@ namespace ShiftOS.Main.ShiftOS.Apps } catch(FormatException ex) { - ShiftWM.StartInfoboxSession("Error!", "Failed to parse integer. Error:\n" + ex, InfoboxTemplate.ButtonType.Ok); + ShiftWM.StartInfoboxSession("Error!", "Failed to parse integer. Error:\n" + ex, InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); } if (_colorType1 > 255 || _colorType2 > 255 || _colorType3 > 255) { - ShiftWM.StartInfoboxSession("Error!", "A value cannot be greater than 255!", InfoboxTemplate.ButtonType.Ok); + ShiftWM.StartInfoboxSession("Error!", "A value cannot be greater than 255!", InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); } else { @@ -40,12 +40,12 @@ namespace ShiftOS.Main.ShiftOS.Apps { ShiftWindow sw = new ShiftWindow(); _finalColor = Color.FromArgb(_colorType1, _colorType2, _colorType3); - BackColor = _finalColor; - ShiftWM.StartInfoboxSession("Success!", "Changed color to:\n" + _colorType1.ToString() + ", " + _colorType2.ToString() + ", " + _colorType3.ToString() + ".", InfoboxTemplate.ButtonType.Ok); + ShiftWM.SetTitleBarColor(_finalColor); + ShiftWM.StartInfoboxSession("Success!", "Changed color to:\n" + _colorType1.ToString() + ", " + _colorType2.ToString() + ", " + _colorType3.ToString() + ".", InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Info); } catch (Exception) { - ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok); + ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); } } } diff --git a/ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs new file mode 100644 index 0000000..bef7a6b --- /dev/null +++ b/ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs @@ -0,0 +1,93 @@ +namespace ShiftOS.Main.ShiftOS.Apps +{ + partial class Snakey + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.length = new System.Windows.Forms.Label(); + this.speed = new System.Windows.Forms.Label(); + this.score = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // length + // + this.length.AutoSize = true; + this.length.BackColor = System.Drawing.Color.Transparent; + this.length.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); + this.length.ForeColor = System.Drawing.Color.White; + this.length.Location = new System.Drawing.Point(573, 18); + this.length.Name = "length"; + this.length.Size = new System.Drawing.Size(76, 20); + this.length.TabIndex = 16; + this.length.Text = "Length: 5"; + // + // speed + // + this.speed.AutoSize = true; + this.speed.BackColor = System.Drawing.Color.Transparent; + this.speed.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); + this.speed.ForeColor = System.Drawing.Color.White; + this.speed.Location = new System.Drawing.Point(287, 18); + this.speed.Name = "speed"; + this.speed.Size = new System.Drawing.Size(73, 20); + this.speed.TabIndex = 15; + this.speed.Text = "Speed: 1"; + // + // score + // + this.score.AutoSize = true; + this.score.BackColor = System.Drawing.Color.Transparent; + this.score.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); + this.score.ForeColor = System.Drawing.Color.White; + this.score.Location = new System.Drawing.Point(24, 18); + this.score.Name = "score"; + this.score.Size = new System.Drawing.Size(100, 20); + this.score.TabIndex = 14; + this.score.Text = "Total Points: "; + // + // Snakey + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.BackColor = System.Drawing.Color.Black; + this.Controls.Add(this.length); + this.Controls.Add(this.speed); + this.Controls.Add(this.score); + this.Name = "Snakey"; + this.Size = new System.Drawing.Size(673, 447); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + internal System.Windows.Forms.Label length; + internal System.Windows.Forms.Label speed; + internal System.Windows.Forms.Label score; + } +} diff --git a/ShiftOS.Main/ShiftOS/Apps/Snakey.cs b/ShiftOS.Main/ShiftOS/Apps/Snakey.cs new file mode 100644 index 0000000..d8d4a98 --- /dev/null +++ b/ShiftOS.Main/ShiftOS/Apps/Snakey.cs @@ -0,0 +1,123 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using System.Drawing.Drawing2D; +using ShiftOS.Engine; +using ShiftOS.Main.Properties; + +namespace ShiftOS.Main.ShiftOS.Apps +{ + public partial class Snakey : UserControl + { + public Snakey() + { + InitializeComponent(); + } + private struct structSnake + { + public Rectangle rect; + public int x; + public int y; + } + private enum directions + { + Rightward, + Downward, + Leftward, + Upward + } + #region Various-Objects + private const int INTIAL_SNAKE_RECT_COUNT = 5; + private const int COLUMN_COUNT = 65; + private const int ROW_COUNT = 47; + private int curRecCount; + private Rectangle[,] Rects; + + + private bool [,] isSnakePart; + private List snake; + private Brush snakeBrush = new SolidBrush(Color.FromArgb(255, 255, 255)); + private Brush backBrush = new SolidBrush(Color.FromArgb(1, 1, 1)); + private Brush tokenBrush = new SolidBrush(Color.FromArgb(255, 255, 255)); + private directions curDirection; + private Bitmap buffer; + private int columnCount; + private int rowCount; + private int snakePoints; + private double snakeSpeed; + private int snakeLength; + private Rectangle token; + #endregion + private int xyIndexToRect(int X, int Y) + { + return (Y * (columnCount)) + X; + } + private void rectToIndexXY(double index, double X, double Y) + { + X = index % (columnCount); + Y = Math.Round(index / columnCount); + } + private void initSnake() + { + int x; + int y; + int index; + snake = new List(); + structSnake sSnake = new structSnake(); + x = ((columnCount) - 10 / 2); + y = ((rowCount) - 6) / 2; + Point snakePosition = new Point(x, y); + index = xyIndexToRect(x, y); + for (int i = 0; i < INTIAL_SNAKE_RECT_COUNT; i++) + { + rectToIndexXY(index + (i - 1), x, y); + sSnake.rect = Rects[x, y]; + sSnake.x = x; + sSnake.y = y; + snake.Add(sSnake); + } + snakeLength = INTIAL_SNAKE_RECT_COUNT; + snakeSpeed = 1; + length.Text = "Length: " + snakeLength.ToString(); + speed.Text = "Speed: " + snakeSpeed.ToString(); + } + private void selectRectangles() + { + Graphics g = Graphics.FromImage(Resources.snakeyback); + int i; + structSnake sSnake = new structSnake(); + for (i = 0; i < INTIAL_SNAKE_RECT_COUNT; i++) + { + sSnake = snake[i]; + g.FillRectangle(snakeBrush, sSnake.rect); + isSnakePart[sSnake.x, sSnake.y] = true; + } + buffer = new Bitmap(Resources.snakeyback); + g.Dispose(); + Refresh(); + } + private void initRectangles() + { + int i; + int j; + columnCount = COLUMN_COUNT; + rowCount = ROW_COUNT; + Rects = new Rectangle[columnCount, rowCount]; + isSnakePart = new bool[columnCount, rowCount]; + for (j = 0; j < rowCount; j++) + { + for (i = 0; i < columnCount; i++) + { + //TO-DO: I can't really port this over right now. Commiting soon. -FDD + } + } + } + } +} + diff --git a/ShiftOS.Engine/Templates/InfoboxTemplate.resx b/ShiftOS.Main/ShiftOS/Apps/Snakey.resx similarity index 100% rename from ShiftOS.Engine/Templates/InfoboxTemplate.resx rename to ShiftOS.Main/ShiftOS/Apps/Snakey.resx diff --git a/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs index 50bcb58..53765bd 100644 --- a/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs @@ -28,60 +28,57 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.systemIconsBindingSource = new System.Windows.Forms.BindingSource(this.components); - ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point(18, 20); - this.textBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(388, 26); - this.textBox1.TabIndex = 0; - this.textBox1.Text = "Title"; - // - // textBox2 - // - this.textBox2.Location = new System.Drawing.Point(18, 60); - this.textBox2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(388, 26); - this.textBox2.TabIndex = 1; - this.textBox2.Text = "Contents"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(13, 149); - this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(192, 35); - this.button1.TabIndex = 2; - this.button1.Text = "Create Window"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.Button1_Click); - // - // button2 - // - this.button2.Location = new System.Drawing.Point(217, 149); - this.button2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(189, 35); - this.button2.TabIndex = 4; - this.button2.Text = "Test Shifter"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { + this.components = new System.ComponentModel.Container(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.systemIconsBindingSource = new System.Windows.Forms.BindingSource(this.components); + this.panel1 = new System.Windows.Forms.Panel(); + ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).BeginInit(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(12, 13); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(260, 20); + this.textBox1.TabIndex = 0; + this.textBox1.Text = "Title"; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(12, 39); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(260, 20); + this.textBox2.TabIndex = 1; + this.textBox2.Text = "Contents"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(9, 97); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(128, 23); + this.button1.TabIndex = 2; + this.button1.Text = "Create Window"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.Button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(145, 97); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(126, 23); + this.button2.TabIndex = 4; + this.button2.Text = "Test Shifter"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { "Application", "Asterisk", "Error", @@ -92,31 +89,41 @@ "Shield", "Warning", "WinLogo"}); - this.comboBox1.Location = new System.Drawing.Point(18, 104); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(388, 28); - this.comboBox1.TabIndex = 5; - // - // systemIconsBindingSource - // - this.systemIconsBindingSource.DataSource = typeof(System.Drawing.SystemIcons); - // - // TestForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(426, 198); - this.Controls.Add(this.comboBox1); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.textBox2); - this.Controls.Add(this.textBox1); - this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.Name = "TestForm"; - this.Text = "TestForm"; - ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); + this.comboBox1.Location = new System.Drawing.Point(12, 68); + this.comboBox1.Margin = new System.Windows.Forms.Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(260, 21); + this.comboBox1.TabIndex = 5; + // + // systemIconsBindingSource + // + this.systemIconsBindingSource.DataSource = typeof(System.Drawing.SystemIcons); + // + // panel1 + // + this.panel1.BackColor = System.Drawing.SystemColors.ControlDarkDark; + this.panel1.Location = new System.Drawing.Point(71, 138); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(200, 37); + this.panel1.TabIndex = 6; + this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove); + // + // TestForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 175); + this.Controls.Add(this.panel1); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.textBox1); + this.Name = "TestForm"; + this.Text = "TestForm"; + ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -128,5 +135,6 @@ private System.Windows.Forms.Button button2; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.BindingSource systemIconsBindingSource; - } + private System.Windows.Forms.Panel panel1; + } } \ No newline at end of file diff --git a/ShiftOS.Main/ShiftOS/Apps/TestForm.cs b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs index 1fd3b18..e8360e0 100644 --- a/ShiftOS.Main/ShiftOS/Apps/TestForm.cs +++ b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs @@ -10,6 +10,7 @@ namespace ShiftOS.Main { public partial class TestForm : Form { + Point loc; public TestForm() { InitializeComponent(); @@ -17,16 +18,25 @@ namespace ShiftOS.Main private void Button1_Click(object sender, EventArgs e) { - ShiftDemo demo = new ShiftDemo {label1 = {Text = textBox2.Text}}; + ShiftDemo demo = new ShiftDemo { label1 = { Text = textBox2.Text } }; - var item = typeof(SystemIcons).GetProperties() - .First(p => p.Name == comboBox1.SelectedItem as string); + var item = typeof(SystemIcons).GetProperties() + .First(p => p.Name == comboBox1.SelectedItem as string); - ShiftWM.Init(demo, textBox1.Text, (item.GetMethod.Invoke(null, new object[0]) as Icon)); - ShiftWM.StartInfoboxSession(textBox1.Text, textBox2.Text, InfoboxTemplate.ButtonType.Ok); + ShiftWM.Init(demo, textBox1.Text, (item.GetMethod.Invoke(null, new object[0]) as Icon)); + ShiftWM.StartInfoboxSession(textBox1.Text, textBox2.Text, InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); } - private void button2_Click(object sender, EventArgs e) - => ShiftWM.Init(new Shifter(), "Shifter", Properties.Resources.iconShifter.ToIcon()); + private void button2_Click(object sender, EventArgs e) + => ShiftWM.Init(new Shifter(), "Shifter", Properties.Resources.iconShifter.ToIcon()); + + private void panel1_MouseMove(object sender, MouseEventArgs e) + { + if (e.Button == MouseButtons.Left) + { + loc = new Point(Cursor.Position.X, Cursor.Position.Y); + this.Location = loc; + } + } } } diff --git a/ShiftOS.Main/ShiftOS/Desktop.Designer.cs b/ShiftOS.Main/ShiftOS/Desktop.Designer.cs index dac30c6..35cf33e 100644 --- a/ShiftOS.Main/ShiftOS/Desktop.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Desktop.Designer.cs @@ -28,75 +28,78 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.listView1 = new System.Windows.Forms.ListView(); - this.taskbar = new System.Windows.Forms.ToolStrip(); - this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); - this.taskbarClock = new System.Windows.Forms.ToolStripLabel(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.taskbar.SuspendLayout(); - this.SuspendLayout(); - // - // listView1 - // - this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; - this.listView1.Location = new System.Drawing.Point(0, 0); - this.listView1.Name = "listView1"; - this.listView1.Size = new System.Drawing.Size(1962, 1236); - this.listView1.TabIndex = 0; - this.listView1.UseCompatibleStateImageBehavior = false; - // - // taskbar - // - this.taskbar.Dock = System.Windows.Forms.DockStyle.Bottom; - this.taskbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; - this.taskbar.ImageScalingSize = new System.Drawing.Size(24, 24); - this.taskbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + this.listView1 = new System.Windows.Forms.ListView(); + this.taskbar = new System.Windows.Forms.ToolStrip(); + this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); + this.taskbarClock = new System.Windows.Forms.ToolStripLabel(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.taskbar.SuspendLayout(); + this.SuspendLayout(); + // + // listView1 + // + this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.Location = new System.Drawing.Point(0, 0); + this.listView1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(913, 489); + this.listView1.TabIndex = 0; + this.listView1.UseCompatibleStateImageBehavior = false; + // + // taskbar + // + this.taskbar.Dock = System.Windows.Forms.DockStyle.Bottom; + this.taskbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.taskbar.ImageScalingSize = new System.Drawing.Size(24, 24); + this.taskbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripDropDownButton1, this.taskbarClock}); - this.taskbar.Location = new System.Drawing.Point(0, 1204); - this.taskbar.Name = "taskbar"; - this.taskbar.Size = new System.Drawing.Size(1962, 32); - this.taskbar.TabIndex = 1; - this.taskbar.Text = "toolStrip1"; - // - // toolStripDropDownButton1 - // - this.toolStripDropDownButton1.Image = global::ShiftOS.Main.Properties.Resources.iconWebBrowser; - this.toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripDropDownButton1.Name = "toolStripDropDownButton1"; - this.toolStripDropDownButton1.Size = new System.Drawing.Size(131, 29); - this.toolStripDropDownButton1.Tag = ((uint)(0u)); - this.toolStripDropDownButton1.Text = "Programs"; - // - // taskbarClock - // - this.taskbarClock.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; - this.taskbarClock.Image = global::ShiftOS.Main.Properties.Resources.iconClock; - this.taskbarClock.Name = "taskbarClock"; - this.taskbarClock.Size = new System.Drawing.Size(70, 29); - this.taskbarClock.Tag = ((uint)(0u)); - this.taskbarClock.Text = "0:00"; - // - // timer1 - // - this.timer1.Interval = 1000; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - // - // Desktop - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1962, 1236); - this.Controls.Add(this.taskbar); - this.Controls.Add(this.listView1); - this.Name = "Desktop"; - this.Text = "Desktop"; - this.taskbar.ResumeLayout(false); - this.taskbar.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); + this.taskbar.Location = new System.Drawing.Point(0, 458); + this.taskbar.Name = "taskbar"; + this.taskbar.Size = new System.Drawing.Size(913, 31); + this.taskbar.TabIndex = 1; + this.taskbar.Text = "toolStrip1"; + // + // toolStripDropDownButton1 + // + this.toolStripDropDownButton1.Image = global::ShiftOS.Main.Properties.Resources.iconWebBrowser; + this.toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripDropDownButton1.Name = "toolStripDropDownButton1"; + this.toolStripDropDownButton1.Size = new System.Drawing.Size(95, 28); + this.toolStripDropDownButton1.Tag = ((uint)(0u)); + this.toolStripDropDownButton1.Text = "Programs"; + this.toolStripDropDownButton1.Click += new System.EventHandler(this.toolStripDropDownButton1_Click); + // + // taskbarClock + // + this.taskbarClock.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.taskbarClock.Image = global::ShiftOS.Main.Properties.Resources.iconClock; + this.taskbarClock.Name = "taskbarClock"; + this.taskbarClock.Size = new System.Drawing.Size(52, 28); + this.taskbarClock.Tag = ((uint)(0u)); + this.taskbarClock.Text = "0:00"; + // + // timer1 + // + this.timer1.Interval = 1000; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // Desktop + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(913, 489); + this.Controls.Add(this.taskbar); + this.Controls.Add(this.listView1); + this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); + this.Name = "Desktop"; + this.Text = "Desktop"; + this.taskbar.ResumeLayout(false); + this.taskbar.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); } diff --git a/ShiftOS.Main/ShiftOS/Desktop.cs b/ShiftOS.Main/ShiftOS/Desktop.cs index 494222a..1ea4183 100644 --- a/ShiftOS.Main/ShiftOS/Desktop.cs +++ b/ShiftOS.Main/ShiftOS/Desktop.cs @@ -8,6 +8,9 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ShiftOS.Engine.WindowManager; +using ShiftOS.Main.ShiftOS.Apps; +using ShiftOS.Main.Properties; +using ShiftOS.Engine; namespace ShiftOS.Main.ShiftOS { @@ -57,5 +60,10 @@ namespace ShiftOS.Main.ShiftOS private void timer1_Tick(object sender, EventArgs e) => taskbarClock.Text = $"{DateTime.Now:t}"; - } + + private void toolStripDropDownButton1_Click(object sender, EventArgs e) + { + ShiftWM.Init(new Snakey(), "Snakey - WIP", Resources.iconSnakey.ToIcon(), false, true); + } + } } From aa44f27eab230f464e9778a4256c330a056a7b3c Mon Sep 17 00:00:00 2001 From: FloppyDiskDrive Date: Sun, 1 Oct 2017 09:52:26 -0500 Subject: [PATCH 2/6] Revert "Added a fuckton of changes" This reverts commit c23e42cc396d4fc55799d659bae2149cc183dbf6. --- .vs/ShiftOS/v15/sqlite3/storage.ide | Bin 819200 -> 659456 bytes .../Properties/Resources.Designer.cs | 34 +--- ShiftOS.Engine/Properties/Resources.resx | 15 +- .../Resources/Symbolinfo - Copy.png | Bin 0 -> 56780 bytes ShiftOS.Engine/Resources/symbolError.png | Bin 3297 -> 0 bytes ShiftOS.Engine/Resources/symbolQuestion.png | Bin 3078 -> 0 bytes ShiftOS.Engine/Resources/symbolWarning.png | Bin 2929 -> 3463 bytes ShiftOS.Engine/ShiftOS.Engine.csproj | 9 - .../Templates/InfoboxTemplate.Designer.cs | 110 ++++++++++++ ShiftOS.Engine/Templates/InfoboxTemplate.cs | 35 ++++ .../Templates/InfoboxTemplate.resx | 0 .../WindowManager/InfoboxTemplate.Designer.cs | 3 +- .../WindowManager/InfoboxTemplate.cs | 29 +-- ShiftOS.Main/HijackScreen.Designer.cs | 7 +- ShiftOS.Main/ShiftOS.Main.csproj | 9 - .../ShiftOS/Apps/ShifterStuff/SelectColor.cs | 10 +- ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs | 93 ---------- ShiftOS.Main/ShiftOS/Apps/Snakey.cs | 123 ------------- .../ShiftOS/Apps/TestForm.Designer.cs | 168 +++++++++--------- ShiftOS.Main/ShiftOS/Apps/TestForm.cs | 24 +-- ShiftOS.Main/ShiftOS/Desktop.Designer.cs | 137 +++++++------- ShiftOS.Main/ShiftOS/Desktop.cs | 10 +- 22 files changed, 320 insertions(+), 496 deletions(-) create mode 100644 ShiftOS.Engine/Resources/Symbolinfo - Copy.png delete mode 100644 ShiftOS.Engine/Resources/symbolError.png delete mode 100644 ShiftOS.Engine/Resources/symbolQuestion.png create mode 100644 ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs create mode 100644 ShiftOS.Engine/Templates/InfoboxTemplate.cs rename ShiftOS.Main/ShiftOS/Apps/Snakey.resx => ShiftOS.Engine/Templates/InfoboxTemplate.resx (100%) delete mode 100644 ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs delete mode 100644 ShiftOS.Main/ShiftOS/Apps/Snakey.cs diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index d58d29edf182612313d29f39b0cea505792ea645..3be545347161e0f3a0bdb4b06d984fe738e3e343 100644 GIT binary patch delta 1796 zcma)7U2IcT9KYw@bH94-diyonjgEE5GH~f=JJt>u&Bg|yiDMfb86svM?FA}Z3u`s7 zL|6kx2OHZsxSN5bTU_*kU^Z(k7@a)$pcsvW2YK)Th=~tErp6e^67}4U&Vupd;eT`Q z`TzbO=bYc~e+LIWgHvnAiaE+aQPlLf!%tI&xvm*m2joSvLP_#sT0iwbmdQKXSwNmZ zUZCWKOqoGq^chDzxCfjvV4eZNM1LfDAQ0Ujb9d8OT$(&7ot$RBXTN1{u%EEA?Az=_ z+V0xKtFI0r0ft~QfZNG7vl%*`HAQt3vTL>dg`K0<I$wTyQ+3y zMSfskT3&yk0<6Sej@GCpDYVCCW-7ss$V=U!L%~qLqC`nT+cuai$o6Mwk}RyXi17in zYZ4WL6>8}u>ab`r4e_|r*VB7U+c=4_;5oM&yX>V#vrG=9U5O{Q$NKw-$E5DOfV^tg z2r4SpGG%w#r1ZtAnv{6tKs38)1HS8WtBz4*RToB)QPz%xxDO>_he-;(Iy#I3g$AZP zFFF*LT41s)+h;Z~HHw51?bw!!=M~U(z@$5eHQ`Ug79gtr)5xwaoJ9xKuTP^Atpu*> z`4fCUukd^LXZfw@N8RUefW+V7-=Sxi5-`XA0GerOnYZ7;&)7Ls@;mOn;pOTM6O zWyk>@J|$?ejq1#CwNePhOP96Ht|IWQxgOPp25CpW##uXZP$zP3vV}7Il-$t(W%&=e zORZG#|CW29S+1imEh~=5oqUhvnm6IjG%7Xzv+N7bP;)u(lJw0_NuMB=X65x^Wc&LF zDEO6X{VT!0j{v!jdX&TFj{ry zZ=BTFwUXHk)cLoN6|`m|Z=m%c^T7~$j(dL!8W^)ajQQD$rGF8gnyo$=o_{?&4~Wsk f7-EnZON=AN6B9DwdGSg^##9fkg3K2{=hOcQhKU1| delta 80084 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 /// Looks up a localized resource of type System.Drawing.Bitmap. /// - internal static System.Drawing.Bitmap symbolError { + internal static System.Drawing.Bitmap Symbolinfo { get { - object obj = ResourceManager.GetObject("symbolError", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap symbolInfo { - get { - object obj = ResourceManager.GetObject("symbolInfo", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap symbolQuestion { - get { - object obj = ResourceManager.GetObject("symbolQuestion", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap symbolWarning { - get { - object obj = ResourceManager.GetObject("symbolWarning", resourceCulture); + object obj = ResourceManager.GetObject("Symbolinfo", resourceCulture); return ((System.Drawing.Bitmap)(obj)); } } diff --git a/ShiftOS.Engine/Properties/Resources.resx b/ShiftOS.Engine/Properties/Resources.resx index 7c6edde..db3d27b 100644 --- a/ShiftOS.Engine/Properties/Resources.resx +++ b/ShiftOS.Engine/Properties/Resources.resx @@ -121,22 +121,13 @@ ..\Resources\nullIcon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Symbolinfo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\iconInfoBox.fw.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\infobox.wav;System.IO.MemoryStream, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - ..\Resources\symbolError.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\Symbolinfo1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\symbolQuestion.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\symbolWarning.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - \ No newline at end of file diff --git a/ShiftOS.Engine/Resources/Symbolinfo - Copy.png b/ShiftOS.Engine/Resources/Symbolinfo - Copy.png new file mode 100644 index 0000000000000000000000000000000000000000..659d9b380b97b7c7732d82c43246dda41ca3ac0d GIT binary patch literal 56780 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 diff --git a/ShiftOS.Engine/Resources/symbolQuestion.png b/ShiftOS.Engine/Resources/symbolQuestion.png deleted file mode 100644 index f6f9325f5c80248920cb8352f2768e3e02ea3931..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3078 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 UcLpcJkN^Mx07*qoM6N<$f`LTavH$=8 diff --git a/ShiftOS.Engine/Resources/symbolWarning.png b/ShiftOS.Engine/Resources/symbolWarning.png index 1ea42873351294ceb0faaeb7adf7349cfeb8d152..f8805f6544c93ef32a689ebdc74f4379404b0eb3 100644 GIT binary patch delta 3374 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 m+C*auRzvAL>au2o{{h3VQPS^o@(q>%0000QG diff --git a/ShiftOS.Engine/ShiftOS.Engine.csproj b/ShiftOS.Engine/ShiftOS.Engine.csproj index 6da50d0..2b436c1 100644 --- a/ShiftOS.Engine/ShiftOS.Engine.csproj +++ b/ShiftOS.Engine/ShiftOS.Engine.csproj @@ -92,14 +92,5 @@ - - - - - - - - - \ No newline at end of file diff --git a/ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs b/ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs new file mode 100644 index 0000000..ca37891 --- /dev/null +++ b/ShiftOS.Engine/Templates/InfoboxTemplate.Designer.cs @@ -0,0 +1,110 @@ +namespace ShiftOS.Engine.Templates +{ + partial class InfoboxTemplate + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.label1 = new System.Windows.Forms.Label(); + this.button2 = new System.Windows.Forms.Button(); + this.button1 = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // pictureBox1 + // + this.pictureBox1.Image = global::ShiftOS.Engine.Properties.Resources.Symbolinfo; + this.pictureBox1.Location = new System.Drawing.Point(15, 17); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(80, 70); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pictureBox1.TabIndex = 0; + this.pictureBox1.TabStop = false; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoSize = true; + this.label1.Font = new System.Drawing.Font("Lucida Console", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label1.Location = new System.Drawing.Point(114, 40); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(115, 15); + this.label1.TabIndex = 1; + this.label1.Text = "Generic Body"; + // + // button2 + // + this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Font = new System.Drawing.Font("Lucida Console", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button2.Location = new System.Drawing.Point(194, 122); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(116, 27); + this.button2.TabIndex = 3; + this.button2.Text = "No"; + this.button2.UseVisualStyleBackColor = true; + // + // button1 + // + this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button1.Font = new System.Drawing.Font("Lucida Console", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.button1.Location = new System.Drawing.Point(51, 122); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(116, 27); + this.button1.TabIndex = 4; + this.button1.Text = "Yes"; + this.button1.UseVisualStyleBackColor = true; + // + // InfoboxTemplate + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.button1); + this.Controls.Add(this.button2); + this.Controls.Add(this.label1); + this.Controls.Add(this.pictureBox1); + this.Name = "InfoboxTemplate"; + this.Size = new System.Drawing.Size(367, 177); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button1; + } +} diff --git a/ShiftOS.Engine/Templates/InfoboxTemplate.cs b/ShiftOS.Engine/Templates/InfoboxTemplate.cs new file mode 100644 index 0000000..bfc91a6 --- /dev/null +++ b/ShiftOS.Engine/Templates/InfoboxTemplate.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace ShiftOS.Engine.Templates +{ + public partial class InfoboxTemplate : UserControl + { + public int buttonResult; + public InfoboxTemplate(buttonType type) + { + InitializeComponent(); + switch (type) + { + case buttonType.OK: + button1.Text = "OK"; + button2.Visible = false; + button1.Location = new Point(117, 122); + + } + } + public enum buttonType + { + YesNo, + OK, + OKCancel, + } + } +} diff --git a/ShiftOS.Main/ShiftOS/Apps/Snakey.resx b/ShiftOS.Engine/Templates/InfoboxTemplate.resx similarity index 100% rename from ShiftOS.Main/ShiftOS/Apps/Snakey.resx rename to ShiftOS.Engine/Templates/InfoboxTemplate.resx diff --git a/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs b/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs index 2675935..a076c2a 100644 --- a/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs +++ b/ShiftOS.Engine/WindowManager/InfoboxTemplate.Designer.cs @@ -69,7 +69,7 @@ // this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left))); - this.pictureBox1.Image = global::ShiftOS.Engine.Properties.Resources.symbolInfo; + this.pictureBox1.Image = global::ShiftOS.Engine.Properties.Resources.Symbolinfo; this.pictureBox1.Location = new System.Drawing.Point(3, 35); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(80, 70); @@ -80,6 +80,7 @@ // changeSize // this.changeSize.Interval = 1; + this.changeSize.Tick += new System.EventHandler(this.changeSize_Tick); // // label1 // diff --git a/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs b/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs index c5e49de..a5be129 100644 --- a/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs +++ b/ShiftOS.Engine/WindowManager/InfoboxTemplate.cs @@ -11,7 +11,7 @@ namespace ShiftOS.Engine.WindowManager Stream _str; private int _buttonChoice; private int _buttonSelected; - public InfoboxTemplate(ButtonType type, ErrorIcon icon) + public InfoboxTemplate(ButtonType type) { InitializeComponent(); @@ -34,21 +34,6 @@ namespace ShiftOS.Engine.WindowManager _buttonChoice = 3; break; } - switch (icon) - { - case ErrorIcon.Critical: - SetImage(Properties.Resources.symbolError); - break; - case ErrorIcon.Error: - SetImage(Properties.Resources.symbolWarning); - break; - case ErrorIcon.Info: - SetImage(Properties.Resources.symbolInfo); - break; - case ErrorIcon.Question: - SetImage(Properties.Resources.symbolQuestion); - break; - } } public enum ButtonType @@ -58,13 +43,6 @@ namespace ShiftOS.Engine.WindowManager Ok } - public enum ErrorIcon - { - Info, - Critical, - Error, - Question - } private void btnOpt1_Click(object sender, EventArgs e) { switch (btnOpt1.Text) @@ -104,9 +82,10 @@ namespace ShiftOS.Engine.WindowManager private void InfoboxTemplate_Load(object sender, EventArgs e) => Play(); - private void SetImage(Image imageType) + private void changeSize_Tick(object sender, EventArgs e) { - pictureBox1.Image = imageType; + this.Height += label1.Height; + this.Width += label1.Width; } } } diff --git a/ShiftOS.Main/HijackScreen.Designer.cs b/ShiftOS.Main/HijackScreen.Designer.cs index c0e5de9..fab31dc 100644 --- a/ShiftOS.Main/HijackScreen.Designer.cs +++ b/ShiftOS.Main/HijackScreen.Designer.cs @@ -28,11 +28,12 @@ /// private void InitializeComponent() { + this.components = new System.ComponentModel.Container(); this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker(); - this.conversationtimer = new System.Windows.Forms.Timer(); - this.hackeffecttimer = new System.Windows.Forms.Timer(); + this.conversationtimer = new System.Windows.Forms.Timer(this.components); + this.hackeffecttimer = new System.Windows.Forms.Timer(this.components); this.lblHijack = new System.Windows.Forms.Label(); - this.textgen = new System.Windows.Forms.Timer(); + this.textgen = new System.Windows.Forms.Timer(this.components); this.lblhackwords = new System.Windows.Forms.Label(); this.SuspendLayout(); // diff --git a/ShiftOS.Main/ShiftOS.Main.csproj b/ShiftOS.Main/ShiftOS.Main.csproj index 84d64ab..c814c14 100644 --- a/ShiftOS.Main/ShiftOS.Main.csproj +++ b/ShiftOS.Main/ShiftOS.Main.csproj @@ -70,12 +70,6 @@ Shifter.cs - - UserControl - - - Snakey.cs - Form @@ -110,9 +104,6 @@ Shifter.cs - - Snakey.cs - TestForm.cs diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs index 5eb5faa..697e22e 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs @@ -27,12 +27,12 @@ namespace ShiftOS.Main.ShiftOS.Apps } catch(FormatException ex) { - ShiftWM.StartInfoboxSession("Error!", "Failed to parse integer. Error:\n" + ex, InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); + ShiftWM.StartInfoboxSession("Error!", "Failed to parse integer. Error:\n" + ex, InfoboxTemplate.ButtonType.Ok); } if (_colorType1 > 255 || _colorType2 > 255 || _colorType3 > 255) { - ShiftWM.StartInfoboxSession("Error!", "A value cannot be greater than 255!", InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); + ShiftWM.StartInfoboxSession("Error!", "A value cannot be greater than 255!", InfoboxTemplate.ButtonType.Ok); } else { @@ -40,12 +40,12 @@ namespace ShiftOS.Main.ShiftOS.Apps { ShiftWindow sw = new ShiftWindow(); _finalColor = Color.FromArgb(_colorType1, _colorType2, _colorType3); - ShiftWM.SetTitleBarColor(_finalColor); - ShiftWM.StartInfoboxSession("Success!", "Changed color to:\n" + _colorType1.ToString() + ", " + _colorType2.ToString() + ", " + _colorType3.ToString() + ".", InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Info); + BackColor = _finalColor; + ShiftWM.StartInfoboxSession("Success!", "Changed color to:\n" + _colorType1.ToString() + ", " + _colorType2.ToString() + ", " + _colorType3.ToString() + ".", InfoboxTemplate.ButtonType.Ok); } catch (Exception) { - ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); + ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok); } } } diff --git a/ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs deleted file mode 100644 index bef7a6b..0000000 --- a/ShiftOS.Main/ShiftOS/Apps/Snakey.Designer.cs +++ /dev/null @@ -1,93 +0,0 @@ -namespace ShiftOS.Main.ShiftOS.Apps -{ - partial class Snakey - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.length = new System.Windows.Forms.Label(); - this.speed = new System.Windows.Forms.Label(); - this.score = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // length - // - this.length.AutoSize = true; - this.length.BackColor = System.Drawing.Color.Transparent; - this.length.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); - this.length.ForeColor = System.Drawing.Color.White; - this.length.Location = new System.Drawing.Point(573, 18); - this.length.Name = "length"; - this.length.Size = new System.Drawing.Size(76, 20); - this.length.TabIndex = 16; - this.length.Text = "Length: 5"; - // - // speed - // - this.speed.AutoSize = true; - this.speed.BackColor = System.Drawing.Color.Transparent; - this.speed.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); - this.speed.ForeColor = System.Drawing.Color.White; - this.speed.Location = new System.Drawing.Point(287, 18); - this.speed.Name = "speed"; - this.speed.Size = new System.Drawing.Size(73, 20); - this.speed.TabIndex = 15; - this.speed.Text = "Speed: 1"; - // - // score - // - this.score.AutoSize = true; - this.score.BackColor = System.Drawing.Color.Transparent; - this.score.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); - this.score.ForeColor = System.Drawing.Color.White; - this.score.Location = new System.Drawing.Point(24, 18); - this.score.Name = "score"; - this.score.Size = new System.Drawing.Size(100, 20); - this.score.TabIndex = 14; - this.score.Text = "Total Points: "; - // - // Snakey - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.Black; - this.Controls.Add(this.length); - this.Controls.Add(this.speed); - this.Controls.Add(this.score); - this.Name = "Snakey"; - this.Size = new System.Drawing.Size(673, 447); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Label length; - internal System.Windows.Forms.Label speed; - internal System.Windows.Forms.Label score; - } -} diff --git a/ShiftOS.Main/ShiftOS/Apps/Snakey.cs b/ShiftOS.Main/ShiftOS/Apps/Snakey.cs deleted file mode 100644 index d8d4a98..0000000 --- a/ShiftOS.Main/ShiftOS/Apps/Snakey.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Drawing.Drawing2D; -using ShiftOS.Engine; -using ShiftOS.Main.Properties; - -namespace ShiftOS.Main.ShiftOS.Apps -{ - public partial class Snakey : UserControl - { - public Snakey() - { - InitializeComponent(); - } - private struct structSnake - { - public Rectangle rect; - public int x; - public int y; - } - private enum directions - { - Rightward, - Downward, - Leftward, - Upward - } - #region Various-Objects - private const int INTIAL_SNAKE_RECT_COUNT = 5; - private const int COLUMN_COUNT = 65; - private const int ROW_COUNT = 47; - private int curRecCount; - private Rectangle[,] Rects; - - - private bool [,] isSnakePart; - private List snake; - private Brush snakeBrush = new SolidBrush(Color.FromArgb(255, 255, 255)); - private Brush backBrush = new SolidBrush(Color.FromArgb(1, 1, 1)); - private Brush tokenBrush = new SolidBrush(Color.FromArgb(255, 255, 255)); - private directions curDirection; - private Bitmap buffer; - private int columnCount; - private int rowCount; - private int snakePoints; - private double snakeSpeed; - private int snakeLength; - private Rectangle token; - #endregion - private int xyIndexToRect(int X, int Y) - { - return (Y * (columnCount)) + X; - } - private void rectToIndexXY(double index, double X, double Y) - { - X = index % (columnCount); - Y = Math.Round(index / columnCount); - } - private void initSnake() - { - int x; - int y; - int index; - snake = new List(); - structSnake sSnake = new structSnake(); - x = ((columnCount) - 10 / 2); - y = ((rowCount) - 6) / 2; - Point snakePosition = new Point(x, y); - index = xyIndexToRect(x, y); - for (int i = 0; i < INTIAL_SNAKE_RECT_COUNT; i++) - { - rectToIndexXY(index + (i - 1), x, y); - sSnake.rect = Rects[x, y]; - sSnake.x = x; - sSnake.y = y; - snake.Add(sSnake); - } - snakeLength = INTIAL_SNAKE_RECT_COUNT; - snakeSpeed = 1; - length.Text = "Length: " + snakeLength.ToString(); - speed.Text = "Speed: " + snakeSpeed.ToString(); - } - private void selectRectangles() - { - Graphics g = Graphics.FromImage(Resources.snakeyback); - int i; - structSnake sSnake = new structSnake(); - for (i = 0; i < INTIAL_SNAKE_RECT_COUNT; i++) - { - sSnake = snake[i]; - g.FillRectangle(snakeBrush, sSnake.rect); - isSnakePart[sSnake.x, sSnake.y] = true; - } - buffer = new Bitmap(Resources.snakeyback); - g.Dispose(); - Refresh(); - } - private void initRectangles() - { - int i; - int j; - columnCount = COLUMN_COUNT; - rowCount = ROW_COUNT; - Rects = new Rectangle[columnCount, rowCount]; - isSnakePart = new bool[columnCount, rowCount]; - for (j = 0; j < rowCount; j++) - { - for (i = 0; i < columnCount; i++) - { - //TO-DO: I can't really port this over right now. Commiting soon. -FDD - } - } - } - } -} - diff --git a/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs index 53765bd..50bcb58 100644 --- a/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Apps/TestForm.Designer.cs @@ -28,57 +28,60 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.systemIconsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point(12, 13); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(260, 20); - this.textBox1.TabIndex = 0; - this.textBox1.Text = "Title"; - // - // textBox2 - // - this.textBox2.Location = new System.Drawing.Point(12, 39); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(260, 20); - this.textBox2.TabIndex = 1; - this.textBox2.Text = "Contents"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(9, 97); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(128, 23); - this.button1.TabIndex = 2; - this.button1.Text = "Create Window"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.Button1_Click); - // - // button2 - // - this.button2.Location = new System.Drawing.Point(145, 97); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(126, 23); - this.button2.TabIndex = 4; - this.button2.Text = "Test Shifter"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // comboBox1 - // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Items.AddRange(new object[] { + this.components = new System.ComponentModel.Container(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.textBox2 = new System.Windows.Forms.TextBox(); + this.button1 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); + this.comboBox1 = new System.Windows.Forms.ComboBox(); + this.systemIconsBindingSource = new System.Windows.Forms.BindingSource(this.components); + ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).BeginInit(); + this.SuspendLayout(); + // + // textBox1 + // + this.textBox1.Location = new System.Drawing.Point(18, 20); + this.textBox1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textBox1.Name = "textBox1"; + this.textBox1.Size = new System.Drawing.Size(388, 26); + this.textBox1.TabIndex = 0; + this.textBox1.Text = "Title"; + // + // textBox2 + // + this.textBox2.Location = new System.Drawing.Point(18, 60); + this.textBox2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.textBox2.Name = "textBox2"; + this.textBox2.Size = new System.Drawing.Size(388, 26); + this.textBox2.TabIndex = 1; + this.textBox2.Text = "Contents"; + // + // button1 + // + this.button1.Location = new System.Drawing.Point(13, 149); + this.button1.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(192, 35); + this.button1.TabIndex = 2; + this.button1.Text = "Create Window"; + this.button1.UseVisualStyleBackColor = true; + this.button1.Click += new System.EventHandler(this.Button1_Click); + // + // button2 + // + this.button2.Location = new System.Drawing.Point(217, 149); + this.button2.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(189, 35); + this.button2.TabIndex = 4; + this.button2.Text = "Test Shifter"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // comboBox1 + // + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { "Application", "Asterisk", "Error", @@ -89,41 +92,31 @@ "Shield", "Warning", "WinLogo"}); - this.comboBox1.Location = new System.Drawing.Point(12, 68); - this.comboBox1.Margin = new System.Windows.Forms.Padding(2); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(260, 21); - this.comboBox1.TabIndex = 5; - // - // systemIconsBindingSource - // - this.systemIconsBindingSource.DataSource = typeof(System.Drawing.SystemIcons); - // - // panel1 - // - this.panel1.BackColor = System.Drawing.SystemColors.ControlDarkDark; - this.panel1.Location = new System.Drawing.Point(71, 138); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(200, 37); - this.panel1.TabIndex = 6; - this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove); - // - // TestForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 175); - this.Controls.Add(this.panel1); - this.Controls.Add(this.comboBox1); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.textBox2); - this.Controls.Add(this.textBox1); - this.Name = "TestForm"; - this.Text = "TestForm"; - ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); + this.comboBox1.Location = new System.Drawing.Point(18, 104); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(388, 28); + this.comboBox1.TabIndex = 5; + // + // systemIconsBindingSource + // + this.systemIconsBindingSource.DataSource = typeof(System.Drawing.SystemIcons); + // + // TestForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(426, 198); + this.Controls.Add(this.comboBox1); + this.Controls.Add(this.button2); + this.Controls.Add(this.button1); + this.Controls.Add(this.textBox2); + this.Controls.Add(this.textBox1); + this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.Name = "TestForm"; + this.Text = "TestForm"; + ((System.ComponentModel.ISupportInitialize)(this.systemIconsBindingSource)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); } @@ -135,6 +128,5 @@ private System.Windows.Forms.Button button2; private System.Windows.Forms.ComboBox comboBox1; private System.Windows.Forms.BindingSource systemIconsBindingSource; - private System.Windows.Forms.Panel panel1; - } + } } \ No newline at end of file diff --git a/ShiftOS.Main/ShiftOS/Apps/TestForm.cs b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs index e8360e0..1fd3b18 100644 --- a/ShiftOS.Main/ShiftOS/Apps/TestForm.cs +++ b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs @@ -10,7 +10,6 @@ namespace ShiftOS.Main { public partial class TestForm : Form { - Point loc; public TestForm() { InitializeComponent(); @@ -18,25 +17,16 @@ namespace ShiftOS.Main private void Button1_Click(object sender, EventArgs e) { - ShiftDemo demo = new ShiftDemo { label1 = { Text = textBox2.Text } }; + ShiftDemo demo = new ShiftDemo {label1 = {Text = textBox2.Text}}; - var item = typeof(SystemIcons).GetProperties() - .First(p => p.Name == comboBox1.SelectedItem as string); + var item = typeof(SystemIcons).GetProperties() + .First(p => p.Name == comboBox1.SelectedItem as string); - ShiftWM.Init(demo, textBox1.Text, (item.GetMethod.Invoke(null, new object[0]) as Icon)); - ShiftWM.StartInfoboxSession(textBox1.Text, textBox2.Text, InfoboxTemplate.ButtonType.Ok, InfoboxTemplate.ErrorIcon.Critical); + ShiftWM.Init(demo, textBox1.Text, (item.GetMethod.Invoke(null, new object[0]) as Icon)); + ShiftWM.StartInfoboxSession(textBox1.Text, textBox2.Text, InfoboxTemplate.ButtonType.Ok); } - private void button2_Click(object sender, EventArgs e) - => ShiftWM.Init(new Shifter(), "Shifter", Properties.Resources.iconShifter.ToIcon()); - - private void panel1_MouseMove(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Left) - { - loc = new Point(Cursor.Position.X, Cursor.Position.Y); - this.Location = loc; - } - } + private void button2_Click(object sender, EventArgs e) + => ShiftWM.Init(new Shifter(), "Shifter", Properties.Resources.iconShifter.ToIcon()); } } diff --git a/ShiftOS.Main/ShiftOS/Desktop.Designer.cs b/ShiftOS.Main/ShiftOS/Desktop.Designer.cs index 35cf33e..dac30c6 100644 --- a/ShiftOS.Main/ShiftOS/Desktop.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Desktop.Designer.cs @@ -28,78 +28,75 @@ /// private void InitializeComponent() { - this.components = new System.ComponentModel.Container(); - this.listView1 = new System.Windows.Forms.ListView(); - this.taskbar = new System.Windows.Forms.ToolStrip(); - this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); - this.taskbarClock = new System.Windows.Forms.ToolStripLabel(); - this.timer1 = new System.Windows.Forms.Timer(this.components); - this.taskbar.SuspendLayout(); - this.SuspendLayout(); - // - // listView1 - // - this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; - this.listView1.Location = new System.Drawing.Point(0, 0); - this.listView1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.listView1.Name = "listView1"; - this.listView1.Size = new System.Drawing.Size(913, 489); - this.listView1.TabIndex = 0; - this.listView1.UseCompatibleStateImageBehavior = false; - // - // taskbar - // - this.taskbar.Dock = System.Windows.Forms.DockStyle.Bottom; - this.taskbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; - this.taskbar.ImageScalingSize = new System.Drawing.Size(24, 24); - this.taskbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.components = new System.ComponentModel.Container(); + this.listView1 = new System.Windows.Forms.ListView(); + this.taskbar = new System.Windows.Forms.ToolStrip(); + this.toolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); + this.taskbarClock = new System.Windows.Forms.ToolStripLabel(); + this.timer1 = new System.Windows.Forms.Timer(this.components); + this.taskbar.SuspendLayout(); + this.SuspendLayout(); + // + // listView1 + // + this.listView1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.listView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.listView1.Location = new System.Drawing.Point(0, 0); + this.listView1.Name = "listView1"; + this.listView1.Size = new System.Drawing.Size(1962, 1236); + this.listView1.TabIndex = 0; + this.listView1.UseCompatibleStateImageBehavior = false; + // + // taskbar + // + this.taskbar.Dock = System.Windows.Forms.DockStyle.Bottom; + this.taskbar.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; + this.taskbar.ImageScalingSize = new System.Drawing.Size(24, 24); + this.taskbar.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.toolStripDropDownButton1, this.taskbarClock}); - this.taskbar.Location = new System.Drawing.Point(0, 458); - this.taskbar.Name = "taskbar"; - this.taskbar.Size = new System.Drawing.Size(913, 31); - this.taskbar.TabIndex = 1; - this.taskbar.Text = "toolStrip1"; - // - // toolStripDropDownButton1 - // - this.toolStripDropDownButton1.Image = global::ShiftOS.Main.Properties.Resources.iconWebBrowser; - this.toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripDropDownButton1.Name = "toolStripDropDownButton1"; - this.toolStripDropDownButton1.Size = new System.Drawing.Size(95, 28); - this.toolStripDropDownButton1.Tag = ((uint)(0u)); - this.toolStripDropDownButton1.Text = "Programs"; - this.toolStripDropDownButton1.Click += new System.EventHandler(this.toolStripDropDownButton1_Click); - // - // taskbarClock - // - this.taskbarClock.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; - this.taskbarClock.Image = global::ShiftOS.Main.Properties.Resources.iconClock; - this.taskbarClock.Name = "taskbarClock"; - this.taskbarClock.Size = new System.Drawing.Size(52, 28); - this.taskbarClock.Tag = ((uint)(0u)); - this.taskbarClock.Text = "0:00"; - // - // timer1 - // - this.timer1.Interval = 1000; - this.timer1.Tick += new System.EventHandler(this.timer1_Tick); - // - // Desktop - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(913, 489); - this.Controls.Add(this.taskbar); - this.Controls.Add(this.listView1); - this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.Name = "Desktop"; - this.Text = "Desktop"; - this.taskbar.ResumeLayout(false); - this.taskbar.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); + this.taskbar.Location = new System.Drawing.Point(0, 1204); + this.taskbar.Name = "taskbar"; + this.taskbar.Size = new System.Drawing.Size(1962, 32); + this.taskbar.TabIndex = 1; + this.taskbar.Text = "toolStrip1"; + // + // toolStripDropDownButton1 + // + this.toolStripDropDownButton1.Image = global::ShiftOS.Main.Properties.Resources.iconWebBrowser; + this.toolStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripDropDownButton1.Name = "toolStripDropDownButton1"; + this.toolStripDropDownButton1.Size = new System.Drawing.Size(131, 29); + this.toolStripDropDownButton1.Tag = ((uint)(0u)); + this.toolStripDropDownButton1.Text = "Programs"; + // + // taskbarClock + // + this.taskbarClock.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right; + this.taskbarClock.Image = global::ShiftOS.Main.Properties.Resources.iconClock; + this.taskbarClock.Name = "taskbarClock"; + this.taskbarClock.Size = new System.Drawing.Size(70, 29); + this.taskbarClock.Tag = ((uint)(0u)); + this.taskbarClock.Text = "0:00"; + // + // timer1 + // + this.timer1.Interval = 1000; + this.timer1.Tick += new System.EventHandler(this.timer1_Tick); + // + // Desktop + // + this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1962, 1236); + this.Controls.Add(this.taskbar); + this.Controls.Add(this.listView1); + this.Name = "Desktop"; + this.Text = "Desktop"; + this.taskbar.ResumeLayout(false); + this.taskbar.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); } diff --git a/ShiftOS.Main/ShiftOS/Desktop.cs b/ShiftOS.Main/ShiftOS/Desktop.cs index 1ea4183..494222a 100644 --- a/ShiftOS.Main/ShiftOS/Desktop.cs +++ b/ShiftOS.Main/ShiftOS/Desktop.cs @@ -8,9 +8,6 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using ShiftOS.Engine.WindowManager; -using ShiftOS.Main.ShiftOS.Apps; -using ShiftOS.Main.Properties; -using ShiftOS.Engine; namespace ShiftOS.Main.ShiftOS { @@ -60,10 +57,5 @@ namespace ShiftOS.Main.ShiftOS private void timer1_Tick(object sender, EventArgs e) => taskbarClock.Text = $"{DateTime.Now:t}"; - - private void toolStripDropDownButton1_Click(object sender, EventArgs e) - { - ShiftWM.Init(new Snakey(), "Snakey - WIP", Resources.iconSnakey.ToIcon(), false, true); - } - } + } } From b45df71168d5fa3f817c45194e4019d15b3a2aa0 Mon Sep 17 00:00:00 2001 From: AShifter Date: Sun, 1 Oct 2017 09:52:36 -0600 Subject: [PATCH 3/6] Shifting is working owow --- .vs/ShiftOS/v15/sqlite3/storage.ide | Bin 659456 -> 835584 bytes ShiftOS.Engine/ShiftOS.Engine.csproj | 1 + ShiftOS.Engine/WindowManager/ShiftArray.cs | 12 +++ ShiftOS.Engine/WindowManager/ShiftWM.cs | 2 +- .../Apps/ShifterStuff/SelectColor.Designer.cs | 81 +++++++++++------- .../ShiftOS/Apps/ShifterStuff/SelectColor.cs | 45 ++++------ .../Apps/ShifterStuff/Shifter.Designer.cs | 30 +++++++ .../ShiftOS/Apps/ShifterStuff/Shifter.cs | 10 +++ ShiftOS.Main/ShiftOS/Apps/TestForm.cs | 8 +- 9 files changed, 125 insertions(+), 64 deletions(-) create mode 100644 ShiftOS.Engine/WindowManager/ShiftArray.cs diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index 3be545347161e0f3a0bdb4b06d984fe738e3e343..8466a5c5f121ec0935f907a065600c6485305ba9 100644 GIT binary patch delta 86058 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 InfoboxTemplate.cs + Form diff --git a/ShiftOS.Engine/WindowManager/ShiftArray.cs b/ShiftOS.Engine/WindowManager/ShiftArray.cs new file mode 100644 index 0000000..bfb3cde --- /dev/null +++ b/ShiftOS.Engine/WindowManager/ShiftArray.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ShiftOS.Engine.WindowManager +{ + class ShiftArray + { + } +} diff --git a/ShiftOS.Engine/WindowManager/ShiftWM.cs b/ShiftOS.Engine/WindowManager/ShiftWM.cs index 0c69fb7..594848a 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWM.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWM.cs @@ -18,7 +18,7 @@ namespace ShiftOS.Engine.WindowManager } /// - /// Shows a new Window based on a UserControl. + /// Shows a new ShiftWindow based on a UserControl. /// /// The UserControl to use /// The program's title diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.Designer.cs index e305651..a7473a0 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.Designer.cs @@ -31,10 +31,13 @@ this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.textBox3 = new System.Windows.Forms.TextBox(); this.btnSetColor = new System.Windows.Forms.Button(); + this.redUpDown = new System.Windows.Forms.NumericUpDown(); + this.greenUpDown = new System.Windows.Forms.NumericUpDown(); + this.blueUpDown = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).BeginInit(); this.SuspendLayout(); // // label1 @@ -64,27 +67,6 @@ this.label3.TabIndex = 2; this.label3.Text = "Blue:"; // - // textBox1 - // - this.textBox1.Location = new System.Drawing.Point(75, 27); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(206, 20); - this.textBox1.TabIndex = 3; - // - // textBox2 - // - this.textBox2.Location = new System.Drawing.Point(75, 58); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(206, 20); - this.textBox2.TabIndex = 4; - // - // textBox3 - // - this.textBox3.Location = new System.Drawing.Point(75, 88); - this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(206, 20); - this.textBox3.TabIndex = 5; - // // btnSetColor // this.btnSetColor.FlatStyle = System.Windows.Forms.FlatStyle.Flat; @@ -96,20 +78,59 @@ this.btnSetColor.UseVisualStyleBackColor = true; this.btnSetColor.Click += new System.EventHandler(this.btnSetColor_Click); // + // redUpDown + // + this.redUpDown.Location = new System.Drawing.Point(82, 32); + this.redUpDown.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.redUpDown.Name = "redUpDown"; + this.redUpDown.Size = new System.Drawing.Size(120, 20); + this.redUpDown.TabIndex = 7; + // + // greenUpDown + // + this.greenUpDown.Location = new System.Drawing.Point(82, 60); + this.greenUpDown.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.greenUpDown.Name = "greenUpDown"; + this.greenUpDown.Size = new System.Drawing.Size(120, 20); + this.greenUpDown.TabIndex = 8; + // + // blueUpDown + // + this.blueUpDown.Location = new System.Drawing.Point(82, 90); + this.blueUpDown.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.blueUpDown.Name = "blueUpDown"; + this.blueUpDown.Size = new System.Drawing.Size(120, 20); + this.blueUpDown.TabIndex = 9; + // // SelectColor // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.blueUpDown); + this.Controls.Add(this.greenUpDown); + this.Controls.Add(this.redUpDown); this.Controls.Add(this.btnSetColor); - this.Controls.Add(this.textBox3); - this.Controls.Add(this.textBox2); - this.Controls.Add(this.textBox1); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Font = new System.Drawing.Font("Lucida Console", 9.25F); this.Name = "SelectColor"; this.Size = new System.Drawing.Size(317, 158); + ((System.ComponentModel.ISupportInitialize)(this.redUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.greenUpDown)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.blueUpDown)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -120,9 +141,9 @@ private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.TextBox textBox3; private System.Windows.Forms.Button btnSetColor; + private System.Windows.Forms.NumericUpDown redUpDown; + private System.Windows.Forms.NumericUpDown greenUpDown; + private System.Windows.Forms.NumericUpDown blueUpDown; } } diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs index 697e22e..f9f8f72 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs @@ -14,40 +14,31 @@ namespace ShiftOS.Main.ShiftOS.Apps public SelectColor() { InitializeComponent(); - + } private void btnSetColor_Click(object sender, EventArgs e) { + _colorType1 = Int32.Parse(redUpDown.Value.ToString()); + _colorType2 = Int32.Parse(greenUpDown.Value.ToString()); + _colorType3 = Int32.Parse(blueUpDown.Value.ToString()); try { - _colorType1 = Convert.ToInt32(textBox1.Text); - _colorType2 = Convert.ToInt32(textBox2.Text); - _colorType3 = Convert.ToInt32(textBox3.Text); - } - catch(FormatException ex) - { - ShiftWM.StartInfoboxSession("Error!", "Failed to parse integer. Error:\n" + ex, InfoboxTemplate.ButtonType.Ok); - } - - if (_colorType1 > 255 || _colorType2 > 255 || _colorType3 > 255) - { - ShiftWM.StartInfoboxSession("Error!", "A value cannot be greater than 255!", InfoboxTemplate.ButtonType.Ok); - } - else - { - try - { - ShiftWindow sw = new ShiftWindow(); - _finalColor = Color.FromArgb(_colorType1, _colorType2, _colorType3); - BackColor = _finalColor; - ShiftWM.StartInfoboxSession("Success!", "Changed color to:\n" + _colorType1.ToString() + ", " + _colorType2.ToString() + ", " + _colorType3.ToString() + ".", InfoboxTemplate.ButtonType.Ok); - } - catch (Exception) - { - ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok); + _finalColor = Color.FromArgb(_colorType1, _colorType2, _colorType3); + //BackColor = _finalColor; + + foreach (var window in ShiftWM.Windows) +{ + window.Invoke(new Action(() => window.top.BackColor = _finalColor)); } + + ShiftWM.StartInfoboxSession("Success!", $"Changed color to:\r\n{_colorType1}, {_colorType2}, {_colorType3}.", InfoboxTemplate.ButtonType.Ok); } + catch (Exception) + { + ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok); + } + //return _finalColor; } } -} + } diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs index a89dca4..51bce9c 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs @@ -33,6 +33,8 @@ this.groupBox1 = new System.Windows.Forms.GroupBox(); this.button1 = new System.Windows.Forms.Button(); this.tabPage2 = new System.Windows.Forms.TabPage(); + this.button2 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.groupBox1.SuspendLayout(); @@ -53,6 +55,8 @@ // // tabPage1 // + this.tabPage1.Controls.Add(this.button3); + this.tabPage1.Controls.Add(this.button2); this.tabPage1.Controls.Add(this.groupBox1); this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; @@ -94,6 +98,30 @@ this.tabPage2.Text = "tabPage2"; this.tabPage2.UseVisualStyleBackColor = true; // + // button2 + // + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Font = new System.Drawing.Font("Lucida Console", 8.25F); + this.button2.Location = new System.Drawing.Point(171, 267); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(149, 23); + this.button2.TabIndex = 2; + this.button2.Text = "Set Colorful Skin"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // button3 + // + this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button3.Font = new System.Drawing.Font("Lucida Console", 8.25F); + this.button3.Location = new System.Drawing.Point(6, 267); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(149, 23); + this.button3.TabIndex = 3; + this.button3.Text = "Set Default Skin"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.button3_Click); + // // Shifter // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -115,5 +143,7 @@ private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.Button button1; private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.Button button3; + private System.Windows.Forms.Button button2; } } diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs index 098920f..5d5ad7d 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs @@ -18,5 +18,15 @@ namespace ShiftOS.Main.ShiftOS.Apps colorType = 1; ShiftWM.Init(new SelectColor(), "Select a color", Properties.Resources.iconColourPicker_fw.ToIcon()); } + + private void button3_Click(object sender, EventArgs e) + { + + } + + private void button2_Click(object sender, EventArgs e) + { + + } } } diff --git a/ShiftOS.Main/ShiftOS/Apps/TestForm.cs b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs index 1fd3b18..389f8d1 100644 --- a/ShiftOS.Main/ShiftOS/Apps/TestForm.cs +++ b/ShiftOS.Main/ShiftOS/Apps/TestForm.cs @@ -17,12 +17,8 @@ namespace ShiftOS.Main private void Button1_Click(object sender, EventArgs e) { - ShiftDemo demo = new ShiftDemo {label1 = {Text = textBox2.Text}}; - - var item = typeof(SystemIcons).GetProperties() - .First(p => p.Name == comboBox1.SelectedItem as string); - - ShiftWM.Init(demo, textBox1.Text, (item.GetMethod.Invoke(null, new object[0]) as Icon)); + ShiftDemo demo = new ShiftDemo(); + ShiftWM.Init(demo, textBox1.Text, null); ShiftWM.StartInfoboxSession(textBox1.Text, textBox2.Text, InfoboxTemplate.ButtonType.Ok); } From b52e50320961ae5997b6b6de2f83cb15b21ba73d Mon Sep 17 00:00:00 2001 From: AShifter Date: Sun, 1 Oct 2017 10:00:17 -0600 Subject: [PATCH 4/6] whomst've --- .vs/ShiftOS/v15/sqlite3/storage.ide | Bin 835584 -> 835584 bytes .../ShiftOS/Apps/ShifterStuff/SelectColor.cs | 7 ++++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index 8466a5c5f121ec0935f907a065600c6485305ba9..610893ea6ce0d13b9a8cd22dfe96e09091a34f54 100644 GIT binary patch delta 2176 zcmcIldrVVT9KNT}QqH{{+^iHF^nw*o>E;6vDQztTWkj6#;-NDJL0(3nVCVZ$9ub`z zQEuey>1%VFZpj20SMiZWr^%ddM#PDtj;YJs5_LW|Mqt0gEnR50?5~~VwBPsrzH{z5 z-?QZybLSS8EiQMI z7GxJzEibJoKcGf1&wmYN81%42Rh?3E+Ch4HRYK$JNV2;ahltmwsg3uv z+`>=rl%<{LF{|RkK##bw#Q%yb$uOzC1KSaA_Vg2TCvN1EyyP35cmtp4C6`?Wd9tT0 z^^-=ZzSOX{!%H-3jE?&w`+(2h79LY-xK^f;zvT^wdYIS0gaT7J;QeuD1zA1 z*MznQRY&0yDpOgU|}v&9F8#@jm)xj3B-MPuZHR%Wm{2#uDP;+Vm% zBvaDa5Xt8i_KpHY4a#k^*pd$2RYS+Y+i>I2=VJgGJu%hGgpcA(>9)A(0tNk<@DmD#X7Re>T;9C%Dj2s>;o}yXaQY792PD_+GpfcD$ROaWEgr;TcpDixzAMOQW8v1lL%MZO;H;~z7+jJ zQL+V)U;>m#wK;%L4nZbPPc~7UE8}+R_|OcFdsNMmRYMZsY#C<*CT}Hz<8_K4M1h>3 zsKf;5A$87|ozZ4cAwq#H0Mtaw4OD{s1agw1_o()iq9t^~7z-dsPaumZil@~^iXb|H zoS_J^6G$&b=je!WRzMf1FCP#jH@KlDszP)EIZF}bHh9jYpE8I^W)%oak;%*z8@)kDf(@>iJ9t)PDPS6#?Al2yS#ss?=z`mlIpp}?KeW{!%&S@c zZy(y`fhV=PnM)Q%#YL|(_B>u&oTo9<53K|FR;sEei4|#~B!b7&wEt-QwT%n%{|g>b BnfL$z delta 1948 zcmcgtdr(wW9KL6lU3SmCgg2MRvb=pDyN)QzYXK2NBta1+CSxu>eO4d?Xp^RE9u>2>njWGQ)2D+nM>zeBbx`?r+ce z?%sP%rsXEn^1~Xm=vB|vXwezNsuX0XZAm%Ml7gTlP*NxdC>fL-$`MK-wxlS}o#DL$ z7$(NCEcv>kFOh*o#5{!c>yUx8Bw@e2q|_r}gVU`;T86RZ;WgW&x@R`$7G@Wf7Z}rX zOUnw1i%u#KOtQ7wa)v>}neyt`nyzwkdtC0_m^z;{@4)WDK)gbAJJe%bxv|XU*fe`PJ*dU zDVSgx9GH67lL|SCSfTRCs@+rX(ee3b`seHKR%SmHUx%zLCyC}f#(YxPV z{BZg1k!RgbJ=usZP2SN)B(Cm=3tG2C;*^)Ajmt3W=bm!=Wsk?h%PmJ+d+!a`M4eCE zC&@1mr%3Z1r3xXjauO$?i1*+Dh4D=#?GaJ(J}@@XzAp@*3731zPM532X(w6f8T&ie_%lQn4X{J&Vvn z>UqmE0NPE%#+f$dbk(K`4_bpt`Vjec9jhTjDXhCFOJXw+T4Whsp3GK|6Tu)$*RwxL zNI$@~jck68YjWI;_14!`0*s@#L%x>q3%Ce!OJHSIpLx>Z&DM^xssiFKy4Jwi3W6!qLN5J-VuPxsc#cSz0|j#qHDBk zrYN3X@he5$;eh=0fL25RN(UrV8q{Q;p3?}Y0bBq;a;R&Vy87wdg^_@o>D){}LRGe! zyc7wxD|Eysw7H7f#%NQsT}>85ahfLD+ZqMEThW}F90W-ap?8sj`v68M@G+`MU^IZu z0JZ=iQFPNy(J-kUq%JC5xr0^Y@JbGoNziE|YQbQT&BS71c`Km@(OB3~${-#K` window.top.BackColor = _finalColor)); } + */ ShiftWM.StartInfoboxSession("Success!", $"Changed color to:\r\n{_colorType1}, {_colorType2}, {_colorType3}.", InfoboxTemplate.ButtonType.Ok); } @@ -38,7 +39,7 @@ namespace ShiftOS.Main.ShiftOS.Apps { ShiftWM.StartInfoboxSession("Error!", "An error occured while setting the color.", InfoboxTemplate.ButtonType.Ok); } - //return _finalColor; + return _finalColor; } } } From 385d800066822cdf7467a90f6168026b6603573e Mon Sep 17 00:00:00 2001 From: AShifter Date: Tue, 3 Oct 2017 20:44:54 -0600 Subject: [PATCH 5/6] Adding basic skinning Open up the shifter, choose a skin and hit Apply. I ll work on it more later. --- .vs/ShiftOS/v15/sqlite3/storage.ide | Bin 835584 -> 843776 bytes ShiftOS.Engine/ShiftOS.Engine.csproj | 2 +- ShiftOS.Engine/WindowManager/ShiftArray.cs | 12 --- ShiftOS.Engine/WindowManager/ShiftSkinData.cs | 34 ++++++++ .../ShiftOS/Apps/ShifterStuff/SelectColor.cs | 9 +- .../Apps/ShifterStuff/Shifter.Designer.cs | 82 ++++++++++++------ .../ShiftOS/Apps/ShifterStuff/Shifter.cs | 42 ++++++++- 7 files changed, 137 insertions(+), 44 deletions(-) delete mode 100644 ShiftOS.Engine/WindowManager/ShiftArray.cs create mode 100644 ShiftOS.Engine/WindowManager/ShiftSkinData.cs diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index 610893ea6ce0d13b9a8cd22dfe96e09091a34f54..590cc4d2db1c6d81e1a76b85a53283d9e49cb21f 100644 GIT binary patch delta 12931 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 delta 3997 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 InfoboxTemplate.cs - + Form diff --git a/ShiftOS.Engine/WindowManager/ShiftArray.cs b/ShiftOS.Engine/WindowManager/ShiftArray.cs deleted file mode 100644 index bfb3cde..0000000 --- a/ShiftOS.Engine/WindowManager/ShiftArray.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ShiftOS.Engine.WindowManager -{ - class ShiftArray - { - } -} diff --git a/ShiftOS.Engine/WindowManager/ShiftSkinData.cs b/ShiftOS.Engine/WindowManager/ShiftSkinData.cs new file mode 100644 index 0000000..653e814 --- /dev/null +++ b/ShiftOS.Engine/WindowManager/ShiftSkinData.cs @@ -0,0 +1,34 @@ +using System.Drawing; + +namespace ShiftOS.Engine.WindowManager +{ + public class ShiftSkinData + { + // ColorData + public Color leftTopCornerColor { get; set; } + public Color titleBarColor { get; set; } + public Color rightTopCornerColor { get; set; } + public Color btnCloseColor { get; set; } + public Color btnMaxColor { get; set; } + public Color btnMinColor { get; set; } + public Color leftSideColor { get; set; } + public Color rightSideColor { get; set; } + public Color leftBottomCornerColor { get; set; } + public Color bottomSideColor { get; set; } + public Color rightBottomCornerColor { get; set; } + public Color borderColorColor { get; set; } + + // SetBorderColor + public void setBorderColor(Color borderColor) + { + leftTopCornerColor = borderColor; + titleBarColor = borderColor; + rightTopCornerColor = borderColor; + leftSideColor = borderColor; + rightSideColor = borderColor; + leftBottomCornerColor = borderColor; + bottomSideColor = borderColor; + rightBottomCornerColor = borderColor; + } + } +} diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs index 1534f36..7a97915 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/SelectColor.cs @@ -17,7 +17,7 @@ namespace ShiftOS.Main.ShiftOS.Apps } - private Color btnSetColor_Click(object sender, EventArgs e) + private Color setColor() { _colorType1 = Int32.Parse(redUpDown.Value.ToString()); _colorType2 = Int32.Parse(greenUpDown.Value.ToString()); @@ -41,5 +41,10 @@ namespace ShiftOS.Main.ShiftOS.Apps } return _finalColor; } + + private void btnSetColor_Click(object sender, EventArgs e) + { + setColor(); + } } - } +} diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs index 51bce9c..47bc115 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.Designer.cs @@ -30,11 +30,13 @@ { this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); + this.button5 = new System.Windows.Forms.Button(); + this.button4 = new System.Windows.Forms.Button(); + this.button3 = new System.Windows.Forms.Button(); + this.button2 = new System.Windows.Forms.Button(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.button1 = new System.Windows.Forms.Button(); this.tabPage2 = new System.Windows.Forms.TabPage(); - this.button2 = new System.Windows.Forms.Button(); - this.button3 = new System.Windows.Forms.Button(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.groupBox1.SuspendLayout(); @@ -55,6 +57,8 @@ // // tabPage1 // + this.tabPage1.Controls.Add(this.button5); + this.tabPage1.Controls.Add(this.button4); this.tabPage1.Controls.Add(this.button3); this.tabPage1.Controls.Add(this.button2); this.tabPage1.Controls.Add(this.groupBox1); @@ -66,6 +70,54 @@ this.tabPage1.Text = "Titlebar"; this.tabPage1.UseVisualStyleBackColor = true; // + // button5 + // + this.button5.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button5.Font = new System.Drawing.Font("Lucida Console", 8.25F); + this.button5.Location = new System.Drawing.Point(6, 267); + this.button5.Name = "button5"; + this.button5.Size = new System.Drawing.Size(314, 23); + this.button5.TabIndex = 5; + this.button5.Text = "Apply"; + this.button5.UseVisualStyleBackColor = true; + this.button5.Click += new System.EventHandler(this.button5_Click); + // + // button4 + // + this.button4.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button4.Font = new System.Drawing.Font("Lucida Console", 8.25F); + this.button4.Location = new System.Drawing.Point(6, 209); + this.button4.Name = "button4"; + this.button4.Size = new System.Drawing.Size(314, 23); + this.button4.TabIndex = 4; + this.button4.Text = "Set Random Skin"; + this.button4.UseVisualStyleBackColor = true; + this.button4.Click += new System.EventHandler(this.setRandomSkin); + // + // button3 + // + this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button3.Font = new System.Drawing.Font("Lucida Console", 8.25F); + this.button3.Location = new System.Drawing.Point(6, 238); + this.button3.Name = "button3"; + this.button3.Size = new System.Drawing.Size(155, 23); + this.button3.TabIndex = 3; + this.button3.Text = "Set Default Skin"; + this.button3.UseVisualStyleBackColor = true; + this.button3.Click += new System.EventHandler(this.setDefaultSkin); + // + // button2 + // + this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.button2.Font = new System.Drawing.Font("Lucida Console", 8.25F); + this.button2.Location = new System.Drawing.Point(171, 238); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(149, 23); + this.button2.TabIndex = 2; + this.button2.Text = "Set Colorful Skin"; + this.button2.UseVisualStyleBackColor = true; + this.button2.Click += new System.EventHandler(this.setColorSkin); + // // groupBox1 // this.groupBox1.Controls.Add(this.button1); @@ -98,30 +150,6 @@ this.tabPage2.Text = "tabPage2"; this.tabPage2.UseVisualStyleBackColor = true; // - // button2 - // - this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.button2.Font = new System.Drawing.Font("Lucida Console", 8.25F); - this.button2.Location = new System.Drawing.Point(171, 267); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(149, 23); - this.button2.TabIndex = 2; - this.button2.Text = "Set Colorful Skin"; - this.button2.UseVisualStyleBackColor = true; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // button3 - // - this.button3.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.button3.Font = new System.Drawing.Font("Lucida Console", 8.25F); - this.button3.Location = new System.Drawing.Point(6, 267); - this.button3.Name = "button3"; - this.button3.Size = new System.Drawing.Size(149, 23); - this.button3.TabIndex = 3; - this.button3.Text = "Set Default Skin"; - this.button3.UseVisualStyleBackColor = true; - this.button3.Click += new System.EventHandler(this.button3_Click); - // // Shifter // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); @@ -145,5 +173,7 @@ private System.Windows.Forms.TabPage tabPage2; private System.Windows.Forms.Button button3; private System.Windows.Forms.Button button2; + private System.Windows.Forms.Button button4; + private System.Windows.Forms.Button button5; } } diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs index 5d5ad7d..7659601 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs @@ -2,12 +2,14 @@ using System.Windows.Forms; using ShiftOS.Engine; using ShiftOS.Engine.WindowManager; +using System.Drawing; namespace ShiftOS.Main.ShiftOS.Apps { public partial class Shifter : UserControl { public int colorType; //This is a check to see what option was chosen. + ShiftSkinData skinConfig = new ShiftSkinData(); public Shifter() { InitializeComponent(); @@ -19,14 +21,48 @@ namespace ShiftOS.Main.ShiftOS.Apps ShiftWM.Init(new SelectColor(), "Select a color", Properties.Resources.iconColourPicker_fw.ToIcon()); } - private void button3_Click(object sender, EventArgs e) + private void setDefaultSkin(object sender, EventArgs e) { - + skinConfig.setBorderColor(Color.FromArgb(64, 64, 64)); + skinConfig.btnCloseColor = Color.Black; + skinConfig.btnMaxColor = Color.Black; + skinConfig.btnMinColor = Color.Black; } - private void button2_Click(object sender, EventArgs e) + private void setColorSkin(object sender, EventArgs e) + { + skinConfig.setBorderColor(Color.Blue); + skinConfig.btnCloseColor = Color.Red; + skinConfig.btnMaxColor = Color.Yellow; + skinConfig.btnMinColor = Color.Green; + } + + private void setRandomSkin(object sender, EventArgs e) + { + Random rnd = new Random(); + skinConfig.setBorderColor(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))); + skinConfig.btnCloseColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + skinConfig.btnMaxColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + skinConfig.btnMinColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + } + + private void button5_Click(object sender, EventArgs e) { + foreach (var window in ShiftWM.Windows) + { + window.Invoke(new Action(() => window.top.BackColor = skinConfig.titleBarColor)); + window.Invoke(new Action(() => window.topleftcorner.BackColor = skinConfig.leftTopCornerColor)); + window.Invoke(new Action(() => window.toprightcorner.BackColor = skinConfig.rightTopCornerColor)); + window.Invoke(new Action(() => window.left.BackColor = skinConfig.leftSideColor)); + window.Invoke(new Action(() => window.right.BackColor = skinConfig.rightSideColor)); + window.Invoke(new Action(() => window.bottomleftcorner.BackColor = skinConfig.leftBottomCornerColor)); + window.Invoke(new Action(() => window.bottom.BackColor = skinConfig.bottomSideColor)); + window.Invoke(new Action(() => window.bottomrightcorner.BackColor = skinConfig.rightBottomCornerColor)); + window.Invoke(new Action(() => window.closebutton.BackColor = skinConfig.btnCloseColor)); + window.Invoke(new Action(() => window.maximizebutton.BackColor = skinConfig.btnMaxColor)); + window.Invoke(new Action(() => window.minimizebutton.BackColor = skinConfig.btnMinColor)); + } } } } From e9a8a6df70337a061384b46816f7e4b552145946 Mon Sep 17 00:00:00 2001 From: AShifter Date: Sat, 14 Oct 2017 09:27:27 -0600 Subject: [PATCH 6/6] More Skinning You can now set a skin and it will persist throughout all windows - though there is a bug where hovering over a context button will change it's color and leaving it will change it back to black. Will fix soon:tm:. --- .vs/ShiftOS/v15/sqlite3/storage.ide | Bin 843776 -> 843776 bytes ShiftOS.Engine/WindowManager/ShiftSkinData.cs | 38 +- ShiftOS.Engine/WindowManager/ShiftWM.cs | 37 +- .../WindowManager/ShiftWindow.Designer.cs | 470 +++++++++--------- ShiftOS.Engine/WindowManager/ShiftWindow.cs | 24 +- .../ShiftOS/Apps/ShifterStuff/Shifter.cs | 64 ++- 6 files changed, 324 insertions(+), 309 deletions(-) diff --git a/.vs/ShiftOS/v15/sqlite3/storage.ide b/.vs/ShiftOS/v15/sqlite3/storage.ide index 590cc4d2db1c6d81e1a76b85a53283d9e49cb21f..4a9442158601d30622736f530ae0561e5e72753d 100644 GIT binary patch delta 17175 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 M=rOSDJ+hSl2WAZnQvd(} delta 6944 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 diff --git a/ShiftOS.Engine/WindowManager/ShiftSkinData.cs b/ShiftOS.Engine/WindowManager/ShiftSkinData.cs index 653e814..2c03123 100644 --- a/ShiftOS.Engine/WindowManager/ShiftSkinData.cs +++ b/ShiftOS.Engine/WindowManager/ShiftSkinData.cs @@ -2,33 +2,19 @@ namespace ShiftOS.Engine.WindowManager { - public class ShiftSkinData + public abstract class ShiftSkinData { // ColorData - public Color leftTopCornerColor { get; set; } - public Color titleBarColor { get; set; } - public Color rightTopCornerColor { get; set; } - public Color btnCloseColor { get; set; } - public Color btnMaxColor { get; set; } - public Color btnMinColor { get; set; } - public Color leftSideColor { get; set; } - public Color rightSideColor { get; set; } - public Color leftBottomCornerColor { get; set; } - public Color bottomSideColor { get; set; } - public Color rightBottomCornerColor { get; set; } - public Color borderColorColor { get; set; } - - // SetBorderColor - public void setBorderColor(Color borderColor) - { - leftTopCornerColor = borderColor; - titleBarColor = borderColor; - rightTopCornerColor = borderColor; - leftSideColor = borderColor; - rightSideColor = borderColor; - leftBottomCornerColor = borderColor; - bottomSideColor = borderColor; - rightBottomCornerColor = borderColor; - } + public static Color leftTopCornerColor = Color.Empty; + public static Color titleBarColor = Color.Empty; + public static Color rightTopCornerColor = Color.Empty; + public static Color btnCloseColor = Color.Empty; + public static Color btnMaxColor = Color.Empty; + public static Color btnMinColor = Color.Empty; + public static Color leftSideColor = Color.Empty; + public static Color rightSideColor = Color.Empty; + public static Color leftBottomCornerColor = Color.Empty; + public static Color bottomSideColor = Color.Empty; + public static Color rightBottomCornerColor = Color.Empty; } } diff --git a/ShiftOS.Engine/WindowManager/ShiftWM.cs b/ShiftOS.Engine/WindowManager/ShiftWM.cs index 594848a..64b84f9 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWM.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWM.cs @@ -33,13 +33,42 @@ namespace ShiftOS.Engine.WindowManager { Text = title, Title = {Text = title} - }; + }; - app.Width = content.Width + app.left.Width + app.right.Width; - app.Height = content.Height + app.bottom.Height + app.top.Height; + app.Width = content.Width + app.leftSide.Width + app.rightSide.Width; + app.Height = content.Height + app.bottomSide.Height + app.titleBar.Height; + + if (ShiftSkinData.titleBarColor == Color.Empty) + { + Color borderColor = Color.FromArgb(64, 64, 64); + ShiftSkinData.btnCloseColor = Color.Black; + ShiftSkinData.btnMaxColor = Color.Black; + ShiftSkinData.btnMinColor = Color.Black; + ShiftSkinData.leftTopCornerColor = borderColor; + ShiftSkinData.titleBarColor = borderColor; + ShiftSkinData.rightTopCornerColor = borderColor; + ShiftSkinData.leftSideColor = borderColor; + ShiftSkinData.rightSideColor = borderColor; + ShiftSkinData.leftBottomCornerColor = borderColor; + ShiftSkinData.bottomSideColor = borderColor; + ShiftSkinData.rightBottomCornerColor = borderColor; + } + + app.btnClose.BackColor = ShiftSkinData.btnCloseColor; + app.btnMax.BackColor = ShiftSkinData.btnMaxColor; + app.btnMin.BackColor = ShiftSkinData.btnMinColor; + app.leftTopCorner.BackColor = ShiftSkinData.leftTopCornerColor; + app.titleBar.BackColor = ShiftSkinData.titleBarColor; + app.rightTopCorner.BackColor = ShiftSkinData.rightTopCornerColor; + app.leftSide.BackColor = ShiftSkinData.leftSideColor; + app.rightSide.BackColor = ShiftSkinData.rightSideColor; + app.leftBottomCorner.BackColor = ShiftSkinData.leftBottomCornerColor; + app.bottomSide.BackColor = ShiftSkinData.bottomSideColor; + app.rightBottomCorner.BackColor = ShiftSkinData.rightBottomCornerColor; + // Icon Setup - if (icon == null) + if (icon == null) { app.programIcon.Hide(); app.programIcon.Image = Properties.Resources.nullIcon; diff --git a/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs b/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs index 1e0f105..211324c 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWindow.Designer.cs @@ -28,238 +28,222 @@ /// private void InitializeComponent() { - this.program = new System.Windows.Forms.Panel(); - this.programContent = new System.Windows.Forms.Panel(); - this.bottomleftcorner = new System.Windows.Forms.Panel(); - this.toprightcorner = new System.Windows.Forms.Panel(); - this.bottomrightcorner = new System.Windows.Forms.Panel(); - this.topleftcorner = new System.Windows.Forms.Panel(); - this.bottom = new System.Windows.Forms.Panel(); - this.top = new System.Windows.Forms.Panel(); - this.programIcon = new System.Windows.Forms.PictureBox(); - this.maximizebutton = new System.Windows.Forms.PictureBox(); - this.minimizebutton = new System.Windows.Forms.PictureBox(); - this.Title = new System.Windows.Forms.Label(); - this.closebutton = new System.Windows.Forms.PictureBox(); - this.right = new System.Windows.Forms.Panel(); - this.left = new System.Windows.Forms.Panel(); - this.program.SuspendLayout(); - this.top.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.programIcon)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.maximizebutton)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.minimizebutton)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.closebutton)).BeginInit(); - this.SuspendLayout(); - // - // program - // - this.program.BackColor = System.Drawing.Color.White; - this.program.Controls.Add(this.programContent); - this.program.Controls.Add(this.bottomleftcorner); - this.program.Controls.Add(this.toprightcorner); - this.program.Controls.Add(this.bottomrightcorner); - this.program.Controls.Add(this.topleftcorner); - this.program.Controls.Add(this.bottom); - this.program.Controls.Add(this.top); - this.program.Controls.Add(this.right); - this.program.Controls.Add(this.left); - this.program.Dock = System.Windows.Forms.DockStyle.Fill; - this.program.Location = new System.Drawing.Point(0, 0); - this.program.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.program.Name = "program"; - this.program.Size = new System.Drawing.Size(426, 402); - this.program.TabIndex = 11; - // - // programContent - // - this.programContent.Dock = System.Windows.Forms.DockStyle.Fill; - this.programContent.Location = new System.Drawing.Point(6, 46); - this.programContent.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.programContent.Name = "programContent"; - this.programContent.Size = new System.Drawing.Size(414, 350); - this.programContent.TabIndex = 11; - // - // bottomleftcorner - // - this.bottomleftcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.bottomleftcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bottomleftcorner.Location = new System.Drawing.Point(0, 395); - this.bottomleftcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.bottomleftcorner.Name = "bottomleftcorner"; - this.bottomleftcorner.Size = new System.Drawing.Size(8, 6); - this.bottomleftcorner.TabIndex = 10; - // - // toprightcorner - // - this.toprightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.toprightcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.toprightcorner.Location = new System.Drawing.Point(417, 0); - this.toprightcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.toprightcorner.Name = "toprightcorner"; - this.toprightcorner.Size = new System.Drawing.Size(9, 46); - this.toprightcorner.TabIndex = 9; - // - // bottomrightcorner - // - this.bottomrightcorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.bottomrightcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bottomrightcorner.Cursor = System.Windows.Forms.Cursors.SizeNWSE; - this.bottomrightcorner.Location = new System.Drawing.Point(420, 395); - this.bottomrightcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.bottomrightcorner.Name = "bottomrightcorner"; - this.bottomrightcorner.Size = new System.Drawing.Size(6, 6); - this.bottomrightcorner.TabIndex = 4; - // - // topleftcorner - // - this.topleftcorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.topleftcorner.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.topleftcorner.Location = new System.Drawing.Point(0, 0); - this.topleftcorner.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.topleftcorner.Name = "topleftcorner"; - this.topleftcorner.Size = new System.Drawing.Size(10, 46); - this.topleftcorner.TabIndex = 8; - // - // bottom - // - this.bottom.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.bottom.Cursor = System.Windows.Forms.Cursors.SizeNS; - this.bottom.Dock = System.Windows.Forms.DockStyle.Bottom; - this.bottom.Location = new System.Drawing.Point(6, 396); - this.bottom.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.bottom.Name = "bottom"; - this.bottom.Size = new System.Drawing.Size(414, 6); - this.bottom.TabIndex = 3; - // - // top - // - this.top.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.top.Controls.Add(this.programIcon); - this.top.Controls.Add(this.maximizebutton); - this.top.Controls.Add(this.minimizebutton); - this.top.Controls.Add(this.Title); - this.top.Controls.Add(this.closebutton); - this.top.Dock = System.Windows.Forms.DockStyle.Top; - this.top.ForeColor = System.Drawing.SystemColors.ControlText; - this.top.Location = new System.Drawing.Point(6, 0); - this.top.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.top.Name = "top"; - this.top.Size = new System.Drawing.Size(414, 46); - this.top.TabIndex = 0; - this.top.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag); - // - // programIcon - // - this.programIcon.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; - this.programIcon.ErrorImage = null; - this.programIcon.InitialImage = null; - this.programIcon.Location = new System.Drawing.Point(9, 11); - this.programIcon.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.programIcon.Name = "programIcon"; - this.programIcon.Size = new System.Drawing.Size(24, 25); - this.programIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.programIcon.TabIndex = 7; - this.programIcon.TabStop = false; - // - // maximizebutton - // - this.maximizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.maximizebutton.BackColor = System.Drawing.Color.Black; - this.maximizebutton.Location = new System.Drawing.Point(345, 6); - this.maximizebutton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.maximizebutton.Name = "maximizebutton"; - this.maximizebutton.Size = new System.Drawing.Size(32, 32); - this.maximizebutton.TabIndex = 6; - this.maximizebutton.TabStop = false; - this.maximizebutton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseDown); - this.maximizebutton.MouseEnter += new System.EventHandler(this.maximizebutton_MouseEnter); - this.maximizebutton.MouseLeave += new System.EventHandler(this.maximizebutton_MouseLeave); - this.maximizebutton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseUp); - // - // minimizebutton - // - this.minimizebutton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.minimizebutton.BackColor = System.Drawing.Color.Black; - this.minimizebutton.Location = new System.Drawing.Point(310, 6); - this.minimizebutton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.minimizebutton.Name = "minimizebutton"; - this.minimizebutton.Size = new System.Drawing.Size(32, 32); - this.minimizebutton.TabIndex = 5; - this.minimizebutton.TabStop = false; - this.minimizebutton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseDown); - this.minimizebutton.MouseEnter += new System.EventHandler(this.minimizebutton_MouseEnter); - this.minimizebutton.MouseLeave += new System.EventHandler(this.minimizebutton_MouseLeave); - this.minimizebutton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseUp); - // - // Title - // - this.Title.AutoSize = true; - this.Title.BackColor = System.Drawing.Color.Transparent; - this.Title.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.Title.ForeColor = System.Drawing.Color.White; - this.Title.Location = new System.Drawing.Point(38, 12); - this.Title.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.Title.Name = "Title"; - this.Title.Size = new System.Drawing.Size(149, 21); - this.Title.TabIndex = 3; - this.Title.Text = "Application Title"; - this.Title.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag); - // - // closebutton - // - this.closebutton.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.closebutton.BackColor = System.Drawing.Color.Black; - this.closebutton.Location = new System.Drawing.Point(380, 6); - this.closebutton.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.closebutton.Name = "closebutton"; - this.closebutton.Size = new System.Drawing.Size(32, 32); - this.closebutton.TabIndex = 4; - this.closebutton.TabStop = false; - this.closebutton.Click += new System.EventHandler(this.closebutton_Click); - this.closebutton.MouseDown += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseDown); - this.closebutton.MouseEnter += new System.EventHandler(this.closebutton_MouseEnter); - this.closebutton.MouseLeave += new System.EventHandler(this.closebutton_MouseLeave); - this.closebutton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseUp); - // - // right - // - this.right.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.right.Cursor = System.Windows.Forms.Cursors.SizeWE; - this.right.Dock = System.Windows.Forms.DockStyle.Right; - this.right.Location = new System.Drawing.Point(420, 0); - this.right.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.right.Name = "right"; - this.right.Size = new System.Drawing.Size(6, 402); - this.right.TabIndex = 2; - // - // left - // - this.left.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.left.Dock = System.Windows.Forms.DockStyle.Left; - this.left.Location = new System.Drawing.Point(0, 0); - this.left.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.left.Name = "left"; - this.left.Size = new System.Drawing.Size(6, 402); - this.left.TabIndex = 1; - // - // ShiftWindow - // - this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(426, 402); - this.Controls.Add(this.program); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; - this.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); - this.Name = "ShiftWindow"; - this.Text = "c"; - this.program.ResumeLayout(false); - this.top.ResumeLayout(false); - this.top.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.programIcon)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.maximizebutton)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.minimizebutton)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.closebutton)).EndInit(); - this.ResumeLayout(false); + this.program = new System.Windows.Forms.Panel(); + this.programContent = new System.Windows.Forms.Panel(); + this.leftBottomCorner = new System.Windows.Forms.Panel(); + this.rightTopCorner = new System.Windows.Forms.Panel(); + this.rightBottomCorner = new System.Windows.Forms.Panel(); + this.leftTopCorner = new System.Windows.Forms.Panel(); + this.bottomSide = new System.Windows.Forms.Panel(); + this.titleBar = new System.Windows.Forms.Panel(); + this.programIcon = new System.Windows.Forms.PictureBox(); + this.btnMax = new System.Windows.Forms.PictureBox(); + this.btnMin = new System.Windows.Forms.PictureBox(); + this.Title = new System.Windows.Forms.Label(); + this.btnClose = new System.Windows.Forms.PictureBox(); + this.rightSide = new System.Windows.Forms.Panel(); + this.leftSide = new System.Windows.Forms.Panel(); + this.program.SuspendLayout(); + this.titleBar.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.programIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.btnMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.btnMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.btnClose)).BeginInit(); + this.SuspendLayout(); + // + // program + // + this.program.BackColor = System.Drawing.Color.White; + this.program.Controls.Add(this.programContent); + this.program.Controls.Add(this.leftBottomCorner); + this.program.Controls.Add(this.rightTopCorner); + this.program.Controls.Add(this.rightBottomCorner); + this.program.Controls.Add(this.leftTopCorner); + this.program.Controls.Add(this.bottomSide); + this.program.Controls.Add(this.titleBar); + this.program.Controls.Add(this.rightSide); + this.program.Controls.Add(this.leftSide); + this.program.Dock = System.Windows.Forms.DockStyle.Fill; + this.program.Location = new System.Drawing.Point(0, 0); + this.program.Name = "program"; + this.program.Size = new System.Drawing.Size(284, 261); + this.program.TabIndex = 11; + // + // programContent + // + this.programContent.Dock = System.Windows.Forms.DockStyle.Fill; + this.programContent.Location = new System.Drawing.Point(4, 30); + this.programContent.Name = "programContent"; + this.programContent.Size = new System.Drawing.Size(276, 227); + this.programContent.TabIndex = 11; + // + // leftBottomCorner + // + this.leftBottomCorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.leftBottomCorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.leftBottomCorner.Location = new System.Drawing.Point(0, 257); + this.leftBottomCorner.Name = "leftBottomCorner"; + this.leftBottomCorner.Size = new System.Drawing.Size(5, 4); + this.leftBottomCorner.TabIndex = 10; + // + // rightTopCorner + // + this.rightTopCorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.rightTopCorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.rightTopCorner.Location = new System.Drawing.Point(278, 0); + this.rightTopCorner.Name = "rightTopCorner"; + this.rightTopCorner.Size = new System.Drawing.Size(6, 30); + this.rightTopCorner.TabIndex = 9; + // + // rightBottomCorner + // + this.rightBottomCorner.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.rightBottomCorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.rightBottomCorner.Cursor = System.Windows.Forms.Cursors.SizeNWSE; + this.rightBottomCorner.Location = new System.Drawing.Point(280, 257); + this.rightBottomCorner.Name = "rightBottomCorner"; + this.rightBottomCorner.Size = new System.Drawing.Size(4, 4); + this.rightBottomCorner.TabIndex = 4; + // + // leftTopCorner + // + this.leftTopCorner.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.leftTopCorner.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.leftTopCorner.Location = new System.Drawing.Point(0, 0); + this.leftTopCorner.Name = "leftTopCorner"; + this.leftTopCorner.Size = new System.Drawing.Size(7, 30); + this.leftTopCorner.TabIndex = 8; + // + // bottomSide + // + this.bottomSide.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.bottomSide.Cursor = System.Windows.Forms.Cursors.SizeNS; + this.bottomSide.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bottomSide.Location = new System.Drawing.Point(4, 257); + this.bottomSide.Name = "bottomSide"; + this.bottomSide.Size = new System.Drawing.Size(276, 4); + this.bottomSide.TabIndex = 3; + // + // titleBar + // + this.titleBar.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.titleBar.Controls.Add(this.programIcon); + this.titleBar.Controls.Add(this.btnMax); + this.titleBar.Controls.Add(this.btnMin); + this.titleBar.Controls.Add(this.Title); + this.titleBar.Controls.Add(this.btnClose); + this.titleBar.Dock = System.Windows.Forms.DockStyle.Top; + this.titleBar.ForeColor = System.Drawing.SystemColors.ControlText; + this.titleBar.Location = new System.Drawing.Point(4, 0); + this.titleBar.Name = "titleBar"; + this.titleBar.Size = new System.Drawing.Size(276, 30); + this.titleBar.TabIndex = 0; + this.titleBar.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag); + // + // programIcon + // + this.programIcon.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch; + this.programIcon.ErrorImage = null; + this.programIcon.InitialImage = null; + this.programIcon.Location = new System.Drawing.Point(6, 7); + this.programIcon.Name = "programIcon"; + this.programIcon.Size = new System.Drawing.Size(16, 16); + this.programIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.programIcon.TabIndex = 7; + this.programIcon.TabStop = false; + // + // btnMax + // + this.btnMax.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnMax.BackColor = System.Drawing.Color.Black; + this.btnMax.Location = new System.Drawing.Point(230, 4); + this.btnMax.Name = "btnMax"; + this.btnMax.Size = new System.Drawing.Size(21, 21); + this.btnMax.TabIndex = 6; + this.btnMax.TabStop = false; + this.btnMax.MouseDown += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseDown); + this.btnMax.MouseEnter += new System.EventHandler(this.maximizebutton_MouseEnter); + this.btnMax.MouseLeave += new System.EventHandler(this.maximizebutton_MouseLeave); + this.btnMax.MouseUp += new System.Windows.Forms.MouseEventHandler(this.maximizebutton_MouseUp); + // + // btnMin + // + this.btnMin.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnMin.BackColor = System.Drawing.Color.Black; + this.btnMin.Location = new System.Drawing.Point(207, 4); + this.btnMin.Name = "btnMin"; + this.btnMin.Size = new System.Drawing.Size(21, 21); + this.btnMin.TabIndex = 5; + this.btnMin.TabStop = false; + this.btnMin.MouseDown += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseDown); + this.btnMin.MouseEnter += new System.EventHandler(this.minimizebutton_MouseEnter); + this.btnMin.MouseLeave += new System.EventHandler(this.minimizebutton_MouseLeave); + this.btnMin.MouseUp += new System.Windows.Forms.MouseEventHandler(this.minimizebutton_MouseUp); + // + // Title + // + this.Title.AutoSize = true; + this.Title.BackColor = System.Drawing.Color.Transparent; + this.Title.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Title.ForeColor = System.Drawing.Color.White; + this.Title.Location = new System.Drawing.Point(25, 8); + this.Title.Name = "Title"; + this.Title.Size = new System.Drawing.Size(98, 13); + this.Title.TabIndex = 3; + this.Title.Text = "Application Title"; + this.Title.MouseDown += new System.Windows.Forms.MouseEventHandler(this.Programtopbar_drag); + // + // btnClose + // + this.btnClose.Anchor = System.Windows.Forms.AnchorStyles.Right; + this.btnClose.BackColor = System.Drawing.Color.Black; + this.btnClose.Location = new System.Drawing.Point(253, 4); + this.btnClose.Name = "btnClose"; + this.btnClose.Size = new System.Drawing.Size(21, 21); + this.btnClose.TabIndex = 4; + this.btnClose.TabStop = false; + this.btnClose.Click += new System.EventHandler(this.closebutton_Click); + this.btnClose.MouseDown += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseDown); + this.btnClose.MouseEnter += new System.EventHandler(this.closebutton_MouseEnter); + this.btnClose.MouseLeave += new System.EventHandler(this.closebutton_MouseLeave); + this.btnClose.MouseUp += new System.Windows.Forms.MouseEventHandler(this.closebutton_MouseUp); + // + // rightSide + // + this.rightSide.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.rightSide.Cursor = System.Windows.Forms.Cursors.SizeWE; + this.rightSide.Dock = System.Windows.Forms.DockStyle.Right; + this.rightSide.Location = new System.Drawing.Point(280, 0); + this.rightSide.Name = "rightSide"; + this.rightSide.Size = new System.Drawing.Size(4, 261); + this.rightSide.TabIndex = 2; + // + // leftSide + // + this.leftSide.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); + this.leftSide.Dock = System.Windows.Forms.DockStyle.Left; + this.leftSide.Location = new System.Drawing.Point(0, 0); + this.leftSide.Name = "leftSide"; + this.leftSide.Size = new System.Drawing.Size(4, 261); + this.leftSide.TabIndex = 1; + // + // ShiftWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 261); + this.Controls.Add(this.program); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; + this.Name = "ShiftWindow"; + this.Text = "c"; + this.program.ResumeLayout(false); + this.titleBar.ResumeLayout(false); + this.titleBar.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.programIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.btnMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.btnMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.btnClose)).EndInit(); + this.ResumeLayout(false); } @@ -267,17 +251,17 @@ public System.Windows.Forms.PictureBox programIcon; public System.Windows.Forms.Panel programContent; public System.Windows.Forms.Panel program; - public System.Windows.Forms.Panel bottomleftcorner; - public System.Windows.Forms.Panel toprightcorner; - public System.Windows.Forms.Panel bottomrightcorner; - public System.Windows.Forms.Panel topleftcorner; - public System.Windows.Forms.Panel bottom; - public System.Windows.Forms.Panel top; - public System.Windows.Forms.PictureBox maximizebutton; - public System.Windows.Forms.PictureBox minimizebutton; + public System.Windows.Forms.Panel leftBottomCorner; + public System.Windows.Forms.Panel rightTopCorner; + public System.Windows.Forms.Panel rightBottomCorner; + public System.Windows.Forms.Panel leftTopCorner; + public System.Windows.Forms.Panel bottomSide; + public System.Windows.Forms.Panel titleBar; + public System.Windows.Forms.PictureBox btnMax; + public System.Windows.Forms.PictureBox btnMin; public System.Windows.Forms.Label Title; - public System.Windows.Forms.PictureBox closebutton; - public System.Windows.Forms.Panel right; - public System.Windows.Forms.Panel left; + public System.Windows.Forms.PictureBox btnClose; + public System.Windows.Forms.Panel rightSide; + public System.Windows.Forms.Panel leftSide; } } diff --git a/ShiftOS.Engine/WindowManager/ShiftWindow.cs b/ShiftOS.Engine/WindowManager/ShiftWindow.cs index a41786a..c091d40 100644 --- a/ShiftOS.Engine/WindowManager/ShiftWindow.cs +++ b/ShiftOS.Engine/WindowManager/ShiftWindow.cs @@ -50,40 +50,40 @@ namespace ShiftOS.Engine.WindowManager => this.Close(); private void closebutton_MouseEnter(object sender, EventArgs e) - => closebutton.BackColor = Color.Gray; + => btnClose.BackColor = Color.Gray; private void closebutton_MouseLeave(object sender, EventArgs e) - => closebutton.BackColor = Color.Black; + => btnClose.BackColor = Color.Black; private void maximizebutton_MouseEnter(object sender, EventArgs e) - => maximizebutton.BackColor = Color.Gray; + => btnMax.BackColor = Color.Gray; private void maximizebutton_MouseLeave(object sender, EventArgs e) - => maximizebutton.BackColor = Color.Black; + => btnMax.BackColor = Color.Black; private void minimizebutton_MouseEnter(object sender, EventArgs e) - => minimizebutton.BackColor = Color.Gray; + => btnMin.BackColor = Color.Gray; private void minimizebutton_MouseLeave(object sender, EventArgs e) - => minimizebutton.BackColor = Color.Black; + => btnMin.BackColor = Color.Black; private void closebutton_MouseDown(object sender, MouseEventArgs e) - => closebutton.BackColor = Color.Black; + => btnClose.BackColor = Color.Black; private void maximizebutton_MouseDown(object sender, MouseEventArgs e) - => maximizebutton.BackColor = Color.Black; + => btnMax.BackColor = Color.Black; private void minimizebutton_MouseDown(object sender, MouseEventArgs e) - => minimizebutton.BackColor = Color.Black; + => btnMin.BackColor = Color.Black; private void minimizebutton_MouseUp(object sender, MouseEventArgs e) - => minimizebutton.BackColor = Color.Gray; + => btnMin.BackColor = Color.Gray; private void maximizebutton_MouseUp(object sender, MouseEventArgs e) - => maximizebutton.BackColor = Color.Gray; + => btnMax.BackColor = Color.Gray; private void closebutton_MouseUp(object sender, MouseEventArgs e) - => closebutton.BackColor = Color.Gray; + => btnClose.BackColor = Color.Gray; } public interface IShiftWindowExtensions diff --git a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs index 7659601..177942d 100644 --- a/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs +++ b/ShiftOS.Main/ShiftOS/Apps/ShifterStuff/Shifter.cs @@ -9,7 +9,6 @@ namespace ShiftOS.Main.ShiftOS.Apps public partial class Shifter : UserControl { public int colorType; //This is a check to see what option was chosen. - ShiftSkinData skinConfig = new ShiftSkinData(); public Shifter() { InitializeComponent(); @@ -23,27 +22,43 @@ namespace ShiftOS.Main.ShiftOS.Apps private void setDefaultSkin(object sender, EventArgs e) { - skinConfig.setBorderColor(Color.FromArgb(64, 64, 64)); - skinConfig.btnCloseColor = Color.Black; - skinConfig.btnMaxColor = Color.Black; - skinConfig.btnMinColor = Color.Black; + setBorderColor(Color.FromArgb(64, 64, 64)); + ShiftSkinData.btnCloseColor = Color.Black; + ShiftSkinData.btnMaxColor = Color.Black; + ShiftSkinData.btnMinColor = Color.Black; + button5_Click(sender, e); } private void setColorSkin(object sender, EventArgs e) { - skinConfig.setBorderColor(Color.Blue); - skinConfig.btnCloseColor = Color.Red; - skinConfig.btnMaxColor = Color.Yellow; - skinConfig.btnMinColor = Color.Green; + setBorderColor(Color.Blue); + ShiftSkinData.btnCloseColor = Color.Red; + ShiftSkinData.btnMaxColor = Color.Yellow; + ShiftSkinData.btnMinColor = Color.Green; + button5_Click(sender, e); } private void setRandomSkin(object sender, EventArgs e) { Random rnd = new Random(); - skinConfig.setBorderColor(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))); - skinConfig.btnCloseColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); - skinConfig.btnMaxColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); - skinConfig.btnMinColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + setBorderColor(Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255))); + ShiftSkinData.btnCloseColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + ShiftSkinData.btnMaxColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + ShiftSkinData.btnMinColor = Color.FromArgb(rnd.Next(255), rnd.Next(255), rnd.Next(255)); + button5_Click(sender, e); + } + + // SetBorderColor + public void setBorderColor(Color borderColor) + { + ShiftSkinData.leftTopCornerColor = borderColor; + ShiftSkinData.titleBarColor = borderColor; + ShiftSkinData.rightTopCornerColor = borderColor; + ShiftSkinData.leftSideColor = borderColor; + ShiftSkinData.rightSideColor = borderColor; + ShiftSkinData.leftBottomCornerColor = borderColor; + ShiftSkinData.bottomSideColor = borderColor; + ShiftSkinData.rightBottomCornerColor = borderColor; } private void button5_Click(object sender, EventArgs e) @@ -51,17 +66,18 @@ namespace ShiftOS.Main.ShiftOS.Apps foreach (var window in ShiftWM.Windows) { - window.Invoke(new Action(() => window.top.BackColor = skinConfig.titleBarColor)); - window.Invoke(new Action(() => window.topleftcorner.BackColor = skinConfig.leftTopCornerColor)); - window.Invoke(new Action(() => window.toprightcorner.BackColor = skinConfig.rightTopCornerColor)); - window.Invoke(new Action(() => window.left.BackColor = skinConfig.leftSideColor)); - window.Invoke(new Action(() => window.right.BackColor = skinConfig.rightSideColor)); - window.Invoke(new Action(() => window.bottomleftcorner.BackColor = skinConfig.leftBottomCornerColor)); - window.Invoke(new Action(() => window.bottom.BackColor = skinConfig.bottomSideColor)); - window.Invoke(new Action(() => window.bottomrightcorner.BackColor = skinConfig.rightBottomCornerColor)); - window.Invoke(new Action(() => window.closebutton.BackColor = skinConfig.btnCloseColor)); - window.Invoke(new Action(() => window.maximizebutton.BackColor = skinConfig.btnMaxColor)); - window.Invoke(new Action(() => window.minimizebutton.BackColor = skinConfig.btnMinColor)); + window.Invoke(new Action(() => window.titleBar.BackColor = ShiftSkinData.titleBarColor)); + window.Invoke(new Action(() => window.leftTopCorner.BackColor = ShiftSkinData.leftTopCornerColor)); + window.Invoke(new Action(() => window.rightTopCorner.BackColor = ShiftSkinData.rightTopCornerColor)); + window.Invoke(new Action(() => window.leftSide.BackColor = ShiftSkinData.leftSideColor)); + window.Invoke(new Action(() => window.rightSide.BackColor = ShiftSkinData.rightSideColor)); + window.Invoke(new Action(() => window.leftBottomCorner.BackColor = ShiftSkinData.leftBottomCornerColor)); + window.Invoke(new Action(() => window.bottomSide.BackColor = ShiftSkinData.bottomSideColor)); + window.Invoke(new Action(() => window.rightBottomCorner.BackColor = ShiftSkinData.rightBottomCornerColor)); + window.Invoke(new Action(() => window.btnClose.BackColor = ShiftSkinData.btnCloseColor)); + window.Invoke(new Action(() => window.btnMax.BackColor = ShiftSkinData.btnMaxColor)); + window.Invoke(new Action(() => window.btnMin.BackColor = ShiftSkinData.btnMinColor)); + } } }