diff --git a/Launcheroid.sln b/Launcheroid.sln index 7c41a2e..79a8175 100644 --- a/Launcheroid.sln +++ b/Launcheroid.sln @@ -1,9 +1,9 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29230.47 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34330.188 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcheroid", "Launcheroid\Launcheroid.csproj", "{042236E2-8C4A-4D85-9968-89AFC2D2271D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcheroid4", "Launcheroid4\Launcheroid4.csproj", "{D3CC589E-9011-4645-84F9-B976C9931FE1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -11,10 +11,10 @@ Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {042236E2-8C4A-4D85-9968-89AFC2D2271D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {042236E2-8C4A-4D85-9968-89AFC2D2271D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {042236E2-8C4A-4D85-9968-89AFC2D2271D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {042236E2-8C4A-4D85-9968-89AFC2D2271D}.Release|Any CPU.Build.0 = Release|Any CPU + {D3CC589E-9011-4645-84F9-B976C9931FE1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D3CC589E-9011-4645-84F9-B976C9931FE1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D3CC589E-9011-4645-84F9-B976C9931FE1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D3CC589E-9011-4645-84F9-B976C9931FE1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Launcheroid/App.config b/Launcheroid/App.config deleted file mode 100644 index 4bfa005..0000000 --- a/Launcheroid/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Launcheroid/AppIconLN.ico b/Launcheroid/AppIconLN.ico deleted file mode 100644 index 3b09534..0000000 --- a/Launcheroid/AppIconLN.ico +++ /dev/null Binary files differ diff --git a/Launcheroid/FImageLoad.Designer.cs b/Launcheroid/FImageLoad.Designer.cs deleted file mode 100644 index 220b4a6..0000000 --- a/Launcheroid/FImageLoad.Designer.cs +++ /dev/null @@ -1,46 +0,0 @@ -namespace Launcheroid -{ - partial class FImageLoad - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // FImageLoad - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(454, 439); - this.Name = "FImageLoad"; - this.Text = "FImageLoad"; - this.ResumeLayout(false); - - } - - #endregion - } -} \ No newline at end of file diff --git a/Launcheroid/FImageLoad.cs b/Launcheroid/FImageLoad.cs deleted file mode 100644 index f34d62b..0000000 --- a/Launcheroid/FImageLoad.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Drawing.Imaging; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Launcheroid -{ - public partial class FImageLoad : Form - { - private FImageLoad() - { - InitializeComponent(); - } - - public static bool IsImage(string path) - { - try - { - using (Image i = Image.FromFile(path)) - return true; - } - catch { }; - return false; - } - - public static Image Open(string path) - { - try - { - return Image.FromFile(path); - } - catch - { - return null; - } - } - - public static Image Open() - { - string allim = ""; - string types = ""; - ImageCodecInfo[] decs = ImageCodecInfo.GetImageDecoders(); - foreach (ImageCodecInfo ici in decs) - { - types += "|" + ici.FormatDescription + " (" + ici.CodecName + ")" + "|" + ici.FilenameExtension; - allim += ";" + ici.FilenameExtension; - } - types = "All images|" + allim.Substring(1) + types + "|All files|*.*"; - using (OpenFileDialog ofd = new OpenFileDialog()) - { - ofd.Filter = types; - if (ofd.ShowDialog() == DialogResult.OK) - return Open(ofd.FileName); - } - return null; - } - } -} diff --git a/Launcheroid/FImageLoad.resx b/Launcheroid/FImageLoad.resx deleted file mode 100644 index 1af7de1..0000000 --- a/Launcheroid/FImageLoad.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Launcheroid/FItem.Designer.cs b/Launcheroid/FItem.Designer.cs deleted file mode 100644 index 744e009..0000000 --- a/Launcheroid/FItem.Designer.cs +++ /dev/null @@ -1,243 +0,0 @@ -namespace Launcheroid -{ - partial class FItem - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.lbName = new System.Windows.Forms.Label(); - this.tbName = new System.Windows.Forms.TextBox(); - this.tbPath = new System.Windows.Forms.TextBox(); - this.lbPath = new System.Windows.Forms.Label(); - this.tbDirectory = new System.Windows.Forms.TextBox(); - this.lbDir = new System.Windows.Forms.Label(); - this.tbArguments = new System.Windows.Forms.TextBox(); - this.lbArgs = new System.Windows.Forms.Label(); - this.btOk = new System.Windows.Forms.Button(); - this.btPathGet = new System.Windows.Forms.Button(); - this.btDirectoryGet = new System.Windows.Forms.Button(); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pbIcon = new System.Windows.Forms.PictureBox(); - this.contextMenuStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pbIcon)).BeginInit(); - this.SuspendLayout(); - // - // lbName - // - this.lbName.AutoSize = true; - this.lbName.Location = new System.Drawing.Point(146, 15); - this.lbName.Name = "lbName"; - this.lbName.Size = new System.Drawing.Size(38, 13); - this.lbName.TabIndex = 1; - this.lbName.Text = "Name:"; - // - // tbName - // - this.tbName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbName.Location = new System.Drawing.Point(204, 12); - this.tbName.Name = "tbName"; - this.tbName.Size = new System.Drawing.Size(268, 20); - this.tbName.TabIndex = 2; - this.tbName.TextChanged += new System.EventHandler(this.TbName_TextChanged); - // - // tbPath - // - this.tbPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbPath.Location = new System.Drawing.Point(204, 38); - this.tbPath.Name = "tbPath"; - this.tbPath.Size = new System.Drawing.Size(238, 20); - this.tbPath.TabIndex = 4; - // - // lbPath - // - this.lbPath.AutoSize = true; - this.lbPath.Location = new System.Drawing.Point(146, 41); - this.lbPath.Name = "lbPath"; - this.lbPath.Size = new System.Drawing.Size(32, 13); - this.lbPath.TabIndex = 3; - this.lbPath.Text = "Path:"; - // - // tbDirectory - // - this.tbDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbDirectory.Location = new System.Drawing.Point(204, 64); - this.tbDirectory.Name = "tbDirectory"; - this.tbDirectory.Size = new System.Drawing.Size(238, 20); - this.tbDirectory.TabIndex = 6; - // - // lbDir - // - this.lbDir.AutoSize = true; - this.lbDir.Location = new System.Drawing.Point(146, 67); - this.lbDir.Name = "lbDir"; - this.lbDir.Size = new System.Drawing.Size(52, 13); - this.lbDir.TabIndex = 5; - this.lbDir.Text = "Directory:"; - // - // tbArguments - // - this.tbArguments.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbArguments.Location = new System.Drawing.Point(211, 90); - this.tbArguments.Name = "tbArguments"; - this.tbArguments.Size = new System.Drawing.Size(261, 20); - this.tbArguments.TabIndex = 8; - // - // lbArgs - // - this.lbArgs.AutoSize = true; - this.lbArgs.Location = new System.Drawing.Point(146, 93); - this.lbArgs.Name = "lbArgs"; - this.lbArgs.Size = new System.Drawing.Size(60, 13); - this.lbArgs.TabIndex = 7; - this.lbArgs.Text = "Arguments:"; - // - // btOk - // - this.btOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btOk.Location = new System.Drawing.Point(397, 117); - this.btOk.Name = "btOk"; - this.btOk.Size = new System.Drawing.Size(75, 23); - this.btOk.TabIndex = 9; - this.btOk.Text = "Ok"; - this.btOk.UseVisualStyleBackColor = true; - this.btOk.Click += new System.EventHandler(this.BtOk_Click); - // - // btPathGet - // - this.btPathGet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btPathGet.Location = new System.Drawing.Point(448, 38); - this.btPathGet.Name = "btPathGet"; - this.btPathGet.Size = new System.Drawing.Size(24, 20); - this.btPathGet.TabIndex = 10; - this.btPathGet.Text = "..."; - this.btPathGet.UseVisualStyleBackColor = true; - this.btPathGet.Click += new System.EventHandler(this.BtPathGet_Click); - // - // btDirectoryGet - // - this.btDirectoryGet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btDirectoryGet.Location = new System.Drawing.Point(448, 64); - this.btDirectoryGet.Name = "btDirectoryGet"; - this.btDirectoryGet.Size = new System.Drawing.Size(24, 20); - this.btDirectoryGet.TabIndex = 11; - this.btDirectoryGet.Text = "..."; - this.btDirectoryGet.UseVisualStyleBackColor = true; - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.openToolStripMenuItem, - this.deleteToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(108, 48); - this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.ContextMenuStrip1_Opening); - // - // openToolStripMenuItem - // - this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(107, 22); - this.openToolStripMenuItem.Text = "Open"; - this.openToolStripMenuItem.Click += new System.EventHandler(this.OpenToolStripMenuItem_Click); - // - // deleteToolStripMenuItem - // - this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; - this.deleteToolStripMenuItem.Size = new System.Drawing.Size(107, 22); - this.deleteToolStripMenuItem.Text = "Delete"; - this.deleteToolStripMenuItem.Click += new System.EventHandler(this.DeleteToolStripMenuItem_Click); - // - // pbIcon - // - this.pbIcon.BackgroundImage = global::Launcheroid.Properties.Resources.imgbg; - this.pbIcon.ContextMenuStrip = this.contextMenuStrip1; - this.pbIcon.Location = new System.Drawing.Point(12, 12); - this.pbIcon.Name = "pbIcon"; - this.pbIcon.Size = new System.Drawing.Size(128, 128); - this.pbIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.pbIcon.TabIndex = 0; - this.pbIcon.TabStop = false; - // - // FItem - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(484, 152); - this.Controls.Add(this.btDirectoryGet); - this.Controls.Add(this.btPathGet); - this.Controls.Add(this.btOk); - this.Controls.Add(this.tbArguments); - this.Controls.Add(this.lbArgs); - this.Controls.Add(this.tbDirectory); - this.Controls.Add(this.lbDir); - this.Controls.Add(this.tbPath); - this.Controls.Add(this.lbPath); - this.Controls.Add(this.tbName); - this.Controls.Add(this.lbName); - this.Controls.Add(this.pbIcon); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; - this.MaximumSize = new System.Drawing.Size(900, 191); - this.MinimumSize = new System.Drawing.Size(500, 191); - this.Name = "FItem"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "FItem"; - this.DragDrop += new System.Windows.Forms.DragEventHandler(this.FItem_DragDrop); - this.DragEnter += new System.Windows.Forms.DragEventHandler(this.FItem_DragEnter); - this.contextMenuStrip1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pbIcon)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox pbIcon; - private System.Windows.Forms.Label lbName; - private System.Windows.Forms.TextBox tbName; - private System.Windows.Forms.TextBox tbPath; - private System.Windows.Forms.Label lbPath; - private System.Windows.Forms.TextBox tbDirectory; - private System.Windows.Forms.Label lbDir; - private System.Windows.Forms.TextBox tbArguments; - private System.Windows.Forms.Label lbArgs; - private System.Windows.Forms.Button btOk; - private System.Windows.Forms.Button btPathGet; - private System.Windows.Forms.Button btDirectoryGet; - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem; - } -} \ No newline at end of file diff --git a/Launcheroid/FItem.cs b/Launcheroid/FItem.cs deleted file mode 100644 index 74a5393..0000000 --- a/Launcheroid/FItem.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Launcheroid -{ - public partial class FItem : Form - { - private FItem() - { - InitializeComponent(); - } - - private static bool Open(LRD3.Item item, string import) - { - bool saved; - using (FItem f = new FItem()) - { - f.LoadItem(item); - f.LinkToPath(import); - saved = f.ShowDialog() == DialogResult.OK; - if (saved) - f.SaveItem(item); - } - return saved; - } - - public static bool Execute(LRD3.Item item) - { - return Open(item, null); - } - - public static LRD3.Item Import(string path) - { - LRD3.Item i = new LRD3.Item(); - if (Open(i, path)) - return i; - return null; - } - - private void LoadItem(LRD3.Item item) - { - tbName.Text = Text = item.Name; - tbPath.Text = item.Path; - tbDirectory.Text = item.InitialFolder; - tbArguments.Text = item.Arguments; - pbIcon.Image = item.Image; - } - - private void SaveItem(LRD3.Item item) - { - item.Name = tbName.Text; - item.Path = tbPath.Text; - item.InitialFolder = tbDirectory.Text; - item.Arguments = tbArguments.Text; - item.Image = pbIcon.Image; - } - - private void LinkToPath(string path) - { - // TODO if it is a link (.lnk) open link and recover information - tbName.Text = Text = Path.GetFileNameWithoutExtension(path); - tbPath.Text = path; - tbDirectory.Text = Path.GetDirectoryName(path); - try - { - pbIcon.Image = Icon.ExtractAssociatedIcon(path).ToBitmap(); - } - catch - { - pbIcon.Image = null; - } - } - - private void BtOk_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.OK; - } - - private void TbName_TextChanged(object sender, EventArgs e) - { - Text = tbName.Text; - } - - private void OpenToolStripMenuItem_Click(object sender, EventArgs e) - { - Image i = FImageLoad.Open(); - if (i != null) - pbIcon.Image = i; - } - - private void DeleteToolStripMenuItem_Click(object sender, EventArgs e) - { - pbIcon.Image = null; - } - - private void FItem_DragEnter(object sender, DragEventArgs e) - { - if (!e.Data.GetDataPresent(DataFormats.FileDrop)) - return; - e.Effect = DragDropEffects.Copy; - } - - private void FItem_DragDrop(object sender, DragEventArgs e) - { - string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); - if (files.Length != 1) - return; - Point cp = PointToClient(new Point(e.X, e.Y)); - Control dropTarget = GetChildAtPoint(cp); - if (dropTarget == pbIcon) - pbIcon.Image = FImageLoad.Open(files[0]); - else - LinkToPath(files[0]); - } - - private void BtPathGet_Click(object sender, EventArgs e) - { - using (OpenFileDialog ofd = new OpenFileDialog()) - { - ofd.Filter = "Executables|*.exe;*.com;*.lnk|All files|*.*"; - if (ofd.ShowDialog() == DialogResult.OK) - LinkToPath(ofd.FileName); - } - } - - private void ContextMenuStrip1_Opening(object sender, CancelEventArgs e) - { - deleteToolStripMenuItem.Enabled = pbIcon.Image != null; - } - } -} diff --git a/Launcheroid/FItem.resx b/Launcheroid/FItem.resx deleted file mode 100644 index ad53752..0000000 --- a/Launcheroid/FItem.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/Launcheroid/Form1.Designer.cs b/Launcheroid/Form1.Designer.cs deleted file mode 100644 index ebb6b49..0000000 --- a/Launcheroid/Form1.Designer.cs +++ /dev/null @@ -1,147 +0,0 @@ -namespace Launcheroid -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); - this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); - this.executeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.executeWithOptionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); - this.addItemToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.deleteItemToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); - this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contextMenuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // contextMenuStrip1 - // - this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.executeToolStripMenuItem, - this.executeWithOptionsToolStripMenuItem, - this.toolStripMenuItem1, - this.propertiesToolStripMenuItem, - this.toolStripMenuItem2, - this.addItemToolStripMenuItem, - this.deleteItemToolStripMenuItem, - this.toolStripMenuItem3, - this.settingsToolStripMenuItem}); - this.contextMenuStrip1.Name = "contextMenuStrip1"; - this.contextMenuStrip1.Size = new System.Drawing.Size(193, 154); - // - // executeToolStripMenuItem - // - this.executeToolStripMenuItem.Name = "executeToolStripMenuItem"; - this.executeToolStripMenuItem.Size = new System.Drawing.Size(192, 22); - this.executeToolStripMenuItem.Text = "Execute"; - // - // executeWithOptionsToolStripMenuItem - // - this.executeWithOptionsToolStripMenuItem.Name = "executeWithOptionsToolStripMenuItem"; - this.executeWithOptionsToolStripMenuItem.Size = new System.Drawing.Size(192, 22); - this.executeWithOptionsToolStripMenuItem.Text = "Execute with options..."; - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(189, 6); - // - // propertiesToolStripMenuItem - // - this.propertiesToolStripMenuItem.Name = "propertiesToolStripMenuItem"; - this.propertiesToolStripMenuItem.Size = new System.Drawing.Size(192, 22); - this.propertiesToolStripMenuItem.Text = "Properties"; - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(189, 6); - // - // addItemToolStripMenuItem - // - this.addItemToolStripMenuItem.Name = "addItemToolStripMenuItem"; - this.addItemToolStripMenuItem.Size = new System.Drawing.Size(192, 22); - this.addItemToolStripMenuItem.Text = "Add item"; - this.addItemToolStripMenuItem.Click += new System.EventHandler(this.AddItemToolStripMenuItem_Click); - // - // deleteItemToolStripMenuItem - // - this.deleteItemToolStripMenuItem.Name = "deleteItemToolStripMenuItem"; - this.deleteItemToolStripMenuItem.Size = new System.Drawing.Size(192, 22); - this.deleteItemToolStripMenuItem.Text = "Delete item"; - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(189, 6); - // - // settingsToolStripMenuItem - // - this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(192, 22); - this.settingsToolStripMenuItem.Text = "Settings"; - // - // Form1 - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(800, 450); - this.ContextMenuStrip = this.contextMenuStrip1; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "Form1"; - this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; - this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); - this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); - this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); - this.contextMenuStrip1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; - private System.Windows.Forms.ToolStripMenuItem executeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem executeWithOptionsToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem propertiesToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem addItemToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem deleteItemToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; - private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; - } -} - diff --git a/Launcheroid/Form1.cs b/Launcheroid/Form1.cs deleted file mode 100644 index 7b73181..0000000 --- a/Launcheroid/Form1.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using XWolf.Aero; - -namespace Launcheroid -{ - public partial class Form1 : XGlassForm - { - private const int WM_NCHITTEST = 0x0084; - private static IntPtr HTCAPTION = (IntPtr)2; - - private LRD3 lib = new LRD3(); - private string libPath; - - public Form1() - { - InitializeComponent(); - FullGlass = true; - GoToCursor(); - libPath = Program.ArgumentFile; - if (string.IsNullOrEmpty(libPath)) - libPath = Program.DefaultFile; - lib.Load(libPath); - } - - protected override void WndProc(ref Message message) - { - base.WndProc(ref message); - if (message.Msg == WM_NCHITTEST) - { - int r = message.Result.ToInt32(); - if (r >= 10 && r <= 18) - message.Result = HTCAPTION; - } - } - - private void GoToCursor() - { - Point c = Cursor.Position; - c.X -= Width / 2; - if (c.X < 0) - c.X = 0; - c.Y -= Height / 2; - if (c.Y < 0) - c.Y = 0; - Location = c; - } - - private void UpdateLibrary() - { - - } - - private void Add(LRD3.Item item) - { - lib.Items.Add(item); - lib.Save(libPath); - UpdateLibrary(); - } - - private void Form1_Paint(object sender, PaintEventArgs e) - { - - } - - private void AddItemToolStripMenuItem_Click(object sender, EventArgs e) - { - LRD3.Item item = new LRD3.Item(); - if (FItem.Execute(item)) - Add(item); - } - - private void Form1_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; - } - - private void Form1_DragDrop(object sender, DragEventArgs e) - { - string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); - if (files.Length != 1) - return; - LRD3.Item item = FItem.Import(files[0]); - if (item != null) - Add(item); - } - } -} diff --git a/Launcheroid/Form1.resx b/Launcheroid/Form1.resx deleted file mode 100644 index 783b959..0000000 --- a/Launcheroid/Form1.resx +++ /dev/null @@ -1,380 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - - - AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA - AAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8BAAAAAAAAAAAAAAAA////AWtZ - OgUAAAAIGRkACpljAP+ZYwD/AAAAAAAAAADfvoIC////Av///wL///8B////AQAAAAAAAAAMNzc3Gi0t - LScAAAAxmWMA/5ljAP/2yHX/mWMA/5ljAP+ZYwD/AAAAA////wL///8C////Af///wEAAAALAAAAGC4u - LiUnJycxNSkmVvbIdf+ZYwD/VEZEcwAAADP2yHX/mWMA/wAAAA7V1dUD////Av///wH///8BAAAABQAA - AA83NzcaSDQwP4pratq9mpb/x6im/5ljAP+ZYwD/AAAAGwAAABJePgUK////Av///wL///8B////AQAA - AAAAAAAAdVRHJ4pvZtW3kor/mWMA/5ljAP/+66f/mWMA/5ljAP+ZYwD/AAAAAP///wH///8C////Af// - /wEAAAAAeFRNJIttZNKwioD/s4yB//7rp/+ZYwD/yaym/7eSiv/+66f/mWMA/wAAAAD///8C////Av// - /wH///8BeFRNJItmW9GpgnP/q4R1/6yFd/+uhnn/y7Kq/8qvp/+yi4D/s4yC/4tsYed/XFhC////Av// - /wL///8BfmlcIaSKfNvJsab/0Lyy/9C7sf/Mtav/mWMA/5ljAP+ZYwD/mWMA/5ljAP+ZYwD/h2Re5oJq - X0P///8C////AXtZTHLRvrf9zbes/824rf/Oua7/z7qv/5ljAP/rvpL/7MGV/+zBlf/rvpL/mWMA/6qC - cv+NbGKRioCAC////wEAAAAAoYZ9ltC+tf3KtKf/y7Wo/8y2qv+ZYwD/7MGV/+yhUv/soVL/67+S/5lj - AP+JZlunAAAAAP///wH///8B////AQAAAACfhnyWmWMA/5ljAP+ZYwD/mWMA//DNoP/xt2f/8LJf/+7H - lv+ZYwD/mWMA/5ljAP+ZYwD/////Af7+/gEAAAAAAAAAAJ+CepeZYwD/27qJ//bXqv/23K3/+M17//fO - f//23bP/9dev/ty9jv+ZYwD/69e5A////wH///8BAAAAAAAAAAD+/v4BoIZ3lpljAP/juGf//NmE//ze - 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 - v//ZxsH/mWMA/5ljAP+ZYwD/mWMA//DNoP/xt2f/8LJf/+7Hlv+ZYwD/mWMA/5ljAP+ZYwD/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBRSYSFY1nzqoJz/6uEdf+shHb/rYV3/66Gef+uh3r/r4h7/7CJ - fP/Xw77/2MS+/9jEv/+5lYr/mWMA/9u6if/216r/9tyt//jNe//3zn//9t2z//XXr/7cvY7/mWMA/+C/ - hAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuUUeEh2FT87CLff/Ksab/qoJz/7+hlf+/oJT/qoJz/6+I - e/+shHb/rYV3/7WShv/IraT/18K8/7+hmP+win3/mWMA/+O4Z//82YT//N6M//3fkP/72o7/5b10/5lj - AP/gv4QC/v7+AQAAAAAAAAAAAAAAAAAAAAAAAAAAblFFhKaOgPa+oZT/yK+k/9G8s//RvbT/0r20/863 - rv+/opb/0buz/66HeP+pgXL/qoJz/7aUh//Vwbn/zbSs/62FeP+uh3n/mWMA/+7Pg//+7Kf//uun/+/Q - iP+ZYwD/5MaMAQAAAAD///8BAAAAAAAAAAAAAAAAVVUqBnBRR4SYe2r0yrOo/8+6r//PurD/z7qx/9C7 - sf/Qu7L/0Lyy/9G8s//RvLP/upuN/7aUh/+winz/w6ab/9O/t//Tv7f/t5eJ/6uCdP+rhHX/mWMA//Hb - qP/x26b/mWMA/4RnXf9rTkbRpIeHBf///wEAAAAAAAAAAAAAAABmPz8UrpqU8dnIwP/Nt6z/zbit/824 - rf/Oua7/zrmv/8+5r//PurD/z7qw/9C7sf/Qu7L/0Lux/62Id//Ls6n/xaqf/9K9tf/OuK7/q4Z2/6iA - b/+pgHH/mWMA/5ljAP+rg3T/p4By/4dpX/9vUk2a////AQAAAAAAAAAAAAAAAGYzMwVsTUV9zr+6+dnI - v//Mtqr/zLar/8y3q//Nt6z/zbis/824rf/OuK7/zrmu/865r//Puq//tZSF/6yHdv+ieWX/wKSX/9G8 - s//IsKX/qYFw/6Z9a/+mfmz/p39u/6h/b/+pg3P/cVRNygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABsTUN9zr+4+djHvf/KtKf/y7Wo/8u1qf/Ltqr/zLaq/8y3q//Mt6z/zbes/824rf/OuK3/xKue/6B2 - Yf+zkYD/z7qw/8+6sf/Ksqf/rol4/6N6Z/+ke2j/qYNy/3NZUMsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABsTUN9zL+4+dfHvf/Js6X/ybOm/8q0p//KtKf/y7Wo/8u1qP/Ltqr/zLaq/8y2 - q/+xj33/nHFa/8Knmf/Cp5n/v6OV/865rv/Oua//wKSX/7GQf/94WlLMAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsTkF8zL22+dfGvP/IsqP/yLKk/8mypf/Js6X/ybOm/8q0 - pv/KtKf/yrWo/8Wtnv+0k4L/m3Fa/5pwWf+bcFn/uJqJ/824rP/Nua3/gGhe0AAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsTEF8zL22+dbFu//HsKH/x7Gi/8ex - ov/IsaP/yLKk/8mypP/Js6X/xq+h/6V/af+WalH/l2tS/5hsU/+6nYz/zrqu/4RoXtAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqTD98zL21+dbF - uv/Fr5//xq+g/8awoP/HsKH/x7Ci/8exov/Dqpr/kmZK/5NnTP+UaE3/lWhO/6uJdf93XlTNAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABqSj98yry0+dXEuP/ErZ3/xa6e/8Wunv/Fr5//xq+g/8avoP+5nIr/kGNG/5FkR/+tjXn/eF5UzQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABrSkB7yryz+dXEuP/DrJv/w6yc/8StnP/ErZ3/ro54/5BkRv+NYEL/sJF9/3pb - VM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABrSj57yryz+dTDt//Cqpn/wqua/8Ormv+mhGv/ilw8/7OW - gv96W1HOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqTD98yruy+dPDtv/BqZf/tJaB/66O - eP+1moX/eVtQzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpSjx7ybqw+dPC - tf+MYT//uJ6J/3hbUM4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABpSjx7ybmu+cu4qf91Wk/OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABnRzZ5ZkY3uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaSzwRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////4ABMfwAAAnwAAAJ8AAAAeAA - AAXwAAAB+AAACf4AAAn/gAAJ/wAAD/4AAAH8AAAB+AAAAfAAAAXAAAABwAAAAcAAAAfwAAAP+AAAH/wA - AD/+AAB//wAA//+AAf//wAP//+AH///wD///+B////w////+f////3///////ygAAAAwAAAAYAAAAAEA - IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA - AAYAAAAHAAAACAAAAAgAAAAJAAAACAAAAAgAAAAHAAAABgAAAAQAAAACAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAcAAAAKAAAADQAA - ABAAAAASAAAAFAAAABYAAAAYAAAAGQAAABk2NjYbTU1NG01NTRtQUFAZUVFQGD4+PhUAAAASAAAAD4he - NBrAewD/wHsA/8B7AP/AewD/sHpGDgAAAAAAAAAAAAAAAP38+wL///8B////Af///wH///8BAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAA - ABMAAAAXAAAAGgAAAB4AAAAhAAAAJAAAACYAAAAoAAAAKgAAACoqKiosKioqKysrKyoAAAAoAAAAJQAA - ACMAAAAgAAAAHQAAABnAewD/4KRL/+CkS//AewD/AAAABwAAAAMAAAAAAAAAAAAAAAD///8B////Af// - /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAA - ABEAAAAVAAAAGQAAAB4AAAAiAAAAJgAAACoAAAAuAAAAMQAAADUAAAA3AAAAOgAAADtWPjmiIyMjPCQk - JDoAAAA3AAAANMB7AP/AewD/wHsA/8B7AP/AewD/4KRL/+CkS//AewD/wHsA/8B7AP/AewD/wHsA/wAA - AAD///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAA - AAoAAAAOAAAAEwAAABcAAAAcAAAAIAAAACUAAAApAAAALgAAADIAAAA3AAAAOwAAAD8AAABEAAAASGJF - QfaMcXDxWUJBqh8fH0gAAABDAAAAPsB7AP/gpEv/4KRL/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/+Ck - S//gpEv/wHsA/wAAAAT///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAFAAAACQAAAA4AAAASAAAAFwAAABsAAAAfAAAAJAAAACgAAAAtAAAAMQAAADYAAAA6AAAAPgAA - AEIAAABGYEQ/9ZJ4ef+HcHH/fGNg9FlCQKoAAABFAAAAQcB7AP/fo0v/36NL/8B7AP8AAAAsAAAAJwAA - ACMAAAAewHsA/9+jS//fo0v/wHsA/wAAAAiJiYkE////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAGAAAACwAAAA8AAAATAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAA - ADQAAAA4AAAAOwAAAD5fRD/1kXZ2/5d+fv+3mJn/loaG/4p3c/ZZQD2mIiIiPsB7AP/AewD/wHsA/8B7 - AP8AAAArAAAAJwAAACMAAAAfwHsA/8B7AP/AewD/wHsA/wAAAApycnIGvLy8Av///wH///8BAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAACgAAAA8AAAATAAAAFwAAABsAAAAeAAAAIgAA - ACYAAAApAAAALQAAADAAAAAzAAAANWJHP/SOdHT/m399/8ShoP/Go6P/uZub/5aGhv+KcnH1WkI/oQAA - ADQAAAAyAAAALwAAACzAewD/wHsA/8B7AP/AewD/AAAAGQAAABYAAAARAAAADQAAAAlycnIGvLy8Av// - /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAwAAAAQAAAAFAAA - ABcAAAAbAAAAHgAAACEAAAAkAAAAJwAAACoAAAAsYkc/9I5ycP+dgH//w5+d/8Ognv/EoZ//xKGf/7yf - n/+ajY3/iHFt9F5EP50AAAArAAAAKQAAACbAegD/+dWJ//zdj//AegD/AAAAFgAAABMAAAAPAAAACwAA - AAcAAAAD////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABQAA - AAkAAAAMAAAADwAAABMAAAAWAAAAGQAAABsAAAAeAAAAIAAAACJgR0Lzi3Bt/6GCgP/AnJj/wZ2Z/8Gd - mv/Cn5z/wp+d/9W8uv/Pvr3/mY2M/8B7AP/AewD/wHsA/8B7AP/AegD/+teK//zfkP/AegD/wHsA/8B7 - AP/AewD/wHsA/wAAAAT///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAAHAAAACgAAAA0AAAAQAAAAEgAAABUAAAAXAAAAGWBHQvOKbmr/o4N//76Z - lP++mpX/vpqW/7+blv/Fo6H/xaSh/9zHxv/gzcz/z7+9/8B6AP/51Yn//N2P/8B6AP+/egD/v3oA/796 - AP+/egD/wHoA//nVif/83Y//wHoA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAYAAAAJAAAACwAAAA0AAAAPY0VB8olt - aP+mhH//u5aQ/7uWkP+8l5H/vJiS/72Yk//ey8n/3svJ/97Myf/fzMr/2cPB/8B6AP/614r//N+Q/8B6 - AP8AAAAPAAAADQAAAAsAAAAIwHoA//rXiv/835D/wHoA/////wH///8B////Af///wH///8BAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAA - AAZjREHyiGxm/6eFfv+4k4v/uZSM/7mUjf+6lY7/upWP/7uWj//bx8T/3crH/93KyP/ey8j/0bm0/796 - AP+/egD/v3oA/796AP9qTUeLAAAABQAAAAMAAAABv3oA/796AP+/egD/v3oA/////wH///8B////Af// - /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAGNEQfKJa2T/qIV9/7aQh/+2kIj/t5GJ/7eSif+4kor/uJOL/7mTjP+6lo7/zLCr/9zJ - xv/dysb/zLCr/7yXkf+8l5H/r42H/4FoZP93XFbxbU1JhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// - /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAY0RB8olqYv+phHv/s42C/7SNg/+0joT/tY6F/7WPhv+2kIf/tpCH/7eR - iP+3kor/x6mj/9vIxP/cyMT/yKul/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/8B7 - AP/AewD/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjREHyiWph/6mEeP+xin7/sYp//7KLgP+yjIH/s4yB/7ON - gv+0jYP/tI6E/7WOhf+1kIb/xaag/9rHwv/ax8P/x6qk/8B7AP/two3/8riB//O6hP/zuoT/87qE//O6 - hP/zuoT/87qE//K4gf/two3/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBEQPKKamD/qYJ2/66Hev+vh3v/r4h7/7CI - fP+wiX3/sYl+/7GKf/+yi3//souA/7KMgf/AoJj/z7ex/9nGwf/ZxsH/ya2m/8B7AP/nsGv/651N/+uf - UP/rn1D/659Q/+ufUP/rn1D/659Q/+udTf/nsGv/wHsA/////wH///8B////Af///wH///8BAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYERA8oxqX/+ogXP/rIR1/6yE - dv+thXf/rYV4/62Gef+uh3n/rod6/6+Ie/+viHz/sIl9/7CJfv/YxL7/2MS+/9jEv//Yxb//zbOr/8B7 - AP/nsGv/655O/+ygUv/soFL/7KBS/+ygUv/soFL/7KBS/+ueTv/nsGv/wHsA/////wH///8B////Af// - /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgREDyjWpd/6h/ - b/+pgXH/qYFy/6qCcv+qgnP/q4N0/6uDdf+shHb/rIV3/62Fd/+thnj/roZ5/66Hev/Pt6//z7ev/9fD - vP/Xw73/1L64/8B7AP/nsWz/651O/+ygUv/soFL/7KBS/+ygUv/soFL/7KBS/+ueTv/nsGv/wHsA//// - /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNE - QvKPalz/pX1s/7aVhv/SvrX/tJKE/6uDdP+4l4r/07+3/7aUhv+qgXL/qoJz/7SQgv+rg3X/rIR1/6yE - dv+thnj/rYd5/861rv/Wwrz/18K8/8B7AP/osW3/7KBR/+ugUv/soFL/7KBS/+ygUv/roFH/66BR/+ud - Tv/nsGv/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAY0RC8q+WjP+3l4j/t5aH/8ivpP/RvbT/0b20/9K9tP/SvbX/0r61/8ivpf+5mIv/vJ6R/9O/ - t/+zj4H/qoFy/6qCc/+rgnT/q4N0/8Chlf/Vwbr/1cG6/8B7AP/nsm//7aRY/+6mWf/tpFX/7aRU/+2j - VP/to1P/7KFT/+ufT//nsGv/wHsA/2tLR4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABgQ0DymHJi/8+6sP/PurH/0Lux/9C7sf/Qu7L/0Lyy/9G8s//RvLP/0byz/9G9 - tP/SvbT/0r21/9G8s/+pgnL/qH9u/6h/b//AewD/wHsA/8B7AP/AewD/wHsA/8B7AP/utnT/7q1f//Cx - ZP/wsmT/769c/++sWP/uqlb/7qhW/+2lUv/ssGv/wHsA/8B7AP/AewD/wHsA/8B7AP/AewD/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVFQvKif2//yLGl/865rv/Oua//z7qv/8+6sP/PurD/z7qw/9C7 - sf/Qu7H/0Luy/9C8sv/RvLL/0byz/9G8s//Ls6n/sY1+/8aroP+1k4X/wHsA/9ebSv/1xZX/8LFr//G1 - bv/wtWj/8rdo//S6a//0vW7/9L5v//S8bv/zuWb/8bJd/++tV//uq1n/761h/+6pYP/1v4z/2J1I+sB7 - AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZkhC1NPBuf/Xxr3/zbes/824rf/NuK3/zrit/865 - rv/Oua7/zrmv/865r//Puq//z7qw/8+6sP/Pu7H/0Lux/9C7sv/Qu7L/0Lyy/9G8s/+0k4T/vqGU/8B7 - AP/boEj/8r17//K2Z//0vWv/9cFw//bFc//3x3X/98l4//fJev/3yXv/9sd9//XDd//zu3D/8bVn//K5 - dv/boUv/wHsA/2VOQ0T///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaU8+TZN8cfLs5OD/18W8/8y2 - q//Mt6v/zbes/823rP/NuKz/zbit/824rf/OuK7/zrmu/865r//Oua//z7qv/8+6sP/PurD/z7qx/865 - rv+pg3H/p4Bu/7STg//AewD/5LZu//jJgv/2xXP/98p4//nPe//50X7/+tOB//nTgv/50oT/+dCD//fO - hP/3yoT/98yQ/+nEiv/AewD/ZEZA8XBXTxr///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVL - PmKTe3Dy7OTg/9bFu//Ltqn/y7aq/8y2qv/Mtqv/zLer/8y3rP/Nt6z/zbis/824rf/NuK3/zriu/865 - rv/Oua7/zrmv/8+5r//FrKH/rYl3/7KRgf+heGT/wHsA/+jCfP/504X/+tN///zXhP/82ob//duJ//3c - i//824z/+9mM//rWjP/51ZP/7MuT/8B7AP9lSUDx/Pn0Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABlSz5ikntw8uzk4P/WxLr/yrWo/8u1qP/Ltaj/y7Wp/8u2qv/Mtqr/zLaq/8y3 - q//Mt6v/zbes/823rP/NuK3/zbit/864rf/Oua7/zrmu/8u0qf+heGT/oHZh/8B7AP/vz47//dyL//3f - jf/94pH//eKU//7jlf/94pX//eCV//zdlf/x1Jv/wHsA/2VKQfEAAAAA////Af///wH///8BAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZUg+YpJ6cPLs5N//1sS6/8q0pv/KtKf/yrSn/8q0 - p//Ltaj/y7Wo/8u1qf/Ltqr/zLaq/8y2qv/Mtqv/zLer/8y3rP/Nt6z/zLer/6N8Z/+edF7/pX5r/8y2 - qv/AewD/+uSp///nmv//6J3//+qh///pof//6KD//+eh//vns//AewD/aEtA8e/evwH///8B////Af// - /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVIPmKSe3Dy7OTe/9XE - uf/Js6X/ybOl/8mzpv/KtKb/yrSm/8q0p//KtKf/yrWo/8u1qP/Ltan/y7Wp/8u2qv/Mtqr/zLar/6eC - bv+ccVv/o3tm/8iwpP/EqZz/wHsA//3stv/+77D///G2///wtf/+7q///e24/8B7AP9oSkDxAAAAAP// - /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABlSD5ikXtv8uvj3v/Vw7n/yLKj/8iypP/IsqT/ybOl/8mzpf/Js6b/ybOm/8q0pv/KtKf/yrSn/8q1 - p//Ltaj/y7Wo/76jlP+zlIL/m29Z/6B3Yf+cclr/nW5W/8B7AP//9tL///TN///0yv//9s//wHsA/3BO - P/Lu27oB////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAZUg+YpF6bvLr497/1cO4/8exov/HsaP/yLGj/8iyo//IsqT/yLKk/8my - pP/Js6X/ybOl/8mzpv/KtKb/yrSn/8q0p//Ks6b/mW1V/5luVv+ablf/mW5V/55tT//AewD///rk///5 - 4v/AewD/e1I79AAAAAD+/fwB////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVIPmKRem7y6+Pd/9TDt//GsKH/x7Ch/8ew - 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 - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABiRjlij3Zr8ung2v/SwLP/vaaV/2RFP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYkY5Yo1xafK8o5D/ZEU/8QAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJGOWJkRjvOAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABfPz8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD///////8AAP//gAH//wAA//gAAAODAAD/wAAAAcMAAP8AAAAAQwAA/AAAAAADAAD8AAAAAAMAAPgA - AAAAAwAA+AAAAAADAAD4AAAAAAMAAPwAAAAAAwAA/gAAAAADAAD/gAAAAAMAAP/wAAAAAwAA//wAAB+D - AAD/+AAAAAMAAP/wAAAAAwAA/+AAAAADAAD/wAAAAAMAAP+AAAAAAwAA/wAAAAADAAD+AAAAAD8AAPwA - AAAAAwAA+AAAAAAHAADwAAAAAAMAAPAAAAAAAwAA+AAAAAADAAD8AAAAACMAAP4AAAAAAwAA/wAAAACD - AAD/gAAAAAMAAP/AAAACAwAA/+AAAAQDAAD/8AAACAMAAP/4AAAf/wAA//wAAD//AAD//gAAf/8AAP// - AAD//wAA//+AAf//AAD//8AD//8AAP//4Af//wAA///wD///AAD///gf//8AAP///D///wAA///+f/// - AAD///9///8AAP///////wAA////////AAA= - - - \ No newline at end of file diff --git a/Launcheroid/GFX.cs b/Launcheroid/GFX.cs deleted file mode 100644 index 2c931c7..0000000 --- a/Launcheroid/GFX.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Launcheroid -{ - class GFX - { - } -} diff --git a/Launcheroid/Glass.cs b/Launcheroid/Glass.cs deleted file mode 100644 index bf287c3..0000000 --- a/Launcheroid/Glass.cs +++ /dev/null @@ -1,540 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.InteropServices; -using System.Windows.Forms; -using System.ComponentModel; -using System.Drawing; -using System.ComponentModel.Design.Serialization; -using System.Globalization; -using System.Collections; -using System.Drawing.Drawing2D; - -namespace XWolf.Aero -{ - #region XGlassForm - public class XGlassForm : Form - { - private bool composite; - private GlassMargins glassMargins = new GlassMargins(50, 0, 0, 0); - private Image glassImage = null; - private Point glassImageLocation = new Point(); - private bool glassDrag = true; - - public XGlassForm() - { - DoubleBuffered = true; - composite = Glass.Composite; - this.Shown += new EventHandler(XGlassForm_Shown); - this.Paint += new PaintEventHandler(XGlassForm_Paint); - this.Resize += new EventHandler(XGlassForm_Resize); - this.MouseDown += new MouseEventHandler(XGlassForm_MouseDown); - } - - void XGlassForm_Resize(object sender, EventArgs e) - { - Invalidate(); - } - - //protected override void WndProc(ref Message msg) - //{ - // int[] except={3,6,8,13,14,20,28,32,36,70,71,132,134,160,161,174,274,512,533,534,561,562,641,642,674,675}; - // //mensaje 20 - - // //switch (msg.Msg) - // //{ - // // case WM_DWMCOLORIZATIONCOLORCHANGED: - // // // The color format of currColor is 0xAARRGGBB. - // // uint currColor = (uint)msg.WParam.ToInt32(); - // // bool opacityblend = (msg.LParam.ToInt32() != 0); - // // ... - // // break; - // //} - // base.WndProc(ref msg); - // foreach (int msge in except) - // if (msg.Msg == msge) - // return; - // Console.WriteLine("MSG: " + msg.Msg); - - //} - - void XGlassForm_Shown(object sender, EventArgs e) - { - UpdateGlass(); - } - void XGlassForm_Paint(object sender, PaintEventArgs e) - { - Size client = ClientSize; - if (DesignMode) - { - Pen p = new Pen(Color.Gray); - Rectangle glassclient = new Rectangle(glassMargins.Left - 1, glassMargins.Top - 1, client.Width - (glassMargins.Left + glassMargins.Right) + 1, client.Height - (glassMargins.Top + glassMargins.Bottom) + 1); - e.Graphics.DrawRectangle(p, glassclient); - } - else - if (glassMargins.IsFull) - e.Graphics.Clear(Color.Transparent); - else - { - - Rectangle glassclient = new Rectangle(glassMargins.Left, glassMargins.Top, client.Width - (glassMargins.Left + glassMargins.Right), client.Height - (glassMargins.Top + glassMargins.Bottom)); - e.Graphics.Clear(composite ? Color.Transparent : SystemColors.ButtonShadow); - e.Graphics.FillRectangle(new SolidBrush(BackColor), glassclient); - } - if (glassImage != null) - { - Rectangle r = new Rectangle(glassImageLocation, glassImage.Size); - e.Graphics.DrawImage(glassImage, r); - } - //if (glassMargins.IsFull) - // e.Graphics.Clear(Color.Transparent); - //else - //{ - // Brush b = new SolidBrush(Color.Transparent); - // Size client=ClientSize; - // e.Graphics.FillRectangle(b, 0, 0, glassMargins.Left, client.Width); - //} - } - - void XGlassForm_MouseDown(object sender, MouseEventArgs e) - { - if (!glassDrag) - return; - Size c = ClientSize; - if (e.X > glassMargins.Left && e.X < c.Width - glassMargins.Right && - e.Y > glassMargins.Top && e.Y < c.Height - glassMargins.Bottom) - return; - // Releasing the mouse capture to allow the form to receive the order - Aero.ReleaseCapture(); - // Ordering the form - // Simulating left mouse button clicking on the title bar - Aero.SendMessage(this.Handle, // Form handle - Aero.WM_NCLBUTTONDOWN, // Simulating the click - Aero.HTCAPTION, // Attaching it to the title bar - 0); // No further options required - } - - - private void UpdateGlass() - { - if (composite) - { - Glass.GlassForm(this, glassMargins); - Invalidate(); - } - } - - protected void DrawText(Graphics g, string text, Font font, Brush brush, PointF p) - { - GraphicsPath gp = new GraphicsPath(); - gp.AddString(text, font.FontFamily, (int)font.Style, font.Size, p, StringFormat.GenericDefault); - g.FillPath(brush, gp); - gp.Dispose(); - } - - protected void DrawText(Graphics g, string text, FontFamily fontfam, int fontstyle, float fontsize, Brush brush, PointF p) - { - GraphicsPath gp = new GraphicsPath(); - gp.AddString(text, fontfam, fontstyle, fontsize, p, StringFormat.GenericDefault); - g.FillPath(brush, gp); - gp.Dispose(); - } - - [Description("Margenes del efecto cristal"), Category("Aero Glass"), RefreshProperties(RefreshProperties.All)] - public GlassMargins GlassMargins - { - get { return glassMargins; } - set { glassMargins = value; UpdateGlass(); } - } - - [Description("Cristal completo"), Category("Aero Glass"), RefreshProperties(RefreshProperties.All)] - public bool FullGlass - { - get { return glassMargins.IsFull; } - set { if (value) glassMargins = GlassMargins.GetFullGlassMargins(); UpdateGlass(); } - } - - [Description("Imagen en el cristal"), Category("Aero Glass")] - public Image GlassImage - { - get { return glassImage; } - set { glassImage = value; Invalidate(); } - } - - [Description("Posicion de Imagen en el cristal"), Category("Aero Glass")] - public Point GlassImageLocation - { - get { return glassImageLocation; } - set { glassImageLocation = value; Invalidate(); } - } - - [Description("Usar la extensión del glass como un tirador"), Category("Aero Glass")] - public bool GlassDrag - { - get { return glassDrag; } - set { glassDrag = value; } - } - } - #endregion - - public class Aero - { - internal static bool hasAero; - - #region API - private class DWNAPI - { - [DllImport("dwmapi.dll")] - public extern static int DwmExtendFrameIntoClientArea(IntPtr hwnd, ref GlassMargins margin); - [DllImport("dwmapi.dll")] - public extern static int DwmIsCompositionEnabled(ref int en); - } - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.I4)] - public static extern int SendMessage(IntPtr hWnd, [param: MarshalAs(UnmanagedType.U4)]uint Msg, [param: MarshalAs(UnmanagedType.U4)]uint wParam, [param: MarshalAs(UnmanagedType.I4)]int lParam); - - [DllImport("user32.dll")] - [return: MarshalAs(UnmanagedType.Bool)] - public static extern bool ReleaseCapture(); - - public const uint WM_NCLBUTTONDOWN = 0xA1; // 161 - public const uint HTCAPTION = 2; - #endregion - - - #region APIex - internal static void DwmExtendFrameIntoClientArea(IntPtr hwnd, GlassMargins margin) - { - try - { - DWNAPI.DwmExtendFrameIntoClientArea(hwnd, ref margin); - } - catch { }; - } - internal static bool DwmIsCompositionEnabled() - { - try - { - int result = 0; - DWNAPI.DwmIsCompositionEnabled(ref result); - return result > 0; - } - catch { return false; }; - } - #endregion - - static Aero() - { - hasAero = false; - try - { - DwmIsCompositionEnabled(); - hasAero = true; - } - catch { }; - } - - public static bool HasAero { get { return hasAero; } } - } - - #region GalssMarginsConverter - public class GalssMarginsConverter : TypeConverter - { - private static CultureInfo FixCulture(CultureInfo c) - { - if (c == null) - return CultureInfo.CurrentCulture; - return c; - } - private static char GetListSeparator(CultureInfo c) - { - c = FixCulture(c); - return c.TextInfo.ListSeparator[0]; - } - - #region ConvertFrom - - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) - { - return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType); - } - - public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) - { - string str = value as string; - if (str == null) - return base.ConvertFrom(context, culture, value); - str = str.Trim(); - if (str.Length == 0) - return null; - culture = FixCulture(culture); - char ch = culture.TextInfo.ListSeparator[0]; - string[] strArray = str.Split(new char[] { ch }); - int[] numArray = new int[strArray.Length]; - if (numArray.Length != 4) - throw new ArgumentException("Solo se admiten 4 valores"); - TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); - for (int i = 0; i < numArray.Length; i++) - numArray[i] = (int)converter.ConvertFromString(context, culture, strArray[i]); - return new GlassMargins(numArray[0], numArray[1], numArray[2], numArray[3]); - } - - #endregion - - #region ConvertTo - - public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - { - return ((destinationType == typeof(InstanceDescriptor)) || base.CanConvertTo(context, destinationType)); - } - - public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) - { - if (destinationType == null) - throw new ArgumentNullException("destinationType"); - if (value is GlassMargins) - { - if (destinationType == typeof(string)) - { - GlassMargins gmargins = (GlassMargins)value; - if (culture == null) - culture = CultureInfo.CurrentCulture; - string separator = culture.TextInfo.ListSeparator + " "; - TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); - string[] strArray ={ - converter.ConvertToString(context, culture, gmargins.Left), - converter.ConvertToString(context, culture, gmargins.Top), - converter.ConvertToString(context, culture, gmargins.Right), - converter.ConvertToString(context, culture, gmargins.Bottom) - }; - return string.Join(separator, strArray); - } - //if (destinationType == typeof(InstanceDescriptor)) - //{ - // GlassMargins gmargins = (GlassMargins)value; - - // return new InstanceDescriptor(typeof(GlassMargins).GetConstructor(new Type[] { typeof(int), typeof(int), typeof(int), typeof(int) }), new object[] { gmargins.Left, gmargins.Top, gmargins.Right, gmargins.Bottom }); - //} - } - return base.ConvertTo(context, culture, value, destinationType); - } - - #endregion - - #region Instancia - public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues) - { - if (context == null) - { - throw new ArgumentNullException("context"); - } - if (propertyValues == null) - { - throw new ArgumentNullException("propertyValues"); - } - GlassMargins gmargins = (GlassMargins)context.PropertyDescriptor.GetValue(context.Instance); - return new GlassMargins((int)propertyValues["Left"], (int)propertyValues["Top"], (int)propertyValues["Right"], (int)propertyValues["Bottom"]); - } - - public override bool GetCreateInstanceSupported(ITypeDescriptorContext context) - { - return true; - } - #endregion - - #region Properties - public override bool GetPropertiesSupported(ITypeDescriptorContext context) - { - return true; - } - - public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) - { - return TypeDescriptor.GetProperties(value, attributes).Sort(new string[] { "Left", "Top", "Right", "Bottom" }); - } - #endregion - } - #endregion - - //#region GalssMarginsConverter - //public class GalssMarginsConverter : TypeConverter - //{ - // #region ConvertFrom - - // public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) - // { - // return ((sourceType == typeof(string)) || base.CanConvertFrom(context, sourceType)); - // } - - // public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) - // { - // string str = value as string; - // if (str == null) - // return base.ConvertFrom(context, culture, value); - // str = str.Trim(); - // if (str.Length == 0) - // return null; - // if (culture == null) - // culture = CultureInfo.CurrentCulture; - // char ch = culture.TextInfo.ListSeparator[0]; - // string[] strArray = str.Split(new char[] { ch }); - // int[] numArray = new int[strArray.Length]; - // TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); - // for (int i = 0; i < numArray.Length; i++) - // numArray[i] = (int)converter.ConvertFromString(context, culture, strArray[i]); - // if (numArray.Length != 4) - // throw new ArgumentException(); - // return new GlassMargins(numArray[0], numArray[1], numArray[2], numArray[3]); - // } - - // #endregion - - // #region ConvertTo - - // public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) - // { - // //return ((destinationType == typeof(InstanceDescriptor)) || base.CanConvertTo(context, destinationType)); - // return ((destinationType == typeof(String)) || base.CanConvertTo(context, destinationType)); - // } - - // public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) - // { - // if (destinationType == null) - // throw new ArgumentNullException("destinationType"); - // if (value is GlassMargins) - // { - // if (destinationType == typeof(string)) - // { - // GlassMargins gmargins = (GlassMargins)value; - // if (culture == null) - // culture = CultureInfo.CurrentCulture; - // string separator = culture.TextInfo.ListSeparator + " "; - // TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); - // string[] strArray ={ - // converter.ConvertToString(context, culture, gmargins.Left), - // converter.ConvertToString(context, culture, gmargins.Top), - // converter.ConvertToString(context, culture, gmargins.Right), - // converter.ConvertToString(context, culture, gmargins.Bottom) - // }; - // return string.Join(separator, strArray); - // } - // //if (destinationType == typeof(InstanceDescriptor)) - // //{ - // // GlassMargins gmargins = (GlassMargins)value; - - // // return new InstanceDescriptor(typeof(GlassMargins).GetConstructor(new Type[] { typeof(int), typeof(int), typeof(int), typeof(int) }), new object[] { gmargins.Left, gmargins.Top, gmargins.Right, gmargins.Bottom }); - // //} - // } - // return base.ConvertTo(context, culture, value, destinationType); - // } - - // #endregion - - // //public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues) - // //{ - // // if (context == null) - // // { - // // throw new ArgumentNullException("context"); - // // } - // // if (propertyValues == null) - // // { - // // throw new ArgumentNullException("propertyValues"); - // // } - // // GlassMargins gmargins = (GlassMargins)context.PropertyDescriptor.GetValue(context.Instance); - // // return new GlassMargins((int)propertyValues["Left"], (int)propertyValues["Top"], (int)propertyValues["Right"], (int)propertyValues["Bottom"]); - // //} - - // //public override bool GetCreateInstanceSupported(ITypeDescriptorContext context) - // //{ - // // return true; - // //} - - // #region Properties - // public override bool GetPropertiesSupported(ITypeDescriptorContext context) - // { - // return true; - // } - - // public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) - // { - // return TypeDescriptor.GetProperties(value, attributes).Sort(new string[] { "Left", "Top", "Right", "Bottom" }); - // } - // #endregion - //} - //#endregion - - #region GlassMargins - [Serializable, StructLayout(LayoutKind.Sequential), TypeConverter(typeof(GalssMarginsConverter))] - public struct GlassMargins - { - private int left; - private int right; - private int top; - private int bottom; - - public static GlassMargins GetFullGlassMargins() - { - return new GlassMargins(-1, -1, -1, -1); - } - - public GlassMargins(int left, int top, int right, int bottom) - { - this.left = left; - this.right = right; - this.top = top; - this.bottom = bottom; - } - - public int Top { get { return top; } set { top = value; } } - public int Left { get { return left; } set { left = value; } } - public int Right { get { return right; } set { right = value; } } - public int Bottom { get { return bottom; } set { bottom = value; } } - - [Browsable(false)] - public bool IsFull { get { return top == -1 && left == -1 && right == -1 & bottom == -1; } } - - [Browsable(false)] - public bool IsNone { get { return top == 0 && left == 0 && right == 0 & bottom == 0; } } - - public override string ToString() - { - if (IsFull) - return "Full Glass"; - if (IsNone) - return "No Glass"; - return left + "; " + top + "; " + right + "; " + bottom; - } - }; - #endregion - - internal class Glass - { - private static bool CheckComposite() - { - if (!Aero.hasAero) - return false; - return Aero.DwmIsCompositionEnabled(); - } - - public static void GlassForm(Form f) - { - GlassForm(f, GlassMargins.GetFullGlassMargins()); - } - - public static void GlassForm(Form f, int leftmargin, int bottommargin, int rightmargin, int topmargin) - { - GlassForm(f, new GlassMargins(leftmargin, bottommargin, rightmargin, topmargin)); - } - - public static void GlassForm(Form f, GlassMargins margins) - { - if (!Composite) - return; - Aero.DwmExtendFrameIntoClientArea(f.Handle, margins); - } - - public static bool Composite { get { return CheckComposite(); } } - } - -} diff --git a/Launcheroid/LRD3.cs b/Launcheroid/LRD3.cs deleted file mode 100644 index cb4300f..0000000 --- a/Launcheroid/LRD3.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Imaging; -using System.IO; -using System.Text; - -namespace Launcheroid -{ - public class LRD3 - { - public class Item - { - public string Name { get; set; } - public string Path { get; set; } - public string Arguments { get; set; } - public string InitialFolder { get; set; } - public Image Image { get; set; } - } - - public LRD3() - { - Reset(); - } - - public void Reset() - { - NavigationRoot = null; - IconSize = 48; - IconSpacing = 5; - IconMargin = 7; - Items.Clear(); - } - - #region Load/Save - /// - /// Load all information from file - /// - /// - public void Load(string path) - { - if (!File.Exists(path)) - return; - Reset(); - - } - - /// - /// Save the current information to a file - /// - /// - public void Save(string path) - { - using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) - using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)) - { - sw.WriteLine("// Launcheroid3 file (Text mode) Autogenerated by Lancheroid on " + DateTime.Now.ToString()); - sw.WriteLine("// Launcheroid3 by XWolfOverride in 2019"); - sw.WriteLine(); - foreach (Item i in Items) - { - sw.WriteLine("[Item]"); - sw.Write("name:"); sw.WriteLine(i.Name); - sw.Write("path:"); sw.WriteLine(i.Path); - sw.Write("idir:"); sw.WriteLine(i.InitialFolder); - sw.Write("args:"); sw.WriteLine(i.Arguments); - sw.Write("icon:"); sw.WriteLine(Image64(i.Image)); - sw.WriteLine(""); - } - sw.WriteLine("[Settings]"); - sw.Write("root:"); sw.WriteLine(NavigationRoot); - sw.Write("size:"); sw.WriteLine(IconSize); - sw.Write("spac:"); sw.WriteLine(IconSpacing); - sw.Write("marg:"); sw.WriteLine(IconMargin); - } - } - - private string Image64(Image i) - { - if (i == null) - return ""; - MemoryStream ms = new MemoryStream(); - i.Save(ms, ImageFormat.Png); - ms.Close(); - byte[] data = ms.GetBuffer(); - return Convert.ToBase64String(data); - } - #endregion - - /// - /// Navigation root for navigation panel (if not null)
- /// use '/' for root - ///
- public string NavigationRoot { get; set; } - - /// - /// Size (in pixels) of icons in screen - /// - public int IconSize { get; set; } - - /// - /// Size (in pixels) of spacing between icons - /// - public int IconSpacing { get; set; } - - /// - /// Size (in pixels) of between icons and window frame - /// - public int IconMargin { get; set; } - - /// - /// List of items in Launcher - /// - public List Items { get; } = new List(); - } -} diff --git a/Launcheroid/Launcheroid.csproj b/Launcheroid/Launcheroid.csproj deleted file mode 100644 index 54234c0..0000000 --- a/Launcheroid/Launcheroid.csproj +++ /dev/null @@ -1,115 +0,0 @@ - - - - - Debug - AnyCPU - {042236E2-8C4A-4D85-9968-89AFC2D2271D} - WinExe - Launcheroid - Launcheroid - v4.8 - 512 - true - true - - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - AppIconLN.ico - - - - - - - - - - - - - - - - - Form - - - FImageLoad.cs - - - Form - - - FItem.cs - - - Form - - - Form1.cs - - - - Form - - - - - - FImageLoad.cs - - - FItem.cs - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - \ No newline at end of file diff --git a/Launcheroid/Program.cs b/Launcheroid/Program.cs deleted file mode 100644 index 6966ab2..0000000 --- a/Launcheroid/Program.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace Launcheroid -{ - static class Program - { - private const string DEFAULTFILENAME = "Links.lrd"; - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - - public static string ArgumentFile - { - get - { - string[] args = Environment.GetCommandLineArgs(); - if (args.Length > 1) - return args[1]; - return null; - } - } - - public static string DefaultFile - { - get - { - string path = System.Reflection.Assembly.GetExecutingAssembly().Location; - return Path.Combine(Path.GetDirectoryName(path), DEFAULTFILENAME); - } - } - } -} diff --git a/Launcheroid/Properties/AssemblyInfo.cs b/Launcheroid/Properties/AssemblyInfo.cs deleted file mode 100644 index f36ec22..0000000 --- a/Launcheroid/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Launcheroid")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Launcheroid")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("042236e2-8c4a-4d85-9968-89afc2d2271d")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Launcheroid/Properties/Resources.Designer.cs b/Launcheroid/Properties/Resources.Designer.cs deleted file mode 100644 index f7a33d0..0000000 --- a/Launcheroid/Properties/Resources.Designer.cs +++ /dev/null @@ -1,73 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Este código fue generado por una herramienta. -// Versión de runtime:4.0.30319.42000 -// -// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si -// se vuelve a generar el código. -// -//------------------------------------------------------------------------------ - -namespace Launcheroid.Properties { - using System; - - - /// - /// Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc. - /// - // StronglyTypedResourceBuilder generó automáticamente esta clase - // a través de una herramienta como ResGen o Visual Studio. - // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen - // con la opción /str o recompile su proyecto de VS. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Launcheroid.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las - /// búsquedas de recursos mediante esta clase de recurso fuertemente tipado. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Busca un recurso adaptado de tipo System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap imgbg { - get { - object obj = ResourceManager.GetObject("imgbg", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/Launcheroid/Properties/Resources.resx b/Launcheroid/Properties/Resources.resx deleted file mode 100644 index 7ece317..0000000 --- a/Launcheroid/Properties/Resources.resx +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\res\imgbg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/Launcheroid/Properties/Settings.Designer.cs b/Launcheroid/Properties/Settings.Designer.cs deleted file mode 100644 index 385fa47..0000000 --- a/Launcheroid/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// Este código fue generado por una herramienta. -// Versión de runtime:4.0.30319.42000 -// -// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si -// se vuelve a generar el código. -// -//------------------------------------------------------------------------------ - -namespace Launcheroid.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.8.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/Launcheroid/Properties/Settings.settings b/Launcheroid/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/Launcheroid/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Launcheroid/res/AppIcon.ico b/Launcheroid/res/AppIcon.ico deleted file mode 100644 index 1fcba38..0000000 --- a/Launcheroid/res/AppIcon.ico +++ /dev/null Binary files differ diff --git a/Launcheroid/res/AppIconLN.ico b/Launcheroid/res/AppIconLN.ico deleted file mode 100644 index 3b09534..0000000 --- a/Launcheroid/res/AppIconLN.ico +++ /dev/null Binary files differ diff --git a/Launcheroid/res/BlueLauncher.ico b/Launcheroid/res/BlueLauncher.ico deleted file mode 100644 index ce77a12..0000000 --- a/Launcheroid/res/BlueLauncher.ico +++ /dev/null Binary files differ diff --git a/Launcheroid/res/Gnome App Green.ico b/Launcheroid/res/Gnome App Green.ico deleted file mode 100644 index 340605b..0000000 --- a/Launcheroid/res/Gnome App Green.ico +++ /dev/null Binary files differ diff --git a/Launcheroid/res/WhiteLauncher.ico b/Launcheroid/res/WhiteLauncher.ico deleted file mode 100644 index 77326a3..0000000 --- a/Launcheroid/res/WhiteLauncher.ico +++ /dev/null Binary files differ diff --git a/Launcheroid/res/imgbg.png b/Launcheroid/res/imgbg.png deleted file mode 100644 index 4a250e0..0000000 --- a/Launcheroid/res/imgbg.png +++ /dev/null Binary files differ diff --git a/Launcheroid4/Form1.Designer.cs b/Launcheroid4/Form1.Designer.cs new file mode 100644 index 0000000..a805a86 --- /dev/null +++ b/Launcheroid4/Form1.Designer.cs @@ -0,0 +1,138 @@ +namespace Launcheroid4 +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + tt = new ToolTip(components); + cmsMain = new ContextMenuStrip(components); + ejecutarToolStripMenuItem = new ToolStripMenuItem(); + abrirDirectorioToolStripMenuItem = new ToolStripMenuItem(); + toolStripSeparator1 = new ToolStripSeparator(); + propiedadesToolStripMenuItem = new ToolStripMenuItem(); + toolStripSeparator2 = new ToolStripSeparator(); + añadirToolStripMenuItem = new ToolStripMenuItem(); + borrarToolStripMenuItem = new ToolStripMenuItem(); + toolStripSeparator3 = new ToolStripSeparator(); + configuraciónToolStripMenuItem = new ToolStripMenuItem(); + cmsMain.SuspendLayout(); + SuspendLayout(); + // + // cmsMain + // + cmsMain.ImageScalingSize = new Size(20, 20); + cmsMain.Items.AddRange(new ToolStripItem[] { ejecutarToolStripMenuItem, abrirDirectorioToolStripMenuItem, toolStripSeparator1, propiedadesToolStripMenuItem, toolStripSeparator2, añadirToolStripMenuItem, borrarToolStripMenuItem, toolStripSeparator3, configuraciónToolStripMenuItem }); + cmsMain.Name = "cmsMain"; + cmsMain.Size = new Size(181, 166); + // + // ejecutarToolStripMenuItem + // + ejecutarToolStripMenuItem.Name = "ejecutarToolStripMenuItem"; + ejecutarToolStripMenuItem.Size = new Size(180, 24); + ejecutarToolStripMenuItem.Text = "Ejecutar"; + // + // abrirDirectorioToolStripMenuItem + // + abrirDirectorioToolStripMenuItem.Name = "abrirDirectorioToolStripMenuItem"; + abrirDirectorioToolStripMenuItem.Size = new Size(180, 24); + abrirDirectorioToolStripMenuItem.Text = "Abrir directorio"; + // + // toolStripSeparator1 + // + toolStripSeparator1.Name = "toolStripSeparator1"; + toolStripSeparator1.Size = new Size(177, 6); + // + // propiedadesToolStripMenuItem + // + propiedadesToolStripMenuItem.Name = "propiedadesToolStripMenuItem"; + propiedadesToolStripMenuItem.Size = new Size(180, 24); + propiedadesToolStripMenuItem.Text = "Propiedades"; + // + // toolStripSeparator2 + // + toolStripSeparator2.Name = "toolStripSeparator2"; + toolStripSeparator2.Size = new Size(177, 6); + // + // añadirToolStripMenuItem + // + añadirToolStripMenuItem.Name = "añadirToolStripMenuItem"; + añadirToolStripMenuItem.Size = new Size(180, 24); + añadirToolStripMenuItem.Text = "Añadir"; + // + // borrarToolStripMenuItem + // + borrarToolStripMenuItem.Name = "borrarToolStripMenuItem"; + borrarToolStripMenuItem.Size = new Size(180, 24); + borrarToolStripMenuItem.Text = "Borrar"; + // + // toolStripSeparator3 + // + toolStripSeparator3.Name = "toolStripSeparator3"; + toolStripSeparator3.Size = new Size(177, 6); + // + // configuraciónToolStripMenuItem + // + configuraciónToolStripMenuItem.Name = "configuraciónToolStripMenuItem"; + configuraciónToolStripMenuItem.Size = new Size(180, 24); + configuraciónToolStripMenuItem.Text = "Configuración"; + // + // Form1 + // + AutoScaleDimensions = new SizeF(120F, 120F); + AutoScaleMode = AutoScaleMode.Dpi; + BackColor = Color.FromArgb(64, 64, 64); + ClientSize = new Size(800, 450); + ContextMenuStrip = cmsMain; + DoubleBuffered = true; + FormBorderStyle = FormBorderStyle.None; + Icon = (Icon)resources.GetObject("$this.Icon"); + MaximizeBox = false; + MinimizeBox = false; + Name = "Form1"; + StartPosition = FormStartPosition.Manual; + Load += Form1_Load; + cmsMain.ResumeLayout(false); + ResumeLayout(false); + } + + #endregion + + private ToolTip tt; + private ContextMenuStrip cmsMain; + private ToolStripMenuItem ejecutarToolStripMenuItem; + private ToolStripMenuItem abrirDirectorioToolStripMenuItem; + private ToolStripSeparator toolStripSeparator1; + private ToolStripMenuItem propiedadesToolStripMenuItem; + private ToolStripSeparator toolStripSeparator2; + private ToolStripMenuItem añadirToolStripMenuItem; + private ToolStripMenuItem borrarToolStripMenuItem; + private ToolStripSeparator toolStripSeparator3; + private ToolStripMenuItem configuraciónToolStripMenuItem; + } +} diff --git a/Launcheroid4/Form1.cs b/Launcheroid4/Form1.cs new file mode 100644 index 0000000..4e88fd6 --- /dev/null +++ b/Launcheroid4/Form1.cs @@ -0,0 +1,15 @@ +namespace Launcheroid4 +{ + public partial class Form1 : Form + { + public Form1() + { + InitializeComponent(); + } + + private void Form1_Load(object sender, EventArgs e) + { + Top = Left = 10; + } + } +} diff --git a/Launcheroid4/Form1.resx b/Launcheroid4/Form1.resx new file mode 100644 index 0000000..066844e --- /dev/null +++ b/Launcheroid4/Form1.resx @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 87, 17 + + + + + AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA + AAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8BAAAAAAAAAAAAAAAA////AWtZ + OgUAAAAIGRkACpljAP+ZYwD/AAAAAAAAAADfvoIC////Av///wL///8B////AQAAAAAAAAAMNzc3Gi0t + LScAAAAxmWMA/5ljAP/2yHX/mWMA/5ljAP+ZYwD/AAAAA////wL///8C////Af///wEAAAALAAAAGC4u + LiUnJycxNSkmVvbIdf+ZYwD/VEZEcwAAADP2yHX/mWMA/wAAAA7V1dUD////Av///wH///8BAAAABQAA + AA83NzcaSDQwP4pratq9mpb/x6im/5ljAP+ZYwD/AAAAGwAAABJePgUK////Av///wL///8B////AQAA + AAAAAAAAdVRHJ4pvZtW3kor/mWMA/5ljAP/+66f/mWMA/5ljAP+ZYwD/AAAAAP///wH///8C////Af// + /wEAAAAAeFRNJIttZNKwioD/s4yB//7rp/+ZYwD/yaym/7eSiv/+66f/mWMA/wAAAAD///8C////Av// + /wH///8BeFRNJItmW9GpgnP/q4R1/6yFd/+uhnn/y7Kq/8qvp/+yi4D/s4yC/4tsYed/XFhC////Av// + /wL///8BfmlcIaSKfNvJsab/0Lyy/9C7sf/Mtav/mWMA/5ljAP+ZYwD/mWMA/5ljAP+ZYwD/h2Re5oJq + X0P///8C////AXtZTHLRvrf9zbes/824rf/Oua7/z7qv/5ljAP/rvpL/7MGV/+zBlf/rvpL/mWMA/6qC + cv+NbGKRioCAC////wEAAAAAoYZ9ltC+tf3KtKf/y7Wo/8y2qv+ZYwD/7MGV/+yhUv/soVL/67+S/5lj + AP+JZlunAAAAAP///wH///8B////AQAAAACfhnyWmWMA/5ljAP+ZYwD/mWMA//DNoP/xt2f/8LJf/+7H + lv+ZYwD/mWMA/5ljAP+ZYwD/////Af7+/gEAAAAAAAAAAJ+CepeZYwD/27qJ//bXqv/23K3/+M17//fO + f//23bP/9dev/ty9jv+ZYwD/69e5A////wH///8BAAAAAAAAAAD+/v4BoIZ3lpljAP/juGf//NmE//ze + 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 + v//ZxsH/mWMA/5ljAP+ZYwD/mWMA//DNoP/xt2f/8LJf/+7Hlv+ZYwD/mWMA/5ljAP+ZYwD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBRSYSFY1nzqoJz/6uEdf+shHb/rYV3/66Gef+uh3r/r4h7/7CJ + fP/Xw77/2MS+/9jEv/+5lYr/mWMA/9u6if/216r/9tyt//jNe//3zn//9t2z//XXr/7cvY7/mWMA/+C/ + hAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuUUeEh2FT87CLff/Ksab/qoJz/7+hlf+/oJT/qoJz/6+I + e/+shHb/rYV3/7WShv/IraT/18K8/7+hmP+win3/mWMA/+O4Z//82YT//N6M//3fkP/72o7/5b10/5lj + AP/gv4QC/v7+AQAAAAAAAAAAAAAAAAAAAAAAAAAAblFFhKaOgPa+oZT/yK+k/9G8s//RvbT/0r20/863 + rv+/opb/0buz/66HeP+pgXL/qoJz/7aUh//Vwbn/zbSs/62FeP+uh3n/mWMA/+7Pg//+7Kf//uun/+/Q + iP+ZYwD/5MaMAQAAAAD///8BAAAAAAAAAAAAAAAAVVUqBnBRR4SYe2r0yrOo/8+6r//PurD/z7qx/9C7 + sf/Qu7L/0Lyy/9G8s//RvLP/upuN/7aUh/+winz/w6ab/9O/t//Tv7f/t5eJ/6uCdP+rhHX/mWMA//Hb + qP/x26b/mWMA/4RnXf9rTkbRpIeHBf///wEAAAAAAAAAAAAAAABmPz8UrpqU8dnIwP/Nt6z/zbit/824 + rf/Oua7/zrmv/8+5r//PurD/z7qw/9C7sf/Qu7L/0Lux/62Id//Ls6n/xaqf/9K9tf/OuK7/q4Z2/6iA + b/+pgHH/mWMA/5ljAP+rg3T/p4By/4dpX/9vUk2a////AQAAAAAAAAAAAAAAAGYzMwVsTUV9zr+6+dnI + v//Mtqr/zLar/8y3q//Nt6z/zbis/824rf/OuK7/zrmu/865r//Puq//tZSF/6yHdv+ieWX/wKSX/9G8 + s//IsKX/qYFw/6Z9a/+mfmz/p39u/6h/b/+pg3P/cVRNygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABsTUN9zr+4+djHvf/KtKf/y7Wo/8u1qf/Ltqr/zLaq/8y3q//Mt6z/zbes/824rf/OuK3/xKue/6B2 + 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 + AD/+AAB//wAA//+AAf//wAP//+AH///wD///+B////w////+f////3///////ygAAAAwAAAAYAAAAAEA + IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA + AAYAAAAHAAAACAAAAAgAAAAJAAAACAAAAAgAAAAHAAAABgAAAAQAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAcAAAAKAAAADQAA + ABAAAAASAAAAFAAAABYAAAAYAAAAGQAAABk2NjYbTU1NG01NTRtQUFAZUVFQGD4+PhUAAAASAAAAD4he + NBrAewD/wHsA/8B7AP/AewD/sHpGDgAAAAAAAAAAAAAAAP38+wL///8B////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAA + ABMAAAAXAAAAGgAAAB4AAAAhAAAAJAAAACYAAAAoAAAAKgAAACoqKiosKioqKysrKyoAAAAoAAAAJQAA + ACMAAAAgAAAAHQAAABnAewD/4KRL/+CkS//AewD/AAAABwAAAAMAAAAAAAAAAAAAAAD///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAA + ABEAAAAVAAAAGQAAAB4AAAAiAAAAJgAAACoAAAAuAAAAMQAAADUAAAA3AAAAOgAAADtWPjmiIyMjPCQk + JDoAAAA3AAAANMB7AP/AewD/wHsA/8B7AP/AewD/4KRL/+CkS//AewD/wHsA/8B7AP/AewD/wHsA/wAA + AAD///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAA + AAoAAAAOAAAAEwAAABcAAAAcAAAAIAAAACUAAAApAAAALgAAADIAAAA3AAAAOwAAAD8AAABEAAAASGJF + QfaMcXDxWUJBqh8fH0gAAABDAAAAPsB7AP/gpEv/4KRL/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/+Ck + S//gpEv/wHsA/wAAAAT///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAFAAAACQAAAA4AAAASAAAAFwAAABsAAAAfAAAAJAAAACgAAAAtAAAAMQAAADYAAAA6AAAAPgAA + AEIAAABGYEQ/9ZJ4ef+HcHH/fGNg9FlCQKoAAABFAAAAQcB7AP/fo0v/36NL/8B7AP8AAAAsAAAAJwAA + ACMAAAAewHsA/9+jS//fo0v/wHsA/wAAAAiJiYkE////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAAGAAAACwAAAA8AAAATAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAA + ADQAAAA4AAAAOwAAAD5fRD/1kXZ2/5d+fv+3mJn/loaG/4p3c/ZZQD2mIiIiPsB7AP/AewD/wHsA/8B7 + AP8AAAArAAAAJwAAACMAAAAfwHsA/8B7AP/AewD/wHsA/wAAAApycnIGvLy8Av///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAACgAAAA8AAAATAAAAFwAAABsAAAAeAAAAIgAA + ACYAAAApAAAALQAAADAAAAAzAAAANWJHP/SOdHT/m399/8ShoP/Go6P/uZub/5aGhv+KcnH1WkI/oQAA + ADQAAAAyAAAALwAAACzAewD/wHsA/8B7AP/AewD/AAAAGQAAABYAAAARAAAADQAAAAlycnIGvLy8Av// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAwAAAAQAAAAFAAA + ABcAAAAbAAAAHgAAACEAAAAkAAAAJwAAACoAAAAsYkc/9I5ycP+dgH//w5+d/8Ognv/EoZ//xKGf/7yf + n/+ajY3/iHFt9F5EP50AAAArAAAAKQAAACbAegD/+dWJ//zdj//AegD/AAAAFgAAABMAAAAPAAAACwAA + AAcAAAAD////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABQAA + AAkAAAAMAAAADwAAABMAAAAWAAAAGQAAABsAAAAeAAAAIAAAACJgR0Lzi3Bt/6GCgP/AnJj/wZ2Z/8Gd + mv/Cn5z/wp+d/9W8uv/Pvr3/mY2M/8B7AP/AewD/wHsA/8B7AP/AegD/+teK//zfkP/AegD/wHsA/8B7 + AP/AewD/wHsA/wAAAAT///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAQAAAAHAAAACgAAAA0AAAAQAAAAEgAAABUAAAAXAAAAGWBHQvOKbmr/o4N//76Z + lP++mpX/vpqW/7+blv/Fo6H/xaSh/9zHxv/gzcz/z7+9/8B6AP/51Yn//N2P/8B6AP+/egD/v3oA/796 + AP+/egD/wHoA//nVif/83Y//wHoA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAYAAAAJAAAACwAAAA0AAAAPY0VB8olt + aP+mhH//u5aQ/7uWkP+8l5H/vJiS/72Yk//ey8n/3svJ/97Myf/fzMr/2cPB/8B6AP/614r//N+Q/8B6 + AP8AAAAPAAAADQAAAAsAAAAIwHoA//rXiv/835D/wHoA/////wH///8B////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAA + AAZjREHyiGxm/6eFfv+4k4v/uZSM/7mUjf+6lY7/upWP/7uWj//bx8T/3crH/93KyP/ey8j/0bm0/796 + AP+/egD/v3oA/796AP9qTUeLAAAABQAAAAMAAAABv3oA/796AP+/egD/v3oA/////wH///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGNEQfKJa2T/qIV9/7aQh/+2kIj/t5GJ/7eSif+4kor/uJOL/7mTjP+6lo7/zLCr/9zJ + xv/dysb/zLCr/7yXkf+8l5H/r42H/4FoZP93XFbxbU1JhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAY0RB8olqYv+phHv/s42C/7SNg/+0joT/tY6F/7WPhv+2kIf/tpCH/7eR + iP+3kor/x6mj/9vIxP/cyMT/yKul/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/8B7 + AP/AewD/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjREHyiWph/6mEeP+xin7/sYp//7KLgP+yjIH/s4yB/7ON + gv+0jYP/tI6E/7WOhf+1kIb/xaag/9rHwv/ax8P/x6qk/8B7AP/two3/8riB//O6hP/zuoT/87qE//O6 + hP/zuoT/87qE//K4gf/two3/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBEQPKKamD/qYJ2/66Hev+vh3v/r4h7/7CI + fP+wiX3/sYl+/7GKf/+yi3//souA/7KMgf/AoJj/z7ex/9nGwf/ZxsH/ya2m/8B7AP/nsGv/651N/+uf + UP/rn1D/659Q/+ufUP/rn1D/659Q/+udTf/nsGv/wHsA/////wH///8B////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYERA8oxqX/+ogXP/rIR1/6yE + dv+thXf/rYV4/62Gef+uh3n/rod6/6+Ie/+viHz/sIl9/7CJfv/YxL7/2MS+/9jEv//Yxb//zbOr/8B7 + AP/nsGv/655O/+ygUv/soFL/7KBS/+ygUv/soFL/7KBS/+ueTv/nsGv/wHsA/////wH///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgREDyjWpd/6h/ + b/+pgXH/qYFy/6qCcv+qgnP/q4N0/6uDdf+shHb/rIV3/62Fd/+thnj/roZ5/66Hev/Pt6//z7ev/9fD + vP/Xw73/1L64/8B7AP/nsWz/651O/+ygUv/soFL/7KBS/+ygUv/soFL/7KBS/+ueTv/nsGv/wHsA//// + /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNE + QvKPalz/pX1s/7aVhv/SvrX/tJKE/6uDdP+4l4r/07+3/7aUhv+qgXL/qoJz/7SQgv+rg3X/rIR1/6yE + dv+thnj/rYd5/861rv/Wwrz/18K8/8B7AP/osW3/7KBR/+ugUv/soFL/7KBS/+ygUv/roFH/66BR/+ud + Tv/nsGv/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAY0RC8q+WjP+3l4j/t5aH/8ivpP/RvbT/0b20/9K9tP/SvbX/0r61/8ivpf+5mIv/vJ6R/9O/ + t/+zj4H/qoFy/6qCc/+rgnT/q4N0/8Chlf/Vwbr/1cG6/8B7AP/nsm//7aRY/+6mWf/tpFX/7aRU/+2j + VP/to1P/7KFT/+ufT//nsGv/wHsA/2tLR4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgQ0DymHJi/8+6sP/PurH/0Lux/9C7sf/Qu7L/0Lyy/9G8s//RvLP/0byz/9G9 + tP/SvbT/0r21/9G8s/+pgnL/qH9u/6h/b//AewD/wHsA/8B7AP/AewD/wHsA/8B7AP/utnT/7q1f//Cx + ZP/wsmT/769c/++sWP/uqlb/7qhW/+2lUv/ssGv/wHsA/8B7AP/AewD/wHsA/8B7AP/AewD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVFQvKif2//yLGl/865rv/Oua//z7qv/8+6sP/PurD/z7qw/9C7 + sf/Qu7H/0Luy/9C8sv/RvLL/0byz/9G8s//Ls6n/sY1+/8aroP+1k4X/wHsA/9ebSv/1xZX/8LFr//G1 + bv/wtWj/8rdo//S6a//0vW7/9L5v//S8bv/zuWb/8bJd/++tV//uq1n/761h/+6pYP/1v4z/2J1I+sB7 + AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZkhC1NPBuf/Xxr3/zbes/824rf/NuK3/zrit/865 + rv/Oua7/zrmv/865r//Puq//z7qw/8+6sP/Pu7H/0Lux/9C7sv/Qu7L/0Lyy/9G8s/+0k4T/vqGU/8B7 + AP/boEj/8r17//K2Z//0vWv/9cFw//bFc//3x3X/98l4//fJev/3yXv/9sd9//XDd//zu3D/8bVn//K5 + dv/boUv/wHsA/2VOQ0T///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaU8+TZN8cfLs5OD/18W8/8y2 + q//Mt6v/zbes/823rP/NuKz/zbit/824rf/OuK7/zrmu/865r//Oua//z7qv/8+6sP/PurD/z7qx/865 + rv+pg3H/p4Bu/7STg//AewD/5LZu//jJgv/2xXP/98p4//nPe//50X7/+tOB//nTgv/50oT/+dCD//fO + hP/3yoT/98yQ/+nEiv/AewD/ZEZA8XBXTxr///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVL + PmKTe3Dy7OTg/9bFu//Ltqn/y7aq/8y2qv/Mtqv/zLer/8y3rP/Nt6z/zbis/824rf/NuK3/zriu/865 + rv/Oua7/zrmv/8+5r//FrKH/rYl3/7KRgf+heGT/wHsA/+jCfP/504X/+tN///zXhP/82ob//duJ//3c + i//824z/+9mM//rWjP/51ZP/7MuT/8B7AP9lSUDx/Pn0Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABlSz5ikntw8uzk4P/WxLr/yrWo/8u1qP/Ltaj/y7Wp/8u2qv/Mtqr/zLaq/8y3 + q//Mt6v/zbes/823rP/NuK3/zbit/864rf/Oua7/zrmu/8u0qf+heGT/oHZh/8B7AP/vz47//dyL//3f + jf/94pH//eKU//7jlf/94pX//eCV//zdlf/x1Jv/wHsA/2VKQfEAAAAA////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZUg+YpJ6cPLs5N//1sS6/8q0pv/KtKf/yrSn/8q0 + p//Ltaj/y7Wo/8u1qf/Ltqr/zLaq/8y2qv/Mtqv/zLer/8y3rP/Nt6z/zLer/6N8Z/+edF7/pX5r/8y2 + qv/AewD/+uSp///nmv//6J3//+qh///pof//6KD//+eh//vns//AewD/aEtA8e/evwH///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVIPmKSe3Dy7OTe/9XE + uf/Js6X/ybOl/8mzpv/KtKb/yrSm/8q0p//KtKf/yrWo/8u1qP/Ltan/y7Wp/8u2qv/Mtqr/zLar/6eC + bv+ccVv/o3tm/8iwpP/EqZz/wHsA//3stv/+77D///G2///wtf/+7q///e24/8B7AP9oSkDxAAAAAP// + /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABlSD5ikXtv8uvj3v/Vw7n/yLKj/8iypP/IsqT/ybOl/8mzpf/Js6b/ybOm/8q0pv/KtKf/yrSn/8q1 + p//Ltaj/y7Wo/76jlP+zlIL/m29Z/6B3Yf+cclr/nW5W/8B7AP//9tL///TN///0yv//9s//wHsA/3BO + P/Lu27oB////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZUg+YpF6bvLr497/1cO4/8exov/HsaP/yLGj/8iyo//IsqT/yLKk/8my + pP/Js6X/ybOl/8mzpv/KtKb/yrSn/8q0p//Ks6b/mW1V/5luVv+ablf/mW5V/55tT//AewD///rk///5 + 4v/AewD/e1I79AAAAAD+/fwB////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVIPmKRem7y6+Pd/9TDt//GsKH/x7Ch/8ew + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABiRjlij3Zr8ung2v/SwLP/vaaV/2RFP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYkY5Yo1xafK8o5D/ZEU/8QAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJGOWJkRjvOAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfPz8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///////8AAP//gAH//wAA//gAAAODAAD/wAAAAcMAAP8AAAAAQwAA/AAAAAADAAD8AAAAAAMAAPgA + AAAAAwAA+AAAAAADAAD4AAAAAAMAAPwAAAAAAwAA/gAAAAADAAD/gAAAAAMAAP/wAAAAAwAA//wAAB+D + AAD/+AAAAAMAAP/wAAAAAwAA/+AAAAADAAD/wAAAAAMAAP+AAAAAAwAA/wAAAAADAAD+AAAAAD8AAPwA + AAAAAwAA+AAAAAAHAADwAAAAAAMAAPAAAAAAAwAA+AAAAAADAAD8AAAAACMAAP4AAAAAAwAA/wAAAACD + AAD/gAAAAAMAAP/AAAACAwAA/+AAAAQDAAD/8AAACAMAAP/4AAAf/wAA//wAAD//AAD//gAAf/8AAP// + AAD//wAA//+AAf//AAD//8AD//8AAP//4Af//wAA///wD///AAD///gf//8AAP///D///wAA///+f/// + AAD///9///8AAP///////wAA////////AAA= + + + \ No newline at end of file diff --git a/Launcheroid4/LRD4.cs b/Launcheroid4/LRD4.cs new file mode 100644 index 0000000..f23ba58 --- /dev/null +++ b/Launcheroid4/LRD4.cs @@ -0,0 +1,110 @@ +using System.Drawing.Imaging; +using System.Text; + +namespace Launcheroid +{ + public class LRD4 + { + public class Item + { + public string Name { get; set; } + public string Path { get; set; } + public string Arguments { get; set; } + public string InitialFolder { get; set; } + public Image Image { get; set; } + } + + public LRD4() + { + Reset(); + } + + public void Reset() + { + NavigationRoot = null; + IconSize = 48; + IconSpacing = 5; + IconMargin = 7; + Items.Clear(); + } + + #region Load/Save + /// + /// Load all information from file + /// + /// + public void Load(string path) + { + if (!File.Exists(path)) + return; + Reset(); + } + + /// + /// Save the current information to a file + /// + /// + public void Save(string path) + { + using FileStream fs = new(path, FileMode.OpenOrCreate, FileAccess.Write); + using StreamWriter sw = new(fs, Encoding.UTF8); + sw.WriteLine("// Launcheroid4 file (Text mode) Autogenerated by Lancheroid on " + DateTime.Now.ToString()); + sw.WriteLine("// Launcheroid4 by XWolfOverride in 2025"); + sw.WriteLine(); + // Create JSON version + foreach (Item i in Items) + { + sw.WriteLine("[Item]"); + sw.Write("name:"); sw.WriteLine(i.Name); + sw.Write("path:"); sw.WriteLine(i.Path); + sw.Write("idir:"); sw.WriteLine(i.InitialFolder); + sw.Write("args:"); sw.WriteLine(i.Arguments); + sw.Write("icon:"); sw.WriteLine(Image64(i.Image)); + sw.WriteLine(""); + } + sw.WriteLine("[Settings]"); + sw.Write("root:"); sw.WriteLine(NavigationRoot); + sw.Write("size:"); sw.WriteLine(IconSize); + sw.Write("spac:"); sw.WriteLine(IconSpacing); + sw.Write("marg:"); sw.WriteLine(IconMargin); + } + + private string Image64(Image i) + { + if (i == null) + return ""; + MemoryStream ms = new MemoryStream(); + i.Save(ms, ImageFormat.Png); + ms.Close(); + byte[] data = ms.GetBuffer(); + return Convert.ToBase64String(data); + } + #endregion + + /// + /// Navigation root for navigation panel (if not null)
+ /// use '/' for root + ///
+ public string NavigationRoot { get; set; } + + /// + /// Size (in pixels) of icons in screen + /// + public int IconSize { get; set; } + + /// + /// Size (in pixels) of spacing between icons + /// + public int IconSpacing { get; set; } + + /// + /// Size (in pixels) of between icons and window frame + /// + public int IconMargin { get; set; } + + /// + /// List of items in Launcher + /// + public List Items { get; } = new List(); + } +} diff --git a/Launcheroid4/Launcheroid4.csproj b/Launcheroid4/Launcheroid4.csproj new file mode 100644 index 0000000..acfbf20 --- /dev/null +++ b/Launcheroid4/Launcheroid4.csproj @@ -0,0 +1,16 @@ + + + + WinExe + net8.0-windows + enable + true + enable + res\AppIconLN.ico + + + + + + + \ No newline at end of file diff --git a/Launcheroid4/Program.cs b/Launcheroid4/Program.cs new file mode 100644 index 0000000..3ac5804 --- /dev/null +++ b/Launcheroid4/Program.cs @@ -0,0 +1,17 @@ +namespace Launcheroid4 +{ + internal static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + // To customize application configuration such as set high DPI settings or default font, + // see https://aka.ms/applicationconfiguration. + ApplicationConfiguration.Initialize(); + Application.Run(new Form1()); + } + } +} \ No newline at end of file diff --git a/Launcheroid4/res/AppIcon.ico b/Launcheroid4/res/AppIcon.ico new file mode 100644 index 0000000..1fcba38 --- /dev/null +++ b/Launcheroid4/res/AppIcon.ico Binary files differ diff --git a/Launcheroid4/res/AppIconLN - copia.ico b/Launcheroid4/res/AppIconLN - copia.ico new file mode 100644 index 0000000..3b09534 --- /dev/null +++ b/Launcheroid4/res/AppIconLN - copia.ico Binary files differ diff --git a/Launcheroid4/res/AppIconLN.ico b/Launcheroid4/res/AppIconLN.ico new file mode 100644 index 0000000..3b09534 --- /dev/null +++ b/Launcheroid4/res/AppIconLN.ico Binary files differ diff --git a/Launcheroid4/res/AppIconLN.png b/Launcheroid4/res/AppIconLN.png new file mode 100644 index 0000000..464e67f --- /dev/null +++ b/Launcheroid4/res/AppIconLN.png Binary files differ diff --git a/Launcheroid4/res/BlueLauncher.ico b/Launcheroid4/res/BlueLauncher.ico new file mode 100644 index 0000000..ce77a12 --- /dev/null +++ b/Launcheroid4/res/BlueLauncher.ico Binary files differ diff --git a/Launcheroid4/res/Gnome App Green.ico b/Launcheroid4/res/Gnome App Green.ico new file mode 100644 index 0000000..340605b --- /dev/null +++ b/Launcheroid4/res/Gnome App Green.ico Binary files differ diff --git a/Launcheroid4/res/WhiteLauncher.ico b/Launcheroid4/res/WhiteLauncher.ico new file mode 100644 index 0000000..77326a3 --- /dev/null +++ b/Launcheroid4/res/WhiteLauncher.ico Binary files differ diff --git a/Launcheroid4/res/imgbg.png b/Launcheroid4/res/imgbg.png new file mode 100644 index 0000000..4a250e0 --- /dev/null +++ b/Launcheroid4/res/imgbg.png Binary files differ diff --git a/V3/App.config b/V3/App.config new file mode 100644 index 0000000..4bfa005 --- /dev/null +++ b/V3/App.config @@ -0,0 +1,6 @@ + + + + + + diff --git a/V3/AppIconLN.ico b/V3/AppIconLN.ico new file mode 100644 index 0000000..3b09534 --- /dev/null +++ b/V3/AppIconLN.ico Binary files differ diff --git a/V3/FImageLoad.Designer.cs b/V3/FImageLoad.Designer.cs new file mode 100644 index 0000000..220b4a6 --- /dev/null +++ b/V3/FImageLoad.Designer.cs @@ -0,0 +1,46 @@ +namespace Launcheroid +{ + partial class FImageLoad + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.SuspendLayout(); + // + // FImageLoad + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(454, 439); + this.Name = "FImageLoad"; + this.Text = "FImageLoad"; + this.ResumeLayout(false); + + } + + #endregion + } +} \ No newline at end of file diff --git a/V3/FImageLoad.cs b/V3/FImageLoad.cs new file mode 100644 index 0000000..f34d62b --- /dev/null +++ b/V3/FImageLoad.cs @@ -0,0 +1,64 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Imaging; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Launcheroid +{ + public partial class FImageLoad : Form + { + private FImageLoad() + { + InitializeComponent(); + } + + public static bool IsImage(string path) + { + try + { + using (Image i = Image.FromFile(path)) + return true; + } + catch { }; + return false; + } + + public static Image Open(string path) + { + try + { + return Image.FromFile(path); + } + catch + { + return null; + } + } + + public static Image Open() + { + string allim = ""; + string types = ""; + ImageCodecInfo[] decs = ImageCodecInfo.GetImageDecoders(); + foreach (ImageCodecInfo ici in decs) + { + types += "|" + ici.FormatDescription + " (" + ici.CodecName + ")" + "|" + ici.FilenameExtension; + allim += ";" + ici.FilenameExtension; + } + types = "All images|" + allim.Substring(1) + types + "|All files|*.*"; + using (OpenFileDialog ofd = new OpenFileDialog()) + { + ofd.Filter = types; + if (ofd.ShowDialog() == DialogResult.OK) + return Open(ofd.FileName); + } + return null; + } + } +} diff --git a/V3/FImageLoad.resx b/V3/FImageLoad.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/V3/FImageLoad.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/V3/FItem.Designer.cs b/V3/FItem.Designer.cs new file mode 100644 index 0000000..744e009 --- /dev/null +++ b/V3/FItem.Designer.cs @@ -0,0 +1,243 @@ +namespace Launcheroid +{ + partial class FItem + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.lbName = new System.Windows.Forms.Label(); + this.tbName = new System.Windows.Forms.TextBox(); + this.tbPath = new System.Windows.Forms.TextBox(); + this.lbPath = new System.Windows.Forms.Label(); + this.tbDirectory = new System.Windows.Forms.TextBox(); + this.lbDir = new System.Windows.Forms.Label(); + this.tbArguments = new System.Windows.Forms.TextBox(); + this.lbArgs = new System.Windows.Forms.Label(); + this.btOk = new System.Windows.Forms.Button(); + this.btPathGet = new System.Windows.Forms.Button(); + this.btDirectoryGet = new System.Windows.Forms.Button(); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.pbIcon = new System.Windows.Forms.PictureBox(); + this.contextMenuStrip1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbIcon)).BeginInit(); + this.SuspendLayout(); + // + // lbName + // + this.lbName.AutoSize = true; + this.lbName.Location = new System.Drawing.Point(146, 15); + this.lbName.Name = "lbName"; + this.lbName.Size = new System.Drawing.Size(38, 13); + this.lbName.TabIndex = 1; + this.lbName.Text = "Name:"; + // + // tbName + // + this.tbName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbName.Location = new System.Drawing.Point(204, 12); + this.tbName.Name = "tbName"; + this.tbName.Size = new System.Drawing.Size(268, 20); + this.tbName.TabIndex = 2; + this.tbName.TextChanged += new System.EventHandler(this.TbName_TextChanged); + // + // tbPath + // + this.tbPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbPath.Location = new System.Drawing.Point(204, 38); + this.tbPath.Name = "tbPath"; + this.tbPath.Size = new System.Drawing.Size(238, 20); + this.tbPath.TabIndex = 4; + // + // lbPath + // + this.lbPath.AutoSize = true; + this.lbPath.Location = new System.Drawing.Point(146, 41); + this.lbPath.Name = "lbPath"; + this.lbPath.Size = new System.Drawing.Size(32, 13); + this.lbPath.TabIndex = 3; + this.lbPath.Text = "Path:"; + // + // tbDirectory + // + this.tbDirectory.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbDirectory.Location = new System.Drawing.Point(204, 64); + this.tbDirectory.Name = "tbDirectory"; + this.tbDirectory.Size = new System.Drawing.Size(238, 20); + this.tbDirectory.TabIndex = 6; + // + // lbDir + // + this.lbDir.AutoSize = true; + this.lbDir.Location = new System.Drawing.Point(146, 67); + this.lbDir.Name = "lbDir"; + this.lbDir.Size = new System.Drawing.Size(52, 13); + this.lbDir.TabIndex = 5; + this.lbDir.Text = "Directory:"; + // + // tbArguments + // + this.tbArguments.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tbArguments.Location = new System.Drawing.Point(211, 90); + this.tbArguments.Name = "tbArguments"; + this.tbArguments.Size = new System.Drawing.Size(261, 20); + this.tbArguments.TabIndex = 8; + // + // lbArgs + // + this.lbArgs.AutoSize = true; + this.lbArgs.Location = new System.Drawing.Point(146, 93); + this.lbArgs.Name = "lbArgs"; + this.lbArgs.Size = new System.Drawing.Size(60, 13); + this.lbArgs.TabIndex = 7; + this.lbArgs.Text = "Arguments:"; + // + // btOk + // + this.btOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.btOk.Location = new System.Drawing.Point(397, 117); + this.btOk.Name = "btOk"; + this.btOk.Size = new System.Drawing.Size(75, 23); + this.btOk.TabIndex = 9; + this.btOk.Text = "Ok"; + this.btOk.UseVisualStyleBackColor = true; + this.btOk.Click += new System.EventHandler(this.BtOk_Click); + // + // btPathGet + // + this.btPathGet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btPathGet.Location = new System.Drawing.Point(448, 38); + this.btPathGet.Name = "btPathGet"; + this.btPathGet.Size = new System.Drawing.Size(24, 20); + this.btPathGet.TabIndex = 10; + this.btPathGet.Text = "..."; + this.btPathGet.UseVisualStyleBackColor = true; + this.btPathGet.Click += new System.EventHandler(this.BtPathGet_Click); + // + // btDirectoryGet + // + this.btDirectoryGet.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.btDirectoryGet.Location = new System.Drawing.Point(448, 64); + this.btDirectoryGet.Name = "btDirectoryGet"; + this.btDirectoryGet.Size = new System.Drawing.Size(24, 20); + this.btDirectoryGet.TabIndex = 11; + this.btDirectoryGet.Text = "..."; + this.btDirectoryGet.UseVisualStyleBackColor = true; + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.openToolStripMenuItem, + this.deleteToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(108, 48); + this.contextMenuStrip1.Opening += new System.ComponentModel.CancelEventHandler(this.ContextMenuStrip1_Opening); + // + // openToolStripMenuItem + // + this.openToolStripMenuItem.Name = "openToolStripMenuItem"; + this.openToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.openToolStripMenuItem.Text = "Open"; + this.openToolStripMenuItem.Click += new System.EventHandler(this.OpenToolStripMenuItem_Click); + // + // deleteToolStripMenuItem + // + this.deleteToolStripMenuItem.Name = "deleteToolStripMenuItem"; + this.deleteToolStripMenuItem.Size = new System.Drawing.Size(107, 22); + this.deleteToolStripMenuItem.Text = "Delete"; + this.deleteToolStripMenuItem.Click += new System.EventHandler(this.DeleteToolStripMenuItem_Click); + // + // pbIcon + // + this.pbIcon.BackgroundImage = global::Launcheroid.Properties.Resources.imgbg; + this.pbIcon.ContextMenuStrip = this.contextMenuStrip1; + this.pbIcon.Location = new System.Drawing.Point(12, 12); + this.pbIcon.Name = "pbIcon"; + this.pbIcon.Size = new System.Drawing.Size(128, 128); + this.pbIcon.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.pbIcon.TabIndex = 0; + this.pbIcon.TabStop = false; + // + // FItem + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(484, 152); + this.Controls.Add(this.btDirectoryGet); + this.Controls.Add(this.btPathGet); + this.Controls.Add(this.btOk); + this.Controls.Add(this.tbArguments); + this.Controls.Add(this.lbArgs); + this.Controls.Add(this.tbDirectory); + this.Controls.Add(this.lbDir); + this.Controls.Add(this.tbPath); + this.Controls.Add(this.lbPath); + this.Controls.Add(this.tbName); + this.Controls.Add(this.lbName); + this.Controls.Add(this.pbIcon); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; + this.MaximumSize = new System.Drawing.Size(900, 191); + this.MinimumSize = new System.Drawing.Size(500, 191); + this.Name = "FItem"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "FItem"; + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.FItem_DragDrop); + this.DragEnter += new System.Windows.Forms.DragEventHandler(this.FItem_DragEnter); + this.contextMenuStrip1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pbIcon)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox pbIcon; + private System.Windows.Forms.Label lbName; + private System.Windows.Forms.TextBox tbName; + private System.Windows.Forms.TextBox tbPath; + private System.Windows.Forms.Label lbPath; + private System.Windows.Forms.TextBox tbDirectory; + private System.Windows.Forms.Label lbDir; + private System.Windows.Forms.TextBox tbArguments; + private System.Windows.Forms.Label lbArgs; + private System.Windows.Forms.Button btOk; + private System.Windows.Forms.Button btPathGet; + private System.Windows.Forms.Button btDirectoryGet; + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem deleteToolStripMenuItem; + } +} \ No newline at end of file diff --git a/V3/FItem.cs b/V3/FItem.cs new file mode 100644 index 0000000..74a5393 --- /dev/null +++ b/V3/FItem.cs @@ -0,0 +1,139 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Launcheroid +{ + public partial class FItem : Form + { + private FItem() + { + InitializeComponent(); + } + + private static bool Open(LRD3.Item item, string import) + { + bool saved; + using (FItem f = new FItem()) + { + f.LoadItem(item); + f.LinkToPath(import); + saved = f.ShowDialog() == DialogResult.OK; + if (saved) + f.SaveItem(item); + } + return saved; + } + + public static bool Execute(LRD3.Item item) + { + return Open(item, null); + } + + public static LRD3.Item Import(string path) + { + LRD3.Item i = new LRD3.Item(); + if (Open(i, path)) + return i; + return null; + } + + private void LoadItem(LRD3.Item item) + { + tbName.Text = Text = item.Name; + tbPath.Text = item.Path; + tbDirectory.Text = item.InitialFolder; + tbArguments.Text = item.Arguments; + pbIcon.Image = item.Image; + } + + private void SaveItem(LRD3.Item item) + { + item.Name = tbName.Text; + item.Path = tbPath.Text; + item.InitialFolder = tbDirectory.Text; + item.Arguments = tbArguments.Text; + item.Image = pbIcon.Image; + } + + private void LinkToPath(string path) + { + // TODO if it is a link (.lnk) open link and recover information + tbName.Text = Text = Path.GetFileNameWithoutExtension(path); + tbPath.Text = path; + tbDirectory.Text = Path.GetDirectoryName(path); + try + { + pbIcon.Image = Icon.ExtractAssociatedIcon(path).ToBitmap(); + } + catch + { + pbIcon.Image = null; + } + } + + private void BtOk_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.OK; + } + + private void TbName_TextChanged(object sender, EventArgs e) + { + Text = tbName.Text; + } + + private void OpenToolStripMenuItem_Click(object sender, EventArgs e) + { + Image i = FImageLoad.Open(); + if (i != null) + pbIcon.Image = i; + } + + private void DeleteToolStripMenuItem_Click(object sender, EventArgs e) + { + pbIcon.Image = null; + } + + private void FItem_DragEnter(object sender, DragEventArgs e) + { + if (!e.Data.GetDataPresent(DataFormats.FileDrop)) + return; + e.Effect = DragDropEffects.Copy; + } + + private void FItem_DragDrop(object sender, DragEventArgs e) + { + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); + if (files.Length != 1) + return; + Point cp = PointToClient(new Point(e.X, e.Y)); + Control dropTarget = GetChildAtPoint(cp); + if (dropTarget == pbIcon) + pbIcon.Image = FImageLoad.Open(files[0]); + else + LinkToPath(files[0]); + } + + private void BtPathGet_Click(object sender, EventArgs e) + { + using (OpenFileDialog ofd = new OpenFileDialog()) + { + ofd.Filter = "Executables|*.exe;*.com;*.lnk|All files|*.*"; + if (ofd.ShowDialog() == DialogResult.OK) + LinkToPath(ofd.FileName); + } + } + + private void ContextMenuStrip1_Opening(object sender, CancelEventArgs e) + { + deleteToolStripMenuItem.Enabled = pbIcon.Image != null; + } + } +} diff --git a/V3/FItem.resx b/V3/FItem.resx new file mode 100644 index 0000000..ad53752 --- /dev/null +++ b/V3/FItem.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/V3/Form1.Designer.cs b/V3/Form1.Designer.cs new file mode 100644 index 0000000..ebb6b49 --- /dev/null +++ b/V3/Form1.Designer.cs @@ -0,0 +1,147 @@ +namespace Launcheroid +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); + this.executeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.executeWithOptionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); + this.propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); + this.addItemToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.deleteItemToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); + this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.contextMenuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // contextMenuStrip1 + // + this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.executeToolStripMenuItem, + this.executeWithOptionsToolStripMenuItem, + this.toolStripMenuItem1, + this.propertiesToolStripMenuItem, + this.toolStripMenuItem2, + this.addItemToolStripMenuItem, + this.deleteItemToolStripMenuItem, + this.toolStripMenuItem3, + this.settingsToolStripMenuItem}); + this.contextMenuStrip1.Name = "contextMenuStrip1"; + this.contextMenuStrip1.Size = new System.Drawing.Size(193, 154); + // + // executeToolStripMenuItem + // + this.executeToolStripMenuItem.Name = "executeToolStripMenuItem"; + this.executeToolStripMenuItem.Size = new System.Drawing.Size(192, 22); + this.executeToolStripMenuItem.Text = "Execute"; + // + // executeWithOptionsToolStripMenuItem + // + this.executeWithOptionsToolStripMenuItem.Name = "executeWithOptionsToolStripMenuItem"; + this.executeWithOptionsToolStripMenuItem.Size = new System.Drawing.Size(192, 22); + this.executeWithOptionsToolStripMenuItem.Text = "Execute with options..."; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(189, 6); + // + // propertiesToolStripMenuItem + // + this.propertiesToolStripMenuItem.Name = "propertiesToolStripMenuItem"; + this.propertiesToolStripMenuItem.Size = new System.Drawing.Size(192, 22); + this.propertiesToolStripMenuItem.Text = "Properties"; + // + // toolStripMenuItem2 + // + this.toolStripMenuItem2.Name = "toolStripMenuItem2"; + this.toolStripMenuItem2.Size = new System.Drawing.Size(189, 6); + // + // addItemToolStripMenuItem + // + this.addItemToolStripMenuItem.Name = "addItemToolStripMenuItem"; + this.addItemToolStripMenuItem.Size = new System.Drawing.Size(192, 22); + this.addItemToolStripMenuItem.Text = "Add item"; + this.addItemToolStripMenuItem.Click += new System.EventHandler(this.AddItemToolStripMenuItem_Click); + // + // deleteItemToolStripMenuItem + // + this.deleteItemToolStripMenuItem.Name = "deleteItemToolStripMenuItem"; + this.deleteItemToolStripMenuItem.Size = new System.Drawing.Size(192, 22); + this.deleteItemToolStripMenuItem.Text = "Delete item"; + // + // toolStripMenuItem3 + // + this.toolStripMenuItem3.Name = "toolStripMenuItem3"; + this.toolStripMenuItem3.Size = new System.Drawing.Size(189, 6); + // + // settingsToolStripMenuItem + // + this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; + this.settingsToolStripMenuItem.Size = new System.Drawing.Size(192, 22); + this.settingsToolStripMenuItem.Text = "Settings"; + // + // Form1 + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(800, 450); + this.ContextMenuStrip = this.contextMenuStrip1; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Form1"; + this.StartPosition = System.Windows.Forms.FormStartPosition.Manual; + this.DragDrop += new System.Windows.Forms.DragEventHandler(this.Form1_DragDrop); + this.DragEnter += new System.Windows.Forms.DragEventHandler(this.Form1_DragEnter); + this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); + this.contextMenuStrip1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; + private System.Windows.Forms.ToolStripMenuItem executeToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem executeWithOptionsToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem propertiesToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; + private System.Windows.Forms.ToolStripMenuItem addItemToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem deleteItemToolStripMenuItem; + private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; + private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; + } +} + diff --git a/V3/Form1.cs b/V3/Form1.cs new file mode 100644 index 0000000..7b73181 --- /dev/null +++ b/V3/Form1.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; +using XWolf.Aero; + +namespace Launcheroid +{ + public partial class Form1 : XGlassForm + { + private const int WM_NCHITTEST = 0x0084; + private static IntPtr HTCAPTION = (IntPtr)2; + + private LRD3 lib = new LRD3(); + private string libPath; + + public Form1() + { + InitializeComponent(); + FullGlass = true; + GoToCursor(); + libPath = Program.ArgumentFile; + if (string.IsNullOrEmpty(libPath)) + libPath = Program.DefaultFile; + lib.Load(libPath); + } + + protected override void WndProc(ref Message message) + { + base.WndProc(ref message); + if (message.Msg == WM_NCHITTEST) + { + int r = message.Result.ToInt32(); + if (r >= 10 && r <= 18) + message.Result = HTCAPTION; + } + } + + private void GoToCursor() + { + Point c = Cursor.Position; + c.X -= Width / 2; + if (c.X < 0) + c.X = 0; + c.Y -= Height / 2; + if (c.Y < 0) + c.Y = 0; + Location = c; + } + + private void UpdateLibrary() + { + + } + + private void Add(LRD3.Item item) + { + lib.Items.Add(item); + lib.Save(libPath); + UpdateLibrary(); + } + + private void Form1_Paint(object sender, PaintEventArgs e) + { + + } + + private void AddItemToolStripMenuItem_Click(object sender, EventArgs e) + { + LRD3.Item item = new LRD3.Item(); + if (FItem.Execute(item)) + Add(item); + } + + private void Form1_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; + } + + private void Form1_DragDrop(object sender, DragEventArgs e) + { + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); + if (files.Length != 1) + return; + LRD3.Item item = FItem.Import(files[0]); + if (item != null) + Add(item); + } + } +} diff --git a/V3/Form1.resx b/V3/Form1.resx new file mode 100644 index 0000000..783b959 --- /dev/null +++ b/V3/Form1.resx @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA + AAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wH///8BAAAAAAAAAAAAAAAA////AWtZ + OgUAAAAIGRkACpljAP+ZYwD/AAAAAAAAAADfvoIC////Av///wL///8B////AQAAAAAAAAAMNzc3Gi0t + LScAAAAxmWMA/5ljAP/2yHX/mWMA/5ljAP+ZYwD/AAAAA////wL///8C////Af///wEAAAALAAAAGC4u + LiUnJycxNSkmVvbIdf+ZYwD/VEZEcwAAADP2yHX/mWMA/wAAAA7V1dUD////Av///wH///8BAAAABQAA + AA83NzcaSDQwP4pratq9mpb/x6im/5ljAP+ZYwD/AAAAGwAAABJePgUK////Av///wL///8B////AQAA + AAAAAAAAdVRHJ4pvZtW3kor/mWMA/5ljAP/+66f/mWMA/5ljAP+ZYwD/AAAAAP///wH///8C////Af// + /wEAAAAAeFRNJIttZNKwioD/s4yB//7rp/+ZYwD/yaym/7eSiv/+66f/mWMA/wAAAAD///8C////Av// + /wH///8BeFRNJItmW9GpgnP/q4R1/6yFd/+uhnn/y7Kq/8qvp/+yi4D/s4yC/4tsYed/XFhC////Av// + /wL///8BfmlcIaSKfNvJsab/0Lyy/9C7sf/Mtav/mWMA/5ljAP+ZYwD/mWMA/5ljAP+ZYwD/h2Re5oJq + X0P///8C////AXtZTHLRvrf9zbes/824rf/Oua7/z7qv/5ljAP/rvpL/7MGV/+zBlf/rvpL/mWMA/6qC + cv+NbGKRioCAC////wEAAAAAoYZ9ltC+tf3KtKf/y7Wo/8y2qv+ZYwD/7MGV/+yhUv/soVL/67+S/5lj + AP+JZlunAAAAAP///wH///8B////AQAAAACfhnyWmWMA/5ljAP+ZYwD/mWMA//DNoP/xt2f/8LJf/+7H + lv+ZYwD/mWMA/5ljAP+ZYwD/////Af7+/gEAAAAAAAAAAJ+CepeZYwD/27qJ//bXqv/23K3/+M17//fO + f//23bP/9dev/ty9jv+ZYwD/69e5A////wH///8BAAAAAAAAAAD+/v4BoIZ3lpljAP/juGf//NmE//ze + jP/935D/+9qO/+W9dP+ZYwD/69e5A/7+/gL///8B////AQAAAAAAAAAA////AQAAAACghHaWmWMA/+7P + g//+7Kf//uun/+/QiP+ZYwD/5MaMAf///wH///8C////Af///wEAAAAAAAAAAP///wH///8BAAAAAJyD + c5WZYwD/8duo//Hbpv+ZYwD/////AQAAAAD///8C////Av///wH///8BAAAAAAAAAAD///8B////Af// + /wEAAAAAZjMzBZljAP+ZYwD/AAAAAAAAAAD///8B////Av///wI4GAAAIAAAAAAAAAAAAAAAMAQAACAE + AAAAAAAAAAAAAAAAAABAAgAAIAAAADAAAAAwAAAANAAAADIEAAAxGAAAKAAAACAAAABAAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAwAAAAcAAAALAAAADwAAABIAAAAUAAAAFQAAABUAAAAVAAAAEwAAABBMTEwOTT8oCgAA + AAUAAAAAmWMA/5ljAP8AAAAAAAAAAN++ggL///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAADAAAACQAAAA8AAAAVAAAAGwAAACAAAAAlAAAAKQAAAC0AAAAuHBQUPgAAAC4AAAArLCwsKC8v + LyQAAAAdmWMA/5ljAP/2yHX/mWMA/5ljAP+ZYwD/AAAAAP///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAABAAAABwAAAA4AAAAVAAAAHAAAACIAAAApAAAALwAAADYAAAA8AAAAQl9IRaZxWVXRAAAARQAA + AD8kJCQ6JiYmNAAAACz2yHX/mWMA/wAAABgAAAAR9sh1/5ljAP8AAAAA////Af///wEAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAYAAAANAAAAFAAAABoAAAAhAAAAKAAAAC4AAAA1AAAAOwAAAEFfRkKmhGxq95V8 + ff9yWVjhAAAARCIiIj8AAAA4GgsAMgAAACsAAAAkmWMA/5ljAP8AAAAQAAAACoJXCgX///8B////AQAA + AAAAAAAAAAAAAAAAAAAAAAABAAAACAAAAA4AAAAUAAAAGgAAACAAAAAmAAAAKwAAADAAAAA1YElDn4Nq + aPexkpH/wqGh/6GOjv91W1XgAAAANyYmJjQAAAAumWMA/5ljAP/+66f/mWMA/5ljAP+ZYwD/AAAABAAA + AAD///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAACwAAABAAAAAVAAAAGgAAAB8AAAAjAAAAJ2RL + RpiCZ2T2spGO/8OfnP/DoJ7/xael/6aXl/9yW1jeKysrKgAAACX+66f/mWMA/wAAABgAAAAT/uun/5lj + AP8AAAAC////Af///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACQAAAA4AAAASAAAAFgAA + ABlpT0iRgmli9bGPi/+/mpb/v5uX/8Ohnv/Tubf/2cjG/5yHhv9pU03ZAAAAGwAAABcAAAAUAAAAEAAA + AAsAAAAHAAAAAgAAAAD///8B////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA + AAgAAAALblNJioJnYvSxjYf/u5aP/7yXkf+8l5L/3svI/97Lyf/ezMn/v6Cc/5F2c/9sUUzWmWMA/5lj + AP+ZYwD/mWMA/5ljAP+ZYwD/AAAAAP///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAHBTTYSCZl/0sIuC/7eRif+4kor/uJOL/7mUjP/HqaP/3MjF/9zJxv+9mZP/t5SO/45y + b/+ZYwD/676S/+zBlf/swZX/676S/5ljAP8AAAAA////Af///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABwU0uEgmVd9K6Jfv+zjYL/tI2D/7WOhf+1j4b/tpCH/7eRiP/ZxcH/2sbC/7mT + jP+6lI3/tJCK/5ljAP/swZX/7KFS/+yhUv/rv5L+mWMA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAcFNLhINlWfSshXj/r4h8/7CJff+xin7/sYt//7KLgP+zjIL/vp2U/9jE + v//ZxsH/mWMA/5ljAP+ZYwD/mWMA//DNoP/xt2f/8LJf/+7Hlv+ZYwD/mWMA/5ljAP+ZYwD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBRSYSFY1nzqoJz/6uEdf+shHb/rYV3/66Gef+uh3r/r4h7/7CJ + fP/Xw77/2MS+/9jEv/+5lYr/mWMA/9u6if/216r/9tyt//jNe//3zn//9t2z//XXr/7cvY7/mWMA/+C/ + hAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABuUUeEh2FT87CLff/Ksab/qoJz/7+hlf+/oJT/qoJz/6+I + e/+shHb/rYV3/7WShv/IraT/18K8/7+hmP+win3/mWMA/+O4Z//82YT//N6M//3fkP/72o7/5b10/5lj + AP/gv4QC/v7+AQAAAAAAAAAAAAAAAAAAAAAAAAAAblFFhKaOgPa+oZT/yK+k/9G8s//RvbT/0r20/863 + rv+/opb/0buz/66HeP+pgXL/qoJz/7aUh//Vwbn/zbSs/62FeP+uh3n/mWMA/+7Pg//+7Kf//uun/+/Q + iP+ZYwD/5MaMAQAAAAD///8BAAAAAAAAAAAAAAAAVVUqBnBRR4SYe2r0yrOo/8+6r//PurD/z7qx/9C7 + sf/Qu7L/0Lyy/9G8s//RvLP/upuN/7aUh/+winz/w6ab/9O/t//Tv7f/t5eJ/6uCdP+rhHX/mWMA//Hb + qP/x26b/mWMA/4RnXf9rTkbRpIeHBf///wEAAAAAAAAAAAAAAABmPz8UrpqU8dnIwP/Nt6z/zbit/824 + rf/Oua7/zrmv/8+5r//PurD/z7qw/9C7sf/Qu7L/0Lux/62Id//Ls6n/xaqf/9K9tf/OuK7/q4Z2/6iA + b/+pgHH/mWMA/5ljAP+rg3T/p4By/4dpX/9vUk2a////AQAAAAAAAAAAAAAAAGYzMwVsTUV9zr+6+dnI + v//Mtqr/zLar/8y3q//Nt6z/zbis/824rf/OuK7/zrmu/865r//Puq//tZSF/6yHdv+ieWX/wKSX/9G8 + s//IsKX/qYFw/6Z9a/+mfmz/p39u/6h/b/+pg3P/cVRNygAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABsTUN9zr+4+djHvf/KtKf/y7Wo/8u1qf/Ltqr/zLaq/8y3q//Mt6z/zbes/824rf/OuK3/xKue/6B2 + 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 + AD/+AAB//wAA//+AAf//wAP//+AH///wD///+B////w////+f////3///////ygAAAAwAAAAYAAAAAEA + IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABAAA + AAYAAAAHAAAACAAAAAgAAAAJAAAACAAAAAgAAAAHAAAABgAAAAQAAAACAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAcAAAAKAAAADQAA + ABAAAAASAAAAFAAAABYAAAAYAAAAGQAAABk2NjYbTU1NG01NTRtQUFAZUVFQGD4+PhUAAAASAAAAD4he + NBrAewD/wHsA/8B7AP/AewD/sHpGDgAAAAAAAAAAAAAAAP38+wL///8B////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAA + ABMAAAAXAAAAGgAAAB4AAAAhAAAAJAAAACYAAAAoAAAAKgAAACoqKiosKioqKysrKyoAAAAoAAAAJQAA + ACMAAAAgAAAAHQAAABnAewD/4KRL/+CkS//AewD/AAAABwAAAAMAAAAAAAAAAAAAAAD///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAA + ABEAAAAVAAAAGQAAAB4AAAAiAAAAJgAAACoAAAAuAAAAMQAAADUAAAA3AAAAOgAAADtWPjmiIyMjPCQk + JDoAAAA3AAAANMB7AP/AewD/wHsA/8B7AP/AewD/4KRL/+CkS//AewD/wHsA/8B7AP/AewD/wHsA/wAA + AAD///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAA + AAoAAAAOAAAAEwAAABcAAAAcAAAAIAAAACUAAAApAAAALgAAADIAAAA3AAAAOwAAAD8AAABEAAAASGJF + QfaMcXDxWUJBqh8fH0gAAABDAAAAPsB7AP/gpEv/4KRL/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/+Ck + S//gpEv/wHsA/wAAAAT///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAFAAAACQAAAA4AAAASAAAAFwAAABsAAAAfAAAAJAAAACgAAAAtAAAAMQAAADYAAAA6AAAAPgAA + AEIAAABGYEQ/9ZJ4ef+HcHH/fGNg9FlCQKoAAABFAAAAQcB7AP/fo0v/36NL/8B7AP8AAAAsAAAAJwAA + ACMAAAAewHsA/9+jS//fo0v/wHsA/wAAAAiJiYkE////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAIAAAAGAAAACwAAAA8AAAATAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAA + ADQAAAA4AAAAOwAAAD5fRD/1kXZ2/5d+fv+3mJn/loaG/4p3c/ZZQD2mIiIiPsB7AP/AewD/wHsA/8B7 + AP8AAAArAAAAJwAAACMAAAAfwHsA/8B7AP/AewD/wHsA/wAAAApycnIGvLy8Av///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAACgAAAA8AAAATAAAAFwAAABsAAAAeAAAAIgAA + ACYAAAApAAAALQAAADAAAAAzAAAANWJHP/SOdHT/m399/8ShoP/Go6P/uZub/5aGhv+KcnH1WkI/oQAA + ADQAAAAyAAAALwAAACzAewD/wHsA/8B7AP/AewD/AAAAGQAAABYAAAARAAAADQAAAAlycnIGvLy8Av// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAACQAAAAwAAAAQAAAAFAAA + ABcAAAAbAAAAHgAAACEAAAAkAAAAJwAAACoAAAAsYkc/9I5ycP+dgH//w5+d/8Ognv/EoZ//xKGf/7yf + n/+ajY3/iHFt9F5EP50AAAArAAAAKQAAACbAegD/+dWJ//zdj//AegD/AAAAFgAAABMAAAAPAAAACwAA + AAcAAAAD////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABQAA + AAkAAAAMAAAADwAAABMAAAAWAAAAGQAAABsAAAAeAAAAIAAAACJgR0Lzi3Bt/6GCgP/AnJj/wZ2Z/8Gd + mv/Cn5z/wp+d/9W8uv/Pvr3/mY2M/8B7AP/AewD/wHsA/8B7AP/AegD/+teK//zfkP/AegD/wHsA/8B7 + AP/AewD/wHsA/wAAAAT///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAQAAAAQAAAAHAAAACgAAAA0AAAAQAAAAEgAAABUAAAAXAAAAGWBHQvOKbmr/o4N//76Z + lP++mpX/vpqW/7+blv/Fo6H/xaSh/9zHxv/gzcz/z7+9/8B6AP/51Yn//N2P/8B6AP+/egD/v3oA/796 + AP+/egD/wHoA//nVif/83Y//wHoA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAYAAAAJAAAACwAAAA0AAAAPY0VB8olt + aP+mhH//u5aQ/7uWkP+8l5H/vJiS/72Yk//ey8n/3svJ/97Myf/fzMr/2cPB/8B6AP/614r//N+Q/8B6 + AP8AAAAPAAAADQAAAAsAAAAIwHoA//rXiv/835D/wHoA/////wH///8B////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAABAAA + AAZjREHyiGxm/6eFfv+4k4v/uZSM/7mUjf+6lY7/upWP/7uWj//bx8T/3crH/93KyP/ey8j/0bm0/796 + AP+/egD/v3oA/796AP9qTUeLAAAABQAAAAMAAAABv3oA/796AP+/egD/v3oA/////wH///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAGNEQfKJa2T/qIV9/7aQh/+2kIj/t5GJ/7eSif+4kor/uJOL/7mTjP+6lo7/zLCr/9zJ + xv/dysb/zLCr/7yXkf+8l5H/r42H/4FoZP93XFbxbU1JhwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAY0RB8olqYv+phHv/s42C/7SNg/+0joT/tY6F/7WPhv+2kIf/tpCH/7eR + iP+3kor/x6mj/9vIxP/cyMT/yKul/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/8B7AP/AewD/wHsA/8B7 + AP/AewD/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjREHyiWph/6mEeP+xin7/sYp//7KLgP+yjIH/s4yB/7ON + gv+0jYP/tI6E/7WOhf+1kIb/xaag/9rHwv/ax8P/x6qk/8B7AP/two3/8riB//O6hP/zuoT/87qE//O6 + hP/zuoT/87qE//K4gf/two3/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBEQPKKamD/qYJ2/66Hev+vh3v/r4h7/7CI + fP+wiX3/sYl+/7GKf/+yi3//souA/7KMgf/AoJj/z7ex/9nGwf/ZxsH/ya2m/8B7AP/nsGv/651N/+uf + UP/rn1D/659Q/+ufUP/rn1D/659Q/+udTf/nsGv/wHsA/////wH///8B////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYERA8oxqX/+ogXP/rIR1/6yE + dv+thXf/rYV4/62Gef+uh3n/rod6/6+Ie/+viHz/sIl9/7CJfv/YxL7/2MS+/9jEv//Yxb//zbOr/8B7 + AP/nsGv/655O/+ygUv/soFL/7KBS/+ygUv/soFL/7KBS/+ueTv/nsGv/wHsA/////wH///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgREDyjWpd/6h/ + b/+pgXH/qYFy/6qCcv+qgnP/q4N0/6uDdf+shHb/rIV3/62Fd/+thnj/roZ5/66Hev/Pt6//z7ev/9fD + vP/Xw73/1L64/8B7AP/nsWz/651O/+ygUv/soFL/7KBS/+ygUv/soFL/7KBS/+ueTv/nsGv/wHsA//// + /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGNE + QvKPalz/pX1s/7aVhv/SvrX/tJKE/6uDdP+4l4r/07+3/7aUhv+qgXL/qoJz/7SQgv+rg3X/rIR1/6yE + dv+thnj/rYd5/861rv/Wwrz/18K8/8B7AP/osW3/7KBR/+ugUv/soFL/7KBS/+ygUv/roFH/66BR/+ud + Tv/nsGv/wHsA/////wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAY0RC8q+WjP+3l4j/t5aH/8ivpP/RvbT/0b20/9K9tP/SvbX/0r61/8ivpf+5mIv/vJ6R/9O/ + t/+zj4H/qoFy/6qCc/+rgnT/q4N0/8Chlf/Vwbr/1cG6/8B7AP/nsm//7aRY/+6mWf/tpFX/7aRU/+2j + VP/to1P/7KFT/+ufT//nsGv/wHsA/2tLR4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABgQ0DymHJi/8+6sP/PurH/0Lux/9C7sf/Qu7L/0Lyy/9G8s//RvLP/0byz/9G9 + tP/SvbT/0r21/9G8s/+pgnL/qH9u/6h/b//AewD/wHsA/8B7AP/AewD/wHsA/8B7AP/utnT/7q1f//Cx + ZP/wsmT/769c/++sWP/uqlb/7qhW/+2lUv/ssGv/wHsA/8B7AP/AewD/wHsA/8B7AP/AewD/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVFQvKif2//yLGl/865rv/Oua//z7qv/8+6sP/PurD/z7qw/9C7 + sf/Qu7H/0Luy/9C8sv/RvLL/0byz/9G8s//Ls6n/sY1+/8aroP+1k4X/wHsA/9ebSv/1xZX/8LFr//G1 + bv/wtWj/8rdo//S6a//0vW7/9L5v//S8bv/zuWb/8bJd/++tV//uq1n/761h/+6pYP/1v4z/2J1I+sB7 + AP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZkhC1NPBuf/Xxr3/zbes/824rf/NuK3/zrit/865 + rv/Oua7/zrmv/865r//Puq//z7qw/8+6sP/Pu7H/0Lux/9C7sv/Qu7L/0Lyy/9G8s/+0k4T/vqGU/8B7 + AP/boEj/8r17//K2Z//0vWv/9cFw//bFc//3x3X/98l4//fJev/3yXv/9sd9//XDd//zu3D/8bVn//K5 + dv/boUv/wHsA/2VOQ0T///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaU8+TZN8cfLs5OD/18W8/8y2 + q//Mt6v/zbes/823rP/NuKz/zbit/824rf/OuK7/zrmu/865r//Oua//z7qv/8+6sP/PurD/z7qx/865 + rv+pg3H/p4Bu/7STg//AewD/5LZu//jJgv/2xXP/98p4//nPe//50X7/+tOB//nTgv/50oT/+dCD//fO + hP/3yoT/98yQ/+nEiv/AewD/ZEZA8XBXTxr///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVL + PmKTe3Dy7OTg/9bFu//Ltqn/y7aq/8y2qv/Mtqv/zLer/8y3rP/Nt6z/zbis/824rf/NuK3/zriu/865 + rv/Oua7/zrmv/8+5r//FrKH/rYl3/7KRgf+heGT/wHsA/+jCfP/504X/+tN///zXhP/82ob//duJ//3c + i//824z/+9mM//rWjP/51ZP/7MuT/8B7AP9lSUDx/Pn0Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABlSz5ikntw8uzk4P/WxLr/yrWo/8u1qP/Ltaj/y7Wp/8u2qv/Mtqr/zLaq/8y3 + q//Mt6v/zbes/823rP/NuK3/zbit/864rf/Oua7/zrmu/8u0qf+heGT/oHZh/8B7AP/vz47//dyL//3f + jf/94pH//eKU//7jlf/94pX//eCV//zdlf/x1Jv/wHsA/2VKQfEAAAAA////Af///wH///8BAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZUg+YpJ6cPLs5N//1sS6/8q0pv/KtKf/yrSn/8q0 + p//Ltaj/y7Wo/8u1qf/Ltqr/zLaq/8y2qv/Mtqv/zLer/8y3rP/Nt6z/zLer/6N8Z/+edF7/pX5r/8y2 + qv/AewD/+uSp///nmv//6J3//+qh///pof//6KD//+eh//vns//AewD/aEtA8e/evwH///8B////Af// + /wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVIPmKSe3Dy7OTe/9XE + uf/Js6X/ybOl/8mzpv/KtKb/yrSm/8q0p//KtKf/yrWo/8u1qP/Ltan/y7Wp/8u2qv/Mtqr/zLar/6eC + bv+ccVv/o3tm/8iwpP/EqZz/wHsA//3stv/+77D///G2///wtf/+7q///e24/8B7AP9oSkDxAAAAAP// + /wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABlSD5ikXtv8uvj3v/Vw7n/yLKj/8iypP/IsqT/ybOl/8mzpf/Js6b/ybOm/8q0pv/KtKf/yrSn/8q1 + p//Ltaj/y7Wo/76jlP+zlIL/m29Z/6B3Yf+cclr/nW5W/8B7AP//9tL///TN///0yv//9s//wHsA/3BO + P/Lu27oB////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAZUg+YpF6bvLr497/1cO4/8exov/HsaP/yLGj/8iyo//IsqT/yLKk/8my + pP/Js6X/ybOl/8mzpv/KtKb/yrSn/8q0p//Ks6b/mW1V/5luVv+ablf/mW5V/55tT//AewD///rk///5 + 4v/AewD/e1I79AAAAAD+/fwB////Af///wH///8B////Af///wH///8BAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVIPmKRem7y6+Pd/9TDt//GsKH/x7Ch/8ew + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAABiRjlij3Zr8ung2v/SwLP/vaaV/2RFP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYkY5Yo1xafK8o5D/ZEU/8QAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJGOWJkRjvOAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABfPz8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///////8AAP//gAH//wAA//gAAAODAAD/wAAAAcMAAP8AAAAAQwAA/AAAAAADAAD8AAAAAAMAAPgA + AAAAAwAA+AAAAAADAAD4AAAAAAMAAPwAAAAAAwAA/gAAAAADAAD/gAAAAAMAAP/wAAAAAwAA//wAAB+D + AAD/+AAAAAMAAP/wAAAAAwAA/+AAAAADAAD/wAAAAAMAAP+AAAAAAwAA/wAAAAADAAD+AAAAAD8AAPwA + AAAAAwAA+AAAAAAHAADwAAAAAAMAAPAAAAAAAwAA+AAAAAADAAD8AAAAACMAAP4AAAAAAwAA/wAAAACD + AAD/gAAAAAMAAP/AAAACAwAA/+AAAAQDAAD/8AAACAMAAP/4AAAf/wAA//wAAD//AAD//gAAf/8AAP// + AAD//wAA//+AAf//AAD//8AD//8AAP//4Af//wAA///wD///AAD///gf//8AAP///D///wAA///+f/// + AAD///9///8AAP///////wAA////////AAA= + + + \ No newline at end of file diff --git a/V3/GFX.cs b/V3/GFX.cs new file mode 100644 index 0000000..2c931c7 --- /dev/null +++ b/V3/GFX.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Launcheroid +{ + class GFX + { + } +} diff --git a/V3/Glass.cs b/V3/Glass.cs new file mode 100644 index 0000000..bf287c3 --- /dev/null +++ b/V3/Glass.cs @@ -0,0 +1,540 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using System.ComponentModel; +using System.Drawing; +using System.ComponentModel.Design.Serialization; +using System.Globalization; +using System.Collections; +using System.Drawing.Drawing2D; + +namespace XWolf.Aero +{ + #region XGlassForm + public class XGlassForm : Form + { + private bool composite; + private GlassMargins glassMargins = new GlassMargins(50, 0, 0, 0); + private Image glassImage = null; + private Point glassImageLocation = new Point(); + private bool glassDrag = true; + + public XGlassForm() + { + DoubleBuffered = true; + composite = Glass.Composite; + this.Shown += new EventHandler(XGlassForm_Shown); + this.Paint += new PaintEventHandler(XGlassForm_Paint); + this.Resize += new EventHandler(XGlassForm_Resize); + this.MouseDown += new MouseEventHandler(XGlassForm_MouseDown); + } + + void XGlassForm_Resize(object sender, EventArgs e) + { + Invalidate(); + } + + //protected override void WndProc(ref Message msg) + //{ + // int[] except={3,6,8,13,14,20,28,32,36,70,71,132,134,160,161,174,274,512,533,534,561,562,641,642,674,675}; + // //mensaje 20 + + // //switch (msg.Msg) + // //{ + // // case WM_DWMCOLORIZATIONCOLORCHANGED: + // // // The color format of currColor is 0xAARRGGBB. + // // uint currColor = (uint)msg.WParam.ToInt32(); + // // bool opacityblend = (msg.LParam.ToInt32() != 0); + // // ... + // // break; + // //} + // base.WndProc(ref msg); + // foreach (int msge in except) + // if (msg.Msg == msge) + // return; + // Console.WriteLine("MSG: " + msg.Msg); + + //} + + void XGlassForm_Shown(object sender, EventArgs e) + { + UpdateGlass(); + } + void XGlassForm_Paint(object sender, PaintEventArgs e) + { + Size client = ClientSize; + if (DesignMode) + { + Pen p = new Pen(Color.Gray); + Rectangle glassclient = new Rectangle(glassMargins.Left - 1, glassMargins.Top - 1, client.Width - (glassMargins.Left + glassMargins.Right) + 1, client.Height - (glassMargins.Top + glassMargins.Bottom) + 1); + e.Graphics.DrawRectangle(p, glassclient); + } + else + if (glassMargins.IsFull) + e.Graphics.Clear(Color.Transparent); + else + { + + Rectangle glassclient = new Rectangle(glassMargins.Left, glassMargins.Top, client.Width - (glassMargins.Left + glassMargins.Right), client.Height - (glassMargins.Top + glassMargins.Bottom)); + e.Graphics.Clear(composite ? Color.Transparent : SystemColors.ButtonShadow); + e.Graphics.FillRectangle(new SolidBrush(BackColor), glassclient); + } + if (glassImage != null) + { + Rectangle r = new Rectangle(glassImageLocation, glassImage.Size); + e.Graphics.DrawImage(glassImage, r); + } + //if (glassMargins.IsFull) + // e.Graphics.Clear(Color.Transparent); + //else + //{ + // Brush b = new SolidBrush(Color.Transparent); + // Size client=ClientSize; + // e.Graphics.FillRectangle(b, 0, 0, glassMargins.Left, client.Width); + //} + } + + void XGlassForm_MouseDown(object sender, MouseEventArgs e) + { + if (!glassDrag) + return; + Size c = ClientSize; + if (e.X > glassMargins.Left && e.X < c.Width - glassMargins.Right && + e.Y > glassMargins.Top && e.Y < c.Height - glassMargins.Bottom) + return; + // Releasing the mouse capture to allow the form to receive the order + Aero.ReleaseCapture(); + // Ordering the form + // Simulating left mouse button clicking on the title bar + Aero.SendMessage(this.Handle, // Form handle + Aero.WM_NCLBUTTONDOWN, // Simulating the click + Aero.HTCAPTION, // Attaching it to the title bar + 0); // No further options required + } + + + private void UpdateGlass() + { + if (composite) + { + Glass.GlassForm(this, glassMargins); + Invalidate(); + } + } + + protected void DrawText(Graphics g, string text, Font font, Brush brush, PointF p) + { + GraphicsPath gp = new GraphicsPath(); + gp.AddString(text, font.FontFamily, (int)font.Style, font.Size, p, StringFormat.GenericDefault); + g.FillPath(brush, gp); + gp.Dispose(); + } + + protected void DrawText(Graphics g, string text, FontFamily fontfam, int fontstyle, float fontsize, Brush brush, PointF p) + { + GraphicsPath gp = new GraphicsPath(); + gp.AddString(text, fontfam, fontstyle, fontsize, p, StringFormat.GenericDefault); + g.FillPath(brush, gp); + gp.Dispose(); + } + + [Description("Margenes del efecto cristal"), Category("Aero Glass"), RefreshProperties(RefreshProperties.All)] + public GlassMargins GlassMargins + { + get { return glassMargins; } + set { glassMargins = value; UpdateGlass(); } + } + + [Description("Cristal completo"), Category("Aero Glass"), RefreshProperties(RefreshProperties.All)] + public bool FullGlass + { + get { return glassMargins.IsFull; } + set { if (value) glassMargins = GlassMargins.GetFullGlassMargins(); UpdateGlass(); } + } + + [Description("Imagen en el cristal"), Category("Aero Glass")] + public Image GlassImage + { + get { return glassImage; } + set { glassImage = value; Invalidate(); } + } + + [Description("Posicion de Imagen en el cristal"), Category("Aero Glass")] + public Point GlassImageLocation + { + get { return glassImageLocation; } + set { glassImageLocation = value; Invalidate(); } + } + + [Description("Usar la extensión del glass como un tirador"), Category("Aero Glass")] + public bool GlassDrag + { + get { return glassDrag; } + set { glassDrag = value; } + } + } + #endregion + + public class Aero + { + internal static bool hasAero; + + #region API + private class DWNAPI + { + [DllImport("dwmapi.dll")] + public extern static int DwmExtendFrameIntoClientArea(IntPtr hwnd, ref GlassMargins margin); + [DllImport("dwmapi.dll")] + public extern static int DwmIsCompositionEnabled(ref int en); + } + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.I4)] + public static extern int SendMessage(IntPtr hWnd, [param: MarshalAs(UnmanagedType.U4)]uint Msg, [param: MarshalAs(UnmanagedType.U4)]uint wParam, [param: MarshalAs(UnmanagedType.I4)]int lParam); + + [DllImport("user32.dll")] + [return: MarshalAs(UnmanagedType.Bool)] + public static extern bool ReleaseCapture(); + + public const uint WM_NCLBUTTONDOWN = 0xA1; // 161 + public const uint HTCAPTION = 2; + #endregion + + + #region APIex + internal static void DwmExtendFrameIntoClientArea(IntPtr hwnd, GlassMargins margin) + { + try + { + DWNAPI.DwmExtendFrameIntoClientArea(hwnd, ref margin); + } + catch { }; + } + internal static bool DwmIsCompositionEnabled() + { + try + { + int result = 0; + DWNAPI.DwmIsCompositionEnabled(ref result); + return result > 0; + } + catch { return false; }; + } + #endregion + + static Aero() + { + hasAero = false; + try + { + DwmIsCompositionEnabled(); + hasAero = true; + } + catch { }; + } + + public static bool HasAero { get { return hasAero; } } + } + + #region GalssMarginsConverter + public class GalssMarginsConverter : TypeConverter + { + private static CultureInfo FixCulture(CultureInfo c) + { + if (c == null) + return CultureInfo.CurrentCulture; + return c; + } + private static char GetListSeparator(CultureInfo c) + { + c = FixCulture(c); + return c.TextInfo.ListSeparator[0]; + } + + #region ConvertFrom + + public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + { + return sourceType == typeof(string) || base.CanConvertFrom(context, sourceType); + } + + public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) + { + string str = value as string; + if (str == null) + return base.ConvertFrom(context, culture, value); + str = str.Trim(); + if (str.Length == 0) + return null; + culture = FixCulture(culture); + char ch = culture.TextInfo.ListSeparator[0]; + string[] strArray = str.Split(new char[] { ch }); + int[] numArray = new int[strArray.Length]; + if (numArray.Length != 4) + throw new ArgumentException("Solo se admiten 4 valores"); + TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); + for (int i = 0; i < numArray.Length; i++) + numArray[i] = (int)converter.ConvertFromString(context, culture, strArray[i]); + return new GlassMargins(numArray[0], numArray[1], numArray[2], numArray[3]); + } + + #endregion + + #region ConvertTo + + public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) + { + return ((destinationType == typeof(InstanceDescriptor)) || base.CanConvertTo(context, destinationType)); + } + + public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) + { + if (destinationType == null) + throw new ArgumentNullException("destinationType"); + if (value is GlassMargins) + { + if (destinationType == typeof(string)) + { + GlassMargins gmargins = (GlassMargins)value; + if (culture == null) + culture = CultureInfo.CurrentCulture; + string separator = culture.TextInfo.ListSeparator + " "; + TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); + string[] strArray ={ + converter.ConvertToString(context, culture, gmargins.Left), + converter.ConvertToString(context, culture, gmargins.Top), + converter.ConvertToString(context, culture, gmargins.Right), + converter.ConvertToString(context, culture, gmargins.Bottom) + }; + return string.Join(separator, strArray); + } + //if (destinationType == typeof(InstanceDescriptor)) + //{ + // GlassMargins gmargins = (GlassMargins)value; + + // return new InstanceDescriptor(typeof(GlassMargins).GetConstructor(new Type[] { typeof(int), typeof(int), typeof(int), typeof(int) }), new object[] { gmargins.Left, gmargins.Top, gmargins.Right, gmargins.Bottom }); + //} + } + return base.ConvertTo(context, culture, value, destinationType); + } + + #endregion + + #region Instancia + public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues) + { + if (context == null) + { + throw new ArgumentNullException("context"); + } + if (propertyValues == null) + { + throw new ArgumentNullException("propertyValues"); + } + GlassMargins gmargins = (GlassMargins)context.PropertyDescriptor.GetValue(context.Instance); + return new GlassMargins((int)propertyValues["Left"], (int)propertyValues["Top"], (int)propertyValues["Right"], (int)propertyValues["Bottom"]); + } + + public override bool GetCreateInstanceSupported(ITypeDescriptorContext context) + { + return true; + } + #endregion + + #region Properties + public override bool GetPropertiesSupported(ITypeDescriptorContext context) + { + return true; + } + + public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) + { + return TypeDescriptor.GetProperties(value, attributes).Sort(new string[] { "Left", "Top", "Right", "Bottom" }); + } + #endregion + } + #endregion + + //#region GalssMarginsConverter + //public class GalssMarginsConverter : TypeConverter + //{ + // #region ConvertFrom + + // public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) + // { + // return ((sourceType == typeof(string)) || base.CanConvertFrom(context, sourceType)); + // } + + // public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) + // { + // string str = value as string; + // if (str == null) + // return base.ConvertFrom(context, culture, value); + // str = str.Trim(); + // if (str.Length == 0) + // return null; + // if (culture == null) + // culture = CultureInfo.CurrentCulture; + // char ch = culture.TextInfo.ListSeparator[0]; + // string[] strArray = str.Split(new char[] { ch }); + // int[] numArray = new int[strArray.Length]; + // TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); + // for (int i = 0; i < numArray.Length; i++) + // numArray[i] = (int)converter.ConvertFromString(context, culture, strArray[i]); + // if (numArray.Length != 4) + // throw new ArgumentException(); + // return new GlassMargins(numArray[0], numArray[1], numArray[2], numArray[3]); + // } + + // #endregion + + // #region ConvertTo + + // public override bool CanConvertTo(ITypeDescriptorContext context, Type destinationType) + // { + // //return ((destinationType == typeof(InstanceDescriptor)) || base.CanConvertTo(context, destinationType)); + // return ((destinationType == typeof(String)) || base.CanConvertTo(context, destinationType)); + // } + + // public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) + // { + // if (destinationType == null) + // throw new ArgumentNullException("destinationType"); + // if (value is GlassMargins) + // { + // if (destinationType == typeof(string)) + // { + // GlassMargins gmargins = (GlassMargins)value; + // if (culture == null) + // culture = CultureInfo.CurrentCulture; + // string separator = culture.TextInfo.ListSeparator + " "; + // TypeConverter converter = TypeDescriptor.GetConverter(typeof(int)); + // string[] strArray ={ + // converter.ConvertToString(context, culture, gmargins.Left), + // converter.ConvertToString(context, culture, gmargins.Top), + // converter.ConvertToString(context, culture, gmargins.Right), + // converter.ConvertToString(context, culture, gmargins.Bottom) + // }; + // return string.Join(separator, strArray); + // } + // //if (destinationType == typeof(InstanceDescriptor)) + // //{ + // // GlassMargins gmargins = (GlassMargins)value; + + // // return new InstanceDescriptor(typeof(GlassMargins).GetConstructor(new Type[] { typeof(int), typeof(int), typeof(int), typeof(int) }), new object[] { gmargins.Left, gmargins.Top, gmargins.Right, gmargins.Bottom }); + // //} + // } + // return base.ConvertTo(context, culture, value, destinationType); + // } + + // #endregion + + // //public override object CreateInstance(ITypeDescriptorContext context, IDictionary propertyValues) + // //{ + // // if (context == null) + // // { + // // throw new ArgumentNullException("context"); + // // } + // // if (propertyValues == null) + // // { + // // throw new ArgumentNullException("propertyValues"); + // // } + // // GlassMargins gmargins = (GlassMargins)context.PropertyDescriptor.GetValue(context.Instance); + // // return new GlassMargins((int)propertyValues["Left"], (int)propertyValues["Top"], (int)propertyValues["Right"], (int)propertyValues["Bottom"]); + // //} + + // //public override bool GetCreateInstanceSupported(ITypeDescriptorContext context) + // //{ + // // return true; + // //} + + // #region Properties + // public override bool GetPropertiesSupported(ITypeDescriptorContext context) + // { + // return true; + // } + + // public override PropertyDescriptorCollection GetProperties(ITypeDescriptorContext context, object value, Attribute[] attributes) + // { + // return TypeDescriptor.GetProperties(value, attributes).Sort(new string[] { "Left", "Top", "Right", "Bottom" }); + // } + // #endregion + //} + //#endregion + + #region GlassMargins + [Serializable, StructLayout(LayoutKind.Sequential), TypeConverter(typeof(GalssMarginsConverter))] + public struct GlassMargins + { + private int left; + private int right; + private int top; + private int bottom; + + public static GlassMargins GetFullGlassMargins() + { + return new GlassMargins(-1, -1, -1, -1); + } + + public GlassMargins(int left, int top, int right, int bottom) + { + this.left = left; + this.right = right; + this.top = top; + this.bottom = bottom; + } + + public int Top { get { return top; } set { top = value; } } + public int Left { get { return left; } set { left = value; } } + public int Right { get { return right; } set { right = value; } } + public int Bottom { get { return bottom; } set { bottom = value; } } + + [Browsable(false)] + public bool IsFull { get { return top == -1 && left == -1 && right == -1 & bottom == -1; } } + + [Browsable(false)] + public bool IsNone { get { return top == 0 && left == 0 && right == 0 & bottom == 0; } } + + public override string ToString() + { + if (IsFull) + return "Full Glass"; + if (IsNone) + return "No Glass"; + return left + "; " + top + "; " + right + "; " + bottom; + } + }; + #endregion + + internal class Glass + { + private static bool CheckComposite() + { + if (!Aero.hasAero) + return false; + return Aero.DwmIsCompositionEnabled(); + } + + public static void GlassForm(Form f) + { + GlassForm(f, GlassMargins.GetFullGlassMargins()); + } + + public static void GlassForm(Form f, int leftmargin, int bottommargin, int rightmargin, int topmargin) + { + GlassForm(f, new GlassMargins(leftmargin, bottommargin, rightmargin, topmargin)); + } + + public static void GlassForm(Form f, GlassMargins margins) + { + if (!Composite) + return; + Aero.DwmExtendFrameIntoClientArea(f.Handle, margins); + } + + public static bool Composite { get { return CheckComposite(); } } + } + +} diff --git a/V3/LRD3.cs b/V3/LRD3.cs new file mode 100644 index 0000000..cb4300f --- /dev/null +++ b/V3/LRD3.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Text; + +namespace Launcheroid +{ + public class LRD3 + { + public class Item + { + public string Name { get; set; } + public string Path { get; set; } + public string Arguments { get; set; } + public string InitialFolder { get; set; } + public Image Image { get; set; } + } + + public LRD3() + { + Reset(); + } + + public void Reset() + { + NavigationRoot = null; + IconSize = 48; + IconSpacing = 5; + IconMargin = 7; + Items.Clear(); + } + + #region Load/Save + /// + /// Load all information from file + /// + /// + public void Load(string path) + { + if (!File.Exists(path)) + return; + Reset(); + + } + + /// + /// Save the current information to a file + /// + /// + public void Save(string path) + { + using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write)) + using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)) + { + sw.WriteLine("// Launcheroid3 file (Text mode) Autogenerated by Lancheroid on " + DateTime.Now.ToString()); + sw.WriteLine("// Launcheroid3 by XWolfOverride in 2019"); + sw.WriteLine(); + foreach (Item i in Items) + { + sw.WriteLine("[Item]"); + sw.Write("name:"); sw.WriteLine(i.Name); + sw.Write("path:"); sw.WriteLine(i.Path); + sw.Write("idir:"); sw.WriteLine(i.InitialFolder); + sw.Write("args:"); sw.WriteLine(i.Arguments); + sw.Write("icon:"); sw.WriteLine(Image64(i.Image)); + sw.WriteLine(""); + } + sw.WriteLine("[Settings]"); + sw.Write("root:"); sw.WriteLine(NavigationRoot); + sw.Write("size:"); sw.WriteLine(IconSize); + sw.Write("spac:"); sw.WriteLine(IconSpacing); + sw.Write("marg:"); sw.WriteLine(IconMargin); + } + } + + private string Image64(Image i) + { + if (i == null) + return ""; + MemoryStream ms = new MemoryStream(); + i.Save(ms, ImageFormat.Png); + ms.Close(); + byte[] data = ms.GetBuffer(); + return Convert.ToBase64String(data); + } + #endregion + + /// + /// Navigation root for navigation panel (if not null)
+ /// use '/' for root + ///
+ public string NavigationRoot { get; set; } + + /// + /// Size (in pixels) of icons in screen + /// + public int IconSize { get; set; } + + /// + /// Size (in pixels) of spacing between icons + /// + public int IconSpacing { get; set; } + + /// + /// Size (in pixels) of between icons and window frame + /// + public int IconMargin { get; set; } + + /// + /// List of items in Launcher + /// + public List Items { get; } = new List(); + } +} diff --git a/V3/Launcheroid.csproj b/V3/Launcheroid.csproj new file mode 100644 index 0000000..54234c0 --- /dev/null +++ b/V3/Launcheroid.csproj @@ -0,0 +1,115 @@ + + + + + Debug + AnyCPU + {042236E2-8C4A-4D85-9968-89AFC2D2271D} + WinExe + Launcheroid + Launcheroid + v4.8 + 512 + true + true + + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + AppIconLN.ico + + + + + + + + + + + + + + + + + Form + + + FImageLoad.cs + + + Form + + + FItem.cs + + + Form + + + Form1.cs + + + + Form + + + + + + FImageLoad.cs + + + FItem.cs + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + True + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + + + \ No newline at end of file diff --git a/V3/Program.cs b/V3/Program.cs new file mode 100644 index 0000000..6966ab2 --- /dev/null +++ b/V3/Program.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Launcheroid +{ + static class Program + { + private const string DEFAULTFILENAME = "Links.lrd"; + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + + public static string ArgumentFile + { + get + { + string[] args = Environment.GetCommandLineArgs(); + if (args.Length > 1) + return args[1]; + return null; + } + } + + public static string DefaultFile + { + get + { + string path = System.Reflection.Assembly.GetExecutingAssembly().Location; + return Path.Combine(Path.GetDirectoryName(path), DEFAULTFILENAME); + } + } + } +} diff --git a/V3/Properties/AssemblyInfo.cs b/V3/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f36ec22 --- /dev/null +++ b/V3/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Launcheroid")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Launcheroid")] +[assembly: AssemblyCopyright("Copyright © 2019")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("042236e2-8c4a-4d85-9968-89afc2d2271d")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/V3/Properties/Resources.Designer.cs b/V3/Properties/Resources.Designer.cs new file mode 100644 index 0000000..f7a33d0 --- /dev/null +++ b/V3/Properties/Resources.Designer.cs @@ -0,0 +1,73 @@ +//------------------------------------------------------------------------------ +// +// Este código fue generado por una herramienta. +// Versión de runtime:4.0.30319.42000 +// +// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si +// se vuelve a generar el código. +// +//------------------------------------------------------------------------------ + +namespace Launcheroid.Properties { + using System; + + + /// + /// Clase de recurso fuertemente tipado, para buscar cadenas traducidas, etc. + /// + // StronglyTypedResourceBuilder generó automáticamente esta clase + // a través de una herramienta como ResGen o Visual Studio. + // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen + // con la opción /str o recompile su proyecto de VS. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Launcheroid.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las + /// búsquedas de recursos mediante esta clase de recurso fuertemente tipado. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Busca un recurso adaptado de tipo System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap imgbg { + get { + object obj = ResourceManager.GetObject("imgbg", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/V3/Properties/Resources.resx b/V3/Properties/Resources.resx new file mode 100644 index 0000000..7ece317 --- /dev/null +++ b/V3/Properties/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\res\imgbg.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/V3/Properties/Settings.Designer.cs b/V3/Properties/Settings.Designer.cs new file mode 100644 index 0000000..385fa47 --- /dev/null +++ b/V3/Properties/Settings.Designer.cs @@ -0,0 +1,26 @@ +//------------------------------------------------------------------------------ +// +// Este código fue generado por una herramienta. +// Versión de runtime:4.0.30319.42000 +// +// Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si +// se vuelve a generar el código. +// +//------------------------------------------------------------------------------ + +namespace Launcheroid.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.8.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + } +} diff --git a/V3/Properties/Settings.settings b/V3/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/V3/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/V3/res/AppIcon.ico b/V3/res/AppIcon.ico new file mode 100644 index 0000000..1fcba38 --- /dev/null +++ b/V3/res/AppIcon.ico Binary files differ diff --git a/V3/res/AppIconLN.ico b/V3/res/AppIconLN.ico new file mode 100644 index 0000000..3b09534 --- /dev/null +++ b/V3/res/AppIconLN.ico Binary files differ diff --git a/V3/res/BlueLauncher.ico b/V3/res/BlueLauncher.ico new file mode 100644 index 0000000..ce77a12 --- /dev/null +++ b/V3/res/BlueLauncher.ico Binary files differ diff --git a/V3/res/Gnome App Green.ico b/V3/res/Gnome App Green.ico new file mode 100644 index 0000000..340605b --- /dev/null +++ b/V3/res/Gnome App Green.ico Binary files differ diff --git a/V3/res/WhiteLauncher.ico b/V3/res/WhiteLauncher.ico new file mode 100644 index 0000000..77326a3 --- /dev/null +++ b/V3/res/WhiteLauncher.ico Binary files differ diff --git a/V3/res/imgbg.png b/V3/res/imgbg.png new file mode 100644 index 0000000..4a250e0 --- /dev/null +++ b/V3/res/imgbg.png Binary files differ