Compare commits
53 Commits
release-0.
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| de42bc7f66 | |||
|
|
f769de084e | ||
|
|
b4f236266a | ||
|
|
5f2aeb78bf | ||
| 3c4e1c735a | |||
|
|
b17ba5665b | ||
|
|
ce54eb7ce4 | ||
|
|
0a7bf62bff | ||
| a8ecd88fd3 | |||
|
|
10df3a2219 | ||
|
|
c90a34904d | ||
| 527c87889e | |||
|
|
a7c9e8ca6d | ||
|
|
d0eda9ff29 | ||
|
|
52fe954e25 | ||
|
|
06ab54cf9a | ||
|
|
847accc213 | ||
|
|
9c461c74d1 | ||
|
|
9b7dd4bdc9 | ||
|
|
fc764a4e97 | ||
| 476ada0b82 | |||
|
|
5fccba35a8 | ||
|
|
61fcbb6230 | ||
|
|
cf6a45b637 | ||
|
|
e98111bf04 | ||
|
|
68a9f8e616 | ||
|
|
e6818c28e8 | ||
|
|
7512811921 | ||
|
|
c39971b653 | ||
|
|
47671138f1 | ||
|
|
c6344e0281 | ||
|
|
c6bf2495f9 | ||
|
|
7430326e50 | ||
|
|
fd25ed788e | ||
|
|
29b9caa9bb | ||
|
|
de88dc029b | ||
|
|
0ab49f1f16 | ||
|
|
3d62d6ea97 | ||
|
|
a1777634fd | ||
|
|
17bd46c9cd | ||
|
|
185d9aa253 | ||
|
|
b09e431e15 | ||
|
|
ecc0883fe0 | ||
|
|
2faeedc72e | ||
|
|
1d333057d8 | ||
|
|
e1409f9945 | ||
|
|
db6c2797cc | ||
|
|
00f58d8259 | ||
|
|
f7d6b1c6a6 | ||
|
|
60f199b0f2 | ||
|
|
435be52d11 | ||
|
|
665d93a8f2 | ||
|
|
47661657dc |
312
AddBatchPageForm.cs
Normal 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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
@ -26,36 +26,36 @@
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
63
AppResource.Designer.cs
generated
@ -19,7 +19,7 @@ namespace BookmarkManager {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
internal class AppResource {
|
||||
@ -61,20 +61,58 @@ namespace BookmarkManager {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Ray Lam.
|
||||
/// Looks up a localized string similar to .
|
||||
/// </summary>
|
||||
internal static string app_author {
|
||||
internal static string AppAuthorURL {
|
||||
get {
|
||||
return ResourceManager.GetString("app_author", resourceCulture);
|
||||
return ResourceManager.GetString("AppAuthorURL", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Bookmark Manager.
|
||||
/// Looks up a localized string similar to https://www.hiimray.co.uk.
|
||||
/// </summary>
|
||||
internal static string app_name {
|
||||
internal static string AppCompanyURL {
|
||||
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>
|
||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||
/// </summary>
|
||||
internal static System.Drawing.Bitmap loading_block {
|
||||
internal static System.Drawing.Bitmap icon_64 {
|
||||
get {
|
||||
object obj = ResourceManager.GetObject("loading_block", resourceCulture);
|
||||
object obj = ResourceManager.GetObject("icon_64", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
|
||||
/// <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>
|
||||
internal static string url_help {
|
||||
internal static System.Drawing.Bitmap trash {
|
||||
get {
|
||||
return ResourceManager.GetString("url_help", resourceCulture);
|
||||
object obj = ResourceManager.GetObject("trash", resourceCulture);
|
||||
return ((System.Drawing.Bitmap)(obj));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -112,18 +112,30 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="app_author" xml:space="preserve">
|
||||
<value>Ray Lam</value>
|
||||
<data name="AppAuthorURL" xml:space="preserve">
|
||||
<value />
|
||||
</data>
|
||||
<data name="app_name" xml:space="preserve">
|
||||
<value>Bookmark Manager</value>
|
||||
<data name="AppCompanyURL" xml:space="preserve">
|
||||
<value>https://www.hiimray.co.uk</value>
|
||||
</data>
|
||||
<data name="AppHelpURL" xml:space="preserve">
|
||||
<value>https://www.hiimray.co.uk/software-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>
|
||||
<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">
|
||||
<value>Resources\bookmark.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
@ -139,10 +151,10 @@
|
||||
<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>
|
||||
</data>
|
||||
<data name="loading_block" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\loading-block.gif;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
<data name="icon_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\icon-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
<data name="url_help" xml:space="preserve">
|
||||
<value>https://www.hiimray.co.uk/software-bookmark-manager</value>
|
||||
<data name="trash" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||
<value>Resources\trash.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||
</data>
|
||||
</root>
|
||||
400
BookmarkForm.cs
@ -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;
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
@ -2,49 +2,60 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net5.0-windows</TargetFramework>
|
||||
<TargetFramework>net8.0-windows8.0</TargetFramework>
|
||||
<UseWindowsForms>true</UseWindowsForms>
|
||||
<NoWin32Manifest>true</NoWin32Manifest>
|
||||
<ApplicationIcon>favicon.ico</ApplicationIcon>
|
||||
<SignAssembly>false</SignAssembly>
|
||||
<AssemblyName>bookmarkmanager</AssemblyName>
|
||||
<AssemblyName>bukkubuddy</AssemblyName>
|
||||
<Authors>Ray Lam</Authors>
|
||||
<Company>Hi, I'm Ray</Company>
|
||||
<Product>Bookmark Manager</Product>
|
||||
<Product>BukkuBuddy</Product>
|
||||
<Copyright>Ray Lam</Copyright>
|
||||
<AssemblyVersion>0.4.0.130</AssemblyVersion>
|
||||
<FileVersion>0.4.0.130</FileVersion>
|
||||
<Version>0.4.0.130</Version>
|
||||
<PackageId>bookmarkmanager</PackageId>
|
||||
<AssemblyVersion>1.0.0.0</AssemblyVersion>
|
||||
<FileVersion>1.0.0.0</FileVersion>
|
||||
<Version>0.6.2.092</Version>
|
||||
<PackageId>bukkubuddy</PackageId>
|
||||
<RunAnalyzersDuringLiveAnalysis>True</RunAnalyzersDuringLiveAnalysis>
|
||||
<SupportedOSPlatformVersion>8.0</SupportedOSPlatformVersion>
|
||||
<Description>BukkuBuddy Bookmark Manager</Description>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<DebugType>none</DebugType>
|
||||
<DebugSymbols>false</DebugSymbols>
|
||||
<PlatformTarget>x64</PlatformTarget>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Remove="#\**" />
|
||||
<Compile Remove="Classes\**" />
|
||||
<Compile Remove="DTO\**" />
|
||||
<Compile Remove="RyzStudio\Data\**" />
|
||||
<Compile Remove="RyzStudio\IO\**" />
|
||||
<Compile Remove="RyzStudio\Net\**" />
|
||||
<Compile Remove="Net\**" />
|
||||
<Compile Remove="References\**" />
|
||||
<Compile Remove="Resources\UI\**" />
|
||||
<Compile Remove="RyzStudio\**" />
|
||||
<Compile Remove="Text\**" />
|
||||
<EmbeddedResource Remove="#\**" />
|
||||
<EmbeddedResource Remove="Classes\**" />
|
||||
<EmbeddedResource Remove="DTO\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\Data\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\IO\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\Net\**" />
|
||||
<EmbeddedResource Remove="Net\**" />
|
||||
<EmbeddedResource Remove="References\**" />
|
||||
<EmbeddedResource Remove="Resources\UI\**" />
|
||||
<EmbeddedResource Remove="RyzStudio\**" />
|
||||
<EmbeddedResource Remove="Text\**" />
|
||||
<None Remove="#\**" />
|
||||
<None Remove="Classes\**" />
|
||||
<None Remove="DTO\**" />
|
||||
<None Remove="RyzStudio\Data\**" />
|
||||
<None Remove="RyzStudio\IO\**" />
|
||||
<None Remove="RyzStudio\Net\**" />
|
||||
<None Remove="Net\**" />
|
||||
<None Remove="References\**" />
|
||||
<None Remove="Resources\UI\**" />
|
||||
<None Remove="RyzStudio\**" />
|
||||
<None Remove="Text\**" />
|
||||
</ItemGroup>
|
||||
|
||||
@ -53,16 +64,7 @@
|
||||
<Compile Remove="Models\TileModel.cs" />
|
||||
<Compile Remove="NewForm.cs" />
|
||||
<Compile Remove="OpenFileForm.cs" />
|
||||
<Compile Remove="RyzStudio\Windows\Forms\StackLayoutPanel.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="PasswordForm.cs" />
|
||||
<Compile Remove="Windows\Forms\BookmarkTreeViewSNode.cs" />
|
||||
<Compile Remove="Windows\Forms\EditGroupForm.cs" />
|
||||
<Compile Remove="Windows\Forms\EditTileFolderForm.cs" />
|
||||
@ -77,10 +79,7 @@
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Remove="NewForm.resx" />
|
||||
<EmbeddedResource Remove="OpenFileForm.resx" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\Forms\TForm.resx" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\BorderlessForm.resx" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\BorderlessToolForm.resx" />
|
||||
<EmbeddedResource Remove="RyzStudio\Windows\ThemedForms\TNumericBox.resx" />
|
||||
<EmbeddedResource Remove="PasswordForm.resx" />
|
||||
<EmbeddedResource Remove="Windows\Forms\EditGroupForm.resx" />
|
||||
<EmbeddedResource Remove="Windows\Forms\EditTileFolderForm.resx" />
|
||||
<EmbeddedResource Remove="Windows\Forms\EditTileForm.resx" />
|
||||
@ -91,14 +90,14 @@
|
||||
|
||||
<ItemGroup>
|
||||
<None Remove=".gitignore" />
|
||||
<None Remove="build.bat" />
|
||||
<None Remove="build64.bat" />
|
||||
<None Remove="installer-64.iss" />
|
||||
<None Remove="installer-86.iss" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="RyzStudio\IO\FileType.cs" />
|
||||
<Compile Include="RyzStudio\IO\SharpZipLib.cs" />
|
||||
<Compile Include="RyzStudio\Net\HttpWeb.cs" />
|
||||
<Content Include="favicon.ico" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -107,29 +106,12 @@
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>AppResource.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="RyzStudio\Windows\ThemedForms\TProgressBar.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Update="UpdateIconsForm.cs">
|
||||
<Compile Update="AddBatchPageForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Update="FindForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<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>
|
||||
<Compile Update="UpdateIconsForm.cs" />
|
||||
<Compile Update="FindForm.cs" />
|
||||
<Compile Update="EditBookmarkForm.cs" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -137,20 +119,12 @@
|
||||
<Generator>ResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>AppResource.Designer.cs</LastGenOutput>
|
||||
</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>
|
||||
<PackageReference Include="HtmlAgilityPack" Version="1.11.34" />
|
||||
<PackageReference Include="Microsoft.Data.Sqlite" Version="5.0.10" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="SharpZipLib" Version="1.3.2" />
|
||||
<PackageReference Include="HtmlAgilityPack" Version="1.11.61" />
|
||||
<PackageReference Include="RyzStudio" Version="8.1.2.366" />
|
||||
<PackageReference Include="RyzStudio.Windows.Forms" Version="8.1.3.689" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@ -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;
|
||||
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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[]));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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; }
|
||||
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,17 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
@ -26,36 +26,36 @@
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
@ -117,4 +117,7 @@
|
||||
<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>
|
||||
170
FindForm.cs
@ -1,42 +1,48 @@
|
||||
using RyzStudio.Windows.Forms;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using bzit.bomg.Models;
|
||||
using RyzStudio.Windows.Forms;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
|
||||
|
||||
namespace FizzyLauncher
|
||||
{
|
||||
public class FindForm : TDialogForm
|
||||
public class FindForm : Form
|
||||
{
|
||||
private System.Windows.Forms.Label label1;
|
||||
private TButton button2;
|
||||
private ThButton button2;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
||||
private TButton button1;
|
||||
private TTextBox textBox1;
|
||||
private ThButton button1;
|
||||
private ThClearableTextBox textBox1;
|
||||
|
||||
|
||||
private BookmarkTreeView treeView1 = null;
|
||||
private bool findNextNew = false;
|
||||
private int findPosition = -1;
|
||||
|
||||
|
||||
public FindForm(BookmarkTreeView treeView)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
this.MinimizeBox = false;
|
||||
this.MaximizeBox = false;
|
||||
this.ShowIcon = false;
|
||||
this.ShowInTaskbar = true;
|
||||
|
||||
treeView1 = treeView;
|
||||
|
||||
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
|
||||
|
||||
textBox1.InnerTextBox.PreviewKeyDown += textBox1_PreviewKeyDown;
|
||||
textBox1.PreviewKeyDown += textBox1_PreviewKeyDown;
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
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.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
|
||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.textBox1 = new ThClearableTextBox();
|
||||
this.button1 = new RyzStudio.Windows.ThemedForms.ThButton();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// label1
|
||||
@ -55,19 +61,18 @@ namespace FizzyLauncher
|
||||
//
|
||||
// button2
|
||||
//
|
||||
this.button2.ActiveImage = null;
|
||||
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.DefaultImage = null;
|
||||
this.button2.DownImage = null;
|
||||
this.button2.IsSelected = false;
|
||||
this.button2.HoverImage = null;
|
||||
this.button2.IdleImage = null;
|
||||
this.button2.LabelText = "&Next";
|
||||
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.OverImage = null;
|
||||
this.button2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
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);
|
||||
//
|
||||
// tHorizontalSeparator1
|
||||
@ -78,44 +83,42 @@ namespace FizzyLauncher
|
||||
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.Margin = new System.Windows.Forms.Padding(5, 0, 5, 10);
|
||||
this.tHorizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2);
|
||||
this.tHorizontalSeparator1.MinimumSize = new System.Drawing.Size(0, 22);
|
||||
this.tHorizontalSeparator1.Name = "tHorizontalSeparator1";
|
||||
this.tHorizontalSeparator1.Padding = new System.Windows.Forms.Padding(0, 10, 0, 10);
|
||||
this.tHorizontalSeparator1.Size = new System.Drawing.Size(444, 22);
|
||||
this.tHorizontalSeparator1.TabIndex = 188;
|
||||
this.tHorizontalSeparator1.TabStop = false;
|
||||
//
|
||||
// textBox1
|
||||
//
|
||||
this.textBox1.AcceptButton = this.button2;
|
||||
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.TabIndex = 0;
|
||||
this.textBox1.UseSystemPasswordChar = false;
|
||||
//
|
||||
// button1
|
||||
//
|
||||
this.button1.ActiveImage = null;
|
||||
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.HoverImage = null;
|
||||
this.button1.IdleImage = null;
|
||||
this.button1.LabelText = "&First";
|
||||
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.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 = 192;
|
||||
this.button1.TabIndex = 1;
|
||||
this.button1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.button1_MouseClick);
|
||||
//
|
||||
// FindForm
|
||||
@ -139,31 +142,16 @@ namespace FizzyLauncher
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
this.DialogResult = System.Windows.Forms.DialogResult.None;
|
||||
|
||||
textBox1.InnerTextBox.Focus();
|
||||
textBox1.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)
|
||||
{
|
||||
switch (e.KeyCode)
|
||||
{
|
||||
case Keys.Enter:
|
||||
if (findNextNew)
|
||||
if (findPosition < 0)
|
||||
{
|
||||
button1_MouseClick(sender, new MouseEventArgs(MouseButtons.Left, 1, 0, 0, 0));
|
||||
}
|
||||
@ -176,37 +164,91 @@ namespace FizzyLauncher
|
||||
case Keys.Escape:
|
||||
this.Close();
|
||||
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)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(textBox1.Text)) return;
|
||||
if (treeView1.Nodes.Count <= 0) return;
|
||||
if (string.IsNullOrWhiteSpace(textBox1.Text))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
findNextNew = false;
|
||||
treeView1.FindTextNode(treeView1.Nodes[0], textBox1.Text?.Trim());
|
||||
if (treeView1.Nodes.Count <= 0)
|
||||
{
|
||||
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)
|
||||
{
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(textBox1.Text)) return;
|
||||
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)
|
||||
if (string.IsNullOrWhiteSpace(textBox1.Text))
|
||||
{
|
||||
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
@ -1,4 +1,8 @@
|
||||
namespace FizzyLauncher
|
||||
using RyzStudio;
|
||||
using RyzStudio.IO;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
|
||||
namespace FizzyLauncher
|
||||
{
|
||||
partial class MainForm
|
||||
{
|
||||
@ -28,526 +32,494 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
components = new System.ComponentModel.Container();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm));
|
||||
this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView();
|
||||
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||
this.rootContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.addPageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.sortToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.folderContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.addPageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.addFolderToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.openAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.editToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.sortToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pageContextMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
|
||||
this.openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.editToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.deleteToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator();
|
||||
this.moveUpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.moveDownToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.menuStrip1.SuspendLayout();
|
||||
this.rootContextMenu.SuspendLayout();
|
||||
this.folderContextMenu.SuspendLayout();
|
||||
this.pageContextMenu.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
saveFileDialog1 = new System.Windows.Forms.SaveFileDialog();
|
||||
menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||
fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem13 = new System.Windows.Forms.ToolStripSeparator();
|
||||
closeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem14 = new System.Windows.Forms.ToolStripSeparator();
|
||||
saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem15 = new System.Windows.Forms.ToolStripSeparator();
|
||||
exitToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
viewToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
expandAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
collapseAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
|
||||
alwaysOnTopToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem9 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
optionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
helpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
viewHelpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem16 = new System.Windows.Forms.ToolStripSeparator();
|
||||
aboutToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
|
||||
rootContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
|
||||
addPageToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
addFolderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator();
|
||||
editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
|
||||
sortToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
folderContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
|
||||
addPageToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem10 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
addFolderToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator();
|
||||
openAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
editToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem5 = new System.Windows.Forms.ToolStripSeparator();
|
||||
sortToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem6 = new System.Windows.Forms.ToolStripSeparator();
|
||||
moveUpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
moveDownToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
pageContextMenu = new System.Windows.Forms.ContextMenuStrip(components);
|
||||
openToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem7 = new System.Windows.Forms.ToolStripSeparator();
|
||||
editToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
deleteToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
toolStripMenuItem8 = new System.Windows.Forms.ToolStripSeparator();
|
||||
moveUpToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
moveDownToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
treeView1 = new RyzStudio.Windows.Forms.BookmarkTreeView();
|
||||
toolStripMenuItem11 = new System.Windows.Forms.ToolStripMenuItem();
|
||||
menuStrip1.SuspendLayout();
|
||||
rootContextMenu.SuspendLayout();
|
||||
folderContextMenu.SuspendLayout();
|
||||
pageContextMenu.SuspendLayout();
|
||||
SuspendLayout();
|
||||
//
|
||||
// saveFileDialog1
|
||||
//
|
||||
this.saveFileDialog1.DefaultExt = "jsnx";
|
||||
this.saveFileDialog1.Filter = "Bookmarks files (*.jsnx)|*.jsnx|Bookmarks files (*.ryz)|*.ryz";
|
||||
this.saveFileDialog1.Title = "Save bookmarks file";
|
||||
saveFileDialog1.DefaultExt = "jsnx";
|
||||
saveFileDialog1.Filter = "Bookmark files (compressed)|*.jsnx|Bookmark files|*.json;*.jsonfig";
|
||||
saveFileDialog1.Title = "Save bookmarks file";
|
||||
//
|
||||
// menuStrip1
|
||||
//
|
||||
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.fileToolStripMenuItem,
|
||||
this.toolStripMenuItem1,
|
||||
this.viewToolStripMenuItem,
|
||||
this.toolsToolStripMenuItem,
|
||||
this.helpToolStripMenuItem1});
|
||||
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;
|
||||
menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { fileToolStripMenuItem, toolStripMenuItem1, viewToolStripMenuItem, toolsToolStripMenuItem, helpToolStripMenuItem1 });
|
||||
menuStrip1.Location = new System.Drawing.Point(0, 0);
|
||||
menuStrip1.Name = "menuStrip1";
|
||||
menuStrip1.Size = new System.Drawing.Size(300, 24);
|
||||
menuStrip1.TabIndex = 2;
|
||||
menuStrip1.MenuActivate += menuStrip1_MenuActivate;
|
||||
//
|
||||
// fileToolStripMenuItem
|
||||
//
|
||||
this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.newToolStripMenuItem,
|
||||
this.openToolStripMenuItem,
|
||||
this.toolStripMenuItem13,
|
||||
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";
|
||||
fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { newToolStripMenuItem, openToolStripMenuItem, toolStripMenuItem13, closeToolStripMenuItem, toolStripMenuItem14, saveToolStripMenuItem, saveAsToolStripMenuItem, toolStripMenuItem15, exitToolStripMenuItem2 });
|
||||
fileToolStripMenuItem.Name = "fileToolStripMenuItem";
|
||||
fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20);
|
||||
fileToolStripMenuItem.Text = "&File";
|
||||
//
|
||||
// newToolStripMenuItem
|
||||
//
|
||||
this.newToolStripMenuItem.Image = global::BookmarkManager.UIResource.file2;
|
||||
this.newToolStripMenuItem.Name = "newToolStripMenuItem";
|
||||
this.newToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N)));
|
||||
this.newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.newToolStripMenuItem.Text = "&New";
|
||||
this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click);
|
||||
newToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||
newToolStripMenuItem.Name = "newToolStripMenuItem";
|
||||
newToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.N;
|
||||
newToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
newToolStripMenuItem.Text = "&New";
|
||||
newToolStripMenuItem.Click += newToolStripMenuItem_Click;
|
||||
//
|
||||
// openToolStripMenuItem
|
||||
//
|
||||
this.openToolStripMenuItem.Image = global::BookmarkManager.UIResource.folder2;
|
||||
this.openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||
this.openToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
|
||||
this.openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.openToolStripMenuItem.Text = "&Open";
|
||||
this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click);
|
||||
openToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||
openToolStripMenuItem.Name = "openToolStripMenuItem";
|
||||
openToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O;
|
||||
openToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
openToolStripMenuItem.Text = "&Open";
|
||||
openToolStripMenuItem.Click += openToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem13
|
||||
//
|
||||
this.toolStripMenuItem13.Name = "toolStripMenuItem13";
|
||||
this.toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
|
||||
toolStripMenuItem13.Name = "toolStripMenuItem13";
|
||||
toolStripMenuItem13.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// closeToolStripMenuItem
|
||||
//
|
||||
this.closeToolStripMenuItem.Name = "closeToolStripMenuItem";
|
||||
this.closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.closeToolStripMenuItem.Text = "&Close";
|
||||
this.closeToolStripMenuItem.Click += new System.EventHandler(this.closeToolStripMenuItem_Click);
|
||||
closeToolStripMenuItem.Name = "closeToolStripMenuItem";
|
||||
closeToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
closeToolStripMenuItem.Text = "&Close";
|
||||
closeToolStripMenuItem.Click += closeToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem14
|
||||
//
|
||||
this.toolStripMenuItem14.Name = "toolStripMenuItem14";
|
||||
this.toolStripMenuItem14.Size = new System.Drawing.Size(143, 6);
|
||||
toolStripMenuItem14.Name = "toolStripMenuItem14";
|
||||
toolStripMenuItem14.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// saveToolStripMenuItem
|
||||
//
|
||||
this.saveToolStripMenuItem.Image = global::BookmarkManager.UIResource.disk2;
|
||||
this.saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||
this.saveToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
|
||||
this.saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.saveToolStripMenuItem.Text = "&Save";
|
||||
this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click);
|
||||
saveToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||
saveToolStripMenuItem.Name = "saveToolStripMenuItem";
|
||||
saveToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S;
|
||||
saveToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
saveToolStripMenuItem.Text = "&Save";
|
||||
saveToolStripMenuItem.Click += saveToolStripMenuItem_Click;
|
||||
//
|
||||
// saveAsToolStripMenuItem
|
||||
//
|
||||
this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
|
||||
this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
this.saveAsToolStripMenuItem.Text = "Save &As...";
|
||||
this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click);
|
||||
saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem";
|
||||
saveAsToolStripMenuItem.Size = new System.Drawing.Size(146, 22);
|
||||
saveAsToolStripMenuItem.Text = "Save &As...";
|
||||
saveAsToolStripMenuItem.Click += saveAsToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem15
|
||||
//
|
||||
this.toolStripMenuItem15.Name = "toolStripMenuItem15";
|
||||
this.toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
|
||||
toolStripMenuItem15.Name = "toolStripMenuItem15";
|
||||
toolStripMenuItem15.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// exitToolStripMenuItem2
|
||||
//
|
||||
this.exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
|
||||
this.exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
|
||||
this.exitToolStripMenuItem2.Text = "E&xit";
|
||||
this.exitToolStripMenuItem2.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
|
||||
exitToolStripMenuItem2.Name = "exitToolStripMenuItem2";
|
||||
exitToolStripMenuItem2.Size = new System.Drawing.Size(146, 22);
|
||||
exitToolStripMenuItem2.Text = "E&xit";
|
||||
exitToolStripMenuItem2.Click += exitToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem1
|
||||
//
|
||||
this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.findToolStripMenuItem});
|
||||
this.toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||
this.toolStripMenuItem1.Size = new System.Drawing.Size(39, 20);
|
||||
this.toolStripMenuItem1.Text = "&Edit";
|
||||
toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { findToolStripMenuItem });
|
||||
toolStripMenuItem1.Name = "toolStripMenuItem1";
|
||||
toolStripMenuItem1.Size = new System.Drawing.Size(39, 20);
|
||||
toolStripMenuItem1.Text = "&Edit";
|
||||
//
|
||||
// findToolStripMenuItem
|
||||
//
|
||||
this.findToolStripMenuItem.Image = global::BookmarkManager.UIResource.search2;
|
||||
this.findToolStripMenuItem.Name = "findToolStripMenuItem";
|
||||
this.findToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F)));
|
||||
this.findToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
|
||||
this.findToolStripMenuItem.Text = "&Find";
|
||||
this.findToolStripMenuItem.Click += new System.EventHandler(this.findToolStripMenuItem_Click);
|
||||
findToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||
findToolStripMenuItem.Name = "findToolStripMenuItem";
|
||||
findToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F;
|
||||
findToolStripMenuItem.Size = new System.Drawing.Size(137, 22);
|
||||
findToolStripMenuItem.Text = "&Find";
|
||||
findToolStripMenuItem.Click += findToolStripMenuItem_Click;
|
||||
//
|
||||
// viewToolStripMenuItem
|
||||
//
|
||||
this.viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.expandAllToolStripMenuItem,
|
||||
this.collapseAllToolStripMenuItem,
|
||||
this.toolStripSeparator1,
|
||||
this.alwaysOnTopToolStripMenuItem});
|
||||
this.viewToolStripMenuItem.Name = "viewToolStripMenuItem";
|
||||
this.viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
||||
this.viewToolStripMenuItem.Text = "&View";
|
||||
viewToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { expandAllToolStripMenuItem, collapseAllToolStripMenuItem, toolStripSeparator1, alwaysOnTopToolStripMenuItem });
|
||||
viewToolStripMenuItem.Name = "viewToolStripMenuItem";
|
||||
viewToolStripMenuItem.Size = new System.Drawing.Size(44, 20);
|
||||
viewToolStripMenuItem.Text = "&View";
|
||||
//
|
||||
// expandAllToolStripMenuItem
|
||||
//
|
||||
this.expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
|
||||
this.expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.expandAllToolStripMenuItem.Text = "&Expand All";
|
||||
this.expandAllToolStripMenuItem.Click += new System.EventHandler(this.expandAllToolStripMenuItem_Click);
|
||||
expandAllToolStripMenuItem.Name = "expandAllToolStripMenuItem";
|
||||
expandAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
expandAllToolStripMenuItem.Text = "&Expand All";
|
||||
expandAllToolStripMenuItem.Click += expandAllToolStripMenuItem_Click;
|
||||
//
|
||||
// collapseAllToolStripMenuItem
|
||||
//
|
||||
this.collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem";
|
||||
this.collapseAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.collapseAllToolStripMenuItem.Text = "&Collapse All";
|
||||
this.collapseAllToolStripMenuItem.Click += new System.EventHandler(this.collapseAllToolStripMenuItem_Click);
|
||||
collapseAllToolStripMenuItem.Name = "collapseAllToolStripMenuItem";
|
||||
collapseAllToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
collapseAllToolStripMenuItem.Text = "&Collapse All";
|
||||
collapseAllToolStripMenuItem.Click += collapseAllToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripSeparator1
|
||||
//
|
||||
this.toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
this.toolStripSeparator1.Size = new System.Drawing.Size(149, 6);
|
||||
toolStripSeparator1.Name = "toolStripSeparator1";
|
||||
toolStripSeparator1.Size = new System.Drawing.Size(149, 6);
|
||||
//
|
||||
// alwaysOnTopToolStripMenuItem
|
||||
//
|
||||
this.alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem";
|
||||
this.alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.alwaysOnTopToolStripMenuItem.Text = "Always On &Top";
|
||||
this.alwaysOnTopToolStripMenuItem.Click += new System.EventHandler(this.alwaysOnTopToolStripMenuItem_Click);
|
||||
alwaysOnTopToolStripMenuItem.Name = "alwaysOnTopToolStripMenuItem";
|
||||
alwaysOnTopToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
alwaysOnTopToolStripMenuItem.Text = "Always On &Top";
|
||||
alwaysOnTopToolStripMenuItem.Click += alwaysOnTopToolStripMenuItem_Click;
|
||||
//
|
||||
// toolsToolStripMenuItem
|
||||
//
|
||||
this.toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.toolStripMenuItem9,
|
||||
this.toolStripSeparator2,
|
||||
this.optionsToolStripMenuItem});
|
||||
this.toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
||||
this.toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
||||
this.toolsToolStripMenuItem.Text = "&Tools";
|
||||
toolsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { toolStripMenuItem9, toolStripSeparator2, optionsToolStripMenuItem });
|
||||
toolsToolStripMenuItem.Name = "toolsToolStripMenuItem";
|
||||
toolsToolStripMenuItem.Size = new System.Drawing.Size(46, 20);
|
||||
toolsToolStripMenuItem.Text = "&Tools";
|
||||
//
|
||||
// toolStripMenuItem9
|
||||
//
|
||||
this.toolStripMenuItem9.Name = "toolStripMenuItem9";
|
||||
this.toolStripMenuItem9.Size = new System.Drawing.Size(168, 22);
|
||||
this.toolStripMenuItem9.Text = "Update &Icons";
|
||||
this.toolStripMenuItem9.Click += new System.EventHandler(this.toolStripMenuItem9_Click);
|
||||
toolStripMenuItem9.Name = "toolStripMenuItem9";
|
||||
toolStripMenuItem9.Size = new System.Drawing.Size(168, 22);
|
||||
toolStripMenuItem9.Text = "Update &Icons";
|
||||
toolStripMenuItem9.Click += toolStripMenuItem9_Click;
|
||||
//
|
||||
// toolStripSeparator2
|
||||
//
|
||||
this.toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
this.toolStripSeparator2.Size = new System.Drawing.Size(165, 6);
|
||||
toolStripSeparator2.Name = "toolStripSeparator2";
|
||||
toolStripSeparator2.Size = new System.Drawing.Size(165, 6);
|
||||
//
|
||||
// optionsToolStripMenuItem
|
||||
//
|
||||
this.optionsToolStripMenuItem.Image = global::BookmarkManager.UIResource.cog2;
|
||||
this.optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
|
||||
this.optionsToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12)));
|
||||
this.optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
this.optionsToolStripMenuItem.Text = "&Options";
|
||||
this.optionsToolStripMenuItem.Click += new System.EventHandler(this.optionsToolStripMenuItem_Click);
|
||||
optionsToolStripMenuItem.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||
optionsToolStripMenuItem.Name = "optionsToolStripMenuItem";
|
||||
optionsToolStripMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.F12;
|
||||
optionsToolStripMenuItem.Size = new System.Drawing.Size(168, 22);
|
||||
optionsToolStripMenuItem.Text = "&Options";
|
||||
optionsToolStripMenuItem.Click += optionsToolStripMenuItem_Click;
|
||||
//
|
||||
// helpToolStripMenuItem1
|
||||
//
|
||||
this.helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.viewHelpToolStripMenuItem1,
|
||||
this.toolStripMenuItem16,
|
||||
this.aboutToolStripMenuItem1});
|
||||
this.helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
|
||||
this.helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
|
||||
this.helpToolStripMenuItem1.Text = "&Help";
|
||||
helpToolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { viewHelpToolStripMenuItem1, toolStripMenuItem16, aboutToolStripMenuItem1 });
|
||||
helpToolStripMenuItem1.Name = "helpToolStripMenuItem1";
|
||||
helpToolStripMenuItem1.Size = new System.Drawing.Size(44, 20);
|
||||
helpToolStripMenuItem1.Text = "&Help";
|
||||
//
|
||||
// viewHelpToolStripMenuItem1
|
||||
//
|
||||
this.viewHelpToolStripMenuItem1.Image = global::BookmarkManager.UIResource.help2;
|
||||
this.viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
|
||||
this.viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||
this.viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
this.viewHelpToolStripMenuItem1.Text = "&View Help";
|
||||
this.viewHelpToolStripMenuItem1.Click += new System.EventHandler(this.viewHelpToolStripMenuItem1_Click);
|
||||
viewHelpToolStripMenuItem1.ImageScaling = System.Windows.Forms.ToolStripItemImageScaling.None;
|
||||
viewHelpToolStripMenuItem1.Name = "viewHelpToolStripMenuItem1";
|
||||
viewHelpToolStripMenuItem1.ShortcutKeys = System.Windows.Forms.Keys.F1;
|
||||
viewHelpToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
viewHelpToolStripMenuItem1.Text = "&View Help";
|
||||
viewHelpToolStripMenuItem1.Click += viewHelpToolStripMenuItem1_Click;
|
||||
//
|
||||
// toolStripMenuItem16
|
||||
//
|
||||
this.toolStripMenuItem16.Name = "toolStripMenuItem16";
|
||||
this.toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
|
||||
toolStripMenuItem16.Name = "toolStripMenuItem16";
|
||||
toolStripMenuItem16.Size = new System.Drawing.Size(143, 6);
|
||||
//
|
||||
// aboutToolStripMenuItem1
|
||||
//
|
||||
this.aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
|
||||
this.aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
this.aboutToolStripMenuItem1.Text = "&About";
|
||||
this.aboutToolStripMenuItem1.Click += new System.EventHandler(this.aboutToolStripMenuItem1_Click);
|
||||
//
|
||||
// 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;
|
||||
aboutToolStripMenuItem1.Name = "aboutToolStripMenuItem1";
|
||||
aboutToolStripMenuItem1.Size = new System.Drawing.Size(146, 22);
|
||||
aboutToolStripMenuItem1.Text = "&About";
|
||||
aboutToolStripMenuItem1.Click += aboutToolStripMenuItem1_Click;
|
||||
//
|
||||
// openFileDialog1
|
||||
//
|
||||
this.openFileDialog1.DefaultExt = "jsnx";
|
||||
this.openFileDialog1.Filter = "All supported files (*.jsnx;*.ryz)|*.jsnx;*.ryz|Bookmarks files (*.jsnx)|*.jsnx|B" +
|
||||
"ookmarks files (*.ryz)|*.ryz";
|
||||
this.openFileDialog1.Title = "Open bookmarks file";
|
||||
openFileDialog1.DefaultExt = "jsnx";
|
||||
openFileDialog1.Filter = "All supported files|*.json;*.jsonfig;*.jsnx|Bookmark files (compressed)|*.jsnx|Bookmark files|*.json;*.jsonfig";
|
||||
openFileDialog1.Title = "Open bookmarks file";
|
||||
//
|
||||
// rootContextMenu
|
||||
//
|
||||
this.rootContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.addPageToolStripMenuItem,
|
||||
this.addFolderToolStripMenuItem,
|
||||
this.toolStripMenuItem2,
|
||||
this.editToolStripMenuItem,
|
||||
this.toolStripMenuItem3,
|
||||
this.sortToolStripMenuItem});
|
||||
this.rootContextMenu.Name = "rootContextMenu";
|
||||
this.rootContextMenu.Size = new System.Drawing.Size(133, 104);
|
||||
rootContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addPageToolStripMenuItem, toolStripMenuItem11, addFolderToolStripMenuItem, toolStripMenuItem2, editToolStripMenuItem, toolStripMenuItem3, sortToolStripMenuItem });
|
||||
rootContextMenu.Name = "rootContextMenu";
|
||||
rootContextMenu.Size = new System.Drawing.Size(181, 148);
|
||||
//
|
||||
// addPageToolStripMenuItem
|
||||
//
|
||||
this.addPageToolStripMenuItem.Name = "addPageToolStripMenuItem";
|
||||
this.addPageToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||
this.addPageToolStripMenuItem.Text = "Add &Page";
|
||||
this.addPageToolStripMenuItem.Click += new System.EventHandler(this.addPageToolStripMenuItem_Click);
|
||||
addPageToolStripMenuItem.Name = "addPageToolStripMenuItem";
|
||||
addPageToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
addPageToolStripMenuItem.Text = "Add &Page";
|
||||
addPageToolStripMenuItem.Click += addPageToolStripMenuItem_Click;
|
||||
//
|
||||
// addFolderToolStripMenuItem
|
||||
//
|
||||
this.addFolderToolStripMenuItem.Name = "addFolderToolStripMenuItem";
|
||||
this.addFolderToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||
this.addFolderToolStripMenuItem.Text = "Add &Folder";
|
||||
this.addFolderToolStripMenuItem.Click += new System.EventHandler(this.addFolderToolStripMenuItem_Click);
|
||||
addFolderToolStripMenuItem.Name = "addFolderToolStripMenuItem";
|
||||
addFolderToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
addFolderToolStripMenuItem.Text = "Add &Folder";
|
||||
addFolderToolStripMenuItem.Click += addFolderToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem2
|
||||
//
|
||||
this.toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||
this.toolStripMenuItem2.Size = new System.Drawing.Size(129, 6);
|
||||
toolStripMenuItem2.Name = "toolStripMenuItem2";
|
||||
toolStripMenuItem2.Size = new System.Drawing.Size(177, 6);
|
||||
//
|
||||
// editToolStripMenuItem
|
||||
//
|
||||
this.editToolStripMenuItem.Name = "editToolStripMenuItem";
|
||||
this.editToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||
this.editToolStripMenuItem.Text = "&Edit";
|
||||
this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click);
|
||||
editToolStripMenuItem.Name = "editToolStripMenuItem";
|
||||
editToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
editToolStripMenuItem.Text = "&Edit";
|
||||
editToolStripMenuItem.Click += editToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem3
|
||||
//
|
||||
this.toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||
this.toolStripMenuItem3.Size = new System.Drawing.Size(129, 6);
|
||||
toolStripMenuItem3.Name = "toolStripMenuItem3";
|
||||
toolStripMenuItem3.Size = new System.Drawing.Size(177, 6);
|
||||
//
|
||||
// sortToolStripMenuItem
|
||||
//
|
||||
this.sortToolStripMenuItem.Name = "sortToolStripMenuItem";
|
||||
this.sortToolStripMenuItem.Size = new System.Drawing.Size(132, 22);
|
||||
this.sortToolStripMenuItem.Text = "&Sort";
|
||||
this.sortToolStripMenuItem.Click += new System.EventHandler(this.sortToolStripMenuItem_Click);
|
||||
sortToolStripMenuItem.Name = "sortToolStripMenuItem";
|
||||
sortToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
|
||||
sortToolStripMenuItem.Text = "&Sort";
|
||||
sortToolStripMenuItem.Click += sortToolStripMenuItem_Click;
|
||||
//
|
||||
// folderContextMenu
|
||||
//
|
||||
this.folderContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.addPageToolStripMenuItem1,
|
||||
this.addFolderToolStripMenuItem1,
|
||||
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);
|
||||
folderContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { addPageToolStripMenuItem1, toolStripMenuItem10, addFolderToolStripMenuItem1, toolStripMenuItem4, openAllToolStripMenuItem, editToolStripMenuItem1, deleteToolStripMenuItem, toolStripMenuItem5, sortToolStripMenuItem1, toolStripMenuItem6, moveUpToolStripMenuItem, moveDownToolStripMenuItem });
|
||||
folderContextMenu.Name = "folderContextMenu";
|
||||
folderContextMenu.Size = new System.Drawing.Size(167, 220);
|
||||
//
|
||||
// addPageToolStripMenuItem1
|
||||
//
|
||||
this.addPageToolStripMenuItem1.Name = "addPageToolStripMenuItem1";
|
||||
this.addPageToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.addPageToolStripMenuItem1.Text = "Add &Page";
|
||||
this.addPageToolStripMenuItem1.Click += new System.EventHandler(this.addPageToolStripMenuItem1_Click);
|
||||
addPageToolStripMenuItem1.Name = "addPageToolStripMenuItem1";
|
||||
addPageToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
|
||||
addPageToolStripMenuItem1.Text = "Add &Page";
|
||||
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
|
||||
//
|
||||
this.addFolderToolStripMenuItem1.Name = "addFolderToolStripMenuItem1";
|
||||
this.addFolderToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.addFolderToolStripMenuItem1.Text = "Add &Folder";
|
||||
this.addFolderToolStripMenuItem1.Click += new System.EventHandler(this.addFolderToolStripMenuItem1_Click);
|
||||
addFolderToolStripMenuItem1.Name = "addFolderToolStripMenuItem1";
|
||||
addFolderToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
|
||||
addFolderToolStripMenuItem1.Text = "Add &Folder";
|
||||
addFolderToolStripMenuItem1.Click += addFolderToolStripMenuItem1_Click;
|
||||
//
|
||||
// toolStripMenuItem4
|
||||
//
|
||||
this.toolStripMenuItem4.Name = "toolStripMenuItem4";
|
||||
this.toolStripMenuItem4.Size = new System.Drawing.Size(135, 6);
|
||||
toolStripMenuItem4.Name = "toolStripMenuItem4";
|
||||
toolStripMenuItem4.Size = new System.Drawing.Size(163, 6);
|
||||
//
|
||||
// openAllToolStripMenuItem
|
||||
//
|
||||
this.openAllToolStripMenuItem.Image = global::BookmarkManager.AppResource.bookmark;
|
||||
this.openAllToolStripMenuItem.Name = "openAllToolStripMenuItem";
|
||||
this.openAllToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.openAllToolStripMenuItem.Text = "&Open All";
|
||||
this.openAllToolStripMenuItem.Click += new System.EventHandler(this.openAllToolStripMenuItem_Click);
|
||||
openAllToolStripMenuItem.Image = BookmarkManager.AppResource.bookmark;
|
||||
openAllToolStripMenuItem.Name = "openAllToolStripMenuItem";
|
||||
openAllToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
|
||||
openAllToolStripMenuItem.Text = "&Open All";
|
||||
openAllToolStripMenuItem.Click += openAllToolStripMenuItem_Click;
|
||||
//
|
||||
// editToolStripMenuItem1
|
||||
//
|
||||
this.editToolStripMenuItem1.Name = "editToolStripMenuItem1";
|
||||
this.editToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.editToolStripMenuItem1.Text = "&Edit";
|
||||
this.editToolStripMenuItem1.Click += new System.EventHandler(this.editToolStripMenuItem1_Click);
|
||||
editToolStripMenuItem1.Name = "editToolStripMenuItem1";
|
||||
editToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
|
||||
editToolStripMenuItem1.Text = "&Edit";
|
||||
editToolStripMenuItem1.Click += editToolStripMenuItem1_Click;
|
||||
//
|
||||
// deleteToolStripMenuItem
|
||||
//
|
||||
this.deleteToolStripMenuItem.Image = global::BookmarkManager.UIResource.trash2;
|
||||
this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
|
||||
this.deleteToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.deleteToolStripMenuItem.Text = "&Delete";
|
||||
this.deleteToolStripMenuItem.Click += new System.EventHandler(this.deleteToolStripMenuItem_Click);
|
||||
deleteToolStripMenuItem.Image = BookmarkManager.AppResource.trash;
|
||||
deleteToolStripMenuItem.Name = "deleteToolStripMenuItem";
|
||||
deleteToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
|
||||
deleteToolStripMenuItem.Text = "&Delete";
|
||||
deleteToolStripMenuItem.Click += deleteToolStripMenuItem_Click;
|
||||
//
|
||||
// toolStripMenuItem5
|
||||
//
|
||||
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
|
||||
this.toolStripMenuItem5.Size = new System.Drawing.Size(135, 6);
|
||||
toolStripMenuItem5.Name = "toolStripMenuItem5";
|
||||
toolStripMenuItem5.Size = new System.Drawing.Size(163, 6);
|
||||
//
|
||||
// sortToolStripMenuItem1
|
||||
//
|
||||
this.sortToolStripMenuItem1.Name = "sortToolStripMenuItem1";
|
||||
this.sortToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.sortToolStripMenuItem1.Text = "&Sort";
|
||||
this.sortToolStripMenuItem1.Click += new System.EventHandler(this.sortToolStripMenuItem1_Click);
|
||||
sortToolStripMenuItem1.Name = "sortToolStripMenuItem1";
|
||||
sortToolStripMenuItem1.Size = new System.Drawing.Size(166, 22);
|
||||
sortToolStripMenuItem1.Text = "&Sort";
|
||||
sortToolStripMenuItem1.Click += sortToolStripMenuItem1_Click;
|
||||
//
|
||||
// toolStripMenuItem6
|
||||
//
|
||||
this.toolStripMenuItem6.Name = "toolStripMenuItem6";
|
||||
this.toolStripMenuItem6.Size = new System.Drawing.Size(135, 6);
|
||||
toolStripMenuItem6.Name = "toolStripMenuItem6";
|
||||
toolStripMenuItem6.Size = new System.Drawing.Size(163, 6);
|
||||
//
|
||||
// moveUpToolStripMenuItem
|
||||
//
|
||||
this.moveUpToolStripMenuItem.Image = global::BookmarkManager.UIResource.arrow_up2;
|
||||
this.moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
|
||||
this.moveUpToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.moveUpToolStripMenuItem.Text = "Move &Up";
|
||||
this.moveUpToolStripMenuItem.Click += new System.EventHandler(this.moveUpToolStripMenuItem_Click);
|
||||
moveUpToolStripMenuItem.Image = BookmarkManager.AppResource.arrow_up_circle;
|
||||
moveUpToolStripMenuItem.Name = "moveUpToolStripMenuItem";
|
||||
moveUpToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
|
||||
moveUpToolStripMenuItem.Text = "Move &Up";
|
||||
moveUpToolStripMenuItem.Click += moveUpToolStripMenuItem_Click;
|
||||
//
|
||||
// moveDownToolStripMenuItem
|
||||
//
|
||||
this.moveDownToolStripMenuItem.Image = global::BookmarkManager.UIResource.arrow_down2;
|
||||
this.moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
|
||||
this.moveDownToolStripMenuItem.Size = new System.Drawing.Size(138, 22);
|
||||
this.moveDownToolStripMenuItem.Text = "Move &Down";
|
||||
this.moveDownToolStripMenuItem.Click += new System.EventHandler(this.moveDownToolStripMenuItem_Click);
|
||||
moveDownToolStripMenuItem.Image = BookmarkManager.AppResource.arrow_down_circle;
|
||||
moveDownToolStripMenuItem.Name = "moveDownToolStripMenuItem";
|
||||
moveDownToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
|
||||
moveDownToolStripMenuItem.Text = "Move &Down";
|
||||
moveDownToolStripMenuItem.Click += moveDownToolStripMenuItem_Click;
|
||||
//
|
||||
// pageContextMenu
|
||||
//
|
||||
this.pageContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||
this.openToolStripMenuItem1,
|
||||
this.toolStripMenuItem7,
|
||||
this.editToolStripMenuItem2,
|
||||
this.deleteToolStripMenuItem1,
|
||||
this.toolStripMenuItem8,
|
||||
this.moveUpToolStripMenuItem1,
|
||||
this.moveDownToolStripMenuItem1});
|
||||
this.pageContextMenu.Name = "pageContextMenu";
|
||||
this.pageContextMenu.Size = new System.Drawing.Size(139, 126);
|
||||
pageContextMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { openToolStripMenuItem1, toolStripMenuItem7, editToolStripMenuItem2, deleteToolStripMenuItem1, toolStripMenuItem8, moveUpToolStripMenuItem1, moveDownToolStripMenuItem1 });
|
||||
pageContextMenu.Name = "pageContextMenu";
|
||||
pageContextMenu.Size = new System.Drawing.Size(139, 126);
|
||||
//
|
||||
// openToolStripMenuItem1
|
||||
//
|
||||
this.openToolStripMenuItem1.Image = global::BookmarkManager.AppResource.bookmark;
|
||||
this.openToolStripMenuItem1.Name = "openToolStripMenuItem1";
|
||||
this.openToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.openToolStripMenuItem1.Text = "&Open";
|
||||
this.openToolStripMenuItem1.Click += new System.EventHandler(this.openToolStripMenuItem1_Click);
|
||||
openToolStripMenuItem1.Image = BookmarkManager.AppResource.bookmark;
|
||||
openToolStripMenuItem1.Name = "openToolStripMenuItem1";
|
||||
openToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
openToolStripMenuItem1.Text = "&Open";
|
||||
openToolStripMenuItem1.Click += openToolStripMenuItem1_Click;
|
||||
//
|
||||
// toolStripMenuItem7
|
||||
//
|
||||
this.toolStripMenuItem7.Name = "toolStripMenuItem7";
|
||||
this.toolStripMenuItem7.Size = new System.Drawing.Size(135, 6);
|
||||
toolStripMenuItem7.Name = "toolStripMenuItem7";
|
||||
toolStripMenuItem7.Size = new System.Drawing.Size(135, 6);
|
||||
//
|
||||
// editToolStripMenuItem2
|
||||
//
|
||||
this.editToolStripMenuItem2.Name = "editToolStripMenuItem2";
|
||||
this.editToolStripMenuItem2.Size = new System.Drawing.Size(138, 22);
|
||||
this.editToolStripMenuItem2.Text = "&Edit";
|
||||
this.editToolStripMenuItem2.Click += new System.EventHandler(this.editToolStripMenuItem2_Click);
|
||||
editToolStripMenuItem2.Name = "editToolStripMenuItem2";
|
||||
editToolStripMenuItem2.Size = new System.Drawing.Size(138, 22);
|
||||
editToolStripMenuItem2.Text = "&Edit";
|
||||
editToolStripMenuItem2.Click += editToolStripMenuItem2_Click;
|
||||
//
|
||||
// deleteToolStripMenuItem1
|
||||
//
|
||||
this.deleteToolStripMenuItem1.Image = global::BookmarkManager.UIResource.trash2;
|
||||
this.deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1";
|
||||
this.deleteToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.deleteToolStripMenuItem1.Text = "&Delete";
|
||||
this.deleteToolStripMenuItem1.Click += new System.EventHandler(this.deleteToolStripMenuItem1_Click);
|
||||
deleteToolStripMenuItem1.Image = BookmarkManager.AppResource.trash;
|
||||
deleteToolStripMenuItem1.Name = "deleteToolStripMenuItem1";
|
||||
deleteToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
deleteToolStripMenuItem1.Text = "&Delete";
|
||||
deleteToolStripMenuItem1.Click += deleteToolStripMenuItem1_Click;
|
||||
//
|
||||
// toolStripMenuItem8
|
||||
//
|
||||
this.toolStripMenuItem8.Name = "toolStripMenuItem8";
|
||||
this.toolStripMenuItem8.Size = new System.Drawing.Size(135, 6);
|
||||
toolStripMenuItem8.Name = "toolStripMenuItem8";
|
||||
toolStripMenuItem8.Size = new System.Drawing.Size(135, 6);
|
||||
//
|
||||
// moveUpToolStripMenuItem1
|
||||
//
|
||||
this.moveUpToolStripMenuItem1.Image = global::BookmarkManager.UIResource.arrow_up2;
|
||||
this.moveUpToolStripMenuItem1.Name = "moveUpToolStripMenuItem1";
|
||||
this.moveUpToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.moveUpToolStripMenuItem1.Text = "Move &Up";
|
||||
this.moveUpToolStripMenuItem1.Click += new System.EventHandler(this.moveUpToolStripMenuItem1_Click);
|
||||
moveUpToolStripMenuItem1.Image = BookmarkManager.AppResource.arrow_up_circle;
|
||||
moveUpToolStripMenuItem1.Name = "moveUpToolStripMenuItem1";
|
||||
moveUpToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
moveUpToolStripMenuItem1.Text = "Move &Up";
|
||||
moveUpToolStripMenuItem1.Click += moveUpToolStripMenuItem1_Click;
|
||||
//
|
||||
// moveDownToolStripMenuItem1
|
||||
//
|
||||
this.moveDownToolStripMenuItem1.Image = global::BookmarkManager.UIResource.arrow_down2;
|
||||
this.moveDownToolStripMenuItem1.Name = "moveDownToolStripMenuItem1";
|
||||
this.moveDownToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
this.moveDownToolStripMenuItem1.Text = "Move &Down";
|
||||
this.moveDownToolStripMenuItem1.Click += new System.EventHandler(this.moveDownToolStripMenuItem1_Click);
|
||||
moveDownToolStripMenuItem1.Image = BookmarkManager.AppResource.arrow_down_circle;
|
||||
moveDownToolStripMenuItem1.Name = "moveDownToolStripMenuItem1";
|
||||
moveDownToolStripMenuItem1.Size = new System.Drawing.Size(138, 22);
|
||||
moveDownToolStripMenuItem1.Text = "Move &Down";
|
||||
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
|
||||
//
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
|
||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(250)))), ((int)(((byte)(250)))), ((int)(((byte)(250)))));
|
||||
this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
this.ClientSize = new System.Drawing.Size(300, 580);
|
||||
this.Controls.Add(this.treeView1);
|
||||
this.Controls.Add(this.menuStrip1);
|
||||
this.DoubleBuffered = true;
|
||||
this.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MainMenuStrip = this.menuStrip1;
|
||||
this.Name = "MainForm";
|
||||
this.Text = "Bookmark Manager";
|
||||
this.menuStrip1.ResumeLayout(false);
|
||||
this.menuStrip1.PerformLayout();
|
||||
this.rootContextMenu.ResumeLayout(false);
|
||||
this.folderContextMenu.ResumeLayout(false);
|
||||
this.pageContextMenu.ResumeLayout(false);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
BackColor = System.Drawing.Color.FromArgb(250, 250, 250);
|
||||
BackgroundImageLayout = System.Windows.Forms.ImageLayout.None;
|
||||
ClientSize = new System.Drawing.Size(300, 580);
|
||||
Controls.Add(treeView1);
|
||||
Controls.Add(menuStrip1);
|
||||
DoubleBuffered = true;
|
||||
ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
|
||||
MainMenuStrip = menuStrip1;
|
||||
Name = "MainForm";
|
||||
Text = "BukkuBuddy";
|
||||
menuStrip1.ResumeLayout(false);
|
||||
menuStrip1.PerformLayout();
|
||||
rootContextMenu.ResumeLayout(false);
|
||||
folderContextMenu.ResumeLayout(false);
|
||||
pageContextMenu.ResumeLayout(false);
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -576,7 +548,6 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1;
|
||||
private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
|
||||
private RyzStudio.Windows.Forms.BookmarkTreeView treeView1;
|
||||
private System.Windows.Forms.OpenFileDialog openFileDialog1;
|
||||
private System.Windows.Forms.ContextMenuStrip rootContextMenu;
|
||||
private System.Windows.Forms.ToolStripMenuItem addPageToolStripMenuItem;
|
||||
@ -607,6 +578,9 @@
|
||||
private System.Windows.Forms.ToolStripMenuItem moveDownToolStripMenuItem1;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem9;
|
||||
private System.Windows.Forms.ToolStripSeparator toolStripSeparator2;
|
||||
private RyzStudio.Windows.Forms.BookmarkTreeView treeView1;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem10;
|
||||
private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem11;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
1391
MainForm.cs
644
MainForm.resx
@ -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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
@ -80,297 +140,297 @@
|
||||
<value>
|
||||
AAABAAQAMDAAAAEAIACoJQAARgAAACAgAAABACAAqBAAAO4lAAAYGAAAAQAgAIgJAACWNgAAEBAAAAEA
|
||||
IABoBAAAHkAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADExMSozMzPYMzMztDMzM2g3NzccAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAANTU1PzQ1NfA1Njb+NjY2/jMzM/8zMzP/NDQ0zzMzM4I1NTU1AAAAAQAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDRTMzMz+EFCQv6ovb7/yebn/6C1tv9yfn//QURE/TMz
|
||||
M/8zMzP/NDQ06zIyMqIzMzNVNzc3DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzM28zMzP+VVhY/cXX2P/S7/D/0O7v/9Du
|
||||
7//Q7u//zuzt/7DIyf+CkZH/UlhY/jMzM/8zMzP/MzMz+DIyMrszMzNvNTU1HQAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUDMjIykzU1Nf9rb2/+zuLj/9nx
|
||||
8v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7zW1/+Ro6P/Ymtr/zc4OP4zMzP/MzMz/zQ0
|
||||
NNYzMzOIMzMzPAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAgzMzOqOTk5/3yC
|
||||
gv7U6er/3PLz/9Tv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8rn
|
||||
6P+gtbb/cn5//0JFRf0zMzP/MzMz/zQ0NOwyMjKiMzMzVTc3Nw4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjY2EzI0
|
||||
NMU9PT3/iZGS/9jv7//c8vP/2/Lz/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/87s7f+wyMn/gpGR/1JYWP4zMzP/MzMz/zMzM/gyMjK7MzMzbzMz
|
||||
Mx4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAwMDAlNDQ03kFBQf+dqKj/2/Ly/9zy8//c8vP/1/Dx/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+71db/jJ2e/11l
|
||||
Zv82Nzf+MzMz/zMzM/8zMzOGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADExMTk0NDTsS0tL/qy6uv/c8vP/3PLz/9zy8//c8vP/0u/w/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//I5OX/nLGx/z5BQf4yMzPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAANDQ0TzQ0NPZWV1f9uMjI/9zy8//c8vP/3PLz/9zy8//a8vL/0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/2ZvcP8yMzP9MzMzDwAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzNkNTU1/FxdXf3C09T/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//W8PH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/4ucnP8zMzP/MzMzRgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQ0NIA0NDT/Zmlp/svd3v/c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7DI
|
||||
yP8zMzP/MzMzgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkJCQHMzMzpTU1Nf9zeXn/0ubn/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9vy8/+QpKX/Xmts/8Db3P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//A29z/Xmts/5Ckpf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/87r7P86Ozv+MzMzvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLREyMjLANTU1/4OL
|
||||
i//Y7u//3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9jx8v8bHx//AAAA/xUYGP+Zr6//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5mvr/8VGBj/AAAA/xsfH//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/9dZWX/NDQ09jMzMwUAAAAAAAAAAAAAAAAAAAAAMDAwIDQ0
|
||||
NNc2Njb/lJ+f/9vx8v/c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Xw8f8WGRn/AAAA/wAA
|
||||
AP8BAQH/X2xt/8vo6f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6On/X2xt/wEBAf8AAAD/AAAA/xYZ
|
||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+BkJD/MzMz/zU1NTUAAAAAAAAAAAAA
|
||||
AAAyMjIuNDQ05TY2Nv+gra3/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv
|
||||
8P8WGRn/AAAA/xcXF/8AAAD/AAAA/ykvL/+vycr/0O7v/9Du7//Q7u//0O7v/6/Jyv8pLy//AAAA/wAA
|
||||
AP8XFxf/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+lu7v/MzMz/zQ0
|
||||
NHEAAAAAAAAAAAAAAAAzMzPkNjc3/rDBwf/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/2/Lz/9Du7/8WGRn/AAAA/6mpqf+QkJD/BgYG/wAAAP8HCAj/dYaH/9Du7//Q7u//g5aX/woL
|
||||
C/8AAAD/BAQE/39/f/+oqKj/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//I5eb/NTU1/jQ0NK0AAAAAAAAAAAAAAAA0NDS3Nzc3/tnu7//d8/T/3fPz/93z8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du7/8WGRn/AAAA/6qqqv//////ysrK/yQkJP8AAAD/AAAA/0JM
|
||||
TP9CTEz/AAAA/wAAAP8kJCT/ysrK//////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//UlhY/zQ0NOoAAAABAAAAAAAAAAAzMzN9MzMz/7/R0v/d8/T/3fPz/93z
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1vDx/9Du7/8WGRn/AAAA/6qqqv////////////Pz
|
||||
8/9hYWH/AAAA/wAAAP8AAAD/AAAA/2FhYf/z8/P///////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//d4SE/zMzM/8wMDAlAAAAAAAAAAAzMzNBMzMz/5yp
|
||||
qf/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7/8WGRn/AAAA/6qq
|
||||
qv//////////////////////qamp/xEREf8RERH/qamp//////////////////////+qqqr/AAAA/xYZ
|
||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//m6+v/zMzM/8yMjJgAAAAAAAA
|
||||
AAA5OTkJNDQ0+nR8fP/d8/T/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du
|
||||
7/8WGRn/AAAA/6qqqv////////////////////////////Ly8v/y8vL/////////////////////////
|
||||
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wNvc/zMz
|
||||
M/8zMzObAAAAAAAAAAAAAAAAMzMzyEZISP3d8vP/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/0u/w/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////
|
||||
//////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/0ZKSv40NDTYAAAAAAAAAAAAAAAAMzMzjTMzM//K3N3/3fPz/93z8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////
|
||||
//////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/2x3d/8zMzP+Li4uFgAAAAAAAAAAMjIyUjMzM/+ntbX/3fPz/93z
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du7/8WGRn/AAAA/6qqqv//////////////
|
||||
//////////////////////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/5Gjo/8zMzP/MzMzUAAAAAAAAAAAMTExFTMz
|
||||
M/5/iYn/3fPz/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//b8vP/0O7v/9Du7/8WGRn/AAAA/6qq
|
||||
qv////////////////////////////////////////////////////////////////+qqqr/AAAA/xYZ
|
||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7bP0P8zMzP/MzMziwAA
|
||||
AAAAAAAAAAAAADMzM9pRVVX+3fP0/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0O7v/9Du
|
||||
7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////////////////////
|
||||
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t
|
||||
7v89Pj/+NDQ0xgAAAAAAAAAAAAAAADIyMp0zMzP/0eXm/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////
|
||||
//////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/9ia2v/NDQ0+zMzMwoAAAAAAAAAADQ0NGIzMzP/r8DA/93z8//d8/P/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/0e7v/9Du7/8WGRn/AAAA/6qqqv//////////////////////////////
|
||||
//////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Glpf/MzMz/zU1NT8AAAAAAAAAADQ0NCczMzP/iZWV/93z
|
||||
8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/0+/w/9Du7/8WGRn/AAAA/6qqqv//////////////
|
||||
//////////////////////////////////////////////////+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+rwsP/MzMz/zQ0NHsAAAAAAAAAAAAA
|
||||
AAE0NDTqW2Fh/93z8//d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1fDx/9Du7/8WGRn/AAAA/6qq
|
||||
qv////////////////////////////////////////////////////////////////+qqqr/AAAA/xYZ
|
||||
Gf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6On/Nzc3/jQ0
|
||||
NLcAAAAAAAAAAAAAAAA0NDStNjY2/tbs7f/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/1/Dx/9Du
|
||||
7/8WGRn/AAAA/6qqqv//////////////////////////////////////////////////////////////
|
||||
//+qqqr/AAAA/xYZGf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7/+dsrL/Njc3/jMzM+QAAAAAAAAAAAAAAAAzMzNzMzMz/7jKyv/d8/P/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/2vLy/9Du7/8gJCX/AAAA/5ubm///////////////////////////////////////////////
|
||||
//////////////////+ampr/AAAA/yElJf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/4ydnv80NDT/NTU16TIyMjMAAAAAAAAAAAAAAAAzMzM3MzMz/5Gen//d8/P/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P9OWlr/AAAA/xQUFP9jY2P/ZmZm/2ZmZv9mZmb/ZmZm/2Zm
|
||||
Zv9mZmb/ZmZm/2ZmZv9mZmb/ZmZm/2NjY/8TExP/AAAA/1BbXP/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//P7e7/gpGR/zMzM/80NDTcMjIyJAAAAAAAAAAAAAAAAAAAAAAzMzMFNDQ09mZt
|
||||
bv/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f+71tf/GBsb/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/GBsb/7zX2P/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8vo6f9pc3P/MzMz/zMzM8czMzMUAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAMzMzvzs8PP7b8PH/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9vy8//R7u//xODh/3KD
|
||||
g/9MV1f/RU9Q/0VPUP9FT1D/RU9Q/0VPUP9FT1D/RU9Q/0VPUP9FT1D/RU9Q/0xXV/9zhIT/xODh/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//xeHi/1lhYf8zMzP/NDQ0rTk5OQkAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAMzMzgzMzM/+/09T/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//V8PH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+81tf/S09P/jMzM/8zMzORAAAAAgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIySDMzM/+bqqr/3fPz/9zy8//c8vP/3PLz/9zy
|
||||
8//c8vP/3PLz/9zy8//b8vP/0u/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7PMzf9DRkf9MzMz/jIy
|
||||
MnUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3DjIzM/1yfH3/3fPz/9zy
|
||||
8//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//pbu7/zk7
|
||||
O/00NDT5MjIyVgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIz
|
||||
M9BAQkL+qry8/9Xq6//c8vP/3PLz/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9fx8v/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7/+Ro6P/NTU1/jQ1Ne0xMTE5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADMzM4YzMzP/MzMz/zc4OP5qcXL/nq2u/8vf4P/c8vP/3PLz/9zy8//c8vP/3PLz/9zy
|
||||
8//X8fL/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//z+3u/3+Njf8zMzP/NDQ03jAwMCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuLi4WNDQ0XjMzM6o0NDT1MzMz/zQ0NP9TVlb+ipWV/7rL
|
||||
y//a7/D/3PLz/9zy8//c8vP/2PHy/9Hu7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//M6er/bHd3/zMzM/80NDTLLi4uFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkJNTU1RDMz
|
||||
M5E0NDTlMzMz/zMzM/9GSEj9eIGC/6q5uv/U6er/3PLz/9vy8//T7/D/0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8jl5v9faGj/MzMz/zIyMrEzMzMKAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAANTU1KzMzM3cyNDTFMzMz/jMzM/82Njb+Ymlp/5elpf/F2tv/2fHy/9Lv
|
||||
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wNvc/09VVf4zMzP/MzMzm0BAQAQAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALi4uFjQ0NF4zMzOqNDQ09TMz
|
||||
M/8zMzP/TFBQ/oSQkP+vw8P/z+vs/9Du7//Q7u//0O7v/9Du7/+1zs//RUlJ/TMzM/40NDSAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAOTk5CTU1NUQzMzORNDQ05TMzM/8zMzP/PT8//Wx1dv+Yq6z/xuLj/6e9vv87PT39NDQ0+jMz
|
||||
M1oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATU1NTUzMzOCMzMzzjMzM/8zMzP/NTY2/jU2
|
||||
Nv41NTXwNTU1PwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc3
|
||||
NxwzMzNoMzMztDMzM9gxMTEqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////8AAP//g////wAA//8AP///AAD//gAH//8AAP/8
|
||||
AAD//wAA//AAAA//AAD/4AAAAf8AAP/AAAAAPwAA/4AAAAAfAAD/AAAAAB8AAP4AAAAADwAA/AAAAAAP
|
||||
AADwAAAAAA8AAOAAAAAADwAAwAAAAAAHAACAAAAAAAcAAAAAAAAABwAAAAAAAAAHAAAAAAAAAAMAAAAA
|
||||
AAAAAwAAAAAAAAADAAAAAAAAAAMAAIAAAAAAAwAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAwAAAAAAB
|
||||
AADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAOAAAAAAAAAA4AAAAAAAAADgAAAAAAEAAOAA
|
||||
AAAAAwAA8AAAAAAHAADwAAAAAA8AAPAAAAAAPwAA8AAAAAB/AAD4AAAAAP8AAPgAAAAB/wAA/AAAAAP/
|
||||
AAD/gAAAB/8AAP/4AAAP/wAA//8AAD//AAD//+AAf/8AAP///AD//wAA////wf//AAAoAAAAIAAAAEAA
|
||||
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAyMjJCOTo65jk7O6oyMjJWNzc3DgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAMjIyVzg4OPmKmpv+eomJ/kVKSvY1Njb8PD09xDIyMmszMzMeAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NW5BQkL6tcXG/9Hu7//Q7u//0O7v/7vV1v+LnJ3/WF9f9jQ1
|
||||
Nf06OzvfNDQ0iTMzMzwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4ODiDTU5O+sDS0v/Y8fL/0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//xODh/5ywsP9pc3P4ODk5+jg5OfA3NzemMjIyTSQkJAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMFOTk5qVdaWvjK3d3/3PLz/9Pv8P/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//L6en/ore4/3F9ffs+QED4Nzc39zs8PLIyMjJcNzc3DgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKysrDDo8PMBobGz40eXm/9zy8//b8vP/0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8/t7v+vx8f/fYyN/kBD
|
||||
Q/czMzN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2NhM8Pj7Pdnx8+NXq6//c8vP/3PLz/9fw
|
||||
8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//i5yc/zs8PLsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2NjYhOzw84YGIiPrY7+//3PLz/9zy
|
||||
8//c8vP/0+/w/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/+vx8f/ODk58gAAAAEAAAAAAAAAAAAAAAAAAAAAMzMzLTo7O+2PmZn82vHy/9zy
|
||||
8//c8vP/3PLz/9vy8/9+kJD/m7Gy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//m7Gy/36Q
|
||||
kP/Q7u//0O7v/9Du7//Q7u//0O7v/83q6/83Nzf7NDQ0JwAAAAAAAAAAAAAAADIyMkI6Ojr2nKio/dzy
|
||||
8//c8vP/3PLz/9zy8//c8vP/2PHy/xASEv8CAgL/Y3Fx/83q6//Q7u//0O7v/9Du7//Q7u//zerr/2Nx
|
||||
cf8CAgL/EBIS/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/1RaWvMyMjJhAAAAAAAAAAAyMjJbNzg4+qm4
|
||||
uP/d8/P/3PLz/9zy8//c8vP/3PLz/9zy8//V8PH/DxER/xYWFv8AAAD/LzU2/7bQ0f/Q7u//0O7v/7bQ
|
||||
0f8vNTX/AAAA/xYWFv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//fYyM/jk5OaIAAAAAAAAAADg5
|
||||
OeyisrL/3fPz/93z8//c8vP/3PLz/9zy8//c8vP/3PLz/9Pv8P8PERH/cnJy/62trf8QERH/DA0N/4eb
|
||||
nP+OoqP/DxER/w4ODv+lpaX/cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+it7j/Ozw84gAA
|
||||
AAAAAAAAOzw8tpmnp//d8/T/3fPz/9zy8//c8vP/3PLz/9zy8//c8vP/0e7v/w8REf9ycnL//////97e
|
||||
3v84ODj/AAAA/wAAAP84ODj/3t7e//////9ycnL/DxER/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/8Xh
|
||||
4v80NDT+MzMzFAAAAAAzMzNzb3d3993z9P/d8/P/3PLz/9zy8//c8vP/3PLz/9vy8//Q7u//DxER/3Jy
|
||||
cv////////////r6+v9/f3//f39///r6+v///////////3Jycv8PERH/0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/0ZKSvQyMjJMAAAAADIyMjhDRET43fLz/93z8//c8vP/3PLz/9zy8//c8vP/2fHy/9Du
|
||||
7/8PERH/cnJy////////////////////////////////////////////cnJy/w8REf/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//bnp6+jU1NYcAAAAAMzMzBTU2NvnL3d7/3fPz/9zy8//c8vP/3PLz/9zy
|
||||
8//Y8fL/0O7v/w8REf9ycnL///////////////////////////////////////////9ycnL/DxER/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Upqf/PD09zAAAAAAAAAAAPT4+zqq4uf/d8/P/3PLz/9zy
|
||||
8//c8vP/3PLz/9jx8v/Q7u//DxER/3Jycv///////////////////////////////////////////3Jy
|
||||
cv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v81NTX6KysrBgAAAAA0NDSJgouM+93z
|
||||
8//c8vP/3PLz/9zy8//c8vP/2PHy/9Du7/8PERH/cnJy////////////////////////////////////
|
||||
////////cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//z+3u/zw+Pvg0NDQ2AAAAADQ0
|
||||
NE5RVFT13fPz/93z8//c8vP/3PLz/9zy8//Y8fL/0O7v/w8REf9ycnL/////////////////////////
|
||||
//////////////////9ycnL/DxER/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//X2dn9TQ0
|
||||
NHEAAAAAMzMzFDU1Nf7U6er/3fPz/9zy8//c8vP/3PLz/9ry8v/Q7u//DxER/3Jycv//////////////
|
||||
/////////////////////////////3Jycv8PERH/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7/+Hl5f/PD09tAAAAAAAAAAAOzw84rTFxv/d8/P/3PLz/9zy8//c8vP/2/Lz/9Du7/8PERH/cnJy////
|
||||
////////////////////////////////////////cnJy/w8REf/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/5KkpP84OTnsAAAAAAAAAAA4Ojqjj5uc/t3z8//c8vP/3PLz/9zy8//c8vP/0+/w/xkc
|
||||
HP9bW1v///////////////////////////////////////////9aWlr/GRwc/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/+Xqqv/NjY2+zQ0NGMAAAAAAAAAADQ0NGNiZ2f13fPz/9zy8//c8vP/3PLz/9zy
|
||||
8//W8PH/Xmts/wAAAP8ODw//EBER/xAREf8QERH/EBER/xAREf8QERH/Dg8P/wAAAP9fbW7/0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//i5yc/TY3N/c0NDRJAAAAAAAAAAAAAAAAMjIyKTk6Ovva8PD/3PLz/9zy
|
||||
8//c8vP/3PLz/9vy8//P6+z/gJOT/1ZiYv9TX2D/U19g/1NfYP9TX2D/U19g/1NfYP9WYmL/gZOU/87s
|
||||
7f/Q7u//0O7v/9Du7//Q7u//z+3u/3mIiPw3ODjyMTExOQAAAAAAAAAAAAAAAAAAAAAAAAABODk58sDS
|
||||
0//c8vP/3PLz/9zy8//c8vP/3PLz/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/8zp6v9ncXL5Nzk55jY2NiYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA7Pj69nKqr/9zy8//c8vP/3PLz/9zy8//c8vP/3PLz/9Lv8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//I5eb/XGRk+Ds8PNU3NzcXAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAADMzM3hCRET3jZqb/r/S0v/b8vL/3PLz/9zy8//c8vP/2/Lz/9Lv8P/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//wdzd/0tRUfc5OjrAKysrDAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlw5OjqwNjc39kZISPeAiov7tMXG/9ju7v/c8vP/2vLz/9Lv
|
||||
8P/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/7jS0v9DRkb4OTs7qjMzMwUAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEMzMzPDc3N5Q4OTnqOjs7+211
|
||||
dvijsrL/z+Tl/9bw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+wyMj/PT4/+Dc3N5UAAAACAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAA1NTUrMzMzdzo7O840NDT+V1xc9o6cnP+60dL/0e7v/9Du7//Q7u//pry8/zg5Ofo3Nzd4AAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMx4yMjJrOjs7wjU1NftGS0vzfImK/IiYmf42Nzf6MjIyVwAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANzc3DjIyMlY5OzuqOTo65jIy
|
||||
MkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/g////wB///4AB//4A
|
||||
AD/8AAAH+AAAB/AAAAfgAAADwAAAA4AAAAMAAAADAAAAAwAAAAEAAAABAAAAAQAAAAGAAAAAgAAAAIAA
|
||||
AACAAAAAwAAAAMAAAADAAAABwAAAA8AAAAfgAAAP4AAAH+AAAD/8AAB//8AB///4A////wf/KAAAABgA
|
||||
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAOz4+Vzs8PO1DRkavMjIyUS4uLgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz9pX2Nj78Le3/+rwsP/d4SF8EVI
|
||||
SO1CRUXQODg4ci8vLxsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAUJERotxd3fz0+rr/9Du7//Q7u//0O7v/9Du7/+2z9D/hJOU9k1SUus+QEDjPD4+hzIy
|
||||
MjMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAEQkNDq4WPj/Pa8PH/1fDx/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+/2tv/j6Ch/VdeXu8/QUHoQUNDnC8vLxsAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAC4uLgtFSEjEl6Oj9tvy8v/c8vP/0e7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//I5eb/eYaH/Tk5OXUAAAAAAAAAAAAAAAAAAAAAOTk5EkVISNKmsrP53PLz/9zy
|
||||
8//Z8fL/0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//ssrL/0NH
|
||||
R74AAAAAAAAAAAAAAAAwMDAgRkhI4q++wP3c8vP/3PLz/9zy8/+kuLn/anh5/8zp6v/Q7u//0O7v/9Du
|
||||
7//Q7u//zOnq/2p4ef+gt7j/0O7v/9Du7//Q7u//z+zt/z9BQuoAAAAAAAAAADQ0NCxHSUnnvtDQ/dzy
|
||||
8//c8vP/3PLz/9zy8/90hIX/AAAA/y4zM/+0zs//0O7v/9Du7/+0zs//LjMz/wAAAP9zhIT/0O7v/9Du
|
||||
7//Q7u//0O7v/1JYWOowMDAgAAAAADs9PezH2tv/3fPz/9zy8//c8vP/3PLz/9vy8/9zhIT/S0tL/2Zn
|
||||
Z/8NDg7/iJyd/4icnf8NDg7/Zmdn/0tLS/9zhIT/0O7v/9Du7//Q7u//0O7v/36NjfY1NTVcAAAAAENG
|
||||
RtDN4eH/3fPz/9zy8//c8vP/3PLz/9rx8v9zhIT/VFVV//////+rq6v/DxAQ/w8QEP+rq6v//////1RV
|
||||
Vf9zhIT/0O7v/9Du7//Q7u//0O7v/6W7u/9CRkalAAAAAD5AQIutvL3+3fPz/9zy8//c8vP/3PLz/9jx
|
||||
8v9zhIT/VFVV////////////5eXl/+Xl5f///////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/8jk
|
||||
5f9BQ0PgAAAAADIyMkeDjY3x3fPz/9zy8//c8vP/3PLz/9bw8f9zhIT/VFVV////////////////////
|
||||
/////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/9GS0vsMzMzDzc3Nw5VWFnt3fPz/9zy
|
||||
8//c8vP/3PLz/9bw8f9zhIT/VFVV/////////////////////////////////1RVVf9zhIT/0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7/9teXnvNDQ0RQAAAABARETi1+vs/9zy8//c8vP/3PLz/9bw8f9zhIT/VFVV////
|
||||
/////////////////////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/+Xqqv+P0FBigAA
|
||||
AABBRESoucvL/9zy8//c8vP/3PLz/9fx8f9zhIT/VFVV/////////////////////////////////1RV
|
||||
Vf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du7/+81tf/Q0VFzwAAAAA1NTVckp6e993z8//c8vP/3PLz/9nx
|
||||
8v9zhIT/VFVV/////////////////////////////////1RVVf9zhIT/0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7/+2z9D/Oz097AAAAAA1NTUiYWho7N3z8//c8vP/3PLz/9zy8/+OoaL/HR4e/4iIiP+IiIj/iIiI/4iI
|
||||
iP+IiIj/iIiI/xwdHf+Po6T/0O7v/9Du7//Q7u//0O7v/67Fxv5CRUXpMzMzMgAAAAAAAAAAQUND69zx
|
||||
8v/c8vP/3PLz/9zy8//T7u//b39//0dQUP9HUFD/R1BQ/0dQUP9HUFD/R1BQ/3CAgP/P7e7/0O7v/9Du
|
||||
7//Q7u//n7S0/D9BQeQyMjIkAAAAAAAAAAAAAAAAREZGwMPW1//c8vP/3PLz/9zy8//b8vP/0e7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+Spab4P0FB1zExMRUAAAAAAAAAAAAA
|
||||
AAAAAAAAOTk5dYiUlPzV6+z/3PLz/9zy8//c8vP/2PHy/9Du7//Q7u//0O7v/9Du7//Q7u//0O7v/9Du
|
||||
7//Q7u//z+3u/3yLi/ZBQ0PFLi4uCwAAAAAAAAAAAAAAAAAAAAAAAAAALy8vG0FDQ5xAQkLnZGlq7KCu
|
||||
rvzO4+P/3PLz/9jx8v/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7//O6+z/anV28kBBQ6xAQEAEAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU1Ijs7O3VCRETWUVVV7oyWl/a5zM3/0u7v/9Du
|
||||
7//Q7u//0O7v/8vp6f9gaGjwPkFBnQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAMTExFTU4OGBDR0e+SEpK63F8fPChtrf/wd3e/1FXV+88QUFyAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAALi4uCzIyMlFDRkavOzw87Ts+PlcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8H
|
||||
/0H+AP9B+AAPQfAAA0HgAANBwAADQYAAA0EAAAFBAAABQQAAAUEAAAFBAAAAQQAAAEGAAABBgAAAQYAA
|
||||
AEGAAABBwAABQcAAA0HAAAdBwAAPQfgAH0H/AH9B/+D/QSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEpRUXhaYWLXUFVVsEFERE9AQEAIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRaWo6jsLHw0O7v/8vo6f+mvLz4cHt721Va
|
||||
W8FGSkp1NTU1GAAAAAAAAAAAAAAAAAAAAAAAAAAAVVVVA1VbW622xsf21vDx/9Du7//Q7u//0O7v/9Du
|
||||
7//O7O3/rMPE/XSAgeNXXV3INTU1IgAAAAAAAAAAJCQkB1leXru/0dH63PLz/9Pv8P/Q7u//0O7v/9Du
|
||||
7//Q7u//0O7v/9Du7//Q7u//ts/Q/0pQUHkAAAAALS0tEVthYcrJ3d793PLz/9vy8/9MVVX/tM7P/9Du
|
||||
7//Q7u//tM7P/0xVVf/Q7u//0O7v/8/t7v9VW1u3AAAAAFheXtDR5ub/3PLz/9zy8//Y8fL/KCoq/zg7
|
||||
O/+JnJz/iZyc/zc6Ov8oKir/0O7v/9Du7//Q7u//Y2tr0QAAAABocHHL3fPz/9zy8//c8vP/1vDx/z1A
|
||||
QP/39/f/aWtr/2lra//39/f/PUBA/9Du7//Q7u//0O7v/3yKiuUzMzMZUVhYqdjt7v/c8vP/3PLz/9Tw
|
||||
8f89QED//////////////////////z1AQP/Q7u//0O7v/9Du7/+ovsD9QENDW0JFRV27zs/93PLz/9zy
|
||||
8//U8PD/PUBA//////////////////////89QED/0O7v/9Du7//Q7u//y+jp/1FYWKY1NTUYkp6f6tzy
|
||||
8//c8vP/1fDx/z1AQP//////////////////////PUBA/9Du7//Q7u//0O7v/9Du7/9eZ2fHAAAAAHN6
|
||||
etXc8vP/3PLz/9fx8f88Pz///////////////////////zw/P//Q7u//0O7v/9Du7//C3t7/UFdXzgAA
|
||||
AABaYGC52/Ly/9zy8//a8vP/e4qL/zxAQP89QUH/PUFB/zxAQP98i4z/0O7v/9Du7/+81tf+U1pazTMz
|
||||
MxQAAAAASlBQfMfb3P/c8vP/3PLz/9Xw8f/Q7u//0O7v/9Du7//Q7u//0O7v/9Du7/+vx8f6T1VVvjMz
|
||||
MwoAAAAAAAAAADU1NSJbYmLJhpGS5r3P0P3a8fH/1O/w/9Du7//Q7u//0O7v/9Du7/+htrf0TVNTqlVV
|
||||
VQMAAAAAAAAAAAAAAAAAAAAAAAAAADk5ORJGS0tiXGNjuneAgN+htLT3yeXm/9Du7/+TpabvS09PmgAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEAIQURET1FXV7BaYWLXSlFReAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAA+D+sQfAHrEHAAaxBgAGsQQABrEEAAaxBAACsQQAArEEAAKxBAACsQYAA
|
||||
rEGAAKxBgAGsQYADrEHgD6xB/B+sQQ==
|
||||
AAAAAAAAAAAASwAAAKgAAADhAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA7gAAAG4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABgAAAC+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAAkAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAN8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABIAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA/wAAAP8AAAD/AAAA/wIG
|
||||
B/8hVmP/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
|
||||
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXWI/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAAA/wAA
|
||||
AP8AAAD/AgYH/z+kvf9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAADiAAAA/wAAAP8AAAD/IVZk/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAD6AAAA/wAAAP8AAAD/MoSY/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAA
|
||||
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAACqAAAAiAAAAIgAAACIAAAAiAAAAIgAAACIAAAAiAAAAF4AAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOgAAAD/AAAA/wAA
|
||||
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABYX/AAe6/wAHuv8AB7r/AAe6/wAHt/8AAR7/AAAA/wAA
|
||||
AF4AAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ACej/AAno/wAF
|
||||
df8AAAD/AAAApgAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ
|
||||
6P8ACej/AAe4/wAABP4AAAHjAAAAEQAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||
AP8ABqb/AAno/wAJ6P8ACd3/AAEh/gAAAP4AAACZAAAAdwAAAE4AAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||
AP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8AA1T/AAAA/wAAAP8AAAD/AAAA/wAAAOwAAAD/AAAA/wAA
|
||||
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAI2f8AAAH/BQMC/3JHJP8WDQf/AAAA/wAA
|
||||
AGsAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ABGH/AAAA/ycY
|
||||
Df8AAAD/AAAAswAAAAEAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ
|
||||
6P8ACeH/AAIp/wAAAP8BAQDwAAAAGAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||
AP8ABqb/AAno/wAJ6P8ACej/AAfB/wAAB/8AAAHxAAAAGAAAAAAAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||
AP8AAAD/AAAA/wAAAP8ABqb/AAno/wAJ6P8ACej/AAno/wAFg/8AAAD/AAAAtQAAAAEAAAD/AAAA/wAA
|
||||
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8ABXn/AAeq/wAHqv8AB6r/AAeq/wAHqf8AASH/AAAA/wAA
|
||||
AHMAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP0AAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8+JxT/VzYc/1c2
|
||||
HP9TMxv/DAgE/wEBAf8KCgr/AAAA/wAAAMIAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||
AP91SCX/pGU0/6RlNP+kZTT/glAp/wMCAf8BAQH/AQEB5gAAABIAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||
AP8AAAD/AAAA/wAAAP91SCX/pGU0/6RlNP+kZTT/pGU0/1Q0G/8AAAD/AAAAvwAAAAAAAAD/AAAA/wAA
|
||||
AP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP9dOh7/g1Eq/4NRKv+DUSr/g1Eq/4FQKf8WDgf/AAAA/wAA
|
||||
AGAAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAOkAAAD/AAAA/wAAAP8AAAD/NIec/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP9VVVX/d3d3/3Jy
|
||||
cv8HBwf/AAAA+wAAAJkAAACIAAAAiAAAAFwAAAD/AAAA/wAAAP8AAAD/NIec/03J6P86mK//MoKW/zGA
|
||||
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
|
||||
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXaI/wAAAP8AAAD/AAAA/wAA
|
||||
AP+2trb///////r6+v8nJyf+AAAA/QAAAEUAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/FDU9/wIE
|
||||
Bf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP+2trb////////////Nzc3/BQUF/gEBAekAAAAXAAAAAAAAAAAAAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+2trb/////////////////ioqK/wAAAP8AAAC1AAAAAQAA
|
||||
AAAAAAD/AAAA/wAAAP8AAAD/AAAA/w0iKP8ve43/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zyd
|
||||
tf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zydtf88nbX/PJ21/zyd
|
||||
tf88nbX/PJ21/zydtf88nbX/N5Cm/wAAAP8AAAD/AAAA/wAAAP+2trb//////////////////f39/0RE
|
||||
RP8AAAD/AAAAZwAAAAAAAAD/AAAA/wAAAP8AAAD/ECox/1DQ8P9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP+2trb/////////
|
||||
/////////////+Xl5f8TExP+AQEB9gAAACkAAAD/AAAA/wAAAP8AAAD/MYCT/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAA
|
||||
AP8YGBj/IiIi/yIiIv8iIiL/IiIi/yIiIv8NDQ3/AAAA/wAAAMkAAAD/AAAA/wAAAP8AAAD/NIec/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAADnAAAA3QAAAN0AAADdAAAA3QAAAN0AAADdAAAA3QAAALIAAAD6AAAA/wAA
|
||||
AP8AAAD/MoSY/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAADjAAAA/wAAAP8AAAD/IVdl/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAACpAAAA/wAAAP8AAAD/AwcI/z+kvv9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/S8Tj/wAAAP8AAAD/AAAA/wAAAP8AAABJAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNAAAA/wAAAP8AAAD/AAAA/wMHCP8hV2X/MYCU/zGA
|
||||
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGA
|
||||
lP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/MYCU/zGAlP8xgJT/LXWI/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAABJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAA
|
||||
AN8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAABgAAAC/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP4AAAAkAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATQAAAKkAAADiAAAA+gAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7gAAAG4AAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAAf/xBMAAAAAA//EEgAAAAAD/8QSAAAAAAP/xBAAA
|
||||
AAAA//EEAAAAAAD/8QQAAAAAAP/xBAAAAAAA//EEAAAAAAD/8QQAAAAAAP/xBAAAAAAA//EEAAAAAAD/
|
||||
8QQAAAAAAP/xBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAfEEAAAAAAAB8QQAAAAAAADxBAAA
|
||||
AAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAAAfEEAAAAAAAB8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA
|
||||
8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAB8QQAAAAAAADxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAAfxBAAA
|
||||
AAAAA/EEAAAAAAAB8QQAAAAAAAHxBAAAAAAAAPEEAAAAAAAA8QQAAAAAAADxBAAAAAAA//EEAAAAAAD/
|
||||
8QQAAAAAAP/xBAAAAAAA//EEgAAAAAD/8QSAAAAAAP/xBMAAAAAA//EE8AAAAAH/8QQoAAAAIAAAAEAA
|
||||
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAtgAAAO8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAALUAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbgAAAPsAAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAD7AAAA/wAA
|
||||
AP8CBgf/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUO
|
||||
EP8FDhD/BQ4Q/wUOEP8FDhD/AgQF/wAAAP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAA
|
||||
AP8AAAD/HElU/07L6v9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAAwAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AAAAAADhAAAA/wEDBP9Nyun/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAAADAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAAAMAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAA
|
||||
AP8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8
|
||||
Rv8AAAD/AAAA/wAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/FzxG/wAAAP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8IFBf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAA+cAAAD/AAAA/wgU
|
||||
F/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAGo/8ACMn/AAjJ/wAHuP8AAAr7AAACdgAA
|
||||
AP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAe8/wAJ6P8ACej/AANK+QAA
|
||||
CMcAAAADAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AB7z/AAno/wAF
|
||||
iv8AAAX7BgMBuQMCAJQAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAH
|
||||
vP8ACeL/AQEH/y0cDv8IBQP+BwQBvgAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAA
|
||||
AP8AAAD/AAe8/wAJ6P8CBVr/EAoM/wQDAfAAAAAZAAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/8XPEb/AAAA/wAAAP8AB7z/AAno/wAJ3/8AAR3/AAADsQAAAAAAAAD/AAAA/wgUF/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAHvP8ACej/AAno/wAHu/8AAAT7AAAARQAAAP8AAAD/CBQX/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/BQQU/wYEGf8BARf/AAEX/gAABf4AAAT2AAAA/wAA
|
||||
AP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP9YNhz/bUMj/1s4Hf8EAwL/BwcH/gcH
|
||||
B8EAAAD/AAAA/wgUF/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/4VSKv+kZTT/pGU0/1s5
|
||||
Hv8FAwL+AAAAJgAAAP8AAAD/CBQX/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/RywX/1c2
|
||||
HP9XNhz/VzUc/wkGA/4GAwG3AAAA/wAAAP8IFBf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAA
|
||||
AP9CPz7/UE1L/w8MCv0JBgPcCgYDtQUDApwAAAD/AAAA/wgUF/87mbD/JWFv/yFWY/8hVmP/IVZj/yFW
|
||||
Y/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/yFWY/8hVmP/IVZj/wkY
|
||||
HP8AAAD/AAAA/8/Pz//9/f3/MTEx+AgICKUAAAAAAAAAAAAAAP8AAAD/AgYH/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/z8/P///////d3d3/CQkJ+gAAAFkAAAAAAAAA/wAAAP8AAAD/FztE/z2f
|
||||
uP9HudX/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/R7nW/0e5
|
||||
1v9Hudb/R7nW/0e51v8UND3/AAAA/wAAAP/Pz8////////////+goKD/BQUF9AAAAB8AAAD/AAAA/wIE
|
||||
Bf9R0/T/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/1NTU/9mZmb/ZmZm/2ZmZv8MDAz+CgoKyAAA
|
||||
AP8AAAD/BQwN/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/FzxG/wAAAP8AAAD/AAAArAAAAJkAAACZAAAAmQAA
|
||||
AJkAAACCAAAA5gAAAP8BAwT/Tsvq/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/8XPEb/AAAA/wAAAP8AAAAwAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAACtAAAA/wAAAP8dS1b/Tsvq/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/xc8Rv8AAAD/AAAA/wAA
|
||||
ADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAAD7AAAA/wAAAP8BAwT/BQ4Q/wUOEP8FDhD/BQ4Q/wUO
|
||||
EP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/BQ4Q/wUOEP8FDhD/AgQF/wAA
|
||||
AP8AAAD/AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAD7AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADUAAACsAAAA4QAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAAtQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAB+AAAAfAAAAHwAA
|
||||
AB8AAAAfAAAAHwAAAB8AAAAfAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAB8AAAAfAAAAH4AAAB/AAAAfKAAAABgA
|
||||
AAAwAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArAAAAtAAAAO4AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAABiAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAACsAAAD2AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAALUAAAD/Dygu/z2f
|
||||
t/9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAA
|
||||
AP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAO4AAAD/PZ+4/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAA
|
||||
AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAAC8AAAARAAAAEQAAABEAAAAOQAAAP8AAAD/Q6/K/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAA
|
||||
AP8AARz4AANQ6wADUOsAAi3zAAAJ2gAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAno/wAJ2/8AARnvAAAALQAA
|
||||
AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/JmNy/wAAAP8AA1T/AAno/wEDSfwHBArkCAYDtQAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAnl/wcF
|
||||
E/8uHQ74DAcDkgAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AA1T/AAno/wAHrv8BAQ/6AAAADAAAAP8AAAD/Q6/K/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAA
|
||||
AP8AA0n/AAjJ/wAIyf8AA035AAARmAAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8MBwr/IBQb/woHFP8DAxP+AgIL+AAA
|
||||
AP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/JmNy/wAAAP87JBP/pGU0/5tfMf8TDQj+BQUFbwAAAP8AAAD/Q6/K/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8aEw3/STUl/z4q
|
||||
Gv4fEwr7BwUC2gAAAP8AAAD/Q67J/0a41P9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Kr
|
||||
xv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAAAP9DQ0P/ubm5/wcHB/kAAABXAAAAOQAAAP8AAAD/CBUZ/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP9QUFD//////5WVlfoUFBS8AAAAAAAAAP8AAAD/FzxF/0Ouyf9Hudb/R7nW/0e51v9Hudb/R7nW/0e5
|
||||
1v9Hudb/R7nW/0e51v9Hudb/R7nW/0e51v9Hudb/IVZj/wAAAP9cXFz///////////9ERETwCgoKZQAA
|
||||
AP8AAAD/QavF/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/JmNy/wAAAP8GBgb5ExMT7xMTE+8QEBDxCgoK3gAAAPQAAAD/PaC5/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/JmNy/wAAAP8AAACjAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAALYAAAD/ECow/z2fuP9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Krxv9Cq8b/QqvG/0Kr
|
||||
xv9Cq8b/QqvG/0Krxv9Cq8b/Hk9b/wAAAP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAACwAAAD3AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAACjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAtgAAAO8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAABiAAAAAAAAAAAAAAAAAAAAAIAA
|
||||
D0EAAA9BAAAPQQAAD0EAAA9BAAAPQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA
|
||||
AEEAAABBAAABQQAAAEEAAABBAAAPQQAAD0EAAA9BgAAPQSgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAA
|
||||
AAAAAAAAAAAAAAAAAAAAAAAbAQMEuQECAvkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8BAgLtAAAACwAAAAAAAAAAAQMEugYPEfspbH3/LHKE/yxyhP8scoT/LHKE/yxyhP8scoT/LHKE/yxy
|
||||
hP8cSVT/AAAA/wAAABgAAAAAAAAAAAECAvkqbn//Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/NIme/wAAAP8AAAAYAAAAAAAAAAAAAAD/LXWH/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/zSJnv8AAAD/AAAAGAAAAAAAAAAAAAAA/y11h/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wACHakAAiGgAAIbjgAAAP8tdYf/Utb3/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/NIme/wAAAP8AB8X/AAer+wACJKIAAAD/LXWH/1LW9/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/zSJnv8AAAD/AAjR/wcGKfYSCwXIAAAA/y11h/9S1vf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wAI0v8KCUv9DwgIeQAAAP8tdYf/Utb3/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/NIme/wAAAP8LCmX/AQVi/gECFugAAAD/LXWH/1LW
|
||||
9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/zSJnv8AAAD/gVAp/1U3If8aFxXcAAAA/y11
|
||||
h/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/0o/Nf8uIRb4DQkF0gAA
|
||||
AP8XPEX/EzE4/xArMf8QKzH/ECsx/xArMf8QKzH/ECsx/xArMf8QKzH/Chsg/wAAAP/n5+f/RkZG3AAA
|
||||
ABYAAAD/ESwy/0rA3v9NyOf/Tcjn/03I5/9NyOf/Tcjn/03I5/9NyOf/Tcjn/zGAk/8AAAD/qamp/6Oj
|
||||
o/8jIyPKAAEB/CRfbv9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/9S1vf/Utb3/1LW9/80iZ7/AAAA/wAA
|
||||
AFYAAABEAAAAQAEDBLsGDxL7Km1+/yxyhP8scoT/LHKE/yxyhP8scoT/LHKE/yxyhP8scoT/HElU/wAA
|
||||
AP8AAAAYAAAAAAAAAAAAAAAcAQMEuwEBAvoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA
|
||||
AP8BAgLtAAAACwAAAAAAAAAAAAOsQQADrEEAA6xBAAOsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAA
|
||||
rEEAAKxBAACsQQAArEEAA6xBAAOsQQ==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
26
Models/AppOptions.cs
Normal 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>();
|
||||
|
||||
}
|
||||
}
|
||||
@ -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}";
|
||||
|
||||
}
|
||||
}
|
||||
@ -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
@ -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
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
282
Net/WebParser.cs
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
541
OptionsForm.cs
@ -1,299 +1,310 @@
|
||||
using FizzyLauncher.Models;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using FizzyLauncher.Models;
|
||||
using RyzStudio.Windows.Forms;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
using System;
|
||||
using RyzStudio.Windows.ThemedForms.PickerBox;
|
||||
|
||||
namespace FizzyLauncher
|
||||
{
|
||||
public class OptionsForm : TDialogForm
|
||||
public class OptionsForm : Form
|
||||
{
|
||||
private System.Windows.Forms.Label label1;
|
||||
private TButton button1;
|
||||
private TYesNoPickerBox pickerBox1;
|
||||
private System.Windows.Forms.Label label6;
|
||||
private TYesNoPickerBox pickerBox2;
|
||||
private System.Windows.Forms.Label label7;
|
||||
private System.Windows.Forms.Label label8;
|
||||
private TPickerBox pickerBox3;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator3;
|
||||
private TTextBox textBox1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator tHorizontalSeparator2;
|
||||
private FlowLayoutPanel flowLayoutPanel1;
|
||||
private TTogglePanel panel1;
|
||||
private TTogglePanel panel3;
|
||||
private ThYesNoPickerBox yesNoPickerBox1;
|
||||
private Label label2;
|
||||
private TTogglePanel panel2;
|
||||
private ThYesNoPickerBox thYesNoPickerBox1;
|
||||
private Label label1;
|
||||
private ThYesNoPickerBox yesNoPickerBox2;
|
||||
private Label label3;
|
||||
private RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox textBox1;
|
||||
private RyzStudio.Windows.ThemedForms.Composite.DialogFooter dialogFooter1;
|
||||
private AppOptions _appSession = null;
|
||||
|
||||
|
||||
protected MainForm parentForm = null;
|
||||
|
||||
|
||||
public OptionsForm(MainForm parent) : base()
|
||||
public OptionsForm(AppOptions appSession)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
parentForm = parent;
|
||||
UISetup.Dialog(this);
|
||||
|
||||
pickerBox3.ComboBox.Items.Clear();
|
||||
foreach (string item in Enum.GetNames(typeof(AppSession.AutoSaveOption)))
|
||||
_appSession = appSession;
|
||||
|
||||
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()
|
||||
{
|
||||
this.label1 = new System.Windows.Forms.Label();
|
||||
this.button1 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.pickerBox1 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox();
|
||||
this.label6 = new System.Windows.Forms.Label();
|
||||
this.pickerBox2 = new RyzStudio.Windows.ThemedForms.TYesNoPickerBox();
|
||||
this.label7 = new System.Windows.Forms.Label();
|
||||
this.label8 = new System.Windows.Forms.Label();
|
||||
this.pickerBox3 = new RyzStudio.Windows.ThemedForms.TPickerBox();
|
||||
this.tHorizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.tHorizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.tHorizontalSeparator3 = new RyzStudio.Windows.Forms.THorizontalSeparator();
|
||||
this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
flowLayoutPanel1 = new FlowLayoutPanel();
|
||||
panel1 = new TTogglePanel();
|
||||
yesNoPickerBox1 = new ThYesNoPickerBox();
|
||||
label2 = new Label();
|
||||
panel2 = new TTogglePanel();
|
||||
yesNoPickerBox2 = new ThYesNoPickerBox();
|
||||
thYesNoPickerBox1 = new ThYesNoPickerBox();
|
||||
label1 = new Label();
|
||||
panel3 = new TTogglePanel();
|
||||
textBox1 = new RyzStudio.Windows.ThemedForms.ButtonTextBox.ThClearableTextBox();
|
||||
label3 = new Label();
|
||||
dialogFooter1 = new RyzStudio.Windows.ThemedForms.Composite.DialogFooter();
|
||||
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
|
||||
//
|
||||
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, 193);
|
||||
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(109, 34);
|
||||
this.label1.TabIndex = 153;
|
||||
this.label1.Text = "Custom Command";
|
||||
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);
|
||||
//
|
||||
// pickerBox1
|
||||
//
|
||||
this.pickerBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pickerBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.pickerBox1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
|
||||
this.pickerBox1.Location = new System.Drawing.Point(285, 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;
|
||||
//
|
||||
//
|
||||
label1.AutoSize = true;
|
||||
label1.BackColor = System.Drawing.Color.Transparent;
|
||||
label1.ForeColor = System.Drawing.SystemColors.ControlText;
|
||||
label1.Location = new System.Drawing.Point(1, 22);
|
||||
label1.Margin = new Padding(0);
|
||||
label1.Name = "label1";
|
||||
label1.Padding = new Padding(0, 8, 0, 0);
|
||||
label1.Size = new System.Drawing.Size(85, 23);
|
||||
label1.TabIndex = 196;
|
||||
label1.Text = "Always On Top";
|
||||
label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// panel3
|
||||
//
|
||||
panel3.AutoScrollMargin = new System.Drawing.Size(0, 0);
|
||||
panel3.AutoScrollMinSize = new System.Drawing.Size(0, 0);
|
||||
panel3.Controls.Add(textBox1);
|
||||
panel3.Controls.Add(label3);
|
||||
panel3.ExpandedHeight = 100;
|
||||
panel3.ForeColor = System.Drawing.Color.FromArgb(99, 105, 119);
|
||||
panel3.IsOpen = true;
|
||||
panel3.Location = new System.Drawing.Point(0, 154);
|
||||
panel3.Margin = new Padding(0);
|
||||
panel3.Name = "panel3";
|
||||
panel3.PaddingBottom = 0;
|
||||
panel3.PaddingLeft = 4;
|
||||
panel3.Size = new System.Drawing.Size(401, 77);
|
||||
panel3.TabIndex = 1;
|
||||
panel3.Title = "Behaviour";
|
||||
panel3.TitleContextMenuStrip = null;
|
||||
panel3.TitleCursor = Cursors.Default;
|
||||
//
|
||||
// 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(192, 192);
|
||||
this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6);
|
||||
this.textBox1.Name = "textBox1";
|
||||
this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9);
|
||||
this.textBox1.Size = new System.Drawing.Size(177, 35);
|
||||
this.textBox1.SubmitButton = null;
|
||||
this.textBox1.TabIndex = 192;
|
||||
this.textBox1.UseSystemPasswordChar = false;
|
||||
//
|
||||
//
|
||||
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
textBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
textBox1.ClearedValue = "{0}";
|
||||
textBox1.EnableReactiveVisual = true;
|
||||
textBox1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
textBox1.Icon = "O";
|
||||
textBox1.IconSize = 13F;
|
||||
textBox1.Location = new System.Drawing.Point(161, 21);
|
||||
textBox1.Name = "textBox1";
|
||||
textBox1.Size = new System.Drawing.Size(230, 32);
|
||||
textBox1.TabIndex = 203;
|
||||
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
|
||||
//
|
||||
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.textBox1);
|
||||
this.Controls.Add(this.tHorizontalSeparator3);
|
||||
this.Controls.Add(this.tHorizontalSeparator2);
|
||||
this.Controls.Add(this.tHorizontalSeparator1);
|
||||
this.Controls.Add(this.pickerBox3);
|
||||
this.Controls.Add(this.label8);
|
||||
this.Controls.Add(this.pickerBox2);
|
||||
this.Controls.Add(this.label7);
|
||||
this.Controls.Add(this.pickerBox1);
|
||||
this.Controls.Add(this.label6);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.label1);
|
||||
this.MinimumSize = new System.Drawing.Size(400, 560);
|
||||
this.Name = "OptionsForm";
|
||||
this.Text = "Options";
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
//
|
||||
AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
|
||||
AutoScaleMode = AutoScaleMode.Font;
|
||||
BackColor = System.Drawing.Color.White;
|
||||
ClientSize = new System.Drawing.Size(444, 521);
|
||||
Controls.Add(dialogFooter1);
|
||||
Controls.Add(flowLayoutPanel1);
|
||||
MinimumSize = new System.Drawing.Size(460, 560);
|
||||
Name = "OptionsForm";
|
||||
Text = "Options";
|
||||
flowLayoutPanel1.ResumeLayout(false);
|
||||
panel1.ResumeLayout(false);
|
||||
panel1.PerformLayout();
|
||||
panel2.ResumeLayout(false);
|
||||
panel2.PerformLayout();
|
||||
panel3.ResumeLayout(false);
|
||||
panel3.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
if (parentForm == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (parentForm.CurrentSession == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
pickerBox3.ComboBox.SelectedIndex = (int)parentForm.CurrentSession.AutoSave;
|
||||
pickerBox1.Value = parentForm.CurrentSession.EnableAutoPosition;
|
||||
pickerBox2.Value = parentForm.CurrentSession.AlwaysOnTop;
|
||||
textBox1.Text = parentForm.CurrentSession.RunCommand ?? string.Empty;
|
||||
flowLayoutPanel1_Resize(null, e);
|
||||
}
|
||||
|
||||
private void button1_MouseClick(object sender, MouseEventArgs e)
|
||||
private void flowLayoutPanel1_Resize(object sender, EventArgs e)
|
||||
{
|
||||
if (parentForm != null)
|
||||
var width = flowLayoutPanel1.ClientRectangle.Width - SystemInformation.VerticalScrollBarWidth;
|
||||
|
||||
foreach (var item in flowLayoutPanel1.Controls.OfType<Control>())
|
||||
{
|
||||
if (parentForm.CurrentSession == null) parentForm.CurrentSession = new AppSession();
|
||||
|
||||
parentForm.CurrentSession.AutoSave = (AppSession.AutoSaveOption)pickerBox3.ComboBox.SelectedIndex;
|
||||
parentForm.CurrentSession.EnableAutoPosition = pickerBox1.Value;
|
||||
parentForm.CurrentSession.AlwaysOnTop = pickerBox2.Value;
|
||||
parentForm.CurrentSession.RunCommand = textBox1.Text?.Trim();
|
||||
item.Width = width;
|
||||
}
|
||||
}
|
||||
|
||||
this.DialogResult = DialogResult.OK;
|
||||
this.Close();
|
||||
public AppOptions Result
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_appSession == null)
|
||||
{
|
||||
_appSession = new AppOptions();
|
||||
}
|
||||
|
||||
_appSession.RestorePosition = yesNoPickerBox1.Value;
|
||||
|
||||
_appSession.AlwaysOnTop = yesNoPickerBox2.Value;
|
||||
|
||||
_appSession.RunCommand = textBox1.Text ?? string.Empty;
|
||||
|
||||
return _appSession;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
|
||||
150
PasswordForm.cs
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
@ -1,7 +1,6 @@
|
||||
using BookmarkManager;
|
||||
using RyzStudio.IO;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace FizzyLauncher
|
||||
@ -19,5 +18,6 @@ namespace FizzyLauncher
|
||||
Application.SetCompatibleTextRenderingDefault(false);
|
||||
Application.Run(new MainForm());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -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>
|
||||
@ -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>
|
||||
|
Before Width: | Height: | Size: 601 B |
|
Before Width: | Height: | Size: 417 B |
|
Before Width: | Height: | Size: 590 B |
|
Before Width: | Height: | Size: 410 B |
|
Before Width: | Height: | Size: 597 B |
|
Before Width: | Height: | Size: 421 B |
|
Before Width: | Height: | Size: 367 B |
|
Before Width: | Height: | Size: 468 B |
|
Before Width: | Height: | Size: 713 B |
|
Before Width: | Height: | Size: 467 B |
|
Before Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 347 B |
|
Before Width: | Height: | Size: 612 B |
|
Before Width: | Height: | Size: 419 B |
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 323 B |
|
Before Width: | Height: | Size: 352 B |
|
Before Width: | Height: | Size: 288 B |
|
Before Width: | Height: | Size: 670 B |
|
Before Width: | Height: | Size: 436 B |
@ -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 |
|
Before Width: | Height: | Size: 212 B |
|
Before Width: | Height: | Size: 187 B |
|
Before Width: | Height: | Size: 532 B |
|
Before Width: | Height: | Size: 380 B |
|
Before Width: | Height: | Size: 630 B |
|
Before Width: | Height: | Size: 394 B |
|
Before Width: | Height: | Size: 559 B |
|
Before Width: | Height: | Size: 398 B |
|
Before Width: | Height: | Size: 584 B |
|
Before Width: | Height: | Size: 394 B |
|
Before Width: | Height: | Size: 382 B |
|
Before Width: | Height: | Size: 289 B |
BIN
Resources/arrow-down-circle.png
Normal file
|
After Width: | Height: | Size: 642 B |
BIN
Resources/arrow-up-circle.png
Normal file
|
After Width: | Height: | Size: 637 B |
BIN
Resources/file.png
Normal file
|
After Width: | Height: | Size: 390 B |
|
Before Width: | Height: | Size: 303 B After Width: | Height: | Size: 318 B |
BIN
Resources/help-circle.png
Normal file
|
After Width: | Height: | Size: 648 B |
BIN
Resources/icon-64.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
Resources/save.png
Normal file
|
After Width: | Height: | Size: 454 B |
BIN
Resources/search-2.png
Normal file
|
After Width: | Height: | Size: 605 B |
BIN
Resources/search.png
Normal file
|
After Width: | Height: | Size: 577 B |
BIN
Resources/settings.png
Normal file
|
After Width: | Height: | Size: 694 B |
BIN
Resources/trash.png
Normal file
|
After Width: | Height: | Size: 405 B |
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
//}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
@ -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
|
||||
}
|
||||
}
|
||||
@ -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; }
|
||||
|
||||
}
|
||||
}
|
||||
@ -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>
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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; }
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||