aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms
diff options
context:
space:
mode:
authorMichael VanOverbeek <[email protected]>2017-05-21 12:21:41 +0000
committerMichael VanOverbeek <[email protected]>2017-05-21 12:21:41 +0000
commit31cc9148dd23737df16d8456a42d003cd31dd488 (patch)
treef699644cd0384e80a673099374649b7350d6e02d /ShiftOS.WinForms
parent3b1c71e6710c06a9e390f449589bd30cb2f4b7dd (diff)
downloadshiftos_thereturn-31cc9148dd23737df16d8456a42d003cd31dd488.tar.gz
shiftos_thereturn-31cc9148dd23737df16d8456a42d003cd31dd488.tar.bz2
shiftos_thereturn-31cc9148dd23737df16d8456a42d003cd31dd488.zip
holy ashit
Diffstat (limited to 'ShiftOS.WinForms')
-rw-r--r--ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs11
-rw-r--r--ShiftOS.WinForms/Applications/FileSkimmer.cs69
-rw-r--r--ShiftOS.WinForms/Applications/Pong.Designer.cs769
-rw-r--r--ShiftOS.WinForms/Applications/Pong.cs977
-rw-r--r--ShiftOS.WinForms/Applications/ShiftoriumFrontend.Designer.cs317
-rw-r--r--ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs274
-rw-r--r--ShiftOS.WinForms/Applications/Skin Loader.cs342
-rw-r--r--ShiftOS.WinForms/Applications/TriWrite.Designer.cs192
-rw-r--r--ShiftOS.WinForms/Applications/TriWrite.cs76
-rw-r--r--ShiftOS.WinForms/Applications/TriWrite.resx108
-rw-r--r--ShiftOS.WinForms/Controls/TerminalBox.cs130
-rw-r--r--ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.Designer.cs62
-rw-r--r--ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.cs51
-rw-r--r--ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.resx120
-rw-r--r--ShiftOS.WinForms/GUILogin.Designer.cs135
-rw-r--r--ShiftOS.WinForms/GUILogin.cs136
-rw-r--r--ShiftOS.WinForms/GUILogin.resx120
-rw-r--r--ShiftOS.WinForms/Oobe.cs4
-rw-r--r--ShiftOS.WinForms/OobeStory.cs6
-rw-r--r--ShiftOS.WinForms/Program.cs1
-rw-r--r--ShiftOS.WinForms/Resources/Shiftorium.txt7
-rw-r--r--ShiftOS.WinForms/ShiftOS.WinForms.csproj34
-rw-r--r--ShiftOS.WinForms/UniteLoginDialog.cs3
-rw-r--r--ShiftOS.WinForms/UniteSignupDialog.cs3
-rw-r--r--ShiftOS.WinForms/WindowBorder.cs55
25 files changed, 1027 insertions, 2975 deletions
diff --git a/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs b/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs
index a7b7aa5..965e4eb 100644
--- a/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs
+++ b/ShiftOS.WinForms/Applications/FileSkimmer.Designer.cs
@@ -69,10 +69,10 @@ namespace ShiftOS.WinForms.Applications
//
// lvitems
//
- this.lvitems.Dock = System.Windows.Forms.DockStyle.Right;
- this.lvitems.Location = new System.Drawing.Point(120, 0);
+ this.lvitems.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lvitems.Location = new System.Drawing.Point(149, 0);
this.lvitems.Name = "lvitems";
- this.lvitems.Size = new System.Drawing.Size(514, 332);
+ this.lvitems.Size = new System.Drawing.Size(485, 332);
this.lvitems.TabIndex = 0;
this.lvitems.UseCompatibleStateImageBehavior = false;
this.lvitems.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.lvitems_ItemSelectionChanged);
@@ -81,8 +81,8 @@ namespace ShiftOS.WinForms.Applications
//
// panel1
//
- this.panel1.Controls.Add(this.pinnedItems);
this.panel1.Controls.Add(this.lvitems);
+ this.panel1.Controls.Add(this.pinnedItems);
this.panel1.Controls.Add(this.lbcurrentfolder);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 24);
@@ -95,8 +95,9 @@ namespace ShiftOS.WinForms.Applications
this.pinnedItems.Dock = System.Windows.Forms.DockStyle.Left;
this.pinnedItems.Location = new System.Drawing.Point(0, 0);
this.pinnedItems.Name = "pinnedItems";
- this.pinnedItems.Size = new System.Drawing.Size(114, 332);
+ this.pinnedItems.Size = new System.Drawing.Size(149, 332);
this.pinnedItems.TabIndex = 3;
+ this.pinnedItems.Click += new System.EventHandler(this.pinnedItems_Click);
//
// lbcurrentfolder
//
diff --git a/ShiftOS.WinForms/Applications/FileSkimmer.cs b/ShiftOS.WinForms/Applications/FileSkimmer.cs
index 6309775..218e9e2 100644
--- a/ShiftOS.WinForms/Applications/FileSkimmer.cs
+++ b/ShiftOS.WinForms/Applications/FileSkimmer.cs
@@ -34,8 +34,8 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using static ShiftOS.Objects.ShiftFS.Utils;
-using Newtonsoft.Json;
using ShiftOS.Engine;
+using Newtonsoft.Json;
namespace ShiftOS.WinForms.Applications
{
@@ -129,8 +129,14 @@ namespace ShiftOS.WinForms.Applications
{
int amountsCalled = -1;
amountsCalled = amountsCalled + 1;
- pinnedItems.Nodes.Add(path);
- pinnedItems.Nodes[amountsCalled].Nodes.Add("test");
+ List<string> Pinned = new List<string>();
+ if(FileExists(Paths.GetPath("data") + "/pinned_items.dat"))
+ {
+ Pinned = JsonConvert.DeserializeObject<List<string>>(ReadAllText(Paths.GetPath("data") + "/pinned_items.dat"));
+ }
+ Pinned.Add(path);
+ WriteAllText(Paths.GetPath("data") + "/pinned_items.dat", JsonConvert.SerializeObject(Pinned));
+ ResetList();
}
public void ChangeDirectory(string path)
@@ -153,8 +159,40 @@ namespace ShiftOS.WinForms.Applications
}
}
+ public void PopulatePinned(TreeNode node, string[] items)
+ {
+ foreach(var dir in items)
+ {
+ var treenode = new TreeNode();
+ if (DirectoryExists(dir))
+ {
+ var dinf = GetDirectoryInfo(dir);
+ treenode.Text = dinf.Name;
+ }
+ else if (FileExists(dir))
+ {
+ var finf = GetFileInfo(dir);
+ treenode.Text = finf.Name;
+ }
+ treenode.Tag = dir;
+ node.Nodes.Add(treenode);
+ }
+ }
+
public void ResetList()
{
+ pinnedItems.Nodes.Clear();
+ List<string> Pinned = new List<string>();
+ if(FileExists(Paths.GetPath("data") + "/pinned_items.dat"))
+ {
+ Pinned = JsonConvert.DeserializeObject<List<string>>(ReadAllText(Paths.GetPath("data") + "/pinned_items.dat"));
+ }
+ var node = new TreeNode();
+ node.Text = "Pinned";
+ PopulatePinned(node, Pinned.ToArray());
+ pinnedItems.Nodes.Add(node);
+ node.ExpandAll();
+
if(lvitems.LargeImageList == null)
{
lvitems.LargeImageList = new ImageList();
@@ -423,14 +461,14 @@ namespace ShiftOS.WinForms.Applications
{
if (result == true)
{
- if (currentdir != "__system")
+ if (currentdir != "__system" && lvitems.SelectedItems[0].Text != "Up one")
{
pinDirectory(currentdir + "/" + lvitems.SelectedItems[0].Text);
ResetList();
}
else
{
- Infobox.Show("Cannot Pin", "You cannot pin a system drive.");
+ Infobox.Show("Cannot Pin", "You can only pin files or folders.");
}
}
@@ -438,5 +476,26 @@ namespace ShiftOS.WinForms.Applications
}
catch { }
}
+
+ private void pinnedItems_Click(object sender, EventArgs e)
+ {
+ try
+ {
+ if (pinnedItems.SelectedNode != null)
+ {
+ string path = pinnedItems.SelectedNode.Tag.ToString();
+ if (DirectoryExists(path))
+ {
+ currentdir = path;
+ ResetList();
+ }
+ else if (FileExists(path))
+ {
+ FileSkimmerBackend.OpenFile(path);
+ }
+ }
+ }
+ catch { }
+ }
}
}
diff --git a/ShiftOS.WinForms/Applications/Pong.Designer.cs b/ShiftOS.WinForms/Applications/Pong.Designer.cs
deleted file mode 100644
index b1186c6..0000000
--- a/ShiftOS.WinForms/Applications/Pong.Designer.cs
+++ /dev/null
@@ -1,769 +0,0 @@
-/*
- * MIT License
- *
- * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-
-/*
- * MIT License
- *
- * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-using ShiftOS.WinForms.Controls;
-
-namespace ShiftOS.WinForms.Applications
-{
- partial class Pong
- {
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
-
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- private void InitializeComponent()
- {
- this.components = new System.ComponentModel.Container();
- this.gameTimer = new System.Windows.Forms.Timer(this.components);
- this.counter = new System.Windows.Forms.Timer(this.components);
- this.tmrcountdown = new System.Windows.Forms.Timer(this.components);
- this.tmrstoryline = new System.Windows.Forms.Timer(this.components);
- this.pgcontents = new ShiftOS.WinForms.Controls.Canvas();
- this.pnlhighscore = new System.Windows.Forms.Panel();
- this.lbhighscore = new System.Windows.Forms.ListView();
- this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
- this.button2 = new System.Windows.Forms.Button();
- this.label10 = new System.Windows.Forms.Label();
- this.pnlgamestats = new System.Windows.Forms.Panel();
- this.button1 = new System.Windows.Forms.Button();
- this.label12 = new System.Windows.Forms.Label();
- this.lblnextstats = new System.Windows.Forms.Label();
- this.Label7 = new System.Windows.Forms.Label();
- this.lblpreviousstats = new System.Windows.Forms.Label();
- this.Label4 = new System.Windows.Forms.Label();
- this.btnplayon = new System.Windows.Forms.Button();
- this.Label3 = new System.Windows.Forms.Label();
- this.btncashout = new System.Windows.Forms.Button();
- this.Label2 = new System.Windows.Forms.Label();
- this.lbllevelreached = new System.Windows.Forms.Label();
- this.pnlfinalstats = new System.Windows.Forms.Panel();
- this.btnplayagain = new System.Windows.Forms.Button();
- this.lblfinalcodepoints = new System.Windows.Forms.Label();
- this.Label11 = new System.Windows.Forms.Label();
- this.lblfinalcomputerreward = new System.Windows.Forms.Label();
- this.Label9 = new System.Windows.Forms.Label();
- this.lblfinallevelreward = new System.Windows.Forms.Label();
- this.lblfinallevelreached = new System.Windows.Forms.Label();
- this.lblfinalcodepointswithtext = new System.Windows.Forms.Label();
- this.pnllose = new System.Windows.Forms.Panel();
- this.lblmissedout = new System.Windows.Forms.Label();
- this.lblbutyougained = new System.Windows.Forms.Label();
- this.btnlosetryagain = new System.Windows.Forms.Button();
- this.Label5 = new System.Windows.Forms.Label();
- this.Label1 = new System.Windows.Forms.Label();
- this.pnlintro = new System.Windows.Forms.Panel();
- this.Label6 = new System.Windows.Forms.Label();
- this.btnstartgame = new System.Windows.Forms.Button();
- this.Label8 = new System.Windows.Forms.Label();
- this.lblbeatai = new System.Windows.Forms.Label();
- this.lblcountdown = new System.Windows.Forms.Label();
- this.ball = new ShiftOS.WinForms.Controls.Canvas();
- this.paddleHuman = new System.Windows.Forms.PictureBox();
- this.paddleComputer = new System.Windows.Forms.Panel();
- this.lbllevelandtime = new System.Windows.Forms.Label();
- this.lblstatscodepoints = new System.Windows.Forms.Label();
- this.lblstatsY = new System.Windows.Forms.Label();
- this.lblstatsX = new System.Windows.Forms.Label();
- this.btnmatchmake = new System.Windows.Forms.Button();
- this.pgcontents.SuspendLayout();
- this.pnlhighscore.SuspendLayout();
- this.flowLayoutPanel1.SuspendLayout();
- this.pnlgamestats.SuspendLayout();
- this.pnlfinalstats.SuspendLayout();
- this.pnllose.SuspendLayout();
- this.pnlintro.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.paddleHuman)).BeginInit();
- this.SuspendLayout();
- //
- // gameTimer
- //
- this.gameTimer.Interval = 30;
- this.gameTimer.Tick += new System.EventHandler(this.gameTimer_Tick);
- //
- // counter
- //
- this.counter.Interval = 1000;
- this.counter.Tick += new System.EventHandler(this.counter_Tick);
- //
- // tmrcountdown
- //
- this.tmrcountdown.Interval = 1000;
- this.tmrcountdown.Tick += new System.EventHandler(this.countdown_Tick);
- //
- // tmrstoryline
- //
- this.tmrstoryline.Interval = 1000;
- this.tmrstoryline.Tick += new System.EventHandler(this.tmrstoryline_Tick);
- //
- // pgcontents
- //
- this.pgcontents.BackColor = System.Drawing.Color.White;
- this.pgcontents.Controls.Add(this.pnlintro);
- this.pgcontents.Controls.Add(this.pnlhighscore);
- this.pgcontents.Controls.Add(this.pnlgamestats);
- this.pgcontents.Controls.Add(this.pnlfinalstats);
- this.pgcontents.Controls.Add(this.pnllose);
- this.pgcontents.Controls.Add(this.lblbeatai);
- this.pgcontents.Controls.Add(this.lblcountdown);
- this.pgcontents.Controls.Add(this.ball);
- this.pgcontents.Controls.Add(this.paddleHuman);
- this.pgcontents.Controls.Add(this.paddleComputer);
- this.pgcontents.Controls.Add(this.lbllevelandtime);
- this.pgcontents.Controls.Add(this.lblstatscodepoints);
- this.pgcontents.Controls.Add(this.lblstatsY);
- this.pgcontents.Controls.Add(this.lblstatsX);
- this.pgcontents.Dock = System.Windows.Forms.DockStyle.Fill;
- this.pgcontents.Location = new System.Drawing.Point(0, 0);
- this.pgcontents.Name = "pgcontents";
- this.pgcontents.Size = new System.Drawing.Size(912, 504);
- this.pgcontents.TabIndex = 20;
- this.pgcontents.Paint += new System.Windows.Forms.PaintEventHandler(this.pgcontents_Paint);
- this.pgcontents.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pongMain_MouseMove);
- //
- // pnlhighscore
- //
- this.pnlhighscore.Controls.Add(this.lbhighscore);
- this.pnlhighscore.Controls.Add(this.flowLayoutPanel1);
- this.pnlhighscore.Controls.Add(this.label10);
- this.pnlhighscore.Location = new System.Drawing.Point(688, 302);
- this.pnlhighscore.Name = "pnlhighscore";
- this.pnlhighscore.Size = new System.Drawing.Size(539, 311);
- this.pnlhighscore.TabIndex = 14;
- this.pnlhighscore.Visible = false;
- //
- // lbhighscore
- //
- this.lbhighscore.Dock = System.Windows.Forms.DockStyle.Fill;
- this.lbhighscore.Location = new System.Drawing.Point(0, 36);
- this.lbhighscore.Name = "lbhighscore";
- this.lbhighscore.Size = new System.Drawing.Size(539, 246);
- this.lbhighscore.TabIndex = 1;
- this.lbhighscore.UseCompatibleStateImageBehavior = false;
- //
- // flowLayoutPanel1
- //
- this.flowLayoutPanel1.AutoSize = true;
- this.flowLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.flowLayoutPanel1.Controls.Add(this.button2);
- this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.RightToLeft;
- this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 282);
- this.flowLayoutPanel1.Name = "flowLayoutPanel1";
- this.flowLayoutPanel1.Size = new System.Drawing.Size(539, 29);
- this.flowLayoutPanel1.TabIndex = 2;
- //
- // button2
- //
- this.button2.AutoSize = true;
- this.button2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.button2.Location = new System.Drawing.Point(476, 3);
- this.button2.Name = "button2";
- this.button2.Size = new System.Drawing.Size(60, 23);
- this.button2.TabIndex = 0;
- this.button2.Text = "{CLOSE}";
- this.button2.UseVisualStyleBackColor = true;
- this.button2.Click += new System.EventHandler(this.button2_Click);
- //
- // label10
- //
- this.label10.Dock = System.Windows.Forms.DockStyle.Top;
- this.label10.Location = new System.Drawing.Point(0, 0);
- this.label10.Name = "label10";
- this.label10.Size = new System.Drawing.Size(539, 36);
- this.label10.TabIndex = 0;
- this.label10.Text = "{HIGH_SCORES}";
- this.label10.TextAlign = System.Drawing.ContentAlignment.TopCenter;
- //
- // pnlgamestats
- //
- this.pnlgamestats.Controls.Add(this.button1);
- this.pnlgamestats.Controls.Add(this.label12);
- this.pnlgamestats.Controls.Add(this.lblnextstats);
- this.pnlgamestats.Controls.Add(this.Label7);
- this.pnlgamestats.Controls.Add(this.lblpreviousstats);
- this.pnlgamestats.Controls.Add(this.Label4);
- this.pnlgamestats.Controls.Add(this.btnplayon);
- this.pnlgamestats.Controls.Add(this.Label3);
- this.pnlgamestats.Controls.Add(this.btncashout);
- this.pnlgamestats.Controls.Add(this.Label2);
- this.pnlgamestats.Controls.Add(this.lbllevelreached);
- this.pnlgamestats.Location = new System.Drawing.Point(104, 375);
- this.pnlgamestats.Name = "pnlgamestats";
- this.pnlgamestats.Size = new System.Drawing.Size(466, 284);
- this.pnlgamestats.TabIndex = 6;
- this.pnlgamestats.Visible = false;
- //
- // button1
- //
- this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.button1.Location = new System.Drawing.Point(32, 223);
- this.button1.Name = "button1";
- this.button1.Size = new System.Drawing.Size(191, 35);
- this.button1.TabIndex = 10;
- this.button1.Text = "{PONG_VIEW_HIGHSCORES}";
- this.button1.UseVisualStyleBackColor = true;
- this.button1.Click += new System.EventHandler(this.btnhighscore_Click);
- //
- // label12
- //
- this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.label12.Location = new System.Drawing.Point(8, 187);
- this.label12.Name = "label12";
- this.label12.Size = new System.Drawing.Size(245, 33);
- this.label12.TabIndex = 9;
- this.label12.Text = "{PONG_HIGHSCORE_EXP}";
- this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblnextstats
- //
- this.lblnextstats.AutoSize = true;
- this.lblnextstats.Location = new System.Drawing.Point(278, 136);
- this.lblnextstats.Name = "lblnextstats";
- this.lblnextstats.Size = new System.Drawing.Size(0, 13);
- this.lblnextstats.TabIndex = 8;
- //
- // Label7
- //
- this.Label7.AutoSize = true;
- this.Label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label7.Location = new System.Drawing.Point(278, 119);
- this.Label7.Name = "Label7";
- this.Label7.Size = new System.Drawing.Size(124, 16);
- this.Label7.TabIndex = 7;
- this.Label7.Text = "Next Level Stats:";
- //
- // lblpreviousstats
- //
- this.lblpreviousstats.AutoSize = true;
- this.lblpreviousstats.Location = new System.Drawing.Point(278, 54);
- this.lblpreviousstats.Name = "lblpreviousstats";
- this.lblpreviousstats.Size = new System.Drawing.Size(0, 13);
- this.lblpreviousstats.TabIndex = 6;
- //
- // Label4
- //
- this.Label4.AutoSize = true;
- this.Label4.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label4.Location = new System.Drawing.Point(278, 37);
- this.Label4.Name = "Label4";
- this.Label4.Size = new System.Drawing.Size(154, 16);
- this.Label4.TabIndex = 5;
- this.Label4.Text = "Previous Level Stats:";
- //
- // btnplayon
- //
- this.btnplayon.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnplayon.Location = new System.Drawing.Point(32, 147);
- this.btnplayon.Name = "btnplayon";
- this.btnplayon.Size = new System.Drawing.Size(191, 35);
- this.btnplayon.TabIndex = 4;
- this.btnplayon.Text = "Play on for 3 codepoints!";
- this.btnplayon.UseVisualStyleBackColor = true;
- this.btnplayon.Click += new System.EventHandler(this.btnplayon_Click);
- //
- // Label3
- //
- this.Label3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label3.Location = new System.Drawing.Point(8, 111);
- this.Label3.Name = "Label3";
- this.Label3.Size = new System.Drawing.Size(245, 33);
- this.Label3.TabIndex = 3;
- this.Label3.Text = "{PONG_PLAYON_DESC}";
- this.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // btncashout
- //
- this.btncashout.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btncashout.Location = new System.Drawing.Point(32, 73);
- this.btncashout.Name = "btncashout";
- this.btncashout.Size = new System.Drawing.Size(191, 35);
- this.btncashout.TabIndex = 2;
- this.btncashout.Text = "Cash out with 1 codepoint!";
- this.btncashout.UseVisualStyleBackColor = true;
- this.btncashout.Click += new System.EventHandler(this.btncashout_Click);
- //
- // Label2
- //
- this.Label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label2.Location = new System.Drawing.Point(8, 37);
- this.Label2.Name = "Label2";
- this.Label2.Size = new System.Drawing.Size(245, 33);
- this.Label2.TabIndex = 1;
- this.Label2.Text = "{PONG_CASHOUT_DESC}";
- this.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lbllevelreached
- //
- this.lbllevelreached.AutoSize = true;
- this.lbllevelreached.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lbllevelreached.Location = new System.Drawing.Point(149, 6);
- this.lbllevelreached.Name = "lbllevelreached";
- this.lbllevelreached.Size = new System.Drawing.Size(185, 20);
- this.lbllevelreached.TabIndex = 0;
- this.lbllevelreached.Text = "You Reached Level 2!";
- //
- // pnlfinalstats
- //
- this.pnlfinalstats.Controls.Add(this.btnplayagain);
- this.pnlfinalstats.Controls.Add(this.lblfinalcodepoints);
- this.pnlfinalstats.Controls.Add(this.Label11);
- this.pnlfinalstats.Controls.Add(this.lblfinalcomputerreward);
- this.pnlfinalstats.Controls.Add(this.Label9);
- this.pnlfinalstats.Controls.Add(this.lblfinallevelreward);
- this.pnlfinalstats.Controls.Add(this.lblfinallevelreached);
- this.pnlfinalstats.Controls.Add(this.lblfinalcodepointswithtext);
- this.pnlfinalstats.Location = new System.Drawing.Point(172, 74);
- this.pnlfinalstats.Name = "pnlfinalstats";
- this.pnlfinalstats.Size = new System.Drawing.Size(362, 226);
- this.pnlfinalstats.TabIndex = 9;
- this.pnlfinalstats.Visible = false;
- //
- // btnplayagain
- //
- this.btnplayagain.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnplayagain.Location = new System.Drawing.Point(5, 194);
- this.btnplayagain.Name = "btnplayagain";
- this.btnplayagain.Size = new System.Drawing.Size(352, 29);
- this.btnplayagain.TabIndex = 16;
- this.btnplayagain.Text = "{PLAY}";
- this.btnplayagain.UseVisualStyleBackColor = true;
- this.btnplayagain.Click += new System.EventHandler(this.btnplayagain_Click);
- //
- // lblfinalcodepoints
- //
- this.lblfinalcodepoints.Font = new System.Drawing.Font("Microsoft Sans Serif", 48F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblfinalcodepoints.Location = new System.Drawing.Point(3, 124);
- this.lblfinalcodepoints.Name = "lblfinalcodepoints";
- this.lblfinalcodepoints.Size = new System.Drawing.Size(356, 73);
- this.lblfinalcodepoints.TabIndex = 15;
- this.lblfinalcodepoints.Tag = "header1";
- this.lblfinalcodepoints.Text = "134 CP";
- this.lblfinalcodepoints.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // Label11
- //
- this.Label11.AutoSize = true;
- this.Label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label11.Location = new System.Drawing.Point(162, 82);
- this.Label11.Name = "Label11";
- this.Label11.Size = new System.Drawing.Size(33, 33);
- this.Label11.TabIndex = 14;
- this.Label11.Tag = "header2";
- this.Label11.Text = "+";
- this.Label11.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblfinalcomputerreward
- //
- this.lblfinalcomputerreward.Font = new System.Drawing.Font("Microsoft Sans Serif", 27.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblfinalcomputerreward.Location = new System.Drawing.Point(193, 72);
- this.lblfinalcomputerreward.Name = "lblfinalcomputerreward";
- this.lblfinalcomputerreward.Size = new System.Drawing.Size(151, 52);
- this.lblfinalcomputerreward.TabIndex = 12;
- this.lblfinalcomputerreward.Tag = "header2";
- this.lblfinalcomputerreward.Text = "34";
- this.lblfinalcomputerreward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // Label9
- //
- this.Label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label9.Location = new System.Drawing.Point(179, 31);
- this.Label9.Name = "Label9";
- this.Label9.Size = new System.Drawing.Size(180, 49);
- this.Label9.TabIndex = 11;
- this.Label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblfinallevelreward
- //
- this.lblfinallevelreward.Font = new System.Drawing.Font("Microsoft Sans Serif", 27.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblfinallevelreward.Location = new System.Drawing.Point(12, 72);
- this.lblfinallevelreward.Name = "lblfinallevelreward";
- this.lblfinallevelreward.Size = new System.Drawing.Size(151, 52);
- this.lblfinallevelreward.TabIndex = 10;
- this.lblfinallevelreward.Tag = "header2";
- this.lblfinallevelreward.Text = "100";
- this.lblfinallevelreward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblfinallevelreached
- //
- this.lblfinallevelreached.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblfinallevelreached.Location = new System.Drawing.Point(3, 31);
- this.lblfinallevelreached.Name = "lblfinallevelreached";
- this.lblfinallevelreached.Size = new System.Drawing.Size(170, 49);
- this.lblfinallevelreached.TabIndex = 9;
- this.lblfinallevelreached.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblfinalcodepointswithtext
- //
- this.lblfinalcodepointswithtext.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblfinalcodepointswithtext.Location = new System.Drawing.Point(3, 2);
- this.lblfinalcodepointswithtext.Name = "lblfinalcodepointswithtext";
- this.lblfinalcodepointswithtext.Size = new System.Drawing.Size(356, 26);
- this.lblfinalcodepointswithtext.TabIndex = 1;
- this.lblfinalcodepointswithtext.Tag = "header2";
- this.lblfinalcodepointswithtext.Text = "You cashed out with 134 codepoints!";
- this.lblfinalcodepointswithtext.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // pnllose
- //
- this.pnllose.Controls.Add(this.lblmissedout);
- this.pnllose.Controls.Add(this.lblbutyougained);
- this.pnllose.Controls.Add(this.btnlosetryagain);
- this.pnllose.Controls.Add(this.Label5);
- this.pnllose.Controls.Add(this.Label1);
- this.pnllose.Location = new System.Drawing.Point(209, 71);
- this.pnllose.Name = "pnllose";
- this.pnllose.Size = new System.Drawing.Size(266, 214);
- this.pnllose.TabIndex = 10;
- this.pnllose.Visible = false;
- //
- // lblmissedout
- //
- this.lblmissedout.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblmissedout.Location = new System.Drawing.Point(3, 175);
- this.lblmissedout.Name = "lblmissedout";
- this.lblmissedout.Size = new System.Drawing.Size(146, 35);
- this.lblmissedout.TabIndex = 3;
- this.lblmissedout.Text = "You Missed Out On: 500 Codepoints";
- this.lblmissedout.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblbutyougained
- //
- this.lblbutyougained.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblbutyougained.Location = new System.Drawing.Point(3, 125);
- this.lblbutyougained.Name = "lblbutyougained";
- this.lblbutyougained.Size = new System.Drawing.Size(146, 35);
- this.lblbutyougained.TabIndex = 3;
- this.lblbutyougained.Text = "But you gained 5 Codepoints";
- this.lblbutyougained.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // btnlosetryagain
- //
- this.btnlosetryagain.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnlosetryagain.Location = new System.Drawing.Point(155, 176);
- this.btnlosetryagain.Name = "btnlosetryagain";
- this.btnlosetryagain.Size = new System.Drawing.Size(106, 35);
- this.btnlosetryagain.TabIndex = 2;
- this.btnlosetryagain.Text = "Try Again";
- this.btnlosetryagain.UseVisualStyleBackColor = true;
- this.btnlosetryagain.Click += new System.EventHandler(this.btnlosetryagain_Click);
- //
- // Label5
- //
- this.Label5.Location = new System.Drawing.Point(7, 26);
- this.Label5.Name = "Label5";
- this.Label5.Size = new System.Drawing.Size(260, 163);
- this.Label5.TabIndex = 1;
- //
- // Label1
- //
- this.Label1.Dock = System.Windows.Forms.DockStyle.Top;
- this.Label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label1.Location = new System.Drawing.Point(0, 0);
- this.Label1.Name = "Label1";
- this.Label1.Size = new System.Drawing.Size(266, 16);
- this.Label1.TabIndex = 0;
- this.Label1.Text = "You lose!";
- this.Label1.TextAlign = System.Drawing.ContentAlignment.TopCenter;
- //
- // pnlintro
- //
- this.pnlintro.Controls.Add(this.btnmatchmake);
- this.pnlintro.Controls.Add(this.Label6);
- this.pnlintro.Controls.Add(this.btnstartgame);
- this.pnlintro.Controls.Add(this.Label8);
- this.pnlintro.Location = new System.Drawing.Point(0, 0);
- this.pnlintro.Name = "pnlintro";
- this.pnlintro.Size = new System.Drawing.Size(595, 303);
- this.pnlintro.TabIndex = 13;
- this.pnlintro.Tag = "header2";
- //
- // Label6
- //
- this.Label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label6.Location = new System.Drawing.Point(3, 39);
- this.Label6.Name = "Label6";
- this.Label6.Size = new System.Drawing.Size(589, 159);
- this.Label6.TabIndex = 15;
- this.Label6.Text = "{PONG_DESC}";
- this.Label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.Label6.Click += new System.EventHandler(this.Label6_Click);
- //
- // btnstartgame
- //
- this.btnstartgame.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnstartgame.Location = new System.Drawing.Point(188, 215);
- this.btnstartgame.Name = "btnstartgame";
- this.btnstartgame.Size = new System.Drawing.Size(242, 28);
- this.btnstartgame.TabIndex = 15;
- this.btnstartgame.Text = "{PLAY}";
- this.btnstartgame.UseVisualStyleBackColor = true;
- this.btnstartgame.Click += new System.EventHandler(this.btnstartgame_Click);
- //
- // Label8
- //
- this.Label8.AutoSize = true;
- this.Label8.Font = new System.Drawing.Font("Microsoft Sans Serif", 20.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.Label8.ForeColor = System.Drawing.Color.Black;
- this.Label8.Location = new System.Drawing.Point(250, 5);
- this.Label8.Name = "Label8";
- this.Label8.Size = new System.Drawing.Size(280, 31);
- this.Label8.TabIndex = 14;
- this.Label8.Text = "{PONG_WELCOME}";
- this.Label8.Click += new System.EventHandler(this.Label8_Click);
- //
- // lblbeatai
- //
- this.lblbeatai.Font = new System.Drawing.Font("Microsoft Sans Serif", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblbeatai.Location = new System.Drawing.Point(47, 41);
- this.lblbeatai.Name = "lblbeatai";
- this.lblbeatai.Size = new System.Drawing.Size(600, 30);
- this.lblbeatai.TabIndex = 8;
- this.lblbeatai.Tag = "header2";
- this.lblbeatai.Text = "You got 2 codepoints for beating the Computer!";
- this.lblbeatai.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lblbeatai.Visible = false;
- //
- // lblcountdown
- //
- this.lblcountdown.Font = new System.Drawing.Font("Microsoft Sans Serif", 24F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblcountdown.Location = new System.Drawing.Point(182, 152);
- this.lblcountdown.Name = "lblcountdown";
- this.lblcountdown.Size = new System.Drawing.Size(315, 49);
- this.lblcountdown.TabIndex = 7;
- this.lblcountdown.Text = "3";
- this.lblcountdown.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lblcountdown.Visible = false;
- //
- // ball
- //
- this.ball.BackColor = System.Drawing.Color.Black;
- this.ball.Location = new System.Drawing.Point(300, 152);
- this.ball.Name = "ball";
- this.ball.Size = new System.Drawing.Size(20, 20);
- this.ball.TabIndex = 2;
- this.ball.MouseEnter += new System.EventHandler(this.ball_MouseEnter);
- this.ball.MouseLeave += new System.EventHandler(this.ball_MouseLeave);
- //
- // paddleHuman
- //
- this.paddleHuman.BackColor = System.Drawing.Color.Black;
- this.paddleHuman.Location = new System.Drawing.Point(10, 134);
- this.paddleHuman.Name = "paddleHuman";
- this.paddleHuman.Size = new System.Drawing.Size(20, 100);
- this.paddleHuman.TabIndex = 3;
- this.paddleHuman.TabStop = false;
- //
- // paddleComputer
- //
- this.paddleComputer.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.paddleComputer.BackColor = System.Drawing.Color.Black;
- this.paddleComputer.Location = new System.Drawing.Point(878, 134);
- this.paddleComputer.MaximumSize = new System.Drawing.Size(20, 150);
- this.paddleComputer.Name = "paddleComputer";
- this.paddleComputer.Size = new System.Drawing.Size(20, 100);
- this.paddleComputer.TabIndex = 1;
- //
- // lbllevelandtime
- //
- this.lbllevelandtime.Dock = System.Windows.Forms.DockStyle.Top;
- this.lbllevelandtime.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lbllevelandtime.Location = new System.Drawing.Point(0, 0);
- this.lbllevelandtime.Name = "lbllevelandtime";
- this.lbllevelandtime.Size = new System.Drawing.Size(912, 22);
- this.lbllevelandtime.TabIndex = 4;
- this.lbllevelandtime.Tag = "header1";
- this.lbllevelandtime.Text = "Level: 1 - 58 Seconds Left";
- this.lbllevelandtime.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblstatscodepoints
- //
- this.lblstatscodepoints.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.lblstatscodepoints.AutoSize = true;
- this.lblstatscodepoints.Font = new System.Drawing.Font("Georgia", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblstatscodepoints.Location = new System.Drawing.Point(239, 460);
- this.lblstatscodepoints.Name = "lblstatscodepoints";
- this.lblstatscodepoints.Size = new System.Drawing.Size(116, 23);
- this.lblstatscodepoints.TabIndex = 12;
- this.lblstatscodepoints.Tag = "header2";
- this.lblstatscodepoints.Text = "Codepoints: ";
- this.lblstatscodepoints.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblstatsY
- //
- this.lblstatsY.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.lblstatsY.AutoSize = true;
- this.lblstatsY.Font = new System.Drawing.Font("Georgia", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblstatsY.Location = new System.Drawing.Point(440, 460);
- this.lblstatsY.Name = "lblstatsY";
- this.lblstatsY.Size = new System.Drawing.Size(76, 23);
- this.lblstatsY.TabIndex = 11;
- this.lblstatsY.Tag = "header2";
- this.lblstatsY.Text = "Yspeed:";
- this.lblstatsY.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lblstatsX
- //
- this.lblstatsX.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.lblstatsX.AutoSize = true;
- this.lblstatsX.Font = new System.Drawing.Font("Georgia", 14.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.lblstatsX.Location = new System.Drawing.Point(3, 460);
- this.lblstatsX.Name = "lblstatsX";
- this.lblstatsX.Size = new System.Drawing.Size(83, 23);
- this.lblstatsX.TabIndex = 5;
- this.lblstatsX.Tag = "header2";
- this.lblstatsX.Text = "Xspeed: ";
- this.lblstatsX.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // btnmatchmake
- //
- this.btnmatchmake.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.btnmatchmake.Location = new System.Drawing.Point(188, 253);
- this.btnmatchmake.Name = "btnmatchmake";
- this.btnmatchmake.Size = new System.Drawing.Size(242, 28);
- this.btnmatchmake.TabIndex = 16;
- this.btnmatchmake.Text = "Or, play against another Shifter!";
- this.btnmatchmake.UseVisualStyleBackColor = true;
- this.btnmatchmake.Click += new System.EventHandler(this.btnmatchmake_Click);
- //
- // Pong
- //
- this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
- this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.BackColor = System.Drawing.Color.White;
- this.Controls.Add(this.pgcontents);
- this.DoubleBuffered = true;
- this.Name = "Pong";
- this.Size = new System.Drawing.Size(912, 504);
- this.Load += new System.EventHandler(this.Pong_Load);
- this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.pongMain_MouseMove);
- this.pgcontents.ResumeLayout(false);
- this.pgcontents.PerformLayout();
- this.pnlhighscore.ResumeLayout(false);
- this.pnlhighscore.PerformLayout();
- this.flowLayoutPanel1.ResumeLayout(false);
- this.flowLayoutPanel1.PerformLayout();
- this.pnlgamestats.ResumeLayout(false);
- this.pnlgamestats.PerformLayout();
- this.pnlfinalstats.ResumeLayout(false);
- this.pnlfinalstats.PerformLayout();
- this.pnllose.ResumeLayout(false);
- this.pnlintro.ResumeLayout(false);
- this.pnlintro.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.paddleHuman)).EndInit();
- this.ResumeLayout(false);
-
- }
- internal System.Windows.Forms.Panel paddleComputer;
- internal System.Windows.Forms.Timer gameTimer;
- internal System.Windows.Forms.PictureBox paddleHuman;
- internal System.Windows.Forms.Label lbllevelandtime;
- internal System.Windows.Forms.Label lblstatsX;
- internal System.Windows.Forms.Timer counter;
- internal System.Windows.Forms.Panel pnlgamestats;
- internal System.Windows.Forms.Label lblnextstats;
- internal System.Windows.Forms.Label Label7;
- internal System.Windows.Forms.Label lblpreviousstats;
- internal System.Windows.Forms.Label Label4;
- internal System.Windows.Forms.Button btnplayon;
- internal System.Windows.Forms.Label Label3;
- internal System.Windows.Forms.Button btncashout;
- internal System.Windows.Forms.Label Label2;
- internal System.Windows.Forms.Label lbllevelreached;
- internal System.Windows.Forms.Label lblcountdown;
- internal System.Windows.Forms.Timer tmrcountdown;
- internal System.Windows.Forms.Label lblbeatai;
- internal System.Windows.Forms.Panel pnlfinalstats;
- internal System.Windows.Forms.Button btnplayagain;
- internal System.Windows.Forms.Label lblfinalcodepoints;
- internal System.Windows.Forms.Label Label11;
- internal System.Windows.Forms.Label lblfinalcomputerreward;
- internal System.Windows.Forms.Label Label9;
- internal System.Windows.Forms.Label lblfinallevelreward;
- internal System.Windows.Forms.Label lblfinallevelreached;
- internal System.Windows.Forms.Label lblfinalcodepointswithtext;
- internal System.Windows.Forms.Panel pnllose;
- internal System.Windows.Forms.Label lblmissedout;
- internal System.Windows.Forms.Label lblbutyougained;
- internal System.Windows.Forms.Button btnlosetryagain;
- internal System.Windows.Forms.Label Label5;
- internal System.Windows.Forms.Label Label1;
- internal System.Windows.Forms.Label lblstatscodepoints;
- internal System.Windows.Forms.Label lblstatsY;
- internal System.Windows.Forms.Panel pnlintro;
- internal System.Windows.Forms.Label Label6;
- internal System.Windows.Forms.Button btnstartgame;
- internal System.Windows.Forms.Label Label8;
- internal System.Windows.Forms.Timer tmrstoryline;
- private System.Windows.Forms.Panel pnlhighscore;
- private System.Windows.Forms.ListView lbhighscore;
- private System.Windows.Forms.Label label10;
- internal Canvas pgcontents;
- internal Canvas ball;
- internal System.Windows.Forms.Button button1;
- internal System.Windows.Forms.Label label12;
- private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
- private System.Windows.Forms.Button button2;
- internal System.Windows.Forms.Button btnmatchmake;
- }
-}
diff --git a/ShiftOS.WinForms/Applications/Pong.cs b/ShiftOS.WinForms/Applications/Pong.cs
deleted file mode 100644
index 585639a..0000000
--- a/ShiftOS.WinForms/Applications/Pong.cs
+++ /dev/null
@@ -1,977 +0,0 @@
-/*
- * MIT License
- *
- * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using Newtonsoft.Json;
-using ShiftOS.Engine;
-using ShiftOS.Objects;
-using ShiftOS.WinForms.Tools;
-
-namespace ShiftOS.WinForms.Applications
-{
- [MultiplayerOnly]
- [Launcher("Pong", true, "al_pong", "Games")]
- [WinOpen("pong")]
- [DefaultIcon("iconPong")]
- public partial class Pong : UserControl, IShiftOSWindow
- {
- //I can assure you guaranteed that there is an acorn somewhere, in this place, and the sailors are looking for it
- int xVel = 7;
- int yVel = 8;
- int computerspeed = 8;
- int level = 1;
- int secondsleft = 60;
- int casualposition;
- double xveldec = 3.0;
- double yveldec = 3.0;
- double incrementx = 0.4;
- double incrementy = 0.2;
- int levelxspeed = 3;
- int levelyspeed = 3;
- int beatairewardtotal;
- int beataireward = 1;
- int[] levelrewards = new int[50];
- int totalreward;
- int countdown = 3;
-
- bool aiShouldIsbeEnabled = true;
-
- public Pong()
- {
- InitializeComponent();
- }
-
- private void Pong_Load(object sender, EventArgs e)
- {
- setuplevelrewards();
- }
-
-
-
- // Move the paddle according to the mouse position.
- private void pongMain_MouseMove(object sender, MouseEventArgs e)
- {
- var loc = this.PointToClient(MousePosition);
- if (IsMultiplayerSession)
- {
- if (IsLeader)
- {
- paddleHuman.Location = new Point(paddleHuman.Location.X, (loc.Y) - (paddleHuman.Height / 2));
- ServerManager.Forward(OpponentGUID, "pong_mp_setopponenty", paddleHuman.Top.ToString());
- }
- else
- {
- paddleComputer.Location = new Point(paddleComputer.Location.X, (loc.Y) - (paddleComputer.Height / 2));
- ServerManager.Forward(OpponentGUID, "pong_mp_setopponenty", paddleComputer.Top.ToString());
- }
- }
- else
- {
- paddleHuman.Location = new Point(paddleHuman.Location.X, (loc.Y) - (paddleHuman.Height / 2));
- }
- }
-
- private void CenterPanels()
- {
- pnlfinalstats.CenterParent();
- pnlgamestats.CenterParent();
- pnlhighscore.CenterParent();
- pnlintro.CenterParent();
- pnllose.CenterParent();
- lblcountdown.CenterParent();
- lblbeatai.Left = (this.Width - lblbeatai.Width) / 2;
- SetupStats();
- }
-
- public void SetupStats()
- {
- lblstatsX.Location = new Point(5, this.Height - lblstatsX.Height - 5);
- lblstatsY.Location = new Point(this.Width - lblstatsY.Width - 5, this.Height - lblstatsY.Height - 5);
- lblstatscodepoints.Top = this.Height - lblstatscodepoints.Height - 5;
- lblstatscodepoints.Left = (this.Width - lblstatscodepoints.Width) / 2;
- }
-
- int OpponentY = 0;
-
- bool IsLeader = false;
-
- int LeaderX = 0;
- int LeaderY = 0;
-
- // ERROR: Handles clauses are not supported in C#
- private void gameTimer_Tick(object sender, EventArgs e)
- {
- if (this.Left < Screen.PrimaryScreen.Bounds.Width)
- {
- ball.BackColor = SkinEngine.LoadedSkin.ControlTextColor;
- paddleComputer.BackColor = SkinEngine.LoadedSkin.ControlTextColor;
- paddleHuman.BackColor = SkinEngine.LoadedSkin.ControlTextColor;
-
- //Check if paddle upgrade has been bought and change paddles accordingly
- //if (ShiftoriumFrontend.UpgradeInstalled("pong_increased_paddle_size"))
- //{
- // paddleHuman.Height = 150;
- // paddleComputer.Height = 150;
- //}
- //I don't know the point of this but I'm fucking 86ing it. - Michael
-
- //Set the computer player to move according to the ball's position.
- if (IsMultiplayerSession == true)
- {
- //If we're multiplayer, then we want to set the computer Y to the opponent's Y.
- //If we're the leader, we set the AI paddle, else we set the player paddle.
- if (IsLeader)
- paddleComputer.Top = OpponentY;
- else
- paddleHuman.Top = OpponentY;
- }
- else
- {
- if (aiShouldIsbeEnabled)
- if (ball.Location.X > (this.Width - (this.Width / 3)) - xVel * 10 && xVel > 0)
- {
- if (ball.Location.Y > paddleComputer.Location.Y + 50)
- {
- paddleComputer.Location = new Point(paddleComputer.Location.X, paddleComputer.Location.Y + computerspeed);
- }
- if (ball.Location.Y < paddleComputer.Location.Y + 50)
- {
- paddleComputer.Location = new Point(paddleComputer.Location.X, paddleComputer.Location.Y - computerspeed);
- }
- casualposition = rand.Next(-150, 201);
- }
- else
- {
- //used to be me.location.y - except it's fucking C# and this comment is misleading as fuck. OH WAIT! I didn't write it! And none of the current devs did either! - Michael
- if (paddleComputer.Location.Y > this.Size.Height / 2 - paddleComputer.Height + casualposition)
- {
- paddleComputer.Location = new Point(paddleComputer.Location.X, paddleComputer.Location.Y - computerspeed);
- }
- //Rylan is hot. Used to be //used to be me.location.y
- if (paddleComputer.Location.Y < this.Size.Height / 2 - paddleComputer.Height + casualposition)
- {
- paddleComputer.Location = new Point(paddleComputer.Location.X, paddleComputer.Location.Y + computerspeed);
- }
- }
- }
- //Set Xvel and Yvel speeds from decimal
- if (xVel > 0)
- xVel = (int)Math.Round(xveldec);
- if (xVel < 0)
- xVel = (int)-Math.Round(xveldec);
- if (yVel > 0)
- yVel = (int)Math.Round(yveldec);
- if (yVel < 0)
- yVel = (int)-Math.Round(yveldec);
-
- bool BallPhysics = true;
-
- if (IsMultiplayerSession)
- {
- //Logic for moving the ball in Multiplayer.
- if (IsLeader)
- {
- ball.Location = new Point(ball.Location.X + xVel, ball.Location.Y + yVel);
- }
- else
- {
- //Move it to the leader's ball position.
- ball.Location = new Point(LeaderX, LeaderY);
- BallPhysics = false;
- }
- }
- else
- {// Move the game ball.
- ball.Location = new Point(ball.Location.X + xVel, ball.Location.Y + yVel);
- }
- if (BallPhysics)
- {
- // Check for top wall.
- if (ball.Location.Y < 0)
- {
- ball.Location = new Point(ball.Location.X, 0);
- yVel = -yVel;
- ShiftOS.Engine.AudioManager.PlayStream(Properties.Resources.typesound);
- }
-
- // Check for bottom wall.
- if (ball.Location.Y > pgcontents.Height - ball.Height)
- {
- ball.Location = new Point(ball.Location.X, pgcontents.Height - ball.Size.Height);
- yVel = -yVel;
- ShiftOS.Engine.AudioManager.PlayStream(Properties.Resources.typesound);
- }
-
-
- // Check for player paddle.
- if (ball.Bounds.IntersectsWith(paddleHuman.Bounds))
- {
- ball.Location = new Point(paddleHuman.Location.X + ball.Size.Width + 1, ball.Location.Y);
- //randomly increase x or y speed of ball
- switch (rand.Next(1, 3))
- {
- case 1:
- xveldec = xveldec + incrementx;
- break;
- case 2:
- if (yveldec > 0)
- yveldec = yveldec + incrementy;
- if (yveldec < 0)
- yveldec = yveldec - incrementy;
- break;
- }
- xVel = -xVel;
- ShiftOS.Engine.AudioManager.PlayStream(Properties.Resources.writesound);
-
- }
-
- // Check for computer paddle.
- if (ball.Bounds.IntersectsWith(paddleComputer.Bounds))
- {
- ball.Location = new Point(paddleComputer.Location.X - paddleComputer.Size.Width - 1, ball.Location.Y);
- xveldec = xveldec + incrementx;
- xVel = -xVel;
- ShiftOS.Engine.AudioManager.PlayStream(Properties.Resources.writesound);
- }
- }
-
-
-
- // Check for left wall.
- if (ball.Location.X < -100)
- {
- //If we are in multiplayer, and not the leader, we won.
- if (IsMultiplayerSession)
- {
- if (IsLeader)
- {
- //We lost.
- NotifyLoseToTarget();
- }
- else
- {
- //We won.
- NotifyWinToTarget();
- Win();
- }
- }
- else
- {
- ball.Location = new Point(this.Size.Width / 2 + 200, this.Size.Height / 2);
- paddleComputer.Location = new Point(paddleComputer.Location.X, ball.Location.Y);
- if (xVel > 0)
- xVel = -xVel;
- pnllose.Show();
- gameTimer.Stop();
- counter.Stop();
- lblmissedout.Text = Localization.Parse("{YOU_MISSED_OUT_ON}:") + Environment.NewLine + lblstatscodepoints.Text.Replace(Localization.Parse("{CODEPOINTS}: "), "") + Localization.Parse(" {CODEPOINTS}");
- if (ShiftoriumFrontend.UpgradeInstalled("pong_upgrade_2"))
- {
- totalreward = levelrewards[level - 1] + beatairewardtotal;
- double onePercent = (totalreward / 100);
- lblbutyougained.Show();
- lblbutyougained.Text = Localization.Parse("{BUT_YOU_GAINED}:") + Environment.NewLine + onePercent.ToString("") + (Localization.Parse(" {CODEPOINTS}"));
- SaveSystem.TransferCodepointsFrom("pong", (totalreward / 100));
- }
- else
- {
- lblbutyougained.Hide();
- }
- }
- }
-
- // Check for right wall.
- if (ball.Location.X > this.Width - ball.Size.Width - paddleComputer.Width + 100)
- {
- if (IsMultiplayerSession)
- {
- //If we are the leader we won.
- if (IsLeader)
- {
- NotifyWinToTarget();
- Win();
- }
- else
- {
- NotifyLoseToTarget();
- }
- }
- else
- {
- Win();
- }
- }
-
- if (IsMultiplayerSession)
- {
- if (IsLeader)
- {
- ServerManager.Forward(OpponentGUID, "pong_mp_setballpos", JsonConvert.SerializeObject(ball.Location));
- }
- }
-
- if (IsLeader)
- {
- //lblstats.Text = "Xspeed: " & Math.Abs(xVel) & " Yspeed: " & Math.Abs(yVel) & " Human Location: " & paddleHuman.Location.ToString & " Computer Location: " & paddleComputer.Location.ToString & Environment.NewLine & " Ball Location: " & ball.Location.ToString & " Xdec: " & xveldec & " Ydec: " & yveldec & " Xinc: " & incrementx & " Yinc: " & incrementy
- lblstatsX.Text = Localization.Parse("{H_VEL}: ") + xveldec;
- lblstatsY.Text = Localization.Parse("{V_VEL}: ") + yveldec;
- lblstatscodepoints.Text = Localization.Parse("{CODEPOINTS}: ") + (levelrewards[level - 1] + beatairewardtotal).ToString();
- lbllevelandtime.Text = Localization.Parse("{LEVEL}: " + level + " - " + secondsleft + " {SECONDS_LEFT}");
-
- if (xVel > 20 || xVel < -20)
- {
- paddleHuman.Width = Math.Abs(xVel);
- paddleComputer.Width = Math.Abs(xVel);
- }
- else
- {
- paddleHuman.Width = 20;
- paddleComputer.Width = 20;
- }
- }
- if (!IsMultiplayerSession)
- {
- computerspeed = Math.Abs(yVel);
- }
- }
- }
-
- public void ServerMessageReceivedHandler(ServerMessage msg)
- {
- if(msg.Name == "pong_mp_setballpos")
- {
- var pt = JsonConvert.DeserializeObject<Point>(msg.Contents);
- LeaderX = pt.X;
- LeaderY = pt.Y;
- }
- else if(msg.Name == "pong_mp_youlose")
- {
- LoseMP();
- }
- else if(msg.Name == "pong_mp_setopponenty")
- {
- int y = Convert.ToInt32(msg.Contents);
- OpponentY = y;
- }
- else if(msg.Name == "pong_handshake_matchmake")
- {
- PossibleMatchmakes.Add(msg.Contents);
- }
- else if(msg.Name == "pong_handshake_complete")
- {
- LeaveMatchmake();
- StartLevel();
- }
- else if(msg.Name == "pong_handshake_giveleaderid")
- {
- IsLeader = false;
- OpponentGUID = msg.Contents;
- YouGUID = ServerManager.thisGuid.ToString();
- SendFollowerGUID();
- }
- else if(msg.Name == "pong_handshake_left")
- {
- if (this.PossibleMatchmakes.Contains(msg.Contents))
- this.PossibleMatchmakes.Remove(msg.Contents);
- }
- else if(msg.Name == "pong_handshake_setfollowerguid")
- {
- IsLeader = false;
- OpponentGUID = msg.Contents;
- }
- else if(msg.Name == "pong_mp_youwin")
- {
- Win();
- }
- }
-
- public void NotifyLoseToTarget()
- {
- ServerManager.Forward(OpponentGUID, "pong_mp_youwin", null);
- }
-
- public void NotifyWinToTarget()
- {
- ServerManager.Forward(OpponentGUID, "pong_mp_youlose", null);
- }
-
- public void LeaveMatchmake()
- {
- ServerManager.Forward("all", "pong_handshake_left", YouGUID);
- }
-
- List<string> PossibleMatchmakes = new List<string>();
-
- public void SendLeaderGUID()
- {
- ServerManager.Forward(OpponentGUID, "pong_handshake_giveleaderid", YouGUID);
- }
-
-
- public void StartMultiplayer()
- {
- IsMultiplayerSession = true;
- YouGUID = ServerManager.thisGuid.ToString();
- ServerManager.SendMessage("pong_handshake_matchmake", YouGUID);
- }
-
-
- public void SendFollowerGUID()
- {
- ServerManager.Forward(OpponentGUID, "pong_handshake_setfollowerguid", YouGUID);
- }
-
- public void LoseMP()
- {
- ball.Location = new Point(this.Size.Width / 2 + 200, this.Size.Height / 2);
- if(IsLeader)
- if (xVel > 0)
- xVel = -xVel;
- lblbeatai.Show();
- lblbeatai.Text = "The opponent has beaten you!";
- tmrcountdown.Start();
- gameTimer.Stop();
- counter.Stop();
-
- }
-
- public void Win()
- {
- ball.Location = new Point(this.Size.Width / 2 + 200, this.Size.Height / 2);
- paddleComputer.Location = new Point(paddleComputer.Location.X, ball.Location.Y);
- if (xVel > 0)
- xVel = -xVel;
- beatairewardtotal = beatairewardtotal + beataireward;
- lblbeatai.Show();
- lblbeatai.Text = Localization.Parse($"{{PONG_BEAT_AI_REWARD_SECONDARY}}: {beataireward}");
- tmrcountdown.Start();
- gameTimer.Stop();
- counter.Stop();
-
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void counter_Tick(object sender, EventArgs e)
- {
- if (this.Left < Screen.PrimaryScreen.Bounds.Width)
- {
- secondsleft = secondsleft - 1;
- if (secondsleft == 1)
- {
- secondsleft = 60;
- level = level + 1;
- if (SaveSystem.CurrentSave.UniteAuthToken != null)
- {
- try
- {
- var unite = new ShiftOS.Unite.UniteClient("http://getshiftos.ml", SaveSystem.CurrentSave.UniteAuthToken);
- if (unite.GetPongLevel() < level)
- unite.SetPongLevel(level);
- }
- catch { }
- }
- generatenextlevel();
- pnlgamestats.Show();
- pnlgamestats.BringToFront();
- pnlgamestats.Location = new Point((pgcontents.Width / 2) - (pnlgamestats.Width / 2), (pgcontents.Height / 2) - (pnlgamestats.Height / 2));
-
- counter.Stop();
- gameTimer.Stop();
- SendHighscores();
- }
-
- lblstatscodepoints.Text = Localization.Parse("{CODEPOINTS}: ") + (levelrewards[level - 1] + beatairewardtotal).ToString();
- }
- SetupStats();
- }
-
- [Obsolete("This method does nothing. Use UniteClient for highscore queries.")]
- public void SendHighscores()
- {
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void btnplayon_Click(object sender, EventArgs e)
- {
- xveldec = levelxspeed;
- yveldec = levelyspeed;
-
- secondsleft = 60;
-
- tmrcountdown.Start();
- lblbeatai.Text = Localization.Parse($"{{PONG_BEAT_AI_REWARD}}: {beataireward}");
- pnlgamestats.Hide();
- lblbeatai.Show();
- ball.Location = new Point(paddleHuman.Location.X + paddleHuman.Width + 50, paddleHuman.Location.Y + paddleHuman.Height / 2);
- if (xVel < 0)
- xVel = Math.Abs(xVel);
- lbllevelandtime.Text = Localization.Parse("{LEVEL}: " + level + " - " + secondsleft + " {SECONDS_LEFT}");
- }
-
- //Increase the ball speed stats for the next level
- private void generatenextlevel()
- {
- lbllevelreached.Text = Localization.Parse("{YOU_REACHED_LEVEL} " + level + "!");
-
- lblpreviousstats.Text = Localization.Parse("{INITIAL_H_VEL}: " + levelxspeed + Environment.NewLine + "{INITIAL_V_VEL}: " + levelyspeed + Environment.NewLine + "{INC_H_VEL}: " + incrementx + Environment.NewLine + "{INC_V_VEL}: " + incrementy);
-
- switch (rand.Next(1, 3))
- {
- case 1:
- levelxspeed = levelxspeed + 1;
- break;
- case 2:
- levelxspeed = levelxspeed + 2;
- break;
- }
-
- switch (rand.Next(1, 3))
- {
- case 1:
- levelyspeed = levelyspeed + 1;
- break;
- case 2:
- levelyspeed = levelyspeed + 2;
- break;
- }
-
- switch (rand.Next(1, 6))
- {
- case 1:
- incrementx = incrementx + 0.1;
- break;
- case 2:
- incrementx = incrementx + 0.2;
- break;
- case 3:
- incrementy = incrementy + 0.1;
- break;
- case 4:
- incrementy = incrementy + 0.2;
- break;
- case 5:
- incrementy = incrementy + 0.3;
- break;
- }
-
- lblnextstats.Text = Localization.Parse("{INITIAL_H_VEL}: " + levelxspeed + Environment.NewLine + "{INITIAL_V_VEL}: " + levelyspeed + Environment.NewLine + "{INC_H_VEL}: " + incrementx + Environment.NewLine + "{INC_V_VEL}: " + incrementy);
-
- if (level < 15)
- {
- if (ShiftoriumFrontend.UpgradeInstalled("pong_upgrade"))
- {
- beataireward = level * 10;
- } else
- {
- beataireward = level * 5;
- }
- }
- else
- {
- if (ShiftoriumFrontend.UpgradeInstalled("pong_upgrade"))
- {
- double br = levelrewards[level - 1] / 10;
- beataireward = (int)Math.Round(br) * 10;
- } else
- {
- double br = levelrewards[level - 1] / 10;
- beataireward = (int)Math.Round(br) * 5;
- }
- }
-
- totalreward = levelrewards[level - 1] + beatairewardtotal;
-
- btncashout.Text = Localization.Parse("{CASH_OUT_WITH_CODEPOINTS}");
- btnplayon.Text = Localization.Parse("{PONG_PLAY_ON_FOR_MORE}");
- }
-
- private void setuplevelrewards()
- {
- if (ShiftoriumFrontend.UpgradeInstalled("pong_upgrade"))
- {
- levelrewards[0] = 0;
- levelrewards[1] = 40;
- levelrewards[2] = 120;
- levelrewards[3] = 280;
- levelrewards[4] = 580;
- levelrewards[5] = 800;
- levelrewards[6] = 1200;
- levelrewards[7] = 1800;
- levelrewards[8] = 2400;
- levelrewards[9] = 3200;
- levelrewards[10] = 4000;
- levelrewards[11] = 5000;
- levelrewards[12] = 6000;
- levelrewards[13] = 8000;
- levelrewards[14] = 10000;
- levelrewards[15] = 12000;
- levelrewards[16] = 16000;
- levelrewards[17] = 20000;
- levelrewards[18] = 26000;
- levelrewards[19] = 32000;
- levelrewards[20] = 40000;
- levelrewards[21] = 50000;
- levelrewards[22] = 64000;
- levelrewards[23] = 80000;
- levelrewards[24] = 100000;
- levelrewards[25] = 120000;
- levelrewards[26] = 150000;
- levelrewards[27] = 180000;
- levelrewards[28] = 220000;
- levelrewards[29] = 280000;
- levelrewards[30] = 360000;
- levelrewards[31] = 440000;
- levelrewards[32] = 540000;
- levelrewards[33] = 640000;
- levelrewards[34] = 800000;
- levelrewards[35] = 1000000;
- levelrewards[36] = 1280000;
- levelrewards[37] = 1600000;
- levelrewards[38] = 2000000;
- levelrewards[39] = 3000000;
- levelrewards[40] = 4000000;
- } else
- {
- levelrewards[0] = 0;
- levelrewards[1] = 20;
- levelrewards[2] = 60;
- levelrewards[3] = 140;
- levelrewards[4] = 290;
- levelrewards[5] = 400;
- levelrewards[6] = 600;
- levelrewards[7] = 900;
- levelrewards[8] = 1200;
- levelrewards[9] = 1600;
- levelrewards[10] = 2000;
- levelrewards[11] = 2500;
- levelrewards[12] = 3000;
- levelrewards[13] = 4000;
- levelrewards[14] = 5000;
- levelrewards[15] = 6000;
- levelrewards[16] = 8000;
- levelrewards[17] = 10000;
- levelrewards[18] = 13000;
- levelrewards[19] = 16000;
- levelrewards[20] = 20000;
- levelrewards[21] = 25000;
- levelrewards[22] = 32000;
- levelrewards[23] = 40000;
- levelrewards[24] = 50000;
- levelrewards[25] = 60000;
- levelrewards[26] = 75000;
- levelrewards[27] = 90000;
- levelrewards[28] = 110000;
- levelrewards[29] = 140000;
- levelrewards[30] = 180000;
- levelrewards[31] = 220000;
- levelrewards[32] = 270000;
- levelrewards[33] = 320000;
- levelrewards[34] = 400000;
- levelrewards[35] = 500000;
- levelrewards[36] = 640000;
- levelrewards[37] = 800000;
- levelrewards[38] = 1000000;
- levelrewards[39] = 1500000;
- levelrewards[40] = 2000000;
- }
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void countdown_Tick(object sender, EventArgs e)
- {
- if (this.Left < Screen.PrimaryScreen.Bounds.Width)
- {
- switch (countdown)
- {
- case 0:
- countdown = 3;
- lblcountdown.Hide();
- lblbeatai.Hide();
- gameTimer.Start();
- counter.Start();
- tmrcountdown.Stop();
- break;
- case 1:
- lblcountdown.Text = "1";
- countdown = countdown - 1;
- ShiftOS.Engine.AudioManager.PlayStream(Properties.Resources.typesound);
- break;
- case 2:
- lblcountdown.Text = "2";
- countdown = countdown - 1;
- ShiftOS.Engine.AudioManager.PlayStream(Properties.Resources.typesound);
- break;
- case 3:
- lblcountdown.Text = "3";
- countdown = countdown - 1;
- lblcountdown.Show();
- ShiftOS.Engine.AudioManager.PlayStream(Properties.Resources.typesound);
- break;
- }
-
- }
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void btncashout_Click(object sender, EventArgs e)
- {
- pnlgamestats.Hide();
- pnlfinalstats.Show();
- lblfinalcodepointswithtext.Text = Localization.Parse("{YOU_WON} " + totalreward + " {CODEPOINTS}!");
- lblfinallevelreached.Text = Localization.Parse("{CODEPOINTS_FOR_BEATING_LEVEL}: ") + (level - 1).ToString();
- lblfinallevelreward.Text = levelrewards[level - 1].ToString();
- lblfinalcomputerreward.Text = beatairewardtotal.ToString();
- lblfinalcodepoints.Text = totalreward + Localization.Parse(" {CODEPOINTS_SHORT}");
- SaveSystem.TransferCodepointsFrom("pong", totalreward);
- if (!string.IsNullOrWhiteSpace(SaveSystem.CurrentSave.UniteAuthToken))
- {
- var unite = new ShiftOS.Unite.UniteClient("http://getshiftos.ml", SaveSystem.CurrentSave.UniteAuthToken);
- if (unite.GetPongCP() < totalreward)
- {
- unite.SetPongCP(totalreward);
- }
- }
- }
-
- private void newgame()
- {
- pnlfinalstats.Hide();
- pnllose.Hide();
- pnlintro.Hide();
-
- level = 1;
- totalreward = 0;
- if (ShiftoriumFrontend.UpgradeInstalled("pong_upgrade"))
- {
- beataireward = 10;
- } else
- {
- beataireward = 5;
- }
- beatairewardtotal = 0;
- secondsleft = 60;
- lblstatscodepoints.Text = Localization.Parse("{CODEPOINTS}: ");
- //reset stats text
- lblstatsX.Text = Localization.Parse("{H_VEL}: ");
- lblstatsY.Text = Localization.Parse("{V_VEL}: ");
-
- levelxspeed = 3;
- levelyspeed = 3;
-
- incrementx = 0.4;
- incrementy = 0.2;
-
- xveldec = levelxspeed;
- yveldec = levelyspeed;
-
- tmrcountdown.Start();
- lblbeatai.Text = Localization.Parse($"{{PONG_BEAT_AI_REWARD}}: {beataireward}");
- pnlgamestats.Hide();
- lblbeatai.Show();
- ball.Location = new Point(paddleHuman.Location.X + paddleHuman.Width + 50, (paddleHuman.Location.Y + paddleHuman.Height) / 2);
- if (xVel < 0)
- xVel = Math.Abs(xVel);
- lbllevelandtime.Text = Localization.Parse("{{LEVEL}}: " + level + " - " + secondsleft + " {SECONDS_LEFT}");
- }
-
- public void btnhighscore_Click(object s, EventArgs a)
- {
- pnlhighscore.BringToFront();
- SetupHighScores();
- }
-
- bool IsMultiplayerSession = false;
-
- string YouGUID = "";
- string OpponentGUID = "";
-
- public void SetupHighScores()
- {
- lbhighscore.Items.Clear();
- lbhighscore.View = View.Details;
- lbhighscore.FullRowSelect = true;
- lbhighscore.Columns.Clear();
- var n = new ColumnHeader();
- n.Text = "Player";
- n.Width = lbhighscore.Width / 3;
- var l = new ColumnHeader();
- l.Text = "Level";
- l.Width = n.Width;
- var c = new ColumnHeader();
- c.Text = "Codepoints";
- c.Width = n.Width;
- lbhighscore.Columns.Add(n);
- lbhighscore.Columns.Add(l);
- lbhighscore.Columns.Add(c);
-
- var t = new Thread(() =>
- {
- try
- {
-
- var unite = new ShiftOS.Unite.UniteClient("http://getshiftos.ml", SaveSystem.CurrentSave.UniteAuthToken);
- var hs = unite.GetPongHighscores();
- foreach (var score in hs.Highscores)
- {
- string username = unite.GetDisplayNameId(score.UserId);
- this.Invoke(new Action(() =>
- {
- var name_item = new ListViewItem();
- name_item.Text = username;
- lbhighscore.Items.Add(name_item);
- name_item.SubItems.Add(score.Level.ToString());
- name_item.SubItems.Add(score.CodepointsCashout.ToString());
- }));
- }
- }
- catch
- {
- Infobox.Show("Service unavailable.", "The Pong Highscore service is unavailable at this time.");
- this.Invoke(new Action(pnlgamestats.BringToFront));
- return;
- }
- });
- t.Start();
- pnlhighscore.Show();
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void btnplayagain_Click(object sender, EventArgs e)
- {
- newgame();
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void btnlosetryagain_Click(object sender, EventArgs e)
- {
- newgame();
- }
-
- public void StartLevel()
- {
- newgame();
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void btnstartgame_Click(object sender, EventArgs e)
- {
- newgame();
- }
-
- Random rand = new Random();
- // ERROR: Handles clauses are not supported in C#
- private void tmrstoryline_Tick(object sender, EventArgs e)
- {
- // Random chance of showing getshiftnet storyline
- int i = rand.Next(0, 100);
-
- if (i >= 25 && i <= 50)
- {
- tmrstoryline.Stop();
- }
-
- }
-
- // ERROR: Handles clauses are not supported in C#
- private void me_closing(object sender, FormClosingEventArgs e)
- {
- tmrstoryline.Stop();
- }
-
- private void Label6_Click(object sender, EventArgs e)
- {
-
- }
-
- private void Label8_Click(object sender, EventArgs e)
- {
-
- }
-
- private void pgcontents_Paint(object sender, PaintEventArgs e) {
-
- }
-
- private void ball_MouseEnter(object sender, EventArgs e) {
- aiShouldIsbeEnabled = false;
- }
-
- private void ball_MouseLeave(object sender, EventArgs e) {
- aiShouldIsbeEnabled = true;
- }
-
- public void OnLoad()
- {
- pnlintro.BringToFront();
- pnlintro.Show();
- pnlhighscore.Hide();
- pnlgamestats.Hide();
- pnlfinalstats.Hide();
- CenterPanels();
- lblbeatai.Hide();
- }
-
- public void OnSkinLoad()
- {
- CenterPanels();
- this.SizeChanged += (o, a) =>
- {
- CenterPanels();
- };
- }
-
- public bool OnUnload()
- {
- return true;
- }
-
- public void OnUpgrade()
- {
- CenterPanels();
- }
-
- private void button2_Click(object sender, EventArgs e)
- {
- pnlhighscore.Hide();
- }
-
- private void btnmatchmake_Click(object sender, EventArgs e)
- {
- this.StartMultiplayer();
- pnlintro.Hide();
- lblbeatai.Text = "Beat the other player to earn Codepoints.";
- lblcountdown.Text = "Waiting for another player...";
- lblcountdown.Left = (this.Width - lblcountdown.Width) / 2;
- }
- }
-}
diff --git a/ShiftOS.WinForms/Applications/ShiftoriumFrontend.Designer.cs b/ShiftOS.WinForms/Applications/ShiftoriumFrontend.Designer.cs
deleted file mode 100644
index 32d508b..0000000
--- a/ShiftOS.WinForms/Applications/ShiftoriumFrontend.Designer.cs
+++ /dev/null
@@ -1,317 +0,0 @@
-/*
- * MIT License
- *
- * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-using ShiftOS.WinForms.Controls;
-
-namespace ShiftOS.WinForms.Applications
-{
- partial class ShiftoriumFrontend
- {
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
-
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Windows Form Designer generated code
-
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- this.panel1 = new System.Windows.Forms.Panel();
- this.panel2 = new System.Windows.Forms.Panel();
- this.lbupgradedesc = new System.Windows.Forms.Label();
- this.pnlupgradeactions = new System.Windows.Forms.Panel();
- this.btnbuy = new System.Windows.Forms.Button();
- this.lbupgradetitle = new System.Windows.Forms.Label();
- this.pnllist = new System.Windows.Forms.Panel();
- this.lbcodepoints = new System.Windows.Forms.Label();
- this.label1 = new System.Windows.Forms.Label();
- this.pgupgradeprogress = new ShiftOS.WinForms.Controls.ShiftedProgressBar();
- this.lbupgrades = new System.Windows.Forms.ListBox();
- this.label3 = new System.Windows.Forms.Label();
- this.panel3 = new System.Windows.Forms.Panel();
- this.btncat_back = new System.Windows.Forms.Button();
- this.btncat_forward = new System.Windows.Forms.Button();
- this.lblcategorytext = new System.Windows.Forms.Label();
- this.lbnoupgrades = new System.Windows.Forms.Label();
- this.panel1.SuspendLayout();
- this.panel2.SuspendLayout();
- this.pnlupgradeactions.SuspendLayout();
- this.pnllist.SuspendLayout();
- this.panel3.SuspendLayout();
- this.SuspendLayout();
- //
- // panel1
- //
- this.panel1.Controls.Add(this.panel2);
- this.panel1.Controls.Add(this.pnllist);
- this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.panel1.Location = new System.Drawing.Point(0, 0);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(782, 427);
- this.panel1.TabIndex = 0;
- //
- // panel2
- //
- this.panel2.Controls.Add(this.lbupgradedesc);
- this.panel2.Controls.Add(this.pnlupgradeactions);
- this.panel2.Controls.Add(this.lbupgradetitle);
- this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
- this.panel2.Location = new System.Drawing.Point(406, 0);
- this.panel2.Name = "panel2";
- this.panel2.Size = new System.Drawing.Size(376, 427);
- this.panel2.TabIndex = 1;
- //
- // lbupgradedesc
- //
- this.lbupgradedesc.Dock = System.Windows.Forms.DockStyle.Fill;
- this.lbupgradedesc.Location = new System.Drawing.Point(0, 42);
- this.lbupgradedesc.Name = "lbupgradedesc";
- this.lbupgradedesc.Size = new System.Drawing.Size(376, 348);
- this.lbupgradedesc.TabIndex = 2;
- this.lbupgradedesc.Text = "{SHIFTORIUM_EXP}";
- this.lbupgradedesc.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbupgradedesc.UseCompatibleTextRendering = true;
- //
- // pnlupgradeactions
- //
- this.pnlupgradeactions.Controls.Add(this.btnbuy);
- this.pnlupgradeactions.Dock = System.Windows.Forms.DockStyle.Bottom;
- this.pnlupgradeactions.Location = new System.Drawing.Point(0, 390);
- this.pnlupgradeactions.Name = "pnlupgradeactions";
- this.pnlupgradeactions.Size = new System.Drawing.Size(376, 37);
- this.pnlupgradeactions.TabIndex = 1;
- //
- // btnbuy
- //
- this.btnbuy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
- this.btnbuy.AutoSize = true;
- this.btnbuy.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.btnbuy.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
- this.btnbuy.Location = new System.Drawing.Point(327, 9);
- this.btnbuy.Name = "btnbuy";
- this.btnbuy.Size = new System.Drawing.Size(37, 25);
- this.btnbuy.TabIndex = 0;
- this.btnbuy.Text = "Buy";
- this.btnbuy.UseVisualStyleBackColor = true;
- this.btnbuy.Visible = false;
- this.btnbuy.Click += new System.EventHandler(this.btnbuy_Click);
- //
- // lbupgradetitle
- //
- this.lbupgradetitle.Dock = System.Windows.Forms.DockStyle.Top;
- this.lbupgradetitle.Location = new System.Drawing.Point(0, 0);
- this.lbupgradetitle.Name = "lbupgradetitle";
- this.lbupgradetitle.Size = new System.Drawing.Size(376, 42);
- this.lbupgradetitle.TabIndex = 0;
- this.lbupgradetitle.Text = "{WELCOME_TO_SHIFTORIUM}";
- this.lbupgradetitle.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- this.lbupgradetitle.UseCompatibleTextRendering = true;
- //
- // pnllist
- //
- this.pnllist.Controls.Add(this.lbnoupgrades);
- this.pnllist.Controls.Add(this.panel3);
- this.pnllist.Controls.Add(this.lbcodepoints);
- this.pnllist.Controls.Add(this.label1);
- this.pnllist.Controls.Add(this.pgupgradeprogress);
- this.pnllist.Controls.Add(this.lbupgrades);
- this.pnllist.Dock = System.Windows.Forms.DockStyle.Left;
- this.pnllist.Location = new System.Drawing.Point(0, 0);
- this.pnllist.Name = "pnllist";
- this.pnllist.Size = new System.Drawing.Size(406, 427);
- this.pnllist.TabIndex = 0;
- //
- // lbcodepoints
- //
- this.lbcodepoints.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.lbcodepoints.AutoSize = true;
- this.lbcodepoints.Location = new System.Drawing.Point(128, 357);
- this.lbcodepoints.Name = "lbcodepoints";
- this.lbcodepoints.Size = new System.Drawing.Size(135, 13);
- this.lbcodepoints.TabIndex = 3;
- this.lbcodepoints.Text = "You have: %cp Codepoints";
- this.lbcodepoints.Click += new System.EventHandler(this.lbcodepoints_Click);
- //
- // label1
- //
- this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(3, 399);
- this.label1.Name = "label1";
- this.label1.Size = new System.Drawing.Size(137, 13);
- this.label1.TabIndex = 2;
- this.label1.Text = "{UPGRADE_PROGRESS}:";
- //
- // pgupgradeprogress
- //
- this.pgupgradeprogress.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.pgupgradeprogress.BlockSize = 5;
- this.pgupgradeprogress.Location = new System.Drawing.Point(146, 390);
- this.pgupgradeprogress.Maximum = 100;
- this.pgupgradeprogress.Name = "pgupgradeprogress";
- this.pgupgradeprogress.Size = new System.Drawing.Size(254, 23);
- this.pgupgradeprogress.Style = System.Windows.Forms.ProgressBarStyle.Continuous;
- this.pgupgradeprogress.TabIndex = 1;
- this.pgupgradeprogress.Value = 25;
- //
- // lbupgrades
- //
- this.lbupgrades.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.lbupgrades.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed;
- this.lbupgrades.FormattingEnabled = true;
- this.lbupgrades.Location = new System.Drawing.Point(3, 105);
- this.lbupgrades.Name = "lbupgrades";
- this.lbupgrades.Size = new System.Drawing.Size(397, 238);
- this.lbupgrades.TabIndex = 0;
- this.lbupgrades.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.lbupgrades_DrawItem);
- //
- // label3
- //
- this.label3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
- this.label3.AutoSize = true;
- this.label3.Location = new System.Drawing.Point(3, 399);
- this.label3.Name = "label3";
- this.label3.Size = new System.Drawing.Size(137, 13);
- this.label3.TabIndex = 2;
- //
- // panel3
- //
- this.panel3.Controls.Add(this.lblcategorytext);
- this.panel3.Controls.Add(this.btncat_forward);
- this.panel3.Controls.Add(this.btncat_back);
- this.panel3.Location = new System.Drawing.Point(6, 76);
- this.panel3.Name = "panel3";
- this.panel3.Size = new System.Drawing.Size(394, 23);
- this.panel3.TabIndex = 5;
- //
- // btncat_back
- //
- this.btncat_back.AutoSize = true;
- this.btncat_back.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.btncat_back.Dock = System.Windows.Forms.DockStyle.Left;
- this.btncat_back.Location = new System.Drawing.Point(0, 0);
- this.btncat_back.Name = "btncat_back";
- this.btncat_back.Size = new System.Drawing.Size(29, 23);
- this.btncat_back.TabIndex = 0;
- this.btncat_back.Text = "<--";
- this.btncat_back.UseVisualStyleBackColor = true;
- this.btncat_back.Click += new System.EventHandler(this.btncat_back_Click);
- //
- // btncat_forward
- //
- this.btncat_forward.AutoSize = true;
- this.btncat_forward.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.btncat_forward.Dock = System.Windows.Forms.DockStyle.Right;
- this.btncat_forward.Location = new System.Drawing.Point(365, 0);
- this.btncat_forward.Name = "btncat_forward";
- this.btncat_forward.Size = new System.Drawing.Size(29, 23);
- this.btncat_forward.TabIndex = 1;
- this.btncat_forward.Text = "-->";
- this.btncat_forward.UseVisualStyleBackColor = true;
- this.btncat_forward.Click += new System.EventHandler(this.btncat_forward_Click);
- //
- // lblcategorytext
- //
- this.lblcategorytext.Dock = System.Windows.Forms.DockStyle.Fill;
- this.lblcategorytext.Location = new System.Drawing.Point(29, 0);
- this.lblcategorytext.Name = "lblcategorytext";
- this.lblcategorytext.Size = new System.Drawing.Size(336, 23);
- this.lblcategorytext.TabIndex = 2;
- this.lblcategorytext.Text = "label2";
- this.lblcategorytext.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
- //
- // lbnoupgrades
- //
- this.lbnoupgrades.AutoSize = true;
- this.lbnoupgrades.Location = new System.Drawing.Point(69, 183);
- this.lbnoupgrades.Name = "lbnoupgrades";
- this.lbnoupgrades.Size = new System.Drawing.Size(71, 13);
- this.lbnoupgrades.TabIndex = 6;
- this.lbnoupgrades.Tag = "header2";
- this.lbnoupgrades.Text = "No upgrades!";
- this.lbnoupgrades.Visible = false;
- //
- // ShiftoriumFrontend
- //
- 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.panel1);
- this.ForeColor = System.Drawing.Color.LightGreen;
- this.Name = "ShiftoriumFrontend";
- this.Size = new System.Drawing.Size(782, 427);
- this.Load += new System.EventHandler(this.Shiftorium_Load);
- this.panel1.ResumeLayout(false);
- this.panel2.ResumeLayout(false);
- this.pnlupgradeactions.ResumeLayout(false);
- this.pnlupgradeactions.PerformLayout();
- this.pnllist.ResumeLayout(false);
- this.pnllist.PerformLayout();
- this.panel3.ResumeLayout(false);
- this.panel3.PerformLayout();
- this.ResumeLayout(false);
-
- }
-
- #endregion
-
- private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.Panel panel2;
- private System.Windows.Forms.Panel pnllist;
- private System.Windows.Forms.ListBox lbupgrades;
- private System.Windows.Forms.Label lbupgradedesc;
- private System.Windows.Forms.Panel pnlupgradeactions;
- private System.Windows.Forms.Label lbupgradetitle;
- private System.Windows.Forms.Button btnbuy;
- private ShiftedProgressBar pgupgradeprogress;
- private System.Windows.Forms.Label label1;
- private System.Windows.Forms.Label lbcodepoints;
- private System.Windows.Forms.Label label3;
- private System.Windows.Forms.Panel panel3;
- private System.Windows.Forms.Label lblcategorytext;
- private System.Windows.Forms.Button btncat_forward;
- private System.Windows.Forms.Button btncat_back;
- private System.Windows.Forms.Label lbnoupgrades;
- }
-} \ No newline at end of file
diff --git a/ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs b/ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs
deleted file mode 100644
index 66b0448..0000000
--- a/ShiftOS.WinForms/Applications/ShiftoriumFrontend.cs
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- * MIT License
- *
- * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using ShiftOS.Engine;
-using static ShiftOS.Engine.SkinEngine;
-using backend = ShiftOS.Engine.Shiftorium;
-namespace ShiftOS.WinForms.Applications
-{
- [Launcher("Shiftorium", true, "al_shiftorium", "Utilities")]
- [RequiresUpgrade("shiftorium_gui")]
- [MultiplayerOnly]
- [WinOpen("shiftorium")]
- [DefaultTitle("Shiftorium")]
- [DefaultIcon("iconShiftorium")]
- public partial class ShiftoriumFrontend : UserControl, IShiftOSWindow
- {
- public int CategoryId = 0;
- public static System.Timers.Timer timer100;
-
-
- public ShiftoriumFrontend()
- {
- cp_update = new System.Windows.Forms.Timer();
- cp_update.Tick += (o, a) =>
- {
- lbcodepoints.Text = $"You have {SaveSystem.CurrentSave.Codepoints} Codepoints.";
- };
- cp_update.Interval = 100;
- InitializeComponent();
- PopulateShiftorium();
- lbupgrades.SelectedIndexChanged += (o, a) =>
- {
- try
- {
- lbupgrades.Refresh();
- SelectUpgrade(lbupgrades.SelectedItem.ToString());
- }
- catch { }
- };
- this.pgupgradeprogress.Maximum = backend.GetDefaults().Count;
- this.pgupgradeprogress.Value = SaveSystem.CurrentSave.CountUpgrades();
- backend.Installed += () =>
- {
- this.pgupgradeprogress.Maximum = backend.GetDefaults().Count;
- this.pgupgradeprogress.Value = SaveSystem.CurrentSave.CountUpgrades();
- };
-
- }
-
- public void SelectUpgrade(string name)
- {
- btnbuy.Show();
- var upg = upgrades[name];
- lbupgradetitle.Text = Localization.Parse(upg.Name);
- lbupgradedesc.Text = Localization.Parse(upg.Description);
- }
-
- Dictionary<string, ShiftoriumUpgrade> upgrades = new Dictionary<string, ShiftoriumUpgrade>();
-
- public void PopulateShiftorium()
- {
- try
- {
- lbnoupgrades.Hide();
- lbupgrades.Items.Clear();
- upgrades.Clear();
- Timer();
-
- foreach (var upg in backend.GetAvailable().Where(x => x.Category == backend.GetCategories()[CategoryId]))
- {
- String name = Localization.Parse(upg.Name) + " - " + upg.Cost.ToString() + "CP";
- upgrades.Add(name, upg);
- lbupgrades.Items.Add(name);
- }
-
- if (lbupgrades.Items.Count == 0)
- {
- lbnoupgrades.Show();
- lbnoupgrades.Location = new Point(
- (lbupgrades.Width - lbnoupgrades.Width) / 2,
- (lbupgrades.Height - lbnoupgrades.Height) / 2
- );
-
- }
- else
- {
- lbnoupgrades.Hide();
- }
- lblcategorytext.Text = Shiftorium.GetCategories()[CategoryId];
- btncat_back.Visible = (CategoryId > 0);
- btncat_forward.Visible = (CategoryId < backend.GetCategories().Length - 1);
- }
- catch
- {
- lbnoupgrades.Show();
- lbnoupgrades.Location = new Point(
- (lbupgrades.Width - lbnoupgrades.Width) / 2,
- (lbupgrades.Height - lbnoupgrades.Height) / 2
- );
-
- }
- }
-
- public static bool UpgradeInstalled(string upg)
- {
- return backend.UpgradeInstalled(upg);
- }
-
- public static bool UpgradeAttributesUnlocked(FieldInfo finf)
- {
- return backend.UpgradeAttributesUnlocked(finf);
- }
-
- public static bool UpgradeAttributesUnlocked(MethodInfo finf)
- {
- return backend.UpgradeAttributesUnlocked(finf);
- }
-
- public static bool UpgradeAttributesUnlocked(Type finf)
- {
- return backend.UpgradeAttributesUnlocked(finf);
- }
-
- public static bool UpgradeAttributesUnlocked(PropertyInfo finf)
- {
- return backend.UpgradeAttributesUnlocked(finf);
- }
-
- private void lbupgrades_DrawItem(object sender, DrawItemEventArgs e)
- {
- var foreground = new SolidBrush(LoadedSkin.ControlTextColor);
- var background = new SolidBrush(LoadedSkin.ControlColor);
-
- e.Graphics.FillRectangle(background, e.Bounds);
- try
- {
- if (lbupgrades.GetSelected(e.Index) == true)
- {
- e.Graphics.FillRectangle(foreground, e.Bounds);
- e.Graphics.DrawString(lbupgrades.Items[e.Index].ToString(), e.Font, background, e.Bounds.Location);
- }
- else
- {
- e.Graphics.FillRectangle(background, e.Bounds);
- e.Graphics.DrawString(lbupgrades.Items[e.Index].ToString(), e.Font, foreground, e.Bounds.Location);
- }
- }
- catch
- {
- }
- }
-
- private void btnbuy_Click(object sender, EventArgs e)
- {
- long cpCost = 0;
- backend.Silent = true;
- Dictionary<string, long> UpgradesToBuy = new Dictionary<string, long>();
- foreach (var itm in lbupgrades.SelectedItems)
- {
- cpCost += upgrades[itm.ToString()].Cost;
- UpgradesToBuy.Add(upgrades[itm.ToString()].ID, upgrades[itm.ToString()].Cost);
- }
- if (SaveSystem.CurrentSave.Codepoints < cpCost)
- {
- Infobox.Show("Insufficient Codepoints", $"You do not have enough Codepoints to perform this action. You need {cpCost - SaveSystem.CurrentSave.Codepoints} more.");
-
- }
- else
- {
- foreach(var upg in UpgradesToBuy)
- {
- backend.Buy(upg.Key, upg.Value);
- }
- }
-
- backend.Silent = false;
- PopulateShiftorium();
- btnbuy.Hide();
- }
-
- private void Shiftorium_Load(object sender, EventArgs e) {
-
- }
-
- public void OnLoad()
- {
- cp_update.Start();
- lbnoupgrades.Hide();
- }
-
- public void OnSkinLoad()
- {
-
- }
-
- Timer cp_update = new System.Windows.Forms.Timer();
-
- public bool OnUnload()
- {
- cp_update.Stop();
- cp_update = null;
- return true;
- }
-
- public void OnUpgrade()
- {
- lbupgrades.SelectionMode = (UpgradeInstalled("shiftorium_gui_bulk_buy") == true) ? SelectionMode.MultiExtended : SelectionMode.One;
- lbcodepoints.Visible = Shiftorium.UpgradeInstalled("shiftorium_gui_codepoints_display");
- }
-
- private void lbcodepoints_Click(object sender, EventArgs e)
- {
-
- }
-
- void Timer()
- {
- timer100 = new System.Timers.Timer();
- timer100.Interval = 2000;
- //timer100.Elapsed += ???;
- timer100.AutoReset = true;
- timer100.Enabled = true;
- }
-
- private void btncat_back_Click(object sender, EventArgs e)
- {
- if(CategoryId > 0)
- {
- CategoryId--;
- PopulateShiftorium();
- }
- }
-
- private void btncat_forward_Click(object sender, EventArgs e)
- {
- if(CategoryId < backend.GetCategories().Length - 1)
- {
- CategoryId++;
- PopulateShiftorium();
- }
- }
- }
-}
diff --git a/ShiftOS.WinForms/Applications/Skin Loader.cs b/ShiftOS.WinForms/Applications/Skin Loader.cs
deleted file mode 100644
index 1f09e4a..0000000
--- a/ShiftOS.WinForms/Applications/Skin Loader.cs
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * MIT License
- *
- * Copyright (c) 2017 Michael VanOverbeek and ShiftOS devs
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all
- * copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using Newtonsoft.Json;
-using ShiftOS.Engine;
-using ShiftOS.WinForms.Tools;
-
-namespace ShiftOS.WinForms.Applications
-{
- [Launcher("Skin Loader", true, "al_skin_loader", "Customization")]
- [RequiresUpgrade("skinning")]
- [WinOpen("skin_loader")]
- [DefaultTitle("Skin Loader")]
- [DefaultIcon("iconSkinLoader")]
- public partial class Skin_Loader : UserControl, IShiftOSWindow
- {
- public Skin_Loader()
- {
- InitializeComponent();
- SetupControls(pnlborder);
- SetupControls(pnldesktop);
- LoadedSkin = JsonConvert.DeserializeObject<Skin>(JsonConvert.SerializeObject(SkinEngine.LoadedSkin));
- this.Load += (o, a) => { SetupUI(); };
-
- }
-
- public void SetupControls(Control ctrl)
- {
- ctrl.Tag = "keepbg keepfg keepfont";
- foreach (Control c in ctrl.Controls)
- SetupControls(c);
- }
-
- public Skin LoadedSkin { get; set; }
-
- public void SetupUI()
- {
- SetupDesktop();
- Setup();
- }
-
- public void SetupDesktop()
- {
- menuStrip1.Renderer = new ShiftOSMenuRenderer();
-
- this.DoubleBuffered = true;
- desktoppanel.BackColor = Color.Green;
-
- //upgrades
-
- if (SaveSystem.CurrentSave != null)
- {
- desktoppanel.Visible = ShiftoriumFrontend.UpgradeInstalled("desktop");
- lbtime.Visible = ShiftoriumFrontend.UpgradeInstalled("desktop_clock_widget");
-
- //skinning
- lbtime.ForeColor = LoadedSkin.DesktopPanelClockColor;
-
- sysmenuholder.Visible = ShiftoriumFrontend.UpgradeInstalled("app_launcher");
-
- //The Color Picker can give us transparent colors - which Windows Forms fucking despises when dealing with form backgrounds.
- //To compensate, we must recreate the desktop color and make the alpha channel '255'.
- pnldesktop.BackColor = Color.FromArgb(LoadedSkin.DesktopColor.R, LoadedSkin.DesktopColor.G, LoadedSkin.DesktopColor.B);
- //Not doing this will cause an ArgumentException.
-
- pnldesktop.BackgroundImage = GetImage("desktopbackground");
- pnldesktop.BackgroundImageLayout = GetImageLayout("desktopbackground");
- desktoppanel.BackgroundImage = GetImage("desktoppanel");
- menuStrip1.BackgroundImage = GetImage("applauncher");
- lbtime.ForeColor = LoadedSkin.DesktopPanelClockColor;
- lbtime.Font = LoadedSkin.DesktopPanelClockFont;
- lbtime.Text = Applications.Terminal.GetTime();
- lbtime.Left = desktoppanel.Width - lbtime.Width - LoadedSkin.DesktopPanelClockFromRight.X;
- lbtime.Top = LoadedSkin.DesktopPanelClockFromRight.Y;
-
- if (desktoppanel.BackgroundImage == null)
- {
- lbtime.BackColor = LoadedSkin.DesktopPanelClockBackgroundColor;
- }
- else
- {
- lbtime.BackColor = Color.Transparent;
- }
- apps.Text = LoadedSkin.AppLauncherText;
- sysmenuholder.Location = LoadedSkin.AppLauncherFromLeft;
- sysmenuholder.Size = LoadedSkin.AppLauncherHolderSize;
- apps.Size = sysmenuholder.Size;
- menuStrip1.Renderer = new ShiftOSMenuRenderer(new AppLauncherColorTable());
- desktoppanel.BackColor = LoadedSkin.DesktopPanelColor;
- desktoppanel.BackgroundImageLayout = GetImageLayout("desktoppanel");
- desktoppanel.Height = LoadedSkin.DesktopPanelHeight;
- if (LoadedSkin.DesktopPanelPosition == 1)
- {
- desktoppanel.Dock = DockStyle.Bottom;
- }
- else
- {
- desktoppanel.Dock = DockStyle.Top;
- }
- }
-
- }
-
- public ImageLayout GetImageLayout(string img)
- {
- if (LoadedSkin.SkinImageLayouts.ContainsKey(img))
- {
- return LoadedSkin.SkinImageLayouts[img];
- }
- else
- {
- LoadedSkin.SkinImageLayouts.Add(img, ImageLayout.Tile);
- return ImageLayout.Tile;
- }
- }
-
- public Image GetImage(string img)
- {
- var type = typeof(Skin);
-
- foreach (var field in type.GetFields())
- {
- foreach (var attr in field.GetCustomAttributes(false))
- {
- if (attr is ImageAttribute)
- {
- var iattr = attr as ImageAttribute;
- if (iattr.Name == img)
- {
- byte[] image = (byte[])field.GetValue(LoadedSkin);
- return SkinEngine.ImageFromBinary(image);
- }
- }
- }
- }
-
- return null;
- }
-
- bool IsDialog = false;
-
- public void Setup()
- {
- pnlcontents.BackColor = LoadedSkin.ControlColor;
-
- this.lbtitletext.Text = Localization.Parse("{TEMPLATE}");
- this.Dock = DockStyle.Fill;
-
- if (SaveSystem.CurrentSave != null)
- {
- this.pnltitle.Visible = ShiftoriumFrontend.UpgradeInstalled("wm_titlebar");
- this.pnlclose.Visible = ShiftoriumFrontend.UpgradeInstalled("close_button");
- this.pnlminimize.Visible = (IsDialog == false) && ShiftoriumFrontend.UpgradeInstalled("minimize_button");
- this.pnlmaximize.Visible = (IsDialog == false) && ShiftoriumFrontend.UpgradeInstalled("maximize_button");
- SetupSkin();
- }
- else
- {
- this.pnltitle.Visible = false;
- this.pnlclose.Visible = false;
- this.pnlminimize.Visible = false;
- this.pnlmaximize.Visible = false;
-
- }
- }
-
- public void SetupSkin()
- {
- pnltitlemaster.Height = LoadedSkin.TitlebarHeight;
- pnltitle.BackColor = LoadedSkin.TitleBackgroundColor;
- pnltitle.BackgroundImage = GetImage("titlebar");
- pnltitleleft.Visible = LoadedSkin.ShowTitleCorners;
- pnltitleright.Visible = LoadedSkin.ShowTitleCorners;
- pnltitleleft.BackColor = LoadedSkin.TitleLeftCornerBackground;
- pnltitleright.BackColor = LoadedSkin.TitleRightCornerBackground;
- pnltitleleft.Width = LoadedSkin.TitleLeftCornerWidth;
- pnltitleright.Width = LoadedSkin.TitleRightCornerWidth;
- pnltitleleft.BackgroundImage = GetImage("titleleft");
- pnltitleleft.BackgroundImageLayout = GetImageLayout("titleleft");
- pnltitleright.BackgroundImage = GetImage("titleright");
- pnltitleright.BackgroundImageLayout = GetImageLayout("titleright");
-
-
- lbtitletext.BackColor = LoadedSkin.TitleBackgroundColor;
- lbtitletext.ForeColor = LoadedSkin.TitleTextColor;
- lbtitletext.Font = LoadedSkin.TitleFont;
-
- pnlleft.BackColor = LoadedSkin.BorderLeftBackground;
- pnlleft.BackgroundImage = GetImage("leftborder");
- pnlleft.BackgroundImageLayout = GetImageLayout("leftborder");
- pnlleft.Width = LoadedSkin.LeftBorderWidth;
- pnlright.BackColor = LoadedSkin.BorderRightBackground;
- pnlright.BackgroundImage = GetImage("rightborder");
- pnlright.BackgroundImageLayout = GetImageLayout("rightborder");
- pnlright.Width = LoadedSkin.RightBorderWidth;
-
- pnlbottom.BackColor = LoadedSkin.BorderBottomBackground;
- pnlbottom.BackgroundImage = GetImage("bottomborder");
- pnlbottom.BackgroundImageLayout = GetImageLayout("bottomborder");
- pnlbottom.Height = LoadedSkin.BottomBorderWidth;
-
- pnlbottomr.BackColor = LoadedSkin.BorderBottomRightBackground;
- pnlbottomr.BackgroundImage = GetImage("bottomrborder");
- pnlbottomr.BackgroundImageLayout = GetImageLayout("bottomrborder");
- pnlbottoml.BackColor = LoadedSkin.BorderBottomLeftBackground;
- pnlbottoml.BackgroundImage = GetImage("bottomlborder");
- pnlbottoml.BackgroundImageLayout = GetImageLayout("bottomlborder");
-
- lbtitletext.ForeColor = LoadedSkin.TitleTextColor;
- lbtitletext.Font = LoadedSkin.TitleFont;
- pnlclose.BackColor = LoadedSkin.CloseButtonColor;
- pnlclose.BackgroundImage = GetImage("closebutton");
- pnlclose.BackgroundImageLayout = GetImageLayout("closebutton");
- pnlminimize.BackColor = LoadedSkin.MinimizeButtonColor;
- pnlminimize.BackgroundImage = GetImage("minimizebutton");
- pnlminimize.BackgroundImageLayout = GetImageLayout("minimizebutton");
- pnlmaximize.BackColor = LoadedSkin.MaximizeButtonColor;
- pnlmaximize.BackgroundImage = GetImage("maximizebutton");
- pnlmaximize.BackgroundImageLayout = GetImageLayout("maximizebutton");
-
- pnlclose.Size = LoadedSkin.CloseButtonSize;
- pnlminimize.Size = LoadedSkin.MinimizeButtonSize;
- pnlmaximize.Size = LoadedSkin.MaximizeButtonSize;
- pnlclose.Location = FromRight(LoadedSkin.CloseButtonFromSide);
- pnlminimize.Location = FromRight(LoadedSkin.MinimizeButtonFromSide);
- pnlmaximize.Location = FromRight(LoadedSkin.MaximizeButtonFromSide);
- pnlclose.Left -= pnlclose.Width;
- pnlmaximize.Left -= pnlmaximize.Width;
- pnlminimize.Left -= pnlminimize.Width;
-
- switch (LoadedSkin.TitleTextCentered)
- {
- case false:
- lbtitletext.Location = LoadedSkin.TitleTextLeft;
- break;
- default:
- lbtitletext.Left = (pnltitle.Width - lbtitletext.Width) / 2;
- lbtitletext.Top = LoadedSkin.TitleTextLeft.Y;
- break;
- }
- }
-
- public Point FromRight(Point input)
- {
- return new Point(pnltitle.Width - input.X, input.Y);
- }
-
- private void btnapply_Click(object sender, EventArgs e)
- {
- ShiftOS.Objects.ShiftFS.Utils.WriteAllText(Paths.GetPath("skin.json"), JsonConvert.SerializeObject(LoadedSkin));
- SkinEngine.LoadSkin();
- }
-
- private void btnclose_Click(object sender, EventArgs e)
- {
- this.Close();
- }
-
- private void btnloaddefault_Click(object sender, EventArgs e)
- {
- this.LoadedSkin = new ShiftOS.Engine.Skin();
- SetupUI();
- }
-
- private void btnexport_Click(object sender, EventArgs e)
- {
- AppearanceManager.SetupDialog(new FileDialog(new[] { ".skn" }, FileOpenerStyle.Save, new Action<string>((filename) =>
- {
- ShiftOS.Objects.ShiftFS.Utils.WriteAllText(filename, JsonConvert.SerializeObject(LoadedSkin));
- string fname = filename.Split('/')[filename.Split('/').Length - 1];
- if(!System.IO.Directory.Exists(Paths.SharedFolder + "\\skins"))
- {
- System.IO.Directory.CreateDirectory(Paths.SharedFolder + "\\skins");
- }
-
- string path = Paths.SharedFolder + "\\skins\\" + SaveSystem.CurrentSave.Username + "-" + fname;
- System.IO.File.WriteAllText(path, JsonConvert.SerializeObject(LoadedSkin));
-
- })));
- }
-
- private void btnimport_Click(object sender, EventArgs e)
- {
- AppearanceManager.SetupDialog(new FileDialog(new[] { ".skn" }, FileOpenerStyle.Open, new Action<string>((filename) =>
- {
- LoadedSkin = JsonConvert.DeserializeObject<Skin>(ShiftOS.Objects.ShiftFS.Utils.ReadAllText(filename));
- SetupUI();
- })));
- }
-
- public void OnLoad()
- {
-
- SetupUI();
- }
-
- public void OnSkinLoad()
- {
- SetupUI();
- }
-
- public bool OnUnload()
- {
- return true;
- }
-
- public void OnUpgrade()
- {
- SetupUI();
- }
- }
-}
diff --git a/ShiftOS.WinForms/Applications/TriWrite.Designer.cs b/ShiftOS.WinForms/Applications/TriWrite.Designer.cs
deleted file mode 100644
index e420fd5..0000000
--- a/ShiftOS.WinForms/Applications/TriWrite.Designer.cs
+++ /dev/null
@@ -1,192 +0,0 @@
-namespace ShiftOS.WinForms.Applications
-{
- partial class TriWrite
- {
- /// <summary>
- /// Required designer variable.
- /// </summary>
- private System.ComponentModel.IContainer components = null;
-
- /// <summary>
- /// Clean up any resources being used.
- /// </summary>
- /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region Component Designer generated code
-
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TriWrite));
- this.menuStrip1 = new System.Windows.Forms.MenuStrip();
- this.addContactToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.tvcontacts = new System.Windows.Forms.TreeView();
- this.panel1 = new System.Windows.Forms.Panel();
- this.txtbody = new System.Windows.Forms.Label();
- this.lbtitle = new System.Windows.Forms.Label();
- this.txtcontents = new System.Windows.Forms.TextBox();
- this.menuStrip2 = new System.Windows.Forms.MenuStrip();
- this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
- this.menuStrip3 = new System.Windows.Forms.MenuStrip();
- this.menuStrip1.SuspendLayout();
- this.panel1.SuspendLayout();
- this.menuStrip2.SuspendLayout();
- this.SuspendLayout();
- //
- // menuStrip1
- //
- this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.addContactToolStripMenuItem,
- this.removeToolStripMenuItem});
- this.menuStrip1.Location = new System.Drawing.Point(0, 0);
- this.menuStrip1.Name = "menuStrip1";
- this.menuStrip1.Size = new System.Drawing.Size(872, 24);
- this.menuStrip1.TabIndex = 0;
- this.menuStrip1.Text = "menuStrip1";
- //
- // addContactToolStripMenuItem
- //
- this.addContactToolStripMenuItem.Name = "addContactToolStripMenuItem";
- this.addContactToolStripMenuItem.Size = new System.Drawing.Size(32, 19);
- //
- // removeToolStripMenuItem
- //
- this.removeToolStripMenuItem.Name = "removeToolStripMenuItem";
- this.removeToolStripMenuItem.Size = new System.Drawing.Size(32, 19);
- //
- // tvcontacts
- //
- this.tvcontacts.Dock = System.Windows.Forms.DockStyle.Left;
- this.tvcontacts.Location = new System.Drawing.Point(0, 24);
- this.tvcontacts.Name = "tvcontacts";
- this.tvcontacts.Size = new System.Drawing.Size(224, 551);
- this.tvcontacts.TabIndex = 1;
- //
- // panel1
- //
- this.panel1.Controls.Add(this.txtbody);
- this.panel1.Controls.Add(this.lbtitle);
- this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.panel1.Location = new System.Drawing.Point(224, 24);
- this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(648, 551);
- this.panel1.TabIndex = 2;
- //
- // txtbody
- //
- this.txtbody.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.txtbody.Location = new System.Drawing.Point(7, 54);
- this.txtbody.Name = "txtbody";
- this.txtbody.Size = new System.Drawing.Size(626, 481);
- this.txtbody.TabIndex = 1;
- this.txtbody.Text = resources.GetString("txtbody.Text");
- //
- // lbtitle
- //
- this.lbtitle.AutoSize = true;
- this.lbtitle.Location = new System.Drawing.Point(7, 4);
- this.lbtitle.Name = "lbtitle";
- this.lbtitle.Size = new System.Drawing.Size(44, 13);
- this.lbtitle.TabIndex = 0;
- this.lbtitle.Tag = "header1";
- this.lbtitle.Text = "TriWrite";
- //
- // txtcontents
- //
- this.txtcontents.Dock = System.Windows.Forms.DockStyle.Fill;
- this.txtcontents.Location = new System.Drawing.Point(0, 53);
- this.txtcontents.Multiline = true;
- this.txtcontents.Name = "txtcontents";
- this.txtcontents.Size = new System.Drawing.Size(527, 460);
- this.txtcontents.TabIndex = 1;
- this.txtcontents.TabStop = false;
- //
- // menuStrip2
- //
- this.menuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.newToolStripMenuItem,
- this.openToolStripMenuItem,
- this.saveToolStripMenuItem});
- this.menuStrip2.Location = new System.Drawing.Point(0, 0);
- this.menuStrip2.Name = "menuStrip2";
- this.menuStrip2.Size = new System.Drawing.Size(527, 24);
- this.menuStrip2.TabIndex = 2;
- this.menuStrip2.Text = "menuStrip2";
- //
- // newToolStripMenuItem
- //
- this.newToolStripMenuItem.Name = "newToolStripMenuItem";
- this.newToolStripMenuItem.Size = new System.Drawing.Size(43, 20);
- this.newToolStripMenuItem.Text = "New";
- //
- // openToolStripMenuItem
- //
- this.openToolStripMenuItem.Name = "openToolStripMenuItem";
- this.openToolStripMenuItem.Size = new System.Drawing.Size(48, 20);
- this.openToolStripMenuItem.Text = "Open";
- //
- // saveToolStripMenuItem
- //
- this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
- this.saveToolStripMenuItem.Size = new System.Drawing.Size(43, 20);
- this.saveToolStripMenuItem.Text = "Save";
- //
- // menuStrip3
- //
- this.menuStrip3.Location = new System.Drawing.Point(0, 30);
- this.menuStrip3.Name = "menuStrip3";
- this.menuStrip3.Size = new System.Drawing.Size(527, 24);
- this.menuStrip3.TabIndex = 3;
- this.menuStrip3.Text = "menuStrip3";
- //
- // TriWrite
- //
- this.Controls.Add(this.txtcontents);
- this.Controls.Add(this.menuStrip3);
- this.Controls.Add(this.menuStrip2);
- this.Name = "TriWrite";
- this.Size = new System.Drawing.Size(527, 513);
- this.menuStrip1.ResumeLayout(false);
- this.menuStrip1.PerformLayout();
- this.panel1.ResumeLayout(false);
- this.panel1.PerformLayout();
- this.menuStrip2.ResumeLayout(false);
- this.menuStrip2.PerformLayout();
- this.ResumeLayout(false);
- this.PerformLayout();
-
- }
-
- #endregion
-
- private System.Windows.Forms.MenuStrip menuStrip1;
- private System.Windows.Forms.ToolStripMenuItem addContactToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem;
- private System.Windows.Forms.TreeView tvcontacts;
- private System.Windows.Forms.Panel panel1;
- private System.Windows.Forms.Label txtbody;
- private System.Windows.Forms.Label lbtitle;
- private System.Windows.Forms.TextBox txtcontents;
- private System.Windows.Forms.MenuStrip menuStrip2;
- private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem;
- private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem;
- private System.Windows.Forms.MenuStrip menuStrip3;
- }
-}
diff --git a/ShiftOS.WinForms/Applications/TriWrite.cs b/ShiftOS.WinForms/Applications/TriWrite.cs
deleted file mode 100644
index 6fb814f..0000000
--- a/ShiftOS.WinForms/Applications/TriWrite.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using ShiftOS.Objects.ShiftFS;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Windows.Forms;
-using ShiftOS.Engine;
-
-namespace ShiftOS.WinForms.Applications
-{
- [WinOpen("triwrite")]
- [AppscapeEntry("TriWrite", "Part of the trilogy of office applications for enhancement of your system. TriWrite is easliy the best text editor out there for ShiftOS.", 1024, 750, null, "Office")]
- [DefaultTitle("TriWrite")]
- [Launcher("TriWrite", false, null, "Office")]
- public partial class TriWrite : UserControl, IShiftOSWindow
- {
-
- public TriWrite()
- {
- InitializeComponent();
- }
-
- private void newToolStripMenuItem_Click(object sender, EventArgs e)
- {
- txtcontents.Text = "";
- }
-
- private void openToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var txt = new List<string>();
- txt.Add(".txt");
-
- AppearanceManager.SetupDialog(new FileDialog(txt.ToArray(), FileOpenerStyle.Open, new Action<string>((file) => this.LoadFile(file))));
- }
-
- public void LoadFile(string file)
- {
- txtcontents.Text = Utils.ReadAllText(file);
- }
-
- public void SaveFile(string file)
- {
- Utils.WriteAllText(file, txtcontents.Text);
- }
-
- private void saveToolStripMenuItem_Click(object sender, EventArgs e)
- {
- var txt = new List<string>();
- txt.Add(".txt");
-
- AppearanceManager.SetupDialog(new FileDialog(txt.ToArray(), FileOpenerStyle.Save, new Action<string>((file) => this.SaveFile(file))));
- }
-
- public void OnLoad()
- {
- }
-
- public void OnSkinLoad()
- {
- }
-
- public bool OnUnload()
- {
- return true;
- }
-
- public void OnUpgrade()
- {
- }
-
- }
-} \ No newline at end of file
diff --git a/ShiftOS.WinForms/Applications/TriWrite.resx b/ShiftOS.WinForms/Applications/TriWrite.resx
index 525a23c..a06716c 100644
--- a/ShiftOS.WinForms/Applications/TriWrite.resx
+++ b/ShiftOS.WinForms/Applications/TriWrite.resx
@@ -130,7 +130,113 @@ To add a contact, simply click "Add Contact", and to remove one, click "Remove".
<metadata name="menuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>132, 17</value>
</metadata>
- <metadata name="menuStrip3.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+ <metadata name="toolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>247, 17</value>
</metadata>
+ <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+ <data name="bold.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="italic.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="underline.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="strikethrough.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="left.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="center.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+ </data>
+ <data name="right.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>
+ iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
+ YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIDSURBVDhPpZLrS5NhGMb3j4SWh0oRQVExD4gonkDpg4hG
+ YKxG6WBogkMZKgPNCEVJFBGdGETEvgwyO9DJE5syZw3PIlPEE9pgBCLZ5XvdMB8Ew8gXbl54nuf63dd9
+ 0OGSnwCahxbPRNPAPMw9Xpg6ZmF46kZZ0xSKzJPIrhpDWsVnpBhGkKx3nAX8Pv7z1zg8OoY/cITdn4fw
+ bf/C0kYAN3Ma/w3gWfZL5kzTKBxjWyK2DftwI9tyMYCZKXbNHaD91bLYJrDXsYbrWfUKwJrPE9M2M1Oc
+ VzOOpHI7Jr376Hi9ogHqFIANO0/MmmmbmSmm9a8ze+I4MrNWAdjtoJgWcx+PSzg166yZZ8xM8XvXDix9
+ c4jIqFYAjoriBV9AhEPv1mH/sonogha0afbZMMZz+yreTGyhpusHwtNNCsA5U1zS4BLxzJIfg299qO32
+ Ir7UJtZfftyATqeT+8o2D8JSjQrAJblrncYL7ZJ2+bfaFnC/1S1NjL3diRat7qrO7wLRP3HjWsojBeCo
+ mDEo5mNjuweFGvjWg2EBhCbpkW78htSHHwRyNdmgAFzPEee2iFkzayy2OLXzT4gr6UdUnlXrullsxxQ+
+ kx0g8BTA3aZlButjSTyjODq/WcQcW/B/Je4OQhLvKQDnzN1mp0nnkvAhR8VuMzNrpm1mpjgkoVwB/v8D
+ TgDQASA1MVpwzwAAAABJRU5ErkJggg==
+</value>
+ </data>
</root> \ No newline at end of file
diff --git a/ShiftOS.WinForms/Controls/TerminalBox.cs b/ShiftOS.WinForms/Controls/TerminalBox.cs
index cdb0965..ea7808c 100644
--- a/ShiftOS.WinForms/Controls/TerminalBox.cs
+++ b/ShiftOS.WinForms/Controls/TerminalBox.cs
@@ -86,6 +86,7 @@ namespace ShiftOS.WinForms.Controls
public void WriteLine(string text)
{
+ Engine.AudioManager.PlayStream(Properties.Resources.writesound);
this.HideSelection = true;
this.Select(this.TextLength, 0);
this.SelectionFont = ConstructFont();
@@ -119,6 +120,135 @@ namespace ShiftOS.WinForms.Controls
base.OnMouseUp(mevent);
}
+ protected override void OnKeyDown(KeyEventArgs e)
+ {
+ base.OnKeyDown(e);
+ if (!TerminalBackend.InStory)
+ {
+ switch (e.KeyCode) {
+ case Keys.Add:
+ case Keys.Alt:
+ case Keys.Apps:
+ case Keys.Attn:
+ case Keys.BrowserBack:
+ case Keys.BrowserFavorites:
+ case Keys.BrowserForward:
+ case Keys.BrowserHome:
+ case Keys.BrowserRefresh:
+ case Keys.BrowserSearch:
+ case Keys.BrowserStop:
+ case Keys.Cancel:
+ case Keys.Capital:
+ case Keys.Clear:
+ case Keys.Control:
+ case Keys.ControlKey:
+ case Keys.Crsel:
+ case Keys.Decimal:
+ case Keys.Divide:
+ case Keys.Down:
+ case Keys.End:
+ case Keys.Enter:
+ case Keys.EraseEof:
+ case Keys.Escape:
+ case Keys.Execute:
+ case Keys.Exsel:
+ case Keys.F1:
+ case Keys.F10:
+ case Keys.F11:
+ case Keys.F12:
+ case Keys.F13:
+ case Keys.F14:
+ case Keys.F15:
+ case Keys.F16:
+ case Keys.F17:
+ case Keys.F18:
+ case Keys.F19:
+ case Keys.F2:
+ case Keys.F20:
+ case Keys.F21:
+ case Keys.F22:
+ case Keys.F23:
+ case Keys.F24:
+ case Keys.F3:
+ case Keys.F4:
+ case Keys.F5:
+ case Keys.F6:
+ case Keys.F7:
+ case Keys.F8:
+ case Keys.F9:
+ case Keys.FinalMode:
+ case Keys.HanguelMode:
+ case Keys.HanjaMode:
+ case Keys.Help:
+ case Keys.Home:
+ case Keys.IMEAccept:
+ case Keys.IMEConvert:
+ case Keys.IMEModeChange:
+ case Keys.IMENonconvert:
+ case Keys.Insert:
+ case Keys.JunjaMode:
+ case Keys.KeyCode:
+ case Keys.LaunchApplication1:
+ case Keys.LaunchApplication2:
+ case Keys.LaunchMail:
+ case Keys.LButton:
+ case Keys.LControlKey:
+ case Keys.Left:
+ case Keys.LineFeed:
+ case Keys.LMenu:
+ case Keys.LShiftKey:
+ case Keys.LWin:
+ case Keys.MButton:
+ case Keys.MediaNextTrack:
+ case Keys.MediaPlayPause:
+ case Keys.MediaPreviousTrack:
+ case Keys.MediaStop:
+ case Keys.Menu:
+ case Keys.Modifiers:
+ case Keys.Multiply:
+ case Keys.Next:
+ case Keys.NoName:
+ case Keys.None:
+ case Keys.NumLock:
+ case Keys.Pa1:
+ case Keys.Packet:
+ case Keys.PageUp:
+ case Keys.Pause:
+ case Keys.Play:
+ case Keys.Print:
+ case Keys.PrintScreen:
+ case Keys.ProcessKey:
+ case Keys.RButton:
+ case Keys.RControlKey:
+ case Keys.Right:
+ case Keys.RMenu:
+ case Keys.RShiftKey:
+ case Keys.RWin:
+ case Keys.Scroll:
+ case Keys.Select:
+ case Keys.SelectMedia:
+ case Keys.Separator:
+ case Keys.Shift:
+ case Keys.ShiftKey:
+ case Keys.Sleep:
+ case Keys.Subtract:
+ case Keys.Tab:
+ case Keys.Up:
+ case Keys.VolumeDown:
+ case Keys.VolumeMute:
+ case Keys.VolumeUp:
+ case Keys.XButton1:
+ case Keys.XButton2:
+ case Keys.Zoom:
+
+ break;
+ default:
+ //Engine.AudioManager.PlayStream(Properties.Resources.typesound); // infernal beeping noise only enable for the trailers
+ break;
+ }
+ }
+ }
+
public TerminalBox() : base()
{
this.Tag = "keepbg keepfg keepfont";
diff --git a/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.Designer.cs b/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.Designer.cs
new file mode 100644
index 0000000..c6a7d83
--- /dev/null
+++ b/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.Designer.cs
@@ -0,0 +1,62 @@
+namespace ShiftOS.WinForms.DesktopWidgets
+{
+ partial class HeartbeatWidget
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Component Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.lbheartbeat = new System.Windows.Forms.Label();
+ this.SuspendLayout();
+ //
+ // lbheartbeat
+ //
+ this.lbheartbeat.AutoSize = true;
+ this.lbheartbeat.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.lbheartbeat.Location = new System.Drawing.Point(0, 0);
+ this.lbheartbeat.Name = "lbheartbeat";
+ this.lbheartbeat.Size = new System.Drawing.Size(35, 13);
+ this.lbheartbeat.TabIndex = 0;
+ this.lbheartbeat.Text = "label1";
+ //
+ // HeartbeatWidget
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoSize = true;
+ this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.Controls.Add(this.lbheartbeat);
+ this.Name = "HeartbeatWidget";
+ this.Size = new System.Drawing.Size(35, 13);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Label lbheartbeat;
+ }
+}
diff --git a/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.cs b/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.cs
new file mode 100644
index 0000000..b0dc552
--- /dev/null
+++ b/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.cs
@@ -0,0 +1,51 @@
+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 ShiftOS.WinForms.Tools;
+using ShiftOS.Engine;
+
+namespace ShiftOS.WinForms.DesktopWidgets
+{
+ [DesktopWidget("Server ping", "See the time spent between client requests and server replies in the digital society.")]
+ public partial class HeartbeatWidget : UserControl, IDesktopWidget
+ {
+ public HeartbeatWidget()
+ {
+ InitializeComponent();
+ tmr.Interval = 1;
+ tmr.Tick += (o, a) =>
+ {
+ if(ts != ServerManager.DigitalSocietyPing)
+ {
+ ts = ServerManager.DigitalSocietyPing;
+ lbheartbeat.Text = "Server ping: " + ts.ToString() + " MS";
+ }
+ };
+ }
+
+ //Fun fact. I misspelled this as "TimeSpam."
+ long ts = 0;
+
+ public void OnSkinLoad()
+ {
+ ControlManager.SetupControls(this);
+ }
+
+ public void OnUpgrade()
+ {
+ }
+
+ Timer tmr = new Timer();
+
+ public void Setup()
+ {
+ tmr.Start();
+ }
+ }
+}
diff --git a/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.resx b/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/ShiftOS.WinForms/DesktopWidgets/HeartbeatWidget.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/ShiftOS.WinForms/GUILogin.Designer.cs b/ShiftOS.WinForms/GUILogin.Designer.cs
new file mode 100644
index 0000000..e10071f
--- /dev/null
+++ b/ShiftOS.WinForms/GUILogin.Designer.cs
@@ -0,0 +1,135 @@
+namespace ShiftOS.WinForms
+{
+ partial class GUILogin
+ {
+ /// <summary>
+ /// Required designer variable.
+ /// </summary>
+ private System.ComponentModel.IContainer components = null;
+
+ /// <summary>
+ /// Clean up any resources being used.
+ /// </summary>
+ /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ /// <summary>
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ /// </summary>
+ private void InitializeComponent()
+ {
+ this.pnlloginform = new System.Windows.Forms.Panel();
+ this.btnlogin = new System.Windows.Forms.Button();
+ this.txtpassword = new System.Windows.Forms.TextBox();
+ this.txtusername = new System.Windows.Forms.TextBox();
+ this.lblogintitle = new System.Windows.Forms.Label();
+ this.btnshutdown = new System.Windows.Forms.Button();
+ this.pnlloginform.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // pnlloginform
+ //
+ this.pnlloginform.Controls.Add(this.btnlogin);
+ this.pnlloginform.Controls.Add(this.txtpassword);
+ this.pnlloginform.Controls.Add(this.txtusername);
+ this.pnlloginform.Location = new System.Drawing.Point(13, 13);
+ this.pnlloginform.Name = "pnlloginform";
+ this.pnlloginform.Size = new System.Drawing.Size(358, 236);
+ this.pnlloginform.TabIndex = 0;
+ this.pnlloginform.Tag = "";
+ //
+ // btnlogin
+ //
+ this.btnlogin.AutoSize = true;
+ this.btnlogin.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.btnlogin.Location = new System.Drawing.Point(159, 163);
+ this.btnlogin.Name = "btnlogin";
+ this.btnlogin.Size = new System.Drawing.Size(43, 23);
+ this.btnlogin.TabIndex = 2;
+ this.btnlogin.Text = "Login";
+ this.btnlogin.UseVisualStyleBackColor = true;
+ this.btnlogin.Click += new System.EventHandler(this.btnlogin_Click);
+ //
+ // txtpassword
+ //
+ this.txtpassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtpassword.Location = new System.Drawing.Point(69, 115);
+ this.txtpassword.Name = "txtpassword";
+ this.txtpassword.Size = new System.Drawing.Size(300, 20);
+ this.txtpassword.TabIndex = 1;
+ this.txtpassword.UseSystemPasswordChar = true;
+ //
+ // txtusername
+ //
+ this.txtusername.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.txtusername.Location = new System.Drawing.Point(3, 14);
+ this.txtusername.Name = "txtusername";
+ this.txtusername.Size = new System.Drawing.Size(300, 20);
+ this.txtusername.TabIndex = 0;
+ //
+ // lblogintitle
+ //
+ this.lblogintitle.AutoSize = true;
+ this.lblogintitle.Location = new System.Drawing.Point(99, 553);
+ this.lblogintitle.Name = "lblogintitle";
+ this.lblogintitle.Size = new System.Drawing.Size(103, 13);
+ this.lblogintitle.TabIndex = 1;
+ this.lblogintitle.Tag = "header1 keepbg";
+ this.lblogintitle.Text = "Welcome to ShiftOS";
+ //
+ // btnshutdown
+ //
+ this.btnshutdown.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.btnshutdown.AutoSize = true;
+ this.btnshutdown.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.btnshutdown.Location = new System.Drawing.Point(924, 652);
+ this.btnshutdown.Name = "btnshutdown";
+ this.btnshutdown.Size = new System.Drawing.Size(65, 23);
+ this.btnshutdown.TabIndex = 2;
+ this.btnshutdown.Text = "Shutdown";
+ this.btnshutdown.UseVisualStyleBackColor = true;
+ this.btnshutdown.Click += new System.EventHandler(this.btnshutdown_Click);
+ //
+ // GUILogin
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.Black;
+ this.ClientSize = new System.Drawing.Size(1001, 687);
+ this.Controls.Add(this.btnshutdown);
+ this.Controls.Add(this.lblogintitle);
+ this.Controls.Add(this.pnlloginform);
+ this.ForeColor = System.Drawing.Color.White;
+ this.Name = "GUILogin";
+ this.Text = "GUILogin";
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.GUILogin_FormClosing);
+ this.Load += new System.EventHandler(this.GUILogin_Load);
+ this.pnlloginform.ResumeLayout(false);
+ this.pnlloginform.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.Panel pnlloginform;
+ private System.Windows.Forms.Button btnlogin;
+ private System.Windows.Forms.TextBox txtpassword;
+ private System.Windows.Forms.TextBox txtusername;
+ private System.Windows.Forms.Label lblogintitle;
+ private System.Windows.Forms.Button btnshutdown;
+ }
+} \ No newline at end of file
diff --git a/ShiftOS.WinForms/GUILogin.cs b/ShiftOS.WinForms/GUILogin.cs
new file mode 100644
index 0000000..078061c
--- /dev/null
+++ b/ShiftOS.WinForms/GUILogin.cs
@@ -0,0 +1,136 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+using ShiftOS.Engine;
+using ShiftOS.Objects;
+using ShiftOS.WinForms.Tools;
+
+namespace ShiftOS.WinForms
+{
+ public partial class GUILogin : Form
+ {
+ public GUILogin()
+ {
+ InitializeComponent();
+ uiTimer.Tick += (o, a) =>
+ {
+ btnlogin.Left = txtusername.Left + ((txtusername.Width - btnlogin.Width) / 2);
+ btnlogin.Top = txtpassword.Top + txtpassword.Height + 5;
+
+ lblogintitle.Left = pnlloginform.Left + ((pnlloginform.Width - lblogintitle.Width) / 2);
+ lblogintitle.Top = pnlloginform.Top - lblogintitle.Width - 5;
+
+ };
+ uiTimer.Interval = 100;
+ this.FormBorderStyle = FormBorderStyle.None;
+ this.WindowState = FormWindowState.Maximized;
+ this.TopMost = true;
+ }
+
+ Timer uiTimer = new Timer();
+
+ public event Action<ClientSave> LoginComplete;
+
+ private void GUILogin_Load(object sender, EventArgs e)
+ {
+ uiTimer.Start();
+ ControlManager.SetupControl(lblogintitle);
+ ControlManager.SetupControls(pnlloginform);
+ ControlManager.SetupControl(btnshutdown);
+ pnlloginform.CenterParent();
+ txtusername.CenterParent();
+ txtusername.Location = new System.Drawing.Point(txtusername.Location.X, 77);
+ txtpassword.CenterParent();
+ btnlogin.CenterParent();
+ btnlogin.Location = new System.Drawing.Point(btnlogin.Location.X, 143);
+ this.BackColor = SkinEngine.LoadedSkin.LoginScreenColor;
+ this.BackgroundImage = SkinEngine.GetImage("login");
+ this.BackgroundImageLayout = SkinEngine.GetImageLayout("login");
+ }
+
+ private ClientSave User = null;
+
+ bool userRequestClose = true;
+ bool shuttingdown = false;
+
+ private void GUILogin_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ e.Cancel = userRequestClose;
+ if (!e.Cancel)
+ {
+ uiTimer.Stop();
+ if (shuttingdown == false)
+ {
+ LoginComplete?.Invoke(User);
+ }
+ }
+ }
+
+ private void btnlogin_Click(object sender, EventArgs e)
+ {
+ if (string.IsNullOrWhiteSpace(txtusername.Text))
+ {
+ Infobox.Show("Enter a username", "You must enter your username to login.");
+ return;
+ }
+
+ //Don't check for blank passwords.
+
+ var user = SaveSystem.CurrentSave.Users.FirstOrDefault(x => x.Username == txtusername.Text);
+ if(user == null)
+ {
+ Infobox.Show("Invalid username", "That username was not found on your system.");
+ return;
+ }
+
+ if (user.Password != txtpassword.Text)
+ {
+ Infobox.Show("Access denied.", "That password didn't work. Please try a different one.");
+ return;
+ }
+
+ User = user;
+ userRequestClose = false;
+ shuttingdown = false;
+ this.Close();
+ }
+
+ private void btnshutdown_Click(object sender, EventArgs e)
+ {
+ userRequestClose = false;
+ shuttingdown = true;
+ this.Close();
+ SaveSystem.CurrentUser = SaveSystem.CurrentSave.Users.FirstOrDefault(x => x.Username == "root");
+ TerminalBackend.InvokeCommand("sos.shutdown");
+ }
+ }
+
+ public class GUILoginFrontend : ILoginFrontend
+ {
+ public bool UseGUILogin
+ {
+ get
+ {
+ return Shiftorium.UpgradeInstalled("gui_based_login_screen");
+ }
+ }
+
+ public event Action<ClientSave> LoginComplete;
+
+ public void Login()
+ {
+ var lform = new GUILogin();
+ lform.LoginComplete += (user) =>
+ {
+ LoginComplete?.Invoke(user);
+ };
+ lform.Show();
+ }
+ }
+}
diff --git a/ShiftOS.WinForms/GUILogin.resx b/ShiftOS.WinForms/GUILogin.resx
new file mode 100644
index 0000000..1af7de1
--- /dev/null
+++ b/ShiftOS.WinForms/GUILogin.resx
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+ <!--
+ Microsoft ResX Schema
+
+ Version 2.0
+
+ The primary goals of this format is to allow a simple XML format
+ that is mostly human readable. The generation and parsing of the
+ various data types are done through the TypeConverter classes
+ associated with the data types.
+
+ Example:
+
+ ... ado.net/XML headers & schema ...
+ <resheader name="resmimetype">text/microsoft-resx</resheader>
+ <resheader name="version">2.0</resheader>
+ <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+ <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+ <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+ <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+ <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+ <value>[base64 mime encoded serialized .NET Framework object]</value>
+ </data>
+ <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+ <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+ <comment>This is a comment</comment>
+ </data>
+
+ There are any number of "resheader" rows that contain simple
+ name/value pairs.
+
+ Each data row contains a name, and value. The row also contains a
+ type or mimetype. Type corresponds to a .NET class that support
+ text/value conversion through the TypeConverter architecture.
+ Classes that don't support this are serialized and stored with the
+ mimetype set.
+
+ The mimetype is used for serialized objects, and tells the
+ ResXResourceReader how to depersist the object. This is currently not
+ extensible. For a given mimetype the value must be set accordingly:
+
+ Note - application/x-microsoft.net.object.binary.base64 is the format
+ that the ResXResourceWriter will generate, however the reader can
+ read any of the formats listed below.
+
+ mimetype: application/x-microsoft.net.object.binary.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.soap.base64
+ value : The object must be serialized with
+ : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+ : and then encoded with base64 encoding.
+
+ mimetype: application/x-microsoft.net.object.bytearray.base64
+ value : The object must be serialized into a byte array
+ : using a System.ComponentModel.TypeConverter
+ : and then encoded with base64 encoding.
+ -->
+ <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+ <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+ <xsd:element name="root" msdata:IsDataSet="true">
+ <xsd:complexType>
+ <xsd:choice maxOccurs="unbounded">
+ <xsd:element name="metadata">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="name" use="required" type="xsd:string" />
+ <xsd:attribute name="type" type="xsd:string" />
+ <xsd:attribute name="mimetype" type="xsd:string" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="assembly">
+ <xsd:complexType>
+ <xsd:attribute name="alias" type="xsd:string" />
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="data">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+ <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+ <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+ <xsd:attribute ref="xml:space" />
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="resheader">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required" />
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:choice>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:schema>
+ <resheader name="resmimetype">
+ <value>text/microsoft-resx</value>
+ </resheader>
+ <resheader name="version">
+ <value>2.0</value>
+ </resheader>
+ <resheader name="reader">
+ <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+ <resheader name="writer">
+ <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+ </resheader>
+</root> \ No newline at end of file
diff --git a/ShiftOS.WinForms/Oobe.cs b/ShiftOS.WinForms/Oobe.cs
index a4d63e0..d5f28f8 100644
--- a/ShiftOS.WinForms/Oobe.cs
+++ b/ShiftOS.WinForms/Oobe.cs
@@ -312,11 +312,15 @@ You must join the digital society, rise up the ranks, and save us.
sve.Codepoints = 0;
sve.Upgrades = new Dictionary<string, bool>();
sve.ID = Guid.NewGuid();
+ sve.StoriesExperienced = new List<string>();
+ sve.StoriesExperienced.Add("mud_fundamentals");
Infobox.Show("Welcome to ShiftOS.", "Welcome to ShiftOS, " + client.GetDisplayName() + ". We have created a save file for you. Now, go on and Shift It Your Way.", () =>
{
sve.StoryPosition = 8675309;
SaveSystem.CurrentSave = sve;
+ Shiftorium.Silent = true;
SaveSystem.SaveGame();
+ Shiftorium.Silent = false;
});
}
diff --git a/ShiftOS.WinForms/OobeStory.cs b/ShiftOS.WinForms/OobeStory.cs
index bab4889..a35e1d8 100644
--- a/ShiftOS.WinForms/OobeStory.cs
+++ b/ShiftOS.WinForms/OobeStory.cs
@@ -120,7 +120,7 @@ namespace ShiftOS.WinForms
Console.Write(" ");
ConsoleEx.BackgroundColor = ConsoleColor.Black;
}
- Engine.AudioManager.PlayStream(Properties.Resources.typesound);
+ Desktop.InvokeOnWorkerThread(() => Engine.AudioManager.PlayStream(Properties.Resources.typesound));
formatProgress++;
Thread.Sleep(175);
}
@@ -135,15 +135,15 @@ namespace ShiftOS.WinForms
{
Console.WriteLine("Creating: " + dir);
Thread.Sleep(125);
- Engine.AudioManager.PlayStream(Properties.Resources.writesound);
+ Desktop.InvokeOnWorkerThread(() => Engine.AudioManager.PlayStream(Properties.Resources.writesound));
}
}
Console.WriteLine();
Console.WriteLine("Next, let's get user information.");
Console.WriteLine();
ShiftOS.Engine.OutOfBoxExperience.PromptForLogin();
-
}
+
private static bool isValid(string text, string chars)
{
foreach(var c in text)
diff --git a/ShiftOS.WinForms/Program.cs b/ShiftOS.WinForms/Program.cs
index b2f064d..ad8fc83 100644
--- a/ShiftOS.WinForms/Program.cs
+++ b/ShiftOS.WinForms/Program.cs
@@ -49,6 +49,7 @@ namespace ShiftOS.WinForms
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//if ANYONE puts code before those two winforms config lines they will be declared a drunky. - Michael
+ LoginManager.Init(new GUILoginFrontend());
CrashHandler.SetGameMetadata(Assembly.GetExecutingAssembly());
SkinEngine.SetIconProber(new ShiftOSIconProvider());
ShiftOS.Engine.AudioManager.Init(new ShiftOSAudioProvider());
diff --git a/ShiftOS.WinForms/Resources/Shiftorium.txt b/ShiftOS.WinForms/Resources/Shiftorium.txt
index b528c72..c3d27ae 100644
--- a/ShiftOS.WinForms/Resources/Shiftorium.txt
+++ b/ShiftOS.WinForms/Resources/Shiftorium.txt
@@ -8,6 +8,13 @@
Category: "Enhancements",
},
{
+ Name: "GUI Based Login Screen",
+ Cost: 500,
+ Description: "Tired of using the text-based login screen in ShiftOS? Well, we have a functioning window manager, and a functioning desktop, why not use these tools to create a functioning and awesome-looking login screen?",
+ Dependencies: "skinning;desktop;wm_free_placement",
+ Category: "Kernel & System"
+ },
+ {
Name: "Shift Screensavers",
Cost: 100,
Description: "This Shifter upgrade will allow you to customize the screensaver.",
diff --git a/ShiftOS.WinForms/ShiftOS.WinForms.csproj b/ShiftOS.WinForms/ShiftOS.WinForms.csproj
index 9fc237f..97cc3c9 100644
--- a/ShiftOS.WinForms/ShiftOS.WinForms.csproj
+++ b/ShiftOS.WinForms/ShiftOS.WinForms.csproj
@@ -70,9 +70,7 @@
<Compile Include="Applications\About.Designer.cs">
<DependentUpon>About.cs</DependentUpon>
</Compile>
- <Compile Include="Applications\TriWrite.cs">
- <SubType>UserControl</SubType>
- </Compile>
+ <Compile Include="Applications\TriWrite.cs" />
<Compile Include="Applications\TriWrite.Designer.cs">
<DependentUpon>TriWrite.cs</DependentUpon>
</Compile>
@@ -178,9 +176,7 @@
<Compile Include="Applications\Notifications.Designer.cs">
<DependentUpon>Notifications.cs</DependentUpon>
</Compile>
- <Compile Include="Applications\Pong.cs">
- <SubType>UserControl</SubType>
- </Compile>
+ <Compile Include="Applications\Pong.cs" />
<Compile Include="Applications\Pong.Designer.cs">
<DependentUpon>Pong.cs</DependentUpon>
</Compile>
@@ -202,9 +198,7 @@
<Compile Include="Applications\Shiftnet.Designer.cs">
<DependentUpon>Shiftnet.cs</DependentUpon>
</Compile>
- <Compile Include="Applications\ShiftoriumFrontend.cs">
- <SubType>UserControl</SubType>
- </Compile>
+ <Compile Include="Applications\ShiftoriumFrontend.cs" />
<Compile Include="Applications\ShiftoriumFrontend.Designer.cs">
<DependentUpon>ShiftoriumFrontend.cs</DependentUpon>
</Compile>
@@ -226,9 +220,7 @@
<Compile Include="Applications\ShopItemCreator.Designer.cs">
<DependentUpon>ShopItemCreator.cs</DependentUpon>
</Compile>
- <Compile Include="Applications\Skin Loader.cs">
- <SubType>UserControl</SubType>
- </Compile>
+ <Compile Include="Applications\Skin Loader.cs" />
<Compile Include="Applications\Skin Loader.Designer.cs">
<DependentUpon>Skin Loader.cs</DependentUpon>
</Compile>
@@ -298,6 +290,12 @@
<Compile Include="DesktopWidgets\CodepointsWidget.Designer.cs">
<DependentUpon>CodepointsWidget.cs</DependentUpon>
</Compile>
+ <Compile Include="DesktopWidgets\HeartbeatWidget.cs">
+ <SubType>UserControl</SubType>
+ </Compile>
+ <Compile Include="DesktopWidgets\HeartbeatWidget.Designer.cs">
+ <DependentUpon>HeartbeatWidget.cs</DependentUpon>
+ </Compile>
<Compile Include="DesktopWidgets\TerminalWidget.cs">
<SubType>UserControl</SubType>
</Compile>
@@ -317,6 +315,12 @@
<DependentUpon>DownloadControl.cs</DependentUpon>
</Compile>
<Compile Include="GUIFunctions.cs" />
+ <Compile Include="GUILogin.cs">
+ <SubType>Form</SubType>
+ </Compile>
+ <Compile Include="GUILogin.Designer.cs">
+ <DependentUpon>GUILogin.cs</DependentUpon>
+ </Compile>
<Compile Include="HackerCommands.cs" />
<Compile Include="IDesktopWidget.cs" />
<Compile Include="JobTasks.cs" />
@@ -502,6 +506,9 @@
<EmbeddedResource Include="DesktopWidgets\CodepointsWidget.resx">
<DependentUpon>CodepointsWidget.cs</DependentUpon>
</EmbeddedResource>
+ <EmbeddedResource Include="DesktopWidgets\HeartbeatWidget.resx">
+ <DependentUpon>HeartbeatWidget.cs</DependentUpon>
+ </EmbeddedResource>
<EmbeddedResource Include="DesktopWidgets\TerminalWidget.resx">
<DependentUpon>TerminalWidget.cs</DependentUpon>
</EmbeddedResource>
@@ -511,6 +518,9 @@
<EmbeddedResource Include="DownloadControl.resx">
<DependentUpon>DownloadControl.cs</DependentUpon>
</EmbeddedResource>
+ <EmbeddedResource Include="GUILogin.resx">
+ <DependentUpon>GUILogin.cs</DependentUpon>
+ </EmbeddedResource>
<EmbeddedResource Include="Oobe.resx">
<DependentUpon>Oobe.cs</DependentUpon>
</EmbeddedResource>
diff --git a/ShiftOS.WinForms/UniteLoginDialog.cs b/ShiftOS.WinForms/UniteLoginDialog.cs
index 4c85005..c78e987 100644
--- a/ShiftOS.WinForms/UniteLoginDialog.cs
+++ b/ShiftOS.WinForms/UniteLoginDialog.cs
@@ -9,6 +9,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using ShiftOS.Engine;
using System.Net;
+using ShiftOS.Objects;
namespace ShiftOS.WinForms
{
@@ -59,7 +60,7 @@ namespace ShiftOS.WinForms
try
{
- var webrequest = HttpWebRequest.Create("http://getshiftos.ml/Auth/Login?appname=ShiftOS&appdesc=ShiftOS+client&version=1_0_beta_2_4");
+ var webrequest = HttpWebRequest.Create(UserConfig.Get().UniteUrl + "/Auth/Login?appname=ShiftOS&appdesc=ShiftOS+client&version=1_0_beta_2_4");
string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{u}:{p}"));
webrequest.Headers.Add("Authentication: Basic " + base64);
var response = webrequest.GetResponse();
diff --git a/ShiftOS.WinForms/UniteSignupDialog.cs b/ShiftOS.WinForms/UniteSignupDialog.cs
index a46a9b0..7d0fd33 100644
--- a/ShiftOS.WinForms/UniteSignupDialog.cs
+++ b/ShiftOS.WinForms/UniteSignupDialog.cs
@@ -10,6 +10,7 @@ using System.Windows.Forms;
using ShiftOS.Engine;
using Newtonsoft.Json;
using System.Net;
+using ShiftOS.Objects;
namespace ShiftOS.WinForms
{
@@ -99,7 +100,7 @@ namespace ShiftOS.WinForms
try
{
- var webrequest = HttpWebRequest.Create("http://getshiftos.ml/Auth/Register?appname=ShiftOS&appdesc=ShiftOS+client&version=1_0_beta_2_4&displayname=" + txtdisplay.Text + "&sysname=" + txtsysname.Text);
+ var webrequest = HttpWebRequest.Create(UserConfig.Get().UniteUrl + "/Auth/Register?appname=ShiftOS&appdesc=ShiftOS+client&version=1_0_beta_2_4&displayname=" + txtdisplay.Text + "&sysname=" + txtsysname.Text);
string base64 = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{u}:{p}"));
webrequest.Headers.Add("Authentication: Basic " + base64);
var response = webrequest.GetResponse();
diff --git a/ShiftOS.WinForms/WindowBorder.cs b/ShiftOS.WinForms/WindowBorder.cs
index 25c7639..40dc629 100644
--- a/ShiftOS.WinForms/WindowBorder.cs
+++ b/ShiftOS.WinForms/WindowBorder.cs
@@ -515,6 +515,17 @@ namespace ShiftOS.WinForms
if(resizing == true)
{
this.Width += e.X;
+ switch (LoadedSkin.TitleTextCentered)
+ {
+ case false:
+ lbtitletext.Location = new Point(16 + LoadedSkin.TitlebarIconFromSide.X + LoadedSkin.TitleTextLeft.X,
+ LoadedSkin.TitleTextLeft.Y);
+ break;
+ default:
+ lbtitletext.Left = (pnltitle.Width - lbtitletext.Width) / 2;
+ lbtitletext.Top = LoadedSkin.TitleTextLeft.Y;
+ break;
+ }
}
}
@@ -522,6 +533,17 @@ namespace ShiftOS.WinForms
{
resizing = false;
pnlcontents.Show();
+ switch (LoadedSkin.TitleTextCentered)
+ {
+ case false:
+ lbtitletext.Location = new Point(16 + LoadedSkin.TitlebarIconFromSide.X + LoadedSkin.TitleTextLeft.X,
+ LoadedSkin.TitleTextLeft.Y);
+ break;
+ default:
+ lbtitletext.Left = (pnltitle.Width - lbtitletext.Width) / 2;
+ lbtitletext.Top = LoadedSkin.TitleTextLeft.Y;
+ break;
+ }
}
private void pnlleft_MouseMove(object sender, MouseEventArgs e)
@@ -530,6 +552,17 @@ namespace ShiftOS.WinForms
{
this.Left += e.X;
this.Width -= e.X;
+ switch (LoadedSkin.TitleTextCentered)
+ {
+ case false:
+ lbtitletext.Location = new Point(16 + LoadedSkin.TitlebarIconFromSide.X + LoadedSkin.TitleTextLeft.X,
+ LoadedSkin.TitleTextLeft.Y);
+ break;
+ default:
+ lbtitletext.Left = (pnltitle.Width - lbtitletext.Width) / 2;
+ lbtitletext.Top = LoadedSkin.TitleTextLeft.Y;
+ break;
+ }
}
}
@@ -547,6 +580,17 @@ namespace ShiftOS.WinForms
{
this.Width += e.X;
this.Height += e.Y;
+ switch (LoadedSkin.TitleTextCentered)
+ {
+ case false:
+ lbtitletext.Location = new Point(16 + LoadedSkin.TitlebarIconFromSide.X + LoadedSkin.TitleTextLeft.X,
+ LoadedSkin.TitleTextLeft.Y);
+ break;
+ default:
+ lbtitletext.Left = (pnltitle.Width - lbtitletext.Width) / 2;
+ lbtitletext.Top = LoadedSkin.TitleTextLeft.Y;
+ break;
+ }
}
}
@@ -557,6 +601,17 @@ namespace ShiftOS.WinForms
this.Width -= e.X;
this.Height += e.Y;
this.Left += e.X;
+ switch (LoadedSkin.TitleTextCentered)
+ {
+ case false:
+ lbtitletext.Location = new Point(16 + LoadedSkin.TitlebarIconFromSide.X + LoadedSkin.TitleTextLeft.X,
+ LoadedSkin.TitleTextLeft.Y);
+ break;
+ default:
+ lbtitletext.Left = (pnltitle.Width - lbtitletext.Width) / 2;
+ lbtitletext.Top = LoadedSkin.TitleTextLeft.Y;
+ break;
+ }
}
}