210 lines
5.9 KiB
C#
210 lines
5.9 KiB
C#
using AppLauncher.Models;
|
|
using AppLauncher.Windows.Forms;
|
|
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Diagnostics;
|
|
using System.Drawing;
|
|
using System.Drawing.Drawing2D;
|
|
using System.Drawing.Text;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace AppLauncher
|
|
{
|
|
public partial class MainForm : AForm
|
|
{
|
|
protected int collapsedWidth = 40;
|
|
protected int expandedWidth = 800;
|
|
|
|
public MainForm() : base()
|
|
{
|
|
InitializeComponent();
|
|
|
|
//headingPanel2.Checked = true;
|
|
}
|
|
|
|
private async void button1_Click(object sender, EventArgs e)
|
|
{
|
|
//if (this.Width > collapsedWidth)
|
|
//{
|
|
// await collapseWindow(collapsedWidth, 6);
|
|
//}
|
|
//else
|
|
//{
|
|
// await expandWindow(expandedWidth, 8);
|
|
//}
|
|
}
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
|
|
|
|
//List<TileGroupModel> groupList = new List<TileGroupModel>();
|
|
|
|
//TileGroupModel group1 = new TileGroupModel()
|
|
//{
|
|
// Title = "Featured",
|
|
// IsExpanded = true,
|
|
// Items = new List<TileModel>(),
|
|
// GridSize = new Size(8, 2)
|
|
//};
|
|
//group1.Items.Add(new TileModel()
|
|
//{
|
|
// Title = "CubicExplorer",
|
|
// Icon = null,
|
|
// Position = new Point(0, 0),
|
|
// ProcessFilename = @"C:\B\Portable Files\CubicExplorer\v0.95.1\CubicExplorer.exe",
|
|
// ProcessWorkingDirectory = @"N:\D"
|
|
//});
|
|
//group1.Items.Add(new TileModel()
|
|
//{
|
|
// Title = "VeraCrypt",
|
|
// Icon = null,
|
|
// Position = new Point(1, 0),
|
|
// ProcessFilename = @"C:\B\Portable Files\VeraCrypt\VeraCrypt-x64.exe",
|
|
// ProcessWorkingDirectory = @"L:\"
|
|
//});
|
|
|
|
//groupList.Add(group1);
|
|
|
|
//File.WriteAllText(Application.StartupPath.TrimEnd('\\') + "\\test1.jsonfig", JsonConvert.SerializeObject(groupList));
|
|
|
|
|
|
|
|
//ProcessStartInfo process = new ProcessStartInfo();
|
|
//process.FileName = @"C:\B\Portable Files (pure)\Build and Deploy Utility\v0.2.0.046 alpha\badutil.exe";
|
|
//process.Arguments = "";
|
|
//process.WindowStyle = ProcessWindowStyle.Normal;
|
|
//process.Verb = "runas";
|
|
//Process.Start(process);
|
|
|
|
//richTextBox1.Text += tilePanelContainer1.GridSize.ToString() + Environment.NewLine;
|
|
|
|
//tilePanelContainer1.Controls.Add(tilePanel1);
|
|
//tilePanel1.Location = new Point(0, 0);
|
|
|
|
//tilePanelContainer1.Controls.Add(tilePanel2);
|
|
//tilePanel2.Location = new Point(0, 0);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
public async Task ToggleSize()
|
|
{
|
|
if (this.Width > collapsedWidth)
|
|
{
|
|
flowLayoutPanel1.Visible = false;
|
|
titlePanel1.LabelVisible = false;
|
|
|
|
await collapseWindow(collapsedWidth, 6);
|
|
}
|
|
else
|
|
{
|
|
await expandWindow(expandedWidth, 8);
|
|
|
|
flowLayoutPanel1.Visible = true;
|
|
titlePanel1.LabelVisible = true;
|
|
}
|
|
}
|
|
|
|
protected async Task collapseWindow(int width, int increment = 6)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
while (this.Width > width)
|
|
{
|
|
if (this.InvokeRequired)
|
|
{
|
|
this.Invoke(new MethodInvoker(() => {
|
|
this.Width -= increment;
|
|
}));
|
|
}
|
|
else
|
|
{
|
|
this.Width -= increment;
|
|
}
|
|
|
|
Application.DoEvents();
|
|
}
|
|
});
|
|
}
|
|
|
|
protected async Task expandWindow(int width, int increment = 8)
|
|
{
|
|
await Task.Run(() =>
|
|
{
|
|
while (this.Width < width)
|
|
{
|
|
if (this.InvokeRequired)
|
|
{
|
|
this.Invoke(new MethodInvoker(() => {
|
|
this.Width += increment;
|
|
//this.Invalidate();
|
|
}));
|
|
}
|
|
else
|
|
{
|
|
this.Width += increment;
|
|
//this.Invalidate();
|
|
}
|
|
|
|
Application.DoEvents();
|
|
}
|
|
});
|
|
}
|
|
|
|
private void toolStripMenuItem1_Click(object sender, EventArgs e)
|
|
{
|
|
this.TopMost = !this.TopMost;
|
|
|
|
toolStripMenuItem1.Checked = this.TopMost;
|
|
}
|
|
|
|
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
protected void loadSession(string filename)
|
|
{
|
|
string sourceCode = File.ReadAllText(filename);
|
|
if (string.IsNullOrWhiteSpace(sourceCode))
|
|
{
|
|
return;
|
|
}
|
|
|
|
List<TileGroupModel> rs = JsonConvert.DeserializeObject<List<TileGroupModel>>(sourceCode);
|
|
if (rs == null)
|
|
{
|
|
return;
|
|
}
|
|
|
|
flowLayoutPanel1.Controls.Clear();
|
|
|
|
foreach (TileGroupModel item in rs)
|
|
{
|
|
TileContainer panel = new TileContainer(item);
|
|
flowLayoutPanel1.Controls.Add(panel);
|
|
}
|
|
|
|
}
|
|
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
loadSession(Application.StartupPath.TrimEnd('\\') + "\\test1.jsonfig");
|
|
|
|
}
|
|
|
|
}
|
|
}
|