This commit is contained in:
Aren 2017-02-08 18:22:33 +01:00
commit f66cf31e5d
3 changed files with 94 additions and 72 deletions

View file

@ -27,10 +27,13 @@ namespace ShiftOS.WinForms
SetupUI();
ServerManager.MessageReceived += (msg) =>
{
if (msg.Name == "mud_notfound")
this.Invoke(new Action(() => { MUDUserFound?.Invoke(false); }));
else if (msg.Name == "mud_found")
this.Invoke(new Action(() => { MUDUserFound?.Invoke(true); }));
if (this.Visible == true)
{
if (msg.Name == "mud_notfound")
this.Invoke(new Action(() => { MUDUserFound?.Invoke(false); }));
else if (msg.Name == "mud_found")
this.Invoke(new Action(() => { MUDUserFound?.Invoke(true); }));
}
};
}

View file

@ -128,67 +128,70 @@ namespace ShiftOS.WinForms
public void PopulatePanelButtons()
{
panelbuttonholder.Controls.Clear();
if (Shiftorium.UpgradeInstalled("wm_panel_buttons"))
if (Shiftorium.IsInitiated == true)
{
foreach (WindowBorder form in Engine.AppearanceManager.OpenForms)
if (Shiftorium.UpgradeInstalled("wm_panel_buttons"))
{
if (form != null)
foreach (WindowBorder form in Engine.AppearanceManager.OpenForms)
{
if (form.Visible == true)
if (form != null)
{
EventHandler onClick = (o, a) =>
if (form.Visible == true)
{
if(form == focused)
EventHandler onClick = (o, a) =>
{
if (form.IsMinimized)
if (form == focused)
{
RestoreWindow(form);
if (form.IsMinimized)
{
RestoreWindow(form);
}
else
{
MinimizeWindow(form);
}
}
else
{
MinimizeWindow(form);
form.BringToFront();
focused = form;
}
}
else
{
form.BringToFront();
focused = form;
}
};
};
var pnlbtn = new Panel();
pnlbtn.Margin = new Padding(2, LoadedSkin.PanelButtonFromTop, 0, 0);
pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
pnlbtn.BackgroundImage = GetImage("panelbutton");
pnlbtn.BackgroundImageLayout = GetImageLayout("panelbutton");
var pnlbtn = new Panel();
pnlbtn.Margin = new Padding(2, LoadedSkin.PanelButtonFromTop, 0, 0);
pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
pnlbtn.BackgroundImage = GetImage("panelbutton");
pnlbtn.BackgroundImageLayout = GetImageLayout("panelbutton");
var pnlbtntext = new Label();
pnlbtntext.Text = NameChangerBackend.GetName(form.ParentWindow);
pnlbtntext.AutoSize = true;
pnlbtntext.Location = LoadedSkin.PanelButtonFromLeft;
pnlbtntext.ForeColor = LoadedSkin.PanelButtonTextColor;
pnlbtntext.Font = LoadedSkin.PanelButtonFont;
pnlbtntext.BackColor = Color.Transparent;
pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
if (pnlbtn.BackgroundImage != null)
{
var pnlbtntext = new Label();
pnlbtntext.Text = NameChangerBackend.GetName(form.ParentWindow);
pnlbtntext.AutoSize = true;
pnlbtntext.Location = LoadedSkin.PanelButtonFromLeft;
pnlbtntext.ForeColor = LoadedSkin.PanelButtonTextColor;
pnlbtntext.Font = LoadedSkin.PanelButtonFont;
pnlbtntext.BackColor = Color.Transparent;
}
pnlbtn.Size = LoadedSkin.PanelButtonSize;
pnlbtn.Tag = "keepbg";
pnlbtntext.Tag = "keepbg";
pnlbtn.Controls.Add(pnlbtntext);
this.panelbuttonholder.Controls.Add(pnlbtn);
pnlbtn.Show();
pnlbtntext.Show();
if (Shiftorium.UpgradeInstalled("useful_panel_buttons"))
{
pnlbtn.Click += onClick;
pnlbtntext.Click += onClick;
pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
if (pnlbtn.BackgroundImage != null)
{
pnlbtntext.BackColor = Color.Transparent;
}
pnlbtn.Size = LoadedSkin.PanelButtonSize;
pnlbtn.Tag = "keepbg";
pnlbtntext.Tag = "keepbg";
pnlbtn.Controls.Add(pnlbtntext);
this.panelbuttonholder.Controls.Add(pnlbtn);
pnlbtn.Show();
pnlbtntext.Show();
if (Shiftorium.UpgradeInstalled("useful_panel_buttons"))
{
pnlbtn.Click += onClick;
pnlbtntext.Click += onClick;
}
SetCursors(pnlbtn);
}
SetCursors(pnlbtn);
}
}
}
@ -210,7 +213,7 @@ namespace ShiftOS.WinForms
//upgrades
if (SaveSystem.CurrentSave != null)
if (Shiftorium.IsInitiated == true)
{
desktoppanel.Visible = Shiftorium.UpgradeInstalled("desktop");
lbtime.Visible = Shiftorium.UpgradeInstalled("desktop_clock_widget");
@ -327,34 +330,41 @@ namespace ShiftOS.WinForms
foreach(var kv in sortedItems)
{
if (Shiftorium.UpgradeInstalled("app_launcher_categories"))
if (Shiftorium.IsInitiated == true)
{
var cat = GetALCategoryWithName(kv.Key);
foreach(var subItem in kv.Value)
if (Shiftorium.UpgradeInstalled("app_launcher_categories"))
{
cat.DropDownItems.Add(subItem);
var cat = GetALCategoryWithName(kv.Key);
foreach (var subItem in kv.Value)
{
cat.DropDownItems.Add(subItem);
}
}
}
else
{
foreach(var subItem in kv.Value)
else
{
apps.DropDownItems.Add(subItem);
foreach (var subItem in kv.Value)
{
apps.DropDownItems.Add(subItem);
}
}
}
}
if (Shiftorium.UpgradeInstalled("al_shutdown"))
if (Shiftorium.IsInitiated == true)
{
apps.DropDownItems.Add(new ToolStripSeparator());
var item = new ToolStripMenuItem();
item.Text = Localization.Parse("{SHUTDOWN}");
item.Click += (o, a) =>
if (Shiftorium.UpgradeInstalled("al_shutdown"))
{
TerminalBackend.InvokeCommand("sos.shutdown");
};
apps.DropDownItems.Add(item);
apps.DropDownItems.Add(new ToolStripSeparator());
var item = new ToolStripMenuItem();
item.Text = Localization.Parse("{SHUTDOWN}");
item.Click += (o, a) =>
{
TerminalBackend.InvokeCommand("sos.shutdown");
};
apps.DropDownItems.Add(item);
}
}
}

View file

@ -191,19 +191,18 @@ namespace ShiftOS.Engine
{
if (SaveSystem.CurrentSave != null)
{
if (SaveSystem.CurrentSave.Upgrades == null)
if (!IsInitiated)
Init();
}
try
{
return SaveSystem.CurrentSave.Upgrades[id];
}
catch (Exception ex)
catch
{
if(LogOrphanedUpgrades == true)
Console.WriteLine($"WHOA, Developers! Upgrade ID '{id}' is unaccounted for in the Shiftorium.txt resource!");
return false;
throw new ShiftoriumUpgradeLookupException(id);
}
}
//LEAVE THIS AS FALSE. The game will set it when the save is loaded.
@ -238,6 +237,16 @@ namespace ShiftOS.Engine
List<ShiftoriumUpgrade> GetDefaults();
}
public class ShiftoriumUpgradeLookupException : Exception
{
public ShiftoriumUpgradeLookupException(string id) : base("A shiftorium upgrade of ID \"" + id + "\" was not found in the system.")
{
ID = id;
}
public string ID { get; private set; }
}
public class ShiftoriumUpgrade
{
public string Name { get; set; }