aboutsummaryrefslogtreecommitdiff
path: root/ShiftOS.WinForms/Applications
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-04-23 08:06:00 -0400
committerMichael <[email protected]>2017-04-23 08:06:06 -0400
commitba0ae29bbb7eee83c5a4969316d97b43b5f18ba0 (patch)
tree04634d0ce85039970f3c6e63907c253d42565ea0 /ShiftOS.WinForms/Applications
parent1fd16be65fa50fcfa3fd2d1fb2d189aad47fbfb7 (diff)
downloadshiftos_thereturn-ba0ae29bbb7eee83c5a4969316d97b43b5f18ba0.tar.gz
shiftos_thereturn-ba0ae29bbb7eee83c5a4969316d97b43b5f18ba0.tar.bz2
shiftos_thereturn-ba0ae29bbb7eee83c5a4969316d97b43b5f18ba0.zip
Fix widget stacking
Diffstat (limited to 'ShiftOS.WinForms/Applications')
-rw-r--r--ShiftOS.WinForms/Applications/Terminal.cs295
1 files changed, 202 insertions, 93 deletions
diff --git a/ShiftOS.WinForms/Applications/Terminal.cs b/ShiftOS.WinForms/Applications/Terminal.cs
index 30dbd82..cae0bda 100644
--- a/ShiftOS.WinForms/Applications/Terminal.cs
+++ b/ShiftOS.WinForms/Applications/Terminal.cs
@@ -45,11 +45,13 @@ using ShiftOS.Engine;
using ShiftOS.Objects;
using ShiftOS.WinForms.Tools;
-namespace ShiftOS.WinForms.Applications {
+namespace ShiftOS.WinForms.Applications
+{
[Launcher("Terminal", false, null, "Utilities")]
[WinOpen("terminal")]
[DefaultIcon("iconTerminal")]
- public partial class Terminal : UserControl, IShiftOSWindow {
+ public partial class Terminal : UserControl, IShiftOSWindow
+ {
public static Stack<string> ConsoleStack = new Stack<string>();
public static System.Windows.Forms.Timer ti = new System.Windows.Forms.Timer();
@@ -60,72 +62,97 @@ namespace ShiftOS.WinForms.Applications {
public static string RemoteGuid = "";
[Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")]
- public static bool PrefixEnabled {
- get {
+ public static bool PrefixEnabled
+ {
+ get
+ {
return TerminalBackend.PrefixEnabled;
}
- set {
+ set
+ {
TerminalBackend.PrefixEnabled = value;
}
}
[Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")]
- public static bool InStory {
- get {
+ public static bool InStory
+ {
+ get
+ {
return TerminalBackend.InStory;
}
- set {
+ set
+ {
TerminalBackend.InStory = value;
}
}
[Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")]
- public static string LastCommand {
- get {
+ public static string LastCommand
+ {
+ get
+ {
return TerminalBackend.LastCommand;
}
- set {
+ set
+ {
TerminalBackend.LastCommand = value;
}
}
- public int TutorialProgress {
- get {
+ public int TutorialProgress
+ {
+ get
+ {
throw new NotImplementedException();
}
- set {
+ set
+ {
throw new NotImplementedException();
}
}
[Obsolete("This is used for compatibility with old parts of the backend. Please use TerminalBackend instead.")]
- public static void InvokeCommand(string text) {
+ public static void InvokeCommand(string text)
+ {
TerminalBackend.InvokeCommand(text);
}
- public Terminal() {
+ public Terminal()
+ {
InitializeComponent();
- SaveSystem.GameReady += () => {
- try {
- this.Invoke(new Action(() => {
+ SaveSystem.GameReady += () =>
+ {
+ try
+ {
+ this.Invoke(new Action(() =>
+ {
ResetAllKeywords();
rtbterm.Text = "";
- TerminalBackend.PrefixEnabled = true;
- TerminalBackend.InStory = false;
- TerminalBackend.PrintPrompt();
- if (Shiftorium.UpgradeInstalled("wm_free_placement"))
+ if (!Shiftorium.UpgradeInstalled("desktop"))
{
- this.ParentForm.Width = 640;
- this.ParentForm.Height = 480;
- this.ParentForm.Left = (Screen.PrimaryScreen.Bounds.Width - 640) / 2;
- this.ParentForm.Top = (Screen.PrimaryScreen.Bounds.Height - 480) / 2;
+ TerminalBackend.PrefixEnabled = true;
+ TerminalBackend.InStory = false;
+ TerminalBackend.PrintPrompt();
+ if (Shiftorium.UpgradeInstalled("wm_free_placement"))
+ {
+ this.ParentForm.Width = 640;
+ this.ParentForm.Height = 480;
+ this.ParentForm.Left = (Screen.PrimaryScreen.Bounds.Width - 640) / 2;
+ this.ParentForm.Top = (Screen.PrimaryScreen.Bounds.Height - 480) / 2;
+ }
+ }
+ else
+ {
+ AppearanceManager.Close(this);
}
}));
- } catch { }
+ }
+ catch { }
};
@@ -133,21 +160,32 @@ namespace ShiftOS.WinForms.Applications {
}
- public void FocusOnTerminal() {
+ public void FocusOnTerminal()
+ {
rtbterm.Focus();
}
- public static string GetTime() {
+ public static string GetTime()
+ {
var time = DateTime.Now;
- if (ShiftoriumFrontend.UpgradeInstalled("full_precision_time")) {
+ if (ShiftoriumFrontend.UpgradeInstalled("full_precision_time"))
+ {
return DateTime.Now.ToString("h:mm:ss tt");
- } else if (ShiftoriumFrontend.UpgradeInstalled("clock_am_and_pm")) {
+ }
+ else if (ShiftoriumFrontend.UpgradeInstalled("clock_am_and_pm"))
+ {
return time.TimeOfDay.TotalHours > 12 ? $"{time.Hour - 12} PM" : $"{time.Hour} AM";
- } else if (ShiftoriumFrontend.UpgradeInstalled("clock_hours")) {
+ }
+ else if (ShiftoriumFrontend.UpgradeInstalled("clock_hours"))
+ {
return ((int)time.TimeOfDay.TotalHours).ToString();
- } else if (ShiftoriumFrontend.UpgradeInstalled("clock_minutes")) {
+ }
+ else if (ShiftoriumFrontend.UpgradeInstalled("clock_minutes"))
+ {
return ((int)time.TimeOfDay.TotalMinutes).ToString();
- } else if (ShiftoriumFrontend.UpgradeInstalled("clock")) {
+ }
+ else if (ShiftoriumFrontend.UpgradeInstalled("clock"))
+ {
return ((int)time.TimeOfDay.TotalSeconds).ToString();
}
@@ -157,7 +195,8 @@ namespace ShiftOS.WinForms.Applications {
public static event TextSentEventHandler TextSent;
- public void ResetAllKeywords() {
+ public void ResetAllKeywords()
+ {
string primary = SaveSystem.CurrentSave.Username + " ";
string secondary = "shiftos ";
@@ -166,18 +205,27 @@ namespace ShiftOS.WinForms.Applications {
var types = asm.GetTypes();
- foreach (var type in types) {
- foreach (var a in type.GetCustomAttributes(false)) {
- if (ShiftoriumFrontend.UpgradeAttributesUnlocked(type)) {
- if (a is Namespace) {
+ foreach (var type in types)
+ {
+ foreach (var a in type.GetCustomAttributes(false))
+ {
+ if (ShiftoriumFrontend.UpgradeAttributesUnlocked(type))
+ {
+ if (a is Namespace)
+ {
var ns = a as Namespace;
- if (!primary.Contains(ns.name)) {
+ if (!primary.Contains(ns.name))
+ {
primary += ns.name + " ";
}
- foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.Static)) {
- if (ShiftoriumFrontend.UpgradeAttributesUnlocked(method)) {
- foreach (var ma in method.GetCustomAttributes(false)) {
- if (ma is Command) {
+ foreach (var method in type.GetMethods(BindingFlags.Public | BindingFlags.Static))
+ {
+ if (ShiftoriumFrontend.UpgradeAttributesUnlocked(method))
+ {
+ foreach (var ma in method.GetCustomAttributes(false))
+ {
+ if (ma is Command)
+ {
var cmd = ma as Command;
if (!secondary.Contains(cmd.name))
secondary += cmd.name + " ";
@@ -193,14 +241,19 @@ namespace ShiftOS.WinForms.Applications {
}
- public static void MakeWidget(Controls.TerminalBox txt) {
+ public static void MakeWidget(Controls.TerminalBox txt)
+ {
AppearanceManager.StartConsoleOut();
- txt.GotFocus += (o, a) => {
+ txt.GotFocus += (o, a) =>
+ {
AppearanceManager.ConsoleOut = txt;
};
- txt.KeyDown += (o, a) => {
- if (a.KeyCode == Keys.Enter) {
- try {
+ txt.KeyDown += (o, a) =>
+ {
+ if (a.KeyCode == Keys.Enter)
+ {
+ try
+ {
a.SuppressKeyPress = true;
Console.WriteLine("");
var text = txt.Lines.ToArray();
@@ -208,29 +261,44 @@ namespace ShiftOS.WinForms.Applications {
var text3 = "";
var text4 = Regex.Replace(text2, @"\t|\n|\r", "");
- if (IsInRemoteSystem == true) {
- ServerManager.SendMessage("trm_invcmd", JsonConvert.SerializeObject(new {
+ if (IsInRemoteSystem == true)
+ {
+ ServerManager.SendMessage("trm_invcmd", JsonConvert.SerializeObject(new
+ {
guid = RemoteGuid,
command = text4
}));
- } else {
- if (TerminalBackend.PrefixEnabled) {
+ }
+ else
+ {
+ if (TerminalBackend.PrefixEnabled)
+ {
text3 = text4.Remove(0, $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ".Length);
}
TerminalBackend.LastCommand = text3;
TextSent?.Invoke(text4);
- if (TerminalBackend.InStory == false) {
- if(text3 == "stop theme") {
+ if (TerminalBackend.InStory == false)
+ {
+ if (text3 == "stop theme")
+ {
CurrentCommandParser.parser = null;
- }else {
- if(CurrentCommandParser.parser == null) {
+ }
+ else
+ {
+ if (CurrentCommandParser.parser == null)
+ {
TerminalBackend.InvokeCommand(text3);
- } else {
+ }
+ else
+ {
var result = CurrentCommandParser.parser.ParseCommand(text3);
- if (result.Equals(default(KeyValuePair<KeyValuePair<string, string>, Dictionary<string, string>>))) {
+ if (result.Equals(default(KeyValuePair<KeyValuePair<string, string>, Dictionary<string, string>>)))
+ {
Console.WriteLine("Syntax Error: Syntax Error");
- } else {
+ }
+ else
+ {
TerminalBackend.InvokeCommand(result.Key.Key, result.Key.Value, result.Value);
}
}
@@ -241,23 +309,35 @@ namespace ShiftOS.WinForms.Applications {
TerminalBackend.PrintPrompt();
}
}
- } catch {
}
- } else if (a.KeyCode == Keys.Back) {
- try {
+ catch
+ {
+ }
+ }
+ else if (a.KeyCode == Keys.Back)
+ {
+ try
+ {
var tostring3 = txt.Lines[txt.Lines.Length - 1];
var tostringlen = tostring3.Length + 1;
var workaround = $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ";
var derp = workaround.Length + 1;
- if (tostringlen != derp) {
+ if (tostringlen != derp)
+ {
AppearanceManager.CurrentPosition--;
- } else {
+ }
+ else
+ {
a.SuppressKeyPress = true;
}
- } catch {
+ }
+ catch
+ {
Debug.WriteLine("Drunky alert in terminal.");
}
- } else if (a.KeyCode == Keys.Left) {
+ }
+ else if (a.KeyCode == Keys.Left)
+ {
var getstring = txt.Lines[txt.Lines.Length - 1];
var stringlen = getstring.Length + 1;
var header = $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ";
@@ -266,19 +346,27 @@ namespace ShiftOS.WinForms.Applications {
var remstrlen = txt.TextLength - stringlen;
var finalnum = selstart - remstrlen;
- if (finalnum != headerlen) {
+ if (finalnum != headerlen)
+ {
AppearanceManager.CurrentPosition--;
- } else {
+ }
+ else
+ {
a.SuppressKeyPress = true;
}
- } else if (a.KeyCode == Keys.Up) {
+ }
+ else if (a.KeyCode == Keys.Up)
+ {
var tostring3 = txt.Lines[txt.Lines.Length - 1];
if (tostring3 == $"{SaveSystem.CurrentSave.Username}@{SaveSystem.CurrentSave.SystemName}:~$ ")
Console.Write(TerminalBackend.LastCommand);
a.SuppressKeyPress = true;
- } else {
- if (TerminalBackend.InStory) {
+ }
+ else
+ {
+ if (TerminalBackend.InStory)
+ {
a.SuppressKeyPress = true;
}
AppearanceManager.CurrentPosition++;
@@ -287,7 +375,7 @@ namespace ShiftOS.WinForms.Applications {
};
AppearanceManager.ConsoleOut = txt;
-
+
txt.Focus();
txt.Font = LoadedSkin.TerminalFont;
@@ -296,12 +384,17 @@ namespace ShiftOS.WinForms.Applications {
}
- private void Terminal_Load(object sender, EventArgs e) {
- ServerManager.MessageReceived += (msg) => {
- if (msg.Name == "trm_handshake_guid") {
+ private void Terminal_Load(object sender, EventArgs e)
+ {
+ ServerManager.MessageReceived += (msg) =>
+ {
+ if (msg.Name == "trm_handshake_guid")
+ {
IsInRemoteSystem = true;
RemoteGuid = msg.GUID;
- } else if (msg.Name == "trm_handshake_stop") {
+ }
+ else if (msg.Name == "trm_handshake_stop")
+ {
IsInRemoteSystem = false;
RemoteGuid = "";
}
@@ -309,17 +402,21 @@ namespace ShiftOS.WinForms.Applications {
}
- private void Terminal_FormClosing(object sender, FormClosingEventArgs e) {
+ private void Terminal_FormClosing(object sender, FormClosingEventArgs e)
+ {
ti.Stop();
IsInRemoteSystem = false;
RemoteGuid = "";
}
- public void OnLoad() {
+ public void OnLoad()
+ {
MakeWidget(rtbterm);
- if (SaveSystem.CurrentSave != null) {
- if (!ShiftoriumFrontend.UpgradeInstalled("window_manager")) {
+ if (SaveSystem.CurrentSave != null)
+ {
+ if (!ShiftoriumFrontend.UpgradeInstalled("window_manager"))
+ {
rtbterm.Select(rtbterm.TextLength, 0);
}
TerminalBackend.PrintPrompt();
@@ -328,8 +425,10 @@ namespace ShiftOS.WinForms.Applications {
}
- public void OnSkinLoad() {
- try {
+ public void OnSkinLoad()
+ {
+ try
+ {
rtbterm.Font = LoadedSkin.TerminalFont;
rtbterm.ForeColor = ControlManager.ConvertColor(LoadedSkin.TerminalForeColorCC);
rtbterm.BackColor = ControlManager.ConvertColor(LoadedSkin.TerminalBackColorCC);
@@ -341,19 +440,27 @@ namespace ShiftOS.WinForms.Applications {
}
- public bool OnUnload() {
- if (SaveSystem.ShuttingDown == false) {
- if (!ShiftoriumFrontend.UpgradeInstalled("desktop")) {
- if (AppearanceManager.OpenForms.Count <= 1) {
+ public bool OnUnload()
+ {
+ if (SaveSystem.ShuttingDown == false)
+ {
+ if (!ShiftoriumFrontend.UpgradeInstalled("desktop"))
+ {
+ if (AppearanceManager.OpenForms.Count <= 1)
+ {
Console.WriteLine("");
Console.WriteLine("{WIN_CANTCLOSETERMINAL}");
- try {
+ try
+ {
Console.WriteLine("");
- if (TerminalBackend.PrefixEnabled) {
+ if (TerminalBackend.PrefixEnabled)
+ {
Console.Write($"{SaveSystem.CurrentSave.Username}@shiftos:~$ ");
}
- } catch (Exception ex) {
+ }
+ catch (Exception ex)
+ {
Console.WriteLine(ex);
}
return false;
@@ -363,10 +470,12 @@ namespace ShiftOS.WinForms.Applications {
return true;
}
- public void OnUpgrade() {
+ public void OnUpgrade()
+ {
}
- private void rtbterm_TextChanged(object sender, EventArgs e) {
+ private void rtbterm_TextChanged(object sender, EventArgs e)
+ {
}