Fixed file session manager

Added has-changed detection flag
Fixed dialog result null-value
Changed session manager event names
This commit is contained in:
Ray committed 2024-07-05 22:43:19 +01:00
1 parent f06d311f40
commit 2e3b2998e7
29 files changed
+662 -3257

No files matched your search

-164
View File
@@ -1,164 +0,0 @@
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
namespace FizzyLauncher.Windows.Forms
{
public class EditGroupForm : TDialog
{
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private ThButton button1;
private ThPickerBox pickerBox1;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
private ThTextBox textBox1;
public EditGroupForm(TileGroupModel model = null)
{
InitializeComponent();
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
this.Text = ((model == null) ? "Add Group" : "Edit Group");
this.OkButton = button1;
pickerBox1.ComboBox.Items.Clear();
pickerBox1.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
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()
{
this.textBox1 = new ThTextBox();
this.label2 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.button1 = new ThButton();
this.pickerBox1 = new ThPickerBox();
this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.BackColor = System.Drawing.Color.Transparent;
this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.textBox1.Location = new System.Drawing.Point(192, 20);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
this.textBox1.Name = "textBox1";
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox1.Size = new System.Drawing.Size(177, 35);
this.textBox1.AcceptButton = null;
this.textBox1.TabIndex = 152;
this.textBox1.UseSystemPasswordChar = false;
//
// label2
//
this.label2.AutoSize = true;
this.label2.BackColor = System.Drawing.Color.Transparent;
this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
this.label2.Location = new System.Drawing.Point(10, 62);
this.label2.Name = "label2";
this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label2.Size = new System.Drawing.Size(119, 34);
this.label2.TabIndex = 155;
this.label2.Text = "Show Only Expanded";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label1
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 21);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label1.Size = new System.Drawing.Size(29, 34);
this.label1.TabIndex = 153;
this.label1.Text = "Title";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button1.BackColor = System.Drawing.Color.Transparent;
this.button1.IdleImage = null;
this.button1.ActiveImage = null;
this.button1.LabelText = "&Save";
this.button1.Location = new System.Drawing.Point(241, 469);
this.button1.Margin = new System.Windows.Forms.Padding(10);
this.button1.Name = "button1";
this.button1.HoverImage = null;
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
this.button1.Size = new System.Drawing.Size(128, 32);
this.button1.TabIndex = 173;
//
// 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("Microsoft Sans Serif", 8.25F, 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, 6, 10, 6);
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 = 174;
//
// horizontalSeparator2
//
this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.horizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.horizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.horizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
this.horizontalSeparator2.Location = new System.Drawing.Point(10, 437);
this.horizontalSeparator2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0);
this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
this.horizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
this.horizontalSeparator2.Name = "horizontalSeparator2";
this.horizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
this.horizontalSeparator2.Size = new System.Drawing.Size(364, 22);
this.horizontalSeparator2.TabIndex = 182;
//
// EditGroupForm
//
this.ClientSize = new System.Drawing.Size(384, 521);
this.Controls.Add(this.horizontalSeparator2);
this.Controls.Add(this.pickerBox1);
this.Controls.Add(this.button1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.textBox1);
this.MinimumSize = new System.Drawing.Size(400, 560);
this.Name = "EditGroupForm";
this.Text = "Edit Group";
this.ResumeLayout(false);
this.PerformLayout();
}
public TileGroupModel Result
{
get => new TileGroupModel()
{
Title = textBox1.Text?.Trim() ?? string.Empty,
IsExclusive = (pickerBox1.ComboBox.SelectedIndex == 1)
};
}
}
}
-60
View File
@@ -1,60 +0,0 @@
<root>
<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>
-322
View File
@@ -1,322 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
namespace FizzyLauncher.Windows.Forms
{
public class EditTileFolderForm : TDialog
{
private System.Windows.Forms.Label label1;
private ThButton button1;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
private ThTextBox textBox1;
private ThListBox listBox1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private System.Windows.Forms.Label label2;
public EditTileFolderForm(TileModel model = null)
{
InitializeComponent();
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()
{
textBox1 = new ThTextBox();
label1 = new Label();
button1 = new ThButton();
horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
listBox1 = new ThListBox();
label2 = new Label();
tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
SuspendLayout();
//
// textBox1
//
textBox1.AcceptButton = null;
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox1.BackColor = Color.Transparent;
textBox1.EnableReactiveVisual = true;
textBox1.Font = new Font("Microsoft Sans Serif", 8.25F);
textBox1.Location = new Point(109, 20);
textBox1.Margin = new Padding(10, 10, 10, 0);
textBox1.Name = "textBox1";
textBox1.Padding = new Padding(4, 4, 3, 3);
textBox1.ReadOnly = false;
textBox1.Size = new Size(260, 35);
textBox1.TabIndex = 152;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// label1
//
label1.AutoSize = true;
label1.BackColor = Color.Transparent;
label1.ForeColor = SystemColors.ControlText;
label1.Location = new Point(10, 21);
label1.Margin = new Padding(0);
label1.Name = "label1";
label1.Padding = new Padding(0, 9, 0, 10);
label1.Size = new Size(29, 34);
label1.TabIndex = 153;
label1.Text = "Title";
label1.TextAlign = ContentAlignment.MiddleLeft;
//
// button1
//
button1.AcceptButton = null;
button1.ActiveImage = null;
button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
button1.BackColor = Color.Transparent;
button1.EnableMenuOnClick = false;
button1.EnableReactiveVisual = true;
button1.HoverImage = null;
button1.IdleImage = null;
button1.LabelText = "&Save";
button1.Location = new Point(241, 469);
button1.Margin = new Padding(10, 10, 10, 0);
button1.Name = "button1";
button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new Size(128, 32);
button1.TabIndex = 173;
button1.TabStop = false;
//
// horizontalSeparator2
//
horizontalSeparator2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
horizontalSeparator2.AutoScrollMargin = new Size(0, 0);
horizontalSeparator2.AutoScrollMinSize = new Size(0, 0);
horizontalSeparator2.BackColor = Color.Transparent;
horizontalSeparator2.Location = new Point(10, 61);
horizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
horizontalSeparator2.MaximumSize = new Size(4920, 2);
horizontalSeparator2.MinimumSize = new Size(0, 22);
horizontalSeparator2.Name = "horizontalSeparator2";
horizontalSeparator2.Size = new Size(364, 22);
horizontalSeparator2.TabIndex = 177;
horizontalSeparator2.TabStop = false;
//
// listBox1
//
listBox1.AcceptButton = null;
listBox1.AllowDrop = true;
listBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
listBox1.BackColor = Color.Transparent;
listBox1.EnableReactiveVisual = true;
listBox1.Font = new Font("Microsoft Sans Serif", 8.25F);
listBox1.Location = new Point(109, 87);
listBox1.Margin = new Padding(10, 10, 10, 0);
listBox1.Name = "listBox1";
listBox1.Padding = new Padding(4, 4, 3, 3);
listBox1.Size = new Size(260, 346);
listBox1.TabIndex = 180;
listBox1.OnAdd += listBox1_OnAdd;
listBox1.OnEdit += listBox1_OnEdit;
listBox1.DragDrop += listBox1_DragDrop;
listBox1.DragOver += listBox1_DragOver;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = Color.Transparent;
label2.ForeColor = SystemColors.ControlText;
label2.Location = new Point(8, 87);
label2.Name = "label2";
label2.Padding = new Padding(0, 9, 0, 10);
label2.Size = new Size(30, 34);
label2.TabIndex = 181;
label2.Text = "Tiles";
label2.TextAlign = ContentAlignment.MiddleLeft;
//
// tHorizontalSeparator1
//
tHorizontalSeparator1.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
tHorizontalSeparator1.AutoScrollMargin = new Size(0, 0);
tHorizontalSeparator1.AutoScrollMinSize = new Size(0, 0);
tHorizontalSeparator1.BackColor = Color.Transparent;
tHorizontalSeparator1.Location = new Point(10, 437);
tHorizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
tHorizontalSeparator1.MaximumSize = new Size(4920, 2);
tHorizontalSeparator1.MinimumSize = new Size(0, 22);
tHorizontalSeparator1.Name = "tHorizontalSeparator1";
tHorizontalSeparator1.Size = new Size(364, 22);
tHorizontalSeparator1.TabIndex = 182;
tHorizontalSeparator1.TabStop = false;
//
// EditTileFolderForm
//
ClientSize = new Size(384, 521);
Controls.Add(tHorizontalSeparator1);
Controls.Add(label2);
Controls.Add(listBox1);
Controls.Add(horizontalSeparator2);
Controls.Add(button1);
Controls.Add(label1);
Controls.Add(textBox1);
MinimumSize = new Size(400, 560);
Name = "EditTileFolderForm";
Text = "Add List Tile";
ResumeLayout(false);
PerformLayout();
}
public TileModel Result
{
get
{
var result = new TileModel()
{
Title = textBox1.Text?.Trim() ?? string.Empty,
IsGroup = true,
Items = new List<TileModel>()
};
foreach (TileModel item in listBox1.ListBox.Items.OfType<TileModel>())
{
if (item.IsGroup)
{
continue;
}
result.Items.Add(item);
}
return result;
}
}
private void listBox1_OnAdd(object sender, EventArgs e)
{
var form = new EditTileForm();
if (form.ShowDialog() == DialogResult.OK)
{
listBox1.ListBox.Items.Add(form.Result);
};
}
private void listBox1_OnEdit(object sender, EventArgs e)
{
if (listBox1.ListBox.Items.Count <= 0)
{
return;
}
var n = listBox1.ListBox.SelectedIndex;
if (n < 0)
{
return;
}
if (listBox1.ListBox.SelectedItem == null)
{
return;
}
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)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effect = DragDropEffects.Link;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{
var fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
if (fileList == null)
{
return;
}
if (fileList.Length <= 0)
{
return;
}
if (string.IsNullOrWhiteSpace(fileList[0]))
{
return;
}
var model = new TileModel()
{
ProcessFilename = fileList[0],
Title = Path.GetFileName(fileList[0])
};
// exe
if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase))
{
if (File.Exists(fileList[0]))
{
try
{
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]);
if (fvi != null)
{
model.Title = fvi.ProductName;
}
}
catch
{
// do nothing
}
}
if (string.IsNullOrWhiteSpace(model.Title))
{
model.Title = Path.GetFileNameWithoutExtension(fileList[0]);
}
}
listBox1.ListBox.Items.Add(model);
}
}
}
-120
View File
@@ -1,120 +0,0 @@
<?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>
-364
View File
@@ -1,364 +0,0 @@
using System.Drawing;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
namespace FizzyLauncher.Windows.Forms
{
public class EditTileForm : TDialog
{
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label label1;
private ThPathDialogTextBox textBox2;
private ThTextBox textBox3;
private ThPathDialogTextBox textBox4;
private ThButton button1;
private ThPickerBox pickerBox1;
private ThPickerBox pickerBox2;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1;
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
private ThTextBox textBox1;
public EditTileForm(TileModel model = null)
{
InitializeComponent();
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
this.OkButton = button1;
pickerBox1.ComboBox.Items.Clear();
pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" });
if (pickerBox1.ComboBox.Items.Count > 0)
{
pickerBox1.ComboBox.SelectedIndex = 0;
}
pickerBox2.ComboBox.Items.Clear();
pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
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()
{
textBox1 = new ThTextBox();
label6 = new Label();
label7 = new Label();
label4 = new Label();
label3 = new Label();
label2 = new Label();
label1 = new Label();
textBox2 = new ThPathDialogTextBox();
textBox3 = new ThTextBox();
textBox4 = new ThPathDialogTextBox();
button1 = new ThButton();
pickerBox1 = new ThPickerBox();
pickerBox2 = new ThPickerBox();
horizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
SuspendLayout();
//
// textBox1
//
textBox1.AcceptButton = null;
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox1.BackColor = Color.Transparent;
textBox1.EnableReactiveVisual = true;
textBox1.Font = new Font("Segoe UI", 9F);
textBox1.Location = new Point(126, 20);
textBox1.Margin = new Padding(10, 10, 10, 0);
textBox1.Name = "textBox1";
textBox1.Padding = new Padding(4, 4, 3, 3);
textBox1.ReadOnly = false;
textBox1.Size = new Size(243, 35);
textBox1.TabIndex = 152;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// label6
//
label6.AutoSize = true;
label6.BackColor = Color.Transparent;
label6.ForeColor = SystemColors.ControlText;
label6.Location = new Point(10, 250);
label6.Name = "label6";
label6.Padding = new Padding(0, 9, 0, 10);
label6.Size = new Size(83, 34);
label6.TabIndex = 163;
label6.Text = "Run As Admin";
label6.TextAlign = ContentAlignment.MiddleLeft;
//
// label7
//
label7.AutoSize = true;
label7.BackColor = Color.Transparent;
label7.ForeColor = SystemColors.ControlText;
label7.Location = new Point(10, 209);
label7.Name = "label7";
label7.Padding = new Padding(0, 9, 0, 10);
label7.Size = new Size(79, 34);
label7.TabIndex = 161;
label7.Text = "Window Style";
label7.TextAlign = ContentAlignment.MiddleLeft;
//
// label4
//
label4.AutoSize = true;
label4.BackColor = Color.Transparent;
label4.ForeColor = SystemColors.ControlText;
label4.Location = new Point(10, 144);
label4.Name = "label4";
label4.Padding = new Padding(0, 9, 0, 10);
label4.Size = new Size(103, 34);
label4.TabIndex = 159;
label4.Text = "Working Directory";
label4.TextAlign = ContentAlignment.MiddleLeft;
//
// label3
//
label3.AutoSize = true;
label3.BackColor = Color.Transparent;
label3.ForeColor = SystemColors.ControlText;
label3.Location = new Point(10, 103);
label3.Name = "label3";
label3.Padding = new Padding(0, 9, 0, 10);
label3.Size = new Size(61, 34);
label3.TabIndex = 157;
label3.Text = "Argument";
label3.TextAlign = ContentAlignment.MiddleLeft;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = Color.Transparent;
label2.ForeColor = SystemColors.ControlText;
label2.Location = new Point(10, 62);
label2.Name = "label2";
label2.Padding = new Padding(0, 9, 0, 10);
label2.Size = new Size(55, 34);
label2.TabIndex = 155;
label2.Text = "Filename";
label2.TextAlign = ContentAlignment.MiddleLeft;
//
// label1
//
label1.AutoSize = true;
label1.BackColor = Color.Transparent;
label1.ForeColor = SystemColors.ControlText;
label1.Location = new Point(10, 21);
label1.Margin = new Padding(0);
label1.Name = "label1";
label1.Padding = new Padding(0, 9, 0, 10);
label1.Size = new Size(29, 34);
label1.TabIndex = 153;
label1.Text = "Title";
label1.TextAlign = ContentAlignment.MiddleLeft;
//
// textBox2
//
textBox2.AcceptButton = null;
textBox2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox2.BackColor = Color.Transparent;
textBox2.DialogMode = ThPathDialogTextBox.DialogType.OpenFile;
textBox2.EnableReactiveVisual = true;
textBox2.FolderBrowserDialog = null;
textBox2.Font = new Font("Segoe UI", 9F);
textBox2.HighlightImage = null;
textBox2.Location = new Point(126, 61);
textBox2.Margin = new Padding(10, 10, 10, 0);
textBox2.Name = "textBox2";
textBox2.NormalImage = null;
textBox2.OpenFileDialog = null;
textBox2.Padding = new Padding(4, 4, 3, 3);
textBox2.SaveFileDialog = null;
textBox2.Size = new Size(243, 32);
textBox2.TabIndex = 170;
textBox2.TabStop = false;
textBox2.UseSystemPasswordChar = false;
//
// textBox3
//
textBox3.AcceptButton = null;
textBox3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox3.BackColor = Color.Transparent;
textBox3.EnableReactiveVisual = true;
textBox3.Font = new Font("Segoe UI", 9F);
textBox3.Location = new Point(147, 102);
textBox3.Margin = new Padding(10, 10, 10, 0);
textBox3.Name = "textBox3";
textBox3.Padding = new Padding(4, 4, 3, 3);
textBox3.ReadOnly = false;
textBox3.Size = new Size(222, 35);
textBox3.TabIndex = 171;
textBox3.TabStop = false;
textBox3.UseSystemPasswordChar = false;
//
// textBox4
//
textBox4.AcceptButton = null;
textBox4.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox4.BackColor = Color.Transparent;
textBox4.DialogMode = ThPathDialogTextBox.DialogType.FolderBrowser;
textBox4.EnableReactiveVisual = true;
textBox4.FolderBrowserDialog = null;
textBox4.Font = new Font("Segoe UI", 9F);
textBox4.HighlightImage = null;
textBox4.Location = new Point(147, 143);
textBox4.Margin = new Padding(10, 10, 10, 0);
textBox4.Name = "textBox4";
textBox4.NormalImage = null;
textBox4.OpenFileDialog = null;
textBox4.Padding = new Padding(4, 4, 3, 3);
textBox4.SaveFileDialog = null;
textBox4.Size = new Size(222, 32);
textBox4.TabIndex = 172;
textBox4.TabStop = false;
textBox4.UseSystemPasswordChar = false;
//
// button1
//
button1.AcceptButton = null;
button1.ActiveImage = null;
button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
button1.BackColor = Color.Transparent;
button1.EnableMenuOnClick = false;
button1.EnableReactiveVisual = true;
button1.HoverImage = null;
button1.IdleImage = null;
button1.LabelText = "&Save";
button1.Location = new Point(241, 469);
button1.Margin = new Padding(10, 10, 10, 0);
button1.Name = "button1";
button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new Size(128, 32);
button1.TabIndex = 173;
button1.TabStop = false;
//
// pickerBox1
//
pickerBox1.AcceptButton = null;
pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox1.BackColor = Color.Transparent;
pickerBox1.EnableReactiveVisual = true;
pickerBox1.Font = new Font("Segoe UI", 9F);
pickerBox1.Location = new Point(241, 209);
pickerBox1.Margin = new Padding(10, 10, 10, 0);
pickerBox1.Name = "pickerBox1";
pickerBox1.Padding = new Padding(4, 4, 3, 3);
pickerBox1.SelectedIndex = -1;
pickerBox1.Size = new Size(128, 34);
pickerBox1.TabIndex = 174;
pickerBox1.TabStop = false;
//
// pickerBox2
//
pickerBox2.AcceptButton = null;
pickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox2.BackColor = Color.Transparent;
pickerBox2.EnableReactiveVisual = true;
pickerBox2.Font = new Font("Segoe UI", 9F);
pickerBox2.Location = new Point(285, 250);
pickerBox2.Margin = new Padding(10, 10, 10, 0);
pickerBox2.Name = "pickerBox2";
pickerBox2.Padding = new Padding(4, 4, 3, 3);
pickerBox2.SelectedIndex = -1;
pickerBox2.Size = new Size(84, 34);
pickerBox2.TabIndex = 175;
pickerBox2.TabStop = false;
//
// horizontalSeparator1
//
horizontalSeparator1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
horizontalSeparator1.AutoScrollMargin = new Size(0, 0);
horizontalSeparator1.AutoScrollMinSize = new Size(0, 0);
horizontalSeparator1.BackColor = Color.Transparent;
horizontalSeparator1.Location = new Point(10, 181);
horizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
horizontalSeparator1.MaximumSize = new Size(4920, 2);
horizontalSeparator1.MinimumSize = new Size(0, 22);
horizontalSeparator1.Name = "horizontalSeparator1";
horizontalSeparator1.Size = new Size(364, 22);
horizontalSeparator1.TabIndex = 176;
horizontalSeparator1.TabStop = false;
//
// horizontalSeparator2
//
horizontalSeparator2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
horizontalSeparator2.AutoScrollMargin = new Size(0, 0);
horizontalSeparator2.AutoScrollMinSize = new Size(0, 0);
horizontalSeparator2.BackColor = Color.Transparent;
horizontalSeparator2.Location = new Point(10, 437);
horizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
horizontalSeparator2.MaximumSize = new Size(4920, 2);
horizontalSeparator2.MinimumSize = new Size(0, 22);
horizontalSeparator2.Name = "horizontalSeparator2";
horizontalSeparator2.Size = new Size(364, 22);
horizontalSeparator2.TabIndex = 177;
horizontalSeparator2.TabStop = false;
//
// EditTileForm
//
ClientSize = new Size(384, 521);
Controls.Add(horizontalSeparator2);
Controls.Add(horizontalSeparator1);
Controls.Add(pickerBox2);
Controls.Add(pickerBox1);
Controls.Add(button1);
Controls.Add(textBox4);
Controls.Add(textBox3);
Controls.Add(textBox2);
Controls.Add(label6);
Controls.Add(label7);
Controls.Add(label4);
Controls.Add(label3);
Controls.Add(label2);
Controls.Add(label1);
Controls.Add(textBox1);
MinimumSize = new Size(400, 560);
Name = "EditTileForm";
Text = "Add Tile";
ResumeLayout(false);
PerformLayout();
}
public TileModel Result
{
get => new TileModel()
{
Title = textBox1.Text?.Trim() ?? string.Empty,
ProcessFilename = textBox2.Text?.Trim() ?? string.Empty,
ProcessArgument = textBox3.Text?.Trim() ?? string.Empty,
ProcessWorkingDirectory = textBox4.Text?.Trim(),
ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex,
ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1)
};
}
}
}
-120
View File
@@ -1,120 +0,0 @@
<?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>
-149
View File
@@ -1,149 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
namespace FizzyLauncher.Windows.Forms
{
public class TileContainer : Panel
{
protected const int DEFAULT_COLUMN = 6;
protected FlowLayoutPanel flowLayoutPanel1 = null;
public TileContainer()
{
flowLayoutPanel1 = new FlowLayoutPanel();
flowLayoutPanel1.AutoSize = true;
flowLayoutPanel1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
flowLayoutPanel1.BackColor = Color.Transparent;
flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
flowLayoutPanel1.Location = new Point(10, 10);
flowLayoutPanel1.Margin = new Padding(0);
flowLayoutPanel1.Padding = new Padding(0, 0, 0, 20);
flowLayoutPanel1.Size = new Size(0, 20);
flowLayoutPanel1.WrapContents = false;
this.AutoScroll = true;
this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
this.BackColor = System.Drawing.Color.Transparent;
this.Margin = new Padding(0);
this.Name = "tileContainer1";
this.Padding = new Padding(10, 10, 10, 20);
this.Controls.Add(flowLayoutPanel1);
}
[Browsable(false)]
public event EventHandler OnColumnSizeChanged;
public int CalcWidth
{
get =>
TilePanelLayout.CalcWidth(this.TileWidthCount) +
this.Left + this.Padding.Horizontal + this.Margin.Horizontal +
flowLayoutPanel1.Padding.Horizontal + flowLayoutPanel1.Margin.Horizontal;
}
public int GroupCount
{
get => flowLayoutPanel1.Controls.Count;
}
public IEnumerable<TilePanelLayout> Groups
{
get
{
for (int i = 0; i < flowLayoutPanel1.Controls.Count; i++)
{
if (flowLayoutPanel1.Controls[i].GetType() != typeof(TilePanelLayout))
{
continue;
}
TilePanelLayout container = flowLayoutPanel1.Controls[i] as TilePanelLayout;
yield return container;
}
}
}
public IEnumerable<TileGroupModel> GroupModels
{
get
{
foreach (TilePanelLayout item in this.Groups)
{
yield return item.Model;
}
}
}
public int TileWidthCount { get; private set; } = DEFAULT_COLUMN;
public void Add()
{
this.Add(new TilePanelLayout(new TileGroupModel()
{
Title = "New Group",
IsExpanded = true,
GridSize = new Size(this.TileWidthCount, 1)
}));
}
public void Add(TilePanelLayout tilePanelLayout)
{
UIControl.Add(flowLayoutPanel1, tilePanelLayout);
this.InvalidateColumnSize();
}
public void Add(int columnCount)
{
this.TileWidthCount = ((columnCount <= 0) ? DEFAULT_COLUMN : columnCount);
this.Add();
}
public void Clear()
{
UIControl.Clear(flowLayoutPanel1);
this.TileWidthCount = DEFAULT_COLUMN;
InvalidateColumnSize();
}
public void InvalidateColumnSize()
{
this.OnColumnSizeChanged?.Invoke(this, null);
}
public void Load(List<TileGroupModel> groupList)
{
this.Clear();
if (groupList == null)
{
return;
}
foreach (TileGroupModel item in groupList)
{
this.TileWidthCount = Math.Max(this.TileWidthCount, item.GridSize.Width);
TilePanelLayout panel = new TilePanelLayout(item);
this.Add(panel);
}
InvalidateColumnSize();
}
}
}
-120
View File
@@ -1,120 +0,0 @@
<?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>
-241
View File
@@ -1,241 +0,0 @@
namespace FizzyLauncher.Windows.Forms
{
partial class TilePanelLayout
{
/// <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()
{
this.components = new System.ComponentModel.Container();
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addListToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator();
this.removeRowToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStrip2 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripMenuItem();
this.topToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.upToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.downToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.bottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripMenuItem();
this.removeRowToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.contextMenuStrip1.SuspendLayout();
this.contextMenuStrip2.SuspendLayout();
this.SuspendLayout();
//
// contextMenuStrip1
//
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.addToolStripMenuItem,
this.addListToolStripMenuItem,
this.toolStripMenuItem6,
this.removeRowToolStripMenuItem1});
this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(144, 76);
//
// addToolStripMenuItem
//
this.addToolStripMenuItem.Name = "addToolStripMenuItem";
this.addToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
this.addToolStripMenuItem.Text = "&Add Tile";
this.addToolStripMenuItem.Click += new System.EventHandler(this.addTileMenuItem_Click);
//
// addListToolStripMenuItem
//
this.addListToolStripMenuItem.Name = "addListToolStripMenuItem";
this.addListToolStripMenuItem.Size = new System.Drawing.Size(143, 22);
this.addListToolStripMenuItem.Text = "Add &Folder";
this.addListToolStripMenuItem.Click += new System.EventHandler(this.addListTileMenuItem_Click);
//
// toolStripMenuItem6
//
this.toolStripMenuItem6.Name = "toolStripMenuItem6";
this.toolStripMenuItem6.Size = new System.Drawing.Size(140, 6);
//
// removeRowToolStripMenuItem1
//
this.removeRowToolStripMenuItem1.Name = "removeRowToolStripMenuItem1";
this.removeRowToolStripMenuItem1.Size = new System.Drawing.Size(143, 22);
this.removeRowToolStripMenuItem1.Text = "&Remove Row";
this.removeRowToolStripMenuItem1.Click += new System.EventHandler(this.removeRowToolStripMenuItem_Click_1);
//
// contextMenuStrip2
//
this.contextMenuStrip2.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem2,
this.toolStripMenuItem1,
this.toolStripSeparator3,
this.toolStripMenuItem7,
this.toolStripSeparator2,
this.toolStripMenuItem4,
this.toolStripSeparator1,
this.toolStripMenuItem3});
this.contextMenuStrip2.Name = "contextMenuStrip1";
this.contextMenuStrip2.Size = new System.Drawing.Size(181, 154);
//
// toolStripMenuItem2
//
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(180, 22);
this.toolStripMenuItem2.Text = "&Add Group";
this.toolStripMenuItem2.Click += new System.EventHandler(this.addGroupMenuItem_Click);
//
// toolStripMenuItem1
//
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.Size = new System.Drawing.Size(180, 22);
this.toolStripMenuItem1.Text = "&Edit";
this.toolStripMenuItem1.Click += new System.EventHandler(this.editGroupMenuItem_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(177, 6);
//
// toolStripMenuItem4
//
this.toolStripMenuItem4.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.topToolStripMenuItem,
this.upToolStripMenuItem,
this.downToolStripMenuItem,
this.bottomToolStripMenuItem});
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
this.toolStripMenuItem4.Size = new System.Drawing.Size(180, 22);
this.toolStripMenuItem4.Text = "&Move";
//
// topToolStripMenuItem
//
this.topToolStripMenuItem.Name = "topToolStripMenuItem";
this.topToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.topToolStripMenuItem.Text = "&Top";
this.topToolStripMenuItem.Click += new System.EventHandler(this.moveTopMenuItem_Click);
//
// upToolStripMenuItem
//
this.upToolStripMenuItem.Name = "upToolStripMenuItem";
this.upToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.upToolStripMenuItem.Text = "&Up";
this.upToolStripMenuItem.Click += new System.EventHandler(this.moveUpMenuItem_Click);
//
// downToolStripMenuItem
//
this.downToolStripMenuItem.Name = "downToolStripMenuItem";
this.downToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.downToolStripMenuItem.Text = "&Down";
this.downToolStripMenuItem.Click += new System.EventHandler(this.moveDownMenuItem_Click);
//
// bottomToolStripMenuItem
//
this.bottomToolStripMenuItem.Name = "bottomToolStripMenuItem";
this.bottomToolStripMenuItem.Size = new System.Drawing.Size(114, 22);
this.bottomToolStripMenuItem.Text = "&Bottom";
this.bottomToolStripMenuItem.Click += new System.EventHandler(this.moveBottomMenuItem_Click);
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(177, 6);
//
// toolStripMenuItem3
//
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
this.toolStripMenuItem3.Size = new System.Drawing.Size(180, 22);
this.toolStripMenuItem3.Text = "&Remove";
this.toolStripMenuItem3.Click += new System.EventHandler(this.removeGroupMenuItem3_Click);
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(177, 6);
//
// toolStripMenuItem7
//
this.toolStripMenuItem7.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripMenuItem5,
this.removeRowToolStripMenuItem});
this.toolStripMenuItem7.Name = "toolStripMenuItem7";
this.toolStripMenuItem7.Size = new System.Drawing.Size(180, 22);
this.toolStripMenuItem7.Text = "Ro&w";
//
// toolStripMenuItem5
//
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
this.toolStripMenuItem5.Size = new System.Drawing.Size(180, 22);
this.toolStripMenuItem5.Text = "Add &Row";
this.toolStripMenuItem5.Click += new System.EventHandler(this.toolStripMenuItem5_Click);
//
// removeRowToolStripMenuItem
//
this.removeRowToolStripMenuItem.Name = "removeRowToolStripMenuItem";
this.removeRowToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.removeRowToolStripMenuItem.Text = "Remo&ve Row";
this.removeRowToolStripMenuItem.Click += new System.EventHandler(this.removeRowToolStripMenuItem_Click_1);
//
// TilePanelLayout
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.Transparent;
this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.Name = "TilePanelLayout";
this.Size = new System.Drawing.Size(432, 173);
this.contextMenuStrip1.ResumeLayout(false);
this.contextMenuStrip2.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem addListToolStripMenuItem;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip2;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem4;
private System.Windows.Forms.ToolStripMenuItem topToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem upToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem downToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem bottomToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem3;
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem6;
private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem1;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem7;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem5;
private System.Windows.Forms.ToolStripMenuItem removeRowToolStripMenuItem;
}
}
-438
View File
@@ -1,438 +0,0 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
namespace FizzyLauncher.Windows.Forms
{
public partial class TilePanelLayout : TileGridPanelLayout<TilePanel>
{
protected TileGroupModel groupModel = null;
public TilePanelLayout(TileGroupModel model) : base()
{
InitializeComponent();
this.TitleContextMenuStrip = contextMenuStrip2;
this.ContainerContextMenuStrip = contextMenuStrip1;
this.LoadModel(model);
}
protected override void OnDragDrop(DragEventArgs e)
{
string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
this.LoadShortcuts(fileList);
}
public new bool EnableAnimation
{
get
{
MainForm mainForm = this.MainForm;
if (mainForm == null)
{
return false;
}
if (mainForm.CurrentSession == null)
{
return false;
}
base.EnableAnimation = mainForm.CurrentSession.EnableAnimation;
return base.EnableAnimation;
}
set => base.EnableAnimation = value;
}
public void LoadShortcuts(string[] fileList)
{
if (fileList == null)
{
return;
}
if (fileList.Length <= 0)
{
return;
}
if (string.IsNullOrWhiteSpace(fileList[0]))
{
return;
}
TileModel model = new TileModel()
{
ProcessFilename = fileList[0],
Title = Path.GetFileName(fileList[0])
};
// exe
if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase))
{
if (File.Exists(fileList[0]))
{
try
{
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]);
if (fvi != null)
{
model.Title = fvi.ProductName;
}
}
catch
{
// do nothing
}
}
if (string.IsNullOrWhiteSpace(model.Title))
{
model.Title = Path.GetFileNameWithoutExtension(fileList[0]);
}
}
this.AddTile(model);
}
public TileGroupModel Model
{
get
{
TileGroupModel rs = new TileGroupModel()
{
Title = groupModel.Title,
GridSize = new Size(this.GridSize.X, this.GridSize.Y),
IsExpanded = this.IsExpanded,
IsExclusive = groupModel.IsExclusive,
Items = this.Tiles
};
return rs;
}
}
public MainForm MainForm { get => UIControl.GetParentsUntil<MainForm>(this.Parent); }
public List<TileModel> Tiles
{
get
{
List<TileModel> result = new List<TileModel>();
foreach (GridTileItem item in this.GridTileItems.Where(x => x.Tile.GetType() == typeof(TilePanel)))
{
TileModel model = (item.Tile as TilePanel).ModelInfo;
model.Position = item.Coord;
result.Add(model);
}
return result;
}
}
public void AddTile(TileModel tile)
{
Point gridSize = this.GridSize;
if (GridTileItems.Count >= (gridSize.X * gridSize.Y))
{
this.SetGridSize(gridSize.X, (gridSize.Y + 1));
}
Point? newCoord = tile.Position;
if ((newCoord == null) || HasTile(tile.Position))
{
newCoord = FindLastFreeCoord();
}
if (newCoord == null)
{
return;
}
tile.Position = newCoord.Value;
TilePanel panel = new TilePanel();
panel.LoadInfo(tile);
panel.Location = ConvertCoordToLocation(tile.Position);
GridTileItems.Add(new GridTileItem()
{
Tile = panel,
Coord = tile.Position
});
this.Controls.Add(panel);
}
public void AddGroup()
{
if (this.FlowLayoutPanel == null)
{
return;
}
this.FlowLayoutPanel.Controls.Add(new TilePanelLayout(new TileGroupModel()
{
Title = "New Group",
GridSize = new Size(8, 1)
}));
}
public void AddRow() => this.SetGridSize(this.GridSize.X, (this.GridSize.Y + 1));
public void EditGroup()
{
//EditGroupForm.ShowDialog(this);
}
public async void LoadModel(TileGroupModel model)
{
groupModel = model;
this.Title = groupModel?.Title ?? string.Empty;
this.IsExpanded = groupModel.IsExpanded;
//label1.Image = (isExpanded ? AppResource.toggle_right_ea_16 : AppResource.toggle_left_ea_16);
this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height);
this.LoadTiles(model.Items);
this.SetGridSize(groupModel.GridSize.Width, groupModel.GridSize.Height);
await this.Invalidate();
}
public async void UpdateModel(TileGroupModel model)
{
groupModel = model;
this.Title = groupModel?.Title ?? string.Empty;
this.IsExpanded = groupModel.IsExpanded;
await this.Invalidate();
}
public void LoadTiles(List<TileModel> tiles)
{
if (tiles == null)
{
return;
}
if (tiles.Count() <= 0)
{
return;
}
foreach (TileModel item in tiles)
{
// resolve final grid position
Point? confirmedPosition = ResolveCoord(item.Position);
if (confirmedPosition == null)
{
continue;
}
// place control
TilePanel panel = new TilePanel();
panel.LoadInfo(item);
panel.Location = ConvertCoordToLocation(confirmedPosition.Value);
GridTileItems.Add(new GridTileItem()
{
Tile = panel,
Coord = confirmedPosition.Value
});
this.Controls.Add(panel);
}
}
private void SetGridSize(int width, int height)
{
this.GridSize = new Point(width, height);
groupModel.GridSize = new Size(groupModel.GridSize.Width, height);
}
protected override async void label1_MouseClick(object sender, MouseEventArgs e)
{
base.label1_MouseClick(sender, e);
if (isAnimating)
{
return;
}
if (e.Button == MouseButtons.Left)
{
// 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();
}
}
}
}
}
}
#region tile context menu
/// <summary>
/// Add tile
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addTileMenuItem_Click(object sender, EventArgs e)
{
Point coord = ConvertLocationToCoord(lastMousePosition.X, lastMousePosition.Y);
//EditTileForm.ShowAddDialog(this, coord);
}
/// <summary>
/// Add folder
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addListTileMenuItem_Click(object sender, EventArgs e)
{
Point coord = ConvertLocationToCoord(lastMousePosition.X, lastMousePosition.Y);
//EditTileFolderForm.ShowAddDialog(this, coord);
}
#endregion
#region group context menu
/// <summary>
/// Add group
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void addGroupMenuItem_Click(object sender, EventArgs e)
{
this.AddGroup();
}
/// <summary>
/// Edit group
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void editGroupMenuItem_Click(object sender, EventArgs e)
{
this.EditGroup();
}
/// <summary>
/// Add row
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void toolStripMenuItem5_Click(object sender, EventArgs e)
{
this.AddRow();
}
/// <summary>
/// Remove row
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void removeRowToolStripMenuItem_Click_1(object sender, EventArgs e)
{
if (this.GridSize.Y <= 1)
{
return;
}
bool rs = GridTileItems.Exists(x => x.Coord.Y.Equals(this.GridSize.Y - 1));
if (rs)
{
return;
}
this.SetGridSize(this.GridSize.X, (this.GridSize.Y - 1));
}
/// <summary>
/// Move to top
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void moveTopMenuItem_Click(object sender, EventArgs e)
{
this.MoveTop();
}
/// <summary>
/// Move up
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void moveUpMenuItem_Click(object sender, EventArgs e)
{
this.MoveUp();
}
/// <summary>
/// Move down
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void moveDownMenuItem_Click(object sender, EventArgs e)
{
this.MoveDown();
}
/// <summary>
/// Move to bottom
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void moveBottomMenuItem_Click(object sender, EventArgs e)
{
this.MoveBottom();
}
/// <summary>
/// Remove group
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void removeGroupMenuItem3_Click(object sender, EventArgs e)
{
this.Remove();
}
#endregion
}
}
-66
View File
@@ -1,66 +0,0 @@
<root>
<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>
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="contextMenuStrip2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>172, 17</value>
</metadata>
</root>