1
0

Compare commits

...

53 Commits

Author SHA1 Message Date
Ray
de42bc7f66 Merge pull request 'release/0.6.2' (#5) from release/0.6.2 into master
Reviewed-on: Ray/bookmark-manager-r4#5
2024-09-15 15:38:43 +00:00
Ray
f769de084e Added function to add page in batch 2024-09-15 15:50:53 +01:00
Ray
b4f236266a Refactored WebProvider for clarity 2024-09-15 12:48:31 +01:00
Ray
5f2aeb78bf Changed to improve favicon detection 2024-09-14 23:03:06 +01:00
Ray
3c4e1c735a Merge pull request 'release/0.6.1' (#4) from release/0.6.1 into master
Reviewed-on: Ray/bookmark-manager-r4#4
2024-08-04 15:03:09 +00:00
Ray
b17ba5665b Fixed save icons not always working 2024-08-04 13:51:19 +01:00
Ray
ce54eb7ce4 Fixed icon updates not working correctly 2024-08-04 04:11:19 +01:00
Ray
0a7bf62bff Fixed save icon_64
Changed to scale icons
Changed to ttf-icons for main menu
2024-08-04 02:47:25 +01:00
Ray
a8ecd88fd3 Merge pull request 'release/0.6.0.1042' (#3) from release/0.6.0.1042 into master
Reviewed-on: Ray/bookmark-manager-r4#3
2024-07-21 17:49:28 +00:00
Ray
10df3a2219 Changed build no. 2024-07-21 18:44:33 +01:00
Ray
c90a34904d Fixed folder paths when saving
Fixed update-icon close button
2024-07-21 18:44:05 +01:00
Ray
527c87889e Merge pull request 'release/0.6.0' (#2) from release/0.6.0 into master
Reviewed-on: Ray/bookmark-manager-r4#2
2024-07-20 21:52:47 +00:00
Ray
a7c9e8ca6d Changed message-boxes to themed message boxes 2024-07-20 18:15:07 +01:00
Ray
d0eda9ff29 Upgraded to new RyzStudio8 2024-07-20 18:09:44 +01:00
Ray
52fe954e25 Fixed handle bad icon when saving 2024-07-19 22:18:17 +01:00
Ray
06ab54cf9a Changed app name 2024-07-19 21:22:24 +01:00
Ray
847accc213 WIP: Change app name 2024-07-18 23:45:51 +01:00
Ray
9c461c74d1 Added search/find form
Added update-icon form
Changed build script
Removed unused offline references
2024-07-18 17:28:21 +01:00
Ray
9b7dd4bdc9 Rewrite for .NET 8 and RyzStudio8 2024-07-17 01:56:17 +01:00
Ray
fc764a4e97 Updated ryz3ui package + build scripts 2022-12-29 16:12:45 +00:00
Ray
476ada0b82 Merge pull request 'release/0.5.0.011' (#1) from release/2022-12 into master
Reviewed-on: Ray/bookmark-manager-r4#1
2022-12-25 00:37:26 +00:00
Ray
5fccba35a8 Changed build no. to 0.5.0.011 2022-12-24 21:05:42 +00:00
Ray
61fcbb6230 Upgrade Ryz3ui + Ryz3core packages 2022-12-24 20:57:17 +00:00
Ray
cf6a45b637 WIP 2022-12-24 03:24:31 +00:00
Ray
e98111bf04 Upgrade to using RyzStudio3 package (WIP) 2022-12-23 22:20:26 +00:00
Ray
68a9f8e616 Upgrade to .net 6.0 2022-12-23 22:08:10 +00:00
Ray
e6818c28e8 Fixed label capitalisation on options dialog box 2022-12-23 22:00:50 +00:00
Ray
7512811921 Merge branch 'release/0.4.4.026' into 'master'
Release/0.4.4.026

See merge request SympatheticFire/bookmark-manager-r4!9
2022-01-27 15:42:00 +00:00
Ray
c39971b653 Changed build no. 2022-01-27 15:40:17 +00:00
Ray
47671138f1 Updated dependencies 2022-01-27 15:28:33 +00:00
Ray
c6344e0281 Merge branch 'release/0.4.3.030' into 'master'
Changed to x64 build only + upgrade to more accessible UI

See merge request SympatheticFire/bookmark-manager-r4!8
2022-01-01 19:23:40 +00:00
Ray
c6bf2495f9 Changed to x64 build only + upgrade to more accessible UI 2021-12-30 02:34:19 +00:00
Ray
7430326e50 Merge branch 'release/0.4.2.008' into 'master'
Release/0.4.2.008

See merge request SympatheticFire/bookmark-manager-r4!7
2021-11-18 12:57:57 +00:00
Ray
fd25ed788e Changed build scripts for apps 2021-11-16 18:14:31 +00:00
Ray
29b9caa9bb Removed animated gif 2021-11-16 18:11:50 +00:00
Ray
de88dc029b Added build scripts 2021-11-15 23:52:06 +00:00
Ray
0ab49f1f16 Clean-up 2021-11-15 23:49:50 +00:00
Ray
3d62d6ea97 Changed build no + rystudio + clean-up 2021-11-15 23:46:18 +00:00
Ray
a1777634fd Added app setting for toggle toolbar 2021-11-15 23:06:55 +00:00
Ray
17bd46c9cd Added toolbar 2021-11-15 22:58:04 +00:00
Ray
185d9aa253 Merge branch 'release/0.4.1.006' into 'master'
Release/0.4.1.006

See merge request SympatheticFire/bookmark-manager-r4!6
2021-10-12 21:12:40 +00:00
Ray
b09e431e15 changed: build no. 2021-10-12 20:12:25 +01:00
Ray
ecc0883fe0 Merge branch 'feature/save-as-issue' into 'release/0.4.1.006'
Feature/save as issue

See merge request SympatheticFire/bookmark-manager-r4!5
2021-10-12 19:09:33 +00:00
Ray
2faeedc72e Merge branch 'feature/ignore-ssl-option' into 'release/0.4.1.006'
Added: ignore ssl option

See merge request SympatheticFire/bookmark-manager-r4!4
2021-10-12 19:09:01 +00:00
Ray
1d333057d8 Merge branch 'feature/mismatched-icon' into 'release/0.4.1.006'
Fixed: mismatched icons on treeview update

See merge request SympatheticFire/bookmark-manager-r4!3
2021-10-12 19:08:24 +00:00
Ray
e1409f9945 Changed: focus on address field on bookmark item form 2021-10-12 20:05:40 +01:00
Ray
db6c2797cc Fixed: save-as not keeping save file location 2021-10-12 20:03:19 +01:00
Ray
00f58d8259 Added: ignore ssl option 2021-10-12 19:55:00 +01:00
Ray
f7d6b1c6a6 Fixed: mismatched icons on treeview update 2021-10-12 19:20:17 +01:00
Ray
60f199b0f2 Merge branch 'release/0.4.0.132' into 'master'
Release/0.4.0.132

See merge request SympatheticFire/bookmark-manager-r4!2
2021-10-12 18:18:17 +00:00
Ray
435be52d11 Merge branch 'feature/failed-to-retrieve-title' into 'release/0.4.0.132'
Fixed: failing to retrieve webpage title

See merge request SympatheticFire/bookmark-manager-r4!1
2021-10-01 17:01:04 +00:00
Ray
665d93a8f2 Changed: build no. 2021-10-01 17:59:21 +01:00
Ray
47661657dc Fixed: failing to retrieve webpage title 2021-10-01 17:53:49 +01:00
142 changed files with 3885 additions and 13099 deletions

312
AddBatchPageForm.cs Normal file
View File

@ -0,0 +1,312 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Windows.Forms;
using BookmarkManager.Services;
using bzit.bomg.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
namespace FizzyLauncher
{
public class AddBatchPageForm : Form
{
private System.Windows.Forms.Label label1;
private readonly WebProvider _webProvider;
private string _rootPath;
private bool _isBusy = false;
private THorizontalSeparator tHorizontalSeparator3;
private ThButton button3;
private ThProgressBar progressBar2;
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
private ThToolbarMemoBox memoBox1;
private List<BookmarkModel> _result = new List<BookmarkModel>();
private bool _requestCancel = false;
public AddBatchPageForm(string rootPath)
{
InitializeComponent();
UISetup.Dialog(this);
_result = new List<BookmarkModel>();
_webProvider = new WebProvider();
_webProvider.IgnoreSSL = true;
_rootPath = rootPath;
}
private void InitializeComponent()
{
label1 = new Label();
tHorizontalSeparator3 = new THorizontalSeparator();
button3 = new ThButton();
progressBar2 = new ThProgressBar();
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
memoBox1 = new ThToolbarMemoBox();
SuspendLayout();
//
// label1
//
label1.AutoSize = true;
label1.BackColor = System.Drawing.Color.Transparent;
label1.ForeColor = System.Drawing.SystemColors.ControlText;
label1.Location = new System.Drawing.Point(10, 20);
label1.Margin = new Padding(0);
label1.Name = "label1";
label1.Padding = new Padding(0, 8, 0, 0);
label1.Size = new System.Drawing.Size(185, 23);
label1.TabIndex = 153;
label1.Text = "Add pages (one URL on each line)";
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// tHorizontalSeparator3
//
tHorizontalSeparator3.Anchor = AnchorStyles.Bottom | 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, 321);
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(424, 22);
tHorizontalSeparator3.TabIndex = 207;
tHorizontalSeparator3.TabStop = false;
//
// button3
//
button3.ActiveImage = null;
button3.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
button3.BackColor = System.Drawing.Color.Transparent;
button3.EnableMenuOnClick = false;
button3.EnableReactiveVisual = true;
button3.HoverImage = null;
button3.IdleImage = null;
button3.LabelText = "&Add Pages";
button3.Location = new System.Drawing.Point(306, 393);
button3.Name = "button3";
button3.Size = new System.Drawing.Size(128, 32);
button3.TabIndex = 209;
button3.TabStop = false;
button3.MouseClick += button3_MouseClick;
//
// progressBar2
//
progressBar2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | 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(10, 353);
progressBar2.Maximum = 100;
progressBar2.Minimum = 0;
progressBar2.Name = "progressBar2";
progressBar2.ProgressText = "50/100";
progressBar2.ShowProgressText = true;
progressBar2.Size = new System.Drawing.Size(424, 20);
progressBar2.TabIndex = 210;
progressBar2.TabStop = false;
progressBar2.Value = 50;
//
// dialogFooter1
//
dialogFooter1.BackColor = System.Drawing.Color.FromArgb(240, 240, 240);
dialogFooter1.Button1Text = "&Close";
dialogFooter1.Dialog = this;
dialogFooter1.Dock = DockStyle.Bottom;
dialogFooter1.IsBusy = false;
dialogFooter1.Location = new System.Drawing.Point(0, 437);
dialogFooter1.Name = "dialogFooter1";
dialogFooter1.Size = new System.Drawing.Size(444, 84);
//
// memoBox1
//
memoBox1.AllowDrop = true;
memoBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
memoBox1.BackColor = System.Drawing.Color.Transparent;
memoBox1.ClearedValue = "";
memoBox1.EnableReactiveVisual = true;
memoBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
memoBox1.Location = new System.Drawing.Point(10, 53);
memoBox1.Name = "memoBox1";
memoBox1.ReadOnly = false;
memoBox1.ScrollBars = ScrollBars.Vertical;
memoBox1.Size = new System.Drawing.Size(424, 258);
memoBox1.TabIndex = 211;
memoBox1.TabStop = false;
memoBox1.WordWrap = false;
//
// AddBatchPageForm
//
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = System.Drawing.Color.White;
ClientSize = new System.Drawing.Size(444, 521);
Controls.Add(memoBox1);
Controls.Add(dialogFooter1);
Controls.Add(progressBar2);
Controls.Add(button3);
Controls.Add(tHorizontalSeparator3);
Controls.Add(label1);
KeyPreview = true;
MinimumSize = new System.Drawing.Size(460, 560);
Name = "AddBatchPageForm";
Text = "Add Pages (Batch)";
ResumeLayout(false);
PerformLayout();
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
memoBox1.Text = string.Empty;
progressBar2.Minimum = 0;
progressBar2.Value = 0;
progressBar2.Maximum = memoBox1.Lines?.Length ?? 0;
memoBox1.Focus();
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (this.IsBusy)
{
e.Cancel = true;
}
}
public List<BookmarkModel> Result
{
get => _result;
private set => _result = value;
}
protected bool IsBusy
{
get => _isBusy;
set
{
_isBusy = value;
UIControl.SetEnable(memoBox1, !this.IsBusy);
UIControl.Invoke(button3, (x) =>
{
button3.LabelText = (this.IsBusy ? "&Stop" : "&Add Pages");
});
dialogFooter1.IsBusy = _isBusy;
}
}
private async void button3_MouseClick(object sender, MouseEventArgs e)
{
await Task.Run(async () =>
{
if (this.IsBusy)
{
_requestCancel = true;
return;
}
this.IsBusy = true;
this.Result = new List<BookmarkModel>();
progressBar2.Minimum = 0;
progressBar2.Value = 0;
progressBar2.Maximum = memoBox1.Lines?.Length ?? 0;
foreach (var item in memoBox1.Lines ?? new string[0])
{
progressBar2.Value++;
if (string.IsNullOrWhiteSpace(item))
{
continue;
}
var newModel = new BookmarkModel();
newModel.Address = item;
newModel.Path = _rootPath;
if (_requestCancel)
{
break;
}
newModel = await UpdateBookmark(newModel, true, true);
if (newModel == null)
{
continue;
}
if (_requestCancel)
{
break;
}
this.Result.Add(newModel);
}
//_requestCancel = false;
this.IsBusy = false;
if (!_requestCancel)
{
this.DialogResult = DialogResult.OK;
UIControl.Close(this);
}
_requestCancel = false;
});
}
private async Task<BookmarkModel> UpdateBookmark(BookmarkModel model, bool updateTitle, bool updateDescription)
{
if (string.IsNullOrWhiteSpace(model.Address))
{
return null;
}
if (!model.Address.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase) && !model.Address.StartsWith("https://", StringComparison.CurrentCultureIgnoreCase))
{
model.Address = "http://" + model.Address;
}
var document = await _webProvider.RetrieveHtmlDocument(model.Address);
if (document == null)
{
return null;
}
if (updateTitle)
{
model.Title = _webProvider.ParseTitle(document);
}
if (updateDescription)
{
model.Description = _webProvider.ParseDescription(document);
}
return model;
}
}
}

View File

@ -19,7 +19,7 @@ namespace BookmarkManager {
// class via a tool like ResGen or Visual Studio. // class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen // To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project. // with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class AppResource { internal class AppResource {
@ -61,20 +61,58 @@ namespace BookmarkManager {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Ray Lam. /// Looks up a localized string similar to .
/// </summary> /// </summary>
internal static string app_author { internal static string AppAuthorURL {
get { get {
return ResourceManager.GetString("app_author", resourceCulture); return ResourceManager.GetString("AppAuthorURL", resourceCulture);
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Bookmark Manager. /// Looks up a localized string similar to https://www.hiimray.co.uk.
/// </summary> /// </summary>
internal static string app_name { internal static string AppCompanyURL {
get { get {
return ResourceManager.GetString("app_name", resourceCulture); return ResourceManager.GetString("AppCompanyURL", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-bookmark-manager.
/// </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-bookmark-manager.
/// </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 arrow_down_circle {
get {
object obj = ResourceManager.GetObject("arrow_down_circle", 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_circle {
get {
object obj = ResourceManager.GetObject("arrow_up_circle", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
} }
} }
@ -131,19 +169,20 @@ namespace BookmarkManager {
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
internal static System.Drawing.Bitmap loading_block { internal static System.Drawing.Bitmap icon_64 {
get { get {
object obj = ResourceManager.GetObject("loading_block", resourceCulture); object obj = ResourceManager.GetObject("icon_64", resourceCulture);
return ((System.Drawing.Bitmap)(obj)); return ((System.Drawing.Bitmap)(obj));
} }
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to https://www.hiimray.co.uk/software-bookmark-manager. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
internal static string url_help { internal static System.Drawing.Bitmap trash {
get { get {
return ResourceManager.GetString("url_help", resourceCulture); object obj = ResourceManager.GetObject("trash", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
} }
} }
} }

View File

@ -112,18 +112,30 @@
<value>2.0</value> <value>2.0</value>
</resheader> </resheader>
<resheader name="reader"> <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>
<resheader name="writer"> <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> </resheader>
<data name="app_author" xml:space="preserve"> <data name="AppAuthorURL" xml:space="preserve">
<value>Ray Lam</value> <value />
</data> </data>
<data name="app_name" xml:space="preserve"> <data name="AppCompanyURL" xml:space="preserve">
<value>Bookmark Manager</value> <value>https://www.hiimray.co.uk</value>
</data>
<data name="AppHelpURL" xml:space="preserve">
<value>https://www.hiimray.co.uk/software-bookmark-manager</value>
</data>
<data name="AppProductURL" xml:space="preserve">
<value>https://www.hiimray.co.uk/software-bookmark-manager</value>
</data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="arrow_down_circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\arrow-down-circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="arrow_up_circle" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\arrow-up-circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="bookmark" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="bookmark" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\bookmark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>Resources\bookmark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -139,10 +151,10 @@
<data name="hexagon" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="hexagon" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Resources\hexagon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>Resources\hexagon.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="loading_block" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icon_64" 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> <value>Resources\icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="url_help" xml:space="preserve"> <data name="trash" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>https://www.hiimray.co.uk/software-bookmark-manager</value> <value>Resources\trash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
</root> </root>

View File

@ -1,400 +0,0 @@
using BookmarkManager;
using bzit.bomg.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
using System;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Net;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace FizzyLauncher
{
public class BookmarkForm : TDialogForm
{
private System.Windows.Forms.Label label1;
private TButton button1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private TTextBox textBox1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
private Label label2;
private Label label3;
private TMemoBox memoBox1;
private TMemoBox memoBox2;
private Label label4;
private TButtonTextBox textBox2;
private PictureBox pictureBox1;
private PictureBox pictureBox2;
private ToolTip toolTip1;
private System.ComponentModel.IContainer components;
protected WebParser webParser = null;
protected WebClient webClient = null;
protected bool isBusy = false;
public BookmarkForm(BookmarkItem model, Image icon) : base()
{
InitializeComponent();
textBox1.Text = model.SiteName?.Trim() ?? string.Empty;
textBox2.Text = model.SiteAddress?.Trim() ?? string.Empty;
memoBox1.Text = model.SiteDescription?.Trim() ?? string.Empty;
memoBox2.Text = model.Notes?.Trim() ?? string.Empty;
pictureBox1.Image = icon;
textBox2.SetTooltipText(toolTip1, "Retrieve web page information");
}
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.label1 = new System.Windows.Forms.Label();
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.memoBox1 = new RyzStudio.Windows.ThemedForms.TMemoBox();
this.memoBox2 = new RyzStudio.Windows.ThemedForms.TMemoBox();
this.label4 = new System.Windows.Forms.Label();
this.textBox2 = new RyzStudio.Windows.ThemedForms.TButtonTextBox();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
this.pictureBox2 = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 21);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label1.Size = new System.Drawing.Size(29, 34);
this.label1.TabIndex = 153;
this.label1.Text = "Title";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// button1
//
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button1.BackColor = System.Drawing.Color.Transparent;
this.button1.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);
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);
//
// 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(10, 0, 10, 0);
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
//
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, 223);
this.tHorizontalSeparator2.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0);
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;
//
// 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.Location = new System.Drawing.Point(110, 20);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
this.textBox1.Name = "textBox1";
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox1.Size = new System.Drawing.Size(222, 35);
this.textBox1.SubmitButton = null;
this.textBox1.TabIndex = 192;
this.textBox1.UseSystemPasswordChar = false;
//
// label2
//
this.label2.AutoSize = true;
this.label2.BackColor = System.Drawing.Color.Transparent;
this.label2.ForeColor = System.Drawing.SystemColors.ControlText;
this.label2.Location = new System.Drawing.Point(10, 67);
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(49, 34);
this.label2.TabIndex = 193;
this.label2.Text = "Address";
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label3
//
this.label3.AutoSize = true;
this.label3.BackColor = System.Drawing.Color.Transparent;
this.label3.ForeColor = System.Drawing.SystemColors.ControlText;
this.label3.Location = new System.Drawing.Point(10, 113);
this.label3.Margin = new System.Windows.Forms.Padding(0);
this.label3.Name = "label3";
this.label3.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label3.Size = new System.Drawing.Size(67, 34);
this.label3.TabIndex = 195;
this.label3.Text = "Description";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// memoBox1
//
this.memoBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.memoBox1.BackColor = System.Drawing.Color.Transparent;
this.memoBox1.Location = new System.Drawing.Point(110, 112);
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(259, 105);
this.memoBox1.TabIndex = 197;
//
// memoBox2
//
this.memoBox2.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.memoBox2.BackColor = System.Drawing.Color.Transparent;
this.memoBox2.Location = new System.Drawing.Point(110, 251);
this.memoBox2.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
this.memoBox2.Name = "memoBox2";
this.memoBox2.Padding = new System.Windows.Forms.Padding(10, 10, 3, 9);
this.memoBox2.Size = new System.Drawing.Size(259, 180);
this.memoBox2.TabIndex = 199;
//
// label4
//
this.label4.AutoSize = true;
this.label4.BackColor = System.Drawing.Color.Transparent;
this.label4.ForeColor = System.Drawing.SystemColors.ControlText;
this.label4.Location = new System.Drawing.Point(10, 252);
this.label4.Margin = new System.Windows.Forms.Padding(0);
this.label4.Name = "label4";
this.label4.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label4.Size = new System.Drawing.Size(38, 34);
this.label4.TabIndex = 198;
this.label4.Text = "Notes";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// textBox2
//
this.textBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.textBox2.BackColor = System.Drawing.Color.Transparent;
this.textBox2.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.textBox2.HighlightImage = global::BookmarkManager.UIResource.search2;
this.textBox2.Location = new System.Drawing.Point(110, 66);
this.textBox2.Margin = new System.Windows.Forms.Padding(10, 3, 3, 3);
this.textBox2.Name = "textBox2";
this.textBox2.NormalImage = global::BookmarkManager.UIResource.search;
this.textBox2.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox2.Size = new System.Drawing.Size(259, 35);
this.textBox2.SubmitButton = null;
this.textBox2.TabIndex = 200;
this.textBox2.UseSystemPasswordChar = false;
this.textBox2.OnButtonClick += new System.EventHandler(this.textBox2_OnButtonClick);
//
// pictureBox1
//
this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox1.BackColor = System.Drawing.Color.Transparent;
this.pictureBox1.ErrorImage = null;
this.pictureBox1.InitialImage = null;
this.pictureBox1.Location = new System.Drawing.Point(337, 20);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(32, 35);
this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pictureBox1.TabIndex = 201;
this.pictureBox1.TabStop = false;
//
// pictureBox2
//
this.pictureBox2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.pictureBox2.BackColor = System.Drawing.Color.Transparent;
this.pictureBox2.ErrorImage = null;
this.pictureBox2.InitialImage = null;
this.pictureBox2.Location = new System.Drawing.Point(196, 469);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(32, 32);
this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pictureBox2.TabIndex = 202;
this.pictureBox2.TabStop = false;
//
// BookmarkForm
//
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.pictureBox2);
this.Controls.Add(this.pictureBox1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.memoBox2);
this.Controls.Add(this.label4);
this.Controls.Add(this.memoBox1);
this.Controls.Add(this.label3);
this.Controls.Add(this.label2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.tHorizontalSeparator2);
this.Controls.Add(this.tHorizontalSeparator1);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.KeyPreview = true;
this.MinimumSize = new System.Drawing.Size(400, 560);
this.Name = "BookmarkForm";
this.Text = "Edit Bookmark";
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
this.DialogResult = DialogResult.None;
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (IsBusy)
{
e.Cancel = true;
}
}
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Escape)
{
this.Close();
}
base.OnKeyDown(e);
}
public BookmarkResult Model
{
get => new BookmarkResult()
{
Item = new BookmarkItem()
{
SiteName = textBox1.Text?.Trim() ?? string.Empty,
SiteAddress = textBox2.Text?.Trim() ?? string.Empty,
SiteDescription = memoBox1.Text?.Trim() ?? string.Empty,
Notes = memoBox2.Text?.Trim() ?? string.Empty
},
Icon = pictureBox1.Image
};
}
protected bool IsBusy
{
get => isBusy;
set
{
isBusy = value;
ThreadControl.SetValue(pictureBox2, (isBusy ? AppResource.loading_block : null));
ThreadControl.SetEnable(textBox1, !isBusy);
ThreadControl.SetEnable(textBox2, !isBusy);
ThreadControl.SetEnable(memoBox1 , !isBusy);
ThreadControl.SetEnable(memoBox2, !isBusy);
ThreadControl.SetEnable(button1, !isBusy);
}
}
private void button1_MouseClick(object sender, MouseEventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
private async void textBox2_OnButtonClick(object sender, EventArgs e)
{
await Task.Run(() =>
{
if (IsBusy) return;
IsBusy = true;
if (webParser == null) webParser = new WebParser();
if (string.IsNullOrWhiteSpace(textBox1.Text))
{
IsBusy = false;
return;
}
BookmarkResult rs = webParser.RetrieveDetails(textBox2.Text);
if (rs == null)
{
IsBusy = false;
return;
}
if (rs.Item == null) rs.Item = new BookmarkItem();
if (!string.IsNullOrWhiteSpace(rs.Item.SiteName)) ThreadControl.SetText(textBox1, rs.Item.SiteName);
if (!string.IsNullOrWhiteSpace(rs.Item.SiteDescription)) ThreadControl.SetText(memoBox1, rs.Item.SiteDescription);
if (string.IsNullOrWhiteSpace(rs.IconURL))
{
ThreadControl.Clear(pictureBox1);
}
else
{
ThreadControl.SetValue(pictureBox1, webParser.RetrieveImage(rs.IconURL));
}
IsBusy = false;
});
}
}
}

View File

@ -1,63 +0,0 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@ -2,49 +2,60 @@
<PropertyGroup> <PropertyGroup>
<OutputType>WinExe</OutputType> <OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework> <TargetFramework>net8.0-windows8.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms> <UseWindowsForms>true</UseWindowsForms>
<NoWin32Manifest>true</NoWin32Manifest> <NoWin32Manifest>true</NoWin32Manifest>
<ApplicationIcon>favicon.ico</ApplicationIcon> <ApplicationIcon>favicon.ico</ApplicationIcon>
<SignAssembly>false</SignAssembly> <SignAssembly>false</SignAssembly>
<AssemblyName>bookmarkmanager</AssemblyName> <AssemblyName>bukkubuddy</AssemblyName>
<Authors>Ray Lam</Authors> <Authors>Ray Lam</Authors>
<Company>Hi, I'm Ray</Company> <Company>Hi, I'm Ray</Company>
<Product>Bookmark Manager</Product> <Product>BukkuBuddy</Product>
<Copyright>Ray Lam</Copyright> <Copyright>Ray Lam</Copyright>
<AssemblyVersion>0.4.0.130</AssemblyVersion> <AssemblyVersion>1.0.0.0</AssemblyVersion>
<FileVersion>0.4.0.130</FileVersion> <FileVersion>1.0.0.0</FileVersion>
<Version>0.4.0.130</Version> <Version>0.6.2.092</Version>
<PackageId>bookmarkmanager</PackageId> <PackageId>bukkubuddy</PackageId>
<RunAnalyzersDuringLiveAnalysis>True</RunAnalyzersDuringLiveAnalysis>
<SupportedOSPlatformVersion>8.0</SupportedOSPlatformVersion>
<Description>BukkuBuddy Bookmark Manager</Description>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<OutputPath>bin\Debug\</OutputPath> <OutputPath>bin\Debug\</OutputPath>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType> <DebugType>none</DebugType>
<DebugSymbols>false</DebugSymbols> <DebugSymbols>false</DebugSymbols>
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="#\**" /> <Compile Remove="#\**" />
<Compile Remove="Classes\**" />
<Compile Remove="DTO\**" /> <Compile Remove="DTO\**" />
<Compile Remove="RyzStudio\Data\**" /> <Compile Remove="Net\**" />
<Compile Remove="RyzStudio\IO\**" /> <Compile Remove="References\**" />
<Compile Remove="RyzStudio\Net\**" /> <Compile Remove="Resources\UI\**" />
<Compile Remove="RyzStudio\**" />
<Compile Remove="Text\**" /> <Compile Remove="Text\**" />
<EmbeddedResource Remove="#\**" /> <EmbeddedResource Remove="#\**" />
<EmbeddedResource Remove="Classes\**" />
<EmbeddedResource Remove="DTO\**" /> <EmbeddedResource Remove="DTO\**" />
<EmbeddedResource Remove="RyzStudio\Data\**" /> <EmbeddedResource Remove="Net\**" />
<EmbeddedResource Remove="RyzStudio\IO\**" /> <EmbeddedResource Remove="References\**" />
<EmbeddedResource Remove="RyzStudio\Net\**" /> <EmbeddedResource Remove="Resources\UI\**" />
<EmbeddedResource Remove="RyzStudio\**" />
<EmbeddedResource Remove="Text\**" /> <EmbeddedResource Remove="Text\**" />
<None Remove="#\**" /> <None Remove="#\**" />
<None Remove="Classes\**" />
<None Remove="DTO\**" /> <None Remove="DTO\**" />
<None Remove="RyzStudio\Data\**" /> <None Remove="Net\**" />
<None Remove="RyzStudio\IO\**" /> <None Remove="References\**" />
<None Remove="RyzStudio\Net\**" /> <None Remove="Resources\UI\**" />
<None Remove="RyzStudio\**" />
<None Remove="Text\**" /> <None Remove="Text\**" />
</ItemGroup> </ItemGroup>
@ -53,16 +64,7 @@
<Compile Remove="Models\TileModel.cs" /> <Compile Remove="Models\TileModel.cs" />
<Compile Remove="NewForm.cs" /> <Compile Remove="NewForm.cs" />
<Compile Remove="OpenFileForm.cs" /> <Compile Remove="OpenFileForm.cs" />
<Compile Remove="RyzStudio\Windows\Forms\StackLayoutPanel.cs" /> <Compile Remove="PasswordForm.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\BorderlessForm.cs" />
<Compile Remove="RyzStudio\Windows\ThemedForms\BorderlessForm.Designer.cs" />
<Compile Remove="RyzStudio\Windows\ThemedForms\BorderlessToolForm.cs" />
<Compile Remove="RyzStudio\Windows\ThemedForms\BorderlessToolForm.Designer.cs" />
<Compile Remove="RyzStudio\Windows\ThemedForms\TNumericBox.cs" />
<Compile Remove="RyzStudio\Windows\ThemedForms\TNumericBox.designer.cs" />
<Compile Remove="Windows\Forms\BookmarkTreeViewSNode.cs" /> <Compile Remove="Windows\Forms\BookmarkTreeViewSNode.cs" />
<Compile Remove="Windows\Forms\EditGroupForm.cs" /> <Compile Remove="Windows\Forms\EditGroupForm.cs" />
<Compile Remove="Windows\Forms\EditTileFolderForm.cs" /> <Compile Remove="Windows\Forms\EditTileFolderForm.cs" />
@ -77,10 +79,7 @@
<ItemGroup> <ItemGroup>
<EmbeddedResource Remove="NewForm.resx" /> <EmbeddedResource Remove="NewForm.resx" />
<EmbeddedResource Remove="OpenFileForm.resx" /> <EmbeddedResource Remove="OpenFileForm.resx" />
<EmbeddedResource Remove="RyzStudio\Windows\Forms\TForm.resx" /> <EmbeddedResource Remove="PasswordForm.resx" />
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\BorderlessForm.resx" />
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\BorderlessToolForm.resx" />
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\TNumericBox.resx" />
<EmbeddedResource Remove="Windows\Forms\EditGroupForm.resx" /> <EmbeddedResource Remove="Windows\Forms\EditGroupForm.resx" />
<EmbeddedResource Remove="Windows\Forms\EditTileFolderForm.resx" /> <EmbeddedResource Remove="Windows\Forms\EditTileFolderForm.resx" />
<EmbeddedResource Remove="Windows\Forms\EditTileForm.resx" /> <EmbeddedResource Remove="Windows\Forms\EditTileForm.resx" />
@ -91,14 +90,14 @@
<ItemGroup> <ItemGroup>
<None Remove=".gitignore" /> <None Remove=".gitignore" />
<None Remove="build.bat" />
<None Remove="build64.bat" />
<None Remove="installer-64.iss" /> <None Remove="installer-64.iss" />
<None Remove="installer-86.iss" /> <None Remove="installer-86.iss" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="RyzStudio\IO\FileType.cs" /> <Content Include="favicon.ico" />
<Compile Include="RyzStudio\IO\SharpZipLib.cs" />
<Compile Include="RyzStudio\Net\HttpWeb.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -107,29 +106,12 @@
<AutoGen>True</AutoGen> <AutoGen>True</AutoGen>
<DependentUpon>AppResource.resx</DependentUpon> <DependentUpon>AppResource.resx</DependentUpon>
</Compile> </Compile>
<Compile Update="RyzStudio\Windows\ThemedForms\TProgressBar.cs"> <Compile Update="AddBatchPageForm.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="UpdateIconsForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
<Compile Update="FindForm.cs"> <Compile Update="UpdateIconsForm.cs" />
<SubType>Form</SubType> <Compile Update="FindForm.cs" />
</Compile> <Compile Update="EditBookmarkForm.cs" />
<Compile Update="BookmarkForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="PasswordForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Update="RyzStudio\Windows\ThemedForms\TextBox\TKeyCodeTextBox.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Update="UIResource.Designer.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>UIResource.resx</DependentUpon>
</Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@ -137,20 +119,12 @@
<Generator>ResXFileCodeGenerator</Generator> <Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>AppResource.Designer.cs</LastGenOutput> <LastGenOutput>AppResource.Designer.cs</LastGenOutput>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Update="RyzStudio\Windows\ThemedForms\TextBox\TFolderTextBox - Copy.resx">
<DependentUpon>TFolderTextBox.resx</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Update="UIResource.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>UIResource.Designer.cs</LastGenOutput>
</EmbeddedResource>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="HtmlAgilityPack" Version="1.11.34" /> <PackageReference Include="HtmlAgilityPack" Version="1.11.61" />
<PackageReference Include="Microsoft.Data.Sqlite" Version="5.0.10" /> <PackageReference Include="RyzStudio" Version="8.1.2.366" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="RyzStudio.Windows.Forms" Version="8.1.3.689" />
<PackageReference Include="SharpZipLib" Version="1.3.2" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -1,15 +0,0 @@
using bzit.bomg.Models;
using System.Drawing;
namespace BookmarkManager
{
public class BookmarkResult
{
public BookmarkItem Item { get; set; } = null;
public string IconURL { get; set; } = null;
public Image Icon { get; set; } = null;
}
}

View File

@ -1,22 +0,0 @@
using System;
using System.Security.Cryptography;
using System.Text;
namespace BookmarkManager
{
public class Crypto
{
public static string GetSHA256Hash(string text)
{
if (string.IsNullOrWhiteSpace(text)) return string.Empty;
using (var sha = new SHA256Managed())
{
byte[] hash = sha.ComputeHash(Encoding.UTF8.GetBytes(text));
return BitConverter.ToString(hash).Replace("-", string.Empty) + "+" + text.Length.ToString();
}
}
}
}

View File

@ -1,220 +0,0 @@
using Microsoft.Data.Sqlite;
using System;
using System.Drawing;
using System.IO;
namespace BookmarkManager
{
public class IconDatabase
{
protected string dbFilename = null;
protected SqliteConnection dbConnection = null;
public IconDatabase(string filename)
{
if (string.IsNullOrWhiteSpace(filename)) return;
dbFilename = filename;
bool isNew = !File.Exists(dbFilename);
SqliteConnectionStringBuilder builder = new SqliteConnectionStringBuilder();
builder.DataSource = dbFilename;
builder.Cache = SqliteCacheMode.Private;
builder.Mode = SqliteOpenMode.ReadWriteCreate;
dbConnection = new SqliteConnection(builder.ToString());
dbConnection.Open();
if (isNew) Initialise();
}
public bool AddIcon(string id, Image image)
{
if (dbConnection == null) return false;
if (string.IsNullOrWhiteSpace(id)) return false;
if (image == null) return DeleteIcon(id);
if (HasIcon(id)) return UpdateIcon(id, image);
SqliteCommand command = new SqliteCommand();
command.Connection = dbConnection;
command.CommandText = "INSERT INTO icons (id, content) VALUES (@id, @content)";
command.Parameters.Add("@id", SqliteType.Text).Value = id;
command.Parameters.Add("@content", SqliteType.Blob).Value = ImageToBytes(image);
try
{
command.ExecuteNonQuery();
}
catch (Exception)
{
return false;
}
return true;
}
public void Close()
{
if (dbConnection == null) return;
dbConnection.Close();
dbConnection.Dispose();
dbConnection = null;
}
public bool DeleteIcon(string id)
{
if (dbConnection == null) return false;
if (string.IsNullOrWhiteSpace(id)) return false;
SqliteCommand command = new SqliteCommand();
command.Connection = dbConnection;
command.CommandText = "DELETE FROM icons WHERE id = @id";
command.Parameters.Add("@id", SqliteType.Text).Value = id;
try
{
command.ExecuteNonQuery();
}
catch (Exception)
{
return false;
}
return true;
}
public Image FindIcon(string id)
{
if (dbConnection == null) return null;
if (string.IsNullOrWhiteSpace(id)) return null;
if (!HasIcon(id)) return null;
byte[] iconBytes = null;
SqliteCommand command = new SqliteCommand();
command.Connection = dbConnection;
command.CommandText = "SELECT content FROM icons WHERE id = @id";
command.Parameters.Add("@id", SqliteType.Text).Value = id;
try
{
var rs = command.ExecuteScalar();
if (rs != null)
{
iconBytes = (byte[])rs;
}
command.Dispose();
}
catch (Exception)
{
return null;
}
if (iconBytes == null)
{
return null;
}
Image img = null;
try
{
img = Image.FromStream(new MemoryStream(iconBytes));
}
catch (Exception)
{
return null;
}
return img;
}
public bool HasIcon(string id)
{
if (dbConnection == null) return false;
if (string.IsNullOrWhiteSpace(id)) return false;
string rs = string.Empty;
SqliteCommand command = new SqliteCommand();
command.Connection = dbConnection;
command.CommandText = "SELECT COUNT(1) AS count FROM icons WHERE id = @id";
command.Parameters.Add("@id", SqliteType.Text).Value = id;
try
{
rs = command.ExecuteScalar()?.ToString() ?? string.Empty;
command.Dispose();
}
catch (Exception)
{
return false;
}
int rv;
if (!int.TryParse(rs, out rv)) rv = 0;
return (rv > 0);
}
public bool UpdateIcon(string id, Image image)
{
if (dbConnection == null) return false;
if (string.IsNullOrWhiteSpace(id)) return false;
if (image == null) return DeleteIcon(id);
if (!HasIcon(id)) return AddIcon(id, image);
SqliteCommand command = new SqliteCommand();
command.Connection = dbConnection;
command.CommandText = "UPDATE icons SET content = @content WHERE id = @id";
command.Parameters.Add("@id", SqliteType.Text).Value = id;
command.Parameters.Add("@content", SqliteType.Blob).Value = ImageToBytes(image);
try
{
command.ExecuteNonQuery();
}
catch (Exception)
{
return false;
}
return true;
}
protected bool Initialise()
{
if (dbConnection == null) return false;
try
{
SqliteCommand command = new SqliteCommand("CREATE TABLE icons (id TEXT PRIMARY KEY, content BLOB)", dbConnection);
command.ExecuteNonQuery();
command.Dispose();
}
catch (Exception)
{
return false;
}
return true;
}
protected byte[] ImageToBytes(Image image)
{
ImageConverter imageConverter = new ImageConverter();
return (byte[])imageConverter.ConvertTo(image, typeof(byte[]));
}
}
}

View File

@ -1,29 +0,0 @@
namespace BookmarkManager
{
public class Result
{
public static Result Create() => new Result()
{
IsSuccess = true,
Message = null
};
public static Result Create(bool isSuccess) => new Result()
{
IsSuccess = isSuccess,
Message = null
};
public static Result Create(bool isSuccess, string message) => new Result()
{
IsSuccess = isSuccess,
Message = message
};
public bool IsSuccess { get; set; } = false;
public string Message { get; set; }
}
}

View File

@ -1,23 +0,0 @@
using RyzStudio.Windows.Forms;
using System.Collections.Generic;
namespace BookmarkManager
{
public interface ISupportedFile
{
bool IsEncryptionSupported { get; set; }
List<string> SupportedExtensions { get; }
bool IsSupported(string filename);
bool IsEncrypted(string filename);
Result Load(BookmarkTreeView treeview, string filename, string password);
Result Save(BookmarkTreeView treeview, string filename, string password);
}
}

View File

@ -1,83 +0,0 @@
using bzit.bomg.Models;
using Newtonsoft.Json;
using RyzStudio.IO;
using RyzStudio.Windows.Forms;
using System.Collections.Generic;
using System.Windows.Forms;
namespace BookmarkManager
{
public class JSNXSupportedFile : SupportedFileBase
{
public JSNXSupportedFile()
{
supportedExtensions = new List<string>() { ".jsnx" };
}
public override bool IsEncryptionSupported { get; set; } = true;
public override bool IsEncrypted(string filename) => SharpZipLib.IsZipEncrypted(filename);
public override Result Load(BookmarkTreeView treeview, string filename, string password)
{
treeview.Clear();
if (!SharpZipLib.TestArchive(filename, password))
{
return Result.Create(false, "Could not read file, is password correct?");
}
string sourceCode = SharpZipLib.ReadSingle(filename, password, "bookmarks.json");
if (string.IsNullOrWhiteSpace(sourceCode))
{
return Result.Create(false, "Could not read file, unexpected format");
}
List<BookmarkItem> rs = JsonConvert.DeserializeObject<List<BookmarkItem>>(sourceCode);
if (rs == null)
{
return Result.Create(false, "Could not read file, incorrect format");
}
//// load bookmark items
//ThreadControl.SetValue(progressBar1, 0, rs.Count);
for (int i = 0; i < rs.Count; i++)
{
// ThreadControl.SetValue(progressBar1, (i + 1));
if (treeview.InvokeRequired)
{
treeview.Invoke(new MethodInvoker(() => {
treeview.AddItem(rs[i]);
}));
}
else
{
treeview.AddItem(rs[i]);
}
}
//treeview.SetNoChanges();
return Result.Create(true);
}
public override Result Save(BookmarkTreeView treeview, string filename, string password)
{
List<BookmarkItem> rs = treeview.GetBookmarkList();
if (rs.Count <= 0)
{
return Result.Create(false, "No bookmarks to save");
}
bool rv = SharpZipLib.CreateSingle(filename, password, "bookmarks.json", JsonConvert.SerializeObject(rs));
return Result.Create(rv);
}
}
}

View File

@ -1,89 +0,0 @@
using bzit.bomg.Models;
using Newtonsoft.Json;
using RyzStudio.IO;
using RyzStudio.Windows.Forms;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace BookmarkManager
{
public class JSONSupportedFile : SupportedFileBase
{
public JSONSupportedFile()
{
supportedExtensions = new List<string>() { ".json" };
}
public override bool IsEncryptionSupported { get; set; } = false;
public override bool IsEncrypted(string filename) => false;
public override Result Load(BookmarkTreeView treeview, string filename, string password)
{
treeview.Clear();
string sourceCode = null;
try
{
sourceCode = System.IO.File.ReadAllText(filename);
}
catch (Exception exc)
{
return Result.Create(false, "Could not read file (" + exc.Message + ")");
}
if (string.IsNullOrWhiteSpace(sourceCode))
{
return Result.Create(false, "Could not read file, unexpected format");
}
List<BookmarkItem> rs = JsonConvert.DeserializeObject<List<BookmarkItem>>(sourceCode);
if (rs == null)
{
return Result.Create(false, "Could not read file, incorrect format");
}
for (int i = 0; i < rs.Count; i++)
{
if (treeview.InvokeRequired)
{
treeview.Invoke(new MethodInvoker(() => {
treeview.AddItem(rs[i]);
}));
}
else
{
treeview.AddItem(rs[i]);
}
}
return Result.Create(true);
}
public override Result Save(BookmarkTreeView treeview, string filename, string password)
{
List<BookmarkItem> rs = treeview.GetBookmarkList();
if (rs.Count <= 0)
{
return Result.Create(false, "No bookmarks to save");
}
try
{
System.IO.File.WriteAllText(filename, JsonConvert.SerializeObject(rs));
}
catch (Exception exc)
{
return Result.Create(false, "Could not write file (" + exc.Message + ")");
}
return Result.Create(true);
}
}
}

View File

@ -1,176 +0,0 @@
using bzit.bomg.Models;
using RyzStudio.IO;
using RyzStudio.Windows.Forms;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml;
namespace BookmarkManager
{
public class RYZSupportedFile : SupportedFileBase
{
public RYZSupportedFile()
{
supportedExtensions = new List<string>() { ".ryz" };
}
public override bool IsEncryptionSupported { get; set; } = true;
public override bool IsEncrypted(string filename) => SharpZipLib.IsZipEncrypted(filename);
public override Result Load(BookmarkTreeView treeview, string filename, string password)
{
treeview.Clear();
if (!SharpZipLib.TestArchive(filename, password))
{
return Result.Create(false, "Could not read file, is password correct?");
}
string sourceCode = SharpZipLib.ReadSingle(filename, password, "bookmarks.xml");
if (string.IsNullOrWhiteSpace(sourceCode))
{
return Result.Create(false, "Could not read file, unexpected format");
}
// load xml
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(sourceCode);
// parse
XmlNode xnl = xmlDocument.SelectSingleNode("bomg/b/g");
if (xnl == null)
{
return Result.Create(false, "Could not load file, unexpected format");
}
string rootName = (xnl.Attributes["name"] == null) ? "Bookmarks" : (string.IsNullOrWhiteSpace(xnl.Attributes["name"].InnerText) ? "Bookmarks" : xnl.Attributes["name"].InnerText.Trim());
foreach (XmlNode xn in xnl.ChildNodes)
{
BookmarkItem item = new BookmarkItem();
foreach (XmlNode xn2 in xn.ChildNodes)
{
switch (xn2.LocalName)
{
case "name":
item.SiteName = xn2.InnerText?.Trim();
break;
case "address":
item.SiteAddress = xn2.InnerText?.Trim();
break;
case "description":
item.SiteDescription = xn2.InnerText?.Trim();
break;
case "notes":
item.Notes = xn2.InnerText?.Trim();
break;
//case "created":
// bi.Created = xn2.InnerText?.Trim();
// break;
default:
break;
}
}
// fix fullpath and name
if (item.SiteName.Contains("|"))
{
StringBuilder sb = new StringBuilder();
sb.Append("\\");
sb.Append(System.Web.HttpUtility.UrlEncode(rootName));
sb.Append("\\");
string[] pathParts = item.SiteName.Split('|');
for (int i = 0; i < (pathParts.Length - 1); i++)
{
sb.Append(pathParts[i]);
//sb.Append(System.Web.HttpUtility.UrlDecode(pathParts[i]));
sb.Append("\\");
}
item.SiteName = System.Web.HttpUtility.UrlDecode(pathParts[(pathParts.Length - 1)] ?? string.Empty);
item.TreeviewPath = sb.ToString();
}
else
{
item.SiteName = System.Web.HttpUtility.UrlDecode(item.SiteName);
item.TreeviewPath = string.Format("\\{0}\\", System.Web.HttpUtility.UrlEncode(rootName));
}
if (treeview.InvokeRequired)
{
treeview.Invoke(new MethodInvoker(() =>
{
treeview.AddItem(item);
}));
}
else
{
treeview.AddItem(item);
}
}
return Result.Create(true);
}
public override Result Save(BookmarkTreeView treeview, string filename, string password)
{
List<BookmarkItem> rs = treeview.GetBookmarkList();
if (rs.Count <= 0)
{
return Result.Create(false, "No bookmarks to save");
}
return Result.Create(false, "Saving in this format is no longer supported");
//MemoryStream ms = new MemoryStream();
//XmlTextWriter writer = new XmlTextWriter(ms, Encoding.UTF8);
//writer.Formatting = Formatting.Indented;
//writer.WriteStartDocument();
//writer.WriteStartElement("bomg");
//writer.WriteStartElement("b");
//writer.WriteStartElement("g");
//writer.WriteAttributeString("name", treeview.Nodes[0].Text);
//foreach (BookmarkItem item in rs)
//{
// writer.WriteStartElement("m");
// writer.WriteElementString("name", item.TreeviewPath);
// writer.WriteElementString("address", item.SiteAddress);
// writer.WriteElementString("description", item.SiteDescription);
// writer.WriteElementString("created", "200101010000");
// writer.WriteEndElement();
//}
//writer.WriteEndElement();
//writer.WriteEndElement();
//writer.WriteEndElement();
//writer.WriteEndDocument();
//writer.Flush();
//ms.Position = 0;
//StreamReader sr = new StreamReader(ms);
//string sourceCode = sr.ReadToEnd();
//sr.Close();
//sr.Dispose();
//writer.Close();
//writer.Dispose();
//bool rv = SharpZipLib.CreateSingle(filename, password, "bookmarks.xml", sourceCode);
//return Result.Create(rv);
}
}
}

View File

@ -1,49 +0,0 @@
using RyzStudio.Windows.Forms;
using System.Collections.Generic;
using System.IO;
namespace BookmarkManager
{
public abstract class SupportedFileBase : ISupportedFile
{
protected List<string> supportedExtensions = new List<string>();
public SupportedFileBase()
{
}
public virtual bool IsEncryptionSupported { get; set; } = false;
public List<string> SupportedExtensions { get => supportedExtensions; }
public virtual bool IsSupported(string filename)
{
if (string.IsNullOrWhiteSpace(filename))
{
return false;
}
if (supportedExtensions == null)
{
return false;
}
if (supportedExtensions.Count <= 0)
{
return false;
}
return supportedExtensions.Contains(Path.GetExtension(filename)?.Trim()?.ToLower());
}
public virtual bool IsEncrypted(string filename) => false;
public virtual Result Load(BookmarkTreeView treeview, string filename, string password) => Result.Create(false);
public virtual Result Save(BookmarkTreeView treeview, string filename, string password) => Result.Create(false);
}
}

437
EditBookmarkForm.cs Normal file
View File

@ -0,0 +1,437 @@
using System;
using System.ComponentModel;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml;
using BookmarkManager.Services;
using bzit.bomg.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
namespace FizzyLauncher
{
public class EditBookmarkForm : Form
{
private System.Windows.Forms.Label label1;
private ThClearableTextBox textBox1;
private Label label2;
private Label label3;
private ThToolbarMemoBox memoBox1;
private Label label4;
private ThHiButtonTextBox textBox2;
private PictureBox pictureBox1;
private ToolTip toolTip1;
private System.ComponentModel.IContainer components;
private ThClearableTextBox textBox3;
private ThUserControl thUserControl1;
private Label label5;
private readonly WebProvider _webProvider;
private BookmarkModel result = null;
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
private bool _isBusy = false;
public EditBookmarkForm(BookmarkModel model = null)
{
InitializeComponent();
UISetup.Dialog(this);
this.Text = (result == null) ? "Add Bookmark" : "Edit Bookmark";
result = model;
_webProvider = new WebProvider();
_webProvider.IgnoreSSL = true;
if (result != null)
{
textBox1.Text = model.Title?.Trim() ?? string.Empty;
textBox2.Text = model.Address?.Trim() ?? string.Empty;
textBox3.Text = model.Description?.Trim() ?? string.Empty;
try
{
if (model.Icon != null)
{
if (model.Icon.Width > 16)
{
model.Icon = RyzStudio.Drawing.ImageEditor.Resize(model.Icon, 16, 16);
}
}
pictureBox1.Image = model.Icon;
}
catch (Exception)
{
pictureBox1.Image = model.Icon = null;
}
memoBox1.Text = model.Notes?.Trim() ?? string.Empty;
}
}
private void InitializeComponent()
{
components = new Container();
label1 = new Label();
textBox1 = new ThClearableTextBox();
label2 = new Label();
label3 = new Label();
memoBox1 = new ThToolbarMemoBox();
label4 = new Label();
textBox2 = new ThHiButtonTextBox();
pictureBox1 = new PictureBox();
toolTip1 = new ToolTip(components);
textBox3 = new ThClearableTextBox();
thUserControl1 = new ThUserControl();
label5 = new Label();
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
((ISupportInitialize)pictureBox1).BeginInit();
SuspendLayout();
//
// label1
//
label1.AutoSize = true;
label1.BackColor = Color.Transparent;
label1.ForeColor = SystemColors.ControlText;
label1.Location = new Point(10, 21);
label1.Margin = new Padding(0);
label1.Name = "label1";
label1.Padding = new Padding(0, 8, 0, 0);
label1.Size = new Size(29, 23);
label1.TabIndex = 153;
label1.Text = "Title";
label1.TextAlign = ContentAlignment.MiddleLeft;
//
// textBox1
//
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox1.BackColor = Color.Transparent;
textBox1.ClearedValue = "";
textBox1.EnableReactiveVisual = true;
textBox1.Font = new Font("Segoe UI", 9F);
textBox1.Icon = "O";
textBox1.IconSize = 13F;
textBox1.Location = new Point(109, 20);
textBox1.Name = "textBox1";
textBox1.Size = new Size(260, 32);
textBox1.TabIndex = 0;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = Color.Transparent;
label2.ForeColor = SystemColors.ControlText;
label2.Location = new Point(10, 61);
label2.Margin = new Padding(0);
label2.Name = "label2";
label2.Padding = new Padding(0, 8, 0, 0);
label2.Size = new Size(49, 23);
label2.TabIndex = 193;
label2.Text = "Address";
label2.TextAlign = ContentAlignment.MiddleLeft;
//
// label3
//
label3.AutoSize = true;
label3.BackColor = Color.Transparent;
label3.ForeColor = SystemColors.ControlText;
label3.Location = new Point(10, 104);
label3.Margin = new Padding(0);
label3.Name = "label3";
label3.Padding = new Padding(0, 8, 0, 0);
label3.Size = new Size(67, 23);
label3.TabIndex = 195;
label3.Text = "Description";
label3.TextAlign = ContentAlignment.MiddleLeft;
//
// memoBox1
//
memoBox1.AllowDrop = true;
memoBox1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
memoBox1.BackColor = Color.Transparent;
memoBox1.ClearedValue = "";
memoBox1.EnableReactiveVisual = true;
memoBox1.Font = new Font("Segoe UI", 9F);
memoBox1.Location = new Point(110, 196);
memoBox1.Name = "memoBox1";
memoBox1.ReadOnly = false;
memoBox1.ScrollBars = ScrollBars.Vertical;
memoBox1.Size = new Size(259, 232);
memoBox1.TabIndex = 3;
memoBox1.TabStop = false;
memoBox1.WordWrap = false;
//
// label4
//
label4.AutoSize = true;
label4.BackColor = Color.Transparent;
label4.ForeColor = SystemColors.ControlText;
label4.Location = new Point(10, 196);
label4.Margin = new Padding(0);
label4.Name = "label4";
label4.Padding = new Padding(0, 8, 0, 0);
label4.Size = new Size(38, 23);
label4.TabIndex = 198;
label4.Text = "Notes";
label4.TextAlign = ContentAlignment.MiddleLeft;
//
// textBox2
//
textBox2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox2.BackColor = Color.Transparent;
textBox2.EnableReactiveVisual = true;
textBox2.Font = new Font("Segoe UI", 9F);
textBox2.Icon = "M";
textBox2.IconSize = 13F;
textBox2.Location = new Point(110, 62);
textBox2.Name = "textBox2";
textBox2.Size = new Size(259, 32);
textBox2.TabIndex = 1;
textBox2.TabStop = false;
textBox2.UseSystemPasswordChar = false;
textBox2.OnButtonClick += textBox2_OnButtonClick;
//
// pictureBox1
//
pictureBox1.BackColor = Color.White;
pictureBox1.ErrorImage = null;
pictureBox1.InitialImage = null;
pictureBox1.Location = new Point(113, 150);
pictureBox1.Name = "pictureBox1";
pictureBox1.Size = new Size(32, 32);
pictureBox1.SizeMode = PictureBoxSizeMode.CenterImage;
pictureBox1.TabIndex = 201;
pictureBox1.TabStop = false;
pictureBox1.MouseClick += pictureBox1_MouseClick;
pictureBox1.MouseDoubleClick += pictureBox1_MouseDoubleClick;
//
// textBox3
//
textBox3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox3.BackColor = Color.Transparent;
textBox3.ClearedValue = "";
textBox3.EnableReactiveVisual = true;
textBox3.Font = new Font("Segoe UI", 9F);
textBox3.Icon = "O";
textBox3.IconSize = 13F;
textBox3.Location = new Point(109, 104);
textBox3.Name = "textBox3";
textBox3.Size = new Size(260, 32);
textBox3.TabIndex = 203;
textBox3.TabStop = false;
textBox3.UseSystemPasswordChar = false;
//
// thUserControl1
//
thUserControl1.BackColor = Color.Transparent;
thUserControl1.EnableReactiveVisual = true;
thUserControl1.Location = new Point(109, 146);
thUserControl1.Name = "thUserControl1";
thUserControl1.Size = new Size(40, 40);
thUserControl1.TabIndex = 204;
thUserControl1.TabStop = false;
//
// label5
//
label5.AutoSize = true;
label5.BackColor = Color.Transparent;
label5.ForeColor = SystemColors.ControlText;
label5.Location = new Point(10, 146);
label5.Margin = new Padding(0);
label5.Name = "label5";
label5.Padding = new Padding(0, 8, 0, 0);
label5.Size = new Size(30, 23);
label5.TabIndex = 195;
label5.Text = "Icon";
label5.TextAlign = ContentAlignment.MiddleLeft;
//
// dialogFooter1
//
dialogFooter1.BackColor = Color.FromArgb(240, 240, 240);
dialogFooter1.Button1Text = "&OK";
dialogFooter1.Dialog = this;
dialogFooter1.Dock = DockStyle.Bottom;
dialogFooter1.IsBusy = false;
dialogFooter1.Location = new Point(0, 437);
dialogFooter1.Name = "dialogFooter1";
dialogFooter1.Size = new Size(384, 84);
//
// EditBookmarkForm
//
AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
BackColor = Color.White;
ClientSize = new Size(384, 521);
Controls.Add(dialogFooter1);
Controls.Add(textBox3);
Controls.Add(pictureBox1);
Controls.Add(textBox2);
Controls.Add(memoBox1);
Controls.Add(label4);
Controls.Add(label5);
Controls.Add(label3);
Controls.Add(label2);
Controls.Add(textBox1);
Controls.Add(label1);
Controls.Add(thUserControl1);
KeyPreview = true;
MinimumSize = new Size(400, 560);
Name = "EditBookmarkForm";
Text = "Edit Bookmark";
((ISupportInitialize)pictureBox1).EndInit();
ResumeLayout(false);
PerformLayout();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
textBox2.Focus();
}
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
if (this.IsBusy)
{
e.Cancel = true;
}
}
public BookmarkModel Result
{
get
{
if (result == null)
{
result = new BookmarkModel();
}
result.Title = textBox1.Text?.Trim() ?? string.Empty;
result.Address = textBox2.Text?.Trim() ?? string.Empty;
result.Description = textBox3.Text?.Trim() ?? string.Empty;
try
{
result.Icon = pictureBox1.Image;
}
catch (Exception)
{
// do nothing
}
result.Notes = memoBox1.Text?.Trim() ?? string.Empty;
return result;
}
}
protected bool IsBusy
{
get => _isBusy;
set
{
_isBusy = value;
UIControl.SetEnable(textBox1, !this.IsBusy);
UIControl.SetEnable(textBox2, !this.IsBusy);
UIControl.SetEnable(textBox3, !this.IsBusy);
dialogFooter1.IsBusy = _isBusy;
UIControl.SetEnable(memoBox1, !this.IsBusy);
}
}
private async void textBox2_OnButtonClick(object sender, EventArgs e)
{
await InvalidateWebPage(textBox2.Text, true, true, true);
textBox2.Focus();
}
private async void pictureBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
await InvalidateWebPage(textBox2.Text, false, false, true);
}
}
private void pictureBox1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
pictureBox1.Image = null;
}
}
private async Task InvalidateWebPage(string url, bool updateTitle, bool updateDescription, bool updateIcon)
{
if (string.IsNullOrWhiteSpace(url))
{
return;
}
if (this.IsBusy)
{
return;
}
this.IsBusy = true;
if (!url.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase) && !url.StartsWith("https://", StringComparison.CurrentCultureIgnoreCase))
{
url = "http://" + url;
}
var document = await _webProvider.RetrieveHtmlDocument(url);
if (document == null)
{
this.IsBusy = false;
return;
}
if (updateTitle)
{
textBox1.Text = _webProvider.ParseTitle(document);
}
if (updateDescription)
{
textBox3.Text = _webProvider.ParseDescription(document);
}
if (updateIcon)
{
try
{
pictureBox1.Image = await _webProvider.RetrieveImage(url, document);
if (pictureBox1.Image != null)
{
if (pictureBox1.Image.Width > 16)
{
pictureBox1.Image = RyzStudio.Drawing.ImageEditor.Resize(pictureBox1.Image, 16, 16);
}
}
}
catch (Exception)
{
pictureBox1.Image = null;
}
}
this.IsBusy = false;
}
}
}

View File

@ -117,4 +117,7 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root> </root>

View File

@ -1,42 +1,48 @@
using RyzStudio.Windows.Forms; using System;
using RyzStudio.Windows.ThemedForms; using System.Collections.Generic;
using System; using System.Linq;
using System.ComponentModel;
using System.Windows.Forms; using System.Windows.Forms;
using bzit.bomg.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
namespace FizzyLauncher namespace FizzyLauncher
{ {
public class FindForm : TDialogForm public class FindForm : Form
{ {
private System.Windows.Forms.Label label1; private System.Windows.Forms.Label label1;
private TButton button2; private ThButton button2;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private TButton button1; private ThButton button1;
private TTextBox textBox1; private ThClearableTextBox textBox1;
private BookmarkTreeView treeView1 = null; private BookmarkTreeView treeView1 = null;
private bool findNextNew = false; private int findPosition = -1;
public FindForm(BookmarkTreeView treeView) public FindForm(BookmarkTreeView treeView)
{ {
InitializeComponent(); InitializeComponent();
this.MinimizeBox = false;
this.MaximizeBox = false;
this.ShowIcon = false;
this.ShowInTaskbar = true;
treeView1 = treeView; treeView1 = treeView;
this.StartPosition = FormStartPosition.WindowsDefaultLocation; textBox1.PreviewKeyDown += textBox1_PreviewKeyDown;
textBox1.InnerTextBox.PreviewKeyDown += textBox1_PreviewKeyDown;
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.label1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label();
this.button2 = new RyzStudio.Windows.ThemedForms.TButton(); this.button2 = new RyzStudio.Windows.ThemedForms.ThButton();
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); this.textBox1 = new ThClearableTextBox();
this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); this.button1 = new RyzStudio.Windows.ThemedForms.ThButton();
this.SuspendLayout(); this.SuspendLayout();
// //
// label1 // label1
@ -55,19 +61,18 @@ namespace FizzyLauncher
// //
// button2 // button2
// //
this.button2.ActiveImage = null;
this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.button2.BackColor = System.Drawing.Color.Transparent; this.button2.BackColor = System.Drawing.Color.Transparent;
this.button2.DefaultImage = null; this.button2.HoverImage = null;
this.button2.DownImage = null; this.button2.IdleImage = null;
this.button2.IsSelected = false;
this.button2.LabelText = "&Next"; this.button2.LabelText = "&Next";
this.button2.Location = new System.Drawing.Point(321, 99); this.button2.Location = new System.Drawing.Point(321, 99);
this.button2.Margin = new System.Windows.Forms.Padding(10); this.button2.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
this.button2.Name = "button2"; this.button2.Name = "button2";
this.button2.OverImage = null;
this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
this.button2.Size = new System.Drawing.Size(128, 32); this.button2.Size = new System.Drawing.Size(128, 32);
this.button2.TabIndex = 173; this.button2.TabIndex = 2;
this.button2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button2_MouseClick); this.button2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button2_MouseClick);
// //
// tHorizontalSeparator1 // tHorizontalSeparator1
@ -78,44 +83,42 @@ namespace FizzyLauncher
this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0); this.tHorizontalSeparator1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent; this.tHorizontalSeparator1.BackColor = System.Drawing.Color.Transparent;
this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 67); this.tHorizontalSeparator1.Location = new System.Drawing.Point(10, 67);
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0); this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22); this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1"; this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10); this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
this.tHorizontalSeparator1.Size = new System.Drawing.Size(444, 22); this.tHorizontalSeparator1.Size = new System.Drawing.Size(444, 22);
this.tHorizontalSeparator1.TabIndex = 188; this.tHorizontalSeparator1.TabIndex = 188;
this.tHorizontalSeparator1.TabStop = false;
// //
// textBox1 // textBox1
// //
this.textBox1.AcceptButton = this.button2;
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right))); | System.Windows.Forms.AnchorStyles.Right)));
this.textBox1.BackColor = System.Drawing.Color.Transparent; 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.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.textBox1.Location = new System.Drawing.Point(121, 20); this.textBox1.Location = new System.Drawing.Point(121, 20);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
this.textBox1.Name = "textBox1"; this.textBox1.Name = "textBox1";
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox1.Size = new System.Drawing.Size(328, 35); this.textBox1.Size = new System.Drawing.Size(328, 35);
this.textBox1.SubmitButton = null; this.textBox1.TabIndex = 0;
this.textBox1.TabIndex = 191;
this.textBox1.UseSystemPasswordChar = false; this.textBox1.UseSystemPasswordChar = false;
// //
// button1 // button1
// //
this.button1.ActiveImage = null;
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); 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.BackColor = System.Drawing.Color.Transparent;
this.button1.DefaultImage = null; this.button1.HoverImage = null;
this.button1.DownImage = null; this.button1.IdleImage = null;
this.button1.IsSelected = false;
this.button1.LabelText = "&First"; this.button1.LabelText = "&First";
this.button1.Location = new System.Drawing.Point(185, 99); this.button1.Location = new System.Drawing.Point(185, 99);
this.button1.Margin = new System.Windows.Forms.Padding(10); this.button1.Margin = new System.Windows.Forms.Padding(10, 0, 0, 10);
this.button1.Name = "button1"; this.button1.Name = "button1";
this.button1.OverImage = null;
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
this.button1.Size = new System.Drawing.Size(128, 32); this.button1.Size = new System.Drawing.Size(128, 32);
this.button1.TabIndex = 192; this.button1.TabIndex = 1;
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick); this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
// //
// FindForm // FindForm
@ -139,31 +142,16 @@ namespace FizzyLauncher
{ {
base.OnShown(e); base.OnShown(e);
this.DialogResult = System.Windows.Forms.DialogResult.None; textBox1.Focus();
textBox1.InnerTextBox.Focus();
} }
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
e.Cancel = true;
this.Hide();
}
[Browsable(false)]
public string Password => textBox1.Text;
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{ {
switch (e.KeyCode) switch (e.KeyCode)
{ {
case Keys.Enter: case Keys.Enter:
if (findNextNew) if (findPosition < 0)
{ {
button1_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0)); button1_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
} }
@ -176,37 +164,91 @@ namespace FizzyLauncher
case Keys.Escape: case Keys.Escape:
this.Close(); this.Close();
break; break;
default: break; default:
break;
} }
} }
/// <summary>
/// Find first.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_MouseClick(object sender, MouseEventArgs e) private void button1_MouseClick(object sender, MouseEventArgs e)
{ {
if (e.Button == MouseButtons.Left) if (e.Button == MouseButtons.Left)
{ {
if (string.IsNullOrWhiteSpace(textBox1.Text)) return; if (string.IsNullOrWhiteSpace(textBox1.Text))
if (treeView1.Nodes.Count <= 0) return; {
return;
}
findNextNew = false; if (treeView1.Nodes.Count <= 0)
treeView1.FindTextNode(treeView1.Nodes[0], textBox1.Text?.Trim()); {
return;
}
findPosition = -1;
var nodeList = treeView1.ToNodeList<BookmarkModel>();
var node = nodeList.Where(x => x.Value.Title.Contains(textBox1.Text?.Trim())).Select(x => x.Key).FirstOrDefault();
if (node != null)
{
findPosition = 0;
treeView1.SelectedNode = node;
treeView1.SelectedNode.EnsureVisible();
}
} }
} }
/// <summary>
/// Find next.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_MouseClick(object sender, MouseEventArgs e) private void button2_MouseClick(object sender, MouseEventArgs e)
{ {
if (e.Button == MouseButtons.Left) if (e.Button == MouseButtons.Left)
{ {
if (string.IsNullOrWhiteSpace(textBox1.Text)) return; if (string.IsNullOrWhiteSpace(textBox1.Text))
if (treeView1.Nodes.Count <= 0) return;
if (treeView1.SelectedNode == null) treeView1.SelectedNode = treeView1.Nodes[0];
findNextNew = false;
bool rv = treeView1.FindTextNode(treeView1.SelectedNode, textBox1.Text?.Trim());
if (!rv)
{ {
findNextNew = true; return;
}
if (treeView1.Nodes.Count <= 0)
{
return;
}
if (treeView1.SelectedNode == null)
{
treeView1.SelectedNode = treeView1.Nodes[0];
}
var nodeList = treeView1.ToNodeList<BookmarkModel>();
var node = nodeList.Where(x => x.Value.Title.Contains(textBox1.Text?.Trim())).Select(x => x.Key)?.ToList() ?? new List<TreeNode>();
if (node != null)
{
//var pos = nodeList.FindIndex(x => x.Key == treeView1.SelectedNode);
//if (pos < 0)
//{
// findPosition = -1;
//} else {
// findPosition = pos;
//}
findPosition++;
if (findPosition >= node.Count)
{
findPosition = 0;
}
treeView1.SelectedNode = node[findPosition];
treeView1.SelectedNode.EnsureVisible();
} }
} }
} }

680
MainForm.Designer.cs generated
View File

@ -1,4 +1,8 @@
namespace FizzyLauncher using RyzStudio;
using RyzStudio.IO;
using RyzStudio.Windows.ThemedForms;
namespace FizzyLauncher
{ {
partial class MainForm partial class MainForm
{ {
@ -28,526 +32,494 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.components = new System.ComponentModel.Container(); components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
this.menuStrip1 = new System.Windows.Forms.MenuStrip(); menuStrip1 = new System.Windows.Forms.MenuStrip();
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator();
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
this.exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView(); openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); rootContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
this.rootContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); addPageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addPageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); addFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.addFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); sortToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.sortToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); folderContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
this.folderContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); addPageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.addPageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); toolStripMenuItem10 = new System.Windows.Forms.ToolStripMenuItem();
this.addFolderToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); addFolderToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
this.openAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); openAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.editToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); editToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
this.sortToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); sortToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator();
this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.pageContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components); pageContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
this.openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator();
this.editToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); editToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
this.deleteToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); deleteToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator(); toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator();
this.moveUpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); moveUpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.moveDownToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); moveDownToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView();
this.rootContextMenu.SuspendLayout(); toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem();
this.folderContextMenu.SuspendLayout(); menuStrip1.SuspendLayout();
this.pageContextMenu.SuspendLayout(); rootContextMenu.SuspendLayout();
this.SuspendLayout(); folderContextMenu.SuspendLayout();
pageContextMenu.SuspendLayout();
SuspendLayout();
// //
// saveFileDialog1 // saveFileDialog1
// //
this.saveFileDialog1.DefaultExt = "jsnx"; saveFileDialog1.DefaultExt = "jsnx";
this.saveFileDialog1.Filter = "Bookmarks files (*.jsnx)|*.jsnx|Bookmarks files (*.ryz)|*.ryz"; saveFileDialog1.Filter = "Bookmark files (compressed)|*.jsnx|Bookmark files|*.json;*.jsonfig";
this.saveFileDialog1.Title = "Save bookmarks file"; saveFileDialog1.Title = "Save bookmarks file";
// //
// menuStrip1 // menuStrip1
// //
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem, toolStripMenuItem1, viewToolStripMenuItem, toolsToolStripMenuItem, helpToolStripMenuItem1 });
this.fileToolStripMenuItem, menuStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStripMenuItem1, menuStrip1.Name = "menuStrip1";
this.viewToolStripMenuItem, menuStrip1.Size = new System.Drawing.Size(300, 24);
this.toolsToolStripMenuItem, menuStrip1.TabIndex = 2;
this.helpToolStripMenuItem1}); menuStrip1.MenuActivate += menuStrip1_MenuActivate;
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(300, 24);
this.menuStrip1.TabIndex = 2;
// //
// fileToolStripMenuItem // fileToolStripMenuItem
// //
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, toolStripMenuItem13, closeToolStripMenuItem, toolStripMenuItem14, saveToolStripMenuItem, saveAsToolStripMenuItem, toolStripMenuItem15, exitToolStripMenuItem2 });
this.newToolStripMenuItem, fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.openToolStripMenuItem, fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.toolStripMenuItem13, fileToolStripMenuItem.Text = "&File";
this.closeToolStripMenuItem,
this.toolStripMenuItem14,
this.saveToolStripMenuItem,
this.saveAsToolStripMenuItem,
this.toolStripMenuItem15,
this.exitToolStripMenuItem2});
this.fileToolStripMenuItem.Name = "fileToolStripMenuItem";
this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
this.fileToolStripMenuItem.Text = "&File";
// //
// newToolStripMenuItem // newToolStripMenuItem
// //
this.newToolStripMenuItem.Image = global::BookmarkManager.UIResource.file2; newToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.newToolStripMenuItem.Name = "newToolStripMenuItem"; newToolStripMenuItem.Name = "newToolStripMenuItem";
this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N))); newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N;
this.newToolStripMenuItem.Size = new System.Drawing.Size(146, 22); newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.newToolStripMenuItem.Text = "&New"; newToolStripMenuItem.Text = "&New";
this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); newToolStripMenuItem.Click += newToolStripMenuItem_Click;
// //
// openToolStripMenuItem // openToolStripMenuItem
// //
this.openToolStripMenuItem.Image = global::BookmarkManager.UIResource.folder2; openToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.openToolStripMenuItem.Name = "openToolStripMenuItem"; openToolStripMenuItem.Name = "openToolStripMenuItem";
this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O;
this.openToolStripMenuItem.Size = new System.Drawing.Size(146, 22); openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.openToolStripMenuItem.Text = "&Open"; openToolStripMenuItem.Text = "&Open";
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); openToolStripMenuItem.Click += openToolStripMenuItem_Click;
// //
// toolStripMenuItem13 // toolStripMenuItem13
// //
this.toolStripMenuItem13.Name = "toolStripMenuItem13"; toolStripMenuItem13.Name = "toolStripMenuItem13";
this.toolStripMenuItem13.Size = new System.Drawing.Size(143, 6); toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
// //
// closeToolStripMenuItem // closeToolStripMenuItem
// //
this.closeToolStripMenuItem.Name = "closeToolStripMenuItem"; closeToolStripMenuItem.Name = "closeToolStripMenuItem";
this.closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22); closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.closeToolStripMenuItem.Text = "&Close"; closeToolStripMenuItem.Text = "&Close";
this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click); closeToolStripMenuItem.Click += closeToolStripMenuItem_Click;
// //
// toolStripMenuItem14 // toolStripMenuItem14
// //
this.toolStripMenuItem14.Name = "toolStripMenuItem14"; toolStripMenuItem14.Name = "toolStripMenuItem14";
this.toolStripMenuItem14.Size = new System.Drawing.Size(143, 6); toolStripMenuItem14.Size = new System.Drawing.Size(143, 6);
// //
// saveToolStripMenuItem // saveToolStripMenuItem
// //
this.saveToolStripMenuItem.Image = global::BookmarkManager.UIResource.disk2; saveToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; saveToolStripMenuItem.Name = "saveToolStripMenuItem";
this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S))); saveToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S;
this.saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.saveToolStripMenuItem.Text = "&Save"; saveToolStripMenuItem.Text = "&Save";
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); saveToolStripMenuItem.Click += saveToolStripMenuItem_Click;
// //
// saveAsToolStripMenuItem // saveAsToolStripMenuItem
// //
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22); saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
this.saveAsToolStripMenuItem.Text = "Save &As..."; saveAsToolStripMenuItem.Text = "Save &As...";
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
// //
// toolStripMenuItem15 // toolStripMenuItem15
// //
this.toolStripMenuItem15.Name = "toolStripMenuItem15"; toolStripMenuItem15.Name = "toolStripMenuItem15";
this.toolStripMenuItem15.Size = new System.Drawing.Size(143, 6); toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
// //
// exitToolStripMenuItem2 // exitToolStripMenuItem2
// //
this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2"; exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
this.exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22); exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
this.exitToolStripMenuItem2.Text = "E&xit"; exitToolStripMenuItem2.Text = "E&xit";
this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); exitToolStripMenuItem2.Click += exitToolStripMenuItem_Click;
// //
// toolStripMenuItem1 // toolStripMenuItem1
// //
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { findToolStripMenuItem });
this.findToolStripMenuItem}); toolStripMenuItem1.Name = "toolStripMenuItem1";
this.toolStripMenuItem1.Name = "toolStripMenuItem1"; toolStripMenuItem1.Size = new System.Drawing.Size(39, 20);
this.toolStripMenuItem1.Size = new System.Drawing.Size(39, 20); toolStripMenuItem1.Text = "&Edit";
this.toolStripMenuItem1.Text = "&Edit";
// //
// findToolStripMenuItem // findToolStripMenuItem
// //
this.findToolStripMenuItem.Image = global::BookmarkManager.UIResource.search2; findToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.findToolStripMenuItem.Name = "findToolStripMenuItem"; findToolStripMenuItem.Name = "findToolStripMenuItem";
this.findToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F))); findToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F;
this.findToolStripMenuItem.Size = new System.Drawing.Size(137, 22); findToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
this.findToolStripMenuItem.Text = "&Find"; findToolStripMenuItem.Text = "&Find";
this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click); findToolStripMenuItem.Click += findToolStripMenuItem_Click;
// //
// viewToolStripMenuItem // viewToolStripMenuItem
// //
this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { expandAllToolStripMenuItem, collapseAllToolStripMenuItem, toolStripSeparator1, alwaysOnTopToolStripMenuItem });
this.expandAllToolStripMenuItem, viewToolStripMenuItem.Name = "viewToolStripMenuItem";
this.collapseAllToolStripMenuItem, viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
this.toolStripSeparator1, viewToolStripMenuItem.Text = "&View";
this.alwaysOnTopToolStripMenuItem});
this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
this.viewToolStripMenuItem.Text = "&View";
// //
// expandAllToolStripMenuItem // expandAllToolStripMenuItem
// //
this.expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem"; expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
this.expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22); expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.expandAllToolStripMenuItem.Text = "&Expand All"; expandAllToolStripMenuItem.Text = "&Expand All";
this.expandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem_Click); expandAllToolStripMenuItem.Click += expandAllToolStripMenuItem_Click;
// //
// collapseAllToolStripMenuItem // collapseAllToolStripMenuItem
// //
this.collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem"; collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem";
this.collapseAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22); collapseAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.collapseAllToolStripMenuItem.Text = "&Collapse All"; collapseAllToolStripMenuItem.Text = "&Collapse All";
this.collapseAllToolStripMenuItem.Click += new System.EventHandler(this.collapseAllToolStripMenuItem_Click); collapseAllToolStripMenuItem.Click += collapseAllToolStripMenuItem_Click;
// //
// toolStripSeparator1 // toolStripSeparator1
// //
this.toolStripSeparator1.Name = "toolStripSeparator1"; toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(149, 6); toolStripSeparator1.Size = new System.Drawing.Size(149, 6);
// //
// alwaysOnTopToolStripMenuItem // alwaysOnTopToolStripMenuItem
// //
this.alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem"; alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem";
this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(152, 22); alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.alwaysOnTopToolStripMenuItem.Text = "Always On &Top"; alwaysOnTopToolStripMenuItem.Text = "Always On &Top";
this.alwaysOnTopToolStripMenuItem.Click += new System.EventHandler(this.alwaysOnTopToolStripMenuItem_Click); alwaysOnTopToolStripMenuItem.Click += alwaysOnTopToolStripMenuItem_Click;
// //
// toolsToolStripMenuItem // toolsToolStripMenuItem
// //
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem9, toolStripSeparator2, optionsToolStripMenuItem });
this.toolStripMenuItem9, toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
this.toolStripSeparator2, toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
this.optionsToolStripMenuItem}); toolsToolStripMenuItem.Text = "&Tools";
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
this.toolsToolStripMenuItem.Text = "&Tools";
// //
// toolStripMenuItem9 // toolStripMenuItem9
// //
this.toolStripMenuItem9.Name = "toolStripMenuItem9"; toolStripMenuItem9.Name = "toolStripMenuItem9";
this.toolStripMenuItem9.Size = new System.Drawing.Size(168, 22); toolStripMenuItem9.Size = new System.Drawing.Size(168, 22);
this.toolStripMenuItem9.Text = "Update &Icons"; toolStripMenuItem9.Text = "Update &Icons";
this.toolStripMenuItem9.Click += new System.EventHandler(this.toolStripMenuItem9_Click); toolStripMenuItem9.Click += toolStripMenuItem9_Click;
// //
// toolStripSeparator2 // toolStripSeparator2
// //
this.toolStripSeparator2.Name = "toolStripSeparator2"; toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(165, 6); toolStripSeparator2.Size = new System.Drawing.Size(165, 6);
// //
// optionsToolStripMenuItem // optionsToolStripMenuItem
// //
this.optionsToolStripMenuItem.Image = global::BookmarkManager.UIResource.cog2; optionsToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem"; optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
this.optionsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12))); optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12;
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22); optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
this.optionsToolStripMenuItem.Text = "&Options"; optionsToolStripMenuItem.Text = "&Options";
this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click); optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click;
// //
// helpToolStripMenuItem1 // helpToolStripMenuItem1
// //
this.helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { viewHelpToolStripMenuItem1, toolStripMenuItem16, aboutToolStripMenuItem1 });
this.viewHelpToolStripMenuItem1, helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
this.toolStripMenuItem16, helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
this.aboutToolStripMenuItem1}); helpToolStripMenuItem1.Text = "&Help";
this.helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
this.helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
this.helpToolStripMenuItem1.Text = "&Help";
// //
// viewHelpToolStripMenuItem1 // viewHelpToolStripMenuItem1
// //
this.viewHelpToolStripMenuItem1.Image = global::BookmarkManager.UIResource.help2; viewHelpToolStripMenuItem1.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1"; viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
this.viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1; viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
this.viewHelpToolStripMenuItem1.Text = "&View Help"; viewHelpToolStripMenuItem1.Text = "&View Help";
this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click); viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click;
// //
// toolStripMenuItem16 // toolStripMenuItem16
// //
this.toolStripMenuItem16.Name = "toolStripMenuItem16"; toolStripMenuItem16.Name = "toolStripMenuItem16";
this.toolStripMenuItem16.Size = new System.Drawing.Size(143, 6); toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
// //
// aboutToolStripMenuItem1 // aboutToolStripMenuItem1
// //
this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1"; aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22); aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
this.aboutToolStripMenuItem1.Text = "&About"; aboutToolStripMenuItem1.Text = "&About";
this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click); aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click;
//
// treeView1
//
this.treeView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
this.treeView1.Location = new System.Drawing.Point(0, 24);
this.treeView1.Name = "treeView1";
this.treeView1.Size = new System.Drawing.Size(300, 556);
this.treeView1.TabIndex = 3;
// //
// openFileDialog1 // openFileDialog1
// //
this.openFileDialog1.DefaultExt = "jsnx"; openFileDialog1.DefaultExt = "jsnx";
this.openFileDialog1.Filter = "All supported files (*.jsnx;*.ryz)|*.jsnx;*.ryz|Bookmarks files (*.jsnx)|*.jsnx|B" + openFileDialog1.Filter = "All supported files|*.json;*.jsonfig;*.jsnx|Bookmark files (compressed)|*.jsnx|Bookmark files|*.json;*.jsonfig";
"ookmarks files (*.ryz)|*.ryz"; openFileDialog1.Title = "Open bookmarks file";
this.openFileDialog1.Title = "Open bookmarks file";
// //
// rootContextMenu // rootContextMenu
// //
this.rootContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { rootContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addPageToolStripMenuItem, toolStripMenuItem11, addFolderToolStripMenuItem, toolStripMenuItem2, editToolStripMenuItem, toolStripMenuItem3, sortToolStripMenuItem });
this.addPageToolStripMenuItem, rootContextMenu.Name = "rootContextMenu";
this.addFolderToolStripMenuItem, rootContextMenu.Size = new System.Drawing.Size(181, 148);
this.toolStripMenuItem2,
this.editToolStripMenuItem,
this.toolStripMenuItem3,
this.sortToolStripMenuItem});
this.rootContextMenu.Name = "rootContextMenu";
this.rootContextMenu.Size = new System.Drawing.Size(133, 104);
// //
// addPageToolStripMenuItem // addPageToolStripMenuItem
// //
this.addPageToolStripMenuItem.Name = "addPageToolStripMenuItem"; addPageToolStripMenuItem.Name = "addPageToolStripMenuItem";
this.addPageToolStripMenuItem.Size = new System.Drawing.Size(132, 22); addPageToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.addPageToolStripMenuItem.Text = "Add &Page"; addPageToolStripMenuItem.Text = "Add &Page";
this.addPageToolStripMenuItem.Click += new System.EventHandler(this.addPageToolStripMenuItem_Click); addPageToolStripMenuItem.Click += addPageToolStripMenuItem_Click;
// //
// addFolderToolStripMenuItem // addFolderToolStripMenuItem
// //
this.addFolderToolStripMenuItem.Name = "addFolderToolStripMenuItem"; addFolderToolStripMenuItem.Name = "addFolderToolStripMenuItem";
this.addFolderToolStripMenuItem.Size = new System.Drawing.Size(132, 22); addFolderToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.addFolderToolStripMenuItem.Text = "Add &Folder"; addFolderToolStripMenuItem.Text = "Add &Folder";
this.addFolderToolStripMenuItem.Click += new System.EventHandler(this.addFolderToolStripMenuItem_Click); addFolderToolStripMenuItem.Click += addFolderToolStripMenuItem_Click;
// //
// toolStripMenuItem2 // toolStripMenuItem2
// //
this.toolStripMenuItem2.Name = "toolStripMenuItem2"; toolStripMenuItem2.Name = "toolStripMenuItem2";
this.toolStripMenuItem2.Size = new System.Drawing.Size(129, 6); toolStripMenuItem2.Size = new System.Drawing.Size(177, 6);
// //
// editToolStripMenuItem // editToolStripMenuItem
// //
this.editToolStripMenuItem.Name = "editToolStripMenuItem"; editToolStripMenuItem.Name = "editToolStripMenuItem";
this.editToolStripMenuItem.Size = new System.Drawing.Size(132, 22); editToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.editToolStripMenuItem.Text = "&Edit"; editToolStripMenuItem.Text = "&Edit";
this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click); editToolStripMenuItem.Click += editToolStripMenuItem_Click;
// //
// toolStripMenuItem3 // toolStripMenuItem3
// //
this.toolStripMenuItem3.Name = "toolStripMenuItem3"; toolStripMenuItem3.Name = "toolStripMenuItem3";
this.toolStripMenuItem3.Size = new System.Drawing.Size(129, 6); toolStripMenuItem3.Size = new System.Drawing.Size(177, 6);
// //
// sortToolStripMenuItem // sortToolStripMenuItem
// //
this.sortToolStripMenuItem.Name = "sortToolStripMenuItem"; sortToolStripMenuItem.Name = "sortToolStripMenuItem";
this.sortToolStripMenuItem.Size = new System.Drawing.Size(132, 22); sortToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
this.sortToolStripMenuItem.Text = "&Sort"; sortToolStripMenuItem.Text = "&Sort";
this.sortToolStripMenuItem.Click += new System.EventHandler(this.sortToolStripMenuItem_Click); sortToolStripMenuItem.Click += sortToolStripMenuItem_Click;
// //
// folderContextMenu // folderContextMenu
// //
this.folderContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { folderContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addPageToolStripMenuItem1, toolStripMenuItem10, addFolderToolStripMenuItem1, toolStripMenuItem4, openAllToolStripMenuItem, editToolStripMenuItem1, deleteToolStripMenuItem, toolStripMenuItem5, sortToolStripMenuItem1, toolStripMenuItem6, moveUpToolStripMenuItem, moveDownToolStripMenuItem });
this.addPageToolStripMenuItem1, folderContextMenu.Name = "folderContextMenu";
this.addFolderToolStripMenuItem1, folderContextMenu.Size = new System.Drawing.Size(167, 220);
this.toolStripMenuItem4,
this.openAllToolStripMenuItem,
this.editToolStripMenuItem1,
this.deleteToolStripMenuItem,
this.toolStripMenuItem5,
this.sortToolStripMenuItem1,
this.toolStripMenuItem6,
this.moveUpToolStripMenuItem,
this.moveDownToolStripMenuItem});
this.folderContextMenu.Name = "folderContextMenu";
this.folderContextMenu.Size = new System.Drawing.Size(139, 198);
// //
// addPageToolStripMenuItem1 // addPageToolStripMenuItem1
// //
this.addPageToolStripMenuItem1.Name = "addPageToolStripMenuItem1"; addPageToolStripMenuItem1.Name = "addPageToolStripMenuItem1";
this.addPageToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); addPageToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
this.addPageToolStripMenuItem1.Text = "Add &Page"; addPageToolStripMenuItem1.Text = "Add &Page";
this.addPageToolStripMenuItem1.Click += new System.EventHandler(this.addPageToolStripMenuItem1_Click); addPageToolStripMenuItem1.Click += addPageToolStripMenuItem1_Click;
//
// toolStripMenuItem10
//
toolStripMenuItem10.Name = "toolStripMenuItem10";
toolStripMenuItem10.Size = new System.Drawing.Size(166, 22);
toolStripMenuItem10.Text = "Add Page (&Batch)";
toolStripMenuItem10.Click += toolStripMenuItem10_Click;
// //
// addFolderToolStripMenuItem1 // addFolderToolStripMenuItem1
// //
this.addFolderToolStripMenuItem1.Name = "addFolderToolStripMenuItem1"; addFolderToolStripMenuItem1.Name = "addFolderToolStripMenuItem1";
this.addFolderToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); addFolderToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
this.addFolderToolStripMenuItem1.Text = "Add &Folder"; addFolderToolStripMenuItem1.Text = "Add &Folder";
this.addFolderToolStripMenuItem1.Click += new System.EventHandler(this.addFolderToolStripMenuItem1_Click); addFolderToolStripMenuItem1.Click += addFolderToolStripMenuItem1_Click;
// //
// toolStripMenuItem4 // toolStripMenuItem4
// //
this.toolStripMenuItem4.Name = "toolStripMenuItem4"; toolStripMenuItem4.Name = "toolStripMenuItem4";
this.toolStripMenuItem4.Size = new System.Drawing.Size(135, 6); toolStripMenuItem4.Size = new System.Drawing.Size(163, 6);
// //
// openAllToolStripMenuItem // openAllToolStripMenuItem
// //
this.openAllToolStripMenuItem.Image = global::BookmarkManager.AppResource.bookmark; openAllToolStripMenuItem.Image = BookmarkManager.AppResource.bookmark;
this.openAllToolStripMenuItem.Name = "openAllToolStripMenuItem"; openAllToolStripMenuItem.Name = "openAllToolStripMenuItem";
this.openAllToolStripMenuItem.Size = new System.Drawing.Size(138, 22); openAllToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
this.openAllToolStripMenuItem.Text = "&Open All"; openAllToolStripMenuItem.Text = "&Open All";
this.openAllToolStripMenuItem.Click += new System.EventHandler(this.openAllToolStripMenuItem_Click); openAllToolStripMenuItem.Click += openAllToolStripMenuItem_Click;
// //
// editToolStripMenuItem1 // editToolStripMenuItem1
// //
this.editToolStripMenuItem1.Name = "editToolStripMenuItem1"; editToolStripMenuItem1.Name = "editToolStripMenuItem1";
this.editToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); editToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
this.editToolStripMenuItem1.Text = "&Edit"; editToolStripMenuItem1.Text = "&Edit";
this.editToolStripMenuItem1.Click += new System.EventHandler(this.editToolStripMenuItem1_Click); editToolStripMenuItem1.Click += editToolStripMenuItem1_Click;
// //
// deleteToolStripMenuItem // deleteToolStripMenuItem
// //
this.deleteToolStripMenuItem.Image = global::BookmarkManager.UIResource.trash2; deleteToolStripMenuItem.Image = BookmarkManager.AppResource.trash;
this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
this.deleteToolStripMenuItem.Size = new System.Drawing.Size(138, 22); deleteToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
this.deleteToolStripMenuItem.Text = "&Delete"; deleteToolStripMenuItem.Text = "&Delete";
this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click); deleteToolStripMenuItem.Click += deleteToolStripMenuItem_Click;
// //
// toolStripMenuItem5 // toolStripMenuItem5
// //
this.toolStripMenuItem5.Name = "toolStripMenuItem5"; toolStripMenuItem5.Name = "toolStripMenuItem5";
this.toolStripMenuItem5.Size = new System.Drawing.Size(135, 6); toolStripMenuItem5.Size = new System.Drawing.Size(163, 6);
// //
// sortToolStripMenuItem1 // sortToolStripMenuItem1
// //
this.sortToolStripMenuItem1.Name = "sortToolStripMenuItem1"; sortToolStripMenuItem1.Name = "sortToolStripMenuItem1";
this.sortToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); sortToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
this.sortToolStripMenuItem1.Text = "&Sort"; sortToolStripMenuItem1.Text = "&Sort";
this.sortToolStripMenuItem1.Click += new System.EventHandler(this.sortToolStripMenuItem1_Click); sortToolStripMenuItem1.Click += sortToolStripMenuItem1_Click;
// //
// toolStripMenuItem6 // toolStripMenuItem6
// //
this.toolStripMenuItem6.Name = "toolStripMenuItem6"; toolStripMenuItem6.Name = "toolStripMenuItem6";
this.toolStripMenuItem6.Size = new System.Drawing.Size(135, 6); toolStripMenuItem6.Size = new System.Drawing.Size(163, 6);
// //
// moveUpToolStripMenuItem // moveUpToolStripMenuItem
// //
this.moveUpToolStripMenuItem.Image = global::BookmarkManager.UIResource.arrow_up2; moveUpToolStripMenuItem.Image = BookmarkManager.AppResource.arrow_up_circle;
this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem"; moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(138, 22); moveUpToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
this.moveUpToolStripMenuItem.Text = "Move &Up"; moveUpToolStripMenuItem.Text = "Move &Up";
this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click); moveUpToolStripMenuItem.Click += moveUpToolStripMenuItem_Click;
// //
// moveDownToolStripMenuItem // moveDownToolStripMenuItem
// //
this.moveDownToolStripMenuItem.Image = global::BookmarkManager.UIResource.arrow_down2; moveDownToolStripMenuItem.Image = BookmarkManager.AppResource.arrow_down_circle;
this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem"; moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(138, 22); moveDownToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
this.moveDownToolStripMenuItem.Text = "Move &Down"; moveDownToolStripMenuItem.Text = "Move &Down";
this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click); moveDownToolStripMenuItem.Click += moveDownToolStripMenuItem_Click;
// //
// pageContextMenu // pageContextMenu
// //
this.pageContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { pageContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { openToolStripMenuItem1, toolStripMenuItem7, editToolStripMenuItem2, deleteToolStripMenuItem1, toolStripMenuItem8, moveUpToolStripMenuItem1, moveDownToolStripMenuItem1 });
this.openToolStripMenuItem1, pageContextMenu.Name = "pageContextMenu";
this.toolStripMenuItem7, pageContextMenu.Size = new System.Drawing.Size(139, 126);
this.editToolStripMenuItem2,
this.deleteToolStripMenuItem1,
this.toolStripMenuItem8,
this.moveUpToolStripMenuItem1,
this.moveDownToolStripMenuItem1});
this.pageContextMenu.Name = "pageContextMenu";
this.pageContextMenu.Size = new System.Drawing.Size(139, 126);
// //
// openToolStripMenuItem1 // openToolStripMenuItem1
// //
this.openToolStripMenuItem1.Image = global::BookmarkManager.AppResource.bookmark; openToolStripMenuItem1.Image = BookmarkManager.AppResource.bookmark;
this.openToolStripMenuItem1.Name = "openToolStripMenuItem1"; openToolStripMenuItem1.Name = "openToolStripMenuItem1";
this.openToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); openToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
this.openToolStripMenuItem1.Text = "&Open"; openToolStripMenuItem1.Text = "&Open";
this.openToolStripMenuItem1.Click += new System.EventHandler(this.openToolStripMenuItem1_Click); openToolStripMenuItem1.Click += openToolStripMenuItem1_Click;
// //
// toolStripMenuItem7 // toolStripMenuItem7
// //
this.toolStripMenuItem7.Name = "toolStripMenuItem7"; toolStripMenuItem7.Name = "toolStripMenuItem7";
this.toolStripMenuItem7.Size = new System.Drawing.Size(135, 6); toolStripMenuItem7.Size = new System.Drawing.Size(135, 6);
// //
// editToolStripMenuItem2 // editToolStripMenuItem2
// //
this.editToolStripMenuItem2.Name = "editToolStripMenuItem2"; editToolStripMenuItem2.Name = "editToolStripMenuItem2";
this.editToolStripMenuItem2.Size = new System.Drawing.Size(138, 22); editToolStripMenuItem2.Size = new System.Drawing.Size(138, 22);
this.editToolStripMenuItem2.Text = "&Edit"; editToolStripMenuItem2.Text = "&Edit";
this.editToolStripMenuItem2.Click += new System.EventHandler(this.editToolStripMenuItem2_Click); editToolStripMenuItem2.Click += editToolStripMenuItem2_Click;
// //
// deleteToolStripMenuItem1 // deleteToolStripMenuItem1
// //
this.deleteToolStripMenuItem1.Image = global::BookmarkManager.UIResource.trash2; deleteToolStripMenuItem1.Image = BookmarkManager.AppResource.trash;
this.deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1"; deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1";
this.deleteToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); deleteToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
this.deleteToolStripMenuItem1.Text = "&Delete"; deleteToolStripMenuItem1.Text = "&Delete";
this.deleteToolStripMenuItem1.Click += new System.EventHandler(this.deleteToolStripMenuItem1_Click); deleteToolStripMenuItem1.Click += deleteToolStripMenuItem1_Click;
// //
// toolStripMenuItem8 // toolStripMenuItem8
// //
this.toolStripMenuItem8.Name = "toolStripMenuItem8"; toolStripMenuItem8.Name = "toolStripMenuItem8";
this.toolStripMenuItem8.Size = new System.Drawing.Size(135, 6); toolStripMenuItem8.Size = new System.Drawing.Size(135, 6);
// //
// moveUpToolStripMenuItem1 // moveUpToolStripMenuItem1
// //
this.moveUpToolStripMenuItem1.Image = global::BookmarkManager.UIResource.arrow_up2; moveUpToolStripMenuItem1.Image = BookmarkManager.AppResource.arrow_up_circle;
this.moveUpToolStripMenuItem1.Name = "moveUpToolStripMenuItem1"; moveUpToolStripMenuItem1.Name = "moveUpToolStripMenuItem1";
this.moveUpToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); moveUpToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
this.moveUpToolStripMenuItem1.Text = "Move &Up"; moveUpToolStripMenuItem1.Text = "Move &Up";
this.moveUpToolStripMenuItem1.Click += new System.EventHandler(this.moveUpToolStripMenuItem1_Click); moveUpToolStripMenuItem1.Click += moveUpToolStripMenuItem1_Click;
// //
// moveDownToolStripMenuItem1 // moveDownToolStripMenuItem1
// //
this.moveDownToolStripMenuItem1.Image = global::BookmarkManager.UIResource.arrow_down2; moveDownToolStripMenuItem1.Image = BookmarkManager.AppResource.arrow_down_circle;
this.moveDownToolStripMenuItem1.Name = "moveDownToolStripMenuItem1"; moveDownToolStripMenuItem1.Name = "moveDownToolStripMenuItem1";
this.moveDownToolStripMenuItem1.Size = new System.Drawing.Size(138, 22); moveDownToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
this.moveDownToolStripMenuItem1.Text = "Move &Down"; moveDownToolStripMenuItem1.Text = "Move &Down";
this.moveDownToolStripMenuItem1.Click += new System.EventHandler(this.moveDownToolStripMenuItem1_Click); moveDownToolStripMenuItem1.Click += moveDownToolStripMenuItem1_Click;
//
// treeView1
//
treeView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
treeView1.Location = new System.Drawing.Point(0, 24);
treeView1.Name = "treeView1";
treeView1.OnChanged = null;
treeView1.Size = new System.Drawing.Size(300, 556);
treeView1.TabIndex = 5;
//
// toolStripMenuItem11
//
toolStripMenuItem11.Name = "toolStripMenuItem11";
toolStripMenuItem11.Size = new System.Drawing.Size(180, 22);
toolStripMenuItem11.Text = "Add Page (&Batch)";
toolStripMenuItem11.Click += toolStripMenuItem11_Click;
// //
// MainForm // MainForm
// //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250))))); AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; BackColor = System.Drawing.Color.FromArgb(250, 250, 250);
this.ClientSize = new System.Drawing.Size(300, 580); BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
this.Controls.Add(this.treeView1); ClientSize = new System.Drawing.Size(300, 580);
this.Controls.Add(this.menuStrip1); Controls.Add(treeView1);
this.DoubleBuffered = true; Controls.Add(menuStrip1);
this.ForeColor = System.Drawing.SystemColors.ControlText; DoubleBuffered = true;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); ForeColor = System.Drawing.SystemColors.ControlText;
this.MainMenuStrip = this.menuStrip1; Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
this.Name = "MainForm"; MainMenuStrip = menuStrip1;
this.Text = "Bookmark Manager"; Name = "MainForm";
this.menuStrip1.ResumeLayout(false); Text = "BukkuBuddy";
this.menuStrip1.PerformLayout(); menuStrip1.ResumeLayout(false);
this.rootContextMenu.ResumeLayout(false); menuStrip1.PerformLayout();
this.folderContextMenu.ResumeLayout(false); rootContextMenu.ResumeLayout(false);
this.pageContextMenu.ResumeLayout(false); folderContextMenu.ResumeLayout(false);
this.ResumeLayout(false); pageContextMenu.ResumeLayout(false);
this.PerformLayout(); ResumeLayout(false);
PerformLayout();
} }
#endregion #endregion
@ -576,7 +548,6 @@
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private RyzStudio.Windows.Forms.BookmarkTreeView treeView1;
private System.Windows.Forms.OpenFileDialog openFileDialog1; private System.Windows.Forms.OpenFileDialog openFileDialog1;
private System.Windows.Forms.ContextMenuStrip rootContextMenu; private System.Windows.Forms.ContextMenuStrip rootContextMenu;
private System.Windows.Forms.ToolStripMenuItem addPageToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem addPageToolStripMenuItem;
@ -607,6 +578,9 @@
private System.Windows.Forms.ToolStripMenuItem moveDownToolStripMenuItem1; private System.Windows.Forms.ToolStripMenuItem moveDownToolStripMenuItem1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
private RyzStudio.Windows.Forms.BookmarkTreeView treeView1;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem10;
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem11;
} }
} }

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,64 @@
<root> <?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true"> <xsd:element name="root" msdata:IsDataSet="true">
@ -80,297 +140,297 @@
<value> <value>
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAASwAAAKgAAADhAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA7gAAAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAABgAAAC+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAADExMSozMzPYMzMztDMzM2g3NzccAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAAkAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAN8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAANTU1PzQ1NfA1Njb+NjY2/jMzM/8zMzP/NDQ0zzMzM4I1NTU1AAAAAQAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABIAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDRTMzMz+EFCQv6ovb7/yebn/6C1tv9yfn//QURE/TMz AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
M/8zMzP/NDQ06zIyMqIzMzNVNzc3DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA/wAAAP8AAAD/AAAA/wIG
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzM28zMzP+VVhY/cXX2P/S7/D/0O7v/9Du B/8hVmP/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
7//Q7u//zuzt/7DIyf+CkZH/UlhY/jMzM/8zMzP/MzMz+DIyMrszMzNvNTU1HQAAAAAAAAAAAAAAAAAA lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXWI/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDMjIykzU1Nf9rb2/+zuLj/9nx AP8AAAD/AgYH/z+kvf9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7zW1/+Ro6P/Ymtr/zc4OP4zMzP/MzMz/zQ0 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
NNYzMzOIMzMzPAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAgzMzOqOTk5/3yC AAAAAADiAAAA/wAAAP8AAAD/IVZk/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
gv7U6er/3PLz/9Tv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8rn 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
6P+gtbb/cn5//0JFRf0zMzP/MzMz/zQ0NOwyMjKiMzMzVTc3Nw4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjY2EzI0 AAAAAAAAAAAAAAAAAAAAAAD6AAAA/wAAAP8AAAD/MoSY/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
NMU9PT3/iZGS/9jv7//c8vP/2/Lz/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/87s7f+wyMn/gpGR/1JYWP4zMzP/MzMz/zMzM/gyMjK7MzMzbzMz 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
Mx4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
AAAwMDAlNDQ03kFBQf+dqKj/2/Ly/9zy8//c8vP/1/Dx/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+71db/jJ2e/11l 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
Zv82Nzf+MzMz/zMzM/8zMzOGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW
AAAAAAAAAAAAADExMTk0NDTsS0tL/qy6uv/c8vP/3PLz/9zy8//c8vP/0u/w/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
7//Q7u//0O7v/9Du7//I5OX/nLGx/z5BQf4yMzPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAANDQ0TzQ0NPZWV1f9uMjI/9zy8//c8vP/3PLz/9zy8//a8vL/0O7v/9Du AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/2ZvcP8yMzP9MzMzDwAAAAAAAAAAAAAAAAAA 9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzNkNTU1/FxdXf3C09T/3PLz/9zy8//c8vP/3PLz/9zy AAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//W8PH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/4ucnP8zMzP/MzMzRgAA 9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQ0NIA0NDT/Zmlp/svd3v/c8vP/3PLz/9zy AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9zy8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7DI 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
yP8zMzP/MzMzgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJCQHMzMzpTU1Nf9zeXn/0ubn/9zy AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9zy8//c8vP/3PLz/9vy8/+QpKX/Xmts/8Db3P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//A29z/Xmts/5Ckpf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
7//Q7u//0O7v/87r7P86Ozv+MzMzvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLREyMjLANTU1/4OL AP8AAACqAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAF4AAAD/AAAA/wAAAP8AAAD/NIec/1LW
i//Y7u//3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9jx8v8bHx//AAAA/xUYGP+Zr6//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5mvr/8VGBj/AAAA/xsfH//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/9dZWX/NDQ09jMzMwUAAAAAAAAAAAAAAAAAAAAAMDAwIDQ0 AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOgAAAD/AAAA/wAA
NNc2Njb/lJ+f/9vx8v/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Xw8f8WGRn/AAAA/wAA AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
AP8BAQH/X2xt/8vo6f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6On/X2xt/wEBAf8AAAD/AAAA/xYZ 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+BkJD/MzMz/zU1NTUAAAAAAAAAAAAA 9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABYX/AAe6/wAHuv8AB7r/AAe6/wAHt/8AAR7/AAAA/wAA
AAAyMjIuNDQ05TY2Nv+gra3/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv AF4AAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8P8WGRn/AAAA/xcXF/8AAAD/AAAA/ykvL/+vycr/0O7v/9Du7//Q7u//0O7v/6/Jyv8pLy//AAAA/wAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
AP8XFxf/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+lu7v/MzMz/zQ0 9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ACej/AAno/wAF
NHEAAAAAAAAAAAAAAAAzMzPkNjc3/rDBwf/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy df8AAAD/AAAApgAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//c8vP/2/Lz/9Du7/8WGRn/AAAA/6mpqf+QkJD/BgYG/wAAAP8HCAj/dYaH/9Du7//Q7u//g5aX/woL 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
C/8AAAD/BAQE/39/f/+oqKj/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ
7//I5eb/NTU1/jQ0NK0AAAAAAAAAAAAAAAA0NDS3Nzc3/tnu7//d8/T/3fPz/93z8//c8vP/3PLz/9zy 6P8ACej/AAe4/wAABP4AAAHjAAAAEQAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du7/8WGRn/AAAA/6qqqv//////ysrK/yQkJP8AAAD/AAAA/0JM 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
TP9CTEz/AAAA/wAAAP8kJCT/ysrK//////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
7//Q7u//0O7v/9Du7//Q7u//UlhY/zQ0NOoAAAABAAAAAAAAAAAzMzN9MzMz/7/R0v/d8/T/3fPz/93z AP8ABqb/AAno/wAJ6P8ACd3/AAEh/gAAAP4AAACZAAAAdwAAAE4AAAD/AAAA/wAAAP8AAAD/NIec/1LW
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1vDx/9Du7/8WGRn/AAAA/6qqqv////////////Pz 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8/9hYWH/AAAA/wAAAP8AAAD/AAAA/2FhYf/z8/P///////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//d4SE/zMzM/8wMDAlAAAAAAAAAAAzMzNBMzMz/5yp AP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8AA1T/AAAA/wAAAP8AAAD/AAAA/wAAAOwAAAD/AAAA/wAA
qf/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7/8WGRn/AAAA/6qq AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
qv//////////////////////qamp/xEREf8RERH/qamp//////////////////////+qqqr/AAAA/xYZ 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//m6+v/zMzM/8yMjJgAAAAAAAA 9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAI2f8AAAH/BQMC/3JHJP8WDQf/AAAA/wAA
AAA5OTkJNDQ0+nR8fP/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du AGsAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7/8WGRn/AAAA/6qqqv////////////////////////////Ly8v/y8vL///////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wNvc/zMz 9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ABGH/AAAA/ycY
M/8zMzObAAAAAAAAAAAAAAAAMzMzyEZISP3d8vP/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy Df8AAAD/AAAAswAAAAEAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//c8vP/0u/w/9Du7/8WGRn/AAAA/6qqqv////////////////////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ
7//Q7u//0O7v/0ZKSv40NDTYAAAAAAAAAAAAAAAAMzMzjTMzM//K3N3/3fPz/93z8//c8vP/3PLz/9zy 6P8ACeH/AAIp/wAAAP8BAQDwAAAAGAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/2x3d/8zMzP+Li4uFgAAAAAAAAAAMjIyUjMzM/+ntbX/3fPz/93z AP8ABqb/AAno/wAJ6P8ACej/AAfB/wAAB/8AAAHxAAAAGAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du7/8WGRn/AAAA/6qqqv////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5Gjo/8zMzP/MzMzUAAAAAAAAAAAMTExFTMz AP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ACej/AAno/wAFg/8AAAD/AAAAtQAAAAEAAAD/AAAA/wAA
M/5/iYn/3fPz/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//b8vP/0O7v/9Du7/8WGRn/AAAA/6qq AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
qv////////////////////////////////////////////////////////////////+qqqr/AAAA/xYZ 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7bP0P8zMzP/MzMziwAA 9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABXn/AAeq/wAHqv8AB6r/AAeq/wAHqf8AASH/AAAA/wAA
AAAAAAAAAAAAADMzM9pRVVX+3fP0/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du AHMAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7/8WGRn/AAAA/6qqqv////////////////////////////////////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t 9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
7v89Pj/+NDQ0xgAAAAAAAAAAAAAAADIyMp0zMzP/0eXm/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy AP8AAAD/AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv////////////////////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8+JxT/VzYc/1c2
7//Q7u//0O7v/9Du7/9ia2v/NDQ0+zMzMwoAAAAAAAAAADQ0NGIzMzP/r8DA/93z8//d8/P/3PLz/9zy HP9TMxv/DAgE/wEBAf8KCgr/AAAA/wAAAMIAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Glpf/MzMz/zU1NT8AAAAAAAAAADQ0NCczMzP/iZWV/93z AP91SCX/pGU0/6RlNP+kZTT/glAp/wMCAf8BAQH/AQEB5gAAABIAAAD/AAAA/wAAAP8AAAD/NIec/1LW
8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du7/8WGRn/AAAA/6qqqv////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+rwsP/MzMz/zQ0NHsAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP91SCX/pGU0/6RlNP+kZTT/pGU0/1Q0G/8AAAD/AAAAvwAAAAAAAAD/AAAA/wAA
AAE0NDTqW2Fh/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7/8WGRn/AAAA/6qq AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
qv////////////////////////////////////////////////////////////////+qqqr/AAAA/xYZ 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6On/Nzc3/jQ0 9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP9dOh7/g1Eq/4NRKv+DUSr/g1Eq/4FQKf8WDgf/AAAA/wAA
NLcAAAAAAAAAAAAAAAA0NDStNjY2/tbs7f/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1/Dx/9Du AGAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7/8WGRn/AAAA/6qqqv////////////////////////////////////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
7/+dsrL/Njc3/jMzM+QAAAAAAAAAAAAAAAAzMzNzMzMz/7jKyv/d8/P/3PLz/9zy8//c8vP/3PLz/9zy AP8AAAD/AAAA/wAAAOkAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//c8vP/2vLy/9Du7/8gJCX/AAAA/5ubm/////////////////////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////+ampr/AAAA/yElJf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP9VVVX/d3d3/3Jy
7//Q7u//0O7v/4ydnv80NDT/NTU16TIyMjMAAAAAAAAAAAAAAAAzMzM3MzMz/5Gen//d8/P/3PLz/9zy cv8HBwf/AAAA+wAAAJkAAACIAAAAiAAAAFwAAAD/AAAA/wAAAP8AAAD/NIec/03J6P86mK//MoKW/zGA
8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P9OWlr/AAAA/xQUFP9jY2P/ZmZm/2ZmZv9mZmb/ZmZm/2Zm lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
Zv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2NjY/8TExP/AAAA/1BbXP/Q7u//0O7v/9Du7//Q7u//0O7v/9Du lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXaI/wAAAP8AAAD/AAAA/wAA
7//Q7u//0O7v/9Du7//P7e7/gpGR/zMzM/80NDTcMjIyJAAAAAAAAAAAAAAAAAAAAAAzMzMFNDQ09mZt AP+2trb///////r6+v8nJyf+AAAA/QAAAEUAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/FDU9/wIE
bv/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f+71tf/GBsb/wAAAP8AAAD/AAAA/wAA Bf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/GBsb/7zX2P/Q7u//0O7v/9Du AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/8vo6f9pc3P/MzMz/zMzM8czMzMUAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP+2trb////////////Nzc3/BQUF/gEBAekAAAAXAAAAAAAAAAAAAAD/AAAA/wAA
AAAAAAAAMzMzvzs8PP7b8PH/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9vy8//R7u//xODh/3KD AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
g/9MV1f/RU9Q/0VPUP9FT1D/RU9Q/0VPUP9FT1D/RU9Q/0VPUP9FT1D/RU9Q/0xXV/9zhIT/xODh/9Du AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//xeHi/1lhYf8zMzP/NDQ0rTk5OQkAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+2trb/////////////////ioqK/wAAAP8AAAC1AAAAAQAA
AAAAAAAAAAAAAAAAAAAAAAAAMzMzgzMzM/+/09T/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy AAAAAAD/AAAA/wAAAP8AAAD/AAAA/w0iKP8ve43/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zyd
8//V8PH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du tf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zyd
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+81tf/S09P/jMzM/8zMzORAAAAAgAA tf88nbX/PJ21/zydtf88nbX/N5Cm/wAAAP8AAAD/AAAA/wAAAP+2trb//////////////////f39/0RE
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIySDMzM/+bqqr/3fPz/9zy8//c8vP/3PLz/9zy RP8AAAD/AAAAZwAAAAAAAAD/AAAA/wAAAP8AAAD/ECox/1DQ8P9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9zy8//b8vP/0u/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7PMzf9DRkf9MzMz/jIy 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP+2trb/////////
MnUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3DjIzM/1yfH3/3fPz/9zy /////////////+Xl5f8TExP+AQEB9gAAACkAAAD/AAAA/wAAAP8AAAD/MYCT/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//pbu7/zk7 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
O/00NDT5MjIyVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIz AP8YGBj/IiIi/yIiIv8iIiL/IiIi/yIiIv8NDQ3/AAAA/wAAAMkAAAD/AAAA/wAAAP8AAAD/NIec/1LW
M9BAQkL+qry8/9Xq6//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9fx8v/Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
7/+Ro6P/NTU1/jQ1Ne0xMTE5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAADnAAAA3QAAAN0AAADdAAAA3QAAAN0AAADdAAAA3QAAALIAAAD6AAAA/wAA
AAAAAAAAAAAAADMzM4YzMzP/MzMz/zc4OP5qcXL/nq2u/8vf4P/c8vP/3PLz/9zy8//c8vP/3PLz/9zy AP8AAAD/MoSY/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//X8fL/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//z+3u/3+Njf8zMzP/NDQ03jAwMCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4WNDQ0XjMzM6o0NDT1MzMz/zQ0NP9TVlb+ipWV/7rL AAAAAADjAAAA/wAAAP8AAAD/IVdl/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
y//a7/D/3PLz/9zy8//c8vP/2PHy/9Hu7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//M6er/bHd3/zMzM/80NDTLLi4uFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkJNTU1RDMz AAAAAAAAAAAAAAAAAAAAAACpAAAA/wAAAP8AAAD/AwcI/z+kvv9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
M5E0NDTlMzMz/zMzM/9GSEj9eIGC/6q5uv/U6er/3PLz/9vy8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/8jl5v9faGj/MzMz/zIyMrEzMzMKAAAAAAAAAAAAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNAAAA/wAAAP8AAAD/AAAA/wMHCP8hV2X/MYCU/zGA
AAAAAAAAAAAAAAAAAAAAAAAANTU1KzMzM3cyNDTFMzMz/jMzM/82Njb+Ymlp/5elpf/F2tv/2fHy/9Lv lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wNvc/09VVf4zMzP/MzMzm0BAQAQAAAAAAAAAAAAA lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXWI/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uFjQ0NF4zMzOqNDQ09TMz AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
M/8zMzP/TFBQ/oSQkP+vw8P/z+vs/9Du7//Q7u//0O7v/9Du7/+1zs//RUlJ/TMzM/40NDSAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AN8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAOTk5CTU1NUQzMzORNDQ05TMzM/8zMzP/PT8//Wx1dv+Yq6z/xuLj/6e9vv87PT39NDQ0+jMz AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
M1oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAABgAAAC/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATU1NTUzMzOCMzMzzjMzM/8zMzP/NTY2/jU2 AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
Nv41NTXwNTU1PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAAkAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAKkAAADiAAAA+gAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3 AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
NxwzMzNoMzMztDMzM9gxMTEqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7gAAAG4AAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//g////wAA//8AP///AAD//gAH//8AAP/8 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAf/xBMAAAAAA//EEgAAAAAD/8QSAAAAAAP/xBAAA
AAD//wAA//AAAA//AAD/4AAAAf8AAP/AAAAAPwAA/4AAAAAfAAD/AAAAAB8AAP4AAAAADwAA/AAAAAAP AAAA//EEAAAAAAD/8QQAAAAAAP/xBAAAAAAA//EEAAAAAAD/8QQAAAAAAP/xBAAAAAAA//EEAAAAAAD/
AADwAAAAAA8AAOAAAAAADwAAwAAAAAAHAACAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAMAAAAA 8QQAAAAAAP/xBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAfEEAAAAAAAB8QQAAAAAAADxBAAA
AAAAAwAAAAAAAAADAAAAAAAAAAMAAIAAAAAAAwAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAwAAAAAAB AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAfEEAAAAAAAB8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAOAAAAAAAAAA4AAAAAAAAADgAAAAAAEAAOAA 8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAB8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAAfxBAAA
AAAAAwAA8AAAAAAHAADwAAAAAA8AAPAAAAAAPwAA8AAAAAB/AAD4AAAAAP8AAPgAAAAB/wAA/AAAAAP/ AAAAA/EEAAAAAAAB8QQAAAAAAAHxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAA//EEAAAAAAD/
AAD/gAAAB/8AAP/4AAAP/wAA//8AAD//AAD//+AAf/8AAP///AD//wAA////wf//AAAoAAAAIAAAAEAA 8QQAAAAAAP/xBAAAAAAA//EEgAAAAAD/8QSAAAAAAP/xBMAAAAAA//EE8AAAAAH/8QQoAAAAIAAAAEAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAtgAAAO8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAyMjJCOTo65jk7O6oyMjJWNzc3DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAALUAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAPsAAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAMjIyVzg4OPmKmpv+eomJ/kVKSvY1Njb8PD09xDIyMmszMzMeAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAD7AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NW5BQkL6tcXG/9Hu7//Q7u//0O7v/7vV1v+LnJ3/WF9f9jQ1 AP8CBgf/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUO
Nf06OzvfNDQ0iTMzMzwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA EP8FDhD/BQ4Q/wUOEP8FDhD/AgQF/wAAAP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4ODiDTU5O+sDS0v/Y8fL/0O7v/9Du7//Q7u//0O7v/9Du AP8AAAD/HElU/07L6v9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//xODh/5ywsP9pc3P4ODk5+jg5OfA3NzemMjIyTSQkJAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAAwAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMFOTk5qVdaWvjK3d3/3PLz/9Pv8P/Q7u//0O7v/9Du AAAAAADhAAAA/wEDBP9Nyun/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6en/ore4/3F9ffs+QED4Nzc39zs8PLIyMjJcNzc3DgAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAAADAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrDDo8PMBobGz40eXm/9zy8//b8vP/0O7v/9Du AAAAAAAAAAAAAAAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t7v+vx8f/fYyN/kBD 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAAAMAAA
Q/czMzN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2NhM8Pj7Pdnx8+NXq6//c8vP/3PLz/9fw AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAA
7//Q7u//i5yc/zs8PLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2NjYhOzw84YGIiPrY7+//3PLz/9zy AP8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8
7//Q7u//0O7v/9Du7/+vx8f/ODk58gAAAAEAAAAAAAAAAAAAAAAAAAAAMzMzLTo7O+2PmZn82vHy/9zy Rv8AAAD/AAAA/wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW
8//c8vP/3PLz/9vy8/9+kJD/m7Gy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//m7Gy/36Q 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
kP/Q7u//0O7v/9Du7//Q7u//0O7v/83q6/83Nzf7NDQ0JwAAAAAAAAAAAAAAADIyMkI6Ojr2nKio/dzy 9/9S1vf/FzxG/wAAAP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8IFBf/Utb3/1LW
8//c8vP/3PLz/9zy8//c8vP/2PHy/xASEv8CAgL/Y3Fx/83q6//Q7u//0O7v/9Du7//Q7u//zerr/2Nx 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
cf8CAgL/EBIS/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/1RaWvMyMjJhAAAAAAAAAAAyMjJbNzg4+qm4 9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAA+cAAAD/AAAA/wgU
uP/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//V8PH/DxER/xYWFv8AAAD/LzU2/7bQ0f/Q7u//0O7v/7bQ F/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
0f8vNTX/AAAA/xYWFv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//fYyM/jk5OaIAAAAAAAAAADg5 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAGo/8ACMn/AAjJ/wAHuP8AAAr7AAACdgAA
OeyisrL/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P8PERH/cnJy/62trf8QERH/DA0N/4eb AP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
nP+OoqP/DxER/w4ODv+lpaX/cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+it7j/Ozw84gAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAe8/wAJ6P8ACej/AANK+QAA
AAAAAAAAOzw8tpmnp//d8/T/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/0e7v/w8REf9ycnL//////97e CMcAAAADAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
3v84ODj/AAAA/wAAAP84ODj/3t7e//////9ycnL/DxER/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8Xh 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AB7z/AAno/wAF
4v80NDT+MzMzFAAAAAAzMzNzb3d3993z9P/d8/P/3PLz/9zy8//c8vP/3PLz/9vy8//Q7u//DxER/3Jy iv8AAAX7BgMBuQMCAJQAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
cv////////////r6+v9/f3//f39///r6+v///////////3Jycv8PERH/0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAH
7//Q7u//0O7v/0ZKSvQyMjJMAAAAADIyMjhDRET43fLz/93z8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du vP8ACeL/AQEH/y0cDv8IBQP+BwQBvgAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7/8PERH/cnJy////////////////////////////////////////////cnJy/w8REf/Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAA
7//Q7u//0O7v/9Du7//Q7u//bnp6+jU1NYcAAAAAMzMzBTU2NvnL3d7/3fPz/9zy8//c8vP/3PLz/9zy AP8AAAD/AAe8/wAJ6P8CBVr/EAoM/wQDAfAAAAAZAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW
8//Y8fL/0O7v/w8REf9ycnL///////////////////////////////////////////9ycnL/DxER/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Upqf/PD09zAAAAAAAAAAAPT4+zqq4uf/d8/P/3PLz/9zy 9/8XPEb/AAAA/wAAAP8AB7z/AAno/wAJ3/8AAR3/AAADsQAAAAAAAAD/AAAA/wgUF/9S1vf/Utb3/1LW
8//c8vP/3PLz/9jx8v/Q7u//DxER/3Jycv///////////////////////////////////////////3Jy 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
cv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v81NTX6KysrBgAAAAA0NDSJgouM+93z 9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAHvP8ACej/AAno/wAHu/8AAAT7AAAARQAAAP8AAAD/CBQX/1LW
8//c8vP/3PLz/9zy8//c8vP/2PHy/9Du7/8PERH/cnJy//////////////////////////////////// 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
////////cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//z+3u/zw+Pvg0NDQ2AAAAADQ0 9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/BQQU/wYEGf8BARf/AAEX/gAABf4AAAT2AAAA/wAA
NE5RVFT13fPz/93z8//c8vP/3PLz/9zy8//Y8fL/0O7v/w8REf9ycnL///////////////////////// AP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
//////////////////9ycnL/DxER/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//X2dn9TQ0 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP9YNhz/bUMj/1s4Hf8EAwL/BwcH/gcH
NHEAAAAAMzMzFDU1Nf7U6er/3fPz/9zy8//c8vP/3PLz/9ry8v/Q7u//DxER/3Jycv////////////// B8EAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
/////////////////////////////3Jycv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/4VSKv+kZTT/pGU0/1s5
7/+Hl5f/PD09tAAAAAAAAAAAOzw84rTFxv/d8/P/3PLz/9zy8//c8vP/2/Lz/9Du7/8PERH/cnJy//// Hv8FAwL+AAAAJgAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
////////////////////////////////////////cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/RywX/1c2
7//Q7u//0O7v/5KkpP84OTnsAAAAAAAAAAA4Ojqjj5uc/t3z8//c8vP/3PLz/9zy8//c8vP/0+/w/xkc HP9XNhz/VzUc/wkGA/4GAwG3AAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
HP9bW1v///////////////////////////////////////////9aWlr/GRwc/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAA
7//Q7u//0O7v/9Du7/+Xqqv/NjY2+zQ0NGMAAAAAAAAAADQ0NGNiZ2f13fPz/9zy8//c8vP/3PLz/9zy AP9CPz7/UE1L/w8MCv0JBgPcCgYDtQUDApwAAAD/AAAA/wgUF/87mbD/JWFv/yFWY/8hVmP/IVZj/yFW
8//W8PH/Xmts/wAAAP8ODw//EBER/xAREf8QERH/EBER/xAREf8QERH/Dg8P/wAAAP9fbW7/0O7v/9Du Y/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/wkY
7//Q7u//0O7v/9Du7//Q7u//i5yc/TY3N/c0NDRJAAAAAAAAAAAAAAAAMjIyKTk6Ovva8PD/3PLz/9zy HP8AAAD/AAAA/8/Pz//9/f3/MTEx+AgICKUAAAAAAAAAAAAAAP8AAAD/AgYH/wAAAP8AAAD/AAAA/wAA
8//c8vP/3PLz/9vy8//P6+z/gJOT/1ZiYv9TX2D/U19g/1NfYP9TX2D/U19g/1NfYP9WYmL/gZOU/87s AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
7f/Q7u//0O7v/9Du7//Q7u//z+3u/3mIiPw3ODjyMTExOQAAAAAAAAAAAAAAAAAAAAAAAAABODk58sDS AP8AAAD/AAAA/wAAAP8AAAD/z8/P///////d3d3/CQkJ+gAAAFkAAAAAAAAA/wAAAP8AAAD/FztE/z2f
0//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du uP9HudX/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e5
7//Q7u//0O7v/9Du7//Q7u//0O7v/8zp6v9ncXL5Nzk55jY2NiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 1v9Hudb/R7nW/0e51v8UND3/AAAA/wAAAP/Pz8////////////+goKD/BQUF9AAAAB8AAAD/AAAA/wIE
AAA7Pj69nKqr/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du Bf9R0/T/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//I5eb/XGRk+Ds8PNU3NzcXAAAAAAAAAAAAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/1NTU/9mZmb/ZmZm/2ZmZv8MDAz+CgoKyAAA
AAAAAAAAAAAAADMzM3hCRET3jZqb/r/S0v/b8vL/3PLz/9zy8//c8vP/2/Lz/9Lv8P/Q7u//0O7v/9Du AP8AAAD/BQwN/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wdzd/0tRUfc5OjrAKysrDAAAAAAAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAAArAAAAJkAAACZAAAAmQAA
AAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlw5OjqwNjc39kZISPeAiov7tMXG/9ju7v/c8vP/2vLz/9Lv AJkAAACCAAAA5gAAAP8BAwT/Tsvq/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v9DRkb4OTs7qjMzMwUAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAAwAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEMzMzPDc3N5Q4OTnqOjs7+211 AAAAAAAAAAAAAAAAAAAAAACtAAAA/wAAAP8dS1b/Tsvq/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
dvijsrL/z+Tl/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+wyMj/PT4/+Dc3N5UAAAACAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAD7AAAA/wAAAP8BAwT/BQ4Q/wUOEP8FDhD/BQ4Q/wUO
AAA1NTUrMzMzdzo7O840NDT+V1xc9o6cnP+60dL/0e7v/9Du7//Q7u//pry8/zg5Ofo3Nzd4AAAAAAAA EP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/AgQF/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAD7AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMx4yMjJrOjs7wjU1NftGS0vzfImK/IiYmf42Nzf6MjIyVwAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAACsAAAA4QAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlY5OzuqOTo65jIy AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
MkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wB///4AB//4A AP8AAAD/AAAA/wAAAP8AAAD/AAAAtQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAB+AAAAfAAAAHwAA
AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAwAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA AB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA
AACAAAAAwAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//8AB///4A////wf/KAAAABgA AAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAH4AAAB/AAAAfKAAAABgA
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAAAtAAAAO4AAAD/AAAA/wAA
AAAAAAAAOz4+Vzs8PO1DRkavMjIyUS4uLgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAABiAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz9pX2Nj78Le3/+rwsP/d4SF8EVI AAAAAAAAAAAAAAAAACsAAAD2AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
SO1CRUXQODg4ci8vLxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAALUAAAD/Dygu/z2f
AAAAAAAAAAAAAUJERotxd3fz0+rr/9Du7//Q7u//0O7v/9Du7/+2z9D/hJOU9k1SUus+QEDjPD4+hzIy t/9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAA
MjMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEQkNDq4WPj/Pa8PH/1fDx/9Du AP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAO4AAAD/PZ+4/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+/2tv/j6Ch/VdeXu8/QUHoQUNDnC8vLxsAAAAAAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAC4uLgtFSEjEl6Oj9tvy8v/c8vP/0e7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//I5eb/eYaH/Tk5OXUAAAAAAAAAAAAAAAAAAAAAOTk5EkVISNKmsrP53PLz/9zy 9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
8//Z8fL/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//ssrL/0NH 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAA
R74AAAAAAAAAAAAAAAAwMDAgRkhI4q++wP3c8vP/3PLz/9zy8/+kuLn/anh5/8zp6v/Q7u//0O7v/9Du AAAAAAAAAAAAAAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//zOnq/2p4ef+gt7j/0O7v/9Du7//Q7u//z+zt/z9BQuoAAAAAAAAAADQ0NCxHSUnnvtDQ/dzy 9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAAC8AAAARAAAAEQAAABEAAAAOQAAAP8AAAD/Q6/K/1LW
8//c8vP/3PLz/9zy8/90hIX/AAAA/y4zM/+0zs//0O7v/9Du7/+0zs//LjMz/wAAAP9zhIT/0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAA
7//Q7u//0O7v/1JYWOowMDAgAAAAADs9PezH2tv/3fPz/9zy8//c8vP/3PLz/9vy8/9zhIT/S0tL/2Zn AP8AARz4AANQ6wADUOsAAi3zAAAJ2gAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
Z/8NDg7/iJyd/4icnf8NDg7/Zmdn/0tLS/9zhIT/0O7v/9Du7//Q7u//0O7v/36NjfY1NTVcAAAAAENG 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAno/wAJ2/8AARnvAAAALQAA
RtDN4eH/3fPz/9zy8//c8vP/3PLz/9rx8v9zhIT/VFVV//////+rq6v/DxAQ/w8QEP+rq6v//////1RV AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
Vf9zhIT/0O7v/9Du7//Q7u//0O7v/6W7u/9CRkalAAAAAD5AQIutvL3+3fPz/9zy8//c8vP/3PLz/9jx 9/9S1vf/JmNy/wAAAP8AA1T/AAno/wEDSfwHBArkCAYDtQAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
8v9zhIT/VFVV////////////5eXl/+Xl5f///////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/8jk 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAnl/wcF
5f9BQ0PgAAAAADIyMkeDjY3x3fPz/9zy8//c8vP/3PLz/9bw8f9zhIT/VFVV//////////////////// E/8uHQ74DAcDkgAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
/////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/9GS0vsMzMzDzc3Nw5VWFnt3fPz/9zy 9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAno/wAHrv8BAQ/6AAAADAAAAP8AAAD/Q6/K/1LW
8//c8vP/3PLz/9bw8f9zhIT/VFVV/////////////////////////////////1RVVf9zhIT/0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAA
7//Q7u//0O7v/9Du7/9teXnvNDQ0RQAAAABARETi1+vs/9zy8//c8vP/3PLz/9bw8f9zhIT/VFVV//// AP8AA0n/AAjJ/wAIyf8AA035AAARmAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
/////////////////////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/+Xqqv+P0FBigAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8MBwr/IBQb/woHFP8DAxP+AgIL+AAA
AABBRESoucvL/9zy8//c8vP/3PLz/9fx8f9zhIT/VFVV/////////////////////////////////1RV AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
Vf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/+81tf/Q0VFzwAAAAA1NTVckp6e993z8//c8vP/3PLz/9nx 9/9S1vf/JmNy/wAAAP87JBP/pGU0/5tfMf8TDQj+BQUFbwAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
8v9zhIT/VFVV/////////////////////////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8aEw3/STUl/z4q
7/+2z9D/Oz097AAAAAA1NTUiYWho7N3z8//c8vP/3PLz/9zy8/+OoaL/HR4e/4iIiP+IiIj/iIiI/4iI Gv4fEwr7BwUC2gAAAP8AAAD/Q67J/0a41P9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Kr
iP+IiIj/iIiI/xwdHf+Po6T/0O7v/9Du7//Q7u//0O7v/67Fxv5CRUXpMzMzMgAAAAAAAAAAQUND69zx xv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAAAP9DQ0P/ubm5/wcHB/kAAABXAAAAOQAAAP8AAAD/CBUZ/wAA
8v/c8vP/3PLz/9zy8//T7u//b39//0dQUP9HUFD/R1BQ/0dQUP9HUFD/R1BQ/3CAgP/P7e7/0O7v/9Du AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
7//Q7u//n7S0/D9BQeQyMjIkAAAAAAAAAAAAAAAAREZGwMPW1//c8vP/3PLz/9zy8//b8vP/0e7v/9Du AP9QUFD//////5WVlfoUFBS8AAAAAAAAAP8AAAD/FzxF/0Ouyf9Hudb/R7nW/0e51v9Hudb/R7nW/0e5
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Spab4P0FB1zExMRUAAAAAAAAAAAAA 1v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/IVZj/wAAAP9cXFz///////////9ERETwCgoKZQAA
AAAAAAAAOTk5dYiUlPzV6+z/3PLz/9zy8//c8vP/2PHy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du AP8AAAD/QavF/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//z+3u/3yLi/ZBQ0PFLi4uCwAAAAAAAAAAAAAAAAAAAAAAAAAALy8vG0FDQ5xAQkLnZGlq7KCu 9/9S1vf/JmNy/wAAAP8GBgb5ExMT7xMTE+8QEBDxCgoK3gAAAPQAAAD/PaC5/1LW9/9S1vf/Utb3/1LW
rvzO4+P/3PLz/9jx8v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//O6+z/anV28kBBQ6xAQEAEAAAAAAAA 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU1Ijs7O3VCRETWUVVV7oyWl/a5zM3/0u7v/9Du AAAAAAAAAAAAAAAAALYAAAD/ECow/z2fuP9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Kr
7//Q7u//0O7v/8vp6f9gaGjwPkFBnQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA xv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAACwAAAD3AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAMTExFTU4OGBDR0e+SEpK63F8fPChtrf/wd3e/1FXV+88QUFyAAAAAAAA AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAtgAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAALi4uCzIyMlFDRkavOzw87Ts+PlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAABiAAAAAAAAAAAAAAAAAAAAAIAA
/0H+AP9B+AAPQfAAA0HgAANBwAADQYAAA0EAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA D0EAAA9BAAAPQQAAD0EAAA9BAAAPQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA
AEGAAABBwAABQcAAA0HAAAdBwAAPQfgAH0H/AH9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA AEEAAABBAAABQQAAAEEAAABBAAAPQQAAD0EAAA9BgAAPQSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEpRUXhaYWLXUFVVsEFERE9AQEAIAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAbAQMEuQECAvkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRaWo6jsLHw0O7v/8vo6f+mvLz4cHt721Va AP8BAgLtAAAACwAAAAAAAAAAAQMEugYPEfspbH3/LHKE/yxyhP8scoT/LHKE/yxyhP8scoT/LHKE/yxy
W8FGSkp1NTU1GAAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVA1VbW622xsf21vDx/9Du7//Q7u//0O7v/9Du hP8cSVT/AAAA/wAAABgAAAAAAAAAAAECAvkqbn//Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//O7O3/rMPE/XSAgeNXXV3INTU1IgAAAAAAAAAAJCQkB1leXru/0dH63PLz/9Pv8P/Q7u//0O7v/9Du 9/9S1vf/NIme/wAAAP8AAAAYAAAAAAAAAAAAAAD/LXWH/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//0O7v/9Du7//Q7u//ts/Q/0pQUHkAAAAALS0tEVthYcrJ3d793PLz/9vy8/9MVVX/tM7P/9Du 9/9S1vf/Utb3/zSJnv8AAAD/AAAAGAAAAAAAAAAAAAAA/y11h/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
7//Q7u//tM7P/0xVVf/Q7u//0O7v/8/t7v9VW1u3AAAAAFheXtDR5ub/3PLz/9zy8//Y8fL/KCoq/zg7 9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wACHakAAiGgAAIbjgAAAP8tdYf/Utb3/1LW9/9S1vf/Utb3/1LW
O/+JnJz/iZyc/zc6Ov8oKir/0O7v/9Du7//Q7u//Y2tr0QAAAABocHHL3fPz/9zy8//c8vP/1vDx/z1A 9/9S1vf/Utb3/1LW9/9S1vf/NIme/wAAAP8AB8X/AAer+wACJKIAAAD/LXWH/1LW9/9S1vf/Utb3/1LW
QP/39/f/aWtr/2lra//39/f/PUBA/9Du7//Q7u//0O7v/3yKiuUzMzMZUVhYqdjt7v/c8vP/3PLz/9Tw 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/zSJnv8AAAD/AAjR/wcGKfYSCwXIAAAA/y11h/9S1vf/Utb3/1LW
8f89QED//////////////////////z1AQP/Q7u//0O7v/9Du7/+ovsD9QENDW0JFRV27zs/93PLz/9zy 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wAI0v8KCUv9DwgIeQAAAP8tdYf/Utb3/1LW
8//U8PD/PUBA//////////////////////89QED/0O7v/9Du7//Q7u//y+jp/1FYWKY1NTUYkp6f6tzy 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/NIme/wAAAP8LCmX/AQVi/gECFugAAAD/LXWH/1LW
8//c8vP/1fDx/z1AQP//////////////////////PUBA/9Du7//Q7u//0O7v/9Du7/9eZ2fHAAAAAHN6 9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/zSJnv8AAAD/gVAp/1U3If8aFxXcAAAA/y11
etXc8vP/3PLz/9fx8f88Pz///////////////////////zw/P//Q7u//0O7v/9Du7//C3t7/UFdXzgAA h/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/0o/Nf8uIRb4DQkF0gAA
AABaYGC52/Ly/9zy8//a8vP/e4qL/zxAQP89QUH/PUFB/zxAQP98i4z/0O7v/9Du7/+81tf+U1pazTMz AP8XPEX/EzE4/xArMf8QKzH/ECsx/xArMf8QKzH/ECsx/xArMf8QKzH/Chsg/wAAAP/n5+f/RkZG3AAA
MxQAAAAASlBQfMfb3P/c8vP/3PLz/9Xw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+vx8f6T1VVvjMz ABYAAAD/ESwy/0rA3v9NyOf/Tcjn/03I5/9NyOf/Tcjn/03I5/9NyOf/Tcjn/zGAk/8AAAD/qamp/6Oj
MwoAAAAAAAAAADU1NSJbYmLJhpGS5r3P0P3a8fH/1O/w/9Du7//Q7u//0O7v/9Du7/+htrf0TVNTqlVV o/8jIyPKAAEB/CRfbv9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wAA
VQMAAAAAAAAAAAAAAAAAAAAAAAAAADk5ORJGS0tiXGNjuneAgN+htLT3yeXm/9Du7/+TpabvS09PmgAA AFYAAABEAAAAQAEDBLsGDxL7Km1+/yxyhP8scoT/LHKE/yxyhP8scoT/LHKE/yxyhP8scoT/HElU/wAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAIQURET1FXV7BaYWLXSlFReAAA AP8AAAAYAAAAAAAAAAAAAAAcAQMEuwEBAvoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
AAAAAAAAAAAAAAAAAAAAAAAA+D+sQfAHrEHAAaxBgAGsQQABrEEAAaxBAACsQQAArEEAAKxBAACsQYAA AP8BAgLtAAAACwAAAAAAAAAAAAOsQQADrEEAA6xBAAOsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA
rEGAAKxBgAGsQYADrEHgD6xB/B+sQQ== rEEAAKxBAACsQQAArEEAA6xBAAOsQQ==
</value> </value>
</data> </data>
</root> </root>

26
Models/AppOptions.cs Normal file
View File

@ -0,0 +1,26 @@
using System.Collections.Generic;
using System.Drawing;
using bzit.bomg.Models;
namespace FizzyLauncher.Models
{
public class AppOptions
{
public bool RestorePosition { get; set; } = true;
public bool AlwaysOnTop { get; set; } = false;
public string RunCommand { get; set; } = "{0}";
//public bool IgnoreSSL { get; set; } = false;
public Point StartPosition { get; set; } = Point.Empty;
public int Width { get; set; } = 0;
public int Height { get; set; } = 0;
public List<BookmarkModel> Items { get; set; } = new List<BookmarkModel>();
}
}

View File

@ -1,22 +0,0 @@
namespace FizzyLauncher.Models
{
public class AppSession
{
public enum AutoSaveOption
{
Prompt = 0,
Yes,
No
}
public bool EnableAutoPosition { get; set; } = true;
public bool AlwaysOnTop { get; set; } = false;
public AutoSaveOption AutoSave { get; set; } = AutoSaveOption.Prompt;
public string RunCommand { get; set; } = "{0}";
}
}

View File

@ -1,54 +0,0 @@
using BookmarkManager;
using System;
using System.Text;
namespace bzit.bomg.Models
{
public class BookmarkItem
{
public string SiteName { get; set; }
public string SiteAddress { get; set; }
public string SiteDescription { get; set; }
public string TreeviewPath { get; set; }
public string Notes { get; set; }
public new string ToString()
{
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrWhiteSpace(this.SiteName))
{
sb.AppendLine("Name");
sb.AppendLine(this.SiteName + Environment.NewLine);
}
if (!string.IsNullOrWhiteSpace(this.SiteAddress))
{
sb.AppendLine("Address");
sb.AppendLine(this.SiteAddress + Environment.NewLine);
}
if (!string.IsNullOrWhiteSpace(this.SiteDescription))
{
sb.AppendLine("Description");
sb.AppendLine(this.SiteDescription + Environment.NewLine);
}
if (!string.IsNullOrWhiteSpace(this.Notes))
{
sb.AppendLine("Notes");
sb.AppendLine(this.Notes + Environment.NewLine);
}
return sb.ToString();
}
public string ToHash() => Crypto.GetSHA256Hash(this.SiteAddress);
}
}

60
Models/BookmarkModel.cs Normal file
View File

@ -0,0 +1,60 @@
using System;
using System.Drawing;
using System.Text;
using System.Text.Json.Serialization;
namespace bzit.bomg.Models
{
public class BookmarkModel
{
public Guid Id { get; set; } = Guid.NewGuid();
public string Title { get; set; }
public string Address { get; set; }
public string Description { get; set; }
public string IconId { get; set; }
[JsonIgnore]
public Image Icon { get; set; }
public string Path { get; set; }
public string Notes { get; set; }
public new string ToString()
{
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrWhiteSpace(this.Title))
{
sb.AppendLine("Name");
sb.AppendLine(this.Title + Environment.NewLine);
}
if (!string.IsNullOrWhiteSpace(this.Address))
{
sb.AppendLine("Address");
sb.AppendLine(this.Address + Environment.NewLine);
}
if (!string.IsNullOrWhiteSpace(this.Description))
{
sb.AppendLine("Description");
sb.AppendLine(this.Description + Environment.NewLine);
}
if (!string.IsNullOrWhiteSpace(this.Notes))
{
sb.AppendLine("Notes");
sb.AppendLine(this.Notes + Environment.NewLine);
}
return sb.ToString();
}
}
}

49
Models/R4SaveFileModel.cs Normal file
View File

@ -0,0 +1,49 @@
using System.Text;
namespace BookmarkManager.Models
{
public class R4SaveFileModel
{
public string SiteName { get; set; }
public string SiteAddress { get; set; }
public string SiteDescription { get; set; }
public string TreeviewPath { get; set; }
public string Notes { get; set; }
public string Path
{
get
{
if (string.IsNullOrWhiteSpace(TreeviewPath))
{
return string.Empty;
}
var path = this.TreeviewPath?.Trim('\\')?.Trim() ?? string.Empty;
if (!path.Contains("\\"))
{
return path?.Trim() ?? string.Empty;
}
var sb = new StringBuilder();
var parts = path.Split("\\");
for (var i = 1; i < parts.Length; i++)
{
var item = System.Web.HttpUtility.UrlDecode(parts[i]);
sb.Append(item);
sb.Append("\n");
}
return sb.ToString()?.Trim() ?? string.Empty;
}
}
}
}

View File

@ -1,282 +0,0 @@
using bzit.bomg.Models;
using HtmlAgilityPack;
using RyzStudio.Net;
using System;
using System.Drawing;
using System.IO;
using System.Net;
namespace BookmarkManager
{
public class WebParser
{
protected HttpWeb webClient = null;
protected WebClient webClient2 = null;
public BookmarkResult RetrieveDetails(string url)
{
string sourceCode = retrieveSourceCode(url);
if (string.IsNullOrWhiteSpace(sourceCode))
{
return null;
}
BookmarkResult rs = new BookmarkResult();
rs.Item = new BookmarkItem();
HtmlDocument document = new HtmlDocument();
document.LoadHtml(sourceCode);
rs.Item.SiteName = parseSiteTitle(document);
rs.Item.SiteAddress = url;
rs.Item.SiteDescription = parseSiteDescription(document);
rs.IconURL = parseSiteIcon(document);
// resolve relative URL
if (!string.IsNullOrWhiteSpace(rs.IconURL))
{
Uri iconAddressURI;
bool rv = Uri.TryCreate(new Uri(url), rs.IconURL, out iconAddressURI);
if (rv)
{
rs.IconURL = iconAddressURI.ToString();
}
}
return rs;
}
public Bitmap RetrieveImage(string url)
{
if (string.IsNullOrWhiteSpace(url))
{
return null;
}
if (webClient2 == null) webClient2 = new WebClient();
webClient2.CachePolicy = new System.Net.Cache.RequestCachePolicy(System.Net.Cache.RequestCacheLevel.NoCacheNoStore);
try
{
byte[] byteData = webClient2.DownloadData(url);
if (!RyzStudio.IO.FileType.IsImage(byteData))
{
throw new Exception("Not a supported image");
}
Image img = Image.FromStream(new MemoryStream(byteData));
return new Bitmap(img, 16, 16);
}
catch (Exception)
{
return null;
}
}
protected string retrieveSourceCode(string url)
{
if (webClient == null) webClient = new HttpWeb();
string sourceCode;
try
{
int statusCode = webClient.GetResponse(out sourceCode, url);
if ((statusCode == 200) || (statusCode == 301) || (statusCode == 302))
{
return sourceCode;
}
}
catch (Exception)
{
return null;
}
return null;
}
protected string parseSiteDescription(HtmlDocument doc)
{
string rs = null;
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@name='description']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@property='og:description']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@name='twitter:description']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@property='og:description']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@itemprop='description']", "content", string.Empty);
}
return rs;
}
protected string parseSiteIcon(HtmlDocument doc)
{
string rs = null;
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'shortcut icon']", "href", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'icon']", "href", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'apple-touch-icon']", "href", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//link[translate(@rel, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'apple-touch-icon-precomposed']", "href", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[translate(@property, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'og:image']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[translate(@name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'twitter:image']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[translate(@property, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'og:image']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[translate(@itemprop, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz') = 'image']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = "/favicon.ico";
}
return rs;
}
protected string parseSiteTitle(HtmlDocument doc)
{
string rs = null;
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue(doc, "//title", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@property='og:title']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@name='twitter:title']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@property='og:site_name']", "content", string.Empty);
}
if (string.IsNullOrWhiteSpace(rs))
{
rs = parseTagValue_Attr(doc, "//meta[@itemprop='name']", "content", string.Empty);
}
return rs?.Trim() ?? string.Empty;
}
protected string parseTagValue(HtmlDocument doc, string xpath, string defaultValue = "")
{
HtmlNodeCollection hnc = doc.DocumentNode.SelectNodes(xpath);
if (hnc == null)
{
return defaultValue;
}
if (hnc.Count <= 0)
{
return defaultValue;
}
foreach (HtmlNode hn in hnc)
{
if (string.IsNullOrWhiteSpace(hn.InnerHtml))
{
continue;
}
string rs = WebUtility.HtmlDecode(hn.InnerHtml)?.Replace("\r", "")?.Replace("\n", " ")?.Trim();
if (string.IsNullOrWhiteSpace(rs))
{
continue;
}
return rs;
}
return defaultValue;
}
protected string parseTagValue_Attr(HtmlDocument doc, string xpath, string attr, string defaultValue = "")
{
HtmlNodeCollection hnc = doc.DocumentNode.SelectNodes(xpath);
if (hnc == null)
{
return defaultValue;
}
if (hnc.Count <= 0)
{
return defaultValue;
}
foreach (HtmlNode hn in hnc)
{
if (hn.Attributes[attr] == null)
{
continue;
}
if (string.IsNullOrWhiteSpace(hn.Attributes[attr].Value))
{
continue;
}
return System.Web.HttpUtility.HtmlDecode(hn.Attributes[attr].Value?.Trim());
}
return defaultValue;
}
}
}

View File

@ -1,299 +1,310 @@
using FizzyLauncher.Models; using System;
using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms; using RyzStudio.Windows.ThemedForms;
using System; using RyzStudio.Windows.ThemedForms.PickerBox;
namespace FizzyLauncher namespace FizzyLauncher
{ {
public class OptionsForm : TDialogForm public class OptionsForm : Form
{ {
private System.Windows.Forms.Label label1; private FlowLayoutPanel flowLayoutPanel1;
private TButton button1; private TTogglePanel panel1;
private TYesNoPickerBox pickerBox1; private TTogglePanel panel3;
private System.Windows.Forms.Label label6; private ThYesNoPickerBox yesNoPickerBox1;
private TYesNoPickerBox pickerBox2; private Label label2;
private System.Windows.Forms.Label label7; private TTogglePanel panel2;
private System.Windows.Forms.Label label8; private ThYesNoPickerBox thYesNoPickerBox1;
private TPickerBox pickerBox3; private Label label1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1; private ThYesNoPickerBox yesNoPickerBox2;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3; private Label label3;
private TTextBox textBox1; private RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox textBox1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2; private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
private AppOptions _appSession = null;
protected MainForm parentForm = null; public OptionsForm(AppOptions appSession)
public OptionsForm(MainForm parent) : base()
{ {
InitializeComponent(); InitializeComponent();
parentForm = parent; UISetup.Dialog(this);
pickerBox3.ComboBox.Items.Clear(); _appSession = appSession;
foreach (string item in Enum.GetNames(typeof(AppSession.AutoSaveOption)))
if (_appSession != null)
{ {
pickerBox3.ComboBox.Items.Add(item); yesNoPickerBox1.Value = _appSession.RestorePosition;
yesNoPickerBox2.Value = _appSession.AlwaysOnTop;
textBox1.Text = _appSession.RunCommand ?? string.Empty;
} }
if (pickerBox3.ComboBox.Items.Count > 0) pickerBox3.ComboBox.SelectedIndex = 0;
} }
private void InitializeComponent() private void InitializeComponent()
{ {
this.label1 = new System.Windows.Forms.Label(); flowLayoutPanel1 = new FlowLayoutPanel();
this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); panel1 = new TTogglePanel();
this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); yesNoPickerBox1 = new ThYesNoPickerBox();
this.label6 = new System.Windows.Forms.Label(); label2 = new Label();
this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox(); panel2 = new TTogglePanel();
this.label7 = new System.Windows.Forms.Label(); yesNoPickerBox2 = new ThYesNoPickerBox();
this.label8 = new System.Windows.Forms.Label(); thYesNoPickerBox1 = new ThYesNoPickerBox();
this.pickerBox3 = new RyzStudio.Windows.ThemedForms.TPickerBox(); label1 = new Label();
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); panel3 = new TTogglePanel();
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); textBox1 = new RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox();
this.tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator(); label3 = new Label();
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
this.SuspendLayout(); flowLayoutPanel1.SuspendLayout();
panel1.SuspendLayout();
panel2.SuspendLayout();
panel3.SuspendLayout();
SuspendLayout();
//
// flowLayoutPanel1
//
flowLayoutPanel1.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
flowLayoutPanel1.AutoScroll = true;
flowLayoutPanel1.BackColor = System.Drawing.Color.Transparent;
flowLayoutPanel1.Controls.Add(panel1);
flowLayoutPanel1.Controls.Add(panel2);
flowLayoutPanel1.Controls.Add(panel3);
flowLayoutPanel1.FlowDirection = FlowDirection.TopDown;
flowLayoutPanel1.Location = new System.Drawing.Point(8, 12);
flowLayoutPanel1.Name = "flowLayoutPanel1";
flowLayoutPanel1.Size = new System.Drawing.Size(436, 412);
flowLayoutPanel1.TabIndex = 194;
flowLayoutPanel1.WrapContents = false;
flowLayoutPanel1.Resize += flowLayoutPanel1_Resize;
//
// panel1
//
panel1.AutoScrollMargin = new System.Drawing.Size(0, 0);
panel1.AutoScrollMinSize = new System.Drawing.Size(0, 0);
panel1.Controls.Add(yesNoPickerBox1);
panel1.Controls.Add(label2);
panel1.ExpandedHeight = 100;
panel1.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
panel1.IsOpen = true;
panel1.Location = new System.Drawing.Point(0, 0);
panel1.Margin = new Padding(0);
panel1.Name = "panel1";
panel1.PaddingBottom = 0;
panel1.PaddingLeft = 4;
panel1.Size = new System.Drawing.Size(401, 77);
panel1.TabIndex = 0;
panel1.Title = "On Start-Up";
panel1.TitleContextMenuStrip = null;
panel1.TitleCursor = Cursors.Default;
//
// yesNoPickerBox1
//
yesNoPickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
yesNoPickerBox1.BackColor = System.Drawing.Color.Transparent;
yesNoPickerBox1.EnableReactiveVisual = true;
yesNoPickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
yesNoPickerBox1.Location = new System.Drawing.Point(307, 22);
yesNoPickerBox1.Name = "yesNoPickerBox1";
yesNoPickerBox1.SelectedIndex = 1;
yesNoPickerBox1.Size = new System.Drawing.Size(84, 34);
yesNoPickerBox1.TabIndex = 197;
yesNoPickerBox1.TabStop = false;
yesNoPickerBox1.Value = true;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = System.Drawing.Color.Transparent;
label2.ForeColor = System.Drawing.SystemColors.ControlText;
label2.Location = new System.Drawing.Point(1, 22);
label2.Margin = new Padding(0);
label2.Name = "label2";
label2.Padding = new Padding(0, 8, 0, 0);
label2.Size = new System.Drawing.Size(92, 23);
label2.TabIndex = 196;
label2.Text = "Restore Position";
label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// panel2
//
panel2.AutoScrollMargin = new System.Drawing.Size(0, 0);
panel2.AutoScrollMinSize = new System.Drawing.Size(0, 0);
panel2.Controls.Add(yesNoPickerBox2);
panel2.Controls.Add(thYesNoPickerBox1);
panel2.Controls.Add(label1);
panel2.ExpandedHeight = 100;
panel2.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
panel2.IsOpen = true;
panel2.Location = new System.Drawing.Point(0, 77);
panel2.Margin = new Padding(0);
panel2.Name = "panel2";
panel2.PaddingBottom = 0;
panel2.PaddingLeft = 4;
panel2.Size = new System.Drawing.Size(401, 77);
panel2.TabIndex = 2;
panel2.Title = "Appearance";
panel2.TitleContextMenuStrip = null;
panel2.TitleCursor = Cursors.Default;
//
// yesNoPickerBox2
//
yesNoPickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
yesNoPickerBox2.BackColor = System.Drawing.Color.Transparent;
yesNoPickerBox2.EnableReactiveVisual = true;
yesNoPickerBox2.Font = new System.Drawing.Font("Segoe UI", 9F);
yesNoPickerBox2.Location = new System.Drawing.Point(307, 22);
yesNoPickerBox2.Name = "yesNoPickerBox2";
yesNoPickerBox2.SelectedIndex = 1;
yesNoPickerBox2.Size = new System.Drawing.Size(84, 34);
yesNoPickerBox2.TabIndex = 198;
yesNoPickerBox2.TabStop = false;
yesNoPickerBox2.Value = true;
//
// thYesNoPickerBox1
//
thYesNoPickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
thYesNoPickerBox1.BackColor = System.Drawing.Color.Transparent;
thYesNoPickerBox1.EnableReactiveVisual = true;
thYesNoPickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
thYesNoPickerBox1.Location = new System.Drawing.Point(508, 22);
thYesNoPickerBox1.Name = "thYesNoPickerBox1";
thYesNoPickerBox1.SelectedIndex = 1;
thYesNoPickerBox1.Size = new System.Drawing.Size(84, 34);
thYesNoPickerBox1.TabIndex = 197;
thYesNoPickerBox1.TabStop = false;
thYesNoPickerBox1.Value = true;
// //
// label1 // label1
// //
this.label1.AutoSize = true; label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent; label1.BackColor = System.Drawing.Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText; label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 193); label1.Location = new System.Drawing.Point(1, 22);
this.label1.Margin = new System.Windows.Forms.Padding(0); label1.Margin = new Padding(0);
this.label1.Name = "label1"; label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10); label1.Padding = new Padding(0, 8, 0, 0);
this.label1.Size = new System.Drawing.Size(109, 34); label1.Size = new System.Drawing.Size(85, 23);
this.label1.TabIndex = 153; label1.TabIndex = 196;
this.label1.Text = "Custom Command"; label1.Text = "Always On Top";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// button1 // panel3
// //
this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); panel3.AutoScrollMargin = new System.Drawing.Size(0, 0);
this.button1.BackColor = System.Drawing.Color.Transparent; panel3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
this.button1.DefaultImage = null; panel3.Controls.Add(textBox1);
this.button1.DownImage = null; panel3.Controls.Add(label3);
this.button1.IsSelected = false; panel3.ExpandedHeight = 100;
this.button1.LabelText = "&Save"; panel3.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
this.button1.Location = new System.Drawing.Point(241, 469); panel3.IsOpen = true;
this.button1.Margin = new System.Windows.Forms.Padding(10); panel3.Location = new System.Drawing.Point(0, 154);
this.button1.Name = "button1"; panel3.Margin = new Padding(0);
this.button1.OverImage = null; panel3.Name = "panel3";
this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); panel3.PaddingBottom = 0;
this.button1.Size = new System.Drawing.Size(128, 32); panel3.PaddingLeft = 4;
this.button1.TabIndex = 173; panel3.Size = new System.Drawing.Size(401, 77);
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick); panel3.TabIndex = 1;
// panel3.Title = "Behaviour";
// pickerBox1 panel3.TitleContextMenuStrip = null;
// panel3.TitleCursor = Cursors.Default;
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, 85);
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
//
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(145, 34);
this.label6.TabIndex = 182;
this.label6.Text = "Auto Position On Start-Up";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// pickerBox2
//
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, 126);
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 = 185;
this.pickerBox2.Value = true;
//
// label7
//
this.label7.AutoSize = true;
this.label7.BackColor = System.Drawing.Color.Transparent;
this.label7.ForeColor = System.Drawing.SystemColors.ControlText;
this.label7.Location = new System.Drawing.Point(10, 126);
this.label7.Margin = new System.Windows.Forms.Padding(0);
this.label7.Name = "label7";
this.label7.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label7.Size = new System.Drawing.Size(89, 34);
this.label7.TabIndex = 184;
this.label7.Text = "Always-On-Top";
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label8
//
this.label8.AutoSize = true;
this.label8.BackColor = System.Drawing.Color.Transparent;
this.label8.ForeColor = System.Drawing.SystemColors.ControlText;
this.label8.Location = new System.Drawing.Point(10, 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(60, 34);
this.label8.TabIndex = 186;
this.label8.Text = "Auto Save";
this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// pickerBox3
//
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, 21);
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 = 187;
//
// 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(10, 0, 10, 0);
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
//
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(10, 0, 10, 0);
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;
//
// tHorizontalSeparator3
//
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, 164);
this.tHorizontalSeparator3.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0);
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 = 191;
// //
// textBox1 // textBox1
// //
this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
| System.Windows.Forms.AnchorStyles.Right))); textBox1.BackColor = System.Drawing.Color.Transparent;
this.textBox1.BackColor = System.Drawing.Color.Transparent; textBox1.ClearedValue = "{0}";
this.textBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point); textBox1.EnableReactiveVisual = true;
this.textBox1.Location = new System.Drawing.Point(192, 192); textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); textBox1.Icon = "O";
this.textBox1.Name = "textBox1"; textBox1.IconSize = 13F;
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); textBox1.Location = new System.Drawing.Point(161, 21);
this.textBox1.Size = new System.Drawing.Size(177, 35); textBox1.Name = "textBox1";
this.textBox1.SubmitButton = null; textBox1.Size = new System.Drawing.Size(230, 32);
this.textBox1.TabIndex = 192; textBox1.TabIndex = 203;
this.textBox1.UseSystemPasswordChar = false; textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// label3
//
label3.AutoSize = true;
label3.BackColor = System.Drawing.Color.Transparent;
label3.ForeColor = System.Drawing.SystemColors.ControlText;
label3.Location = new System.Drawing.Point(1, 21);
label3.Margin = new Padding(0);
label3.Name = "label3";
label3.Padding = new Padding(0, 8, 0, 0);
label3.Size = new System.Drawing.Size(88, 23);
label3.TabIndex = 199;
label3.Text = "Run Command";
label3.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(444, 84);
// //
// OptionsForm // OptionsForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F); AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; AutoScaleMode = AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(384, 521); BackColor = System.Drawing.Color.White;
this.Controls.Add(this.textBox1); ClientSize = new System.Drawing.Size(444, 521);
this.Controls.Add(this.tHorizontalSeparator3); Controls.Add(dialogFooter1);
this.Controls.Add(this.tHorizontalSeparator2); Controls.Add(flowLayoutPanel1);
this.Controls.Add(this.tHorizontalSeparator1); MinimumSize = new System.Drawing.Size(460, 560);
this.Controls.Add(this.pickerBox3); Name = "OptionsForm";
this.Controls.Add(this.label8); Text = "Options";
this.Controls.Add(this.pickerBox2); flowLayoutPanel1.ResumeLayout(false);
this.Controls.Add(this.label7); panel1.ResumeLayout(false);
this.Controls.Add(this.pickerBox1); panel1.PerformLayout();
this.Controls.Add(this.label6); panel2.ResumeLayout(false);
this.Controls.Add(this.button1); panel2.PerformLayout();
this.Controls.Add(this.label1); panel3.ResumeLayout(false);
this.MinimumSize = new System.Drawing.Size(400, 560); panel3.PerformLayout();
this.Name = "OptionsForm"; ResumeLayout(false);
this.Text = "Options";
this.ResumeLayout(false);
this.PerformLayout();
} }
protected override void OnShown(EventArgs e) protected override void OnLoad(EventArgs e)
{ {
base.OnShown(e); base.OnLoad(e);
this.DialogResult = System.Windows.Forms.DialogResult.None; flowLayoutPanel1_Resize(null, e);
if (parentForm == null)
{
return;
} }
if (parentForm.CurrentSession == null) private void flowLayoutPanel1_Resize(object sender, EventArgs e)
{ {
return; var width = flowLayoutPanel1.ClientRectangle.Width - SystemInformation.VerticalScrollBarWidth;
foreach (var item in flowLayoutPanel1.Controls.OfType<Control>())
{
item.Width = width;
}
} }
pickerBox3.ComboBox.SelectedIndex = (int)parentForm.CurrentSession.AutoSave; public AppOptions Result
pickerBox1.Value = parentForm.CurrentSession.EnableAutoPosition; {
pickerBox2.Value = parentForm.CurrentSession.AlwaysOnTop; get
textBox1.Text = parentForm.CurrentSession.RunCommand ?? string.Empty; {
if (_appSession == null)
{
_appSession = new AppOptions();
} }
private void button1_MouseClick(object sender, MouseEventArgs e) _appSession.RestorePosition = yesNoPickerBox1.Value;
{
if (parentForm != null)
{
if (parentForm.CurrentSession == null) parentForm.CurrentSession = new AppSession();
parentForm.CurrentSession.AutoSave = (AppSession.AutoSaveOption)pickerBox3.ComboBox.SelectedIndex; _appSession.AlwaysOnTop = yesNoPickerBox2.Value;
parentForm.CurrentSession.EnableAutoPosition = pickerBox1.Value;
parentForm.CurrentSession.AlwaysOnTop = pickerBox2.Value; _appSession.RunCommand = textBox1.Text ?? string.Empty;
parentForm.CurrentSession.RunCommand = textBox1.Text?.Trim();
return _appSession;
} }
this.DialogResult = DialogResult.OK;
this.Close();
} }
} }

View File

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

View File

@ -1,150 +0,0 @@
using RyzStudio.Windows.ThemedForms;
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace FizzyLauncher
{
public class PasswordForm : TDialogForm
{
private System.Windows.Forms.Label label1;
private TButton button1;
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
private TTextBox textBox1;
public PasswordForm()
{
InitializeComponent();
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
textBox1.InnerTextBox.MaxLength = 255;
textBox1.InnerTextBox.PreviewKeyDown += textBox1_PreviewKeyDown;
}
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.ForeColor = System.Drawing.SystemColors.ControlText;
this.label1.Location = new System.Drawing.Point(10, 21);
this.label1.Margin = new System.Windows.Forms.Padding(0);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 9, 0, 10);
this.label1.Size = new System.Drawing.Size(57, 34);
this.label1.TabIndex = 153;
this.label1.Text = "Password";
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 = "&OK";
this.button1.Location = new System.Drawing.Point(321, 99);
this.button1.Margin = new System.Windows.Forms.Padding(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);
//
// 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, 67);
this.tHorizontalSeparator1.Margin = new System.Windows.Forms.Padding(10, 0, 10, 0);
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(444, 22);
this.tHorizontalSeparator1.TabIndex = 188;
//
// 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.Location = new System.Drawing.Point(121, 20);
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
this.textBox1.Name = "textBox1";
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
this.textBox1.Size = new System.Drawing.Size(328, 35);
this.textBox1.SubmitButton = null;
this.textBox1.TabIndex = 191;
this.textBox1.UseSystemPasswordChar = true;
//
// PasswordForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(464, 151);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.tHorizontalSeparator1);
this.Controls.Add(this.button1);
this.Controls.Add(this.label1);
this.MinimumSize = new System.Drawing.Size(480, 190);
this.Name = "PasswordForm";
this.Text = "Password";
this.ResumeLayout(false);
this.PerformLayout();
}
protected override void OnShown(EventArgs e)
{
base.OnShown(e);
this.DialogResult = System.Windows.Forms.DialogResult.None;
textBox1.InnerTextBox.Focus();
}
[Browsable(false)]
public string Password => textBox1.Text;
private void textBox1_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
{
switch (e.KeyCode)
{
case Keys.Enter:
button1_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
break;
case Keys.Escape:
this.Close();
break;
default: break;
}
}
private void button1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}
}

View File

@ -1,60 +0,0 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -1,7 +1,6 @@
using BookmarkManager;
using RyzStudio.IO;
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms; using System.Windows.Forms;
namespace FizzyLauncher namespace FizzyLauncher
@ -19,5 +18,6 @@ namespace FizzyLauncher
Application.SetCompatibleTextRenderingDefault(false); Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm()); Application.Run(new MainForm());
} }
} }
} }

View File

@ -1,17 +0,0 @@
<?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>

View File

@ -1,17 +0,0 @@
<?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>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 601 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 597 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 713 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 419 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 372 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 436 B

View File

@ -1,641 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="169.84447"
height="96.385719"
viewBox="0 0 169.84447 96.385719"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="feather feather-save"
version="1.1"
id="svg8"
sodipodi:docname="icons.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs12" />
<sodipodi:namedview
fit-margin-bottom="0"
fit-margin-right="0"
fit-margin-left="0"
fit-margin-top="0"
inkscape:document-rotation="0"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview10"
showgrid="false"
inkscape:zoom="6.2608413"
inkscape:cx="114.18197"
inkscape:cy="50.603105"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<g
id="g842"
transform="matrix(0.80171614,0,0,0.7982539,18.396568,-1.5965078)"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<path
id="path2"
d="M 19,21 H 5 A 2,2 0 0 1 3,19 V 5 A 2,2 0 0 1 5,3 h 11 l 5,5 v 11 a 2,2 0 0 1 -2,2 z" />
<polyline
id="polyline4"
points="17 21 17 13 7 13 7 21" />
<polyline
id="polyline6"
points="7 3 7 8 15 8" />
</g>
<g
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g894"
transform="matrix(0.65647058,0,0,0.65647058,4e-8,20)"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<circle
id="circle880"
r="3"
cy="12"
cx="12"
style="stroke:#d4d4d4;stroke-opacity:1" />
<path
id="path882"
d="m 19.4,15 a 1.65,1.65 0 0 0 0.33,1.82 l 0.06,0.06 a 2,2 0 0 1 0,2.83 2,2 0 0 1 -2.83,0 L 16.9,19.65 a 1.65,1.65 0 0 0 -1.82,-0.33 1.65,1.65 0 0 0 -1,1.51 V 21 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 V 20.91 A 1.65,1.65 0 0 0 9,19.4 1.65,1.65 0 0 0 7.18,19.73 l -0.06,0.06 a 2,2 0 0 1 -2.83,0 2,2 0 0 1 0,-2.83 L 4.35,16.9 a 1.65,1.65 0 0 0 0.33,-1.82 1.65,1.65 0 0 0 -1.51,-1 H 3 a 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 H 3.09 A 1.65,1.65 0 0 0 4.6,9 1.65,1.65 0 0 0 4.27,7.18 L 4.21,7.12 a 2,2 0 0 1 0,-2.83 2,2 0 0 1 2.83,0 L 7.1,4.35 A 1.65,1.65 0 0 0 8.92,4.68 H 9 A 1.65,1.65 0 0 0 10,3.17 V 3 a 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 v 0.09 a 1.65,1.65 0 0 0 1,1.51 1.65,1.65 0 0 0 1.82,-0.33 l 0.06,-0.06 a 2,2 0 0 1 2.83,0 2,2 0 0 1 0,2.83 L 19.65,7.1 A 1.65,1.65 0 0 0 19.32,8.92 V 9 a 1.65,1.65 0 0 0 1.51,1 H 21 a 2,2 0 0 1 2,2 2,2 0 0 1 -2,2 h -0.09 a 1.65,1.65 0 0 0 -1.51,1 z"
style="stroke:#d4d4d4;stroke-opacity:1" />
</g>
<g
transform="matrix(0.80171614,0,0,0.7982539,-1.6034323,-1.5965078)"
id="g842-8"
style="stroke:#d4d4d4;stroke-opacity:1"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<path
d="M 19,21 H 5 A 2,2 0 0 1 3,19 V 5 A 2,2 0 0 1 5,3 h 11 l 5,5 v 11 a 2,2 0 0 1 -2,2 z"
id="path2-6"
style="stroke:#d4d4d4;stroke-opacity:1" />
<polyline
points="17 21 17 13 7 13 7 21"
id="polyline4-7"
style="stroke:#d4d4d4;stroke-opacity:1" />
<polyline
points="7 3 7 8 15 8"
id="polyline6-7"
style="stroke:#d4d4d4;stroke-opacity:1" />
</g>
<g
transform="matrix(0.65647058,0,0,0.65647058,20,20)"
id="g894-2"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<circle
cx="12"
cy="12"
r="3"
id="circle880-3" />
<path
d="m 19.4,15 a 1.65,1.65 0 0 0 0.33,1.82 l 0.06,0.06 a 2,2 0 0 1 0,2.83 2,2 0 0 1 -2.83,0 L 16.9,19.65 a 1.65,1.65 0 0 0 -1.82,-0.33 1.65,1.65 0 0 0 -1,1.51 V 21 a 2,2 0 0 1 -2,2 2,2 0 0 1 -2,-2 V 20.91 A 1.65,1.65 0 0 0 9,19.4 1.65,1.65 0 0 0 7.18,19.73 l -0.06,0.06 a 2,2 0 0 1 -2.83,0 2,2 0 0 1 0,-2.83 L 4.35,16.9 a 1.65,1.65 0 0 0 0.33,-1.82 1.65,1.65 0 0 0 -1.51,-1 H 3 a 2,2 0 0 1 -2,-2 2,2 0 0 1 2,-2 H 3.09 A 1.65,1.65 0 0 0 4.6,9 1.65,1.65 0 0 0 4.27,7.18 L 4.21,7.12 a 2,2 0 0 1 0,-2.83 2,2 0 0 1 2.83,0 L 7.1,4.35 A 1.65,1.65 0 0 0 8.92,4.68 H 9 A 1.65,1.65 0 0 0 10,3.17 V 3 a 2,2 0 0 1 2,-2 2,2 0 0 1 2,2 v 0.09 a 1.65,1.65 0 0 0 1,1.51 1.65,1.65 0 0 0 1.82,-0.33 l 0.06,-0.06 a 2,2 0 0 1 2.83,0 2,2 0 0 1 0,2.83 L 19.65,7.1 A 1.65,1.65 0 0 0 19.32,8.92 V 9 a 1.65,1.65 0 0 0 1.51,1 H 21 a 2,2 0 0 1 2,2 2,2 0 0 1 -2,2 h -0.09 a 1.65,1.65 0 0 0 -1.51,1 z"
id="path882-5" />
</g>
<g
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g958"
transform="matrix(0.7484492,0,0,0.7484492,-0.74844916,39.251551)"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<circle
id="circle941"
r="10"
cy="12"
cx="12"
style="stroke:#d4d4d4;stroke-opacity:1" />
<path
id="path943"
d="m 9.09,9 a 3,3 0 0 1 5.83,1 c 0,2 -3,3 -3,3"
style="stroke:#d4d4d4;stroke-opacity:1" />
<line
id="line945"
y2="17"
x2="12.01"
y1="17"
x1="12"
style="stroke:#d4d4d4;stroke-opacity:1" />
</g>
<g
transform="matrix(0.7484492,0,0,0.7484492,19.251551,39.251551)"
id="g958-4"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<circle
cx="12"
cy="12"
r="10"
id="circle941-9" />
<path
d="m 9.09,9 a 3,3 0 0 1 5.83,1 c 0,2 -3,3 -3,3"
id="path943-1" />
<line
x1="12"
y1="17"
x2="12.01"
y2="17"
id="line945-3" />
</g>
<g
transform="translate(36,-4)"
id="g1510"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="12"
y1="5"
x2="12"
y2="19"
id="line1496" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="5"
y1="12"
x2="19"
y2="12"
id="line1498" />
</g>
<g
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1510-0"
transform="translate(56,-4)">
<line
id="line1496-5"
y2="19"
x2="12"
y1="5"
x1="12" />
<line
id="line1498-1"
y2="12"
x2="19"
y1="12"
x1="5" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
transform="matrix(0.81929378,0,0,0.81929378,38.361382,18.491799)"
id="g1560"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<path
style="stroke:#d4d4d4;stroke-opacity:1"
d="m 12,20 h 9"
id="path1546" />
<path
style="stroke:#d4d4d4;stroke-opacity:1"
d="m 16.5,3.5 a 2.1213203,2.1213203 0 0 1 3,3 L 7,19 3,20 4,16 Z"
id="path1548" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1560-8"
transform="matrix(0.81929378,0,0,0.81929378,58.361382,18.491799)">
<path
id="path1546-2"
d="m 12,20 h 9" />
<path
id="path1548-4"
d="m 16.5,3.5 a 2.1213203,2.1213203 0 0 1 3,3 L 7,19 3,20 4,16 Z" />
</g>
<line
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
x1="41"
y1="48"
x2="55"
y2="48"
id="line1498-7" />
<line
id="line1498-1-9"
y2="48"
x2="75"
y1="48"
x1="61"
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:round" />
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
transform="matrix(0.88705882,0,0,0.88705882,36.451765,57.338728)"
id="g1631"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<polygon
style="stroke:#d4d4d4;stroke-opacity:1"
points="19,4 19,20 9,12 "
id="polygon1617" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="5"
y1="19"
x2="5"
y2="5"
id="line1619" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1631-1"
transform="matrix(0.88705882,0,0,0.88705882,56.451765,57.338728)">
<polygon
id="polygon1617-1"
points="9,12 19,4 19,20 " />
<line
id="line1619-8"
y2="5"
x2="5"
y1="19"
x1="5" />
</g>
<g
transform="matrix(0.712,0,0,0.712,-0.12988241,63.506823)"
id="g1706"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<polyline
style="stroke:#d4d4d4;stroke-opacity:1"
points="3 6 5 6 21 6"
id="polyline1686" />
<path
style="stroke:#d4d4d4;stroke-opacity:1"
d="m 19,6 v 14 a 2,2 0 0 1 -2,2 H 7 A 2,2 0 0 1 5,20 V 6 M 8,6 V 4 a 2,2 0 0 1 2,-2 h 4 a 2,2 0 0 1 2,2 v 2"
id="path1688" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="10"
y1="11"
x2="10"
y2="17"
id="line1690" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="14"
y1="11"
x2="14"
y2="17"
id="line1692" />
</g>
<g
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1706-5"
transform="matrix(0.712,0,0,0.712,19.691294,63.39953)">
<polyline
id="polyline1686-0"
points="3 6 5 6 21 6" />
<path
id="path1688-2"
d="m 19,6 v 14 a 2,2 0 0 1 -2,2 H 7 A 2,2 0 0 1 5,20 V 6 M 8,6 V 4 a 2,2 0 0 1 2,-2 h 4 a 2,2 0 0 1 2,2 v 2" />
<line
id="line1690-1"
y2="17"
x2="10"
y1="11"
x1="10" />
<line
id="line1692-7"
y2="17"
x2="14"
y1="11"
x1="14" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
transform="matrix(0.88297886,0,0,0.81929262,37.468085,78.361347)"
id="g1746"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<polygon
style="stroke:#d4d4d4;stroke-opacity:1"
points="5,21 5,3 19,12 "
id="polygon1735" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1746-7"
transform="matrix(0.88297886,0,0,0.81929262,57.468085,78.361347)">
<polygon
id="polygon1735-2"
points="19,12 5,21 5,3 " />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
transform="matrix(0.80034632,0,0,0.80034632,78.399307,-1.6006926)"
id="g1783"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<rect
style="stroke:#d4d4d4;stroke-opacity:1"
x="3"
y="3"
width="18"
height="18"
rx="2"
ry="2"
id="rect1766" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="12"
y1="8"
x2="12"
y2="16"
id="line1768" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="8"
y1="12"
x2="16"
y2="12"
id="line1770" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1783-8"
transform="matrix(0.80034632,0,0,0.80034632,98.399307,-1.6006926)">
<rect
id="rect1766-0"
ry="2"
rx="2"
height="18"
width="18"
y="3"
x="3" />
<line
id="line1768-6"
y2="16"
x2="12"
y1="8"
x1="12" />
<line
id="line1770-7"
y2="12"
x2="16"
y1="12"
x1="8" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
transform="matrix(0.80034632,0,0,0.80034632,78.399307,18.399307)"
id="g1823"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<rect
style="stroke:#d4d4d4;stroke-opacity:1"
x="3"
y="3"
width="18"
height="18"
rx="2"
ry="2"
id="rect1809" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="8"
y1="12"
x2="16"
y2="12"
id="line1811" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1823-1"
transform="matrix(0.80034632,0,0,0.80034632,98.399307,18.399307)">
<rect
id="rect1809-3"
ry="2"
rx="2"
height="18"
width="18"
y="3"
x="3" />
<line
id="line1811-8"
y2="12"
x2="16"
y1="12"
x1="8" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
transform="matrix(0.81745949,0,0,0.81745949,81.164106,40.822659)"
id="g1863"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="3"
y1="12"
x2="21"
y2="12"
id="line1846" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="3"
y1="6"
x2="21"
y2="6"
id="line1848" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="3"
y1="18"
x2="21"
y2="18"
id="line1850" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1863-1"
transform="matrix(0.81745949,0,0,0.81745949,101.35765,40.982382)">
<line
id="line1846-4"
y2="12"
x2="21"
y1="12"
x1="3" />
<line
id="line1848-6"
y2="6"
x2="21"
y1="6"
x1="3" />
<line
id="line1850-4"
y2="18"
x2="21"
y1="18"
x1="3" />
</g>
<g
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g929"
transform="matrix(0.74589532,0,0,0.74589532,96.546258,74.664217)">
<circle
id="circle915"
r="10"
cy="12"
cx="12" />
<rect
id="rect917"
height="6"
width="6"
y="9"
x="9" />
</g>
<g
id="g983"
style="stroke:#d4d4d4;stroke-opacity:1"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<circle
cx="139.14354"
cy="71.717644"
r="7.4589534"
id="circle915-1"
style="fill:none;stroke:#d4d4d4;stroke-width:1.49179;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1" />
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1"
id="g1863-1-2"
transform="matrix(0.3092242,0,0,0.3092242,135.44162,67.965769)">
<line
id="line1846-4-8"
y2="12"
x2="21"
y1="12"
x1="3"
style="stroke:#d4d4d4;stroke-opacity:1" />
<line
id="line1848-6-9"
y2="6"
x2="21"
y1="6"
x1="3"
style="stroke:#d4d4d4;stroke-opacity:1" />
<line
id="line1850-4-1"
y2="18"
x2="21"
y1="18"
x1="3"
style="stroke:#d4d4d4;stroke-opacity:1" />
</g>
</g>
<g
id="g983-2"
transform="translate(22.49608,0.1576808)"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<circle
style="fill:none;stroke:#000000;stroke-width:1.49179;stroke-linecap:round;stroke-linejoin:round"
id="circle915-1-5"
r="7.4589534"
cy="71.717644"
cx="139.14354" />
<g
transform="matrix(0.3092242,0,0,0.3092242,135.44162,67.965769)"
id="g1863-1-2-2"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
inkscape:export-xdpi="96"
inkscape:export-ydpi="96">
<line
x1="3"
y1="12"
x2="21"
y2="12"
id="line1846-4-8-9" />
<line
x1="3"
y1="6"
x2="21"
y2="6"
id="line1848-6-9-2" />
<line
x1="3"
y1="18"
x2="21"
y2="18"
id="line1850-4-1-6" />
</g>
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
transform="matrix(0.81631862,0,0,0.81631862,125.0902,8.8119001)"
id="g1794"
style="fill:none;stroke:#d4d4d4;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
<circle
style="stroke:#d4d4d4;stroke-opacity:1"
cx="11"
cy="11"
r="8"
id="circle1780" />
<line
style="stroke:#d4d4d4;stroke-opacity:1"
x1="21"
y1="21"
x2="16.65"
y2="16.65"
id="line1782" />
</g>
<g
inkscape:export-ydpi="96"
inkscape:export-xdpi="96"
style="fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round"
id="g1794-0"
transform="matrix(0.81631862,0,0,0.81631862,145.93404,10.169544)">
<circle
id="circle1780-4"
r="8"
cy="11"
cx="11" />
<line
id="line1782-3"
y2="16.65"
x2="16.65"
y1="21"
x1="21" />
</g>
</svg>

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 380 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 394 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 382 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

BIN
Resources/file.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 B

After

Width:  |  Height:  |  Size: 318 B

BIN
Resources/help-circle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 648 B

BIN
Resources/icon-64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
Resources/save.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 454 B

BIN
Resources/search-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 605 B

BIN
Resources/search.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 B

BIN
Resources/settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 694 B

BIN
Resources/trash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 B

View File

@ -1,444 +0,0 @@
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;
}
}
}

View File

@ -1,124 +0,0 @@
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;
}
}
}

View File

@ -1,56 +0,0 @@
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;
}
}
}

View File

@ -1,290 +0,0 @@
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
}
}

View File

@ -1,241 +0,0 @@
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;
}
}
}

View File

@ -1,168 +0,0 @@
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;
}
}
}

View File

@ -1,69 +0,0 @@
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);
}
}
}
}

View File

@ -1,63 +0,0 @@
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;
}
}

View File

@ -1,158 +0,0 @@
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();
}
}
}

View File

@ -1,115 +0,0 @@
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);
}
}
}
}

View File

@ -1,434 +0,0 @@
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;
//}
}
}

View File

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

View File

@ -1,37 +0,0 @@
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
}
}

View File

@ -1,101 +0,0 @@
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
namespace RyzStudio.Windows.Forms
{
public partial class THorizontalSeparator : System.Windows.Forms.UserControl
{
public THorizontalSeparator()
{
InitializeComponent();
this.BackColor = Color.Transparent;
this.Margin = new Padding(10, 0, 10, 0);
this.MaximumSize = new Size(SystemInformation.VirtualScreen.Width, 22);
this.MinimumSize = new Size(0, 22);
this.Padding = new Padding(0, 10, 0, 10);
}
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 = value; }
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new Padding Padding { get => base.Padding; set => base.Padding = value; }
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
public new DockStyle Dock { get => base.Dock; set => base.Dock = value; }
}
}

View File

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

View File

@ -1,84 +0,0 @@
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);
}
}
}

View File

@ -1,258 +0,0 @@
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();
}
}
}
}

View File

@ -1,73 +0,0 @@
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; }
}
}

View File

@ -1,787 +0,0 @@
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(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(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;
}
}
}
}

View File

@ -1,98 +0,0 @@
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());
}
}
}

View File

@ -1,59 +0,0 @@
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;
}
}

Some files were not shown because too many files have changed in this diff Show More