Compare commits
No commits in common. "master" and "release/0.1.0.019" have entirely different histories.
master
...
release/0.
5
.gitignore
vendored
@ -2,7 +2,4 @@
|
||||
/bin
|
||||
/obj
|
||||
/*.user
|
||||
/*/.vs
|
||||
/*/bin
|
||||
/*/obj
|
||||
/*/*.user
|
||||
/Properties/PublishProfiles/*.user
|
||||
|
42
AppResource.Designer.cs
generated
@ -19,7 +19,7 @@ namespace RandomFileRunner {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class AppResource {
|
||||
@ -60,48 +60,12 @@ namespace RandomFileRunner {
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to .
|
||||
/// </summary>
|
||||
internal static string AppAuthorURL {
|
||||
get {
|
||||
return ResourceManager.GetString("AppAuthorURL", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to https://www.hiimray.co.uk.
|
||||
/// </summary>
|
||||
internal static string AppCompanyURL {
|
||||
get {
|
||||
return ResourceManager.GetString("AppCompanyURL", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-random-file-runner.
|
||||
/// </summary>
|
||||
internal static string AppHelpURL {
|
||||
get {
|
||||
return ResourceManager.GetString("AppHelpURL", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-random-file-runner.
|
||||
/// </summary>
|
||||
internal static string AppProductURL {
|
||||
get {
|
||||
return ResourceManager.GetString("AppProductURL", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap icon_64 {
|
||||
internal static System.Drawing.Bitmap loading_block {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("icon_64", resourceCulture);
|
||||
object obj = ResourceManager.GetObject("loading_block", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
@ -112,25 +112,13 @@
|
||||
<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>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.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>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AppAuthorURL" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="AppCompanyURL" xml:space="preserve">
|
||||
<value>https://www.hiimray.co.uk</value>
|
||||
</data>
|
||||
<data name="AppHelpURL" xml:space="preserve">
|
||||
<value>https://www.hiimray.co.uk/software-random-file-runner</value>
|
||||
</data>
|
||||
<data name="AppProductURL" xml:space="preserve">
|
||||
<value>https://www.hiimray.co.uk/software-random-file-runner</value>
|
||||
</data>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="loading_block" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\loading-block.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
785
MainForm.Designer.cs
generated
@ -29,409 +29,425 @@ namespace RandomFileRunner
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
toolTip1 = new System.Windows.Forms.ToolTip(components);
|
||||
button2 = new RyzStudio.Windows.ThemedForms.ThButton();
|
||||
label9 = new System.Windows.Forms.Label();
|
||||
menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
|
||||
saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
|
||||
exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
|
||||
aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
label1 = new System.Windows.Forms.Label();
|
||||
textBox1 = new RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox();
|
||||
tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
button5 = new RyzStudio.Windows.ThemedForms.ThButton();
|
||||
openFileDialog2 = new System.Windows.Forms.OpenFileDialog();
|
||||
saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
progressBar2 = new RyzStudio.Windows.ThemedForms.ThProgressBar();
|
||||
progressBar1 = new RyzStudio.Windows.ThemedForms.ThProgressBar();
|
||||
label3 = new System.Windows.Forms.Label();
|
||||
label4 = new System.Windows.Forms.Label();
|
||||
tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
label2 = new System.Windows.Forms.Label();
|
||||
textBox2 = new RyzStudio.Windows.ThemedForms.ThHiButtonTextBox();
|
||||
button4 = new RyzStudio.Windows.ThemedForms.ThButton();
|
||||
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
||||
menuStrip1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.button2 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.label9 = new System.Windows.Forms.Label();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.addDirectoryToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();
|
||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.textBox1 = new RyzStudio.Windows.ThemedForms.TClearableTextBox();
|
||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.button4 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.button3 = new RyzStudio.Windows.ThemedForms.TMenuButton();
|
||||
this.memoBox1 = new RyzStudio.Windows.ThemedForms.TMemoBox();
|
||||
this.button5 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.openFileDialog2 = new System.Windows.Forms.OpenFileDialog();
|
||||
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.contextMenuStrip1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
pictureBox1.ErrorImage = null;
|
||||
pictureBox1.InitialImage = null;
|
||||
pictureBox1.Location = new System.Drawing.Point(289, 121);
|
||||
pictureBox1.Name = "pictureBox1";
|
||||
pictureBox1.Size = new System.Drawing.Size(33, 33);
|
||||
pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
pictureBox1.TabIndex = 15;
|
||||
pictureBox1.TabStop = false;
|
||||
this.pictureBox1.ErrorImage = null;
|
||||
this.pictureBox1.InitialImage = null;
|
||||
this.pictureBox1.Location = new System.Drawing.Point(81, 79);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(33, 33);
|
||||
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.pictureBox1.TabIndex = 15;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// button2
|
||||
//
|
||||
button2.ActiveImage = null;
|
||||
button2.BackColor = System.Drawing.Color.Transparent;
|
||||
button2.EnableMenuOnClick = false;
|
||||
button2.EnableReactiveVisual = true;
|
||||
button2.HoverImage = null;
|
||||
button2.IdleImage = null;
|
||||
button2.LabelText = "&Search";
|
||||
button2.Location = new System.Drawing.Point(127, 121);
|
||||
button2.Name = "button2";
|
||||
button2.Size = new System.Drawing.Size(149, 33);
|
||||
button2.TabIndex = 1;
|
||||
button2.TabStop = false;
|
||||
button2.MouseClick += button2_MouseClick;
|
||||
this.button2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.button2.DefaultImage = null;
|
||||
this.button2.DownImage = null;
|
||||
this.button2.IsSelected = false;
|
||||
this.button2.LabelText = "&Search";
|
||||
this.button2.Location = new System.Drawing.Point(127, 79);
|
||||
this.button2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
|
||||
this.button2.Name = "button2";
|
||||
this.button2.OverImage = null;
|
||||
this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.button2.Size = new System.Drawing.Size(149, 33);
|
||||
this.button2.TabIndex = 43;
|
||||
this.button2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button2_MouseClick);
|
||||
//
|
||||
// label9
|
||||
//
|
||||
label9.Location = new System.Drawing.Point(13, 78);
|
||||
label9.Name = "label9";
|
||||
label9.Size = new System.Drawing.Size(101, 33);
|
||||
label9.TabIndex = 27;
|
||||
label9.Text = "Search Pattern";
|
||||
label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem, toolsToolStripMenuItem, helpToolStripMenuItem1 });
|
||||
menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
menuStrip1.Name = "menuStrip1";
|
||||
menuStrip1.Size = new System.Drawing.Size(464, 24);
|
||||
menuStrip1.TabIndex = 32;
|
||||
//
|
||||
// fileToolStripMenuItem
|
||||
//
|
||||
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, toolStripMenuItem13, saveAsToolStripMenuItem, toolStripMenuItem15, exitToolStripMenuItem2 });
|
||||
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||
fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||
fileToolStripMenuItem.Text = "&File";
|
||||
//
|
||||
// newToolStripMenuItem
|
||||
//
|
||||
newToolStripMenuItem.Name = "newToolStripMenuItem";
|
||||
newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N;
|
||||
newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
newToolStripMenuItem.Text = "&New";
|
||||
newToolStripMenuItem.Click += newToolStripMenuItem_Click;
|
||||
//
|
||||
// openToolStripMenuItem
|
||||
//
|
||||
openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||
openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O;
|
||||
openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
openToolStripMenuItem.Text = "&Open";
|
||||
openToolStripMenuItem.Click += openToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem13
|
||||
//
|
||||
toolStripMenuItem13.Name = "toolStripMenuItem13";
|
||||
toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// saveAsToolStripMenuItem
|
||||
//
|
||||
saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
|
||||
saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
saveAsToolStripMenuItem.Text = "Save &As...";
|
||||
saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem15
|
||||
//
|
||||
toolStripMenuItem15.Name = "toolStripMenuItem15";
|
||||
toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// exitToolStripMenuItem2
|
||||
//
|
||||
exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
|
||||
exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
|
||||
exitToolStripMenuItem2.Text = "E&xit";
|
||||
exitToolStripMenuItem2.Click += exitToolStripMenuItem2_Click;
|
||||
//
|
||||
// toolsToolStripMenuItem
|
||||
//
|
||||
toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { optionsToolStripMenuItem });
|
||||
toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
||||
toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
||||
toolsToolStripMenuItem.Text = "&Tools";
|
||||
//
|
||||
// optionsToolStripMenuItem
|
||||
//
|
||||
optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
|
||||
optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12;
|
||||
optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
optionsToolStripMenuItem.Text = "&Options";
|
||||
optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click;
|
||||
//
|
||||
// helpToolStripMenuItem1
|
||||
//
|
||||
helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { viewHelpToolStripMenuItem1, toolStripMenuItem16, aboutToolStripMenuItem1 });
|
||||
helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
|
||||
helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
|
||||
helpToolStripMenuItem1.Text = "&Help";
|
||||
//
|
||||
// viewHelpToolStripMenuItem1
|
||||
//
|
||||
viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
|
||||
viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||
viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
viewHelpToolStripMenuItem1.Text = "&View Help";
|
||||
viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click;
|
||||
//
|
||||
// toolStripMenuItem16
|
||||
//
|
||||
toolStripMenuItem16.Name = "toolStripMenuItem16";
|
||||
toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// aboutToolStripMenuItem1
|
||||
//
|
||||
aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
|
||||
aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
aboutToolStripMenuItem1.Text = "&About";
|
||||
aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.Location = new System.Drawing.Point(13, 36);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new System.Drawing.Size(101, 33);
|
||||
label1.TabIndex = 40;
|
||||
label1.Text = "Search Path";
|
||||
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
textBox1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
textBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
textBox1.ClearedValue = "";
|
||||
textBox1.EnableReactiveVisual = true;
|
||||
textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
textBox1.Icon = "O";
|
||||
textBox1.IconSize = 13F;
|
||||
textBox1.Location = new System.Drawing.Point(127, 78);
|
||||
textBox1.Name = "textBox1";
|
||||
textBox1.Size = new System.Drawing.Size(318, 32);
|
||||
textBox1.TabIndex = 0;
|
||||
textBox1.TabStop = false;
|
||||
textBox1.UseSystemPasswordChar = false;
|
||||
//
|
||||
// tHorizontalSeparator1
|
||||
//
|
||||
tHorizontalSeparator1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
|
||||
tHorizontalSeparator1.Location = new System.Drawing.Point(8, 164);
|
||||
tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0);
|
||||
tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(5760, 22);
|
||||
tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
||||
tHorizontalSeparator1.Size = new System.Drawing.Size(448, 22);
|
||||
tHorizontalSeparator1.TabIndex = 45;
|
||||
tHorizontalSeparator1.TabStop = false;
|
||||
//
|
||||
// button5
|
||||
//
|
||||
button5.ActiveImage = null;
|
||||
button5.BackColor = System.Drawing.Color.Transparent;
|
||||
button5.EnableMenuOnClick = false;
|
||||
button5.EnableReactiveVisual = true;
|
||||
button5.HoverImage = null;
|
||||
button5.IdleImage = null;
|
||||
button5.LabelText = "&Run Next";
|
||||
button5.Location = new System.Drawing.Point(127, 309);
|
||||
button5.Name = "button5";
|
||||
button5.Size = new System.Drawing.Size(149, 33);
|
||||
button5.TabIndex = 5;
|
||||
button5.TabStop = false;
|
||||
button5.MouseClick += button5_MouseClick;
|
||||
//
|
||||
// openFileDialog2
|
||||
//
|
||||
openFileDialog2.DefaultExt = "jsonfig";
|
||||
openFileDialog2.Filter = "Session files (*.jsonfig)|*.jsonfig";
|
||||
//
|
||||
// saveFileDialog1
|
||||
//
|
||||
saveFileDialog1.DefaultExt = "jsonfig";
|
||||
saveFileDialog1.Filter = "Session files (*.jsonfig)|*.jsonfig";
|
||||
//
|
||||
// progressBar2
|
||||
//
|
||||
progressBar2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
progressBar2.BackColor = System.Drawing.Color.Transparent;
|
||||
progressBar2.BarColour = System.Drawing.Color.FromArgb(79, 193, 203);
|
||||
progressBar2.BarTextColour = System.Drawing.Color.Black;
|
||||
progressBar2.EnableReactiveVisual = false;
|
||||
progressBar2.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
progressBar2.Location = new System.Drawing.Point(127, 215);
|
||||
progressBar2.Maximum = 100;
|
||||
progressBar2.Minimum = 0;
|
||||
progressBar2.Name = "progressBar2";
|
||||
progressBar2.ProgressText = "50/100";
|
||||
progressBar2.ShowProgressText = true;
|
||||
progressBar2.Size = new System.Drawing.Size(318, 20);
|
||||
progressBar2.TabIndex = 46;
|
||||
progressBar2.TabStop = false;
|
||||
progressBar2.Value = 50;
|
||||
//
|
||||
// progressBar1
|
||||
//
|
||||
progressBar1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
progressBar1.BackColor = System.Drawing.Color.Transparent;
|
||||
progressBar1.BarColour = System.Drawing.Color.FromArgb(79, 202, 130);
|
||||
progressBar1.BarTextColour = System.Drawing.Color.Black;
|
||||
progressBar1.EnableReactiveVisual = false;
|
||||
progressBar1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
progressBar1.Location = new System.Drawing.Point(127, 192);
|
||||
progressBar1.Maximum = 100;
|
||||
progressBar1.Minimum = 0;
|
||||
progressBar1.Name = "progressBar1";
|
||||
progressBar1.ProgressText = "50/100";
|
||||
progressBar1.ShowProgressText = true;
|
||||
progressBar1.Size = new System.Drawing.Size(318, 20);
|
||||
progressBar1.TabIndex = 47;
|
||||
progressBar1.TabStop = false;
|
||||
progressBar1.Value = 50;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
label3.AutoEllipsis = true;
|
||||
label3.Location = new System.Drawing.Point(127, 256);
|
||||
label3.Margin = new System.Windows.Forms.Padding(0);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new System.Drawing.Size(318, 15);
|
||||
label3.TabIndex = 49;
|
||||
label3.Text = "label3";
|
||||
//
|
||||
// label4
|
||||
//
|
||||
label4.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
label4.Location = new System.Drawing.Point(127, 241);
|
||||
label4.Margin = new System.Windows.Forms.Padding(0);
|
||||
label4.Name = "label4";
|
||||
label4.Size = new System.Drawing.Size(318, 15);
|
||||
label4.TabIndex = 48;
|
||||
label4.Text = "label4";
|
||||
//
|
||||
// tHorizontalSeparator3
|
||||
//
|
||||
tHorizontalSeparator3.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
|
||||
tHorizontalSeparator3.Location = new System.Drawing.Point(8, 281);
|
||||
tHorizontalSeparator3.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0);
|
||||
tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(5760, 22);
|
||||
tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
tHorizontalSeparator3.Name = "tHorizontalSeparator3";
|
||||
tHorizontalSeparator3.Size = new System.Drawing.Size(448, 22);
|
||||
tHorizontalSeparator3.TabIndex = 50;
|
||||
tHorizontalSeparator3.TabStop = false;
|
||||
this.label9.Location = new System.Drawing.Point(13, 36);
|
||||
this.label9.Name = "label9";
|
||||
this.label9.Size = new System.Drawing.Size(101, 33);
|
||||
this.label9.TabIndex = 27;
|
||||
this.label9.Text = "Search Filter";
|
||||
this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.Location = new System.Drawing.Point(13, 192);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new System.Drawing.Size(101, 33);
|
||||
label2.TabIndex = 51;
|
||||
label2.Text = "Search Engine";
|
||||
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.label2.Location = new System.Drawing.Point(289, 81);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(156, 31);
|
||||
this.label2.TabIndex = 30;
|
||||
this.label2.Text = "0";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// textBox2
|
||||
// menuStrip1
|
||||
//
|
||||
textBox2.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||||
textBox2.BackColor = System.Drawing.Color.Transparent;
|
||||
textBox2.EnableReactiveVisual = true;
|
||||
textBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
textBox2.Icon = "M";
|
||||
textBox2.IconSize = 13F;
|
||||
textBox2.Location = new System.Drawing.Point(127, 36);
|
||||
textBox2.Name = "textBox2";
|
||||
textBox2.Size = new System.Drawing.Size(318, 32);
|
||||
textBox2.TabIndex = 52;
|
||||
textBox2.TabStop = false;
|
||||
textBox2.UseSystemPasswordChar = false;
|
||||
textBox2.OnButtonClick += textBox2_OnButtonClick;
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.fileToolStripMenuItem,
|
||||
this.toolsToolStripMenuItem,
|
||||
this.helpToolStripMenuItem1});
|
||||
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
this.menuStrip1.Name = "menuStrip1";
|
||||
this.menuStrip1.Size = new System.Drawing.Size(464, 24);
|
||||
this.menuStrip1.TabIndex = 32;
|
||||
//
|
||||
// fileToolStripMenuItem
|
||||
//
|
||||
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.newToolStripMenuItem,
|
||||
this.openToolStripMenuItem,
|
||||
this.toolStripMenuItem13,
|
||||
this.saveAsToolStripMenuItem,
|
||||
this.toolStripMenuItem15,
|
||||
this.exitToolStripMenuItem2});
|
||||
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||
this.fileToolStripMenuItem.Text = "&File";
|
||||
//
|
||||
// newToolStripMenuItem
|
||||
//
|
||||
this.newToolStripMenuItem.Name = "newToolStripMenuItem";
|
||||
this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
|
||||
this.newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.newToolStripMenuItem.Text = "&New";
|
||||
this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
|
||||
//
|
||||
// openToolStripMenuItem
|
||||
//
|
||||
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||
this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
|
||||
this.openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.openToolStripMenuItem.Text = "&Open";
|
||||
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripMenuItem13
|
||||
//
|
||||
this.toolStripMenuItem13.Name = "toolStripMenuItem13";
|
||||
this.toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// saveAsToolStripMenuItem
|
||||
//
|
||||
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
|
||||
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.saveAsToolStripMenuItem.Text = "Save &As...";
|
||||
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripMenuItem15
|
||||
//
|
||||
this.toolStripMenuItem15.Name = "toolStripMenuItem15";
|
||||
this.toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// exitToolStripMenuItem2
|
||||
//
|
||||
this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
|
||||
this.exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
|
||||
this.exitToolStripMenuItem2.Text = "E&xit";
|
||||
this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem2_Click);
|
||||
//
|
||||
// toolsToolStripMenuItem
|
||||
//
|
||||
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.optionsToolStripMenuItem});
|
||||
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
||||
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
||||
this.toolsToolStripMenuItem.Text = "&Tools";
|
||||
//
|
||||
// optionsToolStripMenuItem
|
||||
//
|
||||
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
|
||||
this.optionsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12)));
|
||||
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.optionsToolStripMenuItem.Text = "&Options";
|
||||
this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click);
|
||||
//
|
||||
// helpToolStripMenuItem1
|
||||
//
|
||||
this.helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.viewHelpToolStripMenuItem1,
|
||||
this.toolStripMenuItem16,
|
||||
this.aboutToolStripMenuItem1});
|
||||
this.helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
|
||||
this.helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
|
||||
this.helpToolStripMenuItem1.Text = "&Help";
|
||||
//
|
||||
// viewHelpToolStripMenuItem1
|
||||
//
|
||||
this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
|
||||
this.viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||
this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
this.viewHelpToolStripMenuItem1.Text = "&View Help";
|
||||
this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click);
|
||||
//
|
||||
// toolStripMenuItem16
|
||||
//
|
||||
this.toolStripMenuItem16.Name = "toolStripMenuItem16";
|
||||
this.toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// aboutToolStripMenuItem1
|
||||
//
|
||||
this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
|
||||
this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
this.aboutToolStripMenuItem1.Text = "&About";
|
||||
this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click);
|
||||
//
|
||||
// contextMenuStrip1
|
||||
//
|
||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.addDirectoryToolStripMenuItem,
|
||||
this.addFileToolStripMenuItem});
|
||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(148, 48);
|
||||
//
|
||||
// addDirectoryToolStripMenuItem
|
||||
//
|
||||
this.addDirectoryToolStripMenuItem.Name = "addDirectoryToolStripMenuItem";
|
||||
this.addDirectoryToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
|
||||
this.addDirectoryToolStripMenuItem.Text = "&Add Directory";
|
||||
this.addDirectoryToolStripMenuItem.Click += new System.EventHandler(this.addDirectoryToolStripMenuItem_Click);
|
||||
//
|
||||
// addFileToolStripMenuItem
|
||||
//
|
||||
this.addFileToolStripMenuItem.Name = "addFileToolStripMenuItem";
|
||||
this.addFileToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
|
||||
this.addFileToolStripMenuItem.Text = "Add &File";
|
||||
this.addFileToolStripMenuItem.Click += new System.EventHandler(this.addFileToolStripMenuItem_Click);
|
||||
//
|
||||
// folderBrowserDialog1
|
||||
//
|
||||
this.folderBrowserDialog1.ShowNewFolderButton = false;
|
||||
//
|
||||
// openFileDialog1
|
||||
//
|
||||
this.openFileDialog1.Filter = "All files (*.*)|*.*";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Location = new System.Drawing.Point(13, 154);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(101, 33);
|
||||
this.label1.TabIndex = 40;
|
||||
this.label1.Text = "Search Paths";
|
||||
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.DefaultImage = null;
|
||||
this.button1.DownImage = null;
|
||||
this.button1.IsSelected = false;
|
||||
this.button1.LabelText = "&Close";
|
||||
this.button1.Location = new System.Drawing.Point(296, 705);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.OverImage = null;
|
||||
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.button1.Size = new System.Drawing.Size(149, 37);
|
||||
this.button1.TabIndex = 41;
|
||||
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
|
||||
//
|
||||
// tHorizontalSeparator2
|
||||
//
|
||||
this.tHorizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tHorizontalSeparator2.Location = new System.Drawing.Point(8, 673);
|
||||
this.tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
||||
this.tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(5760, 22);
|
||||
this.tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
this.tHorizontalSeparator2.Name = "tHorizontalSeparator2";
|
||||
this.tHorizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
||||
this.tHorizontalSeparator2.Size = new System.Drawing.Size(448, 22);
|
||||
this.tHorizontalSeparator2.TabIndex = 42;
|
||||
//
|
||||
// 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("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.textBox1.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox1.HighlightImage")));
|
||||
this.textBox1.Location = new System.Drawing.Point(127, 36);
|
||||
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox1.NormalImage")));
|
||||
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 9, 9, 9);
|
||||
this.textBox1.Size = new System.Drawing.Size(318, 34);
|
||||
this.textBox1.SubmitButton = null;
|
||||
this.textBox1.TabIndex = 44;
|
||||
this.textBox1.UseSystemPasswordChar = false;
|
||||
//
|
||||
// tHorizontalSeparator1
|
||||
//
|
||||
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tHorizontalSeparator1.Location = new System.Drawing.Point(8, 122);
|
||||
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
||||
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(5760, 22);
|
||||
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
||||
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
||||
this.tHorizontalSeparator1.Size = new System.Drawing.Size(448, 22);
|
||||
this.tHorizontalSeparator1.TabIndex = 45;
|
||||
//
|
||||
// button4
|
||||
//
|
||||
button4.ActiveImage = null;
|
||||
button4.BackColor = System.Drawing.Color.Transparent;
|
||||
button4.EnableMenuOnClick = false;
|
||||
button4.EnableReactiveVisual = true;
|
||||
button4.HoverImage = null;
|
||||
button4.IdleImage = null;
|
||||
button4.LabelText = "Save File &List";
|
||||
button4.Location = new System.Drawing.Point(296, 309);
|
||||
button4.Name = "button4";
|
||||
button4.Size = new System.Drawing.Size(149, 33);
|
||||
button4.TabIndex = 53;
|
||||
button4.TabStop = false;
|
||||
button4.MouseClick += button4_MouseClick;
|
||||
this.button4.BackColor = System.Drawing.Color.Transparent;
|
||||
this.button4.DefaultImage = null;
|
||||
this.button4.DownImage = null;
|
||||
this.button4.IsSelected = false;
|
||||
this.button4.LabelText = "&Clear";
|
||||
this.button4.Location = new System.Drawing.Point(296, 154);
|
||||
this.button4.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
|
||||
this.button4.Name = "button4";
|
||||
this.button4.OverImage = null;
|
||||
this.button4.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.button4.Size = new System.Drawing.Size(149, 33);
|
||||
this.button4.TabIndex = 46;
|
||||
this.button4.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button4_MouseClick);
|
||||
//
|
||||
// dialogFooter1
|
||||
// button3
|
||||
//
|
||||
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
|
||||
dialogFooter1.Button1Text = "&Close";
|
||||
dialogFooter1.Dialog = this;
|
||||
dialogFooter1.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
dialogFooter1.Location = new System.Drawing.Point(0, 517);
|
||||
dialogFooter1.Name = "dialogFooter1";
|
||||
dialogFooter1.Size = new System.Drawing.Size(464, 84);
|
||||
this.button3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.button3.ContextMenuStrip = this.contextMenuStrip1;
|
||||
this.button3.DefaultImage = null;
|
||||
this.button3.DownImage = null;
|
||||
this.button3.IsSelected = false;
|
||||
this.button3.LabelText = "&Add";
|
||||
this.button3.Location = new System.Drawing.Point(127, 154);
|
||||
this.button3.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
|
||||
this.button3.Name = "button3";
|
||||
this.button3.OverImage = null;
|
||||
this.button3.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.button3.Size = new System.Drawing.Size(149, 33);
|
||||
this.button3.TabIndex = 47;
|
||||
//
|
||||
// memoBox1
|
||||
//
|
||||
this.memoBox1.AllowDrop = true;
|
||||
this.memoBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.memoBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.memoBox1.Location = new System.Drawing.Point(13, 203);
|
||||
this.memoBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
|
||||
this.memoBox1.Name = "memoBox1";
|
||||
this.memoBox1.Padding = new System.Windows.Forms.Padding(10, 10, 3, 9);
|
||||
this.memoBox1.Size = new System.Drawing.Size(432, 464);
|
||||
this.memoBox1.TabIndex = 48;
|
||||
this.memoBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.memoBox1_DragDrop);
|
||||
this.memoBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.memoBox1_DragOver);
|
||||
//
|
||||
// button5
|
||||
//
|
||||
this.button5.BackColor = System.Drawing.Color.Transparent;
|
||||
this.button5.DefaultImage = null;
|
||||
this.button5.DownImage = null;
|
||||
this.button5.IsSelected = false;
|
||||
this.button5.LabelText = "&Run Next";
|
||||
this.button5.Location = new System.Drawing.Point(127, 705);
|
||||
this.button5.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
|
||||
this.button5.Name = "button5";
|
||||
this.button5.OverImage = null;
|
||||
this.button5.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.button5.Size = new System.Drawing.Size(149, 37);
|
||||
this.button5.TabIndex = 49;
|
||||
this.button5.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button5_MouseClick);
|
||||
//
|
||||
// openFileDialog2
|
||||
//
|
||||
this.openFileDialog2.DefaultExt = "jsonfig";
|
||||
this.openFileDialog2.Filter = "Session files (*.jsonfig)|*.jsonfig";
|
||||
//
|
||||
// saveFileDialog1
|
||||
//
|
||||
this.saveFileDialog1.DefaultExt = "jsonfig";
|
||||
this.saveFileDialog1.Filter = "Session files (*.jsonfig)|*.jsonfig";
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
AllowDrop = true;
|
||||
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
BackColor = System.Drawing.Color.FromArgb(250, 250, 250);
|
||||
ClientSize = new System.Drawing.Size(464, 601);
|
||||
Controls.Add(dialogFooter1);
|
||||
Controls.Add(button4);
|
||||
Controls.Add(textBox2);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(tHorizontalSeparator3);
|
||||
Controls.Add(label3);
|
||||
Controls.Add(label4);
|
||||
Controls.Add(progressBar2);
|
||||
Controls.Add(progressBar1);
|
||||
Controls.Add(button5);
|
||||
Controls.Add(tHorizontalSeparator1);
|
||||
Controls.Add(textBox1);
|
||||
Controls.Add(button2);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(menuStrip1);
|
||||
Controls.Add(label9);
|
||||
Controls.Add(pictureBox1);
|
||||
Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
|
||||
MinimumSize = new System.Drawing.Size(480, 480);
|
||||
Name = "MainForm";
|
||||
Text = "Random File Runner";
|
||||
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
||||
menuStrip1.ResumeLayout(false);
|
||||
menuStrip1.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
this.AllowDrop = true;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))));
|
||||
this.ClientSize = new System.Drawing.Size(464, 761);
|
||||
this.Controls.Add(this.button5);
|
||||
this.Controls.Add(this.memoBox1);
|
||||
this.Controls.Add(this.button3);
|
||||
this.Controls.Add(this.button4);
|
||||
this.Controls.Add(this.tHorizontalSeparator1);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.button2);
|
||||
this.Controls.Add(this.tHorizontalSeparator2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.menuStrip1);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.label9);
|
||||
this.Controls.Add(this.pictureBox1);
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.Name = "MainForm";
|
||||
this.Text = "Random File Runner";
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
this.menuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.PerformLayout();
|
||||
this.contextMenuStrip1.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
private RyzStudio.Windows.ThemedForms.TButton button1;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private RyzStudio.Windows.ThemedForms.ThButton button2;
|
||||
private RyzStudio.Windows.ThemedForms.TButton button2;
|
||||
private System.Windows.Forms.ToolTip toolTip1;
|
||||
private System.Windows.Forms.Label label9;
|
||||
private RyzStudio.Windows.ThemedForms.TButton button4;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.MenuStrip menuStrip1;
|
||||
private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem newToolStripMenuItem;
|
||||
@ -446,21 +462,20 @@ namespace RandomFileRunner
|
||||
private System.Windows.Forms.ToolStripMenuItem viewHelpToolStripMenuItem1;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripMenuItem16;
|
||||
private System.Windows.Forms.ToolStripMenuItem aboutToolStripMenuItem1;
|
||||
private RyzStudio.Windows.ThemedForms.TMemoBox memoBox1;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
||||
private System.Windows.Forms.ToolStripMenuItem addDirectoryToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem addFileToolStripMenuItem;
|
||||
private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;
|
||||
private System.Windows.Forms.OpenFileDialog openFileDialog1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox textBox1;
|
||||
private RyzStudio.Windows.ThemedForms.ThButton button5;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
|
||||
private RyzStudio.Windows.ThemedForms.TClearableTextBox textBox1;
|
||||
private RyzStudio.Windows.ThemedForms.TMenuButton button3;
|
||||
private RyzStudio.Windows.ThemedForms.TButton button5;
|
||||
private System.Windows.Forms.OpenFileDialog openFileDialog2;
|
||||
private System.Windows.Forms.SaveFileDialog saveFileDialog1;
|
||||
private RyzStudio.Windows.ThemedForms.ThProgressBar progressBar2;
|
||||
private RyzStudio.Windows.ThemedForms.ThProgressBar progressBar1;
|
||||
private System.Windows.Forms.Label label3;
|
||||
private System.Windows.Forms.Label label4;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private RyzStudio.Windows.ThemedForms.ThHiButtonTextBox textBox2;
|
||||
private RyzStudio.Windows.ThemedForms.ThButton button4;
|
||||
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
|
||||
}
|
||||
}
|
||||
|
||||
|
660
MainForm.cs
@ -1,71 +1,69 @@
|
||||
using System;
|
||||
using RandomFileRunner.IO;
|
||||
using RyzStudio.Windows.Forms;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text.Json;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using RyzStudio.IO;
|
||||
using RyzStudio.Runtime.InteropServices;
|
||||
using RyzStudio.Windows.Forms;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
|
||||
namespace RandomFileRunner
|
||||
{
|
||||
public partial class MainForm : Form
|
||||
{
|
||||
private readonly Random _randy;
|
||||
private readonly FileSearcher _fileSearcher;
|
||||
private CancellationTokenSource _cancellationToken = new CancellationTokenSource();
|
||||
[DllImport("user32.dll")]
|
||||
protected static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);
|
||||
|
||||
private bool _isBusy = false;
|
||||
[DllImport("user32.dll")]
|
||||
protected static extern bool UnregisterHotKey(IntPtr hWnd, int id);
|
||||
|
||||
private List<string> _searchPaths = new List<string>();
|
||||
private List<string> _foundFiles = new List<string>();
|
||||
private Process _currentProcess = null;
|
||||
//protected const int MOD_NONE = 0x0000;
|
||||
//protected const int MOD_ALT = 0x1;
|
||||
//protected const int MOD_CONTROL = 0x2;
|
||||
//protected const int MOD_SHIFT = 0x4;
|
||||
//protected const int MOD_WIN = 0x8;
|
||||
protected const int WM_HOTKEY = 0x312;
|
||||
protected const int WM_QUERYENDSESSION = 0x0011;
|
||||
|
||||
|
||||
protected readonly Random randy;
|
||||
|
||||
protected OptionsForm optionsForm = null;
|
||||
protected bool isBusy = false;
|
||||
protected bool requestCancel = false;
|
||||
|
||||
protected List<string> foundFiles = null;
|
||||
protected Process currentProcess = null;
|
||||
|
||||
|
||||
public MainForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
textBox2.TextBox.ReadOnly = true;
|
||||
textBox1.Text = "*.*";
|
||||
memoBox1.InnerTextBox.WordWrap = false;
|
||||
|
||||
_randy = new Random();
|
||||
_fileSearcher = new FileSearcher();
|
||||
_fileSearcher.OnDirectoryFound += fileSearcher_OnDirectoryFound;
|
||||
_fileSearcher.OnFileFound += fileSearcher_OnFileFound;
|
||||
_fileSearcher.OnSearchCompleted += fileSearcher_OnSearchCompleted;
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
this.ClearSession();
|
||||
randy = new Random();
|
||||
}
|
||||
|
||||
protected async override void OnShown(EventArgs e)
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
var args = RyzStudio.Windows.Forms.WinApplication.GetCommandLine();
|
||||
string[] commandLineArgs = Environment.GetCommandLineArgs();
|
||||
|
||||
string jsonfigFilename = args.Where(x => (x.Key.Equals("o") || x.Key.Equals("open"))).Select(x => x.Value).FirstOrDefault();
|
||||
if (string.IsNullOrWhiteSpace(jsonfigFilename))
|
||||
{
|
||||
jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig");
|
||||
}
|
||||
string jsonfigFilename = null;
|
||||
if (string.IsNullOrWhiteSpace(jsonfigFilename)) jsonfigFilename = ParseOpenFile_FromCMD(commandLineArgs);
|
||||
if (string.IsNullOrWhiteSpace(jsonfigFilename)) jsonfigFilename = Path.ChangeExtension(Application.ExecutablePath, "jsonfig");
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(jsonfigFilename) && System.IO.File.Exists(jsonfigFilename))
|
||||
if (!string.IsNullOrWhiteSpace(jsonfigFilename) && File.Exists(jsonfigFilename))
|
||||
{
|
||||
await LoadSessionFile(jsonfigFilename);
|
||||
}
|
||||
|
||||
textBox2.Focus();
|
||||
}
|
||||
|
||||
protected override void OnClosing(CancelEventArgs e)
|
||||
@ -78,18 +76,15 @@ namespace RandomFileRunner
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.CurrentSession.ClosePrevOnNext)
|
||||
{
|
||||
CloseCurrentProcess(_currentProcess);
|
||||
}
|
||||
if (this.CurrentSession.ClosePrevOnNext) CloseCurrentProcess(currentProcess);
|
||||
|
||||
if (this.CurrentSession.NextHotKey != null)
|
||||
{
|
||||
if (this.CurrentSession.NextHotKey.KeyCode != Keys.None)
|
||||
{
|
||||
//#if !DEBUG
|
||||
User32.UnregisterHotKey((IntPtr)Handle, 1);
|
||||
//#endif
|
||||
//#if !DEBUG
|
||||
UnregisterHotKey((IntPtr)Handle, 1);
|
||||
//#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -98,11 +93,8 @@ namespace RandomFileRunner
|
||||
{
|
||||
switch (m.Msg)
|
||||
{
|
||||
case User32.WM_HOTKEY:
|
||||
if (m.WParam.ToInt32() == 1)
|
||||
{
|
||||
button5_MouseClick(null, null);
|
||||
}
|
||||
case WM_HOTKEY:
|
||||
if (m.WParam.ToInt32() == 1) button5_MouseClick(null, null);
|
||||
|
||||
break;
|
||||
//case WM_QUERYENDSESSION:
|
||||
@ -111,8 +103,7 @@ namespace RandomFileRunner
|
||||
// Application.Exit();
|
||||
|
||||
// break;
|
||||
default:
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
base.WndProc(ref m);
|
||||
@ -121,34 +112,40 @@ namespace RandomFileRunner
|
||||
|
||||
public bool IsBusy
|
||||
{
|
||||
get => _isBusy;
|
||||
get => isBusy;
|
||||
set
|
||||
{
|
||||
_isBusy = value;
|
||||
isBusy = value;
|
||||
|
||||
UIControl.SetValue(pictureBox1, (_isBusy ? RyzStudio.Windows.ThemedForms.Resource2.loading_block : null));
|
||||
UIControl.SetEnable(textBox1, !_isBusy);
|
||||
button2.LabelText = (_isBusy ? "&Cancel" : "&Search");
|
||||
UIControl.SetEnable(button5, !_isBusy);
|
||||
UIControl.SetEnable(button4, !_isBusy);
|
||||
ThreadControl.SetValue(pictureBox1, (isBusy ? AppResource.loading_block : null));
|
||||
ThreadControl.SetEnable(textBox1, !isBusy);
|
||||
//ThreadControl.SetEnable(button2, !isBusy);
|
||||
button2.LabelText = (isBusy? "&Cancel" : "&Search");
|
||||
ThreadControl.SetEnable(button3, !isBusy);
|
||||
ThreadControl.SetEnable(button4, !isBusy);
|
||||
ThreadControl.SetEnable(memoBox1, !isBusy);
|
||||
ThreadControl.SetEnable(button5, !isBusy);
|
||||
//ThreadControl.SetEnable(button1, !isBusy);
|
||||
}
|
||||
}
|
||||
|
||||
public AppSession CurrentSession { get; set; } = new AppSession();
|
||||
|
||||
public List<string> SearchPaths
|
||||
{
|
||||
get => _searchPaths;
|
||||
set
|
||||
{
|
||||
_searchPaths = value;
|
||||
|
||||
textBox2.Text = string.Join(", ", _searchPaths.ToArray());
|
||||
protected bool SearchDirecory_OnFound(string file, ulong searchCount, int searchQueue)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(file))
|
||||
{
|
||||
foundFiles.Add(file);
|
||||
}
|
||||
|
||||
//ThreadControl.SetText(label2, foundFiles.Count.ToString());
|
||||
ThreadControl.SetText(label2, foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture) + Environment.NewLine + searchQueue.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
#region Main Menu
|
||||
|
||||
/// <summary>
|
||||
/// New
|
||||
@ -159,15 +156,9 @@ namespace RandomFileRunner
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (this.IsBusy) return;
|
||||
|
||||
if (this.CurrentSession.ClosePrevOnNext)
|
||||
{
|
||||
CloseCurrentProcess(_currentProcess);
|
||||
}
|
||||
if (this.CurrentSession.ClosePrevOnNext) CloseCurrentProcess(currentProcess);
|
||||
|
||||
ClearSession();
|
||||
});
|
||||
@ -180,10 +171,7 @@ namespace RandomFileRunner
|
||||
/// <param name="e"></param>
|
||||
private async void openToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (this.IsBusy) return;
|
||||
|
||||
if (openFileDialog2.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
@ -198,14 +186,7 @@ namespace RandomFileRunner
|
||||
/// <param name="e"></param>
|
||||
private async void saveAsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
saveFileDialog1.Title = "Save session";
|
||||
saveFileDialog1.Filter = "Session files (*.jsonfig)|*.jsonfig";
|
||||
saveFileDialog1.DefaultExt = "jsonfig";
|
||||
if (this.IsBusy) return;
|
||||
|
||||
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
@ -230,15 +211,12 @@ namespace RandomFileRunner
|
||||
/// <param name="e"></param>
|
||||
private void optionsToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (this.IsBusy) return;
|
||||
|
||||
var optionsForm = new OptionsForm(this.CurrentSession);
|
||||
if (optionsForm == null) optionsForm = new OptionsForm(this.CurrentSession);
|
||||
if (optionsForm.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
this.CurrentSession = optionsForm.Result;
|
||||
this.CurrentSession = optionsForm.Session;
|
||||
|
||||
InvalidateHotKey();
|
||||
}
|
||||
@ -251,7 +229,18 @@ namespace RandomFileRunner
|
||||
/// <param name="e"></param>
|
||||
private void viewHelpToolStripMenuItem1_Click(object sender, EventArgs e)
|
||||
{
|
||||
RyzStudio.Diagnostics.Process.Execute(AppResource.AppHelpURL);
|
||||
try
|
||||
{
|
||||
System.Diagnostics.Process.Start(new ProcessStartInfo()
|
||||
{
|
||||
FileName = "https://www.hiimray.co.uk/software-random-file-runner",
|
||||
UseShellExecute = true
|
||||
});
|
||||
}
|
||||
catch
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -261,72 +250,9 @@ namespace RandomFileRunner
|
||||
/// <param name="e"></param>
|
||||
private void aboutToolStripMenuItem1_Click(object sender, EventArgs e)
|
||||
{
|
||||
var form = new RyzStudio.Windows.ThemedForms.AboutForm();
|
||||
form.ProductURL = AppResource.AppProductURL;
|
||||
form.AuthorURL = AppResource.AppAuthorURL;
|
||||
form.CompanyURL = AppResource.AppCompanyURL;
|
||||
form.ProductCopyrightStartYear = 2021;
|
||||
form.ProductLogo = AppResource.icon_64;
|
||||
|
||||
form.ShowDialog();
|
||||
MessageBox.Show(Application.ProductName + " v" + Application.ProductVersion, "About", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Search Engine
|
||||
|
||||
private async Task fileSearcher_OnFileFound(FileSearcher sender, string searchPath, string fileName)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
_foundFiles.Add(fileName);
|
||||
|
||||
UIControl.SetText(label3, Path.GetFileName(fileName));
|
||||
|
||||
progressBar2.Maximum = (sender.FileCount + sender.NoAccessFileCount);
|
||||
progressBar2.Value = sender.FileCount;
|
||||
});
|
||||
}
|
||||
|
||||
private async Task fileSearcher_OnDirectoryFound(FileSearcher sender, string searchPath, string directoryName)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
UIControl.SetText(label4, Path.GetFileName(directoryName));
|
||||
|
||||
progressBar1.Maximum = sender.DirectoryCount;
|
||||
progressBar1.Value = sender.BufferLevel;
|
||||
});
|
||||
}
|
||||
|
||||
private async Task fileSearcher_OnSearchCompleted(FileSearcher sender, TimeSpan elapsedTime)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
UIControl.SetText(label4, $"Done in {Math.Floor(elapsedTime.TotalMinutes)}m {elapsedTime.Seconds}s");
|
||||
UIControl.SetText(label3, ((_foundFiles.Count <= 0) ? "0" : _foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((_foundFiles.Count == 1) ? "" : "s") + " Found");
|
||||
|
||||
progressBar1.Value = sender.BufferLevel;
|
||||
progressBar2.Value = sender.FileCount;
|
||||
});
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
private void textBox2_OnButtonClick(object sender, EventArgs e)
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var form = new MemoBoxForm(this.SearchPaths);
|
||||
if (form.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
this.SearchPaths = form.Result;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Search
|
||||
@ -335,61 +261,136 @@ namespace RandomFileRunner
|
||||
/// <param name="e"></param>
|
||||
private async void button2_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
button2.LabelText = "&Cancelling...";
|
||||
_cancellationToken.Cancel();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this.IsBusy = true;
|
||||
|
||||
progressBar1.ShowProgressText = true;
|
||||
progressBar2.ShowProgressText = true;
|
||||
|
||||
_foundFiles = new List<string>();
|
||||
_cancellationToken = new CancellationTokenSource();
|
||||
_currentProcess = null;
|
||||
|
||||
_fileSearcher.FileSearchPattern = textBox1.Text;
|
||||
_fileSearcher.SearchPath = new List<string>();
|
||||
|
||||
await Task.Run(() =>
|
||||
{
|
||||
foreach (var item in SearchPaths)
|
||||
if (this.IsBusy)
|
||||
{
|
||||
if (_cancellationToken.IsCancellationRequested)
|
||||
requestCancel = true;
|
||||
button2.LabelText = "&Cancelling...";
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
this.IsBusy = true;
|
||||
requestCancel = false;
|
||||
|
||||
foundFiles = new List<string>();
|
||||
currentProcess = null;
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(memoBox1.Text))
|
||||
{
|
||||
string[] itemList = memoBox1.Text?.Trim().Split('\n');
|
||||
for (int i = 0; i < itemList.Length; i++)
|
||||
{
|
||||
break;
|
||||
}
|
||||
if (string.IsNullOrWhiteSpace(itemList[i])) continue;
|
||||
if (requestCancel) break;
|
||||
|
||||
if (System.IO.File.Exists(item))
|
||||
{
|
||||
_foundFiles.Add(item);
|
||||
string item = itemList[i]?.Trim();
|
||||
|
||||
continue;
|
||||
}
|
||||
if (File.Exists(item))
|
||||
{
|
||||
if (SmartDirectory.IsFileAccessible(item))
|
||||
{
|
||||
foundFiles.Add(item);
|
||||
ThreadControl.SetText(label2, foundFiles.Count.ToString());
|
||||
|
||||
if (System.IO.Directory.Exists(item))
|
||||
{
|
||||
_fileSearcher.SearchPath.Add(item);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
continue;
|
||||
if (Directory.Exists(item))
|
||||
{
|
||||
SmartDirectory.GetFiles(item, textBox1.Text, this.CurrentSession.SearchTopDirectoryOnly, SearchDirecory_OnFound);
|
||||
|
||||
ThreadControl.SetText(label2, foundFiles.Count.ToString());
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
UIControl.SetText(label3, ((_foundFiles.Count <= 0) ? "0" : _foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((_foundFiles.Count == 1) ? "" : "s") + " Found");
|
||||
});
|
||||
ThreadControl.SetText(label2, ((foundFiles.Count <= 0) ? "0" :foundFiles.Count.ToString("#,#", System.Globalization.CultureInfo.CurrentCulture)) + " File" + ((foundFiles.Count == 1) ? "" : "s") + " Found");
|
||||
|
||||
if (_fileSearcher.SearchPath.Count > 0)
|
||||
this.IsBusy = false;
|
||||
requestCancel = false;
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add directory
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void addDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.IsBusy) return;
|
||||
|
||||
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
await _fileSearcher.Search(_cancellationToken.Token);
|
||||
AddSearchItem(folderBrowserDialog1.SelectedPath);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add file
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void addFileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (this.IsBusy) return;
|
||||
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
AddSearchItem(openFileDialog1.FileName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clear
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void button4_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (this.IsBusy) return;
|
||||
|
||||
memoBox1.Text = string.Empty;
|
||||
}
|
||||
|
||||
private void memoBox1_DragOver(object sender, DragEventArgs e)
|
||||
{
|
||||
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
e.Effect = DragDropEffects.None;
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Effect = DragDropEffects.Copy;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
e.Effect = DragDropEffects.None;
|
||||
}
|
||||
}
|
||||
|
||||
private void memoBox1_DragDrop(object sender, DragEventArgs e)
|
||||
{
|
||||
if (this.IsBusy) return;
|
||||
|
||||
string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[];
|
||||
if (fileList == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.IsBusy = false;
|
||||
|
||||
_cancellationToken = new CancellationTokenSource();
|
||||
foreach (string item in fileList)
|
||||
{
|
||||
AddSearchItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -399,37 +400,23 @@ namespace RandomFileRunner
|
||||
/// <param name="e"></param>
|
||||
private async void button5_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_foundFiles.Count <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
await Task.Run(() =>
|
||||
{
|
||||
if (this.IsBusy) return;
|
||||
|
||||
//this.IsBusy = true;
|
||||
|
||||
if (this.CurrentSession == null)
|
||||
{
|
||||
this.CurrentSession = new AppSession();
|
||||
}
|
||||
if (this.CurrentSession == null) this.CurrentSession = new AppSession();
|
||||
|
||||
if (this.CurrentSession.ClosePrevOnNext)
|
||||
{
|
||||
CloseCurrentProcess(_currentProcess);
|
||||
}
|
||||
if (this.CurrentSession.ClosePrevOnNext) CloseCurrentProcess(currentProcess);
|
||||
|
||||
string filename = null;
|
||||
|
||||
// retry 8 times
|
||||
for (int i = 0; i < this.CurrentSession.RetryOnError; i++)
|
||||
{
|
||||
filename = _foundFiles[_randy.Next(0, (_foundFiles.Count - 1))];
|
||||
if (System.IO.File.Exists(filename))
|
||||
filename = foundFiles[randy.Next(0, (foundFiles.Count - 1))];
|
||||
if (File.Exists(filename))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@ -439,47 +426,23 @@ namespace RandomFileRunner
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(filename))
|
||||
{
|
||||
_currentProcess = RyzStudio.Diagnostics.Process.Execute(filename);
|
||||
ProcessStartInfo psi = new ProcessStartInfo(filename);
|
||||
psi.UseShellExecute = true;
|
||||
|
||||
try
|
||||
{
|
||||
currentProcess = Process.Start(psi);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
}
|
||||
|
||||
//this.IsBusy = false;
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Save File List
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private async void button4_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (this.IsBusy)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (_foundFiles.Count <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
saveFileDialog1.Title = "Save File List";
|
||||
saveFileDialog1.Filter = "Text files (*.txt)|*.txt";
|
||||
saveFileDialog1.DefaultExt = "txt";
|
||||
|
||||
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
try
|
||||
{
|
||||
await System.IO.File.WriteAllTextAsync(saveFileDialog1.FileName, string.Join(Environment.NewLine, _foundFiles.ToArray()));
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
ThMessageBox.Show(this, exc.Message, "Save File List", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Close
|
||||
/// </summary>
|
||||
@ -491,16 +454,24 @@ namespace RandomFileRunner
|
||||
}
|
||||
|
||||
|
||||
protected void AddSearchItem(string line)
|
||||
{
|
||||
memoBox1.Text = memoBox1.Text.Trim();
|
||||
|
||||
// above line-break
|
||||
if (!string.IsNullOrWhiteSpace(memoBox1.Text)) memoBox1.Text += Environment.NewLine;
|
||||
|
||||
memoBox1.Text += line + Environment.NewLine;
|
||||
}
|
||||
|
||||
private void CloseCurrentProcess(Process p)
|
||||
{
|
||||
if (p == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (p == null) return;
|
||||
|
||||
try
|
||||
{
|
||||
p.CloseMainWindow();
|
||||
//p.Close();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
@ -510,96 +481,191 @@ namespace RandomFileRunner
|
||||
|
||||
private void InvalidateHotKey()
|
||||
{
|
||||
//#if !DEBUG
|
||||
UIControl.Invoke(this, (x) =>
|
||||
//#if !DEBUG
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
User32.UnregisterHotKey((IntPtr)Handle, 1);
|
||||
});
|
||||
//#endif
|
||||
this.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
UnregisterHotKey((IntPtr)Handle, 1);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
UnregisterHotKey((IntPtr)Handle, 1);
|
||||
}
|
||||
//#endif
|
||||
|
||||
if (this.CurrentSession.NextHotKey != null)
|
||||
{
|
||||
if (this.CurrentSession.NextHotKey.KeyCode != Keys.None)
|
||||
{
|
||||
//#if !DEBUG
|
||||
UIControl.Invoke(this, (x) =>
|
||||
//#if !DEBUG
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
User32.RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.NextHotKey.ModifierCode, this.CurrentSession.NextHotKey.Key);
|
||||
});
|
||||
//#endif
|
||||
this.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.NextHotKey.ModifierCode, this.CurrentSession.NextHotKey.Key);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
RegisterHotKey((IntPtr)Handle, 1, this.CurrentSession.NextHotKey.ModifierCode, this.CurrentSession.NextHotKey.Key);
|
||||
}
|
||||
//#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ClearSession()
|
||||
{
|
||||
_foundFiles = new List<string>();
|
||||
_currentProcess = null;
|
||||
|
||||
foundFiles = new List<string>();
|
||||
currentProcess = null;
|
||||
textBox1.Text = "*.*";
|
||||
|
||||
progressBar1.Clear(0, 0, 0);
|
||||
progressBar2.Clear(0, 0, 0);
|
||||
|
||||
UIControl.SetText(label4, "");
|
||||
UIControl.SetText(label3, "");
|
||||
ThreadControl.SetText(label2, "0");
|
||||
memoBox1.Text = string.Empty;
|
||||
}
|
||||
|
||||
protected async Task LoadSessionFile(string filename)
|
||||
{
|
||||
await Task.Run(() =>
|
||||
{
|
||||
this.CurrentSession = RyzStudio.Text.Json.JsonSerialiser.DeserialiseFile<AppSession>(filename) ?? new AppSession();
|
||||
if (string.IsNullOrWhiteSpace(filename)) return;
|
||||
if (!File.Exists(filename)) return;
|
||||
|
||||
string sourceCode = null;
|
||||
|
||||
try
|
||||
{
|
||||
sourceCode = File.ReadAllText(filename);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
MessageBox.Show(exc.Message, "Load session");
|
||||
return;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(sourceCode))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// load options
|
||||
var options = new JsonSerializerOptions();
|
||||
//options.Converters.Add(new JsonPointConverter());
|
||||
//options.Converters.Add(new JsonSizeConverter());
|
||||
|
||||
try
|
||||
{
|
||||
this.CurrentSession = JsonSerializer.Deserialize<AppSession>(sourceCode, options);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
MessageBox.Show("Unable to read session", "Load session");
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.CurrentSession == null) this.CurrentSession = new AppSession();
|
||||
|
||||
ClearSession();
|
||||
|
||||
textBox1.Text = (string.IsNullOrWhiteSpace(this.CurrentSession.SearchFilePattern) ? "*" : this.CurrentSession.SearchFilePattern?.Trim());
|
||||
|
||||
SearchPaths = this.CurrentSession?.SearchItems ?? new List<string>();
|
||||
if (this.CurrentSession.SearchItems != null)
|
||||
{
|
||||
foreach (string item in this.CurrentSession.SearchItems)
|
||||
{
|
||||
AddSearchItem(item);
|
||||
}
|
||||
}
|
||||
|
||||
// hotkey
|
||||
InvalidateHotKey();
|
||||
});
|
||||
}
|
||||
|
||||
protected string ParseOpenFile_FromCMD(string[] args)
|
||||
{
|
||||
if (args.Length <= 1)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
int i = 1;
|
||||
while (true)
|
||||
{
|
||||
if (i > (args.Length - 1))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
switch (args[i].Trim().ToLower())
|
||||
{
|
||||
case "-o":
|
||||
case "-open":
|
||||
if ((i + 1) > (args.Length - 1)) break;
|
||||
|
||||
string openFilename = args[(i + 1)];
|
||||
if (string.IsNullOrWhiteSpace(openFilename)) break;
|
||||
if (!File.Exists(openFilename)) break;
|
||||
|
||||
return openFilename;
|
||||
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected async Task SaveSessionFile(string filename)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filename))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.CurrentSession == null)
|
||||
{
|
||||
this.CurrentSession = new AppSession();
|
||||
}
|
||||
|
||||
await Task.Run(() =>
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filename)) return;
|
||||
|
||||
if (this.CurrentSession == null) this.CurrentSession = new AppSession();
|
||||
this.CurrentSession.SearchFilePattern = textBox1.Text;
|
||||
this.CurrentSession.SearchItems = new List<string>();
|
||||
|
||||
foreach (var item in SearchPaths)
|
||||
if (!string.IsNullOrWhiteSpace(memoBox1.Text))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(item))
|
||||
foreach (string item in memoBox1.Text?.Trim().Split('\n'))
|
||||
{
|
||||
continue;
|
||||
if (string.IsNullOrWhiteSpace(item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
this.CurrentSession.SearchItems.Add(item?.Trim());
|
||||
}
|
||||
|
||||
this.CurrentSession.SearchItems.Add(item.Trim());
|
||||
}
|
||||
|
||||
var result = RyzStudio.Text.Json.JsonSerialiser.SerialiseFile(filename, this.CurrentSession);
|
||||
if (result.IsSuccess)
|
||||
string sourceCode = null;
|
||||
|
||||
try
|
||||
{
|
||||
ThMessageBox.Show(this, "Session saved!", "Save session");
|
||||
sourceCode = JsonSerializer.Serialize(this.CurrentSession);
|
||||
}
|
||||
else
|
||||
catch (Exception)
|
||||
{
|
||||
ThMessageBox.Show(this, result.Message, "Save session", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||
MessageBox.Show("Unable to write session", "Save session");
|
||||
return;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
File.WriteAllText(filename, sourceCode);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
MessageBox.Show(exc.Message, "Save session");
|
||||
return;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
656
MainForm.resx
@ -1,64 +1,4 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
@ -112,10 +52,10 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<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=5.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>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
@ -123,6 +63,35 @@
|
||||
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>716, 17</value>
|
||||
</metadata>
|
||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>831, 17</value>
|
||||
</metadata>
|
||||
<metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>986, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1155, 17</value>
|
||||
</metadata>
|
||||
<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">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAClSURBVDhP7dI/
|
||||
DgFBGIbxSVTKjcRx3MLqXYCOjkocQcMF3MAZOIKaE5AthOexf2QnbJQKb/JLJvO9XzLFhCgtbHDBveB5
|
||||
DWcfM8ANC0wKnr1LUUsbHXSxxBlJxDtnduy6E04on/Utd0IPOxwxxBT9iHfO7Nh155kV9vmxMXbsVvkv
|
||||
vvIji4f82Bg7tcUxrpih/NyxOeyMUMVPu0WGd39TzuzQDeEB5/ZKvTSyulEAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="textBox1.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
vAAADrwBlbxySQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADTSURBVDhP7ZI7
|
||||
CsJQEEUfWFmK4HLchdpnA9ppp5W4BBtdQNyBC0ilRf6VdVyBwUL03JdXxC/YWThwmDcz94YJjKmH7/uN
|
||||
OI7XaZqekiS5Cr1hpZmTPQemAeILeU4eC/dWr+9kVQRB0MzzvB2GYQfBAsExiqJWHfU0k0ZaeQyNAuxa
|
||||
X1CYLMu6/MOW4kD2YAK9B9TznGYrj12XVZY0drb4ENJI68q/sR4/YoS9K9+GNHdGLmIEJV+cku1xP4Jh
|
||||
Ri7JQ2erDp3mBs7w6jaFZht74MaYGwmLbkeRGexGAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
<metadata name="openFileDialog2.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1155, 17</value>
|
||||
</metadata>
|
||||
@ -130,304 +99,303 @@
|
||||
<value>1295, 17</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>52</value>
|
||||
<value>108</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
|
||||
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAoAAABbAAAAzQAAAPsAAAD7AAAAzQAAAFoAAAAJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMz
|
||||
MygzMzPXMzMzszIyMmU1NTUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAMAAAAewAAAO4AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADuAAAAewAA
|
||||
AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAHIAAADqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAOoAAAByAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
///V1tb/o6en/9vw8f/c8vP/3PLz/9zy8/+EkZL/AAAA/wAAAP8AAAD/AAAA/4SRkv/c8vP/3PLz/9zy
|
||||
8/+vubn/rq+v//////////////////7+/v+5urr/oKOj/9Xp6v/c8vP/3PLz/9zy8//c8vP/LTEy/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LTEy/9zy8//c8vP/3PLz/4+Pj//d3d3/////////
|
||||
/////////////+np6f+eoKD/1urr/9zy8//c8vP/3PLz/9zy8/+EkZL/AAAA/wAAAP8AAAD/AAAA/4SR
|
||||
kv/c8vP/3PLz/9zy8/+vubn/rq+v////////////////////////////wsPD/5udnf/R5OX/3PLz/9zy
|
||||
8//c8vP/LTEy/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LTEy/9zy8//c8vP/3PLz/4+P
|
||||
j//d3d3/////////////////9fX1/52env/N39//3PLz/9zy8//c8vP/3PLz/9zy8/+EkZL/AAAA/wAA
|
||||
AP8AAAD/AAAA/4SRkv/c8vP/3PLz/9zy8/+vubn/rq+v/////////////////////////////////8jJ
|
||||
yf+YmZn/zuDh/9zy8//c8vP/LTEy/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LTEy/9zy
|
||||
8//c8vP/3PLz/4+Pj//d3d3////////////9/f3/qaqq/8LQ0P/c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8/+EkZL/AAAA/wAAAP8AAAD/AAAA/4SRkv/c8vP/3PLz/9zy8/+vubn/rq+v/////////////v7+/+jo
|
||||
6P/MzMz/r6+v/5WVlf+Pj4//pKmq/9zy8//c8vP/LTEy/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/LTEy/9zy8//c8vP/3PLz/4+Pj//d3d3///////////+7vb3/tL2+/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8/+EkZL/AAAA/wAAAP8AAAD/AAAA/4SRkv/c8vP/3PLz/9zy8/+vubn/paWl/83N
|
||||
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
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1uvs/4SRkv8TFRX/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/yMmJv+ToaL/2/Hy/9zy8//c8vP/LTEy/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/LTEy/9zy8/+hsbL/LTEy/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8JCgr/Z3Fx/87j
|
||||
5P/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//S5+j/dYGC/w0O
|
||||
Dv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jysr/5Ohov/c8vP/LTEy/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/IyYn/zk/P/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BQYG/1hh
|
||||
Yf/H29z/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9nu7//S5eb/3PLz/9zy
|
||||
8//c8vP/3PLz/8zg4f9ncXH/CAkJ/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8yNzf/IiUm/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wIC
|
||||
Av9JUVH/wNPU/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2O3u/8bW1v+1v7//o6en/5KS
|
||||
kv+RkZH/2e7v/9zy8//c8vP/3PLz/9zy8//c8vP/xNfY/1hhYf8DBAT/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAADlAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8CAgL/TFRU/7zP0P/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//V6er/w9LT/7K7u/+go6P/lJWV/6qr
|
||||
q//Gx8f/4uLi/6SkpP+ip6f/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8/+8z9D/TFRU/wIC
|
||||
Av8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOQAAADHAAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/0JISP+zxcb/3PLz/9zy8//c8vP/3PLz/9Tn6P/Azs7/rra3/52goP+Wl5f/r7Cw/8zM
|
||||
zP/n5+f//f39////////////9/f3/5CQkP+3wsP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/7PFxv9CSEj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAMYAAAB6AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8FBgb/S1NT/8jb3P/c8vP/3PLz/9zy8//c8vP/3PLz/6Knp/+Pj4//oKCg/+bm
|
||||
5v//////////////////////////////////////2NjY/4+Pj//N3t//3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//M4OH/Vl1d/wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AHkAAAADAAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/woLC/9oc3P/zeLj/9zy8//c8vP/3PLz/9zy
|
||||
8//D0dL/nJ6f/5aXl//Ly8v/+/v7////////////////////////////uLi4/5eZmf/c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/zeLj/2hzc/8KCwv/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA4AAAAAMAAAAAAAAACAAAALUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg8P/3B7
|
||||
fP/R5uf/3PLz/9zy8//c8vP/2/Dx/8DOzv+anJz/mpub/87Ozv/8/Pz/////////////////mZmZ/6y0
|
||||
tP/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Hm5/9we3z/Dg8P/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAC0AAAACAAAAAAAAAAAAAAAAAAAAAAAAABYAAAA3gAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8RExP/eYWF/9Tp6v/c8vP/3PLz/9zy8//a7/D/vcrL/5iZmf+cnZ3/0tLS//7+
|
||||
/v/p6en/j4+P/8LQ0f/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//U6er/eYWF/xETE/8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA3gAAAFcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAA
|
||||
AGYAAADkAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xIUFP91gYL/1err/9zy8//c8vP/3PLz/9nu
|
||||
7/+3wsP/lZWW/6Kjo/+zs7P/kJCQ/9br7P/c8vP/3PLz/9zy8//c8vP/2O3u/4SRkv8XGhr/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOkAAAB3AAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAGAAAAZgAAAOcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghwd/4SR
|
||||
kv/Z7u//3PLz/9zy8//c8vP/1uvs/7O9vf+Sk5P/o6mp/9zy8//c8vP/3PLz/9rw8f+ToaL/HiEh/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADsAAAAdwAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAB3AAAA7gAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8cHx//hJGS/9nv8P/c8vP/3PLz/9zy8//Y7e7/2u/w/9zy8//b8fL/k6Gi/yIl
|
||||
Jf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA8gAAAIgAAAAPAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAA
|
||||
AHcAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yUpKf+ToaL/2/Hy/9zy8//c8vP/3PLz/6Gx
|
||||
sv8rLzD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPQAAACIAAAAEQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAVAAAAjgAAAPYAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LjIz/3+M
|
||||
jP9/jIz/LjIz/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD2AAAAjgAAABUAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACIAAAA+AAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+gAAAJkAAAAbAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQAA
|
||||
AKAAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPwAAACgAAAAIQAA
|
||||
AAAAAAAAMTExOTQ0NO00NDT/NDU1/zMzM/8zMzP9MzMzyDMzM3k0NDQsAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAoAAAAogAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD+AAAAswAA
|
||||
AC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAA0NDRFMzQ09D0+Pv6htbX/xODh/5apqv9ncXL/Ojs7/jMzM/8zMzP/NDQ04DQ0
|
||||
NJkyMjJNMzMzBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkAAACKAAAA0gAAAPEAAADxAAAA0gAA
|
||||
AIoAAAApAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///AP///xBP//wAP///EE//8AAP//8QT//AAAP//xBP/w
|
||||
AAAP//EE/8AAAAP/8QT/gAAAAP/xBP4AAAAAf/EE+AAAAAAf8QTgAAAAAAfxBIAAAAAAAfEEgAAAAAAB
|
||||
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA
|
||||
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
|
||||
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAA
|
||||
AAAAAPEEAAAAAAAA8QQAAAAAAADxBIAAAAAAAfEE4AAAAAAH8QTwAAAAAA/xBPwAAAAAP/EE/wAAAAD/
|
||||
8QT/wAAAA//xBP/wAAAP//EE//wAAD//8QT//wAA///xBP//wAP///EE///wD///8QQoAAAAIAAAAEAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzM180NDT7T1BQ/b/R0f/S7/D/0O7v/9Du7//Q7u//y+np/6e9
|
||||
vf93hIT/QkVF/jMzM/8zMzP/NDQ08DMzM6o0NDReMzMzDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzdzU1Nf5eYWH+xtna/9nx8v/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//zuzt/7DIyf+CkZH/UlhY/jMzM/8zMzP/MzMz/DMzM8QzMzNvNTU1HQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVQMzMzOVNTU1/2xwcP7O4+P/3PLz/9Xw
|
||||
8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7zW1/+Ro6P/Ymtr/zY2
|
||||
Nv4zMzP/MzMz/zMzM9UzMzOIMzMzPAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkBzMzM6k5OTn/eH5+/9Po
|
||||
6f/c8vP/2/Lz/9Hu7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/8Xh4v+csLD/bHd3/zs9Pf4zMzP/MzMz/zQ0NOI0NDSZMjIyTSQkJAcAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS0RMzMzwjw8
|
||||
PP+Ij5D/2O7v/9zy8//c8vP/1/Hy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8vo6f+jubr/dICA/0NGRv4zMzP/MzMz/zQ0
|
||||
NPIyMjJrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3
|
||||
NxwzMzPVQUFB/5Wfn//a8fL/3PLz/9zy8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t
|
||||
7v+wyMn/gZCQ/zk6Ov4zMzPEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAMTExKjQ0NOJGRkb/oKys/9zy8//c8vP/3PLz/9zy8//b8vP/0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/19naP80NDT5JCQkBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAyMjI4NTU17UhISP6turr/3PLz/9zy8//c8vP/3PLz/9zy8//X8fH/0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/4KRkv8zMzP/MTExOQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NE80NDT3Tk9P/bnJyv/c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/6a8vf8zMzP/MzMzcwAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyYTQ0NPxUVlb9wtPU/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9vy8//Q7u//0O7v/8fk5f/O7O3/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8nm
|
||||
5/81NTX+NDQ0rQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzN3MzMz/11gYP3K3d3/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9jx8v/Q7u//i6Cg/wMEBP8hJib/rcbH/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/9RV1f/MzMz6gAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVAzIyMpgzMzP/Z2tr/tDk
|
||||
5f/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f/Q7u//TVlZ/wAAAP8AAAD/CgsL/4ic
|
||||
nf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/91goL/MzMz/zMzMyMAAAAAAAAAAAAAAABAQEAIMzMzqzMz
|
||||
M/9yeHj/1uvr/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P/Q7u//TVhY/wAA
|
||||
AP8AAAD/AAAA/wAAAP9baGj/zOnq/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Zra7/MzMz/zQ0NF4AAAAAAAAAAAAA
|
||||
AAAzMzPCMzMz/3uEhP/a7/D/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2/Lz/9Du
|
||||
7//Q7u//TVhY/wAAAP8AAAD/AAAA/wAAAP8AAAD/MDc3/7vW1//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/++2dr/MzMz/zQ0
|
||||
NJkAAAAAAAAAAAAAAAAzMzPNPD09/tvx8v/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/2fHy/9Du7//Q7u//TVhY/wAAAP8AAAD/YnBw/wYHB/8AAAD/AAAA/xQWFv+ds7T/0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//REdH/jQ0NNQAAAAAAAAAAAAAAAAyMjKTMzMz/8ve3//d8/T/3fPz/93z8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/1/Hx/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/6e/wP8bHx//AAAA/wAA
|
||||
AP8DBAT/b39//8/t7v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//aHJz/zMzM/0tLS0RAAAAAAAAAAA0NDRZMzMz/6u6u//d8/T/3fPz/93z
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du
|
||||
7//A3N3/OkJD/wAAAP8AAAD/AAAA/0BJSf/E4OH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//jJ2e/zMzM/8yMjJIAAAAAAAAAAAzMzMeMzMz/4aQ
|
||||
kP/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1O/w/9Du7//Q7u//TVhY/wAA
|
||||
AP8AAAD/s8zN/9Du7//Q7u//z+3u/29/f/8CAgL/AAAA/wAAAP8fIyT/rMXG/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//sMfI/zMzM/8zMzOCAAAAAAAA
|
||||
AAAAAAAAMzMz5FpfX/7d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0u/w/9Du
|
||||
7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7/+Uqar/DhAQ/wAAAP8AAAD/CgsL/4md
|
||||
nf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//zuvs/zo7
|
||||
O/40NDS8AAAAAAAAAAAAAAAAMzMzqTY2N//V6er/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/0e7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7//Q7u//tM7P/yct
|
||||
Lf8AAAD/AAAA/wAAAP9baWn/zerr/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/1tjY/80NDT1QEBABAAAAAAAAAAAMzMzbzMzM/+4ycn/3fPz/93z8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/8nm5/9OWlr/AAAA/wAAAP8AAAD/a3p7/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/36Njf8zMzP/MzMzMgAAAAAAAAAAMTExNDMzM/+UoaH/3fPz/93z
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8nm5/9OWlr/AAAA/wAAAP8AAAD/a3p7/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/6O4uf8zMzP/MzMzbQAAAAAAAAAAQEBABDQ0
|
||||
NPRrcnL/3fP0/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//b8vP/0O7v/9Du7//Q7u//TVhY/wAA
|
||||
AP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7//Q7u//tM7P/yctLf8AAAD/AAAA/wAAAP9baWn/zerr/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8bi4/80NDT/MjIypwAA
|
||||
AAAAAAAAAAAAADMzM749Pj7+3PHx/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du
|
||||
7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//0O7v/9Du7/+Uqar/DxER/wAAAP8AAAD/CgsL/4ic
|
||||
nf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7/9NUVL+NDQ04gAAAAAAAAAAAAAAADIyMoQzMzP/w9bW/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/0e7v/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//Q7u//z+3u/29/f/8CAgL/AAAA/wAA
|
||||
AP8fIyT/rMXG/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/9yfn//MzMz/zU1NR0AAAAAAAAAADQ0NEozMzP/oa+w/93z8//d8/P/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/0u/w/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/9Du7//A3N3/O0ND/wAA
|
||||
AP8AAAD/AAAA/0BJSf/D3+D/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+WqKn/MzMz/zIyMlcAAAAAAAAAADAwMBAzMzP9eIGB/93z
|
||||
8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1O/w/9Du7//Q7u//TVhY/wAAAP8AAAD/s8zN/6e/
|
||||
wP8bHx//AAAA/wAAAP8CAwP/b39//8/t7v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+50tP/MzMz/zMzM5EAAAAAAAAAAAAA
|
||||
AAA0NDTUSk1N/t3z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7//Q7u//TVhY/wAA
|
||||
AP8AAAD/YnBw/wYHB/8AAAD/AAAA/xQWFv+ds7T/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//O7O3/Oz09/jMz
|
||||
M80AAAAAAAAAAAAAAAA0NDSZMzMz/87i4//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2PHy/9Du
|
||||
7//Q7u//TVhY/wAAAP8AAAD/AAAA/wAAAP8AAAD/MDc3/7vW1//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8zp
|
||||
6v9qdHT/MzMz/zMzM8IAAAAAAAAAAAAAAAAyMjJgMzMz/6u8vP/d8/P/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/2/Lz/9Du7//Q7u//TVhY/wAAAP8AAAD/AAAA/wAAAP9baGj/zOnq/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//yOXm/19oaP8zMzP/MzMzuTs7Ow0AAAAAAAAAAAAAAAAwMDAlMzMz/4WRkf/d8/P/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P/Q7u//TVlZ/wAAAP8AAAD/CgsL/4icnf/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//B3d7/UVdX/jMzM/8zMzOgMzMzBQAAAAAAAAAAAAAAAAAAAAAAAAAAMzMz6Vlf
|
||||
X//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9fx8v/Q7u//i6Cg/wMEBP8hJib/rcbH/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/7vV1v9KTk79MzMz/zMzM4gAAAABAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAMzMzrzU1Nf7V6+z/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//R7/D/0O7v/8fk
|
||||
5f/O7O3/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//sMjI/0FDQ/0zMzP9MzMzaQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAMjIydTMzM/+4ysv/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//X8fH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+nvb3/OTs7/TQ0NPkyMjJWAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0OzMzM/+ToKH/3fPz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5eqq/81Njb+NDU18TEx
|
||||
MT4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkBzMzM/hpcXH/3fPz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2vLz/9Hu7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//i5yd/zQ0
|
||||
NP80NDTnMTExLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMz
|
||||
M8Q5Ojr+jZqa/8DT1P/b8vL/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9nx8v/R7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/87s
|
||||
7f91goL/MzMz/zMzM9U3NzccAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADIyMms0NDTyMzMz/zMzM/9KTU3+hY+P/7XHyP/Y7u//3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//Z8fL/0e7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//y+jp/2dwcf8zMzP/MzMzwi0tLREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDMzMzPDMzM4g0NDTbMzMz/zMzM/89Pj7+cnp6/6W0
|
||||
tP/R5ub/3PLz/9zy8//c8vP/2fHy/9Lv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//I5eb/XWVl/zMzM/8zMzOwOTk5CQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU1KzMz
|
||||
M3czMzPEMzMz/jMzM/82Njb+ZWtr/5qoqP/I29z/3PLz/9vy8//U8PH/0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8Hc3f9QVVX+MzMz/zIyMp1AQEAEAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAALi4uFjQ0NF4zMzOzNDQ0+TMzM/8zMzP/T1NT/oeSkv+3ycn/1+/w/9Tv
|
||||
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//t9DR/0VJSf4zMzP/MzMziAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzCjIyMk00NDSZMzMz6jMz
|
||||
M/8zMzP/QEND/niCgv+lt7f/y+bn/9Hu7//Q7u//0O7v/9Du7/+vx8f/P0JC/TMzM/00NDRnAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAVVVVAzMzMzwzMzOIMzQ02DMzM/8zMzP/Nzg4/mBoaf+Nnp//wNvc/6C1tv84OTn+MzMz+DQ0
|
||||
NFMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NCwzMzN5MzMzyDMzM/0zMzP/NDQ0/zQ0
|
||||
NP8zNTXuMTExOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//i5yc/zs8PLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2NjYhOzw84YGIiPrY7+//3PLz/9zy
|
||||
8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/+vx8f/ODk58gAAAAEAAAAAAAAAAAAAAAAAAAAAMzMzLTo7O+2PmZn82vHy/9zy
|
||||
8//c8vP/3PLz/9vy8//R7u//l62t/7DKyv/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/83q6/83Nzf7NDQ0JwAAAAAAAAAAAAAAADIyMkI6Ojr2nKio/dzy
|
||||
8//c8vP/3PLz/9zy8//c8vP/2PHy/8Tg4f8BAQH/CAkJ/4WYmf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/1RaWvMyMjJhAAAAAAAAAAAyMjJbNzg4+qm4
|
||||
uP/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//V8PH/vdnZ/wAAAP8AAAD/AAAA/1dkZP/L6On/0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//fYyM/jk5OaIAAAAAAAAAADg5
|
||||
OeyisrL/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P+92dn/AAAA/xgcHP8VGBj/AAAA/y40
|
||||
NP+51NX/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+it7j/Ozw84gAA
|
||||
AAAAAAAAOzw8tpmnp//d8/T/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/0e7v/73Z2f8AAAD/Mjk5/7/a
|
||||
2/83P0D/AAAA/xATE/+Yrq7/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8Xh
|
||||
4v80NDT+MzMzFAAAAAAzMzNzb3d3993z9P/d8/P/3PLz/9zy8//c8vP/3PLz/9vy8//Q7u//vdnZ/wAA
|
||||
AP8yOTn/0O7v/87r7P9hb3D/AQEB/wIDA/9od3f/zuzt/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/0ZKSvQyMjJMAAAAADIyMjhDRET43fLz/93z8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du
|
||||
7/+92dn/AAAA/zI5Of/Q7u//0O7v/9Du7/+Qpab/DQ8P/wAAAP8/SEj/w9/g/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//bnp6+jU1NYcAAAAAMzMzBTU2NvnL3d7/3fPz/9zy8//c8vP/3PLz/9zy
|
||||
8//Y8fL/0O7v/73Z2f8AAAD/Mjk5/9Du7//Q7u//0O7v/9Du7/+wysr/Iicn/wAAAP8hJib/zerr/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Upqf/PD09zAAAAAAAAAAAPT4+zqq4uf/d8/P/3PLz/9zy
|
||||
8//c8vP/3PLz/9jx8v/Q7u//vdnZ/wAAAP8yOTn/0O7v/9Du7//Q7u//0O7v/7DKyv8iJyf/AAAA/yEm
|
||||
Jv/N6uv/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v81NTX6KysrBgAAAAA0NDSJgouM+93z
|
||||
8//c8vP/3PLz/9zy8//c8vP/2PHy/9Du7/+92dn/AAAA/zI5Of/Q7u//0O7v/9Du7/+Qpab/DQ8P/wAA
|
||||
AP8+R0f/w9/g/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//z+3u/zw+Pvg0NDQ2AAAAADQ0
|
||||
NE5RVFT13fPz/93z8//c8vP/3PLz/9zy8//Y8fL/0O7v/73Z2f8AAAD/Mjk5/9Du7//O6+z/aHd3/wEB
|
||||
Af8CAwP/aHd3/87s7f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//X2dn9TQ0
|
||||
NHEAAAAAMzMzFDU1Nf7U6er/3fPz/9zy8//c8vP/3PLz/9ry8v/Q7u//vdnZ/wAAAP8yOTn/v9rb/zc/
|
||||
QP8AAAD/EBMT/5iurv/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7/+Hl5f/PD09tAAAAAAAAAAAOzw84rTFxv/d8/P/3PLz/9zy8//c8vP/2/Lz/9Du7/+92dn/AAAA/xgc
|
||||
HP8VGBj/AAAA/y40NP+51NX/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/5KkpP84OTnsAAAAAAAAAAA4Ojqjj5uc/t3z8//c8vP/3PLz/9zy8//c8vP/0+/w/73Z
|
||||
2f8AAAD/AAAA/wAAAP9XZGT/y+jp/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/+Xqqv/NjY2+zQ0NGMAAAAAAAAAADQ0NGNiZ2f13fPz/9zy8//c8vP/3PLz/9zy
|
||||
8//W8PH/xODh/wEBAf8ICQn/hZiZ/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//i5yc/TY3N/c0NDRJAAAAAAAAAAAAAAAAMjIyKTk6Ovva8PD/3PLz/9zy
|
||||
8//c8vP/3PLz/9vy8//R7u//l62t/7DKyv/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//z+3u/3mIiPw3ODjyMTExOQAAAAAAAAAAAAAAAAAAAAAAAAABODk58sDS
|
||||
0//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8zp6v9ncXL5Nzk55jY2NiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA7Pj69nKqr/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//I5eb/XGRk+Ds8PNU3NzcXAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
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
|
||||
rEEAAKxBAACsQYABrEHgB6xB+B+sQQ==
|
||||
AAAAAAAALi4uCzIyMlFDRkavOzw87Ts+PlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H
|
||||
/0H+AP9B+AAPQfAAA0HgAANBwAADQYAAA0EAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA
|
||||
AEGAAABBwAABQcAAA0HAAAdBwAAPQfgAH0H/AH9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEpRUXhaYWLXUFVVsEFERE9AQEAIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRaWo6jsLHw0O7v/8vo6f+mvLz4cHt721Va
|
||||
W8FGSkp1NTU1GAAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVA1VbW622xsf21vDx/9Du7//Q7u//0O7v/9Du
|
||||
7//O7O3/rMPE/XSAgeNXXV3INTU1IgAAAAAAAAAAJCQkB1leXru/0dH63PLz/9Pv8P/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//ts/Q/0pQUHkAAAAALS0tEVthYcrJ3d793PLz/9vy8/+NoaL/hJeY/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t7v9VW1u3AAAAAFheXtDR5ub/3PLz/9zy8//Y8fL/X21u/wsN
|
||||
Df9UYGH/yufo/9Du7//Q7u//0O7v/9Du7//Q7u//Y2tr0QAAAABocHHL3fPz/9zy8//c8vP/1vDx/19t
|
||||
bv9+kJD/YW9w/yowMP+1z9D/0O7v/9Du7//Q7u//0O7v/3yKiuUzMzMZUVhYqdjt7v/c8vP/3PLz/9Tw
|
||||
8f9fbW7/gZOU/9Du7/+FmJn/GBwc/6G4uf/Q7u//0O7v/9Du7/+ovsD9QENDW0JFRV27zs/93PLz/9zy
|
||||
8//U8PD/X21u/4GTlP/Q7u//hZiZ/xgcHP+huLn/0O7v/9Du7//Q7u//y+jp/1FYWKY1NTUYkp6f6tzy
|
||||
8//c8vP/1fDx/19tbv9+kJD/YW9w/ykvL/+1z9D/0O7v/9Du7//Q7u//0O7v/9Du7/9eZ2fHAAAAAHN6
|
||||
etXc8vP/3PLz/9fx8f9fbW7/Cw0N/1RgYf/K5+j/0O7v/9Du7//Q7u//0O7v/9Du7//C3t7/UFdXzgAA
|
||||
AABaYGC52/Ly/9zy8//a8vP/jaGi/4SXmP/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+81tf+U1pazTMz
|
||||
MxQAAAAASlBQfMfb3P/c8vP/3PLz/9Xw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+vx8f6T1VVvjMz
|
||||
MwoAAAAAAAAAADU1NSJbYmLJhpGS5r3P0P3a8fH/1O/w/9Du7//Q7u//0O7v/9Du7/+htrf0TVNTqlVV
|
||||
VQMAAAAAAAAAAAAAAAAAAAAAAAAAADk5ORJGS0tiXGNjuneAgN+htLT3yeXm/9Du7/+TpabvS09PmgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAIQURET1FXV7BaYWLXSlFReAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA+D+sQfAHrEHAAaxBgAGsQQABrEEAAaxBAACsQQAArEEAAKxBAACsQYAA
|
||||
rEGAAKxBgAGsQYADrEHgD6xB/B+sQQ==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
210
MemoBoxForm.cs
@ -1,210 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Windows.Forms;
|
||||
using RyzStudio.Windows.Forms;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
|
||||
namespace RandomFileRunner
|
||||
{
|
||||
public class MemoBoxForm : Form
|
||||
{
|
||||
private ThMemoBox memoBox1;
|
||||
private ThButton button3;
|
||||
private ThButton button4;
|
||||
private ContextMenuStrip contextMenuStrip1;
|
||||
private System.ComponentModel.IContainer components;
|
||||
private ToolStripMenuItem addDirectoryToolStripMenuItem;
|
||||
private ToolStripMenuItem addFileToolStripMenuItem;
|
||||
private FolderBrowserDialog folderBrowserDialog1;
|
||||
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
|
||||
private OpenFileDialog openFileDialog1;
|
||||
|
||||
|
||||
public MemoBoxForm(List<string> lines)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
UISetup.Dialog(this);
|
||||
|
||||
if (lines != null)
|
||||
{
|
||||
memoBox1.TextBox.Lines = lines.ToArray();
|
||||
}
|
||||
|
||||
memoBox1.TextBox.WordWrap = false;
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
memoBox1 = new ThMemoBox();
|
||||
button3 = new ThButton();
|
||||
contextMenuStrip1 = new ContextMenuStrip(components);
|
||||
addDirectoryToolStripMenuItem = new ToolStripMenuItem();
|
||||
addFileToolStripMenuItem = new ToolStripMenuItem();
|
||||
button4 = new ThButton();
|
||||
folderBrowserDialog1 = new FolderBrowserDialog();
|
||||
openFileDialog1 = new OpenFileDialog();
|
||||
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
|
||||
contextMenuStrip1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// memoBox1
|
||||
//
|
||||
memoBox1.AllowDrop = true;
|
||||
memoBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
|
||||
memoBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
memoBox1.EnableReactiveVisual = true;
|
||||
memoBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
memoBox1.Location = new System.Drawing.Point(10, 70);
|
||||
memoBox1.Name = "memoBox1";
|
||||
memoBox1.ReadOnly = false;
|
||||
memoBox1.ScrollBars = ScrollBars.Vertical;
|
||||
memoBox1.Size = new System.Drawing.Size(364, 357);
|
||||
memoBox1.TabIndex = 191;
|
||||
memoBox1.TabStop = false;
|
||||
memoBox1.WordWrap = false;
|
||||
//
|
||||
// button3
|
||||
//
|
||||
button3.ActiveImage = null;
|
||||
button3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
button3.BackColor = System.Drawing.Color.Transparent;
|
||||
button3.ContextMenuStrip = contextMenuStrip1;
|
||||
button3.EnableMenuOnClick = true;
|
||||
button3.EnableReactiveVisual = true;
|
||||
button3.HoverImage = null;
|
||||
button3.IdleImage = null;
|
||||
button3.LabelText = "&Add";
|
||||
button3.Location = new System.Drawing.Point(10, 21);
|
||||
button3.Name = "button3";
|
||||
button3.Size = new System.Drawing.Size(177, 33);
|
||||
button3.TabIndex = 189;
|
||||
button3.TabStop = false;
|
||||
//
|
||||
// contextMenuStrip1
|
||||
//
|
||||
contextMenuStrip1.Items.AddRange(new ToolStripItem[] { addDirectoryToolStripMenuItem, addFileToolStripMenuItem });
|
||||
contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
contextMenuStrip1.Size = new System.Drawing.Size(148, 48);
|
||||
//
|
||||
// addDirectoryToolStripMenuItem
|
||||
//
|
||||
addDirectoryToolStripMenuItem.Name = "addDirectoryToolStripMenuItem";
|
||||
addDirectoryToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
|
||||
addDirectoryToolStripMenuItem.Text = "&Add Directory";
|
||||
addDirectoryToolStripMenuItem.Click += addDirectoryToolStripMenuItem_Click;
|
||||
//
|
||||
// addFileToolStripMenuItem
|
||||
//
|
||||
addFileToolStripMenuItem.Name = "addFileToolStripMenuItem";
|
||||
addFileToolStripMenuItem.Size = new System.Drawing.Size(147, 22);
|
||||
addFileToolStripMenuItem.Text = "Add &File";
|
||||
addFileToolStripMenuItem.Click += addFileToolStripMenuItem_Click;
|
||||
//
|
||||
// button4
|
||||
//
|
||||
button4.ActiveImage = null;
|
||||
button4.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
button4.BackColor = System.Drawing.Color.Transparent;
|
||||
button4.EnableMenuOnClick = false;
|
||||
button4.EnableReactiveVisual = true;
|
||||
button4.HoverImage = null;
|
||||
button4.IdleImage = null;
|
||||
button4.LabelText = "&Clear";
|
||||
button4.Location = new System.Drawing.Point(197, 21);
|
||||
button4.Name = "button4";
|
||||
button4.Size = new System.Drawing.Size(177, 33);
|
||||
button4.TabIndex = 190;
|
||||
button4.TabStop = false;
|
||||
button4.MouseClick += button4_MouseClick;
|
||||
//
|
||||
// folderBrowserDialog1
|
||||
//
|
||||
folderBrowserDialog1.ShowNewFolderButton = false;
|
||||
//
|
||||
// openFileDialog1
|
||||
//
|
||||
openFileDialog1.Filter = "All files (*.*)|*.*";
|
||||
//
|
||||
// dialogFooter1
|
||||
//
|
||||
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
|
||||
dialogFooter1.Button1Text = "&OK";
|
||||
dialogFooter1.Dialog = this;
|
||||
dialogFooter1.Dock = DockStyle.Bottom;
|
||||
dialogFooter1.Location = new System.Drawing.Point(0, 437);
|
||||
dialogFooter1.Name = "dialogFooter1";
|
||||
dialogFooter1.Size = new System.Drawing.Size(384, 84);
|
||||
//
|
||||
// MemoBoxForm
|
||||
//
|
||||
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = System.Drawing.Color.White;
|
||||
ClientSize = new System.Drawing.Size(384, 521);
|
||||
Controls.Add(dialogFooter1);
|
||||
Controls.Add(memoBox1);
|
||||
Controls.Add(button3);
|
||||
Controls.Add(button4);
|
||||
MinimumSize = new System.Drawing.Size(400, 560);
|
||||
Name = "MemoBoxForm";
|
||||
ShowIcon = false;
|
||||
ShowInTaskbar = false;
|
||||
Text = "Manage Search Paths";
|
||||
contextMenuStrip1.ResumeLayout(false);
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
memoBox1.Focus();
|
||||
}
|
||||
|
||||
|
||||
public List<string> Result
|
||||
{
|
||||
get => memoBox1.Lines;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Add Directory.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void addDirectoryToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
memoBox1.TextBox.AddLine(folderBrowserDialog1.SelectedPath);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add File.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void addFileToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (openFileDialog1.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
memoBox1.TextBox.AddLine(openFileDialog1.FileName);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Clear.
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void button4_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
memoBox1.Text = string.Empty;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
425
OptionsForm.cs
@ -1,280 +1,289 @@
|
||||
using System;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using RyzStudio.Windows.Forms;
|
||||
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
|
||||
using RyzStudio.Windows.ThemedForms.PickerBox;
|
||||
|
||||
namespace RandomFileRunner
|
||||
{
|
||||
public class OptionsForm : Form
|
||||
public class OptionsForm : TDialogForm
|
||||
{
|
||||
private ThYesNoPickerBox pickerBox1;
|
||||
private TButton button1;
|
||||
private TYesNoPickerBox pickerBox1;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private ThNumericPickerBox pickerBox2;
|
||||
private ThKeyCodeTextBox textBox1;
|
||||
private ThYesNoPickerBox pickerBox3;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
||||
private TNumericPickerBox pickerBox2;
|
||||
private TKeyCodeTextBox textBox1;
|
||||
private TYesNoPickerBox pickerBox3;
|
||||
private Label label1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3;
|
||||
private Label label2;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
|
||||
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
|
||||
|
||||
|
||||
private AppSession _session = null;
|
||||
|
||||
|
||||
public OptionsForm(AppSession session) : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
UISetup.Dialog(this);
|
||||
|
||||
_session = session;
|
||||
|
||||
if (_session != null)
|
||||
{
|
||||
pickerBox1.Value = _session.SearchTopDirectoryOnly;
|
||||
pickerBox2.Value = _session.RetryOnError;
|
||||
pickerBox3.Value = _session.ClosePrevOnNext;
|
||||
|
||||
if (_session.NextHotKey != null)
|
||||
{
|
||||
textBox1.UpdateKeyCode(_session.NextHotKey.IsCtrl, _session.NextHotKey.IsAlt, _session.NextHotKey.IsShift, _session.NextHotKey.KeyCode);
|
||||
}
|
||||
}
|
||||
this.Session = session;
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
ThKeyCodeTextBox.Results results1 = new ThKeyCodeTextBox.Results();
|
||||
pickerBox1 = new ThYesNoPickerBox();
|
||||
label6 = new Label();
|
||||
label8 = new Label();
|
||||
tHorizontalSeparator2 = new THorizontalSeparator();
|
||||
pickerBox2 = new ThNumericPickerBox();
|
||||
textBox1 = new ThKeyCodeTextBox();
|
||||
pickerBox3 = new ThYesNoPickerBox();
|
||||
label1 = new Label();
|
||||
tHorizontalSeparator3 = new THorizontalSeparator();
|
||||
label2 = new Label();
|
||||
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
|
||||
SuspendLayout();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(OptionsForm));
|
||||
RyzStudio.Windows.ThemedForms.TKeyCodeTextBox.Results results1 = new RyzStudio.Windows.ThemedForms.TKeyCodeTextBox.Results();
|
||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TNumericPickerBox();
|
||||
this.textBox1 = new RyzStudio.Windows.ThemedForms.TKeyCodeTextBox();
|
||||
this.pickerBox3 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox();
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// 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.DefaultImage = null;
|
||||
this.button1.DownImage = null;
|
||||
this.button1.IsSelected = false;
|
||||
this.button1.LabelText = "&Save";
|
||||
this.button1.Location = new System.Drawing.Point(241, 469);
|
||||
this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 10);
|
||||
this.button1.Name = "button1";
|
||||
this.button1.OverImage = 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;
|
||||
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
|
||||
//
|
||||
// pickerBox1
|
||||
//
|
||||
pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
pickerBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
pickerBox1.EnableReactiveVisual = true;
|
||||
pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
pickerBox1.Location = new System.Drawing.Point(285, 20);
|
||||
pickerBox1.Name = "pickerBox1";
|
||||
pickerBox1.SelectedIndex = 1;
|
||||
pickerBox1.Size = new System.Drawing.Size(84, 35);
|
||||
pickerBox1.TabIndex = 0;
|
||||
pickerBox1.TabStop = false;
|
||||
pickerBox1.Value = true;
|
||||
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, 21);
|
||||
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.SubmitButton = null;
|
||||
this.pickerBox1.TabIndex = 183;
|
||||
this.pickerBox1.Value = true;
|
||||
//
|
||||
// label6
|
||||
//
|
||||
label6.AutoSize = true;
|
||||
label6.BackColor = System.Drawing.Color.Transparent;
|
||||
label6.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
label6.Location = new System.Drawing.Point(10, 95);
|
||||
label6.Margin = new Padding(0);
|
||||
label6.Name = "label6";
|
||||
label6.Padding = new Padding(0, 9, 0, 10);
|
||||
label6.Size = new System.Drawing.Size(81, 34);
|
||||
label6.TabIndex = 182;
|
||||
label6.Text = "Retry On Error";
|
||||
label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
this.label6.AutoSize = true;
|
||||
this.label6.BackColor = System.Drawing.Color.Transparent;
|
||||
this.label6.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.label6.Location = new System.Drawing.Point(10, 85);
|
||||
this.label6.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.label6.Name = "label6";
|
||||
this.label6.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
||||
this.label6.Size = new System.Drawing.Size(81, 34);
|
||||
this.label6.TabIndex = 182;
|
||||
this.label6.Text = "Retry On Error";
|
||||
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// label8
|
||||
//
|
||||
label8.AutoSize = true;
|
||||
label8.BackColor = System.Drawing.Color.Transparent;
|
||||
label8.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
label8.Location = new System.Drawing.Point(10, 20);
|
||||
label8.Margin = new Padding(0);
|
||||
label8.Name = "label8";
|
||||
label8.Padding = new Padding(0, 9, 0, 10);
|
||||
label8.Size = new System.Drawing.Size(143, 34);
|
||||
label8.TabIndex = 186;
|
||||
label8.Text = "Search Top Directory Only";
|
||||
label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
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, 21);
|
||||
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(143, 34);
|
||||
this.label8.TabIndex = 186;
|
||||
this.label8.Text = "Search Top Directory Only";
|
||||
this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// tHorizontalSeparator1
|
||||
//
|
||||
this.tHorizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tHorizontalSeparator1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 437);
|
||||
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
||||
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
||||
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
||||
this.tHorizontalSeparator1.Size = new System.Drawing.Size(364, 22);
|
||||
this.tHorizontalSeparator1.TabIndex = 188;
|
||||
//
|
||||
// tHorizontalSeparator2
|
||||
//
|
||||
tHorizontalSeparator2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
|
||||
tHorizontalSeparator2.Location = new System.Drawing.Point(10, 64);
|
||||
tHorizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
|
||||
tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||
tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
tHorizontalSeparator2.Name = "tHorizontalSeparator2";
|
||||
tHorizontalSeparator2.Size = new System.Drawing.Size(364, 22);
|
||||
tHorizontalSeparator2.TabIndex = 190;
|
||||
tHorizontalSeparator2.TabStop = false;
|
||||
this.tHorizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tHorizontalSeparator2.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tHorizontalSeparator2.Location = new System.Drawing.Point(10, 59);
|
||||
this.tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
||||
this.tHorizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||
this.tHorizontalSeparator2.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
this.tHorizontalSeparator2.Name = "tHorizontalSeparator2";
|
||||
this.tHorizontalSeparator2.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
||||
this.tHorizontalSeparator2.Size = new System.Drawing.Size(364, 22);
|
||||
this.tHorizontalSeparator2.TabIndex = 190;
|
||||
//
|
||||
// pickerBox2
|
||||
//
|
||||
pickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
pickerBox2.BackColor = System.Drawing.Color.Transparent;
|
||||
pickerBox2.EnableReactiveVisual = true;
|
||||
pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
pickerBox2.Location = new System.Drawing.Point(285, 95);
|
||||
pickerBox2.MaxDropDownItems = 10;
|
||||
pickerBox2.Maximum = 50;
|
||||
pickerBox2.Minimum = 0;
|
||||
pickerBox2.Name = "pickerBox2";
|
||||
pickerBox2.SelectedIndex = 0;
|
||||
pickerBox2.Size = new System.Drawing.Size(84, 35);
|
||||
pickerBox2.TabIndex = 1;
|
||||
pickerBox2.TabStop = false;
|
||||
pickerBox2.Value = 0;
|
||||
this.pickerBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pickerBox2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.pickerBox2.Location = new System.Drawing.Point(285, 85);
|
||||
this.pickerBox2.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
||||
this.pickerBox2.Name = "pickerBox2";
|
||||
this.pickerBox2.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5);
|
||||
this.pickerBox2.Size = new System.Drawing.Size(84, 34);
|
||||
this.pickerBox2.SubmitButton = null;
|
||||
this.pickerBox2.TabIndex = 193;
|
||||
this.pickerBox2.Value = 0;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
textBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
textBox1.EnableReactiveVisual = true;
|
||||
textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
textBox1.Icon = "O";
|
||||
textBox1.IconSize = 13F;
|
||||
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.textBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.textBox1.HighlightImage = ((System.Drawing.Image)(resources.GetObject("textBox1.HighlightImage")));
|
||||
results1.IsAlt = false;
|
||||
results1.IsCtrl = false;
|
||||
results1.IsShift = false;
|
||||
results1.Key = Keys.None;
|
||||
textBox1.KeyCodeResults = results1;
|
||||
textBox1.Location = new System.Drawing.Point(241, 216);
|
||||
textBox1.Name = "textBox1";
|
||||
textBox1.Size = new System.Drawing.Size(128, 32);
|
||||
textBox1.TabIndex = 3;
|
||||
textBox1.TabStop = false;
|
||||
textBox1.UseSystemPasswordChar = false;
|
||||
results1.Key = System.Windows.Forms.Keys.None;
|
||||
this.textBox1.KeyCodeResults = results1;
|
||||
this.textBox1.Location = new System.Drawing.Point(241, 197);
|
||||
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.NormalImage = ((System.Drawing.Image)(resources.GetObject("textBox1.NormalImage")));
|
||||
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 9, 9, 9);
|
||||
this.textBox1.Size = new System.Drawing.Size(128, 34);
|
||||
this.textBox1.SubmitButton = null;
|
||||
this.textBox1.TabIndex = 194;
|
||||
this.textBox1.UseSystemPasswordChar = false;
|
||||
//
|
||||
// pickerBox3
|
||||
//
|
||||
pickerBox3.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||
pickerBox3.BackColor = System.Drawing.Color.Transparent;
|
||||
pickerBox3.EnableReactiveVisual = true;
|
||||
pickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
pickerBox3.Location = new System.Drawing.Point(285, 140);
|
||||
pickerBox3.Name = "pickerBox3";
|
||||
pickerBox3.SelectedIndex = 1;
|
||||
pickerBox3.Size = new System.Drawing.Size(84, 35);
|
||||
pickerBox3.TabIndex = 2;
|
||||
pickerBox3.TabStop = false;
|
||||
pickerBox3.Value = true;
|
||||
this.pickerBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pickerBox3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pickerBox3.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.pickerBox3.Location = new System.Drawing.Point(285, 127);
|
||||
this.pickerBox3.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
||||
this.pickerBox3.Name = "pickerBox3";
|
||||
this.pickerBox3.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5);
|
||||
this.pickerBox3.Size = new System.Drawing.Size(84, 34);
|
||||
this.pickerBox3.SubmitButton = null;
|
||||
this.pickerBox3.TabIndex = 195;
|
||||
this.pickerBox3.Value = true;
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = System.Drawing.Color.Transparent;
|
||||
label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
label1.Location = new System.Drawing.Point(10, 140);
|
||||
label1.Margin = new Padding(0);
|
||||
label1.Name = "label1";
|
||||
label1.Padding = new Padding(0, 9, 0, 10);
|
||||
label1.Size = new System.Drawing.Size(169, 34);
|
||||
label1.TabIndex = 196;
|
||||
label1.Text = "Close Current Process On Next";
|
||||
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
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, 127);
|
||||
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(169, 34);
|
||||
this.label1.TabIndex = 196;
|
||||
this.label1.Text = "Close Current Process On Next";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// tHorizontalSeparator3
|
||||
//
|
||||
tHorizontalSeparator3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
|
||||
tHorizontalSeparator3.Location = new System.Drawing.Point(10, 184);
|
||||
tHorizontalSeparator3.Margin = new Padding(0, 10, 0, 0);
|
||||
tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||
tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
tHorizontalSeparator3.Name = "tHorizontalSeparator3";
|
||||
tHorizontalSeparator3.Size = new System.Drawing.Size(364, 22);
|
||||
tHorizontalSeparator3.TabIndex = 197;
|
||||
tHorizontalSeparator3.TabStop = false;
|
||||
this.tHorizontalSeparator3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tHorizontalSeparator3.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
this.tHorizontalSeparator3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tHorizontalSeparator3.Location = new System.Drawing.Point(10, 165);
|
||||
this.tHorizontalSeparator3.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
||||
this.tHorizontalSeparator3.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||
this.tHorizontalSeparator3.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
this.tHorizontalSeparator3.Name = "tHorizontalSeparator3";
|
||||
this.tHorizontalSeparator3.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
||||
this.tHorizontalSeparator3.Size = new System.Drawing.Size(364, 22);
|
||||
this.tHorizontalSeparator3.TabIndex = 197;
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.AutoSize = true;
|
||||
label2.BackColor = System.Drawing.Color.Transparent;
|
||||
label2.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
label2.Location = new System.Drawing.Point(10, 216);
|
||||
label2.Margin = new Padding(0);
|
||||
label2.Name = "label2";
|
||||
label2.Padding = new Padding(0, 9, 0, 10);
|
||||
label2.Size = new System.Drawing.Size(123, 34);
|
||||
label2.TabIndex = 198;
|
||||
label2.Text = "Next File Shortcut Key";
|
||||
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// dialogFooter1
|
||||
//
|
||||
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
|
||||
dialogFooter1.Button1Text = "&Save";
|
||||
dialogFooter1.Dialog = this;
|
||||
dialogFooter1.Dock = DockStyle.Bottom;
|
||||
dialogFooter1.Location = new System.Drawing.Point(0, 437);
|
||||
dialogFooter1.Name = "dialogFooter1";
|
||||
dialogFooter1.Size = new System.Drawing.Size(384, 84);
|
||||
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, 197);
|
||||
this.label2.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
|
||||
this.label2.Size = new System.Drawing.Size(81, 34);
|
||||
this.label2.TabIndex = 198;
|
||||
this.label2.Text = "Retry On Error";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// OptionsForm
|
||||
//
|
||||
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = System.Drawing.Color.White;
|
||||
ClientSize = new System.Drawing.Size(384, 521);
|
||||
Controls.Add(dialogFooter1);
|
||||
Controls.Add(label2);
|
||||
Controls.Add(tHorizontalSeparator3);
|
||||
Controls.Add(label1);
|
||||
Controls.Add(pickerBox3);
|
||||
Controls.Add(textBox1);
|
||||
Controls.Add(pickerBox2);
|
||||
Controls.Add(tHorizontalSeparator2);
|
||||
Controls.Add(label8);
|
||||
Controls.Add(pickerBox1);
|
||||
Controls.Add(label6);
|
||||
MinimumSize = new System.Drawing.Size(400, 560);
|
||||
Name = "OptionsForm";
|
||||
ShowIcon = false;
|
||||
ShowInTaskbar = false;
|
||||
Text = "Options";
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(384, 521);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.tHorizontalSeparator3);
|
||||
this.Controls.Add(this.label1);
|
||||
this.Controls.Add(this.pickerBox3);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Controls.Add(this.pickerBox2);
|
||||
this.Controls.Add(this.tHorizontalSeparator2);
|
||||
this.Controls.Add(this.tHorizontalSeparator1);
|
||||
this.Controls.Add(this.label8);
|
||||
this.Controls.Add(this.pickerBox1);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.button1);
|
||||
this.MinimumSize = new System.Drawing.Size(400, 560);
|
||||
this.Name = "OptionsForm";
|
||||
this.Text = "Options";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
pickerBox1.Focus();
|
||||
this.DialogResult = System.Windows.Forms.DialogResult.None;
|
||||
|
||||
pickerBox1.Value = this.Session.SearchTopDirectoryOnly;
|
||||
pickerBox2.Clear(0, 20, this.Session.RetryOnError);
|
||||
pickerBox3.Value = this.Session.ClosePrevOnNext;
|
||||
if (this.Session.NextHotKey != null) textBox1.UpdateKeyCode(this.Session.NextHotKey.IsCtrl, this.Session.NextHotKey.IsAlt, this.Session.NextHotKey.IsShift, this.Session.NextHotKey.KeyCode);
|
||||
}
|
||||
|
||||
|
||||
public AppSession Result
|
||||
public AppSession Session { get; protected set; }
|
||||
|
||||
|
||||
private void button1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_session == null)
|
||||
{
|
||||
_session = new AppSession();
|
||||
}
|
||||
if (this.Session == null) this.Session = new AppSession();
|
||||
|
||||
_session.SearchTopDirectoryOnly = pickerBox1.Value;
|
||||
_session.RetryOnError = pickerBox2.Value;
|
||||
_session.ClosePrevOnNext = pickerBox3.Value;
|
||||
_session.NextHotKey.IsCtrl = textBox1.KeyCodeResults.IsCtrl;
|
||||
_session.NextHotKey.IsAlt = textBox1.KeyCodeResults.IsAlt;
|
||||
_session.NextHotKey.IsShift = textBox1.KeyCodeResults.IsShift;
|
||||
_session.NextHotKey.Key = textBox1.KeyCodeResults.KeyCode;
|
||||
this.Session.SearchTopDirectoryOnly = pickerBox1.Value;
|
||||
this.Session.RetryOnError = pickerBox2.Value;
|
||||
this.Session.ClosePrevOnNext = pickerBox3.Value;
|
||||
this.Session.NextHotKey.IsCtrl = textBox1.KeyCodeResults.IsCtrl;
|
||||
this.Session.NextHotKey.IsAlt = textBox1.KeyCodeResults.IsAlt;
|
||||
this.Session.NextHotKey.IsShift = textBox1.KeyCodeResults.IsShift;
|
||||
this.Session.NextHotKey.Key = textBox1.KeyCodeResults.KeyCode;
|
||||
|
||||
return _session;
|
||||
}
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,64 +1,4 @@
|
||||
<?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.
|
||||
-->
|
||||
<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">
|
||||
@ -117,4 +57,24 @@
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<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">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wAAADsABataJCQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAClSURBVDhP7dI/
|
||||
DgFBGIbxSVTKjcRx3MLqXYCOjkocQcMF3MAZOIKaE5AthOexf2QnbJQKb/JLJvO9XzLFhCgtbHDBveB5
|
||||
DWcfM8ANC0wKnr1LUUsbHXSxxBlJxDtnduy6E04on/Utd0IPOxwxxBT9iHfO7Nh155kV9vmxMXbsVvkv
|
||||
vvIji4f82Bg7tcUxrpih/NyxOeyMUMVPu0WGd39TzuzQDeEB5/ZKvTSyulEAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="textBox1.NormalImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
|
||||
wAAADsABataJCQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADTSURBVDhP7ZI7
|
||||
CsJQEEUfWFmK4HLchdpnA9ppp5W4BBtdQNyBC0ilRf6VdVyBwUL03JdXxC/YWThwmDcz94YJjKmH7/uN
|
||||
OI7XaZqekiS5Cr1hpZmTPQemAeILeU4eC/dWr+9kVQRB0MzzvB2GYQfBAsExiqJWHfU0k0ZaeQyNAuxa
|
||||
X1CYLMu6/MOW4kD2YAK9B9TznGYrj12XVZY0drb4ENJI68q/sR4/YoS9K9+GNHdGLmIEJV+cku1xP4Jh
|
||||
Ri7JQ2erDp3mBs7w6jaFZht74MaYGwmLbkeRGexGAAAAAElFTkSuQmCC
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
@ -1,5 +1,7 @@
|
||||
using RyzStudio.IO;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RandomFileRunner
|
||||
|
17
Properties/PublishProfiles/Release x64.pubxml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Any CPU</Platform>
|
||||
<PublishDir>bin\Release\64\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net5.0-windows</TargetFramework>
|
||||
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
|
||||
<SelfContained>false</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>False</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
</Project>
|
17
Properties/PublishProfiles/Release x86.pubxml
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
https://go.microsoft.com/fwlink/?LinkID=208121.
|
||||
-->
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Any CPU</Platform>
|
||||
<PublishDir>bin\Release\86\</PublishDir>
|
||||
<PublishProtocol>FileSystem</PublishProtocol>
|
||||
<TargetFramework>net5.0-windows</TargetFramework>
|
||||
<RuntimeIdentifier>win-x86</RuntimeIdentifier>
|
||||
<SelfContained>false</SelfContained>
|
||||
<PublishSingleFile>True</PublishSingleFile>
|
||||
<PublishReadyToRun>False</PublishReadyToRun>
|
||||
</PropertyGroup>
|
||||
</Project>
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net8.0-windows8.0</TargetFramework>
|
||||
<TargetFramework>net5.0-windows</TargetFramework>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<AssemblyName>randomfilerunner</AssemblyName>
|
||||
<Authors>Ray Lam</Authors>
|
||||
@ -11,7 +11,7 @@
|
||||
<Copyright>Ray Lam</Copyright>
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
<NoWin32Manifest>true</NoWin32Manifest>
|
||||
<Version>1.1.1.031</Version>
|
||||
<Version>0.1.0.019</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
@ -19,29 +19,51 @@
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="RyzStudio\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\**" />
|
||||
<None Remove="RyzStudio\**" />
|
||||
<Compile Remove="RyzStudio\Data\**" />
|
||||
<Compile Remove="RyzStudio\Net\**" />
|
||||
<Compile Remove="RyzStudio\Windows\ThemedForms\PickerBox\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\Data\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\Net\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\PickerBox\**" />
|
||||
<None Remove="RyzStudio\Data\**" />
|
||||
<None Remove="RyzStudio\Net\**" />
|
||||
<None Remove="RyzStudio\Windows\ThemedForms\PickerBox\**" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove=".gitignore" />
|
||||
<None Remove="build.bat" />
|
||||
<None Remove="MainForm.resx~RF28b83d97.TMP" />
|
||||
<Compile Remove="RyzStudio\IO\FileType.cs" />
|
||||
<Compile Remove="RyzStudio\IO\SessionFileFormatBase.cs" />
|
||||
<Compile Remove="RyzStudio\IO\SharpZipLib.cs" />
|
||||
<Compile Remove="RyzStudio\IO\SmarterFileSystem.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\Forms\StackLayoutPanel.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\Forms\TCustomProgressBar.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\Forms\TCustomProgressBar.Designer.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\Forms\TFlatButton.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\Forms\TForm.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\Forms\TPanelBook.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\ThemedForms\TProgressBar.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\ThemedForms\TProgressBar.designer.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Include="favicon.ico" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\Forms\TCustomProgressBar.resx" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\Forms\TForm.resx" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\TextBox\TFolderTextBox - Copy.resx" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\TProgressBar.resx" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="RyzStudio" Version="8.1.2.249" />
|
||||
<PackageReference Include="RyzStudio.Windows.Forms" Version="8.1.3.614" />
|
||||
<Compile Include="RyzStudio\Windows\ThemedForms\PickerBox\TPickerBox.cs" />
|
||||
<Compile Include="RyzStudio\Windows\ThemedForms\PickerBox\TPickerBox.designer.cs" />
|
||||
<Compile Include="RyzStudio\Windows\ThemedForms\PickerBox\TNumericPickerBox.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="RyzStudio\Windows\ThemedForms\PickerBox\TYesNoPickerBox.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="RyzStudio\Windows\ThemedForms\PickerBox\TPickerBox.resx" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -50,8 +72,13 @@
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>AppResource.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="MemoBoxForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
<Compile Update="RyzStudio\Windows\ThemedForms\TextBox\TClearableTextBox.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="UIResource.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>UIResource.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
@ -60,6 +87,10 @@
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>AppResource.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="UIResource.resx">
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>UIResource.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
@ -1,7 +1,7 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.10.35004.147
|
||||
# Visual Studio Version 16
|
||||
VisualStudioVersion = 16.0.31702.278
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "RandomFileRunner", "RandomFileRunner.csproj", "{5F301DDB-6E01-4492-BABC-E134722EF0AC}"
|
||||
EndProject
|
BIN
Resources/UI/arrow_down.png
Normal file
After Width: | Height: | Size: 601 B |
BIN
Resources/UI/arrow_down2.png
Normal file
After Width: | Height: | Size: 417 B |
BIN
Resources/UI/arrow_up.png
Normal file
After Width: | Height: | Size: 590 B |
BIN
Resources/UI/arrow_up2.png
Normal file
After Width: | Height: | Size: 410 B |
BIN
Resources/UI/circle_menu.png
Normal file
After Width: | Height: | Size: 597 B |
BIN
Resources/UI/circle_menu2.png
Normal file
After Width: | Height: | Size: 421 B |
BIN
Resources/UI/cog.png
Normal file
After Width: | Height: | Size: 713 B |
BIN
Resources/UI/cog2.png
Normal file
After Width: | Height: | Size: 467 B |
BIN
Resources/UI/edit.png
Normal file
After Width: | Height: | Size: 612 B |
BIN
Resources/UI/edit2.png
Normal file
After Width: | Height: | Size: 419 B |
BIN
Resources/UI/file.png
Normal file
After Width: | Height: | Size: 372 B |
BIN
Resources/UI/file2.png
Normal file
After Width: | Height: | Size: 323 B |
BIN
Resources/UI/folder.png
Normal file
After Width: | Height: | Size: 352 B |
BIN
Resources/UI/folder2.png
Normal file
After Width: | Height: | Size: 288 B |
BIN
Resources/UI/plus.png
Normal file
After Width: | Height: | Size: 559 B |
BIN
Resources/UI/plus2.png
Normal file
After Width: | Height: | Size: 398 B |
BIN
Resources/UI/refresh.png
Normal file
After Width: | Height: | Size: 451 B |
BIN
Resources/UI/refresh2.png
Normal file
After Width: | Height: | Size: 300 B |
BIN
Resources/UI/trash.png
Normal file
After Width: | Height: | Size: 382 B |
BIN
Resources/UI/trash2.png
Normal file
After Width: | Height: | Size: 289 B |
Before Width: | Height: | Size: 3.5 KiB |
BIN
Resources/loading-block.gif
Normal file
After Width: | Height: | Size: 33 KiB |
444
RyzStudio/Data/SQLite/SQLiteDatabase.cs
Normal file
@ -0,0 +1,444 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
|
||||
namespace RyzStudio.Data.SQLite
|
||||
{
|
||||
public class SQLiteDatabase
|
||||
{
|
||||
#region static methods
|
||||
|
||||
public static string escapeSQL(string query)
|
||||
{
|
||||
return query.Replace("'", "''").Trim();
|
||||
}
|
||||
|
||||
public static string escapeValue(string text)
|
||||
{
|
||||
return text.Replace("\"", "\\\"").Replace("\t", "\\t").Replace("\r", " \\r").Replace("\n", "\\n");
|
||||
}
|
||||
|
||||
public static string PrepareQuery(string query, params string[] arguments)
|
||||
{
|
||||
string rv = query;
|
||||
|
||||
if (string.IsNullOrEmpty(rv))
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
for (int i = 0; i < arguments.Length; i++)
|
||||
{
|
||||
rv = rv.Replace("[^" + (i + 1).ToString() + "]", escapeSQL(arguments[i]));
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected SQLiteWrapper.SQLiteBase database = null;
|
||||
protected string databaseLocation = ":memory:";
|
||||
protected string lastError = "";
|
||||
|
||||
protected string[] requiredTableList = new string[0];
|
||||
|
||||
protected const string tableNameConfig = "ryz_app_xxxx_config";
|
||||
|
||||
#region public properties
|
||||
|
||||
[Browsable(false)]
|
||||
public SQLiteWrapper.SQLiteBase Database
|
||||
{
|
||||
get { return database; }
|
||||
set { database = value; }
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
public string DatabaseLocation
|
||||
{
|
||||
get { return databaseLocation; }
|
||||
set { databaseLocation = value; }
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
public string LastError
|
||||
{
|
||||
get { return lastError; }
|
||||
}
|
||||
|
||||
[Browsable(false)]
|
||||
public int LastInsertID
|
||||
{
|
||||
get
|
||||
{
|
||||
if (database == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
DataTable dt = this.DoQuery("SELECT last_insert_rowid() AS ccc;");
|
||||
if (dt == null)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (dt.Rows.Count <= 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return int.Parse(dt.Rows[0]["ccc"].ToString());
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region public methods
|
||||
|
||||
public bool Create(bool use_memory = true)
|
||||
{
|
||||
lastError = string.Empty;
|
||||
|
||||
if (string.IsNullOrEmpty(databaseLocation))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (database != null)
|
||||
{
|
||||
database.CloseDatabase();
|
||||
}
|
||||
|
||||
database = new SQLiteWrapper.SQLiteBase(((use_memory) ? ":memory:" : databaseLocation));
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
lastError = exc.Message;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool rv = Prepare();
|
||||
if (!rv)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return CheckRequiredTables();
|
||||
}
|
||||
|
||||
public bool Create(string filename, bool override_file = false)
|
||||
{
|
||||
lastError = string.Empty;
|
||||
databaseLocation = filename;
|
||||
|
||||
if (string.IsNullOrEmpty(databaseLocation))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (File.Exists(databaseLocation) && override_file)
|
||||
{
|
||||
try
|
||||
{
|
||||
File.Delete(databaseLocation);
|
||||
}
|
||||
catch (Exception xc)
|
||||
{
|
||||
lastError = xc.Message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (database != null)
|
||||
{
|
||||
database.CloseDatabase();
|
||||
}
|
||||
|
||||
database = new SQLiteWrapper.SQLiteBase(databaseLocation);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
lastError = exc.Message;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool rv = CheckRequiredTables();
|
||||
if (!rv)
|
||||
{
|
||||
Prepare();
|
||||
}
|
||||
|
||||
return CheckRequiredTables();
|
||||
}
|
||||
|
||||
public bool Load(string filename)
|
||||
{
|
||||
if (!File.Exists(filename))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
lastError = string.Empty;
|
||||
databaseLocation = filename;
|
||||
|
||||
try
|
||||
{
|
||||
if (database != null)
|
||||
{
|
||||
database.CloseDatabase();
|
||||
}
|
||||
|
||||
database = new SQLiteWrapper.SQLiteBase(databaseLocation);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
lastError = exc.Message;
|
||||
return false;
|
||||
}
|
||||
|
||||
return CheckRequiredTables();
|
||||
}
|
||||
|
||||
public void Close()
|
||||
{
|
||||
if (database != null)
|
||||
{
|
||||
database.CloseDatabase();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public DataTable DoQuery(string query)
|
||||
{
|
||||
lastError = string.Empty;
|
||||
if (database == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return database.ExecuteQuery(query);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
lastError = exc.Message;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public DataTable DoQuery(string query, params string[] args)
|
||||
{
|
||||
string sql = SQLiteDatabase.PrepareQuery(query, args);
|
||||
|
||||
return DoQuery(sql);
|
||||
}
|
||||
|
||||
public bool DoNonQuery(string query)
|
||||
{
|
||||
lastError = string.Empty;
|
||||
if (database == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
database.ExecuteNonQuery(query);
|
||||
return true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
lastError = exc.Message;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public bool DoNonQuery(string query, params string[] args)
|
||||
{
|
||||
string sql = SQLiteDatabase.PrepareQuery(query, args);
|
||||
|
||||
return DoNonQuery(sql);
|
||||
}
|
||||
|
||||
public string DoQuerySingle(string query)
|
||||
{
|
||||
lastError = string.Empty;
|
||||
if (database == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
DataTable tbl = DoQuery(query);
|
||||
|
||||
if (tbl == null)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
if (tbl.Columns.Count <= 0)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
if (tbl.Rows.Count <= 0)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
|
||||
return tbl.Rows[0][0].ToString();
|
||||
}
|
||||
|
||||
public string DoQuerySingle(string query, params string[] args)
|
||||
{
|
||||
string sql = SQLiteDatabase.PrepareQuery(query, args);
|
||||
|
||||
return DoQuerySingle(sql);
|
||||
}
|
||||
|
||||
public int DoQueryCount(string query)
|
||||
{
|
||||
if (database == null)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
DataTable tbl = DoQuery(query);
|
||||
|
||||
if (tbl == null)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (tbl.Rows.Count <= 0)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return tbl.Rows.Count;
|
||||
}
|
||||
|
||||
public int DoQueryCount(string query, params string[] args)
|
||||
{
|
||||
string sql = SQLiteDatabase.PrepareQuery(query, args);
|
||||
|
||||
return DoQueryCount(sql);
|
||||
}
|
||||
|
||||
public bool DoQueryExist(string query)
|
||||
{
|
||||
int rv = DoQueryCount(query);
|
||||
|
||||
return (rv > 0);
|
||||
}
|
||||
|
||||
public bool DoQueryExist(string query, params string[] args)
|
||||
{
|
||||
string sql = SQLiteDatabase.PrepareQuery(query, args);
|
||||
|
||||
return DoQueryExist(sql);
|
||||
}
|
||||
|
||||
public bool HasTable(string table_name)
|
||||
{
|
||||
lastError = string.Empty;
|
||||
if (database == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int rv = this.DoQueryCount("SELECT 1 FROM sqlite_master WHERE type='table' AND name='" + escapeSQL(table_name) + "'");
|
||||
|
||||
return (rv > 0);
|
||||
}
|
||||
|
||||
public bool CheckRequiredTables()
|
||||
{
|
||||
bool rv = true;
|
||||
foreach (string tbl in requiredTableList)
|
||||
{
|
||||
if (string.IsNullOrEmpty(tbl))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!this.HasTable(tbl))
|
||||
{
|
||||
rv = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
|
||||
protected bool PrepareConfig()
|
||||
{
|
||||
if (HasTable(tableNameConfig))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
bool rv = this.DoNonQuery(@"
|
||||
BEGIN TRANSACTION;
|
||||
CREATE TABLE " + tableNameConfig + @" (cfg_name TEXT, cfg_value TEXT);
|
||||
COMMIT;
|
||||
");
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public bool SetConfig(string name, string value)
|
||||
{
|
||||
if (!PrepareConfig())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
string sql = string.Empty;
|
||||
int rv = this.DoQueryCount("SELECT 1 FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'");
|
||||
if (rv <= 0)
|
||||
{
|
||||
sql = "INSERT INTO " + tableNameConfig + " (cfg_name, cfg_value) VALUES ('[^1]', '[^2]');";
|
||||
}
|
||||
else
|
||||
{
|
||||
sql = "UPDATE " + tableNameConfig + " SET cfg_value='[^2]' WHERE cfg_name='[^1]';";
|
||||
}
|
||||
|
||||
sql = PrepareQuery(sql, new string[] { name, value });
|
||||
|
||||
return this.DoNonQuery(sql);
|
||||
}
|
||||
|
||||
public string GetConfig(string name, string default_value = "")
|
||||
{
|
||||
if (!PrepareConfig())
|
||||
{
|
||||
return default_value;
|
||||
}
|
||||
|
||||
bool rv = this.DoQueryExist("SELECT 1 FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'");
|
||||
if (!rv)
|
||||
{
|
||||
return default_value;
|
||||
}
|
||||
|
||||
return this.DoQuerySingle("SELECT cfg_value FROM " + tableNameConfig + " WHERE cfg_name='" + escapeSQL(name) + "'");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected virtual bool Prepare()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
124
RyzStudio/Drawing/Rectangoid.cs
Normal file
@ -0,0 +1,124 @@
|
||||
using System.Drawing;
|
||||
using System.Drawing.Drawing2D;
|
||||
|
||||
namespace RyzStudio.Drawing
|
||||
{
|
||||
public struct Rectangoid
|
||||
{
|
||||
private int X;
|
||||
private int Y;
|
||||
private int Width;
|
||||
private int Height;
|
||||
private int Radius;
|
||||
|
||||
public Rectangoid(Rectangle rect, int radius)
|
||||
{
|
||||
X = rect.X;
|
||||
Y = rect.Y;
|
||||
Width = rect.Width;
|
||||
Height = rect.Height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(Rectangle rect, int radius, int borderWidth)
|
||||
{
|
||||
rect.Inflate((-1 * borderWidth), (-1 * borderWidth));
|
||||
|
||||
X = rect.X;
|
||||
Y = rect.Y;
|
||||
Width = rect.Width;
|
||||
Height = rect.Height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(int x, int y, int width, int height, int radius)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(int x, int y, int width, int height)
|
||||
{
|
||||
X = x;
|
||||
Y = y;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = 0;
|
||||
}
|
||||
|
||||
public Rectangoid(int width, int height, int radius)
|
||||
{
|
||||
X = 0;
|
||||
Y = 0;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = radius;
|
||||
}
|
||||
|
||||
public Rectangoid(int width, int height)
|
||||
{
|
||||
X = 0;
|
||||
Y = 0;
|
||||
Width = width;
|
||||
Height = height;
|
||||
Radius = 0;
|
||||
}
|
||||
|
||||
public Rectangoid(int width)
|
||||
{
|
||||
X = 0;
|
||||
Y = 0;
|
||||
Width = width;
|
||||
Height = width;
|
||||
Radius = 0;
|
||||
}
|
||||
|
||||
public GraphicsPath ToGraphicsPath()
|
||||
{
|
||||
GraphicsPath rv = new GraphicsPath();
|
||||
rv.AddLine(X + this.Radius, Y, X + Width - (this.Radius * 2), Y);
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X + Width - (this.Radius * 2), Y, this.Radius * 2, this.Radius * 2, 270, 90);
|
||||
}
|
||||
|
||||
rv.AddLine(X + Width, Y + this.Radius, X + Width, Y + Height - (this.Radius * 2));
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X + Width - (this.Radius * 2), Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 0, 90);
|
||||
}
|
||||
|
||||
rv.AddLine(X + Width - (this.Radius * 2), Y + Height, X + this.Radius, Y + Height);
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X, Y + Height - (this.Radius * 2), this.Radius * 2, this.Radius * 2, 90, 90);
|
||||
}
|
||||
|
||||
rv.AddLine(X, Y + Height - (this.Radius * 2), X, Y + this.Radius);
|
||||
|
||||
if (this.Radius > 0)
|
||||
{
|
||||
rv.AddArc(X, Y, this.Radius * 2, this.Radius * 2, 180, 90);
|
||||
}
|
||||
|
||||
rv.CloseFigure();
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public PointF GetOrigin()
|
||||
{
|
||||
PointF rv = new PointF();
|
||||
rv.X = ((float)Width / 2) + X;
|
||||
rv.Y = ((float)Height / 2) + Y;
|
||||
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
}
|
56
RyzStudio/IO/FileType.cs
Normal file
@ -0,0 +1,56 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace RyzStudio.IO
|
||||
{
|
||||
public class FileType
|
||||
{
|
||||
protected static readonly byte[] BMP = { 66, 77 };
|
||||
protected static readonly byte[] GIF = { 71, 73, 70, 56 };
|
||||
protected static readonly byte[] ICO = { 0, 0, 1, 0 };
|
||||
protected static readonly byte[] JPG = { 255, 216, 255 };
|
||||
protected static readonly byte[] PNG = { 137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82 };
|
||||
|
||||
public static bool IsImage(byte[] byteArray)
|
||||
{
|
||||
if (byteArray == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (byteArray.Length <= 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (byteArray.Take(2).SequenceEqual(BMP))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (byteArray.Take(4).SequenceEqual(GIF))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (byteArray.Take(4).SequenceEqual(ICO))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (byteArray.Take(3).SequenceEqual(JPG))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
if (byteArray.Take(16).SequenceEqual(PNG))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
290
RyzStudio/IO/SessionFileFormatBase.cs
Normal file
@ -0,0 +1,290 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Xml;
|
||||
using System.Windows.Forms;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
|
||||
namespace RyzStudio.IO
|
||||
{
|
||||
public abstract class SessionFileFormatBase
|
||||
{
|
||||
protected string CONST_KEYPASS = "";
|
||||
protected string CONST_PRODUCT = "";
|
||||
protected string CONST_STREAM_FILE_NAME = "";
|
||||
|
||||
protected bool enableErrorReporting = false;
|
||||
protected string lastUsedFileName = "";
|
||||
|
||||
#region public properties
|
||||
|
||||
public string passkey
|
||||
{
|
||||
get { return CONST_KEYPASS; }
|
||||
set { CONST_KEYPASS = value; }
|
||||
}
|
||||
|
||||
/*public string LastFilename
|
||||
{
|
||||
get { return lastUsedFileName; }
|
||||
set { lastUsedFileName = value; }
|
||||
}*/
|
||||
|
||||
#endregion
|
||||
|
||||
#region public methods
|
||||
|
||||
/* public bool loadFromRyz()
|
||||
{
|
||||
return loadFromRyz(lastUsedFileName);
|
||||
}*/
|
||||
|
||||
public bool loadFromRyz(string file_name)
|
||||
{
|
||||
lastUsedFileName = file_name;
|
||||
if (!File.Exists(file_name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool rv = false;
|
||||
|
||||
try
|
||||
{
|
||||
ZipInputStream zipIn = new ZipInputStream(File.OpenRead(file_name));
|
||||
zipIn.Password = CONST_KEYPASS;
|
||||
ZipEntry theEntry = null;
|
||||
|
||||
while ((theEntry = zipIn.GetNextEntry()) != null)
|
||||
{
|
||||
string streamFileName = Path.GetFileName(theEntry.Name);
|
||||
if (streamFileName.Equals(CONST_STREAM_FILE_NAME))
|
||||
{
|
||||
MemoryStream oxStream = new MemoryStream();
|
||||
StreamWriter streamWriter = new StreamWriter(oxStream);
|
||||
int size = 2048;
|
||||
byte[] data = new byte[size];
|
||||
while (true)
|
||||
{
|
||||
size = zipIn.Read(data, 0, data.Length);
|
||||
if (size <= 0) break;
|
||||
streamWriter.BaseStream.Write(data, 0, size);
|
||||
}
|
||||
|
||||
oxStream.Position = 0;
|
||||
|
||||
StreamReader sr2 = new StreamReader(oxStream, Encoding.UTF8);
|
||||
XmlDocument xDoc = new XmlDocument();
|
||||
xDoc.LoadXml(sr2.ReadToEnd());
|
||||
|
||||
loadFromXmlDocument(ref xDoc);
|
||||
}
|
||||
}
|
||||
|
||||
zipIn.Close();
|
||||
|
||||
rv = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
if (enableErrorReporting)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public bool loadFromXml()
|
||||
{
|
||||
return loadFromXml(lastUsedFileName);
|
||||
}
|
||||
|
||||
public bool loadFromXml(string file_name)
|
||||
{
|
||||
lastUsedFileName = file_name;
|
||||
if (!File.Exists(file_name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
bool rv = false;
|
||||
|
||||
try
|
||||
{
|
||||
StreamReader sr2 = new StreamReader(file_name, Encoding.UTF8);
|
||||
XmlDocument xDoc = new XmlDocument();
|
||||
xDoc.LoadXml(sr2.ReadToEnd());
|
||||
|
||||
loadFromXmlDocument(ref xDoc);
|
||||
sr2.Close();
|
||||
|
||||
rv = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
if (enableErrorReporting)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
/* public bool saveToRyz()
|
||||
{
|
||||
return saveToRyz(lastUsedFileName);
|
||||
}
|
||||
*/
|
||||
|
||||
public bool saveToRyz(string file_name)
|
||||
{
|
||||
bool rv = false;
|
||||
lastUsedFileName = file_name;
|
||||
byte[] buffer = new byte[4096];
|
||||
|
||||
try
|
||||
{
|
||||
File.Delete(file_name);
|
||||
FileInfo fileinfo1 = new FileInfo(file_name);
|
||||
if (!Directory.Exists(fileinfo1.DirectoryName))
|
||||
{
|
||||
Directory.CreateDirectory(fileinfo1.DirectoryName);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
if (enableErrorReporting)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
ZipOutputStream zipOutStream1 = new ZipOutputStream(File.Create(file_name));
|
||||
zipOutStream1.SetLevel(9);
|
||||
zipOutStream1.Password = CONST_KEYPASS;
|
||||
|
||||
MemoryStream oxIndexStream = new MemoryStream();
|
||||
XmlTextWriter oxTW = new XmlTextWriter(oxIndexStream, Encoding.UTF8);
|
||||
saveToXmlTextWriter(ref oxTW);
|
||||
oxTW.Flush();
|
||||
|
||||
// write to file
|
||||
zipOutStream1.PutNextEntry(new ZipEntry(CONST_STREAM_FILE_NAME));
|
||||
oxIndexStream.Position = 0;
|
||||
StreamReader sr2 = new StreamReader(oxIndexStream, Encoding.UTF8);
|
||||
int sourceBytes;
|
||||
do
|
||||
{
|
||||
sourceBytes = sr2.BaseStream.Read(buffer, 0, buffer.Length);
|
||||
zipOutStream1.Write(buffer, 0, sourceBytes);
|
||||
}
|
||||
while (sourceBytes > 0);
|
||||
|
||||
sr2.Close();
|
||||
oxTW.Close();
|
||||
zipOutStream1.Finish();
|
||||
zipOutStream1.Close();
|
||||
|
||||
rv = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
if (enableErrorReporting)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public bool saveToXml()
|
||||
{
|
||||
return saveToXml(lastUsedFileName);
|
||||
}
|
||||
|
||||
public bool saveToXml(string file_name)
|
||||
{
|
||||
bool rv = false;
|
||||
|
||||
lastUsedFileName = file_name;
|
||||
try
|
||||
{
|
||||
File.Delete(file_name);
|
||||
FileInfo fileinfo1 = new FileInfo(file_name);
|
||||
if (!Directory.Exists(fileinfo1.DirectoryName))
|
||||
{
|
||||
Directory.CreateDirectory(fileinfo1.DirectoryName);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
if (enableErrorReporting)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
XmlTextWriter oxTW = new XmlTextWriter(file_name, Encoding.UTF8);
|
||||
saveToXmlTextWriter(ref oxTW);
|
||||
oxTW.Flush();
|
||||
oxTW.Close();
|
||||
|
||||
rv = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
if (enableErrorReporting)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
protected virtual void loadFromXmlDocument(ref XmlDocument xml_doc) { }
|
||||
protected virtual void saveToXmlTextWriter(ref XmlTextWriter writer) { }
|
||||
|
||||
#region public methods (conversions)
|
||||
|
||||
public int[] convIntArrayString(string s1, char c)
|
||||
{
|
||||
string[] sarr = s1.Split(c);
|
||||
int[] iarr = new int[sarr.Length];
|
||||
for (int i = 0; i < sarr.Length; i++)
|
||||
{
|
||||
iarr[i] = Int32.Parse(sarr[i]);
|
||||
}
|
||||
|
||||
return iarr;
|
||||
}
|
||||
|
||||
public string convStringIntArray(int[] r, char s)
|
||||
{
|
||||
string t = null;
|
||||
for (int i = 0; i < r.Length; i++)
|
||||
{
|
||||
if (i != 0)
|
||||
{
|
||||
t += s.ToString();
|
||||
}
|
||||
|
||||
t += r[i].ToString();
|
||||
}
|
||||
|
||||
return t;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
241
RyzStudio/IO/SharpZipLib.cs
Normal file
@ -0,0 +1,241 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using ICSharpCode.SharpZipLib.Zip;
|
||||
|
||||
namespace RyzStudio.IO
|
||||
{
|
||||
public class SharpZipLib
|
||||
{
|
||||
|
||||
|
||||
public static bool IsZipEncrypted(string filename)
|
||||
{
|
||||
bool rv = false;
|
||||
|
||||
try
|
||||
{
|
||||
ZipInputStream readStream = new ZipInputStream(System.IO.File.OpenRead(filename));
|
||||
|
||||
ZipEntry theEntry = null;
|
||||
while ((theEntry = readStream.GetNextEntry()) != null)
|
||||
{
|
||||
if (theEntry.IsCrypted)
|
||||
{
|
||||
rv = true;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
readStream.Close();
|
||||
readStream.Dispose();
|
||||
readStream = null;
|
||||
}
|
||||
catch
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
//public static void AddFile(ZipOutputStream zipStream, string filename, string prefixPath = null)
|
||||
//{
|
||||
// byte[] buffer = new byte[4096];
|
||||
|
||||
// string f1 = "";
|
||||
// if (prefixPath != null)
|
||||
// {
|
||||
// f1 = Path.GetDirectoryName(filename).TrimEnd('\\') + "\\";
|
||||
// f1 = f1.Replace(prefixPath, "").TrimEnd('\\') + "\\";
|
||||
// f1 = f1 + Path.GetFileName(filename);
|
||||
// f1 = f1.TrimStart('\\');
|
||||
// }
|
||||
|
||||
// ZipEntry entry = new ZipEntry(f1);
|
||||
// entry.DateTime = DateTime.Now;
|
||||
|
||||
// zipStream.PutNextEntry(entry);
|
||||
|
||||
// FileStream fs = File.OpenRead(filename);
|
||||
|
||||
// int sourceBytes;
|
||||
|
||||
// do
|
||||
// {
|
||||
// sourceBytes = fs.Read(buffer, 0, buffer.Length);
|
||||
// zipStream.Write(buffer, 0, sourceBytes);
|
||||
// }
|
||||
// while (sourceBytes > 0);
|
||||
//}
|
||||
|
||||
//public static void AddFolder(ZipOutputStream zipstream, string folderpath, string prefixpath = null)
|
||||
//{
|
||||
// foreach (string fn in Directory.GetFiles(folderpath, "*.*", System.IO.SearchOption.AllDirectories))
|
||||
// {
|
||||
// AddFile(zipstream, fn, prefixpath);
|
||||
// }
|
||||
//}
|
||||
|
||||
public static string ReadSingle(string filename, string password, string entryFilename)
|
||||
{
|
||||
string rv = null;
|
||||
|
||||
int size = 2048;
|
||||
byte[] buffer = new byte[size];
|
||||
int bufferSize = 0;
|
||||
|
||||
ZipEntry readEntry = null;
|
||||
|
||||
try
|
||||
{
|
||||
ZipInputStream readStream = new ZipInputStream(File.OpenRead(filename));
|
||||
readStream.Password = password;
|
||||
|
||||
while (true)
|
||||
{
|
||||
readEntry = readStream.GetNextEntry();
|
||||
if (readEntry == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(readEntry.Name))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!readEntry.IsFile)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!readEntry.Name.Equals(entryFilename))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
MemoryStream ms = new MemoryStream();
|
||||
buffer = new byte[size];
|
||||
bufferSize = 0;
|
||||
|
||||
do
|
||||
{
|
||||
bufferSize = readStream.Read(buffer, 0, buffer.Length);
|
||||
ms.Write(buffer, 0, bufferSize);
|
||||
}
|
||||
while (bufferSize > 0);
|
||||
|
||||
ms.Position = 0;
|
||||
|
||||
StreamReader sr = new StreamReader(ms);
|
||||
rv = sr.ReadToEnd();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
readStream.Flush();
|
||||
readStream.Close();
|
||||
readStream.Dispose();
|
||||
readStream = null;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return rv;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static bool TestArchive(string filename, string password = null)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filename))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!File.Exists(filename))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
ZipEntry readEntry = null;
|
||||
|
||||
try
|
||||
{
|
||||
ZipInputStream readStream = new ZipInputStream(System.IO.File.OpenRead(filename));
|
||||
readStream.Password = password;
|
||||
|
||||
while (true)
|
||||
{
|
||||
readEntry = readStream.GetNextEntry();
|
||||
if (readEntry == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
//break;
|
||||
}
|
||||
|
||||
readStream.Close();
|
||||
readStream.Dispose();
|
||||
readStream = null;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool CreateSingle(string filename, string password, string entryFilename, string content)
|
||||
{
|
||||
int size = 2048;
|
||||
byte[] buffer = new byte[size];
|
||||
int bufferSize = 0;
|
||||
|
||||
try
|
||||
{
|
||||
ZipOutputStream zipStream = new ZipOutputStream(File.Create(filename));
|
||||
zipStream.SetLevel(9);
|
||||
zipStream.Password = password;
|
||||
|
||||
// stream
|
||||
MemoryStream ms = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(content));
|
||||
ms.Position = 0;
|
||||
|
||||
// write file entry
|
||||
zipStream.PutNextEntry(new ZipEntry(entryFilename));
|
||||
|
||||
buffer = new byte[size];
|
||||
bufferSize = 0;
|
||||
|
||||
do
|
||||
{
|
||||
bufferSize = ms.Read(buffer, 0, buffer.Length);
|
||||
zipStream.Write(buffer, 0, bufferSize);
|
||||
}
|
||||
while (bufferSize > 0);
|
||||
|
||||
ms.Flush();
|
||||
ms.Close();
|
||||
ms.Dispose();
|
||||
ms = null;
|
||||
|
||||
zipStream.Finish();
|
||||
zipStream.Flush();
|
||||
zipStream.Close();
|
||||
zipStream.Dispose();
|
||||
zipStream = null;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
287
RyzStudio/IO/SmartDirectory.cs
Normal file
@ -0,0 +1,287 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace RandomFileRunner.IO
|
||||
{
|
||||
public class SmartDirectory
|
||||
{
|
||||
|
||||
public static List<string> GetFiles(string path, string pattern, bool searchTopOnly)
|
||||
{
|
||||
List<string> fileList = new List<string>();
|
||||
List<string> directoryList = new List<string>();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(pattern)) pattern = "*";
|
||||
|
||||
directoryList.Add(path);
|
||||
|
||||
while (true)
|
||||
{
|
||||
if (directoryList.Count <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
string directory = directoryList.First();
|
||||
directoryList.RemoveAt(0);
|
||||
|
||||
if (IsDirectoryAccessible(directory))
|
||||
{
|
||||
IEnumerable<string> searchDirList = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
searchDirList = Directory.EnumerateDirectories(directory, "*", SearchOption.TopDirectoryOnly);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!searchTopOnly)
|
||||
{
|
||||
foreach (string item in searchDirList)
|
||||
{
|
||||
if (!IsDirectoryAccessible(item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
directoryList.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (string item in Directory.EnumerateFiles(directory, "*", SearchOption.TopDirectoryOnly))
|
||||
{
|
||||
if (!MatchFileSearchPattern(pattern, Path.GetFileName(item)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!IsFileAccessible(item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
fileList.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return fileList;
|
||||
}
|
||||
|
||||
public static void GetFiles(string path, string pattern, bool searchTopOnly, Func<string, ulong, int, bool> callback)
|
||||
{
|
||||
List<string> directoryList = new List<string>();
|
||||
ulong searchCount = 0;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(pattern)) pattern = "*";
|
||||
|
||||
directoryList.Add(path);
|
||||
searchCount++;
|
||||
|
||||
while (true)
|
||||
{
|
||||
if (directoryList.Count <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
string directory = directoryList.First();
|
||||
directoryList.RemoveAt(0);
|
||||
|
||||
callback(null, searchCount, directoryList.Count);
|
||||
|
||||
if (IsDirectoryAccessible(directory))
|
||||
{
|
||||
IEnumerable<string> searchDirList = new List<string>();
|
||||
|
||||
try
|
||||
{
|
||||
searchDirList = Directory.EnumerateDirectories(directory, "*", SearchOption.TopDirectoryOnly);
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!searchTopOnly)
|
||||
{
|
||||
foreach (string item in searchDirList)
|
||||
{
|
||||
if (!IsDirectoryAccessible(item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
directoryList.Add(item);
|
||||
searchCount++;
|
||||
|
||||
callback(null, searchCount, directoryList.Count);
|
||||
}
|
||||
}
|
||||
|
||||
foreach (string item in Directory.EnumerateFiles(directory, "*", SearchOption.TopDirectoryOnly))
|
||||
{
|
||||
if (!MatchFileSearchPattern(pattern, Path.GetFileName(item)))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!IsFileAccessible(item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
callback(item, searchCount, directoryList.Count);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static bool IsFileAccessible(string filename)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filename)) return false;
|
||||
if (!File.Exists(filename)) return false;
|
||||
|
||||
try
|
||||
{
|
||||
FileInfo fi = new FileInfo(filename);
|
||||
fi.GetAccessControl();
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsDirectoryAccessible(string path)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path)) return false;
|
||||
if (!Directory.Exists(path)) return false;
|
||||
|
||||
try
|
||||
{
|
||||
DirectoryInfo di = new DirectoryInfo(path);
|
||||
di.GetAccessControl();
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool MatchFileSearchPattern(string pattern, string subject)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(pattern))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
Func<string, string, bool> matchPattern = (pattern, subject) =>
|
||||
{
|
||||
string[] parts = pattern.Split('*');
|
||||
if (parts.Length <= 1)
|
||||
{
|
||||
return subject.Equals(pattern, StringComparison.CurrentCultureIgnoreCase);
|
||||
}
|
||||
|
||||
int pos = 0;
|
||||
|
||||
for (int i = 0; i < parts.Length; i++)
|
||||
{
|
||||
if (i <= 0)
|
||||
{
|
||||
// first
|
||||
pos = subject.IndexOf(parts[i], pos, StringComparison.CurrentCultureIgnoreCase);
|
||||
if (pos != 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (i >= (parts.Length - 1))
|
||||
{
|
||||
// last
|
||||
if (!subject.EndsWith(parts[i], StringComparison.CurrentCultureIgnoreCase))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pos = subject.IndexOf(parts[i], pos, StringComparison.CurrentCultureIgnoreCase);
|
||||
if (pos < 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
pos += parts[i].Length;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
Func<string, string, bool> matchAllPattern = (pattern, subject) =>
|
||||
{
|
||||
int wildcardCount = pattern.Count(x => x.Equals('*'));
|
||||
if (wildcardCount <= 0)
|
||||
{
|
||||
return subject.Equals(pattern, StringComparison.CurrentCultureIgnoreCase);
|
||||
}
|
||||
else if (wildcardCount == 1)
|
||||
{
|
||||
string newWildcardPattern = pattern.Replace("*", "");
|
||||
|
||||
if (pattern.StartsWith("*"))
|
||||
{
|
||||
return subject.EndsWith(newWildcardPattern, StringComparison.CurrentCultureIgnoreCase);
|
||||
}
|
||||
else if (pattern.EndsWith("*"))
|
||||
{
|
||||
return subject.StartsWith(newWildcardPattern, StringComparison.CurrentCultureIgnoreCase);
|
||||
}
|
||||
else
|
||||
{
|
||||
return matchPattern(pattern, subject);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return matchPattern(pattern, subject);
|
||||
}
|
||||
};
|
||||
|
||||
if (pattern.Contains(';'))
|
||||
{
|
||||
string[] parts = pattern.Split(';');
|
||||
for (int i=0; i<parts.Length; i++)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(parts[i]))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if (matchAllPattern(parts[i].Trim(), subject))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return matchAllPattern(pattern, subject);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
281
RyzStudio/IO/SmarterFileSystem.cs
Normal file
@ -0,0 +1,281 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
namespace RyzStudio.IO
|
||||
{
|
||||
public class SmarterFileSystem
|
||||
{
|
||||
public static List<string> GetFiles(string path, string pattern, System.IO.SearchOption searchOption)
|
||||
{
|
||||
List<string> fileList = new List<string>();
|
||||
List<string> directoryList = new List<string>();
|
||||
|
||||
directoryList.Add(path);
|
||||
|
||||
while (true)
|
||||
{
|
||||
if (directoryList.Count <= 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
string directory = directoryList.First();
|
||||
directoryList.RemoveAt(0);
|
||||
|
||||
if (!IsDirectoryAccessible(directory))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
IEnumerable<string> dirList = Enumerable.Empty<string>();
|
||||
|
||||
try
|
||||
{
|
||||
dirList = Directory.EnumerateDirectories(directory, "*", SearchOption.TopDirectoryOnly);
|
||||
}
|
||||
catch
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach (string item in dirList)
|
||||
{
|
||||
//if (!IsDirectoryAccessible(item))
|
||||
//{
|
||||
// continue;
|
||||
//}
|
||||
|
||||
directoryList.Add(item);
|
||||
}
|
||||
|
||||
foreach (string item in Directory.EnumerateFiles(directory, "*", SearchOption.TopDirectoryOnly))
|
||||
{
|
||||
if (!IsFileAccessible(item))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
fileList.Add(item);
|
||||
}
|
||||
}
|
||||
|
||||
return fileList;
|
||||
}
|
||||
|
||||
//public static List<string> GetFiles(string path, string searchPattern, System.IO.SearchOption searchOption)
|
||||
//{
|
||||
// List<string> rs = new List<string>();
|
||||
|
||||
// if (string.IsNullOrWhiteSpace(path)) return rs;
|
||||
// if (!System.IO.Directory.Exists(path)) return rs;
|
||||
|
||||
// IEnumerable<string> fileList = Enumerable.Empty<string>();
|
||||
|
||||
|
||||
// //if (!IsDirectoryAccessible(path))
|
||||
// //{
|
||||
// // return rs;
|
||||
// //}
|
||||
|
||||
// try
|
||||
// {
|
||||
// fileList = Directory.EnumerateFiles(path, "*", SearchOption.TopDirectoryOnly);
|
||||
// }
|
||||
// catch
|
||||
// {
|
||||
// return rs;
|
||||
// }
|
||||
|
||||
// foreach (string item in fileList)
|
||||
// {
|
||||
// if (!IsFileAccessible(item))
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// rs.Add(item);
|
||||
// }
|
||||
|
||||
// if (searchOption == SearchOption.AllDirectories)
|
||||
// {
|
||||
// foreach (string item in Directory.EnumerateDirectories(path, "*", SearchOption.TopDirectoryOnly))
|
||||
// {
|
||||
// //if (!IsDirectoryAccessible(item))
|
||||
// //{
|
||||
// // continue;
|
||||
// //}
|
||||
|
||||
// rs.AddRange(GetFiles(item, searchPattern, searchOption));
|
||||
// }
|
||||
// }
|
||||
|
||||
// return rs;
|
||||
//}
|
||||
|
||||
|
||||
//public static string CleanFilename(string value, string defaultValue = "")
|
||||
//{
|
||||
// if (string.IsNullOrWhiteSpace(value))
|
||||
// {
|
||||
// return defaultValue;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return string.Join("-", value.Replace(".", "-").Split(Path.GetInvalidFileNameChars()));
|
||||
// }
|
||||
//}
|
||||
|
||||
//public static List<string> GetFiles(string path, string pattern)
|
||||
//{
|
||||
// List<string> fileList = new List<string>();
|
||||
// List<string> directoryList = new List<string>();
|
||||
|
||||
// directoryList.Add(path);
|
||||
|
||||
// while (true)
|
||||
// {
|
||||
// if (directoryList.Count <= 0)
|
||||
// {
|
||||
// break;
|
||||
// }
|
||||
|
||||
// string directory = directoryList.First();
|
||||
// directoryList.RemoveAt(0);
|
||||
|
||||
// if (!IsDirectoryAccessible(directory))
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// foreach (string item in Directory.EnumerateDirectories(directory, "*", SearchOption.TopDirectoryOnly))
|
||||
// {
|
||||
// if (!IsDirectoryAccessible(item))
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// directoryList.Add(item);
|
||||
// }
|
||||
|
||||
// foreach (string item in Directory.EnumerateFiles(directory, pattern, SearchOption.TopDirectoryOnly))
|
||||
// {
|
||||
// if (!IsFileAccessible(item))
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
|
||||
// fileList.Add(item);
|
||||
// }
|
||||
// }
|
||||
|
||||
// return fileList;
|
||||
//}
|
||||
|
||||
public static bool IsFileAccessible(string filename)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(filename)) return false;
|
||||
if (!System.IO.File.Exists(filename)) return false;
|
||||
|
||||
try
|
||||
{
|
||||
System.IO.File.GetAttributes(filename);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool IsDirectoryAccessible(string path)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(path)) return false;
|
||||
if (!System.IO.Directory.Exists(path)) return false;
|
||||
|
||||
//try
|
||||
//{
|
||||
// System.IO.Directory.GetCreationTime(path);
|
||||
//}
|
||||
//catch
|
||||
//{
|
||||
// return false;
|
||||
//}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
//public static string ResolvePath(string value)
|
||||
//{
|
||||
// string rv = Environment.ExpandEnvironmentVariables(value);
|
||||
|
||||
// rv = resolveFirstPath(rv);
|
||||
// rv = resolveLastPath(rv);
|
||||
|
||||
// return rv;
|
||||
//}
|
||||
|
||||
//protected static string resolveFirstPath(string value)
|
||||
//{
|
||||
// const string last = "%FIRST%";
|
||||
// if (!value.Contains(last))
|
||||
// {
|
||||
// return value;
|
||||
// }
|
||||
|
||||
// string head = value.Substring(0, value.IndexOf(last));
|
||||
// string tail = value.Substring(value.IndexOf(last) + last.Length);
|
||||
|
||||
// string[] dirList = new string[0];
|
||||
|
||||
// try
|
||||
// {
|
||||
// dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly);
|
||||
// }
|
||||
// catch
|
||||
// {
|
||||
// // do nothing
|
||||
// }
|
||||
|
||||
// if (dirList.Length <= 0)
|
||||
// {
|
||||
// return value;
|
||||
// }
|
||||
|
||||
// return dirList[0] + tail;
|
||||
//}
|
||||
|
||||
//protected static string resolveLastPath(string value)
|
||||
//{
|
||||
// const string last = "%LAST%";
|
||||
// if (!value.Contains(last))
|
||||
// {
|
||||
// return value;
|
||||
// }
|
||||
|
||||
// string head = value.Substring(0, value.IndexOf(last));
|
||||
// string tail = value.Substring(value.IndexOf(last) + last.Length);
|
||||
|
||||
// string[] dirList = new string[0];
|
||||
|
||||
// try
|
||||
// {
|
||||
// dirList = System.IO.Directory.GetDirectories(head, "*", System.IO.SearchOption.TopDirectoryOnly);
|
||||
// }
|
||||
// catch
|
||||
// {
|
||||
// // do nothing
|
||||
// }
|
||||
|
||||
// if (dirList.Length <= 0)
|
||||
// {
|
||||
// return value;
|
||||
// }
|
||||
|
||||
// return dirList[(dirList.Length - 1)] + tail;
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
168
RyzStudio/Net/HttpWeb.cs
Normal file
@ -0,0 +1,168 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Net
|
||||
{
|
||||
public class HttpWeb
|
||||
{
|
||||
public string defaultUserAgent = "Momozilla/5.0 (" + Environment.OSVersion.Platform.ToString() + " ; " + Environment.OSVersion.VersionString + "; " + Application.CurrentCulture.TwoLetterISOLanguageName + ")";
|
||||
public int defaultTimeout = 6000;
|
||||
public int defaultMaxRedirect = 8;
|
||||
public bool defaultAllowRedirect = true;
|
||||
public CookieContainer defaultCookierContainer = null;
|
||||
|
||||
public HttpWeb()
|
||||
{
|
||||
}
|
||||
|
||||
public HttpWebRequest CreateRequest(string url)
|
||||
{
|
||||
return this.CreateRequest(url, url);
|
||||
}
|
||||
|
||||
public HttpWebRequest CreateRequest(string url, string referrerURL)
|
||||
{
|
||||
if (defaultCookierContainer == null)
|
||||
{
|
||||
defaultCookierContainer = new CookieContainer();
|
||||
}
|
||||
|
||||
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
|
||||
webRequest.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
|
||||
webRequest.MaximumAutomaticRedirections = defaultMaxRedirect;
|
||||
webRequest.CookieContainer = defaultCookierContainer;
|
||||
webRequest.UserAgent = defaultUserAgent;
|
||||
webRequest.AllowAutoRedirect = defaultAllowRedirect;
|
||||
webRequest.Timeout = defaultTimeout;
|
||||
|
||||
return webRequest;
|
||||
}
|
||||
|
||||
public int GetResponse(out string sourceCode, string url, string referrerURL = "")
|
||||
{
|
||||
HttpWebRequest webRequest = this.CreateRequest(url, referrerURL);
|
||||
|
||||
return GetResponse(out sourceCode, webRequest);
|
||||
}
|
||||
|
||||
public int GetResponse(out string sourceCode, HttpWebRequest webRequest)
|
||||
{
|
||||
sourceCode = string.Empty;
|
||||
|
||||
int rv = 0;
|
||||
|
||||
try
|
||||
{
|
||||
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
|
||||
|
||||
rv = (int)webResponse.StatusCode;
|
||||
|
||||
StreamReader readContent = new StreamReader(webResponse.GetResponseStream());
|
||||
sourceCode = readContent.ReadToEnd();
|
||||
|
||||
webResponse.Close();
|
||||
webResponse = null;
|
||||
}
|
||||
catch (WebException xc)
|
||||
{
|
||||
if (xc.Response is HttpWebResponse)
|
||||
{
|
||||
HttpWebResponse rs = xc.Response as HttpWebResponse;
|
||||
StreamReader readContent = new StreamReader(rs.GetResponseStream());
|
||||
if (readContent != null)
|
||||
{
|
||||
sourceCode = readContent.ReadToEnd();
|
||||
}
|
||||
|
||||
rv = (int)rs.StatusCode;
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = (int)xc.Status;
|
||||
sourceCode = xc.Message;
|
||||
}
|
||||
}
|
||||
catch (Exception xc)
|
||||
{
|
||||
sourceCode = xc.Message;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static HttpWebRequest AddBasicAuthentication(HttpWebRequest webRequest, string username, string password)
|
||||
{
|
||||
webRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes(string.Concat(username, ":", password)));
|
||||
webRequest.PreAuthenticate = true;
|
||||
|
||||
return webRequest;
|
||||
}
|
||||
|
||||
|
||||
public int GetPOSTResponse(out string sourceCode, HttpWebRequest webRequest, string postData)
|
||||
{
|
||||
sourceCode = "";
|
||||
int rv = 0;
|
||||
byte[] buffer = Encoding.UTF8.GetBytes(postData);
|
||||
|
||||
webRequest.ContentLength = buffer.Length;
|
||||
|
||||
try
|
||||
{
|
||||
Stream dataStream = webRequest.GetRequestStream();
|
||||
dataStream.Write(buffer, 0, buffer.Length);
|
||||
dataStream.Close();
|
||||
}
|
||||
catch (Exception xc)
|
||||
{
|
||||
sourceCode = xc.Message;
|
||||
return rv;
|
||||
}
|
||||
|
||||
return this.GetResponse(out sourceCode, webRequest);
|
||||
}
|
||||
|
||||
public int GetHeader(out WebHeaderCollection headerCollection, string url, string referrerURL = "")
|
||||
{
|
||||
headerCollection = null;
|
||||
|
||||
int rv = 0;
|
||||
|
||||
HttpWebRequest webRequest = this.CreateRequest(url, referrerURL);
|
||||
webRequest.Method = "HEAD";
|
||||
|
||||
try
|
||||
{
|
||||
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
|
||||
headerCollection = webResponse.Headers;
|
||||
|
||||
rv = (int)webResponse.StatusCode;
|
||||
|
||||
webResponse.Close();
|
||||
webResponse = null;
|
||||
}
|
||||
catch (WebException xc)
|
||||
{
|
||||
if (xc.Response is HttpWebResponse)
|
||||
{
|
||||
HttpWebResponse rs = xc.Response as HttpWebResponse;
|
||||
|
||||
rv = (int)rs.StatusCode;
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = (int)xc.Status;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
}
|
69
RyzStudio/Windows/Forms/StackLayoutPanel.cs
Normal file
@ -0,0 +1,69 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public class StackLayoutPanel : FlowLayoutPanel
|
||||
{
|
||||
public StackLayoutPanel() : base()
|
||||
{
|
||||
this.AutoScroll = true;
|
||||
this.FlowDirection = FlowDirection.TopDown;
|
||||
this.WrapContents = false;
|
||||
}
|
||||
|
||||
protected override void OnResize(EventArgs eventargs)
|
||||
{
|
||||
base.OnResize(eventargs);
|
||||
|
||||
//int w = this.ClientRectangle.Width - SystemInformation.VerticalScrollBarWidth;
|
||||
int w = this.ClientRectangle.Width - 1;
|
||||
|
||||
foreach (Control item in this.Controls)
|
||||
{
|
||||
if (item.Width != w)
|
||||
{
|
||||
item.Width = w;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnControlAdded(ControlEventArgs e)
|
||||
{
|
||||
base.OnControlAdded(e);
|
||||
|
||||
OnResize(null);
|
||||
}
|
||||
|
||||
protected override void OnControlRemoved(ControlEventArgs e)
|
||||
{
|
||||
base.OnControlRemoved(e);
|
||||
|
||||
OnResize(null);
|
||||
}
|
||||
|
||||
public void AddControl(Control value)
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
value.Margin = new Padding(0, 3, 0, 3);
|
||||
|
||||
this.Controls.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
value.Margin = new Padding(0, 3, 0, 3);
|
||||
|
||||
this.Controls.Add(value);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
63
RyzStudio/Windows/Forms/TCustomProgressBar.Designer.cs
generated
Normal file
@ -0,0 +1,63 @@
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
partial class TCustomProgressBar
|
||||
{
|
||||
/// <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.label3 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.label3.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label3.Font = new System.Drawing.Font("Segoe UI", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.label3.Location = new System.Drawing.Point(4, 4);
|
||||
this.label3.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(803, 47);
|
||||
this.label3.TabIndex = 144;
|
||||
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
|
||||
//
|
||||
// ProgressBarInner
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.label3);
|
||||
this.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.Name = "ProgressBarInner";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(810, 54);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label label3;
|
||||
}
|
||||
}
|
158
RyzStudio/Windows/Forms/TCustomProgressBar.cs
Normal file
@ -0,0 +1,158 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public partial class TCustomProgressBar : TUserControl
|
||||
{
|
||||
protected int minimum = 0;
|
||||
protected int maximum = 100;
|
||||
protected int value = 50;
|
||||
|
||||
|
||||
public TCustomProgressBar() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Padding = new Padding(0);
|
||||
}
|
||||
|
||||
|
||||
[Category("Data"), Browsable(true)]
|
||||
public int Minimum
|
||||
{
|
||||
get => minimum;
|
||||
set
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke(new MethodInvoker(() => {
|
||||
SetMinimum(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetMinimum(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Data"), Browsable(true)]
|
||||
public int Maximum
|
||||
{
|
||||
get => maximum;
|
||||
set
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke(new MethodInvoker(() => {
|
||||
SetMaximum(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetMaximum(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Data"), Browsable(true)]
|
||||
public int Value
|
||||
{
|
||||
get => value;
|
||||
set
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke(new MethodInvoker(() => {
|
||||
SetValue(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
SetValue(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Color BarColour { get; set; } = Color.FromArgb(158, 225, 249);
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Color BarTextColour { get => label3.ForeColor; set => label3.ForeColor = value; }
|
||||
|
||||
|
||||
protected override void OnPaint(PaintEventArgs e)
|
||||
{
|
||||
base.OnPaint(e);
|
||||
|
||||
Rectangle canvas = this.DisplayRectangle;
|
||||
Graphics g = e.Graphics;
|
||||
|
||||
if (this.Value > 0)
|
||||
{
|
||||
decimal result = decimal.Divide(canvas.Width, this.Maximum) * this.Value;
|
||||
|
||||
canvas.Width = (int)Math.Round(result);
|
||||
|
||||
g.FillRectangle(new SolidBrush(this.BarColour), canvas);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void Reset(int value)
|
||||
{
|
||||
this.Minimum = 0;
|
||||
this.Value = 0;
|
||||
this.Maximum = value;
|
||||
}
|
||||
|
||||
protected void UpdateText() => RyzStudio.Windows.Forms.ThreadControl.SetText(label3, string.Format("{0}/{1}", this.Value.ToString(), this.Maximum.ToString()));
|
||||
|
||||
protected void SetMinimum(int value)
|
||||
{
|
||||
int m = value;
|
||||
if (m < 0) m = 0;
|
||||
if (m > this.Maximum) m = this.Maximum;
|
||||
if (this.Value < m) this.Value = m;
|
||||
if (this.value > this.Maximum) this.value = this.Maximum;
|
||||
|
||||
minimum = m;
|
||||
|
||||
UpdateText();
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
protected void SetMaximum(int value)
|
||||
{
|
||||
int m = value;
|
||||
if (m < 0) m = 0;
|
||||
if (m < this.Minimum) m = this.Minimum;
|
||||
if (this.Value > m) this.Value = m;
|
||||
if (this.value < this.Minimum) this.value = this.Minimum;
|
||||
|
||||
maximum = m;
|
||||
|
||||
UpdateText();
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
protected void SetValue(int value)
|
||||
{
|
||||
int m = value;
|
||||
if (m < this.Minimum) m = this.Minimum;
|
||||
if (m > this.Maximum) m = this.Maximum;
|
||||
|
||||
this.value = m;
|
||||
|
||||
UpdateText();
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,17 +1,17 @@
|
||||
<?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
|
||||
|
||||
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>
|
||||
@ -26,36 +26,36 @@
|
||||
<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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
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
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
@ -117,13 +117,4 @@
|
||||
<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>831, 17</value>
|
||||
</metadata>
|
||||
<metadata name="folderBrowserDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>986, 17</value>
|
||||
</metadata>
|
||||
<metadata name="openFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>1155, 17</value>
|
||||
</metadata>
|
||||
</root>
|
115
RyzStudio/Windows/Forms/TFlatButton.cs
Normal file
@ -0,0 +1,115 @@
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public class TFlatButton : Label
|
||||
{
|
||||
public class ButtonStyle
|
||||
{
|
||||
public Color BackColour { get; set; } = Color.Transparent;
|
||||
public Color PenColour { get; set; } = Color.Transparent;
|
||||
}
|
||||
|
||||
public enum FlatButtonState
|
||||
{
|
||||
Idle = 0,
|
||||
Hover,
|
||||
Down
|
||||
}
|
||||
|
||||
protected FlatButtonState controlState = FlatButtonState.Idle;
|
||||
|
||||
public TFlatButton() : base()
|
||||
{
|
||||
this.AutoSize = false;
|
||||
this.ImageAlign = ContentAlignment.MiddleCenter;
|
||||
this.TextAlign = ContentAlignment.MiddleCenter;
|
||||
|
||||
// customise
|
||||
this.StyleOver = new ButtonStyle()
|
||||
{
|
||||
BackColour = Color.FromArgb(51, 51, 51),
|
||||
PenColour = Color.White
|
||||
};
|
||||
this.StyleDown = new ButtonStyle()
|
||||
{
|
||||
BackColour = Color.FromArgb(179, 179, 179),
|
||||
PenColour = Color.Black
|
||||
};
|
||||
this.StyleDefault = new ButtonStyle()
|
||||
{
|
||||
BackColour = Color.White,
|
||||
PenColour = Color.Black
|
||||
};
|
||||
|
||||
this.VisualState = FlatButtonState.Idle;
|
||||
|
||||
this.Click += delegate { this.OnClick(null); };
|
||||
this.MouseEnter += delegate { this.VisualState = FlatButtonState.Hover; };
|
||||
this.MouseLeave += delegate { this.VisualState = FlatButtonState.Idle; };
|
||||
this.MouseDown += delegate { this.VisualState = FlatButtonState.Down; };
|
||||
this.MouseUp += delegate { this.VisualState = FlatButtonState.Idle; };
|
||||
}
|
||||
|
||||
protected FlatButtonState VisualState
|
||||
{
|
||||
get { return controlState; }
|
||||
set
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case FlatButtonState.Idle:
|
||||
if (this.VisualState == FlatButtonState.Down)
|
||||
{
|
||||
updateButton(StyleOver);
|
||||
}
|
||||
else
|
||||
{
|
||||
updateButton(StyleDefault);
|
||||
}
|
||||
|
||||
break;
|
||||
case FlatButtonState.Hover:
|
||||
updateButton(StyleOver);
|
||||
break;
|
||||
case FlatButtonState.Down:
|
||||
updateButton(StyleDown);
|
||||
break;
|
||||
default:
|
||||
updateButton(StyleDefault);
|
||||
break;
|
||||
}
|
||||
|
||||
controlState = value;
|
||||
}
|
||||
}
|
||||
|
||||
protected void updateButton(ButtonStyle style)
|
||||
{
|
||||
this.ForeColor = style.PenColour;
|
||||
this.BackColor = style.BackColour;
|
||||
}
|
||||
|
||||
protected ButtonStyle StyleOver { get; set; } = new ButtonStyle();
|
||||
|
||||
protected ButtonStyle StyleDown { get; set; } = new ButtonStyle();
|
||||
|
||||
protected ButtonStyle StyleDefault { get; set; } = new ButtonStyle();
|
||||
|
||||
public void PerformClick()
|
||||
{
|
||||
if (this.InvokeRequired)
|
||||
{
|
||||
this.Invoke(new MethodInvoker(() => {
|
||||
this.OnClick(null);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.OnClick(null);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
434
RyzStudio/Windows/Forms/TForm.cs
Normal file
@ -0,0 +1,434 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
//using Resources = AppLauncher.Properties.Resources;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public class TForm : Form
|
||||
{
|
||||
//protected readonly Color borderColour = Color.FromArgb(200, 200, 200);
|
||||
//protected readonly int borderWidth = 1;
|
||||
|
||||
//protected readonly int resizeBorderWidth = 4;
|
||||
|
||||
protected readonly Color backColour = Color.FromArgb(250, 250, 250);
|
||||
|
||||
//protected readonly Color titleBackColour = Color.FromArgb(235, 234, 233);
|
||||
//protected readonly Color titleBorderColour = Color.FromArgb(200, 198, 196);
|
||||
//protected readonly Color titleColour = Color.FromArgb(102, 102, 102);
|
||||
//protected readonly int titleBarHeight = 33;
|
||||
//protected readonly bool showTitleBarLine = true;
|
||||
//protected Font titleFont = null;
|
||||
//protected int titleFontTop = 0;
|
||||
|
||||
//protected readonly Size titleBarIconSize = new Size(48, 32);
|
||||
//protected readonly int titleBarIconMargin = 0;
|
||||
//protected readonly int titleBarIconMarginRight = 0;
|
||||
|
||||
//protected Image appIcon = null;
|
||||
//protected const int appIconLeft = 12;
|
||||
//protected const int appIconRight = 6;
|
||||
//protected int appIconTop = 0;
|
||||
|
||||
protected bool isDragging = false;
|
||||
protected Point startPosition = new Point();
|
||||
|
||||
//protected Point startWindowSize = new Point();
|
||||
|
||||
//protected bool enableMinimise { get; set; } = true;
|
||||
//protected bool enableMaximise { get; set; } = true;
|
||||
//protected bool enableClose { get; set; } = true;
|
||||
//protected bool closeOnMinimise { get; set; } = false;
|
||||
|
||||
protected bool isBusy = false;
|
||||
|
||||
private IContainer components;
|
||||
|
||||
public TForm() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
//if (!this.DesignMode)
|
||||
//{
|
||||
// this.FormBorderStyle = FormBorderStyle.None;
|
||||
// this.StartPosition = FormStartPosition.Manual;
|
||||
//}
|
||||
|
||||
this.AutoScaleMode = AutoScaleMode.Font;
|
||||
this.BackColor = backColour;
|
||||
this.FormBorderStyle = FormBorderStyle.Sizable;
|
||||
this.Padding = new Padding(0);
|
||||
this.DoubleBuffered = true;
|
||||
|
||||
this.MouseDown += new MouseEventHandler(form_MouseDown);
|
||||
this.MouseMove += new MouseEventHandler(form_MouseMove);
|
||||
this.MouseUp += new MouseEventHandler(form_MouseUp);
|
||||
this.PreviewKeyDown += new PreviewKeyDownEventHandler(form_PreviewKeyDown);
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
this.Text = Application.ProductName;
|
||||
|
||||
//initialiseLoadComponent();
|
||||
|
||||
//if (appIcon != null) appIconTop = (int)Math.Floor((decimal)(titleBarHeight - appIcon.Height) / 2) + borderWidth;
|
||||
//titleFont = new Font(this.Font.FontFamily, 10F);
|
||||
//titleFontTop = (int)Math.Floor((decimal)(titleBarHeight - TextRenderer.MeasureText("#", titleFont).Height) / 2) + borderWidth;
|
||||
|
||||
}
|
||||
|
||||
//protected override void OnMouseClick(MouseEventArgs e)
|
||||
//{
|
||||
// base.OnMouseClick(e);
|
||||
|
||||
// bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= titleBarHeight));
|
||||
|
||||
// if (e.Button == MouseButtons.Left)
|
||||
// {
|
||||
// if (isLabel)
|
||||
// {
|
||||
// // do nothing
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // do nothing
|
||||
// }
|
||||
// }
|
||||
// else if (e.Button == MouseButtons.Right)
|
||||
// {
|
||||
// if (isLabel)
|
||||
// {
|
||||
// if (this.TitleContextMenuStrip != null)
|
||||
// {
|
||||
// this.TitleContextMenuStrip.Show(this, e.Location);
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// // do nothing
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
|
||||
//protected override void OnPaint(PaintEventArgs e)
|
||||
//{
|
||||
// base.OnPaint(e);
|
||||
|
||||
// Graphics g = e.Graphics;
|
||||
// Rectangle area = new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - borderWidth), (this.DisplayRectangle.Height - borderWidth));
|
||||
|
||||
// // border
|
||||
// g.DrawRectangle(new Pen(borderColour, borderWidth), area);
|
||||
|
||||
// area.Inflate((-1 * borderWidth), (-1 * borderWidth));
|
||||
|
||||
//g.FillRectangle(new SolidBrush(titleBackColour), area.X, area.Y, (area.Width + area.X), titleBarHeight);
|
||||
|
||||
//if (showTitleBarLine) g.DrawLine(new Pen(titleBorderColour, 1), area.X, titleBarHeight, (area.Width + area.X), titleBarHeight);
|
||||
|
||||
//if (!DesignMode)
|
||||
//{
|
||||
// if (appIcon != null) g.DrawImageUnscaled(appIcon, appIconLeft, appIconTop);
|
||||
|
||||
// int iconPosX = borderWidth + appIconLeft + appIconRight + ((appIcon == null) ? 0 : appIcon.Width);
|
||||
// TextRenderer.DrawText(g, this.Text, titleFont, new Point(iconPosX, titleFontTop), titleColour);
|
||||
//}
|
||||
//}
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Color BackColor { get => base.BackColor; set => base.BackColor = backColour; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Padding { get => base.Padding; set => base.Padding = value; }
|
||||
|
||||
[Category("Appearance")]
|
||||
public ContextMenuStrip TitleContextMenuStrip { get; set; } = null;
|
||||
|
||||
//[Browsable(false)]
|
||||
//public Image AppIcon { get; set; } = null;
|
||||
|
||||
//[Browsable(false)]
|
||||
//public bool IsMaximiseEnabled { get; set; } = false;
|
||||
|
||||
//protected Point DefaultLocation
|
||||
//{
|
||||
// get
|
||||
// {
|
||||
// Point newPosition = new Point(Cursor.Position.X, Cursor.Position.Y);
|
||||
// newPosition.X -= (this.Width / 2);
|
||||
// newPosition.Y -= (this.Height / 2);
|
||||
|
||||
// newPosition.X = Math.Max(newPosition.X, Screen.PrimaryScreen.WorkingArea.Left);
|
||||
// newPosition.Y = Math.Max(newPosition.Y, Screen.PrimaryScreen.WorkingArea.Top);
|
||||
|
||||
// return newPosition;
|
||||
// }
|
||||
//}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(TForm));
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// AForm
|
||||
//
|
||||
this.Name = "AForm";
|
||||
this.ResumeLayout(false);
|
||||
}
|
||||
|
||||
private void form_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
isDragging = true;
|
||||
startPosition = e.Location;
|
||||
//startWindowSize = new Point(this.Width, this.Height);
|
||||
}
|
||||
}
|
||||
|
||||
private void form_MouseMove(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (isDragging)
|
||||
{
|
||||
int x = (this.Location.X + (e.Location.X - startPosition.X));
|
||||
int y = (this.Location.Y + (e.Location.Y - startPosition.Y));
|
||||
|
||||
//this.Location = validateFormLocation(x, y);
|
||||
this.Location = new Point(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
private void form_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
isDragging = false;
|
||||
}
|
||||
|
||||
private void form_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.Escape)
|
||||
{
|
||||
Application.Exit();
|
||||
}
|
||||
}
|
||||
|
||||
//protected virtual void initialiseLoadComponent()
|
||||
//{
|
||||
// if (DesignMode) return;
|
||||
|
||||
// // close
|
||||
// TImageBox closeBox = generateToolbarImageBox();
|
||||
// closeBox.Image = closeBox.ImageNormal = (enableClose) ? Resources.titlebar_close : Resources.titlebar_blank;
|
||||
// closeBox.ImageHover = (enableClose) ? Resources.titlebar_close3 : Resources.titlebar_blank;
|
||||
// closeBox.ImageSelected = Resources.titlebar_close3;
|
||||
// closeBox.MouseClick += delegate (object sender, MouseEventArgs e)
|
||||
// {
|
||||
// if (e.Button == MouseButtons.Left)
|
||||
// {
|
||||
// if (enableClose)
|
||||
// {
|
||||
// this.Close();
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
// closeBox.Left = this.DisplayRectangle.Width - closeBox.Width - (titleBarIconMarginRight + borderWidth);
|
||||
|
||||
// this.Controls.Add(closeBox);
|
||||
|
||||
// // maximise
|
||||
// TImageBox maximiseBox = generateToolbarImageBox();
|
||||
// maximiseBox.Image = maximiseBox.ImageNormal = (enableMaximise) ? Resources.titlebar_maximise : Resources.titlebar_blank;
|
||||
// maximiseBox.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_blank;
|
||||
// maximiseBox.ImageSelected = Resources.titlebar_maximise3;
|
||||
// maximiseBox.MouseClick += delegate (object sender, MouseEventArgs e)
|
||||
// {
|
||||
// if (!(sender is TImageBox)) return;
|
||||
|
||||
// TImageBox imageBox2 = (sender as TImageBox);
|
||||
|
||||
// if (imageBox2 == null) return;
|
||||
|
||||
// if (e.Button == MouseButtons.Left)
|
||||
// {
|
||||
// if (enableMaximise)
|
||||
// {
|
||||
// if (this.WindowState == FormWindowState.Maximized)
|
||||
// {
|
||||
// this.WindowState = FormWindowState.Normal;
|
||||
// imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// this.WindowState = FormWindowState.Maximized;
|
||||
// imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise5;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// else if (e.Button == MouseButtons.Right)
|
||||
// {
|
||||
// this.TopMost = !this.TopMost;
|
||||
|
||||
// if (this.TopMost)
|
||||
// {
|
||||
// imageBox2.Image = imageBox2.ImageNormal = Resources.titlebar_maximise3;
|
||||
// imageBox2.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_maximise3;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// imageBox2.Image = imageBox2.ImageNormal = (enableMaximise) ? Resources.titlebar_maximise : Resources.titlebar_blank;
|
||||
// imageBox2.ImageHover = (enableMaximise) ? Resources.titlebar_maximise5 : Resources.titlebar_blank;
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
// maximiseBox.Left = closeBox.Left - maximiseBox.Width - titleBarIconMargin;
|
||||
|
||||
// this.Controls.Add(maximiseBox);
|
||||
|
||||
// // minimise
|
||||
// TImageBox minimiseBox = generateToolbarImageBox();
|
||||
// minimiseBox.Image = minimiseBox.ImageNormal = (enableMinimise) ? Resources.titlebar_minimise : Resources.titlebar_blank;
|
||||
// minimiseBox.ImageHover = (enableMinimise) ? Resources.titlebar_minimise5 : Resources.titlebar_blank;
|
||||
// //minimiseBox.ImageSelected = null;
|
||||
// minimiseBox.MouseClick += delegate (object sender, MouseEventArgs e)
|
||||
// {
|
||||
// if (!enableMinimise) return;
|
||||
// if (e.Button != MouseButtons.Left) return;
|
||||
|
||||
// if (closeOnMinimise)
|
||||
// {
|
||||
// this.Close();
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// this.WindowState = FormWindowState.Minimized;
|
||||
// }
|
||||
// };
|
||||
// minimiseBox.Left = maximiseBox.Left - minimiseBox.Width - titleBarIconMargin;
|
||||
|
||||
// this.Controls.Add(minimiseBox);
|
||||
|
||||
// // resize
|
||||
// UserControl uc1 = new UserControl()
|
||||
// {
|
||||
// Anchor = (AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Right),
|
||||
// Height = resizeBorderWidth,
|
||||
// Width = this.DisplayRectangle.Width - resizeBorderWidth,
|
||||
// Left = 0,
|
||||
// Top = this.DisplayRectangle.Height - resizeBorderWidth,
|
||||
// BackColor = Color.Transparent,
|
||||
// Cursor = Cursors.SizeNS
|
||||
// };
|
||||
// uc1.MouseDown += form_MouseDown;
|
||||
// uc1.MouseUp += form_MouseUp;
|
||||
// uc1.MouseMove += delegate (object sender, MouseEventArgs e)
|
||||
// {
|
||||
// if (isDragging)
|
||||
// {
|
||||
// this.Size = new Size(startWindowSize.X, e.Y - startPosition.Y + this.Height);
|
||||
// }
|
||||
// };
|
||||
// uc1.BringToFront();
|
||||
|
||||
// this.Controls.Add(uc1);
|
||||
|
||||
// UserControl uc2 = new UserControl()
|
||||
// {
|
||||
// Anchor = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom),
|
||||
// Height = this.DisplayRectangle.Height - resizeBorderWidth,
|
||||
// Width = resizeBorderWidth,
|
||||
// Left = this.DisplayRectangle.Width - resizeBorderWidth,
|
||||
// Top = 0,
|
||||
// BackColor = Color.Transparent,
|
||||
// Cursor = Cursors.SizeWE
|
||||
// };
|
||||
// uc2.MouseDown += form_MouseDown;
|
||||
// uc2.MouseUp += form_MouseUp;
|
||||
// uc2.MouseMove += delegate (object sender, MouseEventArgs e)
|
||||
// {
|
||||
// if (isDragging)
|
||||
// {
|
||||
// this.Size = new Size(e.X - startPosition.X + this.Width, startWindowSize.Y);
|
||||
// }
|
||||
// };
|
||||
// uc2.BringToFront();
|
||||
|
||||
// this.Controls.Add(uc2);
|
||||
|
||||
// UserControl uc3 = new UserControl()
|
||||
// {
|
||||
// Anchor = (AnchorStyles.Bottom | AnchorStyles.Right),
|
||||
// Height = resizeBorderWidth,
|
||||
// Width = resizeBorderWidth,
|
||||
// Left = this.DisplayRectangle.Width - resizeBorderWidth,
|
||||
// Top = this.DisplayRectangle.Height - resizeBorderWidth,
|
||||
// BackColor = Color.Transparent,
|
||||
// Cursor = Cursors.SizeNWSE
|
||||
// };
|
||||
// uc3.MouseDown += form_MouseDown;
|
||||
// uc3.MouseUp += form_MouseUp;
|
||||
// uc3.MouseMove += delegate (object sender, MouseEventArgs e)
|
||||
// {
|
||||
// if (isDragging)
|
||||
// {
|
||||
// this.Size = new Size((e.X - startPosition.X + this.Width), (e.Y - startPosition.Y + this.Height));
|
||||
// }
|
||||
// };
|
||||
// uc3.BringToFront();
|
||||
|
||||
// this.Controls.Add(uc3);
|
||||
//}
|
||||
|
||||
//protected TImageBox generateToolbarImageBox()
|
||||
//{
|
||||
// TImageBox imageBox = new TImageBox();
|
||||
// //imageBox.BackColor = Color.Transparent;
|
||||
// imageBox.BackColorHover = imageBox.BackColorSelected = Color.FromArgb(220, 220, 220);
|
||||
// imageBox.BackgroundImageLayout = ImageLayout.Center;
|
||||
// imageBox.ErrorImage = null;
|
||||
// //imageBox.Image = Resources.close;
|
||||
// //imageBox.ImageHover = Resources.close2;
|
||||
// //imageBox.ImageNormal = Resources.close;
|
||||
// imageBox.ImageSelected = null;
|
||||
// imageBox.IsSelected = false;
|
||||
// //closeBox.Location = new System.Drawing.Point(169, 12);
|
||||
// imageBox.Size = titleBarIconSize;
|
||||
// imageBox.SizeMode = PictureBoxSizeMode.CenterImage;
|
||||
// //imageBox.MouseClick += new MouseEventHandler(closeBox_MouseClick);
|
||||
// //imageBox.Left = this.DisplayRectangle.Width - imageBox.Width - 17;
|
||||
// imageBox.Top = (int)Math.Floor((decimal) (titleBarHeight - titleBarIconSize.Height) / 2) + borderWidth;
|
||||
// imageBox.Anchor = (AnchorStyles.Top | AnchorStyles.Right);
|
||||
// imageBox.Padding = new Padding(0);
|
||||
|
||||
// return imageBox;
|
||||
//}
|
||||
|
||||
//private void exitToolStripMenuItem_Click(object sender, EventArgs e) => this.Close();
|
||||
|
||||
//private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)
|
||||
//{
|
||||
// if (e.Button == MouseButtons.Left)
|
||||
// {
|
||||
// this.Visible = !this.Visible;
|
||||
// }
|
||||
|
||||
// //notifyIcon1.Visible = !this.Visible;
|
||||
//}
|
||||
|
||||
|
||||
}
|
||||
}
|
424
RyzStudio/Windows/Forms/TForm.resx
Normal file
@ -0,0 +1,424 @@
|
||||
<?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>
|
||||
<metadata name="notifyIcon1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>130, 17</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="notifyIcon1.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
|
||||
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxc
|
||||
VU5rW1Tna1tU22paU5BsXVVCgEBABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAaltTZWtbVPxrW1T/a1tU/2tbVP9rW1T/a1tU7mtbU6VrXFNWbVtbDgAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABqWlR/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU+Wta
|
||||
VLprW1Nrb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2tbVJhrW1T/a1tU/2tbVP+NgXz/2NPR/6+mov+Bc23/a1tU/2tb
|
||||
VP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVc1sXFSAa1xSMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtSUkHa1xUqmtbVP9rW1T/a1tU/5iNiP/6+fn/////////
|
||||
////////6+no/7+4tf+Sh4L/bV5X/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVOFrXFOZallTTW1J
|
||||
SQcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlaWhFqW1TCa1tU/2tbVP9rW1T/o5mV//38
|
||||
/P//////////////////////////////////////9PPy/8jDwP+cko3/c2Nd/2tbVP9rW1T/a1tU/2tb
|
||||
VP9rW1T/a1tU/2tbVPVrW1SzalxUXmlaWhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalhYHWtbVNRrW1T/a1tU/2tb
|
||||
VP+1rar/////////////////////////////////////////////////////////////////+vn5/9LN
|
||||
y/+lm5f/eGpj/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVPtrWlS9bFxVb2xdVSEAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrWVMra1tU42tb
|
||||
VP9rW1T/bV1W/8S9u///////////////////////////////////////////////////////////////
|
||||
/////////////////////////v7+/97a2f+xqKT/g3Zw/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tb
|
||||
VP5qW1V4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpZ
|
||||
VTxrW1Tua1tU/2tbVP9wYVr/0czK////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////+ro5/+8tbL/j4N+/21d
|
||||
Vv9rW1T/a1tU/2tbVP9rW1TpAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAbFxTUGtbVPZrW1T/a1tU/3VnYP/d2df/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////Tz8v/Iw8D/dmdh/2tbVP9rW1T/blpTJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABsXFRha1tU+2tbVP9rW1T/emxl/+Th4P//////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////m5CL/2tbVP9rW1T/a1tTXwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGtaVHdrW1T/a1tU/2tbVP+DdnD/7uzs/////////////Pvw//z6
|
||||
7v/8+u7//Pru//z67v/8+u7//Pru//z67v/9/PT///////////////////////z4+f/79fX/+/X1//v1
|
||||
9f/79fX/+/X1//v19f/79fX//Pb2////////////////////////////vLWy/2tbVP9rW1T/a1xTmQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDa1tUmGtbVP9rW1T/a1tU/4t/ev/08/L/////////
|
||||
///cyT7/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/6Nt+////////////4bG1/8Rl
|
||||
bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/9KKkP//////////////////////3tvZ/2tb
|
||||
VP9rW1T/a1tU1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Sra1tU/2tbVP9rW1T/mY6J//r5
|
||||
+f////////////389f/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28Y1////
|
||||
////////0IWL/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/xGVs/8RlbP/9+fn/////////
|
||||
/////////Pz8/3BhWv9rW1T/a1tU/nFVVRIAAAAAAAAAAAAAAAAAAAAAaVpaEWtcVMNrW1T/a1tU/2tb
|
||||
VP+kmpb//fz8//////////////////389P/RtwD/0bcA/+TVbP/w56r/8Oeq//Dnqv/w56r/8Oeq/93K
|
||||
Qv/RtwD/28Y1////////////0IWL/8RlbP/TjZL/68zO/+vMzv/rzM7/68zO/+vMzv/dpqr/xGVs/8Rl
|
||||
bP/8+Pn//////////////////////46CfP9rW1T/a1tU/2xbVEkAAAAAAAAAAAAAAABsWFgaa1xU0Wtb
|
||||
VP9rW1T/a1tU/7CopP////////////////////////////389P/RtwD/0bcA/+7lov//////////////
|
||||
/////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX/////////////////////////
|
||||
///px8n/xGVs/8RlbP/8+Pn//////////////////////7CopP9rW1T/a1tU/2tbVIMAAAAAAAAAAAAA
|
||||
AABqXFTOa1tU/2tbVP9tXlf/xr+9//////////////////////////////////389P/RtwD/0bcA/+7l
|
||||
ov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8RlbP/boaX/////////
|
||||
///////////////////px8n/xGVs/8RlbP/8+Pn//////////////////////9LNy/9rW1T/a1tU/2tb
|
||||
VL8AAAAAAAAAAAAAAABrW1Tva1tU/2tbVP/KxML///////////////////////////////////////38
|
||||
9P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////////////0IWL/8Rl
|
||||
bP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn///////////////////////Py
|
||||
8v9sXFX/a1tU/2tbVPRmZmYFAAAAAAAAAABrW1W4a1tU/2tbVP/Oycf/////////////////////////
|
||||
//////////////389P/RtwD/0bcA/+7lov///////////////////////////+PTY//RtwD/28Y1////
|
||||
////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8RlbP/8+Pn/////////
|
||||
//////////////////+CdG7/a1tU/2tbVP9sXVM0AAAAAAAAAABqWlR/a1tU/2tbVP+tpKD/////////
|
||||
//////////////////////////////389P/RtwD/0bcA/+7lov///////////////////////////+PT
|
||||
Y//RtwD/28Y1////////////0IWL/8RlbP/boaX////////////////////////////px8n/xGVs/8Rl
|
||||
bP/8+Pn///////////////////////////+jmZX/a1tU/2tbVP9rWlNuAAAAAAAAAABtWlNEa1tU/2tb
|
||||
VP+Lfnn///////////////////////////////////////389P/RtwD/0bcA/93JQf/j1Gb/49Rm/+PU
|
||||
Zv/j1Gb/49Rm/9jCJ//RtwD/28Y1////////////0IWL/8RlbP/NfYL/3KOn/9yjp//co6f/3KOn/9yj
|
||||
p//TjJH/xGVs/8RlbP/8+Pn////////////////////////////Fv7z/a1tU/2tbVP9qW1OoAAAAAAAA
|
||||
AABqVVUMa1tU+2tbVP9uXlf/+fn4//////////////////////////////////389P/RtwD/0bcA/9G3
|
||||
AP/RtwD/0bcA/9G3AP/RtwD/0bcA/9G3AP/RtwD/28c5////////////0IWL/8RlbP/EZWz/xGVs/8Rl
|
||||
bP/EZWz/xGVs/8RlbP/EZWz/xGVs/8Rmbf/9+vr////////////////////////////n5eT/a1tU/2tb
|
||||
VP9rW1TkAAAAAAAAAAAAAAAAa1tUz2tbVP9rW1T/3NjW//////////////////////////////////38
|
||||
9v/axTP/2sUz/9rFM//axTP/2sUz/9rFM//axTP/2sUz/9rFM//bxzj/8Ois////////////2p2i/9CE
|
||||
if/QhIn/0ISJ/9CEif/QhIn/0ISJ/9CEif/QhIn/0ISJ/+GwtP//////////////////////////////
|
||||
///+/v7/dWdg/2tbVP9rW1T/alhYHQAAAAAAAAAAa1tUlGtbVP9rW1T/ubKv////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////l4uG/2tbVP9rW1T/a1pUWAAAAAAAAAAAbFtVWmtbVP9rW1T/mI2I////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////////////uLGt/2tbVP9rW1T/a1tUkgAAAAAAAAAAa1pSH2tb
|
||||
VP9rW1T/dmdh//7+/v////////////////////////////////+rnPH/fGTp/3xk6f98ZOn/fGTp/3xk
|
||||
6f98ZOn/fGTp/3xk6f9/aOr/ysD2////////////rOH9/zi4+v8ztvr/M7b6/zO2+v8ztvr/M7b6/zO2
|
||||
+v8ztvr/M7b6/33R/P//////////////////////////////////////2tbV/2tbVP9rW1T/a1tVzQAA
|
||||
AAAAAAAAAAAAAGtbVONrW1T/a1tU/+jm5f////////////////////////////r5/v9cPuT/Wz3k/1s9
|
||||
5P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/gGjq////////////Obj6/wCk+f8ApPn/AKT5/wCk
|
||||
+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wGk+f/3/P//////////////////////////////////+vn5/25f
|
||||
WP9rW1T/a1tU/GpVVQwAAAAAAAAAAGtcVKprW1T/a1tU/8bAvf////////////////////////////j3
|
||||
/v9bPeT/Wz3k/4Vu6/+di+//nYvv/52L7/+di+//nYvv/3Rb6P9bPeT/fWXq////////////Nbf6/wCk
|
||||
+f8nsvr/Zsj7/2bI+/9myPv/Zsj7/2bI+/9Bu/v/AKT5/wCk+f/0+///////////////////////////
|
||||
/////////////4p9eP9rW1T/a1tU/2xdVUIAAAAAAAAAAGtbVHBrW1T/a1tU/6Sblv//////////////
|
||||
//////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////
|
||||
////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+///////////
|
||||
/////////////////////////////6yjn/9rW1T/a1tU/2pcVH0AAAAAAAAAAGxdUzRrW1T/a1tU/4J0
|
||||
bv////////////////////////////j3/v9bPeT/Wz3k/8O49f///////////////////////////5uI
|
||||
7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v///////////////////////////+i3v3/AKT5/wCk
|
||||
+f/0+////////////////////////////////////////87Jx/9rW1T/a1tU/2tbVbgAAAAAAAAAAGZm
|
||||
ZgVrW1T0a1tU/2xcVf/z8vL///////////////////////j3/v9bPeT/Wz3k/8O49f//////////////
|
||||
/////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v/////////////////////////
|
||||
//+i3v3/AKT5/wCk+f/0+////////////////////////////////////////8rEwv9rW1T/a1tU/2tb
|
||||
VO8AAAAAAAAAAAAAAABrW1S/a1tU/2tbVP/Szcv///////////////////////j3/v9bPeT/Wz3k/8O4
|
||||
9f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk+f9jx/v/////////
|
||||
//////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////////////xr+9/21e
|
||||
V/9rW1T/a1tU/2pcVM4AAAAAAAAAAAAAAABrWlSFa1tU/2tbVP+xqaX///////////////////////j3
|
||||
/v9bPeT/Wz3k/8O49f///////////////////////////5uI7v9bPeT/fWXq////////////Nbf6/wCk
|
||||
+f9jx/v///////////////////////////+i3v3/AKT5/wCk+f/0+///////////////////////////
|
||||
//+6sq//bFxV/2tbVP9rW1T/a1tT1m9eVR4AAAAAAAAAAAAAAABpXFVLa1tU/2tbVP+Pg37/////////
|
||||
//////////////j3/v9bPeT/Wz3k/6CP7//Ivvb/yL72/8i+9v/Ivvb/yL72/4Vv6/9bPeT/fWXq////
|
||||
////////Nbf6/wCk+f9CvPv/quH9/6rh/f+q4f3/quH9/6rh/f9sy/z/AKT5/wCk+f/0+///////////
|
||||
/////////f39/6ifmv9rW1T/a1tU/2tbVP9rW1TIZllZFAAAAAAAAAAAAAAAAAAAAABpWloRa1tU/Wtb
|
||||
VP9wYVr//Pv7//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9
|
||||
5P9bPeT/fWXq////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk
|
||||
+f/1+//////////////7+vr/nZKO/2tbVP9rW1T/a1tU/2tcVbJmZk0KAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAa1tT1mtbVP9rW1T/4Nzb//////////////////j3/v9bPeT/Wz3k/1s95P9bPeT/Wz3k/1s9
|
||||
5P9bPeT/Wz3k/1s95P9bPeT/rJ3x////////////Nbf6/wCk+f8ApPn/AKT5/wCk+f8ApPn/AKT5/wCk
|
||||
+f8ApPn/AKT5/z66+v////////////b19P+Pg37/a1tU/2tbVP9rW1T/a1tTn4BAQAQAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAa1pUm2tbVP9rW1T/vbaz//////////////////7+///08v3/9PL9//Ty
|
||||
/f/08v3/9PL9//Ty/f/08v3/9PL9//Ty/f/49/7/////////////////8vr//+75///u+f//7vn//+75
|
||||
///u+f//7vn//+75///u+f//8Pr/////////////8O/u/4Z5dP9rW1T/a1tU/2tbVP9rXFSIAAAAAQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbFxUYWtbVP9rW1T/nJGM////////////////////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////n5eT/fG5o/2tbVP9rW1T/a1tU/Gta
|
||||
VWkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAblpTJWtbVP9rW1T/dmdh/8jD
|
||||
wP/08/L/////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////////////////////////////////////93Z1/91Z2D/a1tU/2tb
|
||||
VP9rW1T2bFxTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWtb
|
||||
VOlrW1T/a1tU/2tbVP9tXVb/j4N+/7y1sv/q6Of/////////////////////////////////////////
|
||||
////////////////////////////////////////////////////////////////////////0czK/3Bh
|
||||
Wv9rW1T/a1tU/2tbVO5qWVU8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAGpbVXhrW1T+a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/g3Zw/7GopP/e2tn//v7+////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
///Evbv/bV1W/2tbVP9rW1T/a1tU42tZUysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsXVUhbFxVb2taVL1rW1T7a1tU/2tbVP9rW1T/a1tU/2tb
|
||||
VP9rW1T/eGpj/6Wbl//Szcv/+vn5////////////////////////////////////////////////////
|
||||
/////////////7Wtqv9rW1T/a1tU/2tbVP9rW1TUalhYHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpWloRbFpUVWtb
|
||||
U6JrW1Twa1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/cGFa/5KHgv+/uLX/8O/u////////////////////
|
||||
///////////////////9/f3/p56a/2tbVP9rW1T/a1tU/2pbVcdmWVkUAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABVVVUDallVPGtbVJFrW1Pia1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/bFxV/4l8
|
||||
dv+1ran/4d7d//////////////////v6+v+cko3/a1tU/2tbVP9rW1T/a1tUsXFVVQkAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAa1xSMmxcVIBrW1XNa1tU/2tb
|
||||
VP9rW1T/a1tU/2tbVP9rW1T/a1tU/4Fzbf+vpqL/2NPR/42BfP9rW1T/a1tU/2tbVP9rW1SYVVVVAwAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAb15VHmtbU2trWlS6a1tU+WtbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2tbVP9rW1T/a1tU/2pa
|
||||
VH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbVtbDmtcU1ZrW1Ola1tU7mtbVP9rW1T/a1tU/2tb
|
||||
VP9rW1T8altTZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEBABGxd
|
||||
VUJqWlOQa1tU22tbVOdsXFVOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4H///+sEP//AD///6wQ//4AB///rBD/+AAA//+sEP/w
|
||||
AAAP/6wQ/+AAAAH/rBD/wAAAAD+sEP+AAAAAH6wQ/wAAAAAPrBD+AAAAAA+sEPwAAAAAD6wQ+AAAAAAP
|
||||
rBDgAAAAAA+sEMAAAAAAB6wQgAAAAAAHrBAAAAAAAAesEAAAAAAAB6wQAAAAAAADrBAAAAAAAAOsEAAA
|
||||
AAAAA6wQAAAAAAADrBAAAAAAAAOsEIAAAAAAAawQgAAAAAABrBCAAAAAAAGsEIAAAAAAAawQwAAAAAAA
|
||||
rBDAAAAAAACsEMAAAAAAAKwQwAAAAAAArBDAAAAAAACsEOAAAAAAAKwQ4AAAAAAArBDgAAAAAAGsEOAA
|
||||
AAAAA6wQ8AAAAAAHrBDwAAAAAA+sEPAAAAAAP6wQ8AAAAAB/rBDwAAAAAP+sEPgAAAAB/6wQ/AAAAAP/
|
||||
rBD/gAAAB/+sEP/wAAAP/6wQ//8AAB//rBD//+AAf/+sEP///AD//6wQ////gf//rBAoAAAAIAAAAEAA
|
||||
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAABsXFRha1tU7GtbVcFqW1RzalxVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAbFtVe2tbVP5rW1T/a1tU/2tbVP9rW1T/a1tT1mtcVIhrWVU5gICAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAVVVVA2xbVJVrW1T/bV5X/8K7uf/RzMr/pJqW/3hpY/9rW1T/a1tU/2tb
|
||||
VP9rW1TpalxTnGxcVU5mZk0KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1JSQdrW1Spa1tU/29fWf/Oycf//////////////////v7+/+He
|
||||
3f+1ran/iXx2/2tbVP9rW1T/a1tU/2tbVPZqW1W7bFxVb2xYWBoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwYFAQbFxUwGtbVP91ZmD+3trZ////////////////////
|
||||
////////////////////////6efm/7y0sf+Ogn3/bV1W/2tbVP9rW1T/a1tU/WtbVMZrWlR3ZlVVDwAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2tbVNJrW1T/fW9p/+fl5P//////////////
|
||||
///////////////////////////////////////////////////z8vL/x8G//5uQi/9xYlv/a1tU/2tb
|
||||
VP9rW1SPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpdVylrW1Tha1tU/4V4cv/w7u7/////////
|
||||
//////////////////////////////////////////////////////////////////////////////r6
|
||||
+v/Evbv/a1tU/2xbVMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrXVM3a1tU62tbVP+MgHr/9PPy////
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////v6+v9vX1n/a1tU+2pVVQwAAAAAAAAAAAAAAAAAAAAAallTTWtbVPVrW1T/mY6K//r5
|
||||
+f///v3/1r8d/9G3AP/RtwD/0bcA/9G3AP/RtwD/07oL//r34//57u//x2xy/8RlbP/EZWz/xGVs/8Rl
|
||||
bP/EZWz/y3d9///+/v///////////4yAev9rW1T/alpSQQAAAAAAAAAAAAAAAGpaVWBrW1T7a1tU/6mg
|
||||
nP/+/v7///////799//RtwD/2cMr/+PUZv/j1Gb/49Rm/9zIPP/RtwD/9vHM//Pg4v/EZWz/0omP/9yj
|
||||
p//co6f/3KOn/85/hf/EZWz//fr6////////////rqai/2tbVP9sW1V7AAAAAAAAAABrW1R5a1tU/2xc
|
||||
Vf+4sa3//////////////////v33/9G3AP/k1Wz/////////////////7OGW/9G3AP/28cz/8+Di/8Rl
|
||||
bP/nwML/////////////////3aaq/8RlbP/9+vr////////////RzMn/a1tU/2pbVLYAAAAAAAAAAGtb
|
||||
VO5rW1T/w726///////////////////////+/ff/0bcA/+TVbP/////////////////s4Zb/0bcA//bx
|
||||
zP/z4OL/xGVs/+fAwv/////////////////dpqr/xGVs//36+v////////////Lw8P9rW1T/a1tU74CA
|
||||
gAIAAAAAa1tUxWtbVP/Z1dP///////////////////////799//RtwD/5NVs/////////////////+zh
|
||||
lv/RtwD/9vHM//Pg4v/EZWz/58DC/////////////////92mqv/EZWz//fr6/////////////////4By
|
||||
bP9rW1T/aF1RLAAAAABqXFSLa1tU/7iwrf///////////////////////v33/9G3AP/dyUH/7eKZ/+3i
|
||||
mf/t4pn/4dBa/9G3AP/28cz/8+Di/8RlbP/Zm6D/58HE/+fBxP/nwcT/04yR/8RlbP/9+vr/////////
|
||||
////////opeT/2tbVP9qW1NlAAAAAGtbVVFrW1T/louG///////////////////////+/ff/0bcA/9G3
|
||||
AP/RtwD/0bcA/9G3AP/RtwD/0bcB//n12//z4OL/xGVs/8RlbP/EZWz/xGVs/8RlbP/EZWz/x2xy//79
|
||||
/f/////////////////Dvbr/a1tU/2tbU58AAAAAaF1RFmtbVP90ZV///v7+///////////////////+
|
||||
/f/28cz/9vHM//bxzP/28cz/9vHM//bxzP/49dr///////35+f/z4OL/8+Di//Pg4v/z4OL/8+Di//Pg
|
||||
4v/47e7//////////////////////+Xi4f9rW1T/altU2gAAAAAAAAAAa1xT3GtbVP/m4+L/////////
|
||||
/////////////+zp/P/e2Pr/3tj6/97Y+v/e2Pr/3tj6/+fj+////////////9ry/v/M7f7/zO3+/8zt
|
||||
/v/M7f7/zO3+/+L1/v///////////////////////v7+/3VmX/9rW1T+aF1RFgAAAABsWlSha1tU/8S+
|
||||
u//////////////////8/P//YkXl/1s95P9bPeT/Wz3k/1s95P9bPeT/XD7k/+jk+//b8v7/AaT5/wCk
|
||||
+f8ApPn/AKT5/wCk+f8ApPn/C6j5//v+////////////////////////lYmE/2tbVP9rWlRPAAAAAGpc
|
||||
VGdrW1T/o5mU//////////////////r5/v9bPeT/hW7r/72x9P+9sfT/vbH0/5WB7v9bPeT/3tj6/8zt
|
||||
/v8ApPn/WsT7/5nb/f+Z2/3/mdv9/0G7+/8ApPn/9/z///////////////////////+2r6v/a1tU/2pb
|
||||
VIkAAAAAaF1RLGtbVP+Acmz/////////////////+vn+/1s95P+gj+//////////////////u6/0/1s9
|
||||
5P/e2Pr/zO3+/wCk+f+W2v3/////////////////bMv8/wCk+f/3/P///////////////////////9nV
|
||||
0/9rW1T/a1tUxQAAAACAgIACa1tU72tbVP/y8PD////////////6+f7/Wz3k/6CP7///////////////
|
||||
//+7r/T/Wz3k/97Y+v/M7f7/AKT5/5ba/f////////////////9sy/z/AKT5//f8////////////////
|
||||
////////w726/2tbVP9rW1TuAAAAAAAAAABqW1S2a1tU/9HMyf////////////r5/v9bPeT/oI/v////
|
||||
/////////////7uv9P9bPeT/3tj6/8zt/v8ApPn/ltr9/////////////////2zL/P8ApPn/9/z/////
|
||||
/////////////7ixrf9sXFX/a1tU/2tbVHkAAAAAAAAAAGpcVH1rW1T/r6ej////////////+vn+/1s9
|
||||
5P93Xun/nYvv/52L7/+di+//gmvq/1s95P/e2Pr/zO3+/wCk+f88ufr/Zsj7/2bI+/9myPv/K7P6/wCk
|
||||
+f/3/P////////7+/v+upaH/a1tU/2tbVPxqXFRnAAAAAAAAAAAAAAAAa1tUQ2tbVP+NgXz/////////
|
||||
///6+f7/Wz3k/1s95P9bPeT/Wz3k/1s95P9bPeT/YkXl/+3q/P/M7f7/AKT5/wCk+f8ApPn/AKT5/wCk
|
||||
+f8ApPn/Ha76//3+///7+vr/nZOO/2tbVP9rWlT4altVVAAAAAAAAAAAAAAAAAAAAAB0XV0La1tU+29f
|
||||
Wf/7+vr/////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////9vX0/5CEfv9rW1T/bFxU72pZVTwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AABsW1TMa1tU/8S9u//6+vr/////////////////////////////////////////////////////////
|
||||
//////////////////////////////Du7v+FeHL/a1tU/2tbVOFqXVcpAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAGtbVI9rW1T/a1tU/3FiW/+bkIv/x8G///Py8v//////////////////////////////
|
||||
///////////////////////////////////n5eT/fW9p/2tbVP9rW1TSaF5VGwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAZlVVD2taVHdrW1TGa1tU/WtbVP9rW1T/bV1W/46Cff+8tLH/6efm////
|
||||
////////////////////////////////////////3trZ/3ZnYf9rW1T/bFxUwHBgUBAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmWVkUalxUXmtcVKprW1Tya1tU/2tb
|
||||
VP9rW1T/f3Fr/6uinv/Y09H//fz8/////////////////9LNy/9xYVv/a1tU/2paVa9xVVUJAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm
|
||||
TQpsXFVOalxTnGtbVOlrW1T/a1tU/2tbVP94aWP/pJqW/9HMyv/Cu7n/bV5X/2tbVP9sW1SVVVVVAwAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAgICAAmtZVTlrXFSIa1tT1mtbVP9rW1T/a1tU/2tbVP9rW1T+bFtVewAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAalxVJGpbVHNrW1XBa1tU7Gxc
|
||||
VGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wA///wAB//4A
|
||||
AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAQAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA
|
||||
AACAAAAAgAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//4AA///wA////wf/KAAAABgA
|
||||
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAa1tTa2xcVfBsXFW1bFpVZmZcUhkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFrWlSFa1tU/4+Dfv+AcWv8a1tU/2tb
|
||||
VP5tXlbMa1xUemxbVS0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAVVVVA2xbVJprW1T/qqCc//7+/v//////6+no/7+4tf+RhoH9bF1W/mtbVP9tXlbia1xTmWpZ
|
||||
U02AVVUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0XV0LbFxVtWxcVf+5sq//////////
|
||||
////////////////////////8/Hx/8bAvf+Zjor/cGBa/WtbVP9tXVbxaltUo2heVRsAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAGZZWRRtXFbKbV1W/sjCv///////////////////////////////////////////////
|
||||
////////+vn5/9LNy/+mnJj/bV1W/WtbVIMAAAAAAAAAAAAAAAAAAAAAaFhYIG1eV9pvYFn808/N////
|
||||
////////////////////////////////////////////////////////////////////////in55/W1d
|
||||
Vr4AAAAAAAAAAAAAAABoXVEsbV5X53NlXvzd2tj//v78/9S8EP/RtwD/0bcA/9G3AP/RtwD/8Oit/+zN
|
||||
0P/EZWz/xGVs/8RlbP/EZWz/yG91//79/f//////raSg/2xcVfaAQEAEAAAAAGxcVEBtXVbzfG5n++jm
|
||||
5f///////v35/9G3AP/v5qf/9vHM//bxzP/Ywij/7eKZ/+fBxP/NfYP/8+Di//Pg4v/rysz/xGVs//77
|
||||
/P//////z8rH/2tbVP9rXFIyAAAAAG1dVe2CdW/98O/u/////////////v35/9G3AP/38tH/////////
|
||||
///axTL/7eKZ/+fBxP/Qg4n////////////04+T/xGVs//77/P//////8fDv/2tbVP9sW1RtAAAAAG5e
|
||||
Vs+ViYT+/////////////////v35/9G3AP/38tH////////////axTL/7eKZ/+fBxP/Qg4n/////////
|
||||
///04+T/xGVs//77/P///////////31waftqW1OoAAAAAGxaU5NyY138/v7+/////////////v35/9G3
|
||||
AP/Zwyr/2sUz/9rFM//Tugr/7eOb/+fBxP/Ga3L/0ISJ/9CEif/OfoT/xGVs//78/P///////////6CW
|
||||
kv9tXlflAAAAAGpcU1lrW1T/5ePh//////////////79/+3imf/t4pn/7eKZ/+3imf/t4pr/+/nr//bm
|
||||
5//nwcT/58HE/+fBxP/nwcT/7M3P/////////////////8K7uf9rW1T/alhYHW9eVR5rW1T/w726////
|
||||
/////////////8rA9v+9sfT/vbH0/72x9P++svT/8vD9/+v4//+a2/3/mdv9/5nb/f+Z2/3/rOH9////
|
||||
/////////////+Th4P9rW1T/bFtVVwAAAABtXlfnopeT/////////////Pv+/1s95P92Xej/fGTp/3xk
|
||||
6f9hReX/v7P0/5vb/f8KqPn/M7b6/zO2+v8qs/r/AKT5//r9//////////////7+/v9yY1z8a1tUkQAA
|
||||
AABqW1OofXBp+///////////+/r+/1s95P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr/////////
|
||||
///R7/7/AKT5//n9//////////////////+ViYT+bl5WzwAAAABsW1Rta1tU//Hw7///////+/r+/1s9
|
||||
5P/h3Pr///////////97Y+n/vbH0/5nb/f8ytvr////////////R7/7/AKT5//n9//////////////Dv
|
||||
7v+CdW/9bV1V7QAAAABsXVM0a1tU/9DLyf//////+/r+/1s95P/GvPb/3tj6/97Y+v91W+j/vbH0/5nb
|
||||
/f8osvr/zO3+/8zt/v+n4P3/AKT5//n9////////6+no/35wavxsXVX1altURgAAAACAQEAEbV1W9q6m
|
||||
ov//////+/r+/1s95P9bPeT/Wz3k/1s95P9bPeT/ysH2/5nb/f8ApPn/AKT5/wCk+f8ApPn/EKr5//z+
|
||||
///g3dv/dmdh/G1dVuptWFMxAAAAAAAAAAAAAAAAbFxVv4x/ev3/////////////////////////////
|
||||
/////////////////////////////////////////////9jT0f9xYVv8bV5W32pcVSQAAAAAAAAAAAAA
|
||||
AAAAAAAAa1tUg21dVv2mnJj/0s3L//r5+f//////////////////////////////////////////////
|
||||
////////yMK//21dVv5tXFbKZllZFAAAAAAAAAAAAAAAAAAAAAAAAAAAaF5VG2pbVKNsXFXwa1tU/3Bg
|
||||
Wv2Zjor+xsC9//Px8f////////////////////////////////+5sq//bFxV/2xcVbV0XV0LAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDallVPGtcVIhtXVbba1tU/2tbVP6Ie3X9ta2p/+He
|
||||
3f///////v7+/66mov9rW1T/bFpUoWZmZgUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAbFtVLWtcVHpsXVXLa1tU/mtbVP9/cWv7j4N+/2tbVP9rWlSFAAAAAQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAZlxSGWxaVWZsXFW1bFxV8GtbU2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H
|
||||
/0H8AP9B+AAPQfAAA0HgAANBwAADQYAAAUEAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA
|
||||
AEGAAABBgAABQcAAA0HAAAdBwAAPQfAAH0H/AD9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJhW3tvYFn0dWZgsmxbVVdmVVUPAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAnFiW5eCdG705OHg/8a/vf+UiYT0cWFa+Xdo
|
||||
YcptXFVsb15VHgAAAAAAAAAAAAAAAAAAAAAAAAAAbUlJB3NkXbKMgHr09/b2//////////////////r5
|
||||
+f/Szcv/oJeS9XNlXfZzZV7baVxVJwAAAAAAAAAAbVtbDnNjXciZj4n1+/r6////////////////////
|
||||
///////////////////+/v7/pJqW+WxdVnYAAAAAamBVGHJkXdmnnpn2/f37/9S8E//axTP/2MIo/+XX
|
||||
cP/eqa3/zX2D/9CEif/IcHf//v39/83Ixf92Z2C8AAAAAHJjXOC5sK36//////7++//bxjb///////Xw
|
||||
yv/k1Gf/3KOn//Pf4P//////0IaL//79/f/w7u7/cWFb8gAAAAF0Zl/i4+Df///////+/vv/2cMr//bx
|
||||
zP/u5aL/5NRn/9yjp//px8n/8+Di/85/hf/+/f3//////3hpYvNuWlMldGReo8K7uf////////79/+PU
|
||||
Zv/j1Gb/49Rm//Dorv/qyMv/3KOn/9yjp//eqKz///7+//////+ajoryalxUXmpaVWCbkYzz//////7+
|
||||
//+ikfD/nYvv/52L7//Lwfb/ruL9/2bI+/9myPv/b8z8//7/////////wbq3/3RlXqJuWlMleGli8///
|
||||
///8/P//d17p/97Y+v/DuPX/nYvv/2fJ+/+i3v3/zO3+/yuz+v/7/v///////+Pg3/90Zl/iAAAAAXFh
|
||||
W/Lw7u7//Pz//35m6v//////3df5/52L7/9nyfv/yuz+//////82t/r/+/7///////+5sK36cmNc4AAA
|
||||
AAB2Z2G+zsnH//z8//9iReX/fGTp/3Vb6P+jkvD/Z8n7/yiy+v8ztvr/E6v5//v9/v+to5/4c2Nd3m1b
|
||||
UhwAAAAAbF1WdqSalvn+/v7///////////////////////////////////////v6+v+Zj4r2c2ReyW1b
|
||||
Ww4AAAAAAAAAAGlcVSdzZV7bc2Vd9qCXkvXSzcv/+vn5//////////////////f29v+MgHr0c2Rdsm1J
|
||||
SQcAAAAAAAAAAAAAAAAAAAAAAAAAAG9eVR5rW1NrdGRexnBhWfiShoHvxr+9/uTh4P+CdG70c2RdmYCA
|
||||
gAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmVVUPbFtVV3VmYLJvYFn0cmFbewAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA+D+sQeAHrEHAAaxBgAGsQQABrEEAAKxBAACsQQAArEEAAKxBAACsQQAA
|
||||
rEGAAKxBgAGsQYADrEHgB6xB/B+sQQ==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
37
RyzStudio/Windows/Forms/THorizontalSeparator.Designer.cs
generated
Normal file
@ -0,0 +1,37 @@
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
partial class THorizontalSeparator
|
||||
{
|
||||
/// <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
|
||||
}
|
||||
}
|
114
RyzStudio/Windows/Forms/THorizontalSeparator.cs
Normal file
@ -0,0 +1,114 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public partial class THorizontalSeparator : System.Windows.Forms.UserControl
|
||||
{
|
||||
protected readonly Padding defaultMargin = new Padding(5, 0, 5, 10);
|
||||
protected readonly Padding defaultPadding = new Padding(0, 10, 0, 10);
|
||||
|
||||
|
||||
public THorizontalSeparator()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.BackColor = Color.Transparent;
|
||||
this.Margin = defaultMargin;
|
||||
this.MaximumSize = new Size(SystemInformation.VirtualScreen.Width, 22);
|
||||
this.MinimumSize = new Size(0, 22);
|
||||
this.Padding = defaultPadding;
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
this.Margin = defaultMargin;
|
||||
this.Padding = defaultPadding;
|
||||
}
|
||||
|
||||
protected override void OnPaintBackground(PaintEventArgs e)
|
||||
{
|
||||
base.OnPaintBackground(e);
|
||||
|
||||
Graphics g = e.Graphics;
|
||||
|
||||
g.FillRectangle(new SolidBrush(Color.FromArgb(213, 223, 229)), new Rectangle(this.DisplayRectangle.Left, 11, this.DisplayRectangle.Width, 1));
|
||||
g.FillRectangle(new SolidBrush(Color.FromArgb(249, 251, 253)), new Rectangle(this.DisplayRectangle.Left, 12, this.DisplayRectangle.Width, 1));
|
||||
}
|
||||
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new BorderStyle BorderStyle { get => base.BorderStyle; set => base.BorderStyle = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Cursor Cursor { get => base.Cursor; set => base.Cursor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Font Font { get => base.Font; set => base.Font = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Color BackColor { get => base.BackColor; set => base.BackColor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Color ForeColor { get => base.ForeColor; set => base.ForeColor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AllowDrop { get => base.AllowDrop; set => base.AllowDrop = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override AutoValidate AutoValidate { get => base.AutoValidate; set => base.AutoValidate = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override ContextMenuStrip ContextMenuStrip { get => base.ContextMenuStrip; set => base.ContextMenuStrip = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AutoSize { get => base.AutoSize; set => base.AutoSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new AutoSizeMode AutoSizeMode { get => base.AutoSizeMode; set => base.AutoSizeMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Size MaximumSize { get => base.MaximumSize; set => base.MaximumSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Size MinimumSize { get => base.MinimumSize; set => base.MinimumSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get => base.Margin; set => base.Margin = defaultMargin; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Padding { get => base.Padding; set => base.Padding = defaultPadding; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new DockStyle Dock { get => base.Dock; set => base.Dock = value; }
|
||||
|
||||
}
|
||||
}
|
120
RyzStudio/Windows/Forms/THorizontalSeparator.resx
Normal 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>
|
84
RyzStudio/Windows/Forms/TImageBox.cs
Normal file
@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public class TImageBox : System.Windows.Forms.PictureBox
|
||||
{
|
||||
public TImageBox() : base()
|
||||
{
|
||||
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.ErrorImage = null;
|
||||
this.InitialImage = null;
|
||||
this.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
}
|
||||
|
||||
protected override void OnCreateControl()
|
||||
{
|
||||
OnMouseLeave(null);
|
||||
|
||||
base.OnCreateControl();
|
||||
}
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Color BackColor { get => base.BackColor; set => base.BackColor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Image Image { get => base.Image; set => base.Image = value; }
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Color BackColorNormal { get; set; } = Color.Transparent;
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Color BackColorHover { get; set; } = Color.Transparent;
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Color BackColorSelected { get; set; } = Color.Transparent;
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Image ImageNormal { get; set; }
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Image ImageHover { get; set; }
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Image ImageSelected { get; set; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public Image NormalImage { get => this.ImageNormal; set => this.ImageNormal = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public Image HoverImage { get => this.ImageHover; set => this.ImageHover = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public Image SelectedImage { get => this.ImageSelected; set => this.ImageSelected = value; }
|
||||
|
||||
public bool IsSelected { get; set; } = false;
|
||||
|
||||
protected override void OnMouseEnter(EventArgs e)
|
||||
{
|
||||
this.Image = this.ImageHover;
|
||||
this.BackColor = this.BackColorHover;
|
||||
|
||||
base.OnMouseEnter(e);
|
||||
}
|
||||
|
||||
protected override void OnMouseLeave(EventArgs e)
|
||||
{
|
||||
this.Image = (this.IsSelected ? this.ImageSelected : this.ImageNormal);
|
||||
this.BackColor = (this.IsSelected ? this.BackColorSelected : this.BackColorNormal);
|
||||
|
||||
base.OnMouseLeave(e);
|
||||
}
|
||||
|
||||
protected override void OnLostFocus(EventArgs e)
|
||||
{
|
||||
this.Image = (this.IsSelected ? this.ImageSelected : this.ImageNormal);
|
||||
this.BackColor = (this.IsSelected ? this.BackColorSelected : this.BackColorNormal);
|
||||
|
||||
base.OnLostFocus(e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
258
RyzStudio/Windows/Forms/TPanelBook.cs
Normal file
@ -0,0 +1,258 @@
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
[ToolboxItem(true)]
|
||||
public class TPanelBook : UserControl
|
||||
{
|
||||
public class PanelCollection : CollectionBase
|
||||
{
|
||||
protected TPanelBook panelBook = null;
|
||||
|
||||
public PanelCollection(TPanelBook parentPanelBook) : base()
|
||||
{
|
||||
panelBook = parentPanelBook;
|
||||
}
|
||||
|
||||
public TPanelBook Parent => panelBook;
|
||||
|
||||
public Panel this[int index] { get => (Panel)List[index]; set => List[index] = value; }
|
||||
|
||||
public int Add(Panel value) => List.Add(value);
|
||||
|
||||
public void AddRange(Panel[] pages) => Array.ForEach(pages, x => this.Add(x));
|
||||
|
||||
public bool Contains(Panel value) => List.Contains(value);
|
||||
|
||||
public int IndexOf(Panel value) => List.IndexOf(value);
|
||||
|
||||
public void Insert(int index, Panel value) => List.Insert(index, value);
|
||||
|
||||
public void Remove(Panel value) => List.Remove(value);
|
||||
|
||||
protected override void OnInsertComplete(int index, object value)
|
||||
{
|
||||
base.OnInsertComplete(index, value);
|
||||
|
||||
if (panelBook != null)
|
||||
{
|
||||
panelBook.PageIndex = index;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnRemoveComplete(int index, object value)
|
||||
{
|
||||
base.OnRemoveComplete(index, value);
|
||||
|
||||
if (panelBook != null)
|
||||
{
|
||||
if (panelBook.PageIndex == index)
|
||||
{
|
||||
if (index < InnerList.Count)
|
||||
{
|
||||
panelBook.PageIndex = index;
|
||||
}
|
||||
else
|
||||
{
|
||||
panelBook.PageIndex = InnerList.Count - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
protected PanelCollection panelCollection = null;
|
||||
|
||||
public TPanelBook()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
panelCollection = new PanelCollection(this);
|
||||
}
|
||||
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
protected void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
}
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public Panel ActivePanel { get; protected set; } = null;
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; }
|
||||
|
||||
[Category("Collection")]
|
||||
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
|
||||
public PanelCollection Pages => panelCollection;
|
||||
|
||||
[Category("Collection")]
|
||||
public int SelectedIndex
|
||||
{
|
||||
get => (panelCollection.Count <= 0) ? -1 : panelCollection.IndexOf(this.ActivePanel);
|
||||
set
|
||||
{
|
||||
if (panelCollection.Count <= 0) return;
|
||||
if (value < 0) return;
|
||||
if (value > (panelCollection.Count - 1)) return;
|
||||
if (value == this.SelectedIndex) return;
|
||||
|
||||
ActivatePage(value);
|
||||
}
|
||||
}
|
||||
|
||||
protected internal int PageIndex
|
||||
{
|
||||
get => panelCollection.IndexOf(this.ActivePanel);
|
||||
set
|
||||
{
|
||||
if (panelCollection.Count <= 0)
|
||||
{
|
||||
ActivatePage(-1);
|
||||
return;
|
||||
}
|
||||
|
||||
if ((value < -1) || (value >= panelCollection.Count))
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("PageIndex", value, "The page index must be between 0 and " + Convert.ToString(panelCollection.Count - 1));
|
||||
}
|
||||
|
||||
ActivatePage(value);
|
||||
}
|
||||
}
|
||||
|
||||
protected internal void ActivatePage(int index)
|
||||
{
|
||||
if ((panelCollection.Count == 0) && (index >= panelCollection.Count) && (index <= 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Panel p = (Panel)panelCollection[index];
|
||||
|
||||
ActivatePage(p);
|
||||
}
|
||||
|
||||
protected internal void ActivatePage(Panel page)
|
||||
{
|
||||
if (this.ActivePanel != null)
|
||||
{
|
||||
if (this.ActivePanel.InvokeRequired)
|
||||
{
|
||||
this.ActivePanel.Invoke(new MethodInvoker(() => {
|
||||
this.ActivePanel.Visible = false;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ActivePanel.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
this.ActivePanel = page;
|
||||
if (this.ActivePanel != null)
|
||||
{
|
||||
this.ActivePanel.Parent = this;
|
||||
if (!this.Contains(this.ActivePanel))
|
||||
{
|
||||
this.Container.Add(this.ActivePanel);
|
||||
}
|
||||
|
||||
if (this.ActivePanel.InvokeRequired)
|
||||
{
|
||||
this.ActivePanel.Invoke(new MethodInvoker(() => {
|
||||
this.ActivePanel.Dock = DockStyle.Fill;
|
||||
this.ActivePanel.Visible = true;
|
||||
this.ActivePanel.BringToFront();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ActivePanel.Dock = DockStyle.Fill;
|
||||
this.ActivePanel.Visible = true;
|
||||
this.ActivePanel.BringToFront();
|
||||
}
|
||||
}
|
||||
|
||||
if (this.ActivePanel != null)
|
||||
{
|
||||
if (this.ActivePanel.InvokeRequired)
|
||||
{
|
||||
this.ActivePanel.Invoke(new MethodInvoker(() => {
|
||||
this.ActivePanel.Invalidate();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
this.ActivePanel.Invalidate();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
|
||||
if (this.DesignMode)
|
||||
{
|
||||
this.Invalidate();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
protected override void DestroyHandle()
|
||||
{
|
||||
base.DestroyHandle();
|
||||
|
||||
foreach (Panel p in panelCollection)
|
||||
{
|
||||
p.Dispose();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
73
RyzStudio/Windows/Forms/TUserControl.cs
Normal file
@ -0,0 +1,73 @@
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public class TUserControl : UserControl
|
||||
{
|
||||
|
||||
public TUserControl() : base()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new BorderStyle BorderStyle { get => base.BorderStyle; set => base.BorderStyle = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Cursor Cursor { get => base.Cursor; set => base.Cursor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Font Font { get => base.Font; set => base.Font = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Color ForeColor { get => base.ForeColor; set => base.ForeColor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AllowDrop { get => base.AllowDrop; set => base.AllowDrop = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override AutoValidate AutoValidate { get => base.AutoValidate; set => base.AutoValidate = value; }
|
||||
|
||||
//[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
//public override ContextMenuStrip ContextMenuStrip { get => base.ContextMenuStrip; set => base.ContextMenuStrip = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AutoSize { get => base.AutoSize; set => base.AutoSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new AutoSizeMode AutoSizeMode { get => base.AutoSizeMode; set => base.AutoSizeMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Size MaximumSize { get => base.MaximumSize; set => base.MaximumSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Size MinimumSize { get => base.MinimumSize; set => base.MinimumSize = value; }
|
||||
|
||||
}
|
||||
}
|
815
RyzStudio/Windows/Forms/ThreadControl.cs
Normal file
@ -0,0 +1,815 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.Forms
|
||||
{
|
||||
public class ThreadControl
|
||||
{
|
||||
public static void Add(Control control, Control value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Controls.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Controls.Add(value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Add(ListBox control, string value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Items.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Items.Add(value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Add(ComboBox control, string value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Items.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Items.Add(value);
|
||||
}
|
||||
}
|
||||
|
||||
//public static void Add(FlowLayoutPanel control, Control value)
|
||||
//{
|
||||
// if (control.InvokeRequired)
|
||||
// {
|
||||
// control.Invoke(new MethodInvoker(() => {
|
||||
// control.Controls.Add(value);
|
||||
// }));
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// control.Controls.Add(value);
|
||||
// }
|
||||
//}
|
||||
|
||||
public static int Add(TreeView control, TreeNode value)
|
||||
{
|
||||
int n = -1;
|
||||
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
n = control.Nodes.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
n = control.Nodes.Add(value);
|
||||
}
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
public static int Add(TreeNode control, TreeNode value)
|
||||
{
|
||||
int n = -1;
|
||||
|
||||
if (control.TreeView.InvokeRequired)
|
||||
{
|
||||
control.TreeView.Invoke(new MethodInvoker(() => {
|
||||
n = control.Nodes.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
n = control.Nodes.Add(value);
|
||||
}
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
public static int Add(DataGridView control, object[] value)
|
||||
{
|
||||
int n = -1;
|
||||
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
n = control.Rows.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
n = control.Rows.Add(value);
|
||||
}
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
public static int Add(DataGridView control, object[] value, object tag)
|
||||
{
|
||||
int n = -1;
|
||||
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
n = control.Rows.Add(value);
|
||||
control.Rows[n].Tag = tag;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
n = control.Rows.Add(value);
|
||||
control.Rows[n].Tag = tag;
|
||||
}
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
public static TreeNode Add(TreeView control, string key, string text)
|
||||
{
|
||||
TreeNode rv = null;
|
||||
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
rv = control.Nodes.Add(key, text);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = control.Nodes.Add(key, text);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static TreeNode Add(TreeNode control, string key, string text)
|
||||
{
|
||||
TreeNode rv = null;
|
||||
|
||||
if (control.TreeView.InvokeRequired)
|
||||
{
|
||||
control.TreeView.Invoke(new MethodInvoker(() => {
|
||||
rv = control.Nodes.Add(key, text);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = control.Nodes.Add(key, text);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static TreeNode Add(TreeView parentControl, TreeNodeCollection control, string key, string text, int imageIndex, int selectedImageIndex)
|
||||
{
|
||||
TreeNode rv = null;
|
||||
|
||||
if (parentControl.InvokeRequired)
|
||||
{
|
||||
parentControl.Invoke(new MethodInvoker(() => {
|
||||
rv = control.Add(key, text, imageIndex, selectedImageIndex);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = control.Add(key, text, imageIndex, selectedImageIndex);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static TreeNode Add(TreeNode control, string key, string text, int imageIndex, int selectedImageIndex)
|
||||
{
|
||||
TreeNode rv = null;
|
||||
|
||||
if (control.TreeView.InvokeRequired)
|
||||
{
|
||||
control.TreeView.Invoke(new MethodInvoker(() => {
|
||||
rv = control.Nodes.Add(key, text, imageIndex, selectedImageIndex);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = control.Nodes.Add(key, text, imageIndex, selectedImageIndex);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static TreeNode Add(TreeView control, string key, string text, int imageIndex, int selectedImageIndex)
|
||||
{
|
||||
TreeNode rv = null;
|
||||
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
rv = control.Nodes.Add(key, text, imageIndex, selectedImageIndex);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = control.Nodes.Add(key, text, imageIndex, selectedImageIndex);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static void Add(TreeView parentControl, ImageList control, Image value)
|
||||
{
|
||||
if (parentControl.InvokeRequired)
|
||||
{
|
||||
parentControl.Invoke(new MethodInvoker(() => {
|
||||
control.Images.Add(value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Images.Add(value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void Add(Control parentControl, ImageList control, string key, Image value)
|
||||
{
|
||||
if (parentControl.InvokeRequired)
|
||||
{
|
||||
parentControl.Invoke(new MethodInvoker(() => {
|
||||
control.Images.Add(key, value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Images.Add(key, value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void AddLine(RichTextBox control, string text)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Text += text + Environment.NewLine;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Text += text + Environment.NewLine;
|
||||
}
|
||||
}
|
||||
|
||||
public static void Clear(ListBox control)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Items.Clear();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Items.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Clear(ComboBox control)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Items.Clear();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Items.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Clear(TreeView parentControl, ImageList control)
|
||||
{
|
||||
if (parentControl.InvokeRequired)
|
||||
{
|
||||
parentControl.Invoke(new MethodInvoker(() => {
|
||||
control.Images.Clear();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Images.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Clear(FlowLayoutPanel control)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Controls.Clear();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Controls.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Clear(TreeView control)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Nodes.Clear();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Nodes.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Clear(Label control) => SetText(control, string.Empty);
|
||||
|
||||
public static void Clear(PictureBox control)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Image = null;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Image = null;
|
||||
}
|
||||
}
|
||||
|
||||
public static void Clear(DataGridView control)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Rows.Clear();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Rows.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public static void Expand(TreeNode control)
|
||||
{
|
||||
if (control.TreeView.InvokeRequired)
|
||||
{
|
||||
control.TreeView.Invoke(new MethodInvoker(() => {
|
||||
control.Expand();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Expand();
|
||||
}
|
||||
}
|
||||
|
||||
public static List<T> FindChildControl<T>(Control control) where T : Control
|
||||
{
|
||||
List<T> rs = new List<T>();
|
||||
|
||||
foreach (Control item in control.Controls)
|
||||
{
|
||||
var ctr = item as T;
|
||||
if (ctr == null)
|
||||
{
|
||||
rs.AddRange(FindChildControl<T>(item));
|
||||
}
|
||||
else
|
||||
{
|
||||
rs.Add(ctr);
|
||||
}
|
||||
}
|
||||
|
||||
return rs;
|
||||
}
|
||||
|
||||
public static string GetSelectedValue(ListBox sender)
|
||||
{
|
||||
string rv = string.Empty;
|
||||
|
||||
if (sender.InvokeRequired)
|
||||
{
|
||||
sender.Invoke(new MethodInvoker(() => {
|
||||
rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString();
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static string GetText(Control control, bool doTrim = true)
|
||||
{
|
||||
string rv = string.Empty;
|
||||
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
rv = (doTrim ? control.Text?.Trim() : control.Text);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = (doTrim ? control.Text?.Trim() : control.Text);
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static int GetValue(NumericUpDown sender)
|
||||
{
|
||||
int rv = 0;
|
||||
|
||||
if (sender.InvokeRequired)
|
||||
{
|
||||
sender.Invoke(new MethodInvoker(() => {
|
||||
rv = (int)sender.Value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = (int)sender.Value;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static bool IsChild(TreeNode dragNode, TreeNode dropNode)
|
||||
{
|
||||
TreeNode tn = dropNode;
|
||||
while (true)
|
||||
{
|
||||
if (tn.Parent == null)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (tn.Equals(dragNode))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
tn = tn.Parent;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void SetChecked(ToolStripMenuItem control, bool value)
|
||||
{
|
||||
if (control.GetCurrentParent().InvokeRequired)
|
||||
{
|
||||
control.GetCurrentParent().Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Checked = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Checked = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetClientHeight(Control control, int value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.ClientSize = new Size(control.ClientSize.Width, value);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.ClientSize = new Size(control.ClientSize.Width, value);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetClientSize(Control control, int width, int height) => SetClientSize(control, new Size(width, height));
|
||||
|
||||
public static void SetClientSize(Control control, Size value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.ClientSize = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.ClientSize = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetClientWidth(Control control, int value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.ClientSize = new Size(value, control.ClientSize.Height);
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.ClientSize = new Size(value, control.ClientSize.Height);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetEnable(Control control, bool value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Enabled = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Enabled = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetEnable(ToolStripMenuItem control, bool value)
|
||||
{
|
||||
if (control.GetCurrentParent() == null)
|
||||
{
|
||||
control.Enabled = value;
|
||||
return;
|
||||
}
|
||||
|
||||
if (control.GetCurrentParent().InvokeRequired)
|
||||
{
|
||||
control.GetCurrentParent().Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Enabled = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Enabled = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetFocus(Control control)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Focus();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetHeight(Control control, int value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Height = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Height = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetLocation(Control control, Point value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Location = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Location = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetSize(Control control, int width, int height) => SetSize(control, new Size(width, height));
|
||||
|
||||
public static void SetSize(Control control, Size value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Size = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Size = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetText(Control control, string text)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Text = text;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Text = text;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetTopMost(Form control, bool value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.TopMost = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.TopMost = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetValue(Control control, string value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Text = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Text = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetValue(ComboBox control, int value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.SelectedIndex = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.SelectedIndex = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetValue(PictureBox control, Image value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() =>
|
||||
{
|
||||
control.Image = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Image = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static string GetValue(ListBox sender)
|
||||
{
|
||||
string rv = string.Empty;
|
||||
|
||||
if (sender.InvokeRequired)
|
||||
{
|
||||
sender.Invoke(new MethodInvoker(() => {
|
||||
rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString();
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = (sender.SelectedItem == null) ? string.Empty : sender.SelectedItem.ToString();
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static int GetValue(ComboBox sender)
|
||||
{
|
||||
int rv = -1;
|
||||
|
||||
if (sender.InvokeRequired)
|
||||
{
|
||||
sender.Invoke(new MethodInvoker(() => {
|
||||
rv = sender.SelectedIndex;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
rv = sender.SelectedIndex;
|
||||
}
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
||||
public static void SetVisible(Control control, bool value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Visible = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Visible = value;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetVisible(Form control, bool value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
if (value)
|
||||
{
|
||||
//control.ShowInTaskbar = value;
|
||||
//control.Opacity = 100;
|
||||
control.Visible = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Visible = value;
|
||||
//control.ShowInTaskbar = value;
|
||||
//control.Opacity = 0;
|
||||
}
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (value)
|
||||
{
|
||||
//control.ShowInTaskbar = value;
|
||||
//control.Opacity = 100;
|
||||
control.Visible = value;
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Visible = value;
|
||||
//control.ShowInTaskbar = value;
|
||||
//control.Opacity = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetWidth(Control control, int value)
|
||||
{
|
||||
if (control.InvokeRequired)
|
||||
{
|
||||
control.Invoke(new MethodInvoker(() => {
|
||||
control.Width = value;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
control.Width = value;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
186
RyzStudio/Windows/ThemedForms/Button/TButton.cs
Normal file
@ -0,0 +1,186 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
using RyzStudio.Windows.Forms;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public partial class TButton : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
public class ButtonStyle
|
||||
{
|
||||
public Color BackColour { get; set; } = Color.Transparent;
|
||||
public Color PenColour { get; set; } = Color.Transparent;
|
||||
public Image ForeImage { get; set; } = null;
|
||||
}
|
||||
|
||||
public enum ButtonState
|
||||
{
|
||||
Idle = 0,
|
||||
Hover,
|
||||
Down
|
||||
}
|
||||
|
||||
protected ButtonState controlState = ButtonState.Idle;
|
||||
protected bool isSelected = false;
|
||||
|
||||
public TButton()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Margin = new Padding(10, 0, 0, 10);
|
||||
this.Name = "Button";
|
||||
|
||||
label1.ImageAlign = ContentAlignment.MiddleCenter;
|
||||
label1.Click += label1_Click;
|
||||
label1.MouseClick += label1_MouseClick;
|
||||
label1.MouseEnter += delegate { this.VisualState = ButtonState.Hover; };
|
||||
label1.MouseLeave += delegate { this.VisualState = ButtonState.Idle; };
|
||||
label1.MouseDown += delegate { this.VisualState = ButtonState.Down; };
|
||||
label1.MouseUp += delegate { this.VisualState = ButtonState.Idle; };
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
this.Margin = new Padding(10, 0, 10, 10);
|
||||
|
||||
this.StyleDefault = new ButtonStyle()
|
||||
{
|
||||
BackColour = Color.White,
|
||||
PenColour = Color.Black,
|
||||
ForeImage = this.DefaultImage
|
||||
};
|
||||
this.StyleDown = new ButtonStyle()
|
||||
{
|
||||
BackColour = Color.FromArgb(60, 53, 148),
|
||||
PenColour = Color.White,
|
||||
ForeImage = this.DownImage
|
||||
};
|
||||
this.StyleOver = new ButtonStyle()
|
||||
{
|
||||
BackColour = Color.FromArgb(108, 101, 196),
|
||||
PenColour = Color.White,
|
||||
ForeImage = this.OverImage
|
||||
};
|
||||
this.StyleSelected = new ButtonStyle()
|
||||
{
|
||||
BackColour = Color.FromArgb(51, 51, 51),
|
||||
PenColour = Color.White,
|
||||
ForeImage = this.OverImage
|
||||
};
|
||||
|
||||
this.VisualState = ButtonState.Idle;
|
||||
}
|
||||
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get => base.Margin; set => base.Margin = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Padding { get => base.Padding; set => base.Padding = value; }
|
||||
|
||||
|
||||
protected ButtonState VisualState
|
||||
{
|
||||
get { return controlState; }
|
||||
set
|
||||
{
|
||||
switch (value)
|
||||
{
|
||||
case ButtonState.Idle:
|
||||
if (this.VisualState == ButtonState.Down)
|
||||
{
|
||||
updateButton(StyleOver);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.IsSelected)
|
||||
{
|
||||
updateButton(StyleSelected);
|
||||
}
|
||||
else
|
||||
{
|
||||
updateButton(StyleDefault);
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
case ButtonState.Hover:
|
||||
updateButton(StyleOver);
|
||||
break;
|
||||
case ButtonState.Down:
|
||||
updateButton(StyleDown);
|
||||
break;
|
||||
default:
|
||||
if (this.IsSelected)
|
||||
{
|
||||
updateButton(StyleSelected);
|
||||
}
|
||||
else
|
||||
{
|
||||
updateButton(StyleDefault);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
controlState = value;
|
||||
}
|
||||
}
|
||||
|
||||
protected void updateButton(ButtonStyle style)
|
||||
{
|
||||
label1.ForeColor = style.PenColour;
|
||||
label1.BackColor = style.BackColour;
|
||||
label1.Image = style.ForeImage;
|
||||
}
|
||||
|
||||
[Browsable(true)]
|
||||
[Category("Appearance")]
|
||||
public string LabelText { get => ThreadControl.GetText(label1); set => ThreadControl.SetText(label1, value); }
|
||||
|
||||
[Browsable(true)]
|
||||
[Category("Appearance")]
|
||||
public Image OverImage { get; set; } = null;
|
||||
|
||||
[Browsable(true)]
|
||||
[Category("Appearance")]
|
||||
public Image DownImage { get; set; } = null;
|
||||
|
||||
[Browsable(true)]
|
||||
[Category("Appearance")]
|
||||
public Image DefaultImage { get; set; } = null;
|
||||
|
||||
public bool IsSelected
|
||||
{
|
||||
get => isSelected;
|
||||
set
|
||||
{
|
||||
isSelected = value;
|
||||
|
||||
this.VisualState = this.VisualState;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected ButtonStyle StyleOver { get; set; } = new ButtonStyle();
|
||||
|
||||
protected ButtonStyle StyleDown { get; set; } = new ButtonStyle();
|
||||
|
||||
protected ButtonStyle StyleDefault { get; set; } = new ButtonStyle();
|
||||
|
||||
protected ButtonStyle StyleSelected { get; set; } = new ButtonStyle();
|
||||
|
||||
|
||||
private void label1_MouseClick(object sender, MouseEventArgs e) => this.OnMouseClick(e);
|
||||
|
||||
private void label1_Click(object sender, EventArgs e) => this.OnClick(e);
|
||||
|
||||
|
||||
public void PerformClick() => this.OnClick(null);
|
||||
|
||||
}
|
||||
}
|
62
RyzStudio/Windows/ThemedForms/Button/TButton.designer.cs
generated
Normal file
@ -0,0 +1,62 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TButton
|
||||
{
|
||||
/// <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.label1 = new System.Windows.Forms.Label();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.label1.Location = new System.Drawing.Point(4, 4);
|
||||
this.label1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(142, 30);
|
||||
this.label1.TabIndex = 0;
|
||||
this.label1.Text = "label1";
|
||||
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
|
||||
//
|
||||
// TButton
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.label1);
|
||||
this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
|
||||
this.Name = "TButton";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(149, 37);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.Label label1;
|
||||
}
|
||||
}
|
60
RyzStudio/Windows/ThemedForms/Button/TButton.resx
Normal file
@ -0,0 +1,60 @@
|
||||
<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>
|
28
RyzStudio/Windows/ThemedForms/Button/TMenuButton.cs
Normal file
@ -0,0 +1,28 @@
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public class TMenuButton : TButton
|
||||
{
|
||||
|
||||
|
||||
public TMenuButton()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void OnMouseClick(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseClick(e);
|
||||
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
if (this.ContextMenuStrip != null)
|
||||
{
|
||||
this.ContextMenuStrip.Show(this, e.Location);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
52
RyzStudio/Windows/ThemedForms/PickerBox/TNumericPickerBox.cs
Normal file
@ -0,0 +1,52 @@
|
||||
using RyzStudio.Windows.Forms;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public class TNumericPickerBox : TPickerBox
|
||||
{
|
||||
protected int minimumValue = 0;
|
||||
protected int maximumValue = 50;
|
||||
|
||||
|
||||
public TNumericPickerBox() : base()
|
||||
{
|
||||
this.ComboBox.MaxDropDownItems = 10;
|
||||
|
||||
this.Clear();
|
||||
}
|
||||
|
||||
|
||||
public ComboBox InnerControl { get => this.ComboBox; }
|
||||
|
||||
public int Value
|
||||
{
|
||||
get => (ThreadControl.GetValue(this.ComboBox) + minimumValue);
|
||||
set => ThreadControl.SetValue(this.ComboBox, (value - minimumValue));
|
||||
}
|
||||
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
ThreadControl.Clear(this.ComboBox);
|
||||
ThreadControl.Add(this.ComboBox, "0");
|
||||
ThreadControl.SetValue(this.ComboBox, 0);
|
||||
}
|
||||
|
||||
public void Clear(int min, int max, int value)
|
||||
{
|
||||
minimumValue = min;
|
||||
maximumValue = max;
|
||||
|
||||
ThreadControl.Clear(this.ComboBox);
|
||||
|
||||
for (int i=min; i< max; i++)
|
||||
{
|
||||
ThreadControl.Add(this.ComboBox, i.ToString());
|
||||
}
|
||||
|
||||
this.Value = value;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
98
RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.cs
Normal file
@ -0,0 +1,98 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
using RyzStudio.Drawing;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public partial class TPickerBox : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
protected readonly Padding textboxPadding = new Padding(6, 2, 4, 2);
|
||||
|
||||
public TPickerBox() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Font = new Font(this.Font, FontStyle.Regular);
|
||||
this.Margin = new Padding(10, 4, 10, 4);
|
||||
|
||||
comboBox1.Font = this.Font;
|
||||
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboBox1.PreviewKeyDown += textBox_PreviewKeyDown;
|
||||
}
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Height = comboBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom);
|
||||
}
|
||||
|
||||
protected override void OnGotFocus(EventArgs e)
|
||||
{
|
||||
base.OnGotFocus(e);
|
||||
|
||||
comboBox1.Focus();
|
||||
}
|
||||
|
||||
protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Enter:
|
||||
if (this.SubmitButton != null)
|
||||
{
|
||||
this.SubmitButton.PerformClick();
|
||||
}
|
||||
|
||||
break;
|
||||
case Keys.Escape:
|
||||
close();
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public System.Windows.Forms.ComboBox ComboBox { get => comboBox1; set => comboBox1 = value; }
|
||||
|
||||
//[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
//[Category("Appearance")]
|
||||
//public new string Text
|
||||
//{
|
||||
// get => textBox1.Text;
|
||||
// set
|
||||
// {
|
||||
// textBox1.Text = value;
|
||||
// textBox1.SelectionStart = textBox1.Text.Length;
|
||||
// }
|
||||
//}
|
||||
|
||||
//[Browsable(true)]
|
||||
//[Category("Appearance")]
|
||||
//public ComboBox.ObjectCollection Items { get => comboBox1.Items; set => comboBox1.Items = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public TButton SubmitButton { get; set; } = null;
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get => base.Margin; set => base.Margin = value; }
|
||||
|
||||
protected override void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
59
RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.designer.cs
generated
Normal file
@ -0,0 +1,59 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TPickerBox
|
||||
{
|
||||
/// <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.comboBox1 = new System.Windows.Forms.ComboBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// comboBox1
|
||||
//
|
||||
this.comboBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.comboBox1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.comboBox1.FormattingEnabled = true;
|
||||
this.comboBox1.Location = new System.Drawing.Point(4, 4);
|
||||
this.comboBox1.Name = "comboBox1";
|
||||
this.comboBox1.Size = new System.Drawing.Size(121, 21);
|
||||
this.comboBox1.TabIndex = 0;
|
||||
//
|
||||
// PickerBox
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.Controls.Add(this.comboBox1);
|
||||
this.Name = "PickerBox";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(128, 32);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ComboBox comboBox1;
|
||||
}
|
||||
}
|
120
RyzStudio/Windows/ThemedForms/PickerBox/TPickerBox.resx
Normal 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>
|
27
RyzStudio/Windows/ThemedForms/PickerBox/TYesNoPickerBox.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using RyzStudio.Windows.Forms;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public class TYesNoPickerBox : TPickerBox
|
||||
{
|
||||
|
||||
public TYesNoPickerBox() : base()
|
||||
{
|
||||
this.ComboBox.Items.Clear();
|
||||
|
||||
this.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
|
||||
if (this.ComboBox.Items.Count > 0) this.ComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
|
||||
public ComboBox InnerControl { get => this.ComboBox; }
|
||||
|
||||
public bool Value
|
||||
{
|
||||
get => (ThreadControl.GetValue(this.ComboBox) == 1);
|
||||
set => ThreadControl.SetValue(this.ComboBox, (value ? 1 : 0));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
47
RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs
generated
Normal file
@ -0,0 +1,47 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TDialogForm
|
||||
{
|
||||
/// <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 Windows Form 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.SuspendLayout();
|
||||
//
|
||||
// TDialogForm
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(249)))), ((int)(((byte)(250)))));
|
||||
this.ClientSize = new System.Drawing.Size(340, 600);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.MinimumSize = new System.Drawing.Size(40, 0);
|
||||
this.Name = "TDialogForm";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
117
RyzStudio/Windows/ThemedForms/TDialogForm.cs
Normal file
@ -0,0 +1,117 @@
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public partial class TDialogForm : Form
|
||||
{
|
||||
public TDialogForm()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
this.BackColor = Color.FromArgb(254, 254, 254);
|
||||
this.FormBorderStyle = FormBorderStyle.Sizable;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Padding = new Padding(5, 10, 5, 10);
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
|
||||
this.TopMost = true;
|
||||
this.SizeGripStyle = SizeGripStyle.Hide;
|
||||
this.AutoScaleMode = AutoScaleMode.None;
|
||||
}
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Color BackColor { get => base.BackColor; set => base.BackColor = value; }
|
||||
|
||||
[Browsable(false)]
|
||||
public override Image BackgroundImage { get => base.BackgroundImage; set => base.BackgroundImage = value; }
|
||||
|
||||
[Browsable(false)]
|
||||
public override ImageLayout BackgroundImageLayout { get => base.BackgroundImageLayout; set => base.BackgroundImageLayout = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; }
|
||||
|
||||
//[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
//public override Size MaximumSize { get => base.MaximumSize; set => base.MaximumSize = value; }
|
||||
|
||||
//[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
//public override Size MinimumSize { get => base.MinimumSize; set => base.MinimumSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Padding { get => base.Padding; set => base.Padding = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool ShowIcon { get => base.ShowIcon; set => base.ShowIcon = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool ShowInTaskbar { get => base.ShowInTaskbar; set => base.ShowInTaskbar = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new FormStartPosition StartPosition { get => base.StartPosition; set => base.StartPosition = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool TopMost { get => base.TopMost; set => base.TopMost = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override Cursor Cursor { get => base.Cursor; set => base.Cursor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override RightToLeft RightToLeft { get => base.RightToLeft; set => base.RightToLeft = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool RightToLeftLayout { get => base.RightToLeftLayout; set => base.RightToLeftLayout = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool UseWaitCursor { get => base.UseWaitCursor; set => base.UseWaitCursor = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new ImeMode ImeMode { get => base.ImeMode; set => base.ImeMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public override bool AutoSize { get => base.AutoSize; set => base.AutoSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new AutoSizeMode AutoSizeMode { get => base.AutoSizeMode; set => base.AutoSizeMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool MinimizeBox { get => base.MinimizeBox; set => base.MinimizeBox = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool MaximizeBox { get => base.MaximizeBox; set => base.MaximizeBox = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool ControlBox { get => base.ControlBox; set => base.ControlBox = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool HelpButton { get => base.HelpButton; set => base.HelpButton = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new MenuStrip MainMenuStrip { get => base.MainMenuStrip; set => base.MainMenuStrip = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new SizeGripStyle SizeGripStyle { get => base.SizeGripStyle; set => base.SizeGripStyle = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new AutoScaleMode AutoScaleMode { get => base.AutoScaleMode; set => base.AutoScaleMode = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new bool AutoScroll { get => base.AutoScroll; set => base.AutoScroll = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMargin { get => base.AutoScrollMargin; set => base.AutoScrollMargin = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Size AutoScrollMinSize { get => base.AutoScrollMinSize; set => base.AutoScrollMinSize = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Point AutoScrollOffset { get => base.AutoScrollOffset; set => base.AutoScrollOffset = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new FormWindowState WindowState { get => base.WindowState; set => base.WindowState = value; }
|
||||
|
||||
}
|
||||
}
|
60
RyzStudio/Windows/ThemedForms/TDialogForm.resx
Normal file
@ -0,0 +1,60 @@
|
||||
<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>
|
385
RyzStudio/Windows/ThemedForms/TListBox.cs
Normal file
@ -0,0 +1,385 @@
|
||||
using RyzStudio.Drawing;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using UIResource = RandomFileRunner.UIResource;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public partial class TListBox : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
protected readonly Padding textboxPadding = new Padding(6, 2, 4, 2);
|
||||
|
||||
public TListBox() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Font = new Font(this.Font, FontStyle.Regular);
|
||||
this.Margin = new Padding(10, 4, 10, 4);
|
||||
|
||||
listBox1.Font = this.Font;
|
||||
listBox1.BorderStyle = BorderStyle.None;
|
||||
}
|
||||
|
||||
//protected override void OnResize(EventArgs e)
|
||||
//{
|
||||
// base.OnResize(e);
|
||||
|
||||
// //int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
// //this.Height = comboBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom);
|
||||
//}
|
||||
|
||||
protected override void OnGotFocus(EventArgs e)
|
||||
{
|
||||
base.OnGotFocus(e);
|
||||
|
||||
listBox1.Focus();
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public System.Windows.Forms.ListBox ListBox { get => listBox1; set => listBox1 = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public TButton SubmitButton { get; set; } = null;
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get => base.Margin; set => base.Margin = value; }
|
||||
|
||||
[Browsable(false)]
|
||||
public event EventHandler OnAdd;
|
||||
|
||||
[Browsable(false)]
|
||||
public event EventHandler OnEdit;
|
||||
|
||||
protected override void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Add
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void imageBox1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.OnAdd?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Edit
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void tImageBox1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
editToolStripMenuItem_Click(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Menu
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void imageBox5_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
contextMenuStrip1.Show(Cursor.Position);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move up
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void imageBox3_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e != null)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
moveUpToolStripMenuItem_Click(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move down
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void imageBox4_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e != null)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
moveDownToolStripMenuItem_Click(sender, e);
|
||||
}
|
||||
|
||||
private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
editToolStripMenuItem_Click(sender, e);
|
||||
}
|
||||
|
||||
private void listBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Enter:
|
||||
if (this.SubmitButton != null)
|
||||
{
|
||||
this.SubmitButton.PerformClick();
|
||||
}
|
||||
|
||||
break;
|
||||
case Keys.Escape:
|
||||
close();
|
||||
break;
|
||||
case Keys.Up:
|
||||
if (e.Alt)
|
||||
{
|
||||
imageBox3_MouseClick(sender, null);
|
||||
}
|
||||
|
||||
break;
|
||||
case Keys.Down:
|
||||
if (e.Alt)
|
||||
{
|
||||
imageBox4_MouseClick(sender, null);
|
||||
}
|
||||
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
#region context menu
|
||||
|
||||
/// <summary>
|
||||
/// Add
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void addItemToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
this.OnAdd?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Copy
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void toolStripMenuItem2_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox1.SelectedIndex <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (listBox1.SelectedItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
object item = listBox1.SelectedItem;
|
||||
|
||||
listBox1.Items.Add(item);
|
||||
listBox1.SelectedIndex = (listBox1.Items.Count- 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Edit
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void editToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox1.SelectedIndex < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (listBox1.SelectedItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.OnEdit?.Invoke(sender, e);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void removeToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox1.SelectedIndex < 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int pos = listBox1.SelectedIndex;
|
||||
|
||||
listBox1.Items.RemoveAt(pos);
|
||||
|
||||
if (pos > (listBox1.Items.Count - 1))
|
||||
{
|
||||
pos = (listBox1.Items.Count - 1);
|
||||
}
|
||||
|
||||
listBox1.SelectedIndex = pos;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove all
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void toolStripMenuItem1_Click(object sender, EventArgs e)
|
||||
{
|
||||
listBox1.Items.Clear();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move to top
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void moveToTopToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox1.SelectedIndex <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (listBox1.SelectedItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
object item = listBox1.SelectedItem;
|
||||
int pos = listBox1.SelectedIndex;
|
||||
|
||||
listBox1.Items.RemoveAt(pos);
|
||||
listBox1.Items.Insert(0, item);
|
||||
|
||||
listBox1.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move up
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void moveUpToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox1.SelectedIndex <= 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (listBox1.SelectedItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
object item = listBox1.SelectedItem;
|
||||
int pos = listBox1.SelectedIndex;
|
||||
|
||||
listBox1.Items.RemoveAt(pos);
|
||||
listBox1.Items.Insert((pos - 1), item);
|
||||
|
||||
listBox1.SelectedIndex = (pos - 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move down
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void moveDownToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (listBox1.SelectedIndex >= (listBox1.Items.Count - 1))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (listBox1.SelectedItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
object item = listBox1.SelectedItem;
|
||||
int pos = listBox1.SelectedIndex;
|
||||
|
||||
listBox1.Items.RemoveAt(pos);
|
||||
listBox1.Items.Insert((pos + 1), item);
|
||||
|
||||
listBox1.SelectedIndex = (pos + 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Move to bottom
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void moveToBottomToolStripMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
int n = (listBox1.Items.Count - 1);
|
||||
|
||||
if (listBox1.SelectedIndex >= (listBox1.Items.Count - 1))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (listBox1.SelectedItem == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
object item = listBox1.SelectedItem;
|
||||
int pos = listBox1.SelectedIndex;
|
||||
|
||||
listBox1.Items.RemoveAt(pos);
|
||||
listBox1.Items.Insert(n, item);
|
||||
|
||||
listBox1.SelectedIndex = n;
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
358
RyzStudio/Windows/ThemedForms/TListBox.designer.cs
generated
Normal file
@ -0,0 +1,358 @@
|
||||
using System.Drawing;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TListBox
|
||||
{
|
||||
/// <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.listBox1 = new System.Windows.Forms.ListBox();
|
||||
this.imageBox5 = new RyzStudio.Windows.Forms.TImageBox();
|
||||
this.imageBox4 = new RyzStudio.Windows.Forms.TImageBox();
|
||||
this.imageBox3 = new RyzStudio.Windows.Forms.TImageBox();
|
||||
this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.addItemToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.moveToTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.moveToBottomToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tImageBox1 = new RyzStudio.Windows.Forms.TImageBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox5)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit();
|
||||
this.contextMenuStrip1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tImageBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// listBox1
|
||||
//
|
||||
this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.listBox1.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.listBox1.FormattingEnabled = true;
|
||||
this.listBox1.ItemHeight = 15;
|
||||
this.listBox1.Location = new System.Drawing.Point(4, 4);
|
||||
this.listBox1.Name = "listBox1";
|
||||
this.listBox1.Size = new System.Drawing.Size(98, 214);
|
||||
this.listBox1.TabIndex = 0;
|
||||
this.listBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBox1_MouseDoubleClick);
|
||||
this.listBox1.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.listBox1_PreviewKeyDown);
|
||||
//
|
||||
// imageBox5
|
||||
//
|
||||
this.imageBox5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.imageBox5.BackColor = System.Drawing.Color.Transparent;
|
||||
this.imageBox5.BackColorHover = System.Drawing.Color.Transparent;
|
||||
this.imageBox5.BackColorNormal = System.Drawing.Color.Transparent;
|
||||
this.imageBox5.BackColorSelected = System.Drawing.Color.Transparent;
|
||||
this.imageBox5.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.imageBox5.ErrorImage = null;
|
||||
this.imageBox5.HoverImage = global::RandomFileRunner.UIResource.circle_menu2;
|
||||
this.imageBox5.Image = global::RandomFileRunner.UIResource.circle_menu;
|
||||
this.imageBox5.ImageHover = global::RandomFileRunner.UIResource.circle_menu2;
|
||||
this.imageBox5.ImageNormal = global::RandomFileRunner.UIResource.circle_menu;
|
||||
this.imageBox5.ImageSelected = null;
|
||||
this.imageBox5.InitialImage = null;
|
||||
this.imageBox5.IsSelected = false;
|
||||
this.imageBox5.Location = new System.Drawing.Point(106, 48);
|
||||
this.imageBox5.Name = "imageBox5";
|
||||
this.imageBox5.NormalImage = global::RandomFileRunner.UIResource.circle_menu;
|
||||
this.imageBox5.SelectedImage = null;
|
||||
this.imageBox5.Size = new System.Drawing.Size(18, 18);
|
||||
this.imageBox5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.imageBox5.TabIndex = 6;
|
||||
this.imageBox5.TabStop = false;
|
||||
this.toolTip1.SetToolTip(this.imageBox5, "Menu");
|
||||
this.imageBox5.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox5_MouseClick);
|
||||
this.imageBox5.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox5_MouseClick);
|
||||
//
|
||||
// imageBox4
|
||||
//
|
||||
this.imageBox4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.imageBox4.BackColor = System.Drawing.Color.Transparent;
|
||||
this.imageBox4.BackColorHover = System.Drawing.Color.Transparent;
|
||||
this.imageBox4.BackColorNormal = System.Drawing.Color.Transparent;
|
||||
this.imageBox4.BackColorSelected = System.Drawing.Color.Transparent;
|
||||
this.imageBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.imageBox4.ErrorImage = null;
|
||||
this.imageBox4.HoverImage = global::RandomFileRunner.UIResource.arrow_down2;
|
||||
this.imageBox4.Image = global::RandomFileRunner.UIResource.arrow_down;
|
||||
this.imageBox4.ImageHover = global::RandomFileRunner.UIResource.arrow_down2;
|
||||
this.imageBox4.ImageNormal = global::RandomFileRunner.UIResource.arrow_down;
|
||||
this.imageBox4.ImageSelected = null;
|
||||
this.imageBox4.InitialImage = null;
|
||||
this.imageBox4.IsSelected = false;
|
||||
this.imageBox4.Location = new System.Drawing.Point(106, 92);
|
||||
this.imageBox4.Name = "imageBox4";
|
||||
this.imageBox4.NormalImage = global::RandomFileRunner.UIResource.arrow_down;
|
||||
this.imageBox4.SelectedImage = null;
|
||||
this.imageBox4.Size = new System.Drawing.Size(18, 18);
|
||||
this.imageBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.imageBox4.TabIndex = 5;
|
||||
this.imageBox4.TabStop = false;
|
||||
this.toolTip1.SetToolTip(this.imageBox4, "Move Down");
|
||||
this.imageBox4.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox4_MouseClick);
|
||||
this.imageBox4.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox4_MouseClick);
|
||||
//
|
||||
// imageBox3
|
||||
//
|
||||
this.imageBox3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.imageBox3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.imageBox3.BackColorHover = System.Drawing.Color.Transparent;
|
||||
this.imageBox3.BackColorNormal = System.Drawing.Color.Transparent;
|
||||
this.imageBox3.BackColorSelected = System.Drawing.Color.Transparent;
|
||||
this.imageBox3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.imageBox3.ErrorImage = null;
|
||||
this.imageBox3.HoverImage = global::RandomFileRunner.UIResource.arrow_up2;
|
||||
this.imageBox3.Image = global::RandomFileRunner.UIResource.arrow_up;
|
||||
this.imageBox3.ImageHover = global::RandomFileRunner.UIResource.arrow_up2;
|
||||
this.imageBox3.ImageNormal = global::RandomFileRunner.UIResource.arrow_up;
|
||||
this.imageBox3.ImageSelected = null;
|
||||
this.imageBox3.InitialImage = null;
|
||||
this.imageBox3.IsSelected = false;
|
||||
this.imageBox3.Location = new System.Drawing.Point(106, 72);
|
||||
this.imageBox3.Name = "imageBox3";
|
||||
this.imageBox3.NormalImage = global::RandomFileRunner.UIResource.arrow_up;
|
||||
this.imageBox3.SelectedImage = null;
|
||||
this.imageBox3.Size = new System.Drawing.Size(18, 18);
|
||||
this.imageBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.imageBox3.TabIndex = 4;
|
||||
this.imageBox3.TabStop = false;
|
||||
this.toolTip1.SetToolTip(this.imageBox3, "Move Up");
|
||||
this.imageBox3.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox3_MouseClick);
|
||||
this.imageBox3.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox3_MouseClick);
|
||||
//
|
||||
// imageBox1
|
||||
//
|
||||
this.imageBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.imageBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.imageBox1.BackColorHover = System.Drawing.Color.Transparent;
|
||||
this.imageBox1.BackColorNormal = System.Drawing.Color.Transparent;
|
||||
this.imageBox1.BackColorSelected = System.Drawing.Color.Transparent;
|
||||
this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.imageBox1.ErrorImage = null;
|
||||
this.imageBox1.HoverImage = global::RandomFileRunner.UIResource.plus2;
|
||||
this.imageBox1.Image = global::RandomFileRunner.UIResource.plus;
|
||||
this.imageBox1.ImageHover = global::RandomFileRunner.UIResource.plus2;
|
||||
this.imageBox1.ImageNormal = global::RandomFileRunner.UIResource.plus;
|
||||
this.imageBox1.ImageSelected = null;
|
||||
this.imageBox1.InitialImage = null;
|
||||
this.imageBox1.IsSelected = false;
|
||||
this.imageBox1.Location = new System.Drawing.Point(106, 4);
|
||||
this.imageBox1.Name = "imageBox1";
|
||||
this.imageBox1.NormalImage = global::RandomFileRunner.UIResource.plus;
|
||||
this.imageBox1.SelectedImage = null;
|
||||
this.imageBox1.Size = new System.Drawing.Size(18, 18);
|
||||
this.imageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.imageBox1.TabIndex = 2;
|
||||
this.imageBox1.TabStop = false;
|
||||
this.toolTip1.SetToolTip(this.imageBox1, "Add");
|
||||
this.imageBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.imageBox1_MouseClick);
|
||||
this.imageBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.imageBox1_MouseClick);
|
||||
//
|
||||
// contextMenuStrip1
|
||||
//
|
||||
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.addItemToolStripMenuItem,
|
||||
this.toolStripMenuItem2,
|
||||
this.toolStripSeparator3,
|
||||
this.editToolStripMenuItem,
|
||||
this.toolStripSeparator2,
|
||||
this.removeToolStripMenuItem,
|
||||
this.toolStripMenuItem1,
|
||||
this.toolStripSeparator1,
|
||||
this.moveToTopToolStripMenuItem,
|
||||
this.moveUpToolStripMenuItem,
|
||||
this.moveDownToolStripMenuItem,
|
||||
this.moveToBottomToolStripMenuItem});
|
||||
this.contextMenuStrip1.Name = "contextMenuStrip1";
|
||||
this.contextMenuStrip1.Size = new System.Drawing.Size(163, 220);
|
||||
//
|
||||
// addItemToolStripMenuItem
|
||||
//
|
||||
this.addItemToolStripMenuItem.Name = "addItemToolStripMenuItem";
|
||||
this.addItemToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.addItemToolStripMenuItem.Text = "&Add";
|
||||
this.addItemToolStripMenuItem.Click += new System.EventHandler(this.addItemToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripMenuItem2
|
||||
//
|
||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||
this.toolStripMenuItem2.Size = new System.Drawing.Size(162, 22);
|
||||
this.toolStripMenuItem2.Text = "&Copy";
|
||||
this.toolStripMenuItem2.Click += new System.EventHandler(this.toolStripMenuItem2_Click);
|
||||
//
|
||||
// toolStripSeparator3
|
||||
//
|
||||
this.toolStripSeparator3.Name = "toolStripSeparator3";
|
||||
this.toolStripSeparator3.Size = new System.Drawing.Size(159, 6);
|
||||
//
|
||||
// editToolStripMenuItem
|
||||
//
|
||||
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
|
||||
this.editToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.editToolStripMenuItem.Text = "&Edit";
|
||||
this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(159, 6);
|
||||
//
|
||||
// removeToolStripMenuItem
|
||||
//
|
||||
this.removeToolStripMenuItem.Name = "removeToolStripMenuItem";
|
||||
this.removeToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.removeToolStripMenuItem.Text = "&Remove";
|
||||
this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click);
|
||||
//
|
||||
// toolStripMenuItem1
|
||||
//
|
||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||
this.toolStripMenuItem1.Size = new System.Drawing.Size(162, 22);
|
||||
this.toolStripMenuItem1.Text = "Remove A&ll";
|
||||
this.toolStripMenuItem1.Click += new System.EventHandler(this.toolStripMenuItem1_Click);
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(159, 6);
|
||||
//
|
||||
// moveToTopToolStripMenuItem
|
||||
//
|
||||
this.moveToTopToolStripMenuItem.Name = "moveToTopToolStripMenuItem";
|
||||
this.moveToTopToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.moveToTopToolStripMenuItem.Text = "Move To &Top";
|
||||
this.moveToTopToolStripMenuItem.Click += new System.EventHandler(this.moveToTopToolStripMenuItem_Click);
|
||||
//
|
||||
// moveUpToolStripMenuItem
|
||||
//
|
||||
this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
|
||||
this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.moveUpToolStripMenuItem.Text = "Move &Up";
|
||||
this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click);
|
||||
//
|
||||
// moveDownToolStripMenuItem
|
||||
//
|
||||
this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
|
||||
this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.moveDownToolStripMenuItem.Text = "Move &Down";
|
||||
this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click);
|
||||
//
|
||||
// moveToBottomToolStripMenuItem
|
||||
//
|
||||
this.moveToBottomToolStripMenuItem.Name = "moveToBottomToolStripMenuItem";
|
||||
this.moveToBottomToolStripMenuItem.Size = new System.Drawing.Size(162, 22);
|
||||
this.moveToBottomToolStripMenuItem.Text = "Move To &Bottom";
|
||||
this.moveToBottomToolStripMenuItem.Click += new System.EventHandler(this.moveToBottomToolStripMenuItem_Click);
|
||||
//
|
||||
// tImageBox1
|
||||
//
|
||||
this.tImageBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tImageBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tImageBox1.BackColorHover = System.Drawing.Color.Transparent;
|
||||
this.tImageBox1.BackColorNormal = System.Drawing.Color.Transparent;
|
||||
this.tImageBox1.BackColorSelected = System.Drawing.Color.Transparent;
|
||||
this.tImageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.tImageBox1.ErrorImage = null;
|
||||
this.tImageBox1.HoverImage = global::RandomFileRunner.UIResource.edit2;
|
||||
this.tImageBox1.Image = global::RandomFileRunner.UIResource.edit;
|
||||
this.tImageBox1.ImageHover = global::RandomFileRunner.UIResource.edit2;
|
||||
this.tImageBox1.ImageNormal = global::RandomFileRunner.UIResource.edit;
|
||||
this.tImageBox1.ImageSelected = null;
|
||||
this.tImageBox1.InitialImage = null;
|
||||
this.tImageBox1.IsSelected = false;
|
||||
this.tImageBox1.Location = new System.Drawing.Point(106, 24);
|
||||
this.tImageBox1.Name = "tImageBox1";
|
||||
this.tImageBox1.NormalImage = global::RandomFileRunner.UIResource.edit;
|
||||
this.tImageBox1.SelectedImage = null;
|
||||
this.tImageBox1.Size = new System.Drawing.Size(18, 18);
|
||||
this.tImageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.tImageBox1.TabIndex = 7;
|
||||
this.tImageBox1.TabStop = false;
|
||||
this.toolTip1.SetToolTip(this.tImageBox1, "Edit");
|
||||
this.tImageBox1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.tImageBox1_MouseClick);
|
||||
this.tImageBox1.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.tImageBox1_MouseClick);
|
||||
//
|
||||
// TListBox
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.Controls.Add(this.tImageBox1);
|
||||
this.Controls.Add(this.imageBox5);
|
||||
this.Controls.Add(this.imageBox4);
|
||||
this.Controls.Add(this.imageBox3);
|
||||
this.Controls.Add(this.imageBox1);
|
||||
this.Controls.Add(this.listBox1);
|
||||
this.Name = "TListBox";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(128, 225);
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox5)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit();
|
||||
this.contextMenuStrip1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.tImageBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.ListBox listBox1;
|
||||
private Forms.TImageBox imageBox1;
|
||||
private Forms.TImageBox imageBox3;
|
||||
private Forms.TImageBox imageBox4;
|
||||
private Forms.TImageBox imageBox5;
|
||||
private System.Windows.Forms.ToolTip toolTip1;
|
||||
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
|
||||
private System.Windows.Forms.ToolStripMenuItem addItemToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private System.Windows.Forms.ToolStripMenuItem moveToTopToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem moveUpToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem moveDownToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem moveToBottomToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
|
||||
private Forms.TImageBox tImageBox1;
|
||||
}
|
||||
}
|
69
RyzStudio/Windows/ThemedForms/TListBox.resx
Normal file
@ -0,0 +1,69 @@
|
||||
<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="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="contextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>114, 17</value>
|
||||
</metadata>
|
||||
</root>
|
60
RyzStudio/Windows/ThemedForms/TMemoBox.cs
Normal file
@ -0,0 +1,60 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
using RyzStudio.Drawing;
|
||||
using RyzStudio.Windows.Forms;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public partial class TMemoBox : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
protected readonly Padding textboxPadding = new Padding(6, 6, 0, 6);
|
||||
|
||||
public TMemoBox() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Margin = new Padding(10, 6, 10, 6);
|
||||
}
|
||||
|
||||
//protected override void OnResize(EventArgs e)
|
||||
//{
|
||||
// base.OnResize(e);
|
||||
|
||||
// int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
// this.Height = textBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom);
|
||||
//}
|
||||
|
||||
protected override void OnGotFocus(EventArgs e)
|
||||
{
|
||||
base.OnGotFocus(e);
|
||||
|
||||
textBox1.Focus();
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public new string Text { get => ThreadControl.GetText(textBox1); set => ThreadControl.SetText(textBox1, value); }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get { return base.Margin; } set { base.Margin = value; } }
|
||||
|
||||
protected override void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
63
RyzStudio/Windows/ThemedForms/TMemoBox.designer.cs
generated
Normal file
@ -0,0 +1,63 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TMemoBox
|
||||
{
|
||||
/// <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.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.AcceptsReturn = true;
|
||||
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textBox1.HideSelection = false;
|
||||
this.textBox1.Location = new System.Drawing.Point(4, 4);
|
||||
this.textBox1.Multiline = true;
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.textBox1.Size = new System.Drawing.Size(121, 25);
|
||||
this.textBox1.TabIndex = 0;
|
||||
//
|
||||
// MemoBox
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Name = "MemoBox";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(128, 32);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
}
|
||||
}
|
99
RyzStudio/Windows/ThemedForms/TNumericBox.cs
Normal file
@ -0,0 +1,99 @@
|
||||
using RyzStudio.Drawing;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public partial class TNumericBox : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
protected readonly Padding textboxPadding = new Padding(4, 4, 4, 4);
|
||||
|
||||
|
||||
public TNumericBox() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Margin = new Padding(10, 6, 10, 6);
|
||||
this.Font = new Font(this.Font, FontStyle.Regular);
|
||||
|
||||
numericUpDown1.Font = this.Font;
|
||||
numericUpDown1.PreviewKeyDown += textBox_PreviewKeyDown;
|
||||
}
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Height = numericUpDown1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom);
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
protected override void OnGotFocus(EventArgs e)
|
||||
{
|
||||
base.OnGotFocus(e);
|
||||
|
||||
numericUpDown1.Focus();
|
||||
}
|
||||
|
||||
protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Enter:
|
||||
if (this.SubmitButton != null)
|
||||
{
|
||||
this.SubmitButton.PerformClick();
|
||||
}
|
||||
|
||||
break;
|
||||
case Keys.Escape:
|
||||
close();
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public System.Windows.Forms.NumericUpDown InnerControl { get => numericUpDown1; set => numericUpDown1 = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public int Value
|
||||
{
|
||||
get => (int)numericUpDown1.Value;
|
||||
set
|
||||
{
|
||||
numericUpDown1.Value = value;
|
||||
}
|
||||
}
|
||||
|
||||
//[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
//[Category("Appearance")]
|
||||
//public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public TButton SubmitButton { get; set; } = null;
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get { return base.Margin; } set { base.Margin = value; } }
|
||||
|
||||
protected override void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
60
RyzStudio/Windows/ThemedForms/TNumericBox.designer.cs
generated
Normal file
@ -0,0 +1,60 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TNumericBox
|
||||
{
|
||||
/// <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.numericUpDown1 = new System.Windows.Forms.NumericUpDown();
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// numericUpDown1
|
||||
//
|
||||
this.numericUpDown1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.numericUpDown1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.numericUpDown1.Location = new System.Drawing.Point(4, 4);
|
||||
this.numericUpDown1.Name = "numericUpDown1";
|
||||
this.numericUpDown1.Size = new System.Drawing.Size(121, 19);
|
||||
this.numericUpDown1.TabIndex = 0;
|
||||
//
|
||||
// TNumericBox
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.Controls.Add(this.numericUpDown1);
|
||||
this.Name = "TNumericBox";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(128, 32);
|
||||
((System.ComponentModel.ISupportInitialize)(this.numericUpDown1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.NumericUpDown numericUpDown1;
|
||||
}
|
||||
}
|
60
RyzStudio/Windows/ThemedForms/TNumericBox.resx
Normal file
@ -0,0 +1,60 @@
|
||||
<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>
|
50
RyzStudio/Windows/ThemedForms/TProgressBar.cs
Normal file
@ -0,0 +1,50 @@
|
||||
using RyzStudio.Drawing;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public partial class TProgressBar : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
protected readonly Padding textboxPadding = new Padding(2, 2, 2, 2);
|
||||
|
||||
|
||||
public TProgressBar() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Margin = new Padding(10, 6, 10, 6);
|
||||
this.Font = new Font(this.Font, FontStyle.Regular);
|
||||
|
||||
customProgressBar1.Font = this.Font;
|
||||
}
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public RyzStudio.Windows.Forms.TCustomProgressBar InnerControl { get => customProgressBar1; set => customProgressBar1 = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get => base.Margin; set => base.Margin = value; }
|
||||
|
||||
protected override void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
65
RyzStudio/Windows/ThemedForms/TProgressBar.designer.cs
generated
Normal file
@ -0,0 +1,65 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TProgressBar
|
||||
{
|
||||
/// <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.customProgressBar1 = new RyzStudio.Windows.Forms.TCustomProgressBar();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// customProgressBar1
|
||||
//
|
||||
this.customProgressBar1.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
this.customProgressBar1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
this.customProgressBar1.BarColour = System.Drawing.Color.FromArgb(((int)(((byte)(158)))), ((int)(((byte)(225)))), ((int)(((byte)(249)))));
|
||||
this.customProgressBar1.BarTextColour = System.Drawing.SystemColors.ControlText;
|
||||
this.customProgressBar1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.customProgressBar1.Location = new System.Drawing.Point(4, 4);
|
||||
this.customProgressBar1.Margin = new System.Windows.Forms.Padding(0);
|
||||
this.customProgressBar1.Maximum = 100;
|
||||
this.customProgressBar1.Minimum = 0;
|
||||
this.customProgressBar1.Name = "customProgressBar1";
|
||||
this.customProgressBar1.Size = new System.Drawing.Size(121, 25);
|
||||
this.customProgressBar1.TabIndex = 0;
|
||||
this.customProgressBar1.Value = 50;
|
||||
//
|
||||
// TProgressBar
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.Controls.Add(this.customProgressBar1);
|
||||
this.Name = "TProgressBar";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(128, 32);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private Forms.TCustomProgressBar customProgressBar1;
|
||||
}
|
||||
}
|
60
RyzStudio/Windows/ThemedForms/TProgressBar.resx
Normal file
@ -0,0 +1,60 @@
|
||||
<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>
|
106
RyzStudio/Windows/ThemedForms/TUserControl.cs
Normal file
@ -0,0 +1,106 @@
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using RyzStudio.Drawing;
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public partial class TUserControl : System.Windows.Forms.UserControl
|
||||
{
|
||||
public class ThemeStyle
|
||||
{
|
||||
public int BorderWidth;
|
||||
public int BorderRadius;
|
||||
public int BorderPadding;
|
||||
public Color BorderColour;
|
||||
public Color BackColour;
|
||||
public Color ForeColour;
|
||||
|
||||
public ThemeStyle(int borderWidth, int borderRadius, int borderPadding, Color borderColour, Color backColour)
|
||||
{
|
||||
this.BorderWidth = borderWidth;
|
||||
this.BorderRadius = borderRadius;
|
||||
this.BorderPadding = borderPadding;
|
||||
this.BorderColour = borderColour;
|
||||
this.BackColour = backColour;
|
||||
this.ForeColour = Color.Black;
|
||||
}
|
||||
|
||||
public ThemeStyle(int borderWidth, int borderRadius, int borderPadding, Color borderColour, Color backColour, Color foreColour)
|
||||
{
|
||||
this.BorderWidth = borderWidth;
|
||||
this.BorderRadius = borderRadius;
|
||||
this.BorderPadding = borderPadding;
|
||||
this.BorderColour = borderColour;
|
||||
this.BackColour = backColour;
|
||||
this.ForeColour = foreColour;
|
||||
}
|
||||
}
|
||||
|
||||
protected ThemeStyle styleActive = new ThemeStyle(1, 3, 2, Color.FromArgb(212, 212, 212), Color.White);
|
||||
|
||||
public TUserControl()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
this.BackColor = Color.Transparent;
|
||||
}
|
||||
|
||||
protected override void OnPaintBackground(PaintEventArgs e)
|
||||
{
|
||||
base.OnPaintBackground(e);
|
||||
|
||||
Graphics g = e.Graphics;
|
||||
//g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
|
||||
//g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
|
||||
//g.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
|
||||
//g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
|
||||
|
||||
updateBackground(g, styleActive);
|
||||
}
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Padding { get => base.Padding; set => base.Padding = value; }
|
||||
|
||||
protected virtual void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding(b, b, (b - 1), (b - 1));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
protected virtual void close()
|
||||
{
|
||||
if (this.Parent == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.Parent is Form)
|
||||
{
|
||||
(this.Parent as Form).Close();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.Parent.GetType().IsSubclassOf(typeof(System.Windows.Forms.Form)))
|
||||
{
|
||||
System.Windows.Forms.Form parentForm = (System.Windows.Forms.Form)this.Parent;
|
||||
if (parentForm != null)
|
||||
{
|
||||
parentForm.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
37
RyzStudio/Windows/ThemedForms/TUserControl.designer.cs
generated
Normal file
@ -0,0 +1,37 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TUserControl
|
||||
{
|
||||
/// <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
|
||||
}
|
||||
}
|
120
RyzStudio/Windows/ThemedForms/TUserControl.resx
Normal 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>
|
161
RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.cs
Normal file
@ -0,0 +1,161 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
using RyzStudio.Drawing;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
public partial class TButtonTextBox : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
protected readonly Padding defaultPadding = new Padding(6, 5, 6, 6);
|
||||
protected readonly Padding defaultMargin = new Padding(10, 0, 0, 10);
|
||||
|
||||
|
||||
public TButtonTextBox() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
//this.Margin = new Padding(10, 6, 10, 6);
|
||||
this.Margin = defaultMargin;
|
||||
this.Font = new Font(this.Font, FontStyle.Regular);
|
||||
|
||||
textBox1.Font = this.Font;
|
||||
textBox1.Left = this.Margin.Left;
|
||||
textBox1.PreviewKeyDown += textBox_PreviewKeyDown;
|
||||
|
||||
imageBox1.MouseClick += imageBox1_MouseClick;
|
||||
|
||||
OnResize(null);
|
||||
}
|
||||
|
||||
protected virtual void imageBox1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
OnButtonClick?.Invoke(sender, e);
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
this.Margin = defaultMargin;
|
||||
}
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Height = textBox1.Height + (b + defaultPadding.Top) + ((b - 1) + defaultPadding.Bottom);
|
||||
|
||||
imageBox1.Width = 18;
|
||||
imageBox1.Height = textBox1.Height + defaultPadding.Top + defaultPadding.Bottom;
|
||||
imageBox1.Left = this.Width - (this.Margin.Right + b + imageBox1.Width);
|
||||
|
||||
textBox1.Left = this.Margin.Left;
|
||||
textBox1.Width = imageBox1.Left - textBox1.Left - 3;
|
||||
textBox1.Top = (int)Math.Ceiling(decimal.Divide((this.Height - textBox1.Height), 2));
|
||||
}
|
||||
|
||||
protected override void OnGotFocus(EventArgs e)
|
||||
{
|
||||
base.OnGotFocus(e);
|
||||
|
||||
textBox1.Focus();
|
||||
}
|
||||
|
||||
protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Enter:
|
||||
if (this.SubmitButton != null)
|
||||
{
|
||||
this.SubmitButton.PerformClick();
|
||||
}
|
||||
|
||||
break;
|
||||
case Keys.Escape:
|
||||
close();
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
[Category("Action")]
|
||||
[Browsable(true)]
|
||||
public event EventHandler OnButtonClick;
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public Forms.TImageBox InnerImageBox { get => imageBox1; set => imageBox1 = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; }
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Image NormalImage { get => imageBox1.ImageNormal; set => imageBox1.ImageNormal = value; }
|
||||
|
||||
[Category("Appearance"), Browsable(true)]
|
||||
public Image HighlightImage { get => imageBox1.ImageHover; set => imageBox1.ImageHover = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public new string Text
|
||||
{
|
||||
get => textBox1.Text;
|
||||
set
|
||||
{
|
||||
if (textBox1.InvokeRequired)
|
||||
{
|
||||
textBox1.Invoke(new MethodInvoker(() => {
|
||||
textBox1.Text = value;
|
||||
textBox1.SelectionStart = textBox1.Text.Length;
|
||||
}));
|
||||
}
|
||||
else
|
||||
{
|
||||
textBox1.Text = value;
|
||||
textBox1.SelectionStart = textBox1.Text.Length;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public TButton SubmitButton { get; set; } = null;
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get => base.Margin; set => base.Margin = defaultMargin; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Padding { get => base.Padding; set => base.Padding = value; }
|
||||
|
||||
|
||||
public void SetTooltipText(ToolTip toolTip, string text)
|
||||
{
|
||||
toolTip.SetToolTip(imageBox1, text);
|
||||
}
|
||||
|
||||
protected override void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding((b + defaultPadding.Left), (b + defaultPadding.Top), ((b - 1) + defaultPadding.Right), ((b - 1) + defaultPadding.Bottom));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
81
RyzStudio/Windows/ThemedForms/TextBox/TButtonTextBox.designer.cs
generated
Normal file
@ -0,0 +1,81 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TButtonTextBox
|
||||
{
|
||||
/// <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.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.imageBox1 = new RyzStudio.Windows.Forms.TImageBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox1.HideSelection = false;
|
||||
this.textBox1.Location = new System.Drawing.Point(7, 7);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(68, 13);
|
||||
this.textBox1.TabIndex = 0;
|
||||
//
|
||||
// imageBox1
|
||||
//
|
||||
this.imageBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.imageBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center;
|
||||
this.imageBox1.ErrorImage = null;
|
||||
this.imageBox1.ImageHover = null;
|
||||
this.imageBox1.Image = null;
|
||||
this.imageBox1.InitialImage = null;
|
||||
this.imageBox1.Location = new System.Drawing.Point(107, 4);
|
||||
this.imageBox1.Name = "imageBox1";
|
||||
this.imageBox1.ImageNormal = null;
|
||||
this.imageBox1.Size = new System.Drawing.Size(18, 25);
|
||||
this.imageBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
|
||||
this.imageBox1.TabIndex = 1;
|
||||
this.imageBox1.TabStop = false;
|
||||
//
|
||||
// TextBox2
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.Controls.Add(this.imageBox1);
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Name = "TextBox2";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(128, 32);
|
||||
((System.ComponentModel.ISupportInitialize)(this.imageBox1)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
private Forms.TImageBox imageBox1;
|
||||
}
|
||||
}
|
42
RyzStudio/Windows/ThemedForms/TextBox/TClearableTextBox.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using UIResources = RandomFileRunner.UIResource;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public class TClearableTextBox : TButtonTextBox
|
||||
{
|
||||
public TClearableTextBox()
|
||||
{
|
||||
this.NormalImage = UIResources.trash;
|
||||
this.HighlightImage = UIResources.trash2;
|
||||
this.Text = string.Empty;
|
||||
}
|
||||
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Image NormalImage { get => base.NormalImage; set => base.NormalImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Image HighlightImage { get => base.HighlightImage; set => base.HighlightImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Forms.TImageBox InnerImageBox { get => base.InnerImageBox; set => base.InnerImageBox = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new TextBox InnerTextBox { get => base.InnerTextBox; set => base.InnerTextBox = value; }
|
||||
|
||||
|
||||
protected override void imageBox1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.Text = string.Empty;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
62
RyzStudio/Windows/ThemedForms/TextBox/TFolderTextBox.cs
Normal file
@ -0,0 +1,62 @@
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using UIResources = RandomFileRunner.UIResource;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public class TFolderTextBox : TButtonTextBox
|
||||
{
|
||||
public TFolderTextBox() : base()
|
||||
{
|
||||
this.NormalImage = UIResources.folder;
|
||||
this.HighlightImage = UIResources.folder2;
|
||||
this.Text = string.Empty;
|
||||
}
|
||||
|
||||
public FolderBrowserDialog FolderDialog { get; set; } = null;
|
||||
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Image NormalImage { get => base.NormalImage; set => base.NormalImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Image HighlightImage { get => base.HighlightImage; set => base.HighlightImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Forms.TImageBox InnerImageBox { get => base.InnerImageBox; set => base.InnerImageBox = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new TextBox InnerTextBox { get => base.InnerTextBox; set => base.InnerTextBox = value; }
|
||||
|
||||
|
||||
protected override void imageBox1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.FolderDialog == null)
|
||||
{
|
||||
this.FolderDialog = new FolderBrowserDialog();
|
||||
this.FolderDialog.Description = "Choose a directory";
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(this.Text))
|
||||
{
|
||||
if (Directory.Exists(this.Text))
|
||||
{
|
||||
this.FolderDialog.SelectedPath = this.Text;
|
||||
}
|
||||
}
|
||||
|
||||
if (this.FolderDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
{
|
||||
this.Text = this.FolderDialog.SelectedPath;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
96
RyzStudio/Windows/ThemedForms/TextBox/TKeyCodeTextBox.cs
Normal file
@ -0,0 +1,96 @@
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using UIResources = RandomFileRunner.UIResource;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public class TKeyCodeTextBox : TButtonTextBox
|
||||
{
|
||||
public class Results
|
||||
{
|
||||
public bool IsCtrl { get; set; } = false;
|
||||
public bool IsAlt { get; set; } = false;
|
||||
public bool IsShift { get; set; } = false;
|
||||
public Keys Key { get; set; } = Keys.None;
|
||||
|
||||
public int ModifierCode => ((this.IsAlt ? 1 : 0) + (this.IsCtrl ? 2 : 0) + (this.IsShift ? 4 : 0));
|
||||
|
||||
public int KeyCode => (int)this.Key;
|
||||
|
||||
public string DisplayText
|
||||
{
|
||||
get
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
if (this.IsCtrl) sb.Append("Ctrl+");
|
||||
if (this.IsShift) sb.Append("Shift+");
|
||||
if (this.IsAlt) sb.Append("Alt+");
|
||||
|
||||
sb.Append(this.Key.ToString());
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
this.IsCtrl = false;
|
||||
this.IsAlt = false;
|
||||
this.IsShift = false;
|
||||
this.Key = Keys.None;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Results KeyCodeResults { get; set; } = new Results();
|
||||
|
||||
|
||||
public TKeyCodeTextBox() : base()
|
||||
{
|
||||
this.NormalImage = UIResources.trash;
|
||||
this.HighlightImage = UIResources.trash2;
|
||||
this.Text = string.Empty;
|
||||
|
||||
this.InnerTextBox.ReadOnly = true;
|
||||
this.InnerTextBox.PreviewKeyDown += textBox1_PreviewKeyDown;
|
||||
}
|
||||
|
||||
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
if (e.KeyCode == Keys.ControlKey) return;
|
||||
if (e.KeyCode == Keys.ShiftKey) return;
|
||||
if (e.KeyCode == Keys.Menu) return;
|
||||
|
||||
this.KeyCodeResults.IsCtrl = e.Control;
|
||||
this.KeyCodeResults.IsAlt = e.Alt;
|
||||
this.KeyCodeResults.IsShift = e.Shift;
|
||||
this.KeyCodeResults.Key = e.KeyCode;
|
||||
|
||||
this.Text = this.KeyCodeResults.DisplayText;
|
||||
}
|
||||
|
||||
protected override void imageBox1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.KeyCodeResults.Clear();
|
||||
|
||||
this.Text = this.KeyCodeResults.DisplayText;
|
||||
}
|
||||
|
||||
public void UpdateKeyCode(bool isCtrl, bool isAlt, bool isShift, Keys key)
|
||||
{
|
||||
this.KeyCodeResults.IsCtrl = isCtrl;
|
||||
this.KeyCodeResults.IsAlt = isAlt;
|
||||
this.KeyCodeResults.IsShift = isShift;
|
||||
this.KeyCodeResults.Key = key;
|
||||
|
||||
this.Text = this.KeyCodeResults.DisplayText;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
64
RyzStudio/Windows/ThemedForms/TextBox/TOpenFileTextBox.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using System.Windows.Forms;
|
||||
using UIResources = RandomFileRunner.UIResource;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public class TOpenFileTextBox : TButtonTextBox
|
||||
{
|
||||
public TOpenFileTextBox() : base()
|
||||
{
|
||||
this.NormalImage = UIResources.file;
|
||||
this.HighlightImage = UIResources.file2;
|
||||
this.Text = string.Empty;
|
||||
}
|
||||
|
||||
public OpenFileDialog FileDialog { get; set; } = null;
|
||||
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Image NormalImage { get => base.NormalImage; set => base.NormalImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Image HighlightImage { get => base.HighlightImage; set => base.HighlightImage = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Forms.TImageBox InnerImageBox { get => base.InnerImageBox; set => base.InnerImageBox = value; }
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new TextBox InnerTextBox { get => base.InnerTextBox; set => base.InnerTextBox = value; }
|
||||
|
||||
|
||||
protected override void imageBox1_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.FileDialog == null)
|
||||
{
|
||||
this.FileDialog = new OpenFileDialog();
|
||||
this.FileDialog.Title = "Choose a file";
|
||||
this.FileDialog.Filter = "All files|*";
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(this.Text))
|
||||
{
|
||||
if (File.Exists(this.Text))
|
||||
{
|
||||
this.FileDialog.InitialDirectory = Path.GetDirectoryName(this.Text);
|
||||
}
|
||||
}
|
||||
|
||||
if (this.FileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
|
||||
{
|
||||
this.Text = this.FileDialog.FileName;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
109
RyzStudio/Windows/ThemedForms/TextBox/TTextBox.cs
Normal file
@ -0,0 +1,109 @@
|
||||
using RyzStudio.Drawing;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
public partial class TTextBox : RyzStudio.Windows.ThemedForms.TUserControl
|
||||
{
|
||||
protected readonly Padding textboxPadding = new Padding(6, 6, 6, 6);
|
||||
protected readonly Padding defaultMargin = new Padding(10, 0, 0, 10);
|
||||
|
||||
|
||||
public TTextBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.Margin = defaultMargin;
|
||||
this.Font = new Font(this.Font, FontStyle.Regular);
|
||||
this.Name = "TextBox";
|
||||
|
||||
textBox1.Font = this.Font;
|
||||
textBox1.PreviewKeyDown += textBox_PreviewKeyDown;
|
||||
}
|
||||
|
||||
protected override void OnLoad(EventArgs e)
|
||||
{
|
||||
base.OnLoad(e);
|
||||
|
||||
this.Margin = defaultMargin;
|
||||
}
|
||||
|
||||
protected override void OnResize(EventArgs e)
|
||||
{
|
||||
base.OnResize(e);
|
||||
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Height = textBox1.Height + (b + textboxPadding.Top) + ((b - 1) + textboxPadding.Bottom);
|
||||
|
||||
this.Invalidate();
|
||||
}
|
||||
|
||||
protected override void OnGotFocus(EventArgs e)
|
||||
{
|
||||
base.OnGotFocus(e);
|
||||
|
||||
textBox1.Focus();
|
||||
}
|
||||
|
||||
protected void textBox_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Enter:
|
||||
if (this.SubmitButton != null)
|
||||
{
|
||||
this.SubmitButton.PerformClick();
|
||||
}
|
||||
|
||||
break;
|
||||
case Keys.Escape:
|
||||
close();
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public System.Windows.Forms.TextBox InnerTextBox { get => textBox1; set => textBox1 = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public new string Text
|
||||
{
|
||||
get => textBox1.Text;
|
||||
set
|
||||
{
|
||||
textBox1.Text = value;
|
||||
textBox1.SelectionStart = textBox1.Text.Length;
|
||||
}
|
||||
}
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public bool UseSystemPasswordChar { get => textBox1.UseSystemPasswordChar; set => textBox1.UseSystemPasswordChar = value; }
|
||||
|
||||
[Browsable(true), EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
[Category("Appearance")]
|
||||
public TButton SubmitButton { get; set; } = null;
|
||||
|
||||
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
|
||||
public new Padding Margin { get => base.Margin; set => base.Margin = defaultMargin; }
|
||||
|
||||
protected override void updateBackground(Graphics g, ThemeStyle style)
|
||||
{
|
||||
int b = (styleActive.BorderWidth + 1) + styleActive.BorderPadding;
|
||||
|
||||
this.Padding = new Padding((b + textboxPadding.Left), (b + textboxPadding.Top), ((b - 1) + textboxPadding.Right), ((b - 1) + textboxPadding.Bottom));
|
||||
|
||||
Rectangoid area = new Rectangoid(this.ClientRectangle, style.BorderRadius, style.BorderWidth);
|
||||
g.FillPath(new SolidBrush(style.BackColour), area.ToGraphicsPath());
|
||||
g.DrawPath(new Pen(new SolidBrush(style.BorderColour), style.BorderWidth), area.ToGraphicsPath());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
60
RyzStudio/Windows/ThemedForms/TextBox/TTextBox.designer.cs
generated
Normal file
@ -0,0 +1,60 @@
|
||||
namespace RyzStudio.Windows.ThemedForms
|
||||
{
|
||||
partial class TTextBox
|
||||
{
|
||||
/// <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.textBox1 = new System.Windows.Forms.TextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.textBox1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textBox1.HideSelection = false;
|
||||
this.textBox1.Location = new System.Drawing.Point(4, 4);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Size = new System.Drawing.Size(121, 13);
|
||||
this.textBox1.TabIndex = 0;
|
||||
//
|
||||
// TextBox
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.Controls.Add(this.textBox1);
|
||||
this.Name = "TextBox";
|
||||
this.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.Size = new System.Drawing.Size(128, 32);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.TextBox textBox1;
|
||||
}
|
||||
}
|
120
RyzStudio/Windows/ThemedForms/TextBox/TTextBox.resx
Normal 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>
|
263
UIResource.Designer.cs
generated
Normal file
@ -0,0 +1,263 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <auto-generated>
|
||||
// This code was generated by a tool.
|
||||
// Runtime Version:4.0.30319.42000
|
||||
//
|
||||
// Changes to this file may cause incorrect behavior and will be lost if
|
||||
// the code is regenerated.
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace RandomFileRunner {
|
||||
using System;
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||
/// </summary>
|
||||
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class UIResource {
|
||||
|
||||
private static global::System.Resources.ResourceManager resourceMan;
|
||||
|
||||
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||
|
||||
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||
internal UIResource() {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the cached ResourceManager instance used by this class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RandomFileRunner.UIResource", typeof(UIResource).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Overrides the current thread's CurrentUICulture property for all
|
||||
/// resource lookups using this strongly typed resource class.
|
||||
/// </summary>
|
||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||
internal static global::System.Globalization.CultureInfo Culture {
|
||||
get {
|
||||
return resourceCulture;
|
||||
}
|
||||
set {
|
||||
resourceCulture = value;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap arrow_down {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("arrow_down", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap arrow_down2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("arrow_down2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap arrow_up {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("arrow_up", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap arrow_up2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("arrow_up2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap circle_menu {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("circle_menu", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap circle_menu2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("circle_menu2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap cog {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("cog", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap cog2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("cog2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap edit {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("edit", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap edit2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("edit2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap file {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("file", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap file2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("file2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap folder {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("folder", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap folder2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("folder2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap plus {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("plus", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap plus2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("plus2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap refresh {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("refresh", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap refresh2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("refresh2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap trash {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("trash", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap trash2 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("trash2", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
181
UIResource.resx
Normal file
@ -0,0 +1,181 @@
|
||||
<?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=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||
<data name="arrow_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\arrow_down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="arrow_down2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\arrow_down2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="arrow_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\arrow_up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="arrow_up2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\arrow_up2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="circle_menu" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\circle_menu.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="circle_menu2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\circle_menu2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="cog" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\cog.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="cog2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\cog2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="edit" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\edit.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="edit2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\edit2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="file" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\file.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="file2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\file2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="folder" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\folder.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="folder2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\folder2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="plus2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\plus2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="refresh" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\refresh.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="refresh2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\refresh2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="trash" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\trash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="trash2" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\UI\trash2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
17
build.bat
@ -1,17 +0,0 @@
|
||||
RMDIR /s /q "bin\"
|
||||
RMDIR /s /q "obj\"
|
||||
|
||||
MKDIR bin
|
||||
|
||||
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\"
|
||||
|
||||
REM "C:\B\Portable Files (dev)\Inno Setup\v6.0.4-2\app\ISCC.exe" "build-installer.iss"
|
||||
|
||||
"C:\B\Portable Files\7-Zip (Portable)\23.01\App\7-Zip64\7z.exe" a -t7z "bin\randomfilerunner.7z" ".\bin\randomfilerunner.exe" -mx9
|
||||
|
||||
RMDIR /s /q "bin\debug"
|
||||
RMDIR /s /q "bin\release"
|
||||
RMDIR /s /q "obj\"
|
||||
|
||||
PAUSE
|
BIN
favicon.ico
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |