diff options
Diffstat (limited to 'source/WindowsFormsApplication1/AlternateDesktop.cs')
| -rw-r--r-- | source/WindowsFormsApplication1/AlternateDesktop.cs | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/source/WindowsFormsApplication1/AlternateDesktop.cs b/source/WindowsFormsApplication1/AlternateDesktop.cs new file mode 100644 index 0000000..f3c7b73 --- /dev/null +++ b/source/WindowsFormsApplication1/AlternateDesktop.cs @@ -0,0 +1,165 @@ +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; + +namespace ShiftOS +{ + public partial class AlternateDesktop : Form + { + public AlternateDesktop() + { + InitializeComponent(); + } + + private void ClockTick_Tick(object sender, EventArgs e) + { + lbclock.Text = API.GetTime(); + + } + + public void GetApps() + { + pnlsidebar.Controls.Clear(); + API.GetAppLauncherItems(); + Panel appbtn = new Panel(); + appbtn.BackColor = Color.Black; + appbtn.Size = new Size(32, 32); + appbtn.Visible = true; + appbtn.Name = "ashow"; + appbtn.Click += new EventHandler(this.SidebarButton_Click); + + pnlsidebar.Controls.Add(appbtn); + foreach(ApplauncherItem itm in API.AppLauncherItems) + { + if(itm.Display == true) + { + Panel btn = new Panel(); + btn.BackColor = Color.Gray; + btn.BackgroundImage = itm.Icon; + btn.BackgroundImageLayout = ImageLayout.Stretch; + btn.Size = new Size(32, 32); + btn.Name = $"al_{new Random().Next(1000, 9999)}"; + btn.Tag = itm; + btn.MouseMove += new MouseEventHandler(this.SidebarButton_Hover); + btn.MouseLeave += new EventHandler(this.SidebarButton_Leave); + btn.Click += new EventHandler(this.SidebarButton_Click); + pnlsidebar.Controls.Add(btn); + btn.Show(); + } + } + foreach(PanelButton pbtn in API.PanelButtons) + { + Panel btn = new Panel(); + btn.Tag = pbtn; + btn.Name = $"pnl_{new Random().Next(1000, 9999)}"; + btn.BackgroundImage = pbtn.Icon; + btn.BackgroundImageLayout = ImageLayout.Stretch; + btn.BackColor = Color.Black; + btn.Size = new Size(32, 32); + btn.MouseMove += new MouseEventHandler(this.SidebarButton_Hover); + btn.MouseLeave += new EventHandler(this.SidebarButton_Leave); + btn.Click += new EventHandler(this.SidebarButton_Click); + pnlsidebar.Controls.Add(btn); + btn.Show(); + } + } + + public void SidebarButton_Hover(object sender, MouseEventArgs e) + { + Panel s = (Panel)sender; + int labelLoc = pnlcontext.Height + (s.Bottom - (s.Height / 2)); + lblapplabel.Location = new Point(pnlsidebar.Width + 5, labelLoc); + if(s.Name.Contains("al")) + { + var itm = (ApplauncherItem)s.Tag; + lblapplabel.Text = itm.Name; + } + else + { + var itm = (PanelButton)s.Tag; + lblapplabel.Text = itm.Name; + } + lblapplabel.Visible = true; + } + + public void SidebarButton_Click(object sender, EventArgs e) + { + var s = (Panel)sender; + if (s.Name.Contains("al")) + { + var itm = (ApplauncherItem)s.Tag; + var li = new LuaInterpreter(); + li.mod(itm.Lua); + li = null; + } + else if(s.Name.Contains("ashow")) + { + pnlapplauncher.Show(); + foreach(Control ctrl in this.Controls) + { + ctrl.MouseDown += (object se, MouseEventArgs a) => + { + pnlapplauncher.Hide(); + }; + } + } + else + { + try + { + PanelButton pbtn = (PanelButton)s.Tag; + API.ToggleMinimized(pbtn.FormToManage); + } + catch (Exception ex) + { + + } + } + } + + public void SidebarButton_Leave(object sender, EventArgs e) + { + lblapplabel.Hide(); + } + + private void AlternateDesktop_Load(object sender, EventArgs e) + { + this.ShowInTaskbar = false; + this.FormBorderStyle = FormBorderStyle.None; + this.WindowState = FormWindowState.Maximized; + GetApps(); + } + + private void apptick_Tick(object sender, EventArgs e) + { + //GetApps(); + } + + private bool unity = false; + + public void ToggleUnityMode() + { + if (unity == false) + { + unity = true; + this.BackColor = Skinning.Utilities.globaltransparencycolour; + this.BackgroundImage = null; + this.TransparencyKey = Skinning.Utilities.globaltransparencycolour; + } + else + { + unity = false; + this.BackColor = API.CurrentSkin.desktopbackgroundcolour; + this.BackgroundImage = API.CurrentSkinImages.desktopbackground; + this.BackgroundImageLayout = (ImageLayout)API.CurrentSkin.desktopbackgroundlayout; + this.TransparencyKey = Skinning.Utilities.globaltransparencycolour; + } + } + } +} |
