release/0.3.0.153 #2

Merged
Ray merged 6 commits from release/0.3.0.153 into master 2024-07-07 18:43:10 +00:00
32 changed files with 4058 additions and 2679 deletions
Showing only changes of commit f06d311f40 - Show all commits

209
FileSessionManager.cs Normal file
View File

@ -0,0 +1,209 @@
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FizzyLauncher
{
public class FileSessionManager
{
public delegate void OnNewSessionEvent(FileSessionManager sender);
public delegate Task<bool> OnSaveSessionEvent(FileSessionManager sender, string filename, bool showNotices = true);
public delegate Task<bool> OnLoadSessionEvent(FileSessionManager sender, string filename);
public delegate Task OnClearSessionEvent(FileSessionManager sender);
public string SessionFilename { get; set; } = null;
public string NewSessionPromptTitle { get; set; } = "New session";
public string OpenSessionPromptTitle { get; set; } = "Open session";
public string CloseSessionPromptTitle { get; set; } = "Close session";
public string SaveExistingSession { get; set; } = "Save existing session?";
public OpenFileDialog OpenFileDialog { get; set; } = null;
public SaveFileDialog SaveFileDialog { get; set; } = null;
public OnNewSessionEvent OnNewSession { get; set; } = null;
public OnSaveSessionEvent OnSaveSession { get; set; } = null;
public OnLoadSessionEvent OnLoadSession { get; set; } = null;
public OnClearSessionEvent OnClearSession { get; set; } = null;
public async Task NewSession()
{
if (string.IsNullOrWhiteSpace(this.SessionFilename))
{
this.SessionFilename = null;
PerformNewSession();
}
else
{
var result = MessageBox.Show(this.SaveExistingSession, this.NewSessionPromptTitle, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
var result2 = await PerformSaveSession(this.SessionFilename, false);
if (result2)
{
this.SessionFilename = null;
PerformNewSession();
}
}
else if (result == DialogResult.No)
{
this.SessionFilename = null;
PerformNewSession();
}
else if (result == DialogResult.Cancel)
{
return;
}
}
}
public async Task OpenSession(string filename)
{
this.SessionFilename = filename;
if (string.IsNullOrWhiteSpace(this.SessionFilename))
{
await this.OpenSession();
}
else
{
await PerformLoadSession(this.SessionFilename);
}
}
public async Task OpenSession()
{
if (string.IsNullOrWhiteSpace(this.SessionFilename))
{
if (this.OpenFileDialog.ShowDialog() == DialogResult.OK)
{
this.SessionFilename = this.OpenFileDialog.FileName;
await PerformLoadSession(this.SessionFilename);
}
}
else
{
var result = MessageBox.Show(this.SaveExistingSession, this.OpenSessionPromptTitle, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
if (await PerformSaveSession(this.SessionFilename, false))
{
if (this.OpenFileDialog.ShowDialog() == DialogResult.OK)
{
this.SessionFilename = this.OpenFileDialog.FileName;
await PerformLoadSession(this.SessionFilename);
}
}
}
else if (result == DialogResult.No)
{
if (this.OpenFileDialog.ShowDialog() == DialogResult.OK)
{
this.SessionFilename = this.OpenFileDialog.FileName;
await PerformLoadSession(this.SessionFilename);
}
}
else if (result == DialogResult.Cancel)
{
return;
}
}
}
public async Task SaveSession()
{
if (string.IsNullOrWhiteSpace(this.SessionFilename))
{
await this.SaveAsSession();
}
else
{
await PerformSaveSession(this.SessionFilename, true);
}
}
public async Task<bool> SaveAsSession()
{
if (this.SaveFileDialog.ShowDialog() == DialogResult.OK)
{
bool result = await PerformSaveSession(this.SaveFileDialog.FileName);
if (result)
{
this.SessionFilename = this.SaveFileDialog.FileName;
}
return result;
}
return false;
}
public async Task CloseSession()
{
if (string.IsNullOrWhiteSpace(this.SessionFilename))
{
this.SessionFilename = null;
await PerformClearSession();
}
else
{
var result = MessageBox.Show(this.SaveExistingSession, this.CloseSessionPromptTitle, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
bool result2 = await PerformSaveSession(this.SessionFilename, false);
if (result2)
{
this.SessionFilename = null;
await PerformClearSession();
}
}
else if (result == DialogResult.No)
{
this.SessionFilename = null;
await PerformClearSession();
}
else if (result == DialogResult.Cancel)
{
return;
}
}
}
private void PerformNewSession() => this.OnNewSession?.Invoke(this);
private async Task<bool> PerformSaveSession(string filename, bool showNotices = true)
{
if (this.OnSaveSession == null)
{
return false;
}
return await this.OnSaveSession?.Invoke(this, filename, showNotices);
}
private async Task<bool> PerformLoadSession(string filename)
{
if (this.OnLoadSession == null)
{
return false;
}
return await this.OnLoadSession?.Invoke(this, filename);
}
private async Task PerformClearSession() => this.OnClearSession?.Invoke(this);
}
}

View File

@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework> <TargetFramework>net8.0-windows8.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms> <UseWindowsForms>true</UseWindowsForms>
<NoWin32Manifest>true</NoWin32Manifest> <NoWin32Manifest>true</NoWin32Manifest>
<ApplicationIcon>favicon.ico</ApplicationIcon> <ApplicationIcon>favicon.ico</ApplicationIcon>
@ -45,10 +45,24 @@
<ItemGroup> <ItemGroup>
<Compile Remove="UIResource.Designer.cs" /> <Compile Remove="UIResource.Designer.cs" />
<Compile Remove="Windows\Forms\TileContainer.cs" />
<Compile Remove="Windows\Forms\TilePanelLayout.cs" />
<Compile Remove="Windows\Forms\TilePanelLayout.Designer.cs" />
<Compile Remove="Windows\GridTableLayout.cs" />
<Compile Remove="Windows\GridTableLayout.Designer.cs" />
<Compile Remove="Windows\TileGridPanel.cs" />
<Compile Remove="Windows\TileGridPanel.Designer.cs" />
<Compile Remove="Windows\TileGridPanelLayout.cs" />
<Compile Remove="Windows\TileGridPanelLayout.Designer.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Remove="UIResource.resx" /> <EmbeddedResource Remove="UIResource.resx" />
<EmbeddedResource Remove="Windows\Forms\TileContainer.resx" />
<EmbeddedResource Remove="Windows\Forms\TilePanelLayout.resx" />
<EmbeddedResource Remove="Windows\GridTableLayout.resx" />
<EmbeddedResource Remove="Windows\TileGridPanel.resx" />
<EmbeddedResource Remove="Windows\TileGridPanelLayout.resx" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -59,12 +73,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Reference Include="Ryz3core"> <ProjectReference Include="..\ryzstudio8\core\RyzStudio.csproj" />
<HintPath>References\Ryz3core.dll</HintPath> <ProjectReference Include="..\ryzstudio8\windows.forms\RyzStudio.Windows.Forms.csproj" />
</Reference>
<Reference Include="Ryz3ui">
<HintPath>References\Ryz3ui.dll</HintPath>
</Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

514
MainForm.Designer.cs generated
View File

@ -30,296 +30,385 @@ namespace FizzyLauncher
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components); notifyIcon1 = new System.Windows.Forms.NotifyIcon(components);
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components); contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(components);
this.exitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); exitToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1 = new System.Windows.Forms.MenuStrip(); menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
this.exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.addGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); addGroupToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.showBigIconsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); showBigIconsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.enableAnimationsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); tileContainerMenu1 = new System.Windows.Forms.ContextMenuStrip(components);
this.tileContainer1 = new FizzyLauncher.Windows.Forms.TileContainer(); addGroupToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStrip2.SuspendLayout(); toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.SuspendLayout(); toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
addRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
removeRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
topToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
upToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
downToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
contextMenuStrip2.SuspendLayout();
menuStrip1.SuspendLayout();
tileContainerMenu1.SuspendLayout();
SuspendLayout();
// //
// saveFileDialog1 // saveFileDialog1
// //
this.saveFileDialog1.Filter = "Session files|*.jsonfig"; saveFileDialog1.Filter = "Session files|*.jsonfig";
this.saveFileDialog1.Title = "Choose file to save the session"; saveFileDialog1.Title = "Choose file to save the session";
// //
// openFileDialog1 // openFileDialog1
// //
this.openFileDialog1.Filter = "Session files|*.jsonfig"; openFileDialog1.Filter = "Session files|*.jsonfig";
this.openFileDialog1.Title = "Choose session file"; openFileDialog1.Title = "Choose session file";
// //
// notifyIcon1 // notifyIcon1
// //
this.notifyIcon1.ContextMenuStrip = this.contextMenuStrip2; notifyIcon1.ContextMenuStrip = contextMenuStrip2;
this.notifyIcon1.Icon = ((System.Drawing.Icon)(resources.GetObject("notifyIcon1.Icon"))); notifyIcon1.Icon = (System.Drawing.Icon)resources.GetObject("notifyIcon1.Icon");
this.notifyIcon1.Text = "notifyIcon1"; notifyIcon1.Text = "notifyIcon1";
this.notifyIcon1.Visible = true; notifyIcon1.Visible = true;
this.notifyIcon1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.notifyIcon1_MouseClick); notifyIcon1.MouseClick += notifyIcon1_MouseClick;
// //
// contextMenuStrip2 // contextMenuStrip2
// //
this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { exitToolStripMenuItem1 });
this.exitToolStripMenuItem1}); contextMenuStrip2.Name = "contextMenuStrip2";
this.contextMenuStrip2.Name = "contextMenuStrip2"; contextMenuStrip2.Size = new System.Drawing.Size(94, 26);
this.contextMenuStrip2.Size = new System.Drawing.Size(94, 26);
// //
// exitToolStripMenuItem1 // exitToolStripMenuItem1
// //
this.exitToolStripMenuItem1.Name = "exitToolStripMenuItem1"; exitToolStripMenuItem1.Name = "exitToolStripMenuItem1";
this.exitToolStripMenuItem1.Size = new System.Drawing.Size(93, 22); exitToolStripMenuItem1.Size = new System.Drawing.Size(93, 22);
this.exitToolStripMenuItem1.Text = "E&xit"; exitToolStripMenuItem1.Text = "E&xit";
this.exitToolStripMenuItem1.Click += new System.EventHandler(this.exitToolStripMenuItem1_Click); exitToolStripMenuItem1.Click += exitToolStripMenuItem1_Click;
// //
// menuStrip1 // menuStrip1
// //
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem, toolStripMenuItem1, viewToolStripMenuItem, toolsToolStripMenuItem, helpToolStripMenuItem1 });
this.fileToolStripMenuItem, menuStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStripMenuItem1, menuStrip1.Name = "menuStrip1";
this.viewToolStripMenuItem, menuStrip1.Size = new System.Drawing.Size(873, 24);
this.toolsToolStripMenuItem, menuStrip1.TabIndex = 2;
this.helpToolStripMenuItem1}); menuStrip1.MenuActivate += menuStrip1_MenuActivate;
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(633, 24);
this.menuStrip1.TabIndex = 2;
this.menuStrip1.MenuActivate += new System.EventHandler(this.menuStrip1_MenuActivate);
// //
// fileToolStripMenuItem // fileToolStripMenuItem
// //
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, toolStripMenuItem13, closeToolStripMenuItem, toolStripMenuItem14, saveToolStripMenuItem, saveAsToolStripMenuItem, toolStripMenuItem15, exitToolStripMenuItem2 });
this.newToolStripMenuItem, fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.openToolStripMenuItem, fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.toolStripMenuItem13, fileToolStripMenuItem.Text = "&File";
this.closeToolStripMenuItem,
this.toolStripMenuItem14,
this.saveToolStripMenuItem,
this.saveAsToolStripMenuItem,
this.toolStripMenuItem15,
this.exitToolStripMenuItem2});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
// //
// newToolStripMenuItem // newToolStripMenuItem
// //
this.newToolStripMenuItem.Image = AppResource.file; newToolStripMenuItem.Image = AppResource.file;
this.newToolStripMenuItem.Name = "newToolStripMenuItem"; newToolStripMenuItem.Name = "newToolStripMenuItem";
this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N;
this.newToolStripMenuItem.Size = new System.Drawing.Size(146, 22); newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.newToolStripMenuItem.Text = "&New"; newToolStripMenuItem.Text = "&New";
this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); newToolStripMenuItem.Click += newToolStripMenuItem_Click;
// //
// openToolStripMenuItem // openToolStripMenuItem
// //
this.openToolStripMenuItem.Image = AppResource.folder; openToolStripMenuItem.Image = AppResource.folder;
this.openToolStripMenuItem.Name = "openToolStripMenuItem"; openToolStripMenuItem.Name = "openToolStripMenuItem";
this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O;
this.openToolStripMenuItem.Size = new System.Drawing.Size(146, 22); openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.openToolStripMenuItem.Text = "&Open"; openToolStripMenuItem.Text = "&Open";
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); openToolStripMenuItem.Click += openToolStripMenuItem_Click;
// //
// toolStripMenuItem13 // toolStripMenuItem13
// //
this.toolStripMenuItem13.Name = "toolStripMenuItem13"; toolStripMenuItem13.Name = "toolStripMenuItem13";
this.toolStripMenuItem13.Size = new System.Drawing.Size(143, 6); toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
// //
// closeToolStripMenuItem // closeToolStripMenuItem
// //
this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; closeToolStripMenuItem.Name = "closeToolStripMenuItem";
this.closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22); closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.closeToolStripMenuItem.Text = "&Close"; closeToolStripMenuItem.Text = "&Close";
this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); closeToolStripMenuItem.Click += closeToolStripMenuItem_Click;
// //
// toolStripMenuItem14 // toolStripMenuItem14
// //
this.toolStripMenuItem14.Name = "toolStripMenuItem14"; toolStripMenuItem14.Name = "toolStripMenuItem14";
this.toolStripMenuItem14.Size = new System.Drawing.Size(143, 6); toolStripMenuItem14.Size = new System.Drawing.Size(143, 6);
// //
// saveToolStripMenuItem // saveToolStripMenuItem
// //
this.saveToolStripMenuItem.Image = AppResource.disk2; saveToolStripMenuItem.Image = AppResource.disk2;
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); saveToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S;
this.saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.saveToolStripMenuItem.Text = "&Save"; saveToolStripMenuItem.Text = "&Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); saveToolStripMenuItem.Click += saveToolStripMenuItem_Click;
// //
// saveAsToolStripMenuItem // saveAsToolStripMenuItem
// //
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.saveAsToolStripMenuItem.Text = "Save &As..."; saveAsToolStripMenuItem.Text = "Save &As...";
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
// //
// toolStripMenuItem15 // toolStripMenuItem15
// //
this.toolStripMenuItem15.Name = "toolStripMenuItem15"; toolStripMenuItem15.Name = "toolStripMenuItem15";
this.toolStripMenuItem15.Size = new System.Drawing.Size(143, 6); toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
// //
// exitToolStripMenuItem2 // exitToolStripMenuItem2
// //
this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
this.exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22); exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
this.exitToolStripMenuItem2.Text = "E&xit"; exitToolStripMenuItem2.Text = "E&xit";
this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem2_Click); exitToolStripMenuItem2.Click += exitToolStripMenuItem2_Click;
// //
// toolStripMenuItem1 // toolStripMenuItem1
// //
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { addGroupToolStripMenuItem });
this.addGroupToolStripMenuItem}); toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.Name = "toolStripMenuItem1"; toolStripMenuItem1.Size = new System.Drawing.Size(39, 20);
this.toolStripMenuItem1.Size = new System.Drawing.Size(39, 20); toolStripMenuItem1.Text = "&Edit";
this.toolStripMenuItem1.Text = "&Edit";
// //
// addGroupToolStripMenuItem // addGroupToolStripMenuItem
// //
this.addGroupToolStripMenuItem.Name = "addGroupToolStripMenuItem"; addGroupToolStripMenuItem.Name = "addGroupToolStripMenuItem";
this.addGroupToolStripMenuItem.Size = new System.Drawing.Size(132, 22); addGroupToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
this.addGroupToolStripMenuItem.Text = "&Add Group"; addGroupToolStripMenuItem.Text = "&Add Group";
this.addGroupToolStripMenuItem.Click += new System.EventHandler(this.addGroupToolStripMenuItem_Click); addGroupToolStripMenuItem.Click += addGroupToolStripMenuItem_Click;
// //
// viewToolStripMenuItem // viewToolStripMenuItem
// //
this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { showBigIconsToolStripMenuItem, alwaysOnTopToolStripMenuItem });
this.showBigIconsToolStripMenuItem, viewToolStripMenuItem.Name = "viewToolStripMenuItem";
this.enableAnimationsToolStripMenuItem, viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
this.alwaysOnTopToolStripMenuItem}); viewToolStripMenuItem.Text = "&View";
this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
this.viewToolStripMenuItem.Text = "&View";
// //
// showBigIconsToolStripMenuItem // showBigIconsToolStripMenuItem
// //
this.showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem"; showBigIconsToolStripMenuItem.Name = "showBigIconsToolStripMenuItem";
this.showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(173, 22); showBigIconsToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.showBigIconsToolStripMenuItem.Text = "Show &Big Icons"; showBigIconsToolStripMenuItem.Text = "Show &Big Icons";
this.showBigIconsToolStripMenuItem.Click += new System.EventHandler(this.showBigIconsToolStripMenuItem_Click); showBigIconsToolStripMenuItem.Click += showBigIconsToolStripMenuItem_Click;
//
// enableAnimationsToolStripMenuItem
//
this.enableAnimationsToolStripMenuItem.Name = "enableAnimationsToolStripMenuItem";
this.enableAnimationsToolStripMenuItem.Size = new System.Drawing.Size(173, 22);
this.enableAnimationsToolStripMenuItem.Text = "Enable &Animations";
this.enableAnimationsToolStripMenuItem.Click += new System.EventHandler(this.enableAnimationsToolStripMenuItem_Click);
// //
// alwaysOnTopToolStripMenuItem // alwaysOnTopToolStripMenuItem
// //
this.alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem"; alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem";
this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(173, 22); alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.alwaysOnTopToolStripMenuItem.Text = "Always On &Top"; alwaysOnTopToolStripMenuItem.Text = "Always On &Top";
this.alwaysOnTopToolStripMenuItem.Click += new System.EventHandler(this.alwaysOnTopToolStripMenuItem_Click); alwaysOnTopToolStripMenuItem.Click += alwaysOnTopToolStripMenuItem_Click;
// //
// toolsToolStripMenuItem // toolsToolStripMenuItem
// //
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { optionsToolStripMenuItem });
this.optionsToolStripMenuItem}); toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem"; toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20); toolsToolStripMenuItem.Text = "&Tools";
this.toolsToolStripMenuItem.Text = "&Tools";
// //
// optionsToolStripMenuItem // optionsToolStripMenuItem
// //
this.optionsToolStripMenuItem.Image = AppResource.cog2; optionsToolStripMenuItem.Image = AppResource.cog2;
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
this.optionsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12))); optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12;
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22); optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
this.optionsToolStripMenuItem.Text = "&Options"; optionsToolStripMenuItem.Text = "&Options";
this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click); optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click;
// //
// helpToolStripMenuItem1 // helpToolStripMenuItem1
// //
this.helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { viewHelpToolStripMenuItem1, toolStripMenuItem16, aboutToolStripMenuItem1 });
this.viewHelpToolStripMenuItem1, helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
this.toolStripMenuItem16, helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
this.aboutToolStripMenuItem1}); helpToolStripMenuItem1.Text = "&Help";
this.helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
this.helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
this.helpToolStripMenuItem1.Text = "&Help";
// //
// viewHelpToolStripMenuItem1 // viewHelpToolStripMenuItem1
// //
this.viewHelpToolStripMenuItem1.Image = AppResource.help2; viewHelpToolStripMenuItem1.Image = AppResource.help2;
this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
this.viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1; viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
this.viewHelpToolStripMenuItem1.Text = "&View Help"; viewHelpToolStripMenuItem1.Text = "&View Help";
this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click); viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click;
// //
// toolStripMenuItem16 // toolStripMenuItem16
// //
this.toolStripMenuItem16.Name = "toolStripMenuItem16"; toolStripMenuItem16.Name = "toolStripMenuItem16";
this.toolStripMenuItem16.Size = new System.Drawing.Size(143, 6); toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
// //
// aboutToolStripMenuItem1 // aboutToolStripMenuItem1
// //
this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
this.aboutToolStripMenuItem1.Text = "&About"; aboutToolStripMenuItem1.Text = "&About";
this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click); aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click;
// //
// tileContainer1 // tileContainerMenu1
// //
this.tileContainer1.AutoScroll = true; tileContainerMenu1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addGroupToolStripMenuItem1, toolStripMenuItem4, editToolStripMenuItem, toolStripSeparator1, toolStripMenuItem2, toolStripSeparator2, toolStripMenuItem3, toolStripSeparator3, removeToolStripMenuItem });
this.tileContainer1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; tileContainerMenu1.Name = "tileContainerMenu1";
this.tileContainer1.BackColor = System.Drawing.Color.Transparent; tileContainerMenu1.Size = new System.Drawing.Size(133, 154);
this.tileContainer1.Dock = System.Windows.Forms.DockStyle.Fill; //
this.tileContainer1.Location = new System.Drawing.Point(0, 24); // addGroupToolStripMenuItem1
this.tileContainer1.Margin = new System.Windows.Forms.Padding(0); //
this.tileContainer1.Name = "tileContainer1"; addGroupToolStripMenuItem1.Name = "addGroupToolStripMenuItem1";
this.tileContainer1.Padding = new System.Windows.Forms.Padding(10, 10, 10, 20); addGroupToolStripMenuItem1.Size = new System.Drawing.Size(132, 22);
this.tileContainer1.Size = new System.Drawing.Size(633, 376); addGroupToolStripMenuItem1.Text = "&Add Tile";
this.tileContainer1.TabIndex = 3; addGroupToolStripMenuItem1.Click += addGroupToolStripMenuItem1_Click;
//
// toolStripMenuItem4
//
toolStripMenuItem4.Name = "toolStripMenuItem4";
toolStripMenuItem4.Size = new System.Drawing.Size(132, 22);
toolStripMenuItem4.Text = "Add &Group";
toolStripMenuItem4.Click += toolStripMenuItem4_Click;
//
// editToolStripMenuItem
//
editToolStripMenuItem.Name = "editToolStripMenuItem";
editToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
editToolStripMenuItem.Text = "&Edit";
editToolStripMenuItem.Click += editToolStripMenuItem_Click;
//
// toolStripSeparator1
//
toolStripSeparator1.Name = "toolStripSeparator1";
toolStripSeparator1.Size = new System.Drawing.Size(129, 6);
//
// toolStripMenuItem2
//
toolStripMenuItem2.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { addRowToolStripMenuItem, removeRowToolStripMenuItem });
toolStripMenuItem2.Name = "toolStripMenuItem2";
toolStripMenuItem2.Size = new System.Drawing.Size(132, 22);
toolStripMenuItem2.Text = "Ro&w";
//
// addRowToolStripMenuItem
//
addRowToolStripMenuItem.Name = "addRowToolStripMenuItem";
addRowToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
addRowToolStripMenuItem.Text = "A&dd Row";
addRowToolStripMenuItem.Click += addRowToolStripMenuItem_Click;
//
// removeRowToolStripMenuItem
//
removeRowToolStripMenuItem.Name = "removeRowToolStripMenuItem";
removeRowToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
removeRowToolStripMenuItem.Text = "Remo&ve Row";
removeRowToolStripMenuItem.Click += removeRowToolStripMenuItem_Click;
//
// toolStripSeparator2
//
toolStripSeparator2.Name = "toolStripSeparator2";
toolStripSeparator2.Size = new System.Drawing.Size(129, 6);
//
// toolStripMenuItem3
//
toolStripMenuItem3.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { topToolStripMenuItem, upToolStripMenuItem, downToolStripMenuItem, bottomToolStripMenuItem });
toolStripMenuItem3.Name = "toolStripMenuItem3";
toolStripMenuItem3.Size = new System.Drawing.Size(132, 22);
toolStripMenuItem3.Text = "&Move";
//
// topToolStripMenuItem
//
topToolStripMenuItem.Name = "topToolStripMenuItem";
topToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
topToolStripMenuItem.Text = "&Top";
topToolStripMenuItem.Click += topToolStripMenuItem_Click;
//
// upToolStripMenuItem
//
upToolStripMenuItem.Name = "upToolStripMenuItem";
upToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
upToolStripMenuItem.Text = "&Up";
upToolStripMenuItem.Click += upToolStripMenuItem_Click;
//
// downToolStripMenuItem
//
downToolStripMenuItem.Name = "downToolStripMenuItem";
downToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
downToolStripMenuItem.Text = "&Down";
downToolStripMenuItem.Click += downToolStripMenuItem_Click;
//
// bottomToolStripMenuItem
//
bottomToolStripMenuItem.Name = "bottomToolStripMenuItem";
bottomToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
bottomToolStripMenuItem.Text = "&Bottom";
bottomToolStripMenuItem.Click += bottomToolStripMenuItem_Click;
//
// toolStripSeparator3
//
toolStripSeparator3.Name = "toolStripSeparator3";
toolStripSeparator3.Size = new System.Drawing.Size(129, 6);
//
// removeToolStripMenuItem
//
removeToolStripMenuItem.Name = "removeToolStripMenuItem";
removeToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
removeToolStripMenuItem.Text = "&Remove";
removeToolStripMenuItem.Click += removeToolStripMenuItem_Click;
//
// flowLayoutPanel1
//
flowLayoutPanel1.AutoScroll = true;
flowLayoutPanel1.BackColor = System.Drawing.Color.FromArgb(255, 192, 255);
flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
flowLayoutPanel1.Location = new System.Drawing.Point(12, 27);
flowLayoutPanel1.Name = "flowLayoutPanel1";
flowLayoutPanel1.Size = new System.Drawing.Size(461, 426);
flowLayoutPanel1.TabIndex = 8;
flowLayoutPanel1.WrapContents = false;
// //
// MainForm // MainForm
// //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); BackColor = System.Drawing.Color.FromArgb(250, 250, 250);
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.ClientSize = new System.Drawing.Size(633, 400); ClientSize = new System.Drawing.Size(873, 505);
this.Controls.Add(this.tileContainer1); Controls.Add(flowLayoutPanel1);
this.Controls.Add(this.menuStrip1); Controls.Add(menuStrip1);
this.DoubleBuffered = true; DoubleBuffered = true;
this.ForeColor = System.Drawing.SystemColors.ControlText; ForeColor = System.Drawing.SystemColors.ControlText;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
this.MainMenuStrip = this.menuStrip1; MainMenuStrip = menuStrip1;
this.MaximizeBox = false; MaximizeBox = false;
this.MinimizeBox = false; MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(420, 280); MinimumSize = new System.Drawing.Size(420, 280);
this.Name = "MainForm"; Name = "MainForm";
this.Text = "Fizzy Launcher"; Text = "Fizzy Launcher";
this.contextMenuStrip2.ResumeLayout(false); contextMenuStrip2.ResumeLayout(false);
this.menuStrip1.ResumeLayout(false); menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout(); menuStrip1.PerformLayout();
this.ResumeLayout(false); tileContainerMenu1.ResumeLayout(false);
this.PerformLayout(); ResumeLayout(false);
PerformLayout();
} }
#endregion #endregion
@ -333,7 +422,6 @@ namespace FizzyLauncher
private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem viewToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem toolsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem helpToolStripMenuItem1;
private TileContainer tileContainer1;
private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem13; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem13;
@ -344,7 +432,6 @@ namespace FizzyLauncher
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem15; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem15;
private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem2; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem showBigIconsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem showBigIconsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem enableAnimationsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem alwaysOnTopToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem alwaysOnTopToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem optionsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem viewHelpToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem viewHelpToolStripMenuItem1;
@ -352,6 +439,23 @@ namespace FizzyLauncher
private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem addGroupToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem addGroupToolStripMenuItem;
private System.Windows.Forms.ContextMenuStrip tileContainerMenu1;
private System.Windows.Forms.ToolStripMenuItem addGroupToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
private System.Windows.Forms.ToolStripMenuItem addRowToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem topToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem upToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem downToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,64 @@
<root> <?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
@ -370,6 +430,9 @@
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>716, 17</value> <value>716, 17</value>
</metadata> </metadata>
<metadata name="tileContainerMenu1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>831, 17</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA

View File

@ -1,42 +1,65 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
namespace FizzyLauncher.Models namespace FizzyLauncher.Models
{ {
public class LauncherSession public class LauncherSession
{ {
public class HotKeyOptions public int TilesPerRow { get; set; } = 8;
{
public bool IsCtrl { get; set; } = false;
public bool IsAlt { get; set; } = false;
public bool IsShift { get; set; } = false;
public int Key { get; set; } = (int)System.Windows.Forms.Keys.None;
public int ModifierCode => ((this.IsAlt ? 1 : 0) + (this.IsCtrl ? 2 : 0) + (this.IsShift ? 4 : 0)); public bool ShowBigIcons { get; set; } = true;
public System.Windows.Forms.Keys KeyCode => (System.Windows.Forms.Keys)this.Key; public ThKeyCodeTextBox.Results ShowToggleHotkey { get; set; } = null;
}
public enum AutoSaveOption public bool HideOnClose { get; set; } = true;
{
Prompt = 0,
Yes,
No
}
public int DefaultHeight { get; set; } = 280; public bool HideOnExecute { get; set; } = true;
public HotKeyOptions HotKey { get; set; } = null;
public bool AlwaysOnTop { get; set; } = false; public bool AlwaysOnTop { get; set; } = false;
public bool EnableAnimation { get; set; } = false;
public bool EnableBigIconInFolder { get; set; } = false;
public bool HideOnClose { get; set; } = false;
public bool HideOnClick { get; set; } = false;
public AutoSaveOption AutoSave { get; set; } = AutoSaveOption.Prompt; //public class HotKeyOptions
//{
// public bool IsCtrl { get; set; } = false;
// public bool IsAlt { get; set; } = false;
// public bool IsShift { get; set; } = false;
// public int Key { get; set; } = (int)System.Windows.Forms.Keys.None;
// public int ModifierCode => ((this.IsAlt ? 1 : 0) + (this.IsCtrl ? 2 : 0) + (this.IsShift ? 4 : 0));
// public System.Windows.Forms.Keys KeyCode => (System.Windows.Forms.Keys)this.Key;
//}
//public enum AutoSaveOption
//{
// Prompt = 0,
// Yes,
// No
//}
//public int DefaultHeight { get; set; } = 280;
//public ThKeyCodeTextBox.Results HotKey { get; set; } = null;
//public bool AlwaysOnTop { get; set; } = false;
//public bool EnableAnimation { get; set; } = false;
//public bool EnableBigIconInFolder { get; set; } = false;
//public bool HideOnClose { get; set; } = false;
//public bool HideOnClick { get; set; } = false;
//public AutoSaveOption AutoSave { get; set; } = AutoSaveOption.Prompt;
public List<TileGroupModel> Groups { get; set; } = new List<TileGroupModel>(); public List<TileGroupModel> Groups { get; set; } = new List<TileGroupModel>();
public Point StartPosition { get; set; } = Point.Empty; public Point StartPosition { get; set; } = Point.Empty;
public int Height { get; set; } = 280;
//public int ColumnCount { get; set; } = 8;
} }
} }

10
Models/NewFormModel.cs Normal file
View File

@ -0,0 +1,10 @@
namespace FizzyLauncher.Models
{
public class NewFormModel
{
public int ColumnCount { get; set; } = 8;
public int GroupCount { get; set; } = 1;
}
}

View File

@ -1,124 +1,168 @@
using RyzStudio.Windows.ThemedForms; using System.Windows.Forms;
using System; using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
namespace FizzyLauncher namespace FizzyLauncher
{ {
public class NewForm : TDialogForm public class NewForm : TDialog
{ {
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private TButton button1; private ThButton button1;
private TNumericBox numericBox1; private ThNumericBox numericBox1;
private ThNumericBox numericBox2;
private Label label2;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
public NewForm(MainForm parent) : base() public NewForm()
{ {
InitializeComponent(); InitializeComponent();
parentForm = parent; this.OkButton = button1;
numericBox1.Minimum = 4; numericBox1.Minimum = 4;
numericBox1.Maximum = 24; numericBox1.Maximum = 24;
numericBox1.Value = 6; numericBox1.Value = 8;
numericBox2.Minimum = 1;
numericBox2.Maximum = 8;
numericBox2.Value = 1;
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.label1 = new System.Windows.Forms.Label(); label1 = new Label();
this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); button1 = new ThButton();
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); tHorizontalSeparator1 = new THorizontalSeparator();
this.numericBox1 = new RyzStudio.Windows.ThemedForms.TNumericBox(); numericBox1 = new ThNumericBox();
this.SuspendLayout(); numericBox2 = new ThNumericBox();
label2 = new Label();
SuspendLayout();
// //
// label1 // label1
// //
this.label1.AutoSize = true; label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent; label1.BackColor = System.Drawing.Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText; label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 21); label1.Location = new System.Drawing.Point(10, 21);
this.label1.Margin = new System.Windows.Forms.Padding(0); label1.Margin = new Padding(0);
this.label1.Name = "label1"; label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label1.Padding = new Padding(0, 9, 0, 10);
this.label1.Size = new System.Drawing.Size(137, 34); label1.Size = new System.Drawing.Size(76, 34);
this.label1.TabIndex = 153; label1.TabIndex = 153;
this.label1.Text = "Number of Tiles Per Row"; label1.Text = "Tiles Per Row";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// button1 // button1
// //
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); button1.AcceptButton = null;
this.button1.BackColor = System.Drawing.Color.Transparent; button1.ActiveImage = null;
this.button1.IdleImage = null; button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
this.button1.ActiveImage = null; button1.BackColor = System.Drawing.Color.Transparent;
this.button1.LabelText = "&Save"; button1.EnableMenuOnClick = false;
this.button1.Location = new System.Drawing.Point(241, 109); button1.EnableReactiveVisual = true;
this.button1.Margin = new System.Windows.Forms.Padding(10); button1.HoverImage = null;
this.button1.Name = "button1"; button1.IdleImage = null;
this.button1.HoverImage = null; button1.LabelText = "&Save";
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); button1.Location = new System.Drawing.Point(241, 369);
this.button1.Size = new System.Drawing.Size(128, 32); button1.Margin = new Padding(10, 10, 10, 0);
this.button1.TabIndex = 173; button1.Name = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click); button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new System.Drawing.Size(128, 32);
button1.TabIndex = 173;
button1.TabStop = false;
// //
// tHorizontalSeparator1 // tHorizontalSeparator1
// //
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) tHorizontalSeparator1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0); tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent; tHorizontalSeparator1.Location = new System.Drawing.Point(10, 337);
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 77); tHorizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); tHorizontalSeparator1.Name = "tHorizontalSeparator1";
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1"; tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); tHorizontalSeparator1.TabIndex = 188;
this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22); tHorizontalSeparator1.TabStop = false;
this.tHorizontalSeparator1.TabIndex = 188;
// //
// numericBox1 // numericBox1
// //
this.numericBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); numericBox1.AcceptButton = null;
this.numericBox1.BackColor = System.Drawing.Color.Transparent; numericBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
this.numericBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); numericBox1.BackColor = System.Drawing.Color.Transparent;
this.numericBox1.Location = new System.Drawing.Point(285, 20); numericBox1.EnableReactiveVisual = true;
this.numericBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); numericBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
this.numericBox1.Name = "numericBox1"; numericBox1.Location = new System.Drawing.Point(285, 20);
this.numericBox1.Padding = new System.Windows.Forms.Padding(8, 8, 7, 7); numericBox1.Margin = new Padding(10, 10, 10, 0);
this.numericBox1.Size = new System.Drawing.Size(84, 34); numericBox1.Maximum = 100;
this.numericBox1.AcceptButton = null; numericBox1.Minimum = 1;
this.numericBox1.TabIndex = 189; numericBox1.Name = "numericBox1";
this.numericBox1.Value = 0; numericBox1.Padding = new Padding(4, 4, 3, 3);
numericBox1.Size = new System.Drawing.Size(84, 32);
numericBox1.TabIndex = 189;
numericBox1.TabStop = false;
numericBox1.Value = 1;
//
// numericBox2
//
numericBox2.AcceptButton = null;
numericBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
numericBox2.BackColor = System.Drawing.Color.Transparent;
numericBox2.EnableReactiveVisual = true;
numericBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
numericBox2.Location = new System.Drawing.Point(285, 62);
numericBox2.Margin = new Padding(10, 10, 10, 0);
numericBox2.Maximum = 100;
numericBox2.Minimum = 1;
numericBox2.Name = "numericBox2";
numericBox2.Padding = new Padding(4, 4, 3, 3);
numericBox2.Size = new System.Drawing.Size(84, 32);
numericBox2.TabIndex = 191;
numericBox2.TabStop = false;
numericBox2.Value = 1;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = System.Drawing.Color.Transparent;
label2.ForeColor = System.Drawing.SystemColors.ControlText;
label2.Location = new System.Drawing.Point(10, 63);
label2.Margin = new Padding(0);
label2.Name = "label2";
label2.Padding = new Padding(0, 9, 0, 10);
label2.Size = new System.Drawing.Size(106, 34);
label2.TabIndex = 190;
label2.Text = "Number of Groups";
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// NewForm // NewForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(384, 161); ClientSize = new System.Drawing.Size(384, 421);
this.Controls.Add(this.numericBox1); Controls.Add(numericBox2);
this.Controls.Add(this.tHorizontalSeparator1); Controls.Add(label2);
this.Controls.Add(this.button1); Controls.Add(numericBox1);
this.Controls.Add(this.label1); Controls.Add(tHorizontalSeparator1);
this.MinimumSize = new System.Drawing.Size(400, 200); Controls.Add(button1);
this.Name = "NewForm"; Controls.Add(label1);
this.Text = "New"; MinimumSize = new System.Drawing.Size(400, 200);
this.ResumeLayout(false); Name = "NewForm";
this.PerformLayout(); Text = "New";
ResumeLayout(false);
PerformLayout();
} }
public MainForm parentForm { get; set; } = null; public NewFormModel Result
private void button1_Click(object sender, EventArgs e)
{ {
if (parentForm != null) get => new NewFormModel()
{ {
parentForm.Clear(numericBox1.Value); ColumnCount = numericBox1.Value,
} GroupCount = numericBox2.Value
};
this.Close();
} }
} }

View File

@ -1,4 +1,64 @@
<root> <?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">

View File

@ -1,279 +1,434 @@
using FizzyLauncher.Models; using System;
using System.Linq;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms; using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.ButtonTextBox; using RyzStudio.Windows.ThemedForms.ButtonTextBox;
using RyzStudio.Windows.ThemedForms.PickerBox; using RyzStudio.Windows.ThemedForms.PickerBox;
using System;
namespace FizzyLauncher namespace FizzyLauncher
{ {
public class OptionsForm : TDialogForm public class OptionsForm : TDialog
{ {
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private TButton button1; private ThButton button1;
private TYesNoPickerBox pickerBox2; private ThYesNoPickerBox yesNoPickerBox2;
private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label6;
private TYesNoPickerBox pickerBox3; private ThYesNoPickerBox yesNoPickerBox3;
private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label8;
private TPickerBox pickerBox1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private TKeyCodeTextBox textBox1; private ThKeyCodeTextBox textBox1;
private ThNumericBox numericBox1;
private Label label4;
private FlowLayoutPanel flowLayoutPanel1;
private TTogglePanel tTogglePanel1;
private TTogglePanel tTogglePanel2;
private ThYesNoPickerBox yesNoPickerBox1;
private Label label2;
private ThYesNoPickerBox yesNoPickerBox4;
private Label label3;
private LauncherSession _appSession = null;
public OptionsForm(MainForm parent) : base() public OptionsForm(LauncherSession appSession)
{ {
InitializeComponent(); InitializeComponent();
parentForm = parent; this.OkButton = button1;
pickerBox1.ComboBox.Items.Clear(); numericBox1.Minimum = 4;
foreach (string item in Enum.GetNames(typeof(LauncherSession.AutoSaveOption))) numericBox1.Maximum = 24;
_appSession = appSession;
if (_appSession != null)
{ {
pickerBox1.ComboBox.Items.Add(item); numericBox1.Value = _appSession.TilesPerRow;
yesNoPickerBox1.Value = _appSession.ShowBigIcons;
textBox1.UpdateKeyCode(_appSession?.ShowToggleHotkey ?? new ThKeyCodeTextBox.Results());
yesNoPickerBox2.Value = _appSession.HideOnClose;
yesNoPickerBox3.Value = _appSession.HideOnExecute;
yesNoPickerBox4.Value = _appSession.AlwaysOnTop;
} }
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0;
} }
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsForm)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsForm));
TKeyCodeTextBox.Results results1 = new TKeyCodeTextBox.Results(); ThKeyCodeTextBox.Results results2 = new ThKeyCodeTextBox.Results();
this.label1 = new System.Windows.Forms.Label(); label1 = new Label();
this.button1 = new TButton(); button1 = new ThButton();
this.pickerBox2 = new TYesNoPickerBox(); yesNoPickerBox2 = new ThYesNoPickerBox();
this.label6 = new System.Windows.Forms.Label(); label6 = new Label();
this.pickerBox3 = new TYesNoPickerBox(); yesNoPickerBox3 = new ThYesNoPickerBox();
this.label7 = new System.Windows.Forms.Label(); label7 = new Label();
this.label8 = new System.Windows.Forms.Label(); tHorizontalSeparator1 = new THorizontalSeparator();
this.pickerBox1 = new TPickerBox(); textBox1 = new ThKeyCodeTextBox();
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); numericBox1 = new ThNumericBox();
this.textBox1 = new TKeyCodeTextBox(); label4 = new Label();
this.SuspendLayout(); flowLayoutPanel1 = new FlowLayoutPanel();
tTogglePanel1 = new TTogglePanel();
yesNoPickerBox1 = new ThYesNoPickerBox();
label2 = new Label();
tTogglePanel2 = new TTogglePanel();
yesNoPickerBox4 = new ThYesNoPickerBox();
label3 = new Label();
flowLayoutPanel1.SuspendLayout();
tTogglePanel1.SuspendLayout();
tTogglePanel2.SuspendLayout();
SuspendLayout();
// //
// label1 // label1
// //
this.label1.AutoSize = true; label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent; label1.BackColor = System.Drawing.Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText; label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 21); label1.Location = new System.Drawing.Point(1, 22);
this.label1.Margin = new System.Windows.Forms.Padding(0); label1.Margin = new Padding(0);
this.label1.Name = "label1"; label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label1.Padding = new Padding(0, 8, 0, 0);
this.label1.Size = new System.Drawing.Size(107, 34); label1.Size = new System.Drawing.Size(115, 23);
this.label1.TabIndex = 153; label1.TabIndex = 153;
this.label1.Text = "Show/Hide Hotkey"; label1.Text = "Show Toggle Hotkey";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// button1 // button1
// //
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); button1.AcceptButton = null;
this.button1.BackColor = System.Drawing.Color.Transparent; button1.ActiveImage = null;
this.button1.IdleImage = null; button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
this.button1.ActiveImage = null; button1.BackColor = System.Drawing.Color.Transparent;
this.button1.LabelText = "&Save"; button1.EnableMenuOnClick = false;
this.button1.Location = new System.Drawing.Point(241, 469); button1.EnableReactiveVisual = true;
this.button1.Margin = new System.Windows.Forms.Padding(10); button1.HoverImage = null;
this.button1.Name = "button1"; button1.IdleImage = null;
this.button1.HoverImage = null; button1.LabelText = "&Save";
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); button1.Location = new System.Drawing.Point(301, 469);
this.button1.Size = new System.Drawing.Size(128, 32); button1.Margin = new Padding(10, 10, 10, 0);
this.button1.TabIndex = 173; button1.Name = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click); button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new System.Drawing.Size(128, 32);
button1.TabIndex = 173;
button1.TabStop = false;
// //
// pickerBox2 // yesNoPickerBox2
// //
this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); yesNoPickerBox2.AcceptButton = null;
this.pickerBox2.BackColor = System.Drawing.Color.Transparent; yesNoPickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
this.pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); yesNoPickerBox2.BackColor = System.Drawing.Color.Transparent;
this.pickerBox2.Location = new System.Drawing.Point(285, 103); yesNoPickerBox2.EnableReactiveVisual = true;
this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); yesNoPickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
this.pickerBox2.Name = "pickerBox2"; yesNoPickerBox2.Location = new System.Drawing.Point(307, 63);
this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); yesNoPickerBox2.Margin = new Padding(10, 10, 10, 0);
this.pickerBox2.Size = new System.Drawing.Size(84, 34); yesNoPickerBox2.Name = "yesNoPickerBox2";
this.pickerBox2.AcceptButton = null; yesNoPickerBox2.Padding = new Padding(4, 4, 3, 3);
this.pickerBox2.TabIndex = 183; yesNoPickerBox2.SelectedIndex = 1;
this.pickerBox2.Value = true; yesNoPickerBox2.Size = new System.Drawing.Size(84, 34);
yesNoPickerBox2.TabIndex = 183;
yesNoPickerBox2.TabStop = false;
yesNoPickerBox2.Value = true;
// //
// label6 // label6
// //
this.label6.AutoSize = true; label6.AutoSize = true;
this.label6.BackColor = System.Drawing.Color.Transparent; label6.BackColor = System.Drawing.Color.Transparent;
this.label6.ForeColor = System.Drawing.SystemColors.ControlText; label6.ForeColor = System.Drawing.SystemColors.ControlText;
this.label6.Location = new System.Drawing.Point(10, 103); label6.Location = new System.Drawing.Point(1, 63);
this.label6.Margin = new System.Windows.Forms.Padding(0); label6.Margin = new Padding(0);
this.label6.Name = "label6"; label6.Name = "label6";
this.label6.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label6.Padding = new Padding(0, 8, 0, 0);
this.label6.Size = new System.Drawing.Size(83, 34); label6.Size = new System.Drawing.Size(83, 23);
this.label6.TabIndex = 182; label6.TabIndex = 182;
this.label6.Text = "Hide On Close"; label6.Text = "Hide On Close";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// pickerBox3 // yesNoPickerBox3
// //
this.pickerBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); yesNoPickerBox3.AcceptButton = null;
this.pickerBox3.BackColor = System.Drawing.Color.Transparent; yesNoPickerBox3.Anchor = AnchorStyles.Top | AnchorStyles.Right;
this.pickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); yesNoPickerBox3.BackColor = System.Drawing.Color.Transparent;
this.pickerBox3.Location = new System.Drawing.Point(285, 144); yesNoPickerBox3.EnableReactiveVisual = true;
this.pickerBox3.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); yesNoPickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F);
this.pickerBox3.Name = "pickerBox3"; yesNoPickerBox3.Location = new System.Drawing.Point(307, 107);
this.pickerBox3.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); yesNoPickerBox3.Margin = new Padding(10, 10, 10, 0);
this.pickerBox3.Size = new System.Drawing.Size(84, 34); yesNoPickerBox3.Name = "yesNoPickerBox3";
this.pickerBox3.AcceptButton = null; yesNoPickerBox3.Padding = new Padding(4, 4, 3, 3);
this.pickerBox3.TabIndex = 185; yesNoPickerBox3.SelectedIndex = 1;
this.pickerBox3.Value = true; yesNoPickerBox3.Size = new System.Drawing.Size(84, 34);
yesNoPickerBox3.TabIndex = 185;
yesNoPickerBox3.TabStop = false;
yesNoPickerBox3.Value = true;
// //
// label7 // label7
// //
this.label7.AutoSize = true; label7.AutoSize = true;
this.label7.BackColor = System.Drawing.Color.Transparent; label7.BackColor = System.Drawing.Color.Transparent;
this.label7.ForeColor = System.Drawing.SystemColors.ControlText; label7.ForeColor = System.Drawing.SystemColors.ControlText;
this.label7.Location = new System.Drawing.Point(10, 144); label7.Location = new System.Drawing.Point(1, 107);
this.label7.Margin = new System.Windows.Forms.Padding(0); label7.Margin = new Padding(0);
this.label7.Name = "label7"; label7.Name = "label7";
this.label7.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label7.Padding = new Padding(0, 8, 0, 0);
this.label7.Size = new System.Drawing.Size(95, 34); label7.Size = new System.Drawing.Size(95, 23);
this.label7.TabIndex = 184; label7.TabIndex = 184;
this.label7.Text = "Hide On Execute"; label7.Text = "Hide On Execute";
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label8
//
this.label8.AutoSize = true;
this.label8.BackColor = System.Drawing.Color.Transparent;
this.label8.ForeColor = System.Drawing.SystemColors.ControlText;
this.label8.Location = new System.Drawing.Point(10, 62);
this.label8.Margin = new System.Windows.Forms.Padding(0);
this.label8.Name = "label8";
this.label8.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label8.Size = new System.Drawing.Size(60, 34);
this.label8.TabIndex = 186;
this.label8.Text = "Auto Save";
this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// pickerBox1
//
this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.pickerBox1.BackColor = System.Drawing.Color.Transparent;
this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.pickerBox1.Location = new System.Drawing.Point(285, 62);
this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
this.pickerBox1.Name = "pickerBox1";
this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5);
this.pickerBox1.Size = new System.Drawing.Size(84, 34);
this.pickerBox1.AcceptButton = null;
this.pickerBox1.TabIndex = 187;
// //
// tHorizontalSeparator1 // tHorizontalSeparator1
// //
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) tHorizontalSeparator1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0); tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent; tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437); tHorizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); tHorizontalSeparator1.Name = "tHorizontalSeparator1";
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1"; tHorizontalSeparator1.Size = new System.Drawing.Size(424, 22);
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); tHorizontalSeparator1.TabIndex = 188;
this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22); tHorizontalSeparator1.TabStop = false;
this.tHorizontalSeparator1.TabIndex = 188;
// //
// textBox1 // textBox1
// //
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) textBox1.AcceptButton = null;
| System.Windows.Forms.AnchorStyles.Right))); textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
this.textBox1.BackColor = System.Drawing.Color.Transparent; textBox1.BackColor = System.Drawing.Color.Transparent;
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); textBox1.EnableReactiveVisual = true;
this.textBox1.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox1.HighlightImage"))); textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
results1.IsAlt = false; textBox1.HighlightImage = (System.Drawing.Image)resources.GetObject("textBox1.HighlightImage");
results1.IsCtrl = false; results2.IsAlt = false;
results1.IsShift = false; results2.IsCtrl = false;
results1.Key = System.Windows.Forms.Keys.None; results2.IsShift = false;
this.textBox1.KeyCodeResults = results1; results2.Key = Keys.None;
this.textBox1.Location = new System.Drawing.Point(192, 20); textBox1.KeyCodeResults = results2;
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); textBox1.Location = new System.Drawing.Point(192, 21);
this.textBox1.Name = "textBox1"; textBox1.Margin = new Padding(10, 10, 10, 0);
this.textBox1.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox1.NormalImage"))); textBox1.Name = "textBox1";
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); textBox1.NormalImage = (System.Drawing.Image)resources.GetObject("textBox1.NormalImage");
this.textBox1.Size = new System.Drawing.Size(177, 35); textBox1.Padding = new Padding(4, 4, 3, 3);
this.textBox1.AcceptButton = null; textBox1.Size = new System.Drawing.Size(199, 32);
this.textBox1.TabIndex = 189; textBox1.TabIndex = 189;
this.textBox1.UseSystemPasswordChar = false; textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// numericBox1
//
numericBox1.AcceptButton = null;
numericBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
numericBox1.BackColor = System.Drawing.Color.Transparent;
numericBox1.EnableReactiveVisual = true;
numericBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
numericBox1.Location = new System.Drawing.Point(252, 22);
numericBox1.Margin = new Padding(10, 10, 10, 0);
numericBox1.Maximum = 100;
numericBox1.Minimum = 1;
numericBox1.Name = "numericBox1";
numericBox1.Padding = new Padding(4, 4, 3, 3);
numericBox1.Size = new System.Drawing.Size(139, 32);
numericBox1.TabIndex = 192;
numericBox1.TabStop = false;
numericBox1.Value = 1;
//
// label4
//
label4.AutoSize = true;
label4.BackColor = System.Drawing.Color.Transparent;
label4.ForeColor = System.Drawing.SystemColors.ControlText;
label4.Location = new System.Drawing.Point(1, 22);
label4.Margin = new Padding(0);
label4.Name = "label4";
label4.Padding = new Padding(0, 8, 0, 0);
label4.Size = new System.Drawing.Size(76, 23);
label4.TabIndex = 193;
label4.Text = "Tiles Per Row";
label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// flowLayoutPanel1
//
flowLayoutPanel1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
flowLayoutPanel1.AutoScroll = true;
flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent;
flowLayoutPanel1.Controls.Add(tTogglePanel1);
flowLayoutPanel1.Controls.Add(tTogglePanel2);
flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
flowLayoutPanel1.Location = new System.Drawing.Point(10, 12);
flowLayoutPanel1.Name = "flowLayoutPanel1";
flowLayoutPanel1.Size = new System.Drawing.Size(424, 412);
flowLayoutPanel1.TabIndex = 194;
flowLayoutPanel1.WrapContents = false;
flowLayoutPanel1.Resize += flowLayoutPanel1_Resize;
//
// tTogglePanel1
//
tTogglePanel1.AutoScrollMargin = new System.Drawing.Size(0, 0);
tTogglePanel1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tTogglePanel1.Controls.Add(yesNoPickerBox1);
tTogglePanel1.Controls.Add(label2);
tTogglePanel1.Controls.Add(label4);
tTogglePanel1.Controls.Add(numericBox1);
tTogglePanel1.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
tTogglePanel1.IsOpen = true;
tTogglePanel1.Location = new System.Drawing.Point(0, 0);
tTogglePanel1.Margin = new Padding(0);
tTogglePanel1.Name = "tTogglePanel1";
tTogglePanel1.Padding = new Padding(0, 22, 0, 0);
tTogglePanel1.Size = new System.Drawing.Size(401, 119);
tTogglePanel1.TabIndex = 0;
tTogglePanel1.Title = "Appearance";
tTogglePanel1.TitleContextMenuStrip = null;
tTogglePanel1.TitleCursor = Cursors.Default;
tTogglePanel1.TitlePadding = new Padding(4, 4, 0, 2);
//
// yesNoPickerBox1
//
yesNoPickerBox1.AcceptButton = null;
yesNoPickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
yesNoPickerBox1.BackColor = System.Drawing.Color.Transparent;
yesNoPickerBox1.EnableReactiveVisual = true;
yesNoPickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
yesNoPickerBox1.Location = new System.Drawing.Point(307, 64);
yesNoPickerBox1.Margin = new Padding(10, 10, 10, 0);
yesNoPickerBox1.Name = "yesNoPickerBox1";
yesNoPickerBox1.Padding = new Padding(4, 4, 3, 3);
yesNoPickerBox1.SelectedIndex = 1;
yesNoPickerBox1.Size = new System.Drawing.Size(84, 34);
yesNoPickerBox1.TabIndex = 195;
yesNoPickerBox1.TabStop = false;
yesNoPickerBox1.Value = true;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = System.Drawing.Color.Transparent;
label2.ForeColor = System.Drawing.SystemColors.ControlText;
label2.Location = new System.Drawing.Point(1, 64);
label2.Margin = new Padding(0);
label2.Name = "label2";
label2.Padding = new Padding(0, 8, 0, 0);
label2.Size = new System.Drawing.Size(87, 23);
label2.TabIndex = 194;
label2.Text = "Show Big Icons";
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// tTogglePanel2
//
tTogglePanel2.AutoScrollMargin = new System.Drawing.Size(0, 0);
tTogglePanel2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
tTogglePanel2.Controls.Add(yesNoPickerBox4);
tTogglePanel2.Controls.Add(label3);
tTogglePanel2.Controls.Add(label1);
tTogglePanel2.Controls.Add(textBox1);
tTogglePanel2.Controls.Add(yesNoPickerBox2);
tTogglePanel2.Controls.Add(yesNoPickerBox3);
tTogglePanel2.Controls.Add(label6);
tTogglePanel2.Controls.Add(label7);
tTogglePanel2.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
tTogglePanel2.IsOpen = true;
tTogglePanel2.Location = new System.Drawing.Point(0, 119);
tTogglePanel2.Margin = new Padding(0);
tTogglePanel2.Name = "tTogglePanel2";
tTogglePanel2.Padding = new Padding(0, 22, 0, 0);
tTogglePanel2.Size = new System.Drawing.Size(401, 206);
tTogglePanel2.TabIndex = 1;
tTogglePanel2.Title = "Behaviour";
tTogglePanel2.TitleContextMenuStrip = null;
tTogglePanel2.TitleCursor = Cursors.Default;
tTogglePanel2.TitlePadding = new Padding(4, 4, 0, 2);
//
// yesNoPickerBox4
//
yesNoPickerBox4.AcceptButton = null;
yesNoPickerBox4.Anchor = AnchorStyles.Top | AnchorStyles.Right;
yesNoPickerBox4.BackColor = System.Drawing.Color.Transparent;
yesNoPickerBox4.EnableReactiveVisual = true;
yesNoPickerBox4.Font = new System.Drawing.Font("Segoe UI", 9F);
yesNoPickerBox4.Location = new System.Drawing.Point(307, 151);
yesNoPickerBox4.Margin = new Padding(10, 10, 10, 0);
yesNoPickerBox4.Name = "yesNoPickerBox4";
yesNoPickerBox4.Padding = new Padding(4, 4, 3, 3);
yesNoPickerBox4.SelectedIndex = 1;
yesNoPickerBox4.Size = new System.Drawing.Size(84, 34);
yesNoPickerBox4.TabIndex = 191;
yesNoPickerBox4.TabStop = false;
yesNoPickerBox4.Value = true;
//
// label3
//
label3.AutoSize = true;
label3.BackColor = System.Drawing.Color.Transparent;
label3.ForeColor = System.Drawing.SystemColors.ControlText;
label3.Location = new System.Drawing.Point(1, 151);
label3.Margin = new Padding(0);
label3.Name = "label3";
label3.Padding = new Padding(0, 8, 0, 0);
label3.Size = new System.Drawing.Size(85, 23);
label3.TabIndex = 190;
label3.Text = "Always On Top";
label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// OptionsForm // OptionsForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(384, 521); ClientSize = new System.Drawing.Size(444, 521);
this.Controls.Add(this.textBox1); Controls.Add(flowLayoutPanel1);
this.Controls.Add(this.tHorizontalSeparator1); Controls.Add(tHorizontalSeparator1);
this.Controls.Add(this.pickerBox1); Controls.Add(button1);
this.Controls.Add(this.label8); MinimumSize = new System.Drawing.Size(460, 560);
this.Controls.Add(this.pickerBox3); Name = "OptionsForm";
this.Controls.Add(this.label7); Text = "Options";
this.Controls.Add(this.pickerBox2); flowLayoutPanel1.ResumeLayout(false);
this.Controls.Add(this.label6); tTogglePanel1.ResumeLayout(false);
this.Controls.Add(this.button1); tTogglePanel1.PerformLayout();
this.Controls.Add(this.label1); tTogglePanel2.ResumeLayout(false);
this.MinimumSize = new System.Drawing.Size(400, 560); tTogglePanel2.PerformLayout();
this.Name = "OptionsForm"; ResumeLayout(false);
this.Text = "Options";
this.ResumeLayout(false);
this.PerformLayout();
} }
protected override void OnShown(EventArgs e) protected override void OnLoad(EventArgs e)
{ {
base.OnShown(e); base.OnLoad(e);
if (parentForm == null) flowLayoutPanel1_Resize(null, e);
{
return;
}
if (parentForm.CurrentSession == null)
{
return;
}
// hotkey
if (parentForm.CurrentSession.HotKey != null)
{
textBox1.UpdateKeyCode(parentForm.CurrentSession.HotKey.IsCtrl, parentForm.CurrentSession.HotKey.IsAlt, parentForm.CurrentSession.HotKey.IsShift, parentForm.CurrentSession.HotKey.KeyCode);
}
pickerBox1.ComboBox.SelectedIndex = (int)parentForm.CurrentSession.AutoSave;
pickerBox2.Value = parentForm.CurrentSession.HideOnClose;
pickerBox3.Value = parentForm.CurrentSession.HideOnClick;
} }
//protected override void OnShown(EventArgs e)
//{
// base.OnShown(e);
public MainForm parentForm { get; set; } = null; // flowLayoutPanel1_Resize(null, e);
//}
private void flowLayoutPanel1_Resize(object sender, EventArgs e)
private void button1_Click(object sender, EventArgs e)
{ {
if (parentForm != null) var width = flowLayoutPanel1.ClientRectangle.Width - SystemInformation.VerticalScrollBarWidth;
foreach (var item in flowLayoutPanel1.Controls.OfType<Control>())
{ {
if (parentForm.CurrentSession == null) parentForm.CurrentSession = new LauncherSession(); item.Width = width;
if (parentForm.CurrentSession.HotKey == null) parentForm.CurrentSession.HotKey = new LauncherSession.HotKeyOptions();
parentForm.CurrentSession.HotKey.IsCtrl = textBox1.KeyCodeResults.IsCtrl;
parentForm.CurrentSession.HotKey.IsAlt = textBox1.KeyCodeResults.IsAlt;
parentForm.CurrentSession.HotKey.IsShift = textBox1.KeyCodeResults.IsShift;
parentForm.CurrentSession.HotKey.Key = textBox1.KeyCodeResults.KeyCode;
parentForm.CurrentSession.AutoSave = (LauncherSession.AutoSaveOption)pickerBox1.ComboBox.SelectedIndex;
parentForm.CurrentSession.HideOnClose = pickerBox2.Value;
parentForm.CurrentSession.HideOnClick = pickerBox3.Value;
} }
}
this.Close(); public LauncherSession Result
{
get
{
if (_appSession == null)
{
_appSession = new LauncherSession();
}
_appSession.TilesPerRow = numericBox1.Value;
_appSession.ShowBigIcons = yesNoPickerBox1.Value;
_appSession.ShowToggleHotkey = textBox1.KeyCodeResults;
_appSession.HideOnClose = yesNoPickerBox2.Value;
_appSession.HideOnExecute = yesNoPickerBox3.Value;
_appSession.AlwaysOnTop = yesNoPickerBox4.Value;
return _appSession;
}
} }
} }

View File

@ -1,4 +1,64 @@
<root> <?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
@ -60,21 +120,22 @@
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="textBox1.HighlightImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="textBox1.HighlightImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAClSURBVDhP7dI/ wQAADsEBuJFr7QAAAN5JREFUOE/tUzsKwkAUXLCyFMHjeIvdB4Gk8ALamU4rsbLaTWz0AOYGOYMewTqe
DgFBGIbxSVTKjcRx3MLqXYCOjkocQcMF3MAZOIKaE5AthOexf2QnbJQKb/JLJvO9XzLFhCgtbHDBveB5 QLEQnZc8WRMSsBYHhrzPzJBin2pC60PPGLs3xl3Bp5DrHe9E1g2tHUH8QMjKmGReketyZkRWh9abfhTZ
DWcfM8ANC0wKnr1LUUsbHXSxxBlJxDtnduy6E04on/Utd0IPOxwxxBT9iHfO7Nh155kV9vmxMXbsVvkv YRimI4jWRPYSBMngkzzjHWtYyx6xK4X0Anz/7rcsxM4BdoxBTuTOqCdEaUyU6DrTuNqxxuXsEXsFDLfg
vvIji4f82Bg7tcUxrpih/NyxOeyMUMVPu0WGd39TzuzQDeEB5/ZKvTSyulEAAAAASUVORK5CYII= UdpOsIa10nr8A34p4CRtJ1jTGoC3PsPiBi78ETXplqzBwU3F5sHHgWWGJ3rHt+3tg+Uu84ek1AsYYd8q
EsfwCwAAAABJRU5ErkJggg==
</value> </value>
</data> </data>
<data name="textBox1.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="textBox1.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADTSURBVDhP7ZI7 wQAADsEBuJFr7QAAANFJREFUOE/tkzEKAjEURANWliJ4HG+h9l5AO7fTSjyCxWpCIBB2b+AZ9AjW6wlc
CsJQEEUfWFmK4HLchdpnA9ppp5W4BBtdQNyBC0ilRf6VdVyBwUL03JdXxC/YWThwmDcz94YJjKmH7/uN LGSdWb9Elw1YiwOP/Pw/E1Ikqqksyzpa670x5goqgfWOM7HFhfAE5jvWNdYFkZq9sdg+laZp13vfBwOY
OI7XaZqekiS5Cr1hpZmTPQemAeILeU4eC/dWr+9kVQRB0MzzvB2GYQfBAsExiqJWHfU0k0ZaeQyNAuxa NjBfnHO9d9jjjB56mZG4UhgW4HXdbykkXl97iMYBnFFPrbUJGDVIOKOHXmYk/hSaW3CUbVT00CvboP8B
X1CYLMu6/MOW4kD2YAK9B9TznGYrj12XVZY0drb4ENJI68q/sR4/YoS9K9+GNHdGLmIEJV+cku1xP4Jh v3TASbZR0RM7YA5KsAT1J2phBUq8wpnEgvg5MMwxvGFte/uVzPLwkZR6AInAKK6aICfTAAAAAElFTkSu
Ri7JQ2erDp3mBs7w6jaFZht74MaYGwmLbkeRGexGAAAAAElFTkSuQmCC QmCC
</value> </value>
</data> </data>
</root> </root>

View File

@ -1,43 +1,49 @@
using FizzyLauncher.Models; using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms; using RyzStudio.Windows.ThemedForms;
using System;
namespace FizzyLauncher.Windows.Forms namespace FizzyLauncher.Windows.Forms
{ {
public class EditGroupForm : TDialogForm public class EditGroupForm : TDialog
{ {
public static void ShowDialog(TilePanelLayout control)
{
EditGroupForm form = new EditGroupForm();
form.TilePanelLayout = control;
form.ShowDialog();
}
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private TButton button1; private ThButton button1;
private TPickerBox pickerBox1; private ThPickerBox pickerBox1;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
private TTextBox textBox1; private ThTextBox textBox1;
public EditGroupForm() : base() public EditGroupForm(TileGroupModel model = null)
{ {
InitializeComponent(); InitializeComponent();
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
this.Text = ((model == null) ? "Add Group" : "Edit Group");
this.OkButton = button1;
pickerBox1.ComboBox.Items.Clear(); pickerBox1.ComboBox.Items.Clear();
pickerBox1.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); pickerBox1.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; if (pickerBox1.ComboBox.Items.Count > 0)
{
pickerBox1.ComboBox.SelectedIndex = 0;
}
if (model != null)
{
textBox1.Text = model.Title?.Trim() ?? string.Empty;
pickerBox1.ComboBox.SelectedIndex = (model.IsExclusive ? 1 : 0);
}
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); this.textBox1 = new ThTextBox();
this.label2 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); this.button1 = new ThButton();
this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TPickerBox(); this.pickerBox1 = new ThPickerBox();
this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.SuspendLayout(); this.SuspendLayout();
// //
@ -97,7 +103,6 @@ namespace FizzyLauncher.Windows.Forms
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
this.button1.Size = new System.Drawing.Size(128, 32); this.button1.Size = new System.Drawing.Size(128, 32);
this.button1.TabIndex = 173; this.button1.TabIndex = 173;
this.button1.Click += new System.EventHandler(this.button1_Click);
// //
// pickerBox1 // pickerBox1
// //
@ -145,30 +150,14 @@ namespace FizzyLauncher.Windows.Forms
} }
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
if (this.TilePanelLayout != null) public TileGroupModel Result
{
get => new TileGroupModel()
{ {
textBox1.Text = this.TilePanelLayout.Model.Title; Title = textBox1.Text?.Trim() ?? string.Empty,
pickerBox1.ComboBox.SelectedIndex = (this.TilePanelLayout.Model.IsExclusive ? 1 : 0); IsExclusive = (pickerBox1.ComboBox.SelectedIndex == 1)
} };
}
public TilePanelLayout TilePanelLayout { get; set; } = null;
private void button1_Click(object sender, EventArgs e)
{
TileGroupModel model = this.TilePanelLayout.Model;
model.Title = textBox1.Text?.Trim();
model.IsExclusive = (pickerBox1.ComboBox.SelectedIndex == 1);
this.TilePanelLayout.UpdateModel(model);
this.Close();
} }
} }

View File

@ -1,309 +1,232 @@
using FizzyLauncher.Models; using System;
using RyzStudio.Windows.ThemedForms; using System.Collections.Generic;
using System;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
namespace FizzyLauncher.Windows.Forms namespace FizzyLauncher.Windows.Forms
{ {
public class EditTileFolderForm : TDialogForm public class EditTileFolderForm : TDialog
{ {
public static void ShowAddDialog(TilePanelLayout control, Point coord)
{
EditTileFolderForm form = new EditTileFolderForm(DialogModeType.Add);
form.TilePanelLayout = control;
form.AimCoord = coord;
form.ShowDialog();
}
public static void ShowEditDialog(TilePanel control)
{
EditTileFolderForm form = new EditTileFolderForm(DialogModeType.Edit);
form.TilePanel = control;
form.ShowDialog();
}
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private TButton button1; private ThButton button1;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
private TTextBox textBox1; private ThTextBox textBox1;
private TListBox listBox1; private ThListBox listBox1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
public enum DialogModeType public EditTileFolderForm(TileModel model = null)
{
Add = 0,
Edit
}
protected DialogModeType dialogMode = DialogModeType.Add;
public EditTileFolderForm(DialogModeType dialogMode) : base()
{ {
InitializeComponent(); InitializeComponent();
this.DialogMode = dialogMode; this.StartPosition = FormStartPosition.WindowsDefaultLocation;
this.OkButton = button1;
if (model != null)
{
this.Text = "Edit Folder";
textBox1.Text = model?.Title ?? string.Empty;
foreach (TileModel item in model.Items ?? new System.Collections.Generic.List<TileModel>())
{
if (item.IsGroup)
{
continue;
}
listBox1.ListBox.Items.Add(item);
}
}
else
{
this.Text = "Add Folder";
}
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); textBox1 = new ThTextBox();
this.label1 = new System.Windows.Forms.Label(); label1 = new Label();
this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); button1 = new ThButton();
this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.listBox1 = new RyzStudio.Windows.ThemedForms.TListBox(); listBox1 = new ThListBox();
this.label2 = new System.Windows.Forms.Label(); label2 = new Label();
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.SuspendLayout(); SuspendLayout();
// //
// textBox1 // textBox1
// //
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) textBox1.AcceptButton = null;
| System.Windows.Forms.AnchorStyles.Right))); textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
this.textBox1.BackColor = System.Drawing.Color.Transparent; textBox1.BackColor = Color.Transparent;
this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); textBox1.EnableReactiveVisual = true;
this.textBox1.Location = new System.Drawing.Point(192, 20); textBox1.Font = new Font("Microsoft Sans Serif", 8.25F);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); textBox1.Location = new Point(109, 20);
this.textBox1.Name = "textBox1"; textBox1.Margin = new Padding(10, 10, 10, 0);
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(177, 35); textBox1.Padding = new Padding(4, 4, 3, 3);
this.textBox1.AcceptButton = null; textBox1.ReadOnly = false;
this.textBox1.TabIndex = 152; textBox1.Size = new Size(260, 35);
this.textBox1.UseSystemPasswordChar = false; textBox1.TabIndex = 152;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
// //
// label1 // label1
// //
this.label1.AutoSize = true; label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent; label1.BackColor = Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText; label1.ForeColor = SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 21); label1.Location = new Point(10, 21);
this.label1.Margin = new System.Windows.Forms.Padding(0); label1.Margin = new Padding(0);
this.label1.Name = "label1"; label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label1.Padding = new Padding(0, 9, 0, 10);
this.label1.Size = new System.Drawing.Size(29, 34); label1.Size = new Size(29, 34);
this.label1.TabIndex = 153; label1.TabIndex = 153;
this.label1.Text = "Title"; label1.Text = "Title";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label1.TextAlign = ContentAlignment.MiddleLeft;
// //
// button1 // button1
// //
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); button1.AcceptButton = null;
this.button1.BackColor = System.Drawing.Color.Transparent; button1.ActiveImage = null;
this.button1.IdleImage = null; button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
this.button1.ActiveImage = null; button1.BackColor = Color.Transparent;
this.button1.LabelText = "&Save"; button1.EnableMenuOnClick = false;
this.button1.Location = new System.Drawing.Point(241, 469); button1.EnableReactiveVisual = true;
this.button1.Margin = new System.Windows.Forms.Padding(10); button1.HoverImage = null;
this.button1.Name = "button1"; button1.IdleImage = null;
this.button1.HoverImage = null; button1.LabelText = "&Save";
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); button1.Location = new Point(241, 469);
this.button1.Size = new System.Drawing.Size(128, 32); button1.Margin = new Padding(10, 10, 10, 0);
this.button1.TabIndex = 173; button1.Name = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click); button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new Size(128, 32);
button1.TabIndex = 173;
button1.TabStop = false;
// //
// horizontalSeparator2 // horizontalSeparator2
// //
this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) horizontalSeparator2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); horizontalSeparator2.AutoScrollMargin = new Size(0, 0);
this.horizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0); horizontalSeparator2.AutoScrollMinSize = new Size(0, 0);
this.horizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0); horizontalSeparator2.BackColor = Color.Transparent;
this.horizontalSeparator2.BackColor = System.Drawing.Color.Transparent; horizontalSeparator2.Location = new Point(10, 61);
this.horizontalSeparator2.Location = new System.Drawing.Point(10, 61); horizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
this.horizontalSeparator2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); horizontalSeparator2.MaximumSize = new Size(4920, 2);
this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); horizontalSeparator2.MinimumSize = new Size(0, 22);
this.horizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22); horizontalSeparator2.Name = "horizontalSeparator2";
this.horizontalSeparator2.Name = "horizontalSeparator2"; horizontalSeparator2.Size = new Size(364, 22);
this.horizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); horizontalSeparator2.TabIndex = 177;
this.horizontalSeparator2.Size = new System.Drawing.Size(364, 22); horizontalSeparator2.TabStop = false;
this.horizontalSeparator2.TabIndex = 177;
// //
// listBox1 // listBox1
// //
this.listBox1.AllowDrop = true; listBox1.AcceptButton = null;
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) listBox1.AllowDrop = true;
| System.Windows.Forms.AnchorStyles.Left) listBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); listBox1.BackColor = Color.Transparent;
this.listBox1.BackColor = System.Drawing.Color.Transparent; listBox1.EnableReactiveVisual = true;
this.listBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); listBox1.Font = new Font("Microsoft Sans Serif", 8.25F);
this.listBox1.Location = new System.Drawing.Point(109, 87); listBox1.Location = new Point(109, 87);
this.listBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); listBox1.Margin = new Padding(10, 10, 10, 0);
this.listBox1.Name = "listBox1"; listBox1.Name = "listBox1";
this.listBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); listBox1.Padding = new Padding(4, 4, 3, 3);
this.listBox1.Size = new System.Drawing.Size(260, 346); listBox1.Size = new Size(260, 346);
this.listBox1.AcceptButton = null; listBox1.TabIndex = 180;
this.listBox1.TabIndex = 180; listBox1.OnAdd += listBox1_OnAdd;
this.listBox1.OnAdd += new System.EventHandler(this.listBox1_OnAdd); listBox1.OnEdit += listBox1_OnEdit;
this.listBox1.OnEdit += new System.EventHandler(this.listBox1_OnEdit); listBox1.DragDrop += listBox1_DragDrop;
this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); listBox1.DragOver += listBox1_DragOver;
this.listBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.listBox1_DragOver);
// //
// label2 // label2
// //
this.label2.AutoSize = true; label2.AutoSize = true;
this.label2.BackColor = System.Drawing.Color.Transparent; label2.BackColor = Color.Transparent;
this.label2.ForeColor = System.Drawing.SystemColors.ControlText; label2.ForeColor = SystemColors.ControlText;
this.label2.Location = new System.Drawing.Point(8, 87); label2.Location = new Point(8, 87);
this.label2.Name = "label2"; label2.Name = "label2";
this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label2.Padding = new Padding(0, 9, 0, 10);
this.label2.Size = new System.Drawing.Size(25, 34); label2.Size = new Size(30, 34);
this.label2.TabIndex = 181; label2.TabIndex = 181;
this.label2.Text = "List"; label2.Text = "Tiles";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label2.TextAlign = ContentAlignment.MiddleLeft;
// //
// tHorizontalSeparator1 // tHorizontalSeparator1
// //
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) tHorizontalSeparator1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); tHorizontalSeparator1.AutoScrollMargin = new Size(0, 0);
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0); tHorizontalSeparator1.AutoScrollMinSize = new Size(0, 0);
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); tHorizontalSeparator1.BackColor = Color.Transparent;
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent; tHorizontalSeparator1.Location = new Point(10, 437);
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437); tHorizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); tHorizontalSeparator1.MaximumSize = new Size(4920, 2);
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); tHorizontalSeparator1.MinimumSize = new Size(0, 22);
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); tHorizontalSeparator1.Name = "tHorizontalSeparator1";
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1"; tHorizontalSeparator1.Size = new Size(364, 22);
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); tHorizontalSeparator1.TabIndex = 182;
this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22); tHorizontalSeparator1.TabStop = false;
this.tHorizontalSeparator1.TabIndex = 182;
// //
// EditTileFolderForm // EditTileFolderForm
// //
this.ClientSize = new System.Drawing.Size(384, 521); ClientSize = new Size(384, 521);
this.Controls.Add(this.tHorizontalSeparator1); Controls.Add(tHorizontalSeparator1);
this.Controls.Add(this.label2); Controls.Add(label2);
this.Controls.Add(this.listBox1); Controls.Add(listBox1);
this.Controls.Add(this.horizontalSeparator2); Controls.Add(horizontalSeparator2);
this.Controls.Add(this.button1); Controls.Add(button1);
this.Controls.Add(this.label1); Controls.Add(label1);
this.Controls.Add(this.textBox1); Controls.Add(textBox1);
this.MinimumSize = new System.Drawing.Size(400, 560); MinimumSize = new Size(400, 560);
this.Name = "EditTileFolderForm"; Name = "EditTileFolderForm";
this.Text = "Add List Tile"; Text = "Add List Tile";
this.ResumeLayout(false); ResumeLayout(false);
this.PerformLayout(); PerformLayout();
} }
protected override void OnShown(EventArgs e)
public TileModel Result
{ {
base.OnShown(e); get
if (this.DialogMode == DialogModeType.Edit)
{ {
listBox1.ListBox.Items.Clear(); var result = new TileModel()
if (this.TilePanel == null) return;
if (this.TilePanel.ModelInfo == null) return;
textBox1.Text = this.TilePanel.ModelInfo.Title;
if (this.TilePanel.ModelInfo.Items != null)
{ {
foreach (TileModel item in this.TilePanel.ModelInfo.Items) Title = textBox1.Text?.Trim() ?? string.Empty,
IsGroup = true,
Items = new List<TileModel>()
};
foreach (TileModel item in listBox1.ListBox.Items.OfType<TileModel>())
{
if (item.IsGroup)
{ {
if (item.IsGroup) continue;
{
continue;
}
listBox1.ListBox.Items.Add(item);
} }
result.Items.Add(item);
} }
return result;
} }
} }
public TilePanelLayout TilePanelLayout { get; set; } = null; private void listBox1_OnAdd(object sender, EventArgs e)
public TilePanel TilePanel { get; set; } = null;
public Point AimCoord { get; set; } = new Point(-1, -1);
public DialogModeType DialogMode
{ {
get => dialogMode; var form = new EditTileForm();
set if (form.ShowDialog() == DialogResult.OK)
{ {
dialogMode = value; listBox1.ListBox.Items.Add(form.Result);
switch (dialogMode)
{
case DialogModeType.Add:
this.Text = "Add Folder";
textBox1.Text = "New Folder";
break;
case DialogModeType.Edit:
this.Text = "Edit Folder";
break;
default: break;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
TileModel model = new TileModel()
{
Title = textBox1.Text?.Trim(),
IsGroup = true
}; };
switch (this.DialogMode)
{
case DialogModeType.Add:
if (!this.AimCoord.Equals(new Point(-1, -1)))
{
model.Position = this.AimCoord;
}
model.Items = new System.Collections.Generic.List<TileModel>();
foreach (TileModel item in listBox1.ListBox.Items.OfType<TileModel>())
{
if (item.IsGroup)
{
continue;
}
model.Items.Add(item);
}
this.TilePanelLayout.AddTile(model);
break;
case DialogModeType.Edit:
model.Items = new System.Collections.Generic.List<TileModel>();
foreach (TileModel item in listBox1.ListBox.Items.OfType<TileModel>())
{
if (item.IsGroup)
{
continue;
}
model.Items.Add(item);
}
this.TilePanel.LoadInfo(model);
break;
default: break;
}
this.Close();
} }
private void listBox1_OnAdd(object sender, EventArgs e) => EditTileForm.ShowAddDialog(listBox1);
private void listBox1_OnEdit(object sender, EventArgs e) private void listBox1_OnEdit(object sender, EventArgs e)
{ {
if (listBox1.ListBox.Items.Count <= 0) if (listBox1.ListBox.Items.Count <= 0)
@ -311,7 +234,8 @@ namespace FizzyLauncher.Windows.Forms
return; return;
} }
if (listBox1.ListBox.SelectedIndex < 0) var n = listBox1.ListBox.SelectedIndex;
if (n < 0)
{ {
return; return;
} }
@ -321,7 +245,12 @@ namespace FizzyLauncher.Windows.Forms
return; return;
} }
EditTileForm.ShowEditDialog(listBox1); var form = new EditTileForm((TileModel)listBox1.ListBox.SelectedItem);
if (form.ShowDialog() == DialogResult.OK)
{
listBox1.ListBox.Items.RemoveAt(n);
listBox1.ListBox.Items.Insert(n, form.Result);
};
} }
private void listBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e) private void listBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e)
@ -338,7 +267,7 @@ namespace FizzyLauncher.Windows.Forms
private void listBox1_DragDrop(object sender, DragEventArgs e) private void listBox1_DragDrop(object sender, DragEventArgs e)
{ {
string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; var fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
if (fileList == null) if (fileList == null)
{ {
return; return;
@ -354,7 +283,7 @@ namespace FizzyLauncher.Windows.Forms
return; return;
} }
TileModel model = new TileModel() var model = new TileModel()
{ {
ProcessFilename = fileList[0], ProcessFilename = fileList[0],
Title = Path.GetFileName(fileList[0]) Title = Path.GetFileName(fileList[0])

View File

@ -1,4 +1,64 @@
<root> <?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">

View File

@ -1,481 +1,363 @@
using FizzyLauncher.Models; using System.Drawing;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms; using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.ButtonTextBox; using RyzStudio.Windows.ThemedForms.ButtonTextBox;
using System;
using System.Drawing;
namespace FizzyLauncher.Windows.Forms namespace FizzyLauncher.Windows.Forms
{ {
public class EditTileForm : TDialogForm public class EditTileForm : TDialog
{ {
public static void ShowAddDialog(TilePanelLayout control, Point coord)
{
EditTileForm form = new EditTileForm(DialogModeType.Add);
form.TilePanelLayout = control;
form.AimCoord = coord;
form.ShowDialog();
}
public static void ShowAddDialog(TListBox control)
{
EditTileForm form = new EditTileForm(DialogModeType.Add);
form.ListBox = control;
form.ShowDialog();
}
public static void ShowEditDialog(TilePanel control)
{
EditTileForm form = new EditTileForm(DialogModeType.Edit);
form.TilePanel = control;
form.ShowDialog();
}
public static void ShowEditDialog(TListBox control)
{
EditTileForm form = new EditTileForm(DialogModeType.Edit);
form.ListBox = control;
form.ShowDialog();
}
private System.Windows.Forms.Label label6; private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7; private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label4; private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private TOpenFileTextBox textBox2; private ThPathDialogTextBox textBox2;
private TTextBox textBox3; private ThTextBox textBox3;
private TFolderTextBox textBox4; private ThPathDialogTextBox textBox4;
private TButton button1; private ThButton button1;
private TPickerBox pickerBox1; private ThPickerBox pickerBox1;
private TPickerBox pickerBox2; private ThPickerBox pickerBox2;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1; private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
private TTextBox textBox1; private ThTextBox textBox1;
public enum DialogModeType public EditTileForm(TileModel model = null)
{
Add = 0,
Edit
}
protected DialogModeType dialogMode = DialogModeType.Add;
public EditTileForm(DialogModeType dialogMode) : base()
{ {
InitializeComponent(); InitializeComponent();
this.DialogMode = dialogMode; this.StartPosition = FormStartPosition.WindowsDefaultLocation;
this.OkButton = button1;
pickerBox1.ComboBox.Items.Clear(); pickerBox1.ComboBox.Items.Clear();
pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" }); pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" });
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0; if (pickerBox1.ComboBox.Items.Count > 0)
{
pickerBox1.ComboBox.SelectedIndex = 0;
}
pickerBox2.ComboBox.Items.Clear(); pickerBox2.ComboBox.Items.Clear();
pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" }); pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0; if (pickerBox2.ComboBox.Items.Count > 0)
{
pickerBox2.ComboBox.SelectedIndex = 0;
}
if (model != null)
{
this.Text = "Edit Tile";
textBox1.Text = model?.Title ?? string.Empty;
textBox2.Text = model?.ProcessFilename ?? string.Empty;
textBox3.Text = model?.ProcessArgument ?? string.Empty;
textBox4.Text = model?.ProcessWorkingDirectory ?? string.Empty;
pickerBox1.ComboBox.SelectedIndex = (int)model.ProcessWindowStyle;
pickerBox2.ComboBox.SelectedIndex = (model.ProcessAsAdmin ? 1 : 0);
}
else
{
this.Text = "Add Tile";
}
} }
private void InitializeComponent() private void InitializeComponent()
{ {
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditTileForm)); textBox1 = new ThTextBox();
this.textBox1 = new TTextBox(); label6 = new Label();
this.label6 = new System.Windows.Forms.Label(); label7 = new Label();
this.label7 = new System.Windows.Forms.Label(); label4 = new Label();
this.label4 = new System.Windows.Forms.Label(); label3 = new Label();
this.label3 = new System.Windows.Forms.Label(); label2 = new Label();
this.label2 = new System.Windows.Forms.Label(); label1 = new Label();
this.label1 = new System.Windows.Forms.Label(); textBox2 = new ThPathDialogTextBox();
this.textBox2 = new TOpenFileTextBox(); textBox3 = new ThTextBox();
this.textBox3 = new TTextBox(); textBox4 = new ThPathDialogTextBox();
this.textBox4 = new TFolderTextBox(); button1 = new ThButton();
this.button1 = new TButton(); pickerBox1 = new ThPickerBox();
this.pickerBox1 = new TPickerBox(); pickerBox2 = new ThPickerBox();
this.pickerBox2 = new TPickerBox(); horizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.horizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); SuspendLayout();
this.SuspendLayout();
// //
// textBox1 // textBox1
// //
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) textBox1.AcceptButton = null;
| System.Windows.Forms.AnchorStyles.Right))); textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
this.textBox1.BackColor = System.Drawing.Color.Transparent; textBox1.BackColor = Color.Transparent;
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); textBox1.EnableReactiveVisual = true;
this.textBox1.Location = new System.Drawing.Point(192, 20); textBox1.Font = new Font("Segoe UI", 9F);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); textBox1.Location = new Point(126, 20);
this.textBox1.Name = "textBox1"; textBox1.Margin = new Padding(10, 10, 10, 0);
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(177, 35); textBox1.Padding = new Padding(4, 4, 3, 3);
this.textBox1.AcceptButton = null; textBox1.ReadOnly = false;
this.textBox1.TabIndex = 152; textBox1.Size = new Size(243, 35);
this.textBox1.UseSystemPasswordChar = false; textBox1.TabIndex = 152;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
// //
// label6 // label6
// //
this.label6.AutoSize = true; label6.AutoSize = true;
this.label6.BackColor = System.Drawing.Color.Transparent; label6.BackColor = Color.Transparent;
this.label6.ForeColor = System.Drawing.SystemColors.ControlText; label6.ForeColor = SystemColors.ControlText;
this.label6.Location = new System.Drawing.Point(10, 250); label6.Location = new Point(10, 250);
this.label6.Name = "label6"; label6.Name = "label6";
this.label6.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label6.Padding = new Padding(0, 9, 0, 10);
this.label6.Size = new System.Drawing.Size(83, 34); label6.Size = new Size(83, 34);
this.label6.TabIndex = 163; label6.TabIndex = 163;
this.label6.Text = "Run As Admin"; label6.Text = "Run As Admin";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label6.TextAlign = ContentAlignment.MiddleLeft;
// //
// label7 // label7
// //
this.label7.AutoSize = true; label7.AutoSize = true;
this.label7.BackColor = System.Drawing.Color.Transparent; label7.BackColor = Color.Transparent;
this.label7.ForeColor = System.Drawing.SystemColors.ControlText; label7.ForeColor = SystemColors.ControlText;
this.label7.Location = new System.Drawing.Point(10, 209); label7.Location = new Point(10, 209);
this.label7.Name = "label7"; label7.Name = "label7";
this.label7.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label7.Padding = new Padding(0, 9, 0, 10);
this.label7.Size = new System.Drawing.Size(79, 34); label7.Size = new Size(79, 34);
this.label7.TabIndex = 161; label7.TabIndex = 161;
this.label7.Text = "Window Style"; label7.Text = "Window Style";
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label7.TextAlign = ContentAlignment.MiddleLeft;
// //
// label4 // label4
// //
this.label4.AutoSize = true; label4.AutoSize = true;
this.label4.BackColor = System.Drawing.Color.Transparent; label4.BackColor = Color.Transparent;
this.label4.ForeColor = System.Drawing.SystemColors.ControlText; label4.ForeColor = SystemColors.ControlText;
this.label4.Location = new System.Drawing.Point(10, 144); label4.Location = new Point(10, 144);
this.label4.Name = "label4"; label4.Name = "label4";
this.label4.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label4.Padding = new Padding(0, 9, 0, 10);
this.label4.Size = new System.Drawing.Size(103, 34); label4.Size = new Size(103, 34);
this.label4.TabIndex = 159; label4.TabIndex = 159;
this.label4.Text = "Working Directory"; label4.Text = "Working Directory";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label4.TextAlign = ContentAlignment.MiddleLeft;
// //
// label3 // label3
// //
this.label3.AutoSize = true; label3.AutoSize = true;
this.label3.BackColor = System.Drawing.Color.Transparent; label3.BackColor = Color.Transparent;
this.label3.ForeColor = System.Drawing.SystemColors.ControlText; label3.ForeColor = SystemColors.ControlText;
this.label3.Location = new System.Drawing.Point(10, 103); label3.Location = new Point(10, 103);
this.label3.Name = "label3"; label3.Name = "label3";
this.label3.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label3.Padding = new Padding(0, 9, 0, 10);
this.label3.Size = new System.Drawing.Size(61, 34); label3.Size = new Size(61, 34);
this.label3.TabIndex = 157; label3.TabIndex = 157;
this.label3.Text = "Argument"; label3.Text = "Argument";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label3.TextAlign = ContentAlignment.MiddleLeft;
// //
// label2 // label2
// //
this.label2.AutoSize = true; label2.AutoSize = true;
this.label2.BackColor = System.Drawing.Color.Transparent; label2.BackColor = Color.Transparent;
this.label2.ForeColor = System.Drawing.SystemColors.ControlText; label2.ForeColor = SystemColors.ControlText;
this.label2.Location = new System.Drawing.Point(10, 62); label2.Location = new Point(10, 62);
this.label2.Name = "label2"; label2.Name = "label2";
this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label2.Padding = new Padding(0, 9, 0, 10);
this.label2.Size = new System.Drawing.Size(55, 34); label2.Size = new Size(55, 34);
this.label2.TabIndex = 155; label2.TabIndex = 155;
this.label2.Text = "Filename"; label2.Text = "Filename";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label2.TextAlign = ContentAlignment.MiddleLeft;
// //
// label1 // label1
// //
this.label1.AutoSize = true; label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent; label1.BackColor = Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText; label1.ForeColor = SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 21); label1.Location = new Point(10, 21);
this.label1.Margin = new System.Windows.Forms.Padding(0); label1.Margin = new Padding(0);
this.label1.Name = "label1"; label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label1.Padding = new Padding(0, 9, 0, 10);
this.label1.Size = new System.Drawing.Size(29, 34); label1.Size = new Size(29, 34);
this.label1.TabIndex = 153; label1.TabIndex = 153;
this.label1.Text = "Title"; label1.Text = "Title";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label1.TextAlign = ContentAlignment.MiddleLeft;
// //
// textBox2 // textBox2
// //
this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) textBox2.AcceptButton = null;
| System.Windows.Forms.AnchorStyles.Right))); textBox2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
this.textBox2.BackColor = System.Drawing.Color.Transparent; textBox2.BackColor = Color.Transparent;
this.textBox2.FileDialog = null; textBox2.DialogMode = ThPathDialogTextBox.DialogType.OpenFile;
this.textBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); textBox2.EnableReactiveVisual = true;
this.textBox2.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox2.HighlightImage"))); textBox2.FolderBrowserDialog = null;
this.textBox2.Location = new System.Drawing.Point(192, 61); textBox2.Font = new Font("Segoe UI", 9F);
this.textBox2.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); textBox2.HighlightImage = null;
this.textBox2.Name = "textBox2"; textBox2.Location = new Point(126, 61);
this.textBox2.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox2.NormalImage"))); textBox2.Margin = new Padding(10, 10, 10, 0);
this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(177, 35); textBox2.NormalImage = null;
this.textBox2.AcceptButton = null; textBox2.OpenFileDialog = null;
this.textBox2.TabIndex = 170; textBox2.Padding = new Padding(4, 4, 3, 3);
this.textBox2.UseSystemPasswordChar = false; textBox2.SaveFileDialog = null;
textBox2.Size = new Size(243, 32);
textBox2.TabIndex = 170;
textBox2.TabStop = false;
textBox2.UseSystemPasswordChar = false;
// //
// textBox3 // textBox3
// //
this.textBox3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) textBox3.AcceptButton = null;
| System.Windows.Forms.AnchorStyles.Right))); textBox3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
this.textBox3.BackColor = System.Drawing.Color.Transparent; textBox3.BackColor = Color.Transparent;
this.textBox3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); textBox3.EnableReactiveVisual = true;
this.textBox3.Location = new System.Drawing.Point(192, 102); textBox3.Font = new Font("Segoe UI", 9F);
this.textBox3.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); textBox3.Location = new Point(147, 102);
this.textBox3.Name = "textBox3"; textBox3.Margin = new Padding(10, 10, 10, 0);
this.textBox3.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); textBox3.Name = "textBox3";
this.textBox3.Size = new System.Drawing.Size(177, 35); textBox3.Padding = new Padding(4, 4, 3, 3);
this.textBox3.AcceptButton = null; textBox3.ReadOnly = false;
this.textBox3.TabIndex = 171; textBox3.Size = new Size(222, 35);
this.textBox3.UseSystemPasswordChar = false; textBox3.TabIndex = 171;
textBox3.TabStop = false;
textBox3.UseSystemPasswordChar = false;
// //
// textBox4 // textBox4
// //
this.textBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) textBox4.AcceptButton = null;
| System.Windows.Forms.AnchorStyles.Right))); textBox4.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
this.textBox4.BackColor = System.Drawing.Color.Transparent; textBox4.BackColor = Color.Transparent;
this.textBox4.FolderDialog = null; textBox4.DialogMode = ThPathDialogTextBox.DialogType.FolderBrowser;
this.textBox4.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); textBox4.EnableReactiveVisual = true;
this.textBox4.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox4.HighlightImage"))); textBox4.FolderBrowserDialog = null;
this.textBox4.Location = new System.Drawing.Point(192, 143); textBox4.Font = new Font("Segoe UI", 9F);
this.textBox4.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3); textBox4.HighlightImage = null;
this.textBox4.Name = "textBox4"; textBox4.Location = new Point(147, 143);
this.textBox4.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox4.NormalImage"))); textBox4.Margin = new Padding(10, 10, 10, 0);
this.textBox4.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); textBox4.Name = "textBox4";
this.textBox4.Size = new System.Drawing.Size(177, 35); textBox4.NormalImage = null;
this.textBox4.AcceptButton = null; textBox4.OpenFileDialog = null;
this.textBox4.TabIndex = 172; textBox4.Padding = new Padding(4, 4, 3, 3);
this.textBox4.UseSystemPasswordChar = false; textBox4.SaveFileDialog = null;
textBox4.Size = new Size(222, 32);
textBox4.TabIndex = 172;
textBox4.TabStop = false;
textBox4.UseSystemPasswordChar = false;
// //
// button1 // button1
// //
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); button1.AcceptButton = null;
this.button1.BackColor = System.Drawing.Color.Transparent; button1.ActiveImage = null;
this.button1.IdleImage = null; button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
this.button1.ActiveImage = null; button1.BackColor = Color.Transparent;
this.button1.LabelText = "&Save"; button1.EnableMenuOnClick = false;
this.button1.Location = new System.Drawing.Point(241, 469); button1.EnableReactiveVisual = true;
this.button1.Margin = new System.Windows.Forms.Padding(10); button1.HoverImage = null;
this.button1.Name = "button1"; button1.IdleImage = null;
this.button1.HoverImage = null; button1.LabelText = "&Save";
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); button1.Location = new Point(241, 469);
this.button1.Size = new System.Drawing.Size(128, 32); button1.Margin = new Padding(10, 10, 10, 0);
this.button1.TabIndex = 173; button1.Name = "button1";
this.button1.Click += new System.EventHandler(this.button1_Click); button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new Size(128, 32);
button1.TabIndex = 173;
button1.TabStop = false;
// //
// pickerBox1 // pickerBox1
// //
this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); pickerBox1.AcceptButton = null;
this.pickerBox1.BackColor = System.Drawing.Color.Transparent; pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); pickerBox1.BackColor = Color.Transparent;
this.pickerBox1.Location = new System.Drawing.Point(241, 209); pickerBox1.EnableReactiveVisual = true;
this.pickerBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); pickerBox1.Font = new Font("Segoe UI", 9F);
this.pickerBox1.Name = "pickerBox1"; pickerBox1.Location = new Point(241, 209);
this.pickerBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); pickerBox1.Margin = new Padding(10, 10, 10, 0);
this.pickerBox1.Size = new System.Drawing.Size(128, 34); pickerBox1.Name = "pickerBox1";
this.pickerBox1.AcceptButton = null; pickerBox1.Padding = new Padding(4, 4, 3, 3);
this.pickerBox1.TabIndex = 174; pickerBox1.SelectedIndex = -1;
pickerBox1.Size = new Size(128, 34);
pickerBox1.TabIndex = 174;
pickerBox1.TabStop = false;
// //
// pickerBox2 // pickerBox2
// //
this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); pickerBox2.AcceptButton = null;
this.pickerBox2.BackColor = System.Drawing.Color.Transparent; pickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
this.pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); pickerBox2.BackColor = Color.Transparent;
this.pickerBox2.Location = new System.Drawing.Point(285, 250); pickerBox2.EnableReactiveVisual = true;
this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); pickerBox2.Font = new Font("Segoe UI", 9F);
this.pickerBox2.Name = "pickerBox2"; pickerBox2.Location = new Point(285, 250);
this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); pickerBox2.Margin = new Padding(10, 10, 10, 0);
this.pickerBox2.Size = new System.Drawing.Size(84, 34); pickerBox2.Name = "pickerBox2";
this.pickerBox2.AcceptButton = null; pickerBox2.Padding = new Padding(4, 4, 3, 3);
this.pickerBox2.TabIndex = 175; pickerBox2.SelectedIndex = -1;
pickerBox2.Size = new Size(84, 34);
pickerBox2.TabIndex = 175;
pickerBox2.TabStop = false;
// //
// horizontalSeparator1 // horizontalSeparator1
// //
this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) horizontalSeparator1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); horizontalSeparator1.AutoScrollMargin = new Size(0, 0);
this.horizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0); horizontalSeparator1.AutoScrollMinSize = new Size(0, 0);
this.horizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); horizontalSeparator1.BackColor = Color.Transparent;
this.horizontalSeparator1.BackColor = System.Drawing.Color.Transparent; horizontalSeparator1.Location = new Point(10, 181);
this.horizontalSeparator1.Location = new System.Drawing.Point(10, 181); horizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
this.horizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); horizontalSeparator1.MaximumSize = new Size(4920, 2);
this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); horizontalSeparator1.MinimumSize = new Size(0, 22);
this.horizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); horizontalSeparator1.Name = "horizontalSeparator1";
this.horizontalSeparator1.Name = "horizontalSeparator1"; horizontalSeparator1.Size = new Size(364, 22);
this.horizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); horizontalSeparator1.TabIndex = 176;
this.horizontalSeparator1.Size = new System.Drawing.Size(364, 22); horizontalSeparator1.TabStop = false;
this.horizontalSeparator1.TabIndex = 176;
// //
// horizontalSeparator2 // horizontalSeparator2
// //
this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) horizontalSeparator2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); horizontalSeparator2.AutoScrollMargin = new Size(0, 0);
this.horizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0); horizontalSeparator2.AutoScrollMinSize = new Size(0, 0);
this.horizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0); horizontalSeparator2.BackColor = Color.Transparent;
this.horizontalSeparator2.BackColor = System.Drawing.Color.Transparent; horizontalSeparator2.Location = new Point(10, 437);
this.horizontalSeparator2.Location = new System.Drawing.Point(10, 437); horizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
this.horizontalSeparator2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); horizontalSeparator2.MaximumSize = new Size(4920, 2);
this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); horizontalSeparator2.MinimumSize = new Size(0, 22);
this.horizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22); horizontalSeparator2.Name = "horizontalSeparator2";
this.horizontalSeparator2.Name = "horizontalSeparator2"; horizontalSeparator2.Size = new Size(364, 22);
this.horizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); horizontalSeparator2.TabIndex = 177;
this.horizontalSeparator2.Size = new System.Drawing.Size(364, 22); horizontalSeparator2.TabStop = false;
this.horizontalSeparator2.TabIndex = 177;
// //
// EditTileForm // EditTileForm
// //
this.ClientSize = new System.Drawing.Size(384, 521); ClientSize = new Size(384, 521);
this.Controls.Add(this.horizontalSeparator2); Controls.Add(horizontalSeparator2);
this.Controls.Add(this.horizontalSeparator1); Controls.Add(horizontalSeparator1);
this.Controls.Add(this.pickerBox2); Controls.Add(pickerBox2);
this.Controls.Add(this.pickerBox1); Controls.Add(pickerBox1);
this.Controls.Add(this.button1); Controls.Add(button1);
this.Controls.Add(this.textBox4); Controls.Add(textBox4);
this.Controls.Add(this.textBox3); Controls.Add(textBox3);
this.Controls.Add(this.textBox2); Controls.Add(textBox2);
this.Controls.Add(this.label6); Controls.Add(label6);
this.Controls.Add(this.label7); Controls.Add(label7);
this.Controls.Add(this.label4); Controls.Add(label4);
this.Controls.Add(this.label3); Controls.Add(label3);
this.Controls.Add(this.label2); Controls.Add(label2);
this.Controls.Add(this.label1); Controls.Add(label1);
this.Controls.Add(this.textBox1); Controls.Add(textBox1);
this.MinimumSize = new System.Drawing.Size(400, 560); MinimumSize = new Size(400, 560);
this.Name = "EditTileForm"; Name = "EditTileForm";
this.Text = "Add Tile"; Text = "Add Tile";
this.ResumeLayout(false); ResumeLayout(false);
this.PerformLayout(); PerformLayout();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
if (this.DialogMode == DialogModeType.Edit)
{
if (this.TilePanel != null)
{
updateModel(this.TilePanel.ModelInfo);
}
else if (this.ListBox != null)
{
if (this.ListBox.ListBox.SelectedItem != null)
{
TileModel model = (this.ListBox.ListBox.SelectedItem as TileModel);
if (model != null)
{
updateModel(model);
}
}
}
}
} }
public TilePanelLayout TilePanelLayout { get; set; } = null; public TileModel Result
public TilePanel TilePanel { get; set; } = null;
public TListBox ListBox { get; set; } = null;
public Point AimCoord { get; set; } = new Point(-1, -1);
public DialogModeType DialogMode
{ {
get => dialogMode; get => new TileModel()
set
{ {
dialogMode = value; Title = textBox1.Text?.Trim() ?? string.Empty,
ProcessFilename = textBox2.Text?.Trim() ?? string.Empty,
switch (dialogMode) ProcessArgument = textBox3.Text?.Trim() ?? string.Empty,
{
case DialogModeType.Add:
this.Text = "Add Tile";
break;
case DialogModeType.Edit:
this.Text = "Edit Tile";
break;
default: break;
}
}
}
private void button1_Click(object sender, EventArgs e)
{
TileModel model = buildModel();
switch (this.DialogMode)
{
case DialogModeType.Add:
if (this.TilePanelLayout != null)
{
this.TilePanelLayout.AddTile(model);
}
else if (this.ListBox != null)
{
int n = this.ListBox.ListBox.Items.Add(model);
this.ListBox.ListBox.SelectedIndex = n;
}
break;
case DialogModeType.Edit:
if (this.TilePanel != null)
{
this.TilePanel.LoadInfo(model);
}
else if (this.ListBox != null)
{
int n = this.ListBox.ListBox.SelectedIndex;
if (n >= 0)
{
this.ListBox.ListBox.Items.RemoveAt(n);
this.ListBox.ListBox.Items.Insert(n, model);
this.ListBox.ListBox.SelectedIndex = n;
}
}
break;
default: break;
}
this.Close();
}
protected TileModel buildModel()
{
TileModel rs = new TileModel()
{
Title = textBox1.Text?.Trim(),
ProcessFilename = textBox2.Text?.Trim(),
ProcessArgument = textBox3.Text?.Trim(),
ProcessWorkingDirectory = textBox4.Text?.Trim(), ProcessWorkingDirectory = textBox4.Text?.Trim(),
ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex, ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex,
ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1) ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1)
}; };
if (this.DialogMode == DialogModeType.Add)
{
if (!this.AimCoord.Equals(new Point(-1, -1)))
{
rs.Position = this.AimCoord;
}
}
return rs;
}
protected void updateModel(TileModel model)
{
if (model == null)
{
return;
}
textBox1.Text = model.Title;
textBox2.Text = model.ProcessFilename;
textBox3.Text = model.ProcessArgument;
textBox4.Text = model.ProcessWorkingDirectory;
pickerBox1.ComboBox.SelectedIndex = (int)model.ProcessWindowStyle;
pickerBox2.ComboBox.SelectedIndex = (model.ProcessAsAdmin ? 1 : 0);
} }
} }

View File

@ -1,4 +1,64 @@
<root> <?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
@ -57,41 +117,4 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="textBox2.HighlightImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vgAADr4B6kKxwAAAAK9JREFUOE/t0zsKwkAURuGp1BWJK3EhIrgAV+EOLLWwtRQLwQdiIbbiIkwynj+O
IVwnyhR2XvjyInNIkXHee8f0cEQBPbDOaKEarSvXhsAJO4wirlB4jipiA3phoIvIrLFChhnKiA3o8Ckw
RR93LNBODVwwwRL62kNKYIxNzQ1FSsDOEHk08HrYJMw/8KtA06/cCef6KJDZgDbTFrHNZO3x9idqOyui
m2+07bvPgHcPXOhtG3D6cUIAAAAASUVORK5CYII=
</value>
</data>
<data name="textBox2.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vgAADr4B6kKxwAAAAMZJREFUOE/tk7sNwjAQQF3BRohJGAQhMQBTsAElFLSUiAKJTxIXhBZlCILNuyRG
iXEQKeg46fmsO/slhU9Za5XWehiXYcD6JElygZ6qhdwTioVDGo4wDXDjsohXdYkvMDTHVa8R9Hb0tpCz
XzqJL5Df/CRYRFE0Yn8nr9M07XcSwBXmXN6QDfncRTCjt6+Rgfla4Adfn3D+ERS4Yht/wY8FxVN2xTac
gLP5qyYLAhmmA4SGyeeEoPkSq3EWydsoB4gRDEqBVU/p15ajstHKCgAAAABJRU5ErkJggg==
</value>
</data>
<data name="textBox4.HighlightImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wAAADsABataJCQAAAJtJREFUOE/t0zEKwkAQheEpvILHSLySlTeJ6AnEzpPYi0ERPIKWKtZKNv9LNS5x
E6xS+OCDJew8tsgYmeCECsGZo1dKXLBwtnghQ2fe0JDPGHecsW6xwgwjNM8tdIgyxQ0qij2gORV9LejK
Bk8dfi3QjGY/C0IISS7/gkEVtP3KfbKEZm0PLZM++IVK0d0rdrAcR8TrnKK7BzPLa7Wb+WX/Nb8PAAAA
AElFTkSuQmCC
</value>
</data>
<data name="textBox4.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wAAADsABataJCQAAALZJREFUOE/tkzEKwjAYRjt4BY9hvZKTN1HsCYqbJzGzKBGb9gY6qjgrxvdJK7ZS
Gpwc/ODBnzTvg0AT5Xk+hB3cwVc456ZRSIqi2MAeafbGEq5Zlg3KY+1Bvkkql89Ya/vsnUCZN8FJYWyM
6ekKnsWkdF9hb8S3I6ioyRnkpa0FXcFbwOXrAjlyawXe+06q/At+qoDh41cOCU4iV8OaQY8pUVEgOnuA
VcSzjRm2UHvOHeisdc7FDwDnJKIbLgP9AAAAAElFTkSuQmCC
</value>
</data>
</root> </root>

View File

@ -1,10 +1,10 @@
using FizzyLauncher.Models; using System;
using RyzStudio.Windows.Forms;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Windows.Forms; using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
namespace FizzyLauncher.Windows.Forms namespace FizzyLauncher.Windows.Forms
{ {

View File

@ -61,16 +61,9 @@
// TilePanel // TilePanel
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(234)))), ((int)(((byte)(234)))), ((int)(((byte)(234)))));
this.Margin = new System.Windows.Forms.Padding(4, 3, 0, 0);
this.MaximumSize = new System.Drawing.Size(82, 81);
this.MinimumSize = new System.Drawing.Size(82, 81);
this.Name = "TilePanel"; this.Name = "TilePanel";
this.Size = new System.Drawing.Size(82, 81);
this.contextMenuStrip1.ResumeLayout(false); this.contextMenuStrip1.ResumeLayout(false);
this.ResumeLayout(false); this.ResumeLayout(false);
} }
#endregion #endregion

View File

@ -4,130 +4,43 @@ using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Windows.Forms; using System.Windows.Forms;
using System.Xml.Linq;
using FizzyLauncher.Models; using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
namespace FizzyLauncher.Windows.Forms namespace FizzyLauncher.Windows.Forms
{ {
public partial class TilePanel : RyzStudio.Windows.Forms.TC1UserControl public partial class TilePanel : RyzStudio.Windows.TileForms.Tile
{ {
protected bool isDragging = false;
protected Point startPosition = new Point();
protected int imageLeft = 0;
protected int imageTop = 11;
protected int labelMargin = 3;
protected int labelTop = 47;
protected Rectangle labelRectangle = new Rectangle();
protected string title = "";
protected Image icon = null;
protected ContextMenuStrip groupContextMenu = null;
protected TileModel modelInfo = new TileModel(); protected TileModel modelInfo = new TileModel();
public TilePanel() : base() public TilePanel()
{ {
InitializeComponent(); InitializeComponent();
this.AllowDrop = true; this.AllowDrop = true;
this.AutoSize = false;
this.BackColor = Color.FromArgb(250, 250, 250);
this.ContextMenuStrip = contextMenuStrip1; this.ContextMenuStrip = contextMenuStrip1;
this.DoubleBuffered = true;
this.Font = new Font(this.Font.FontFamily, 8.25F);
this.ForeColor = Color.FromArgb(99, 105, 119);
this.Size = new Size(70, 70);
this.MaximumSize = this.MinimumSize = this.Size;
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.AllowDrop = true;
this.AutoSize = false;
this.BackColor = Color.FromArgb(250, 250, 250);
this.ContextMenuStrip = contextMenuStrip1;
this.DoubleBuffered = true;
this.Font = new Font(this.Font.FontFamily, 8.25F); this.Font = new Font(this.Font.FontFamily, 8.25F);
this.Size = new Size(70, 70); this.Size = new Size(70, 70);
this.MaximumSize = this.MinimumSize = this.Size;
}
protected override void OnPaint(PaintEventArgs e) this.EnableMovable = true;
{
base.OnPaint(e);
Graphics g = e.Graphics;
if (this.Image != null)
{
g.DrawImage(this.Image, new Point(imageLeft, imageTop));
}
if (!string.IsNullOrWhiteSpace(this.Title))
{
TextRenderer.DrawText(e.Graphics, this.Title, this.Font, labelRectangle, this.ForeColor, TextFormatFlags.HorizontalCenter | TextFormatFlags.NoPadding | TextFormatFlags.EndEllipsis);
}
g.DrawRectangle(new Pen(Color.FromArgb(204, 206, 218), 1), new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - 1), (this.DisplayRectangle.Height - 1)));
}
[Category("Tile"), Browsable(true)]
public Image Image
{
get => icon;
protected set
{
icon = value;
if (icon == null)
{
imageLeft = 0;
}
else
{
imageLeft = (this.Width - icon.Width) / 2;
}
}
}
[Category("Tile"), Browsable(true)]
public string Title
{
get => title;
protected set
{
title = value;
labelRectangle = new Rectangle(labelMargin, labelTop, (this.Width - (labelMargin * 2)), (this.Height - labelTop - 1));
this.Invalidate();
}
} }
[Browsable(false)] [Browsable(false)]
public TileModel ModelInfo => modelInfo; public TileModel ModelInfo => modelInfo;
public TilePanelLayout PanelContainer public RyzStudio.Windows.TileForms.TileContainer TileContainer { get => UIControl.GetParentsUntil<RyzStudio.Windows.TileForms.TileContainer>(this); }
protected MainForm MainForm { get => UIControl.GetParentsUntil<MainForm>(this); }
protected override void OnDragOver(DragEventArgs e)
{ {
get base.OnDragDrop(e);
{
if (this.Parent == null)
{
return null;
}
if (this.Parent.GetType() != typeof(TilePanelLayout)) e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop)) ? DragDropEffects.Link : DragDropEffects.None;
{
return null;
}
return (TilePanelLayout)this.Parent;
}
} }
protected override void OnDragDrop(DragEventArgs e) protected override void OnDragDrop(DragEventArgs e)
@ -138,67 +51,34 @@ namespace FizzyLauncher.Windows.Forms
{ {
this.DropFileList(fileList); this.DropFileList(fileList);
invalidateGroupMenu(this.ModelInfo); InvalidateGroupMenu(this.ModelInfo);
} }
else else
{ {
if (this.PanelContainer != null) //if (this.PanelContainer != null)
{ //{
this.PanelContainer.DropFileList(fileList); // this.PanelContainer.LoadShortcuts(fileList);
} //}
}
}
protected override void OnDragOver(DragEventArgs e)
{
base.OnDragDrop(e);
e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop)) ? DragDropEffects.Link : DragDropEffects.None;
}
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
isDragging = false;
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
TilePanelLayout container = this.PanelContainer;
if (container == null)
{
return;
}
this.BringToFront();
if (((e.Button == MouseButtons.Left) && (Control.ModifierKeys == Keys.Control)) || (e.Button == MouseButtons.Right))
{
isDragging = true;
startPosition = e.Location;
} }
} }
protected override void OnMouseClick(MouseEventArgs e) protected override void OnMouseClick(MouseEventArgs e)
{ {
base.OnMouseClick(e); if (Control.ModifierKeys == Keys.Control)
{
return;
}
if (Control.ModifierKeys == Keys.Control) return; if (this.ModelInfo == null)
if (this.ModelInfo == null) return; {
return;
}
if (e.Button == MouseButtons.Left) if (e.Button == MouseButtons.Left)
{ {
if (this.ModelInfo.IsGroup) if (this.ModelInfo.IsGroup)
{ {
if (groupContextMenu != null) this.LeftContextMenuStrip?.Show(this, e.Location);
{
invalidateGroupMenuSize();
groupContextMenu.Show(this, e.Location);
}
} }
else else
{ {
@ -211,33 +91,57 @@ namespace FizzyLauncher.Windows.Forms
{ {
base.OnMouseDoubleClick(e); base.OnMouseDoubleClick(e);
if (Control.ModifierKeys == Keys.Control) return; if (Control.ModifierKeys == Keys.Control)
{
return;
}
if (e.Button == MouseButtons.Left) if (e.Button == MouseButtons.Left)
{ {
execute(this.ModelInfo); Execute(this.ModelInfo);
} }
} }
protected override void OnMouseMove(MouseEventArgs e)
#region Context Menu
/// <summary>
/// Edit
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void editToolStripMenuItem_Click(object sender, EventArgs e)
{ {
base.OnMouseMove(e); if (this.ModelInfo.IsGroup)
if (isDragging)
{ {
TilePanelLayout layoutPanel = this.PanelContainer; var form = new EditTileFolderForm(this.ModelInfo);
if (layoutPanel == null) if (form.ShowDialog() == DialogResult.OK)
{ {
return; this.LoadInfo(form.Result);
} };
}
int x = (this.Location.X + (e.Location.X - startPosition.X)); else
int y = (this.Location.Y + (e.Location.Y - startPosition.Y)); {
var form = new EditTileForm(this.ModelInfo);
layoutPanel.MoveTile(this, x, y); if (form.ShowDialog() == DialogResult.OK)
{
this.LoadInfo(form.Result);
};
} }
} }
/// <summary>
/// Remove
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void removeToolStripMenuItem_Click(object sender, EventArgs e)
{
this.TileContainer?.Controls?.Remove(this);
}
#endregion
public void DropFileList(string[] fileList) public void DropFileList(string[] fileList)
{ {
@ -294,46 +198,24 @@ namespace FizzyLauncher.Windows.Forms
{ {
this.modelInfo = model; this.modelInfo = model;
this.Image = null; this.LargeIcon = null;
this.Title = model.Title; this.Title = model.Title;
if (this.modelInfo.IsGroup) if (this.modelInfo.IsGroup)
{ {
this.Image = AppResource.folder_32; this.LargeIcon = AppResource.folder_32;
invalidateGroupMenu(this.modelInfo); InvalidateGroupMenu(this.modelInfo);
} }
else else
{ {
this.Image = getIcon(model); this.LargeIcon = RyzStudio.IO.File.GetIcon(model.CleanProcessFilename);
} }
toolTip1.SetToolTip(this, this.Title); toolTip1.SetToolTip(this, this.Title);
} }
private void editToolStripMenuItem_Click(object sender, EventArgs e) protected void Execute(TileModel model)
{
if (this.ModelInfo.IsGroup)
{
EditTileFolderForm.ShowEditDialog(this);
}
else
{
EditTileForm.ShowEditDialog(this);
}
}
private void removeToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.PanelContainer == null)
{
return;
}
this.PanelContainer.Remove(this);
}
protected void execute(TileModel model)
{ {
if (model == null) if (model == null)
{ {
@ -345,159 +227,42 @@ namespace FizzyLauncher.Windows.Forms
return; return;
} }
if (string.IsNullOrWhiteSpace(model.CleanProcessFilename)) if (this.MainForm != null)
{ {
return; if (this.MainForm.CurrentSession?.HideOnExecute ?? true)
}
if (!File.Exists(model.CleanProcessFilename))
{
return;
}
ProcessStartInfo p = new ProcessStartInfo();
p.FileName = model.CleanProcessFilename;
p.WindowStyle = model.ProcessWindowStyle;
p.UseShellExecute = true;
if (!string.IsNullOrWhiteSpace(model.CleanProcessArgument))
{
p.Arguments = model.CleanProcessArgument;
}
if (!string.IsNullOrWhiteSpace(model.CleanProcessWorkingDirectory))
{
p.WorkingDirectory = model.CleanProcessWorkingDirectory;
}
if (model.ProcessAsAdmin)
{
p.Verb = "runas";
}
MainForm parentForm = findMainForm();
if (parentForm != null)
{
if (parentForm.CurrentSession != null)
{ {
if (parentForm.CurrentSession.HideOnClick) this.MainForm.Visible = false;
{
parentForm.Visible = false;
}
} }
} }
try RyzStudio.Diagnostics.Process.Execute(model.CleanProcessFilename, model.CleanProcessWorkingDirectory, model.CleanProcessArgument, model.ProcessWindowStyle, model.ProcessAsAdmin);
{
Process.Start(p);
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
} }
protected Image getIcon(TileModel model) protected void InvalidateGroupMenu(TileModel model)
{ {
if (!File.Exists(model.CleanProcessFilename)) //var iconSize = ((this.PanelContainer?.MainForm?.CurrentSession?.EnableBigIconInFolder ?? true) ? 24 : 16);
var iconSize = 24;
if (this.LeftContextMenuStrip == null)
{ {
return null; this.LeftContextMenuStrip = new ContextMenuStrip();
} }
try this.LeftContextMenuStrip.ImageScalingSize = new Size(iconSize, iconSize);
{ this.LeftContextMenuStrip.Items.Clear();
return Icon.ExtractAssociatedIcon(model.CleanProcessFilename)?.ToBitmap();
}
catch
{
// do nothing
}
return null; foreach (TileModel item in model?.Items ?? new System.Collections.Generic.List<TileModel>())
}
protected void invalidateGroupMenu(TileModel model)
{
if (groupContextMenu == null)
{ {
groupContextMenu = new ContextMenuStrip(); ToolStripItem toolItem = this.LeftContextMenuStrip.Items.Add(item.Title);
} toolItem.Image = RyzStudio.IO.File.GetIcon(item.CleanProcessFilename);
groupContextMenu.Items.Clear();
if (model.Items == null)
{
return;
}
foreach (TileModel item in model.Items)
{
ToolStripItem toolItem = groupContextMenu.Items.Add(item.Title);
toolItem.Image = getIcon(item);
toolItem.Tag = item; toolItem.Tag = item;
toolItem.Click += toolItem_Click; toolItem.Click += (object sender, EventArgs e) =>
}
}
protected void invalidateGroupMenuSize()
{
if (this.PanelContainer != null)
{
if (this.PanelContainer.MainForm != null)
{ {
if (this.PanelContainer.MainForm.CurrentSession != null) var result = UIControl.GetTag<TileModel>((Control)sender);
{
if (this.PanelContainer.MainForm.CurrentSession.EnableBigIconInFolder) Execute(result);
{ };
groupContextMenu.ImageScalingSize = new Size(24, 24);
return;
}
}
}
} }
groupContextMenu.ImageScalingSize = new Size(16, 16);
}
protected MainForm findMainForm()
{
Control item = this;
while (true)
{
item = item.Parent;
if (item == null)
{
return null;
}
if (item.GetType() == typeof(MainForm))
{
return (item as MainForm);
}
}
}
private void toolItem_Click(object sender, EventArgs e)
{
if (sender.GetType() != typeof(ToolStripMenuItem))
{
return;
}
ToolStripMenuItem item = (sender as ToolStripMenuItem);
if (item.Tag == null)
{
return;
}
if (item.Tag.GetType() != typeof(TileModel))
{
return;
}
TileModel model = (item.Tag as TileModel);
execute(model);
} }
} }

View File

@ -45,7 +45,6 @@
this.bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
this.label1 = new System.Windows.Forms.Label();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem();
@ -174,21 +173,6 @@
this.toolStripMenuItem3.Text = "&Remove"; this.toolStripMenuItem3.Text = "&Remove";
this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click); this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click);
// //
// label1
//
this.label1.AutoSize = true;
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(99)))), ((int)(((byte)(105)))), ((int)(((byte)(119)))));
this.label1.Image = global::FizzyLauncher.AppResource.toggle_left_ea_16;
this.label1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label1.Location = new System.Drawing.Point(265, 83);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(0, 15);
this.label1.TabIndex = 2;
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick);
this.label1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick);
//
// toolStripSeparator3 // toolStripSeparator3
// //
this.toolStripSeparator3.Name = "toolStripSeparator3"; this.toolStripSeparator3.Name = "toolStripSeparator3";
@ -222,7 +206,6 @@
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.Transparent; this.BackColor = System.Drawing.Color.Transparent;
this.Controls.Add(this.label1);
this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3); this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.Name = "TilePanelLayout"; this.Name = "TilePanelLayout";
this.Size = new System.Drawing.Size(432, 173); this.Size = new System.Drawing.Size(432, 173);
@ -248,7 +231,6 @@
private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6; private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6;
private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;

View File

@ -4,125 +4,35 @@ using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
using FizzyLauncher.Models; using FizzyLauncher.Models;
using RyzStudio.Windows.Forms; using RyzStudio.Windows.Forms;
namespace FizzyLauncher.Windows.Forms namespace FizzyLauncher.Windows.Forms
{ {
public partial class TilePanelLayout : RyzStudio.Windows.Forms.TC1UserControl public partial class TilePanelLayout : TileGridPanelLayout<TilePanel>
{ {
public static int CalcWidth(int tileCount) => (tileCount * tileSize) + ((tileCount - 1) * margin);
public class Item
{
public TilePanel Tile { get; set; }
public Point Coord { get; set; } = new Point(0, 0);
}
protected const int tileSize = 70;
protected const int margin = 3;
protected const int labelHeight = 20;
protected const int collapseIncrement = 6;
protected const int expandIncrement = 8;
protected TileGroupModel groupModel = null; protected TileGroupModel groupModel = null;
protected List<Item> items = new List<Item>();
protected int collapseHeight = 0;
protected int expandedHeight = 0;
protected bool isAnimating = false;
protected bool isChecked = true;
protected Point lastMousePosition = new Point();
protected Point gridSize = new Point();
public TilePanelLayout(TileGroupModel model) : base() public TilePanelLayout(TileGroupModel model) : base()
{ {
InitializeComponent(); InitializeComponent();
this.AllowDrop = true; this.TitleContextMenuStrip = contextMenuStrip2;
this.BackColor = Color.Transparent; this.ContainerContextMenuStrip = contextMenuStrip1;
this.LoadModel(model); this.LoadModel(model);
label1.Location = new Point(0, 4);
label1.Margin = new Padding(0);
label1.Padding = new Padding(0);
} }
protected override void OnDragDrop(DragEventArgs e) protected override void OnDragDrop(DragEventArgs e)
{ {
string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
this.DropFileList(fileList); this.LoadShortcuts(fileList);
} }
protected override void OnDragOver(DragEventArgs e) public new bool EnableAnimation
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;
}
else
{
e.Effect = DragDropEffects.None;
}
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
this.Margin = new Padding(0);
this.Padding = new Padding(0, 0, 0, 10);
}
protected override async void OnResize(EventArgs e)
{
base.OnResize(e);
await this.InvalidateContainer();
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
lastMousePosition = e.Location;
bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= 20));
if (e.Button == MouseButtons.Left)
{
// do nothing
}
else if (e.Button == MouseButtons.Right)
{
if (isLabel)
{
contextMenuStrip2.Show(this, e.Location);
}
else
{
contextMenuStrip1.Show(this, e.Location);
}
}
}
protected override void OnMouseDoubleClick(MouseEventArgs e) => base.OnMouseClick(e);
public Point GridSize
{
get => gridSize;
}
public bool EnableAnimation
{ {
get get
{ {
@ -137,15 +47,14 @@ namespace FizzyLauncher.Windows.Forms
return false; return false;
} }
return mainForm.CurrentSession.EnableAnimation; base.EnableAnimation = mainForm.CurrentSession.EnableAnimation;
return base.EnableAnimation;
} }
set => base.EnableAnimation = value;
} }
public int CollapseHeight => labelHeight + collapseHeight; public void LoadShortcuts(string[] fileList)
public int ExpandedHeight => expandedHeight + this.Padding.Bottom;
public void DropFileList(string[] fileList)
{ {
if (fileList == null) if (fileList == null)
{ {
@ -204,7 +113,7 @@ namespace FizzyLauncher.Windows.Forms
{ {
Title = groupModel.Title, Title = groupModel.Title,
GridSize = new Size(this.GridSize.X, this.GridSize.Y), GridSize = new Size(this.GridSize.X, this.GridSize.Y),
IsExpanded = isChecked, IsExpanded = this.IsExpanded,
IsExclusive = groupModel.IsExclusive, IsExclusive = groupModel.IsExclusive,
Items = this.Tiles Items = this.Tiles
}; };
@ -213,82 +122,39 @@ namespace FizzyLauncher.Windows.Forms
} }
} }
public FlowLayoutPanel FlowLayoutPanel
{
get
{
Control parentControl = this.Parent;
while (true)
{
if (parentControl == null)
{
return null;
}
if (parentControl.GetType() == typeof(FlowLayoutPanel)) public MainForm MainForm { get => UIControl.GetParentsUntil<MainForm>(this.Parent); }
{
return parentControl as FlowLayoutPanel;
}
parentControl = parentControl.Parent;
}
}
}
public MainForm MainForm
{
get
{
Control parentControl = this.FlowLayoutPanel;
while (true)
{
if (parentControl == null)
{
return null;
}
if (parentControl.GetType() == typeof(MainForm))
{
return parentControl as MainForm;
}
parentControl = parentControl.Parent;
}
}
}
public List<TileModel> Tiles public List<TileModel> Tiles
{ {
get get
{ {
List<TileModel> rs = new List<TileModel>(); List<TileModel> result = new List<TileModel>();
foreach (Item item in items) foreach (GridTileItem item in this.GridTileItems.Where(x => x.Tile.GetType() == typeof(TilePanel)))
{ {
TileModel model = item.Tile.ModelInfo; TileModel model = (item.Tile as TilePanel).ModelInfo;
model.Position = item.Coord; model.Position = item.Coord;
rs.Add(model); result.Add(model);
} }
return rs; return result;
} }
} }
public int TileSize => (tileSize + margin);
public void AddTile(TileModel tile) public void AddTile(TileModel tile)
{ {
Point gridSize = this.GridSize; Point gridSize = this.GridSize;
if (items.Count >= (gridSize.X * gridSize.Y)) if (GridTileItems.Count >= (gridSize.X * gridSize.Y))
{ {
this.SetGridSize(gridSize.X, (gridSize.Y + 1)); this.SetGridSize(gridSize.X, (gridSize.Y + 1));
} }
Point? newCoord = tile.Position; Point? newCoord = tile.Position;
if ((newCoord == null) || hasTile(tile.Position)) if ((newCoord == null) || HasTile(tile.Position))
{ {
newCoord = findLastFreeCoord(); newCoord = FindLastFreeCoord();
} }
if (newCoord == null) if (newCoord == null)
@ -300,9 +166,9 @@ namespace FizzyLauncher.Windows.Forms
TilePanel panel = new TilePanel(); TilePanel panel = new TilePanel();
panel.LoadInfo(tile); panel.LoadInfo(tile);
panel.Location = convertCoordToLocation(tile.Position); panel.Location = ConvertCoordToLocation(tile.Position);
items.Add(new Item() GridTileItems.Add(new GridTileItem()
{ {
Tile = panel, Tile = panel,
Coord = tile.Position Coord = tile.Position
@ -311,92 +177,6 @@ namespace FizzyLauncher.Windows.Forms
this.Controls.Add(panel); this.Controls.Add(panel);
} }
public void Clear()
{
this.Controls.Clear();
}
public async Task Collapse()
{
await Task.Run(() =>
{
if (isAnimating) return;
isAnimating = true;
isChecked = false;
if (this.EnableAnimation)
{
while (this.Height > this.CollapseHeight)
{
UIControl.SetHeight(this, (this.Height - collapseIncrement));
Thread.Sleep(10);
}
}
UIControl.SetHeight(this, this.CollapseHeight);
isAnimating = false;
this.Invalidate(this.DisplayRectangle, false);
});
}
public async Task Expand()
{
await Task.Run(() =>
{
if (isAnimating) return;
isAnimating = true;
isChecked = true;
if (this.EnableAnimation)
{
while (this.Height < this.ExpandedHeight)
{
UIControl.SetHeight(this, (this.Height + expandIncrement));
Thread.Sleep(10);
}
}
UIControl.SetHeight(this, this.ExpandedHeight);
isAnimating = false;
this.Invalidate(this.DisplayRectangle, false);
});
}
public Point GetTilePosition(int posX, int posY)
{
int x = (int)Math.Round(decimal.Divide(posX, this.TileSize));
int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize));
if (x < 0) x = 0;
if (y < 0) y = 0;
return new Point((x * this.TileSize), ((y * this.TileSize) + labelHeight));
}
public async Task InvalidateContainer()
{
if (isAnimating)
{
return;
}
if (isChecked)
{
await this.Expand();
}
else
{
await this.Collapse();
}
}
public void AddGroup() public void AddGroup()
{ {
if (this.FlowLayoutPanel == null) if (this.FlowLayoutPanel == null)
@ -411,34 +191,37 @@ namespace FizzyLauncher.Windows.Forms
})); }));
} }
public void AddRow() => this.SetGridSize(gridSize.X, (gridSize.Y + 1)); public void AddRow() => this.SetGridSize(this.GridSize.X, (this.GridSize.Y + 1));
public void EditGroup() => EditGroupForm.ShowDialog(this); public void EditGroup()
{
//EditGroupForm.ShowDialog(this);
}
public void LoadModel(TileGroupModel model) public async void LoadModel(TileGroupModel model)
{ {
groupModel = model; groupModel = model;
isChecked = groupModel.IsExpanded; this.Title = groupModel?.Title ?? string.Empty;
this.IsExpanded = groupModel.IsExpanded;
label1.Text = " " + groupModel?.Title; //label1.Image = (isExpanded ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
label1.Image = (isChecked ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height); this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height);
this.LoadTiles(model.Items); this.LoadTiles(model.Items);
this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height); this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height);
this.Invalidate(); await this.Invalidate();
} }
public void UpdateModel(TileGroupModel model) public async void UpdateModel(TileGroupModel model)
{ {
groupModel = model; groupModel = model;
isChecked = groupModel.IsExpanded;
label1.Text = " " + groupModel?.Title; this.Title = groupModel?.Title ?? string.Empty;
this.IsExpanded = groupModel.IsExpanded;
this.Invalidate(); await this.Invalidate();
} }
public void LoadTiles(List<TileModel> tiles) public void LoadTiles(List<TileModel> tiles)
@ -456,7 +239,7 @@ namespace FizzyLauncher.Windows.Forms
foreach (TileModel item in tiles) foreach (TileModel item in tiles)
{ {
// resolve final grid position // resolve final grid position
Point? confirmedPosition = resolveCoord(item.Position); Point? confirmedPosition = ResolveCoord(item.Position);
if (confirmedPosition == null) if (confirmedPosition == null)
{ {
continue; continue;
@ -465,9 +248,9 @@ namespace FizzyLauncher.Windows.Forms
// place control // place control
TilePanel panel = new TilePanel(); TilePanel panel = new TilePanel();
panel.LoadInfo(item); panel.LoadInfo(item);
panel.Location = convertCoordToLocation(confirmedPosition.Value); panel.Location = ConvertCoordToLocation(confirmedPosition.Value);
items.Add(new Item() GridTileItems.Add(new GridTileItem()
{ {
Tile = panel, Tile = panel,
Coord = confirmedPosition.Value Coord = confirmedPosition.Value
@ -477,308 +260,26 @@ namespace FizzyLauncher.Windows.Forms
} }
} }
public void MoveTile(TilePanel panel, int posX, int posY) private void SetGridSize(int width, int height)
{ {
Item item = items.Where(x => x.Tile.Equals(panel)).FirstOrDefault(); this.GridSize = new Point(width, height);
if (item == null)
{
return;
}
Point newPosition = convertLocationToCoord_Nearest(posX, posY);
if (!isTileInBounds(newPosition))
{
return;
}
if (hasTile(newPosition))
{
Item swapItem = items.Where(x => x.Coord.Equals(newPosition)).FirstOrDefault();
if (swapItem != null)
{
swapItem.Coord = item.Coord;
swapItem.Tile.Location = convertCoordToLocation(item.Coord);
}
item.Coord = newPosition;
panel.Location = convertCoordToLocation(newPosition);
}
else
{
item.Coord = newPosition;
panel.Location = convertCoordToLocation(newPosition);
}
}
public void MoveTop()
{
if (this.FlowLayoutPanel == null)
{
return;
}
this.FlowLayoutPanel.Controls.SetChildIndex(this, 0);
}
public void MoveUp()
{
if (this.FlowLayoutPanel == null)
{
return;
}
int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this);
if (pos <= 0)
{
return;
}
this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos - 1));
}
public void MoveDown()
{
if (this.FlowLayoutPanel == null)
{
return;
}
int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this);
if (pos >= (this.FlowLayoutPanel.Controls.Count - 1))
{
return;
}
this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos + 1));
}
public void MoveBottom()
{
if (this.FlowLayoutPanel == null)
{
return;
}
this.FlowLayoutPanel.Controls.SetChildIndex(this, (this.FlowLayoutPanel.Controls.Count - 1));
}
public void Remove()
{
if (this.FlowLayoutPanel == null)
{
return;
}
this.FlowLayoutPanel.Controls.Remove(this);
}
public void Remove(TilePanel panel)
{
Item m = items.Where(x => x.Tile.Equals(panel)).FirstOrDefault();
if (m != null)
{
items.Remove(m);
}
this.Controls.Remove(panel);
}
public void SetGridSize(int width, int height)
{
gridSize = new Point(width, height);
groupModel.GridSize = new Size(groupModel.GridSize.Width, height); groupModel.GridSize = new Size(groupModel.GridSize.Width, height);
expandedHeight = (this.TileSize * height) + labelHeight;
int w = CalcWidth(gridSize.X);
this.Size = new Size(w, (isChecked ? this.ExpandedHeight : this.CollapseHeight));
} }
protected Point convertCoordToLocation(Point position) => new Point((position.X * this.TileSize), ((position.Y * this.TileSize) + labelHeight)); protected override async void label1_MouseClick(object sender, MouseEventArgs e)
protected Point convertLocationToCoord(int posX, int posY)
{ {
int x = (int)Math.Ceiling(decimal.Divide(posX, this.TileSize)); base.label1_MouseClick(sender, e);
int y = (int)Math.Ceiling(decimal.Divide((posY - labelHeight), this.TileSize));
x--; if (isAnimating)
y--;
if (x < 0) x = 0;
if (y < 0) y = 0;
return new Point(x, y);
}
protected Point convertLocationToCoord_Nearest(int posX, int posY)
{
int x = (int)Math.Round(decimal.Divide(posX, this.TileSize));
int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize));
if (x < 0) x = 0;
if (y < 0) y = 0;
return new Point(x, y);
}
protected Point? findFirstFreeCoord()
{
Point gridSize = this.GridSize;
for (int y = 0; y < gridSize.Y; y++)
{ {
for (int x = 0; x < gridSize.X; x++) return;
{
if (hasTile(new Point(x, y)))
{
continue;
}
return new Point(x, y);
}
} }
return null;
}
protected Point? findLastFreeCoord()
{
Point gridSize = this.GridSize;
// none available
if (items.Count >= (gridSize.X * gridSize.Y))
{
return null;
}
if (items.Count <= 0)
{
return findFirstFreeCoord();
}
// only one available
if (items.Count >= ((gridSize.X * gridSize.Y) - 1))
{
return findFirstFreeCoord();
}
Point? rv = null;
for (int y = (gridSize.Y - 1); y >= 0; y--)
{
for (int x = (gridSize.X - 1); x >= 0; x--)
{
if (hasTile(new Point(x, y)))
{
if (rv.HasValue)
{
return rv;
}
}
else
{
rv = new Point(x, y);
}
}
}
return null;
}
protected bool hasTile(Point position)
{
if (items == null)
{
return false;
}
if (items.Count <= 0)
{
return false;
}
return (items.Count(x => x.Coord.Equals(position)) > 0);
}
protected bool isTileInBounds(Point position)
{
Point gridSize = this.GridSize;
if (position.X >= gridSize.X)
{
return false;
}
if (position.Y >= gridSize.Y)
{
return false;
}
return true;
}
protected Point? resolveCoord(Point coord)
{
if (!isTileInBounds(coord))
{
return null;
}
if (!hasTile(coord))
{
return coord;
}
return resolveNextCoord(coord);
}
protected Point? resolveNextCoord(Point coord)
{
Point gridSize = this.GridSize;
Point newCoord = coord;
while (true)
{
newCoord.X++;
if (newCoord.X >= gridSize.X)
{
newCoord.Y++;
newCoord.X = 0;
}
if (!isTileInBounds(newCoord))
{
return null;
}
if (hasTile(newCoord))
{
continue;
}
return newCoord;
}
}
private async void label1_MouseClick(object sender, MouseEventArgs e)
{
if (isAnimating) return;
if (e.Button == MouseButtons.Left) if (e.Button == MouseButtons.Left)
{ {
isChecked = !isChecked;
label1.Image = (isChecked ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
this.Invalidate();
await this.InvalidateContainer();
// exclusivity // exclusivity
if (isChecked) if (this.IsExpanded)
{ {
if (this.Model.IsExclusive) if (this.Model.IsExclusive)
{ {
@ -796,12 +297,6 @@ namespace FizzyLauncher.Windows.Forms
} }
} }
} }
label1.Image = (isChecked ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
}
else if (e.Button == MouseButtons.Right)
{
contextMenuStrip2.Show(this, e.Location);
} }
} }
@ -814,9 +309,9 @@ namespace FizzyLauncher.Windows.Forms
/// <param name="e"></param> /// <param name="e"></param>
private void addTileMenuItem_Click(object sender, EventArgs e) private void addTileMenuItem_Click(object sender, EventArgs e)
{ {
Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y); Point coord = ConvertLocationToCoord(lastMousePosition.X, lastMousePosition.Y);
EditTileForm.ShowAddDialog(this, coord); //EditTileForm.ShowAddDialog(this, coord);
} }
/// <summary> /// <summary>
@ -826,9 +321,9 @@ namespace FizzyLauncher.Windows.Forms
/// <param name="e"></param> /// <param name="e"></param>
private void addListTileMenuItem_Click(object sender, EventArgs e) private void addListTileMenuItem_Click(object sender, EventArgs e)
{ {
Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y); Point coord = ConvertLocationToCoord(lastMousePosition.X, lastMousePosition.Y);
EditTileFolderForm.ShowAddDialog(this, coord); //EditTileFolderForm.ShowAddDialog(this, coord);
} }
#endregion #endregion
@ -872,18 +367,18 @@ namespace FizzyLauncher.Windows.Forms
/// <param name="e"></param> /// <param name="e"></param>
private void removeRowToolStripMenuItem_Click_1(object sender, EventArgs e) private void removeRowToolStripMenuItem_Click_1(object sender, EventArgs e)
{ {
if (gridSize.Y <= 1) if (this.GridSize.Y <= 1)
{ {
return; return;
} }
bool rs = items.Exists(x => x.Coord.Y.Equals(gridSize.Y - 1)); bool rs = GridTileItems.Exists(x => x.Coord.Y.Equals(this.GridSize.Y - 1));
if (rs) if (rs)
{ {
return; return;
} }
this.SetGridSize(gridSize.X, (gridSize.Y - 1)); this.SetGridSize(this.GridSize.X, (this.GridSize.Y - 1));
} }
/// <summary> /// <summary>
@ -938,5 +433,6 @@ namespace FizzyLauncher.Windows.Forms
#endregion #endregion
} }
} }

37
Windows/GridTableLayout.Designer.cs generated Normal file
View File

@ -0,0 +1,37 @@
namespace FizzyLauncher.Windows
{
partial class GridTableLayout
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
}
#endregion
}
}

View File

@ -0,0 +1,20 @@
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 FizzyLauncher.Windows
{
public partial class GridTableLayout : RyzStudio.Windows.Forms.T1UserControl
{
public GridTableLayout()
{
InitializeComponent();
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

37
Windows/TileGridPanel.Designer.cs generated Normal file
View File

@ -0,0 +1,37 @@
namespace RyzStudio.Windows.Forms
{
partial class TileGridPanel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
}
#endregion
}
}

72
Windows/TileGridPanel.cs Normal file
View File

@ -0,0 +1,72 @@
namespace RyzStudio.Windows.Forms
{
public partial class TileGridPanel : RyzStudio.Windows.Forms.T1UserControl
{
public TileGridPanel() : base()
{
InitializeComponent();
this.EnableMovable = true;
}
//protected override void OnDragOver(DragEventArgs e)
//{
// base.OnDragDrop(e);
// e.Effect = (e.Data.GetDataPresent(DataFormats.FileDrop)) ? DragDropEffects.Link : DragDropEffects.None;
//}
//protected override void OnMouseUp(MouseEventArgs e)
//{
// base.OnMouseUp(e);
// isDragging = false;
//}
//protected override void OnMouseDown(MouseEventArgs e)
//{
// base.OnMouseDown(e);
// //var parentLayout = this.TileGridLayout;
// //if (parentLayout == null)
// //{
// // return;
// //}
// this.BringToFront();
// if (((e.Button == MouseButtons.Left) && (Control.ModifierKeys == Keys.Control)) || (e.Button == MouseButtons.Right))
// {
// isDragging = true;
// startPosition = e.Location;
// }
//}
//protected override void OnMouseMove(MouseEventArgs e)
//{
// base.OnMouseMove(e);
// if (isDragging)
// {
// //var parentLayout = this.TileGridLayout;
// //if (parentLayout == null)
// //{
// // return;
// //}
// int x = (this.Location.X + (e.Location.X - startPosition.X));
// int y = (this.Location.Y + (e.Location.Y - startPosition.Y));
// //parentLayout.MoveTile(this, x, y);
// this.Location = new Point(x, y);
// }
//}
//public TileGridPanelLayout<Control> TileGridLayout { get => UIControl.GetParentsUntil<TileGridPanelLayout<Control>>(this); }
}
}

120
Windows/TileGridPanel.resx Normal file
View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

67
Windows/TileGridPanelLayout.Designer.cs generated Normal file
View File

@ -0,0 +1,67 @@
using System.Drawing;
using System.Windows.Forms;
namespace RyzStudio.Windows.Forms
{
partial class TileGridPanelLayout<T>
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Component Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
label1 = new System.Windows.Forms.Label();
SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(99)))), ((int)(((byte)(105)))), ((int)(((byte)(119)))));
this.label1.Image = global::FizzyLauncher.AppResource.toggle_left_ea_16;
this.label1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label1.Location = new System.Drawing.Point(0, 4);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Padding = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(0, 15);
this.label1.TabIndex = 2;
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.label1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick);
this.label1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick);
//
// GridLayout2
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
Controls.Add(label1);
Name = "GridLayout2";
ResumeLayout(false);
PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
}
}

View File

@ -0,0 +1,581 @@
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using FizzyLauncher;
using FizzyLauncher.Windows.Forms;
namespace RyzStudio.Windows.Forms
{
public partial class TileGridPanelLayout<T> : RyzStudio.Windows.Forms.TUserControl where T : Control
{
public static int CalcWidth(int tileCount)
=> (tileCount * tileSize) + ((tileCount - 1) * margin);
public class GridTileItem
{
public T Tile { get; set; }
public Point Coord { get; set; } = new Point(0, 0);
}
protected const int tileSize = 70;
protected const int margin = 3;
protected const int labelHeight = 20;
protected const int collapseIncrement = 6;
protected const int expandIncrement = 8;
protected int collapseHeight = 0;
protected int expandedHeight = 0;
protected bool isAnimating = false;
protected bool isExpanded = true;
protected Point lastMousePosition = new Point();
protected Point gridSize = new Point(0, 0);
public TileGridPanelLayout() : base()
{
InitializeComponent();
this.AllowDrop = true;
this.BackColor = Color.Transparent;
this.Margin = new Padding(0);
this.Padding = new Padding(0, 0, 0, 10);
}
protected override void OnControlAdded(ControlEventArgs e)
{
base.OnControlAdded(e);
e.Control.MouseMove += (sender, e) =>
{
this.MoveTile(sender as T, e.X, e.Y);
};
}
private void tilePanel_Move(object sender, EventArgs e)
{
throw new NotImplementedException();
}
protected override void OnDragOver(DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;
}
else
{
e.Effect = DragDropEffects.None;
}
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
lastMousePosition = e.Location;
bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= 20));
if (e.Button == MouseButtons.Left)
{
// do nothing
}
else if (e.Button == MouseButtons.Right)
{
if (isLabel)
{
this.TitleContextMenuStrip?.Show(this, e.Location);
}
else
{
this.ContainerContextMenuStrip?.Show(this, e.Location);
}
}
}
protected override void OnMouseDoubleClick(MouseEventArgs e)
=> base.OnMouseClick(e);
protected override async void OnResize(EventArgs e)
{
base.OnResize(e);
await this.Invalidate();
}
protected virtual async void label1_MouseClick(object sender, MouseEventArgs e)
{
if (isAnimating)
{
return;
}
if (e.Button == MouseButtons.Left)
{
this.IsExpanded = !this.IsExpanded;
//label1.Image = (this.IsExpanded ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
await this.Invalidate();
// exclusivity
//if (this.IsExpanded)
//{
//if (this.Model.IsExclusive)
//{
// if (this.FlowLayoutPanel != null)
// {
// foreach (TilePanelLayout item in this.FlowLayoutPanel.Controls.OfType<TilePanelLayout>())
// {
// if (item.Equals(this))
// {
// continue;
// }
// await item.Collapse();
// }
// }
//}
//}
//label1.Image = (this.IsExpanded ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
}
else if (e.Button == MouseButtons.Right)
{
this.TitleContextMenuStrip?.Show(this, e.Location);
}
}
#region encapsulation
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new Padding Margin { get => base.Margin; set => base.Margin = new Padding(0); }
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new Padding Padding { get => base.Padding; set => base.Padding = new Padding(0, 0, 0, 10); }
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public new ContextMenuStrip ContextMenuStrip { get; set; } = null;
#endregion
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public Point GridSize
{
get => gridSize;
protected set
{
gridSize = value;
expandedHeight = (this.TileSize * value.Y) + labelHeight;
int newWidth = CalcWidth(gridSize.X);
this.Size = new Size(newWidth, (this.IsExpanded ? this.ExpandedHeight : this.CollapseHeight));
}
}
[Category("Appearance")]
public ContextMenuStrip TitleContextMenuStrip { get; set; } = null;
[Category("Appearance")]
public ContextMenuStrip ContainerContextMenuStrip { get; set; } = null;
[Category("Appearance")]
public bool EnableAnimation { get; set; } = false;
[Category("Appearance")]
public string Title { get => label1.Text?.Trim(); set => label1.Text = " " + value; }
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public List<GridTileItem> GridTileItems { get; protected set; } = new List<GridTileItem>();
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public FlowLayoutPanel FlowLayoutPanel { get => UIControl.GetParentsUntil<FlowLayoutPanel>(this.Parent); }
protected int CollapseHeight
=> labelHeight + collapseHeight;
protected int ExpandedHeight
=> expandedHeight + this.Padding.Bottom;
protected int TileSize => (tileSize + margin);
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public bool IsExpanded
{
get => isExpanded;
protected set
{
isExpanded = value;
//label1.Image = (isExpanded ? UIResource1.toggle_right_16 : UIResource1.toggle_left_16);
label1.Image = (isExpanded ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
}
}
public void Clear()
{
this.Controls.Clear();
}
public async Task Collapse()
{
await Task.Run(() =>
{
if (isAnimating) return;
isAnimating = true;
this.IsExpanded = false;
if (this.EnableAnimation)
{
while (this.Height > this.CollapseHeight)
{
UIControl.SetHeight(this, (this.Height - collapseIncrement));
Thread.Sleep(10);
}
}
UIControl.SetHeight(this, this.CollapseHeight);
isAnimating = false;
this.Invalidate(this.DisplayRectangle, false);
});
}
public async Task Expand()
{
await Task.Run(() =>
{
if (isAnimating) return;
isAnimating = true;
this.IsExpanded = true;
if (this.EnableAnimation)
{
while (this.Height < this.ExpandedHeight)
{
UIControl.SetHeight(this, (this.Height + expandIncrement));
Thread.Sleep(10);
}
}
UIControl.SetHeight(this, this.ExpandedHeight);
isAnimating = false;
this.Invalidate(this.DisplayRectangle, false);
});
}
public new async Task Invalidate()
{
base.Invalidate();
if (isAnimating)
{
return;
}
if (this.IsExpanded)
{
await this.Expand();
}
else
{
await this.Collapse();
}
}
public void MoveTop()
{
if (this.FlowLayoutPanel != null)
{
this.FlowLayoutPanel.Controls.SetChildIndex(this, 0);
}
}
public void MoveUp()
{
if (this.FlowLayoutPanel != null)
{
int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this);
if (pos <= 0)
{
return;
}
this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos - 1));
}
}
public void MoveDown()
{
if (this.FlowLayoutPanel != null)
{
int pos = this.FlowLayoutPanel.Controls.GetChildIndex(this);
if (pos >= (this.FlowLayoutPanel.Controls.Count - 1))
{
return;
}
this.FlowLayoutPanel.Controls.SetChildIndex(this, (pos + 1));
}
}
public void MoveBottom()
{
if (this.FlowLayoutPanel != null)
{
this.FlowLayoutPanel.Controls.SetChildIndex(this, (this.FlowLayoutPanel.Controls.Count - 1));
}
}
public void MoveTile(T panel, int posX, int posY)
{
GridTileItem item = this.GridTileItems.Where(x => x.Tile.Equals(panel)).FirstOrDefault();
if (item == null)
{
return;
}
//Point newPosition = ConvertLocationToNearestCoord(posX, posY);
//Point newPosition = ConvertLocationToCoord(posX, posY);
Point newPosition = ConvertLocationToCoord(panel.Location.X, panel.Location.Y);
if (!IsCoordInBounds(newPosition))
{
return;
}
if (HasTile(newPosition))
{
GridTileItem swapItem = this.GridTileItems.Where(x => x.Coord.Equals(newPosition)).FirstOrDefault();
if (swapItem != null)
{
swapItem.Coord = item.Coord;
swapItem.Tile.Location = ConvertCoordToLocation(item.Coord);
}
item.Coord = newPosition;
panel.Location = ConvertCoordToLocation(newPosition);
}
else
{
item.Coord = newPosition;
panel.Location = ConvertCoordToLocation(newPosition);
}
}
public void Remove()
{
if (this.FlowLayoutPanel != null)
{
this.FlowLayoutPanel.Controls.Remove(this);
}
}
public void Remove(T panel)
{
GridTileItem m = this.GridTileItems.Where(x => x.Tile.Equals(panel)).FirstOrDefault();
if (m != null)
{
this.GridTileItems.Remove(m);
}
this.Controls.Remove(panel);
}
//protected Point CalcCoordFromPosition(int posX, int posY)
//{
// int x = (int)Math.Round(decimal.Divide(posX, this.TileSize));
// int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize));
// if (x < 0) x = 0;
// if (y < 0) y = 0;
// return new Point((x * this.TileSize), ((y * this.TileSize) + labelHeight));
//}
protected Point ConvertCoordToLocation(Point position)
=> new Point((position.X * this.TileSize), ((position.Y * this.TileSize) + labelHeight));
protected Point ConvertLocationToCoord(int posX, int posY)
{
int x = (int)Math.Round(decimal.Divide(posX, this.TileSize));
int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize));
//int x = (int)Math.Ceiling(decimal.Divide(posX, this.TileSize));
//int y = (int)Math.Ceiling(decimal.Divide((posY - labelHeight), this.TileSize));
//x--;
//y--;
if (x < 0) x = 0;
if (y < 0) y = 0;
return new Point(x, y);
}
//protected Point ConvertLocationToNearestCoord(int posX, int posY)
//{
// int x = (int)Math.Round(decimal.Divide(posX, this.TileSize));
// int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize));
// if (x < 0) x = 0;
// if (y < 0) y = 0;
// return new Point(x, y);
//}
protected bool HasTile(Point position)
{
if (GridTileItems == null)
{
return false;
}
if (GridTileItems.Count <= 0)
{
return false;
}
return GridTileItems.Any(x => x.Coord.Equals(position));
}
protected bool IsCoordInBounds(Point position)
{
if (position.X >= this.GridSize.X)
{
return false;
}
if (position.Y >= this.GridSize.Y)
{
return false;
}
return true;
}
protected Point? FindFirstFreeCoord()
{
for (int y = 0; y < this.GridSize.Y; y++)
{
for (int x = 0; x < this.GridSize.X; x++)
{
if (HasTile(new Point(x, y)))
{
continue;
}
return new Point(x, y);
}
}
return null;
}
protected Point? FindLastFreeCoord()
{
Point gridSize = this.GridSize;
// none available
if (GridTileItems.Count >= (gridSize.X * gridSize.Y))
{
return null;
}
if (GridTileItems.Count <= 0)
{
return FindFirstFreeCoord();
}
// only one available
if (GridTileItems.Count >= ((gridSize.X * gridSize.Y) - 1))
{
return FindFirstFreeCoord();
}
Point? rv = null;
for (int y = (gridSize.Y - 1); y >= 0; y--)
{
for (int x = (gridSize.X - 1); x >= 0; x--)
{
if (HasTile(new Point(x, y)))
{
if (rv.HasValue)
{
return rv;
}
}
else
{
rv = new Point(x, y);
}
}
}
return null;
}
protected Point? FindNextFreeCoord(Point coord)
{
Point newCoord = coord;
while (true)
{
newCoord.X++;
if (newCoord.X >= this.GridSize.X)
{
newCoord.Y++;
newCoord.X = 0;
}
if (!IsCoordInBounds(newCoord))
{
return null;
}
if (HasTile(newCoord))
{
continue;
}
return newCoord;
}
}
protected Point? ResolveCoord(Point coord)
{
if (!IsCoordInBounds(coord))
{
return null;
}
if (!HasTile(coord))
{
return coord;
}
return FindNextFreeCoord(coord);
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,4 +1,5 @@
rmdir /s /q "bin\Release\" rmdir /s /q "bin\Release\"
dotnet restore skye.sln
dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\64\" dotnet publish skye.sln -r win-x64 -c Release /p:PublishSingleFile=true /p:SelfContained=false /p:PublishReadyToRunfalse=true /p:PublishDir="bin\Release\64\"
##rmdir /s /q "bin\Release\86\" ##rmdir /s /q "bin\Release\86\"

View File

@ -5,6 +5,12 @@ VisualStudioVersion = 17.4.33205.214
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FizzyLauncher", "FizzyLauncher.csproj", "{4833FB27-0817-4720-A54B-180369B0C374}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FizzyLauncher", "FizzyLauncher.csproj", "{4833FB27-0817-4720-A54B-180369B0C374}"
EndProject EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RyzStudio", "..\ryzstudio8\core\RyzStudio.csproj", "{C790A76B-C968-476E-AD96-C8DA6147C0B4}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RyzStudio.Windows.Forms", "..\ryzstudio8\windows.forms\RyzStudio.Windows.Forms.csproj", "{C828C8E9-F46C-444E-8C0F-A2C7887B1117}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RyzStudio.Data.Sqlite", "..\ryzstudio8\data.sqlite\RyzStudio.Data.Sqlite.csproj", "{96E88371-0C86-4574-A507-FF19092C840B}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@ -15,6 +21,18 @@ Global
{4833FB27-0817-4720-A54B-180369B0C374}.Debug|Any CPU.Build.0 = Debug|Any CPU {4833FB27-0817-4720-A54B-180369B0C374}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.ActiveCfg = Release|Any CPU {4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.Build.0 = Release|Any CPU {4833FB27-0817-4720-A54B-180369B0C374}.Release|Any CPU.Build.0 = Release|Any CPU
{C790A76B-C968-476E-AD96-C8DA6147C0B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C790A76B-C968-476E-AD96-C8DA6147C0B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C790A76B-C968-476E-AD96-C8DA6147C0B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C790A76B-C968-476E-AD96-C8DA6147C0B4}.Release|Any CPU.Build.0 = Release|Any CPU
{C828C8E9-F46C-444E-8C0F-A2C7887B1117}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C828C8E9-F46C-444E-8C0F-A2C7887B1117}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C828C8E9-F46C-444E-8C0F-A2C7887B1117}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C828C8E9-F46C-444E-8C0F-A2C7887B1117}.Release|Any CPU.Build.0 = Release|Any CPU
{96E88371-0C86-4574-A507-FF19092C840B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{96E88371-0C86-4574-A507-FF19092C840B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{96E88371-0C86-4574-A507-FF19092C840B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{96E88371-0C86-4574-A507-FF19092C840B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE