1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
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.Engine;
using ShiftOS.Objects.ShiftFS;
using Newtonsoft.Json;
namespace ShiftOS.WinForms.Applications
{
[Launcher("Experience Shifter", false, "", "Customization")]
[DefaultTitle("Experience Shifter")]
[DefaultIcon("iconShifter")]
public partial class ExperienceShifter : UserControl, IShiftOSWindow
{
public ExperienceShifter()
{
InitializeComponent();
}
private string currentUI = "desktop";
public void SetupUI()
{
switch (currentUI)
{
case "desktop":
pnldesktop.BringToFront();
PopulateDesktops();
break;
case "applauncher":
pnlapplauncher.BringToFront();
PopulateLaunchers();
break;
}
}
public void PopulateDesktops()
{
lbdesktops.Items.Clear();
foreach(var desk in GetAllDesktops())
{
lbdesktops.Items.Add(desk.DesktopName);
}
}
public List<IDesktop> GetAllDesktops()
{
List<IDesktop> dekstops = new List<IDesktop>();
dekstops.Add(new WinformsDesktop());
if (!Utils.FileExists(Paths.GetPath("conf.sft")))
Utils.WriteAllText(Paths.GetPath("conf.sft"), JsonConvert.SerializeObject(new ShiftOSConfigFile(), Formatting.Indented));
foreach(var script in JsonConvert.DeserializeObject<ShiftOSConfigFile>(Utils.ReadAllText(Paths.GetPath("conf.sft"))).Desktops)
{
if(Utils.FileExists(script))
dekstops.Add(new LuaDesktop(script));
}
return dekstops;
}
public void PopulateLaunchers()
{
lblaunchers.Items.Clear();
lbdesktops.Items.Add("ShiftOS App Launcher");
}
public void OnLoad()
{
SetupUI();
}
public void OnSkinLoad()
{
}
public bool OnUnload()
{
return true;
}
public void OnUpgrade()
{
}
private void desktopToolStripMenuItem_Click(object sender, EventArgs e)
{
currentUI = "desktop";
SetupUI();
}
private void appLauncherToolStripMenuItem_Click(object sender, EventArgs e)
{
currentUI = "applauncher";
SetupUI();
}
private void addToolStripMenuItem_Click(object sender, EventArgs e)
{
FileSkimmerBackend.GetFile(new[] { ".lua" }, FileOpenerStyle.Open, new Action<string>((script) =>
{
ShiftOSConfigFile conf = new WinForms.ShiftOSConfigFile();
if (Utils.FileExists(Paths.GetPath("conf.sft")))
{
conf = JsonConvert.DeserializeObject<ShiftOSConfigFile>(Utils.ReadAllText(Paths.GetPath("conf.sft")));
}
conf.Desktops.Add(script);
Utils.WriteAllText(Paths.GetPath("conf.sft"), JsonConvert.SerializeObject(conf, Formatting.Indented));
}));
}
private void lbdesktops_SelectedIndexChanged(object sender, EventArgs e)
{
foreach(var desk in GetAllDesktops())
{
try
{
if(desk.DesktopName == lbdesktops.SelectedItem.ToString())
{
Desktop.Init(desk, true);
}
}
catch
{
}
}
}
}
}
|