From 2e111a3bcebe14e7c4270ac78fea8ff180cdefd7 Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 17 May 2020 03:24:46 +0100 Subject: [PATCH] Changed: tile list group with coord --- LinearAppLauncher.csproj | 12 +- .../ThemedForms/TDialogForm.Designer.cs | 31 +-- RyzStudio/Windows/ThemedForms/TDialogForm.cs | 169 +++++---------- .../Windows/ThemedForms/TDialogForm.resx | 3 - RyzStudio/Windows/ThemedForms/TListBox.cs | 6 - Windows/Forms/AForm.cs | 80 ++++--- Windows/Forms/Tile/AddListTileForm.cs | 200 ++++++++++++++---- Windows/Forms/Tile/AddTileForm.cs | 8 +- Windows/Forms/Tile/EditGroupForm.cs | 6 +- Windows/Forms/Tile/EditListTileForm.cs | 71 ++++++- Windows/Forms/Tile/EditTileForm.cs | 6 +- Windows/Forms/Tile/TTilePanelLayout.cs | 7 +- 12 files changed, 350 insertions(+), 249 deletions(-) diff --git a/LinearAppLauncher.csproj b/LinearAppLauncher.csproj index f001814..593b18e 100644 --- a/LinearAppLauncher.csproj +++ b/LinearAppLauncher.csproj @@ -134,15 +134,15 @@ TUserControl.cs - - Form - Form Form + + Form + Form @@ -196,15 +196,15 @@ TButtonTextBox.cs - - AddListTileForm.cs - AddTileForm.cs EditGroupForm.cs + + AddListTileForm.cs + EditListTileForm.cs diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs b/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs index 72f906b..e4d8f2a 100644 --- a/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs +++ b/RyzStudio/Windows/ThemedForms/TDialogForm.Designer.cs @@ -28,31 +28,12 @@ /// private void InitializeComponent() { - this.lblDescription = new System.Windows.Forms.Label(); this.panel1 = new System.Windows.Forms.Panel(); this.imgbxClose = new RyzStudio.Windows.Forms.TImageBox(); this.area1 = new System.Windows.Forms.Panel(); ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); this.SuspendLayout(); // - // lblDescription - // - this.lblDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblDescription.BackColor = System.Drawing.Color.Transparent; - this.lblDescription.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblDescription.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(241)))), ((int)(((byte)(241))))); - this.lblDescription.Location = new System.Drawing.Point(1, 1); - this.lblDescription.Name = "lblDescription"; - this.lblDescription.Padding = new System.Windows.Forms.Padding(10, 0, 0, 0); - this.lblDescription.Size = new System.Drawing.Size(301, 30); - this.lblDescription.TabIndex = 148; - this.lblDescription.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.lblDescription.MouseClick += new System.Windows.Forms.MouseEventHandler(this.label1_MouseClick); - this.lblDescription.MouseDown += new System.Windows.Forms.MouseEventHandler(this.label1_MouseDown); - this.lblDescription.MouseMove += new System.Windows.Forms.MouseEventHandler(this.label1_MouseMove); - this.lblDescription.MouseUp += new System.Windows.Forms.MouseEventHandler(this.label1_MouseUp); - // // panel1 // this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); @@ -62,9 +43,6 @@ this.panel1.Name = "panel1"; this.panel1.Size = new System.Drawing.Size(5, 5); this.panel1.TabIndex = 150; - this.panel1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseDown); - this.panel1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseMove); - this.panel1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel1_MouseUp); // // imgbxClose // @@ -93,22 +71,18 @@ this.area1.Name = "area1"; this.area1.Size = new System.Drawing.Size(334, 5); this.area1.TabIndex = 151; - this.area1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseDown); - this.area1.MouseMove += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseMove); - this.area1.MouseUp += new System.Windows.Forms.MouseEventHandler(this.panel2_MouseUp); // - // DialogForm + // TDialogForm // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(248)))), ((int)(((byte)(249)))), ((int)(((byte)(250))))); this.ClientSize = new System.Drawing.Size(340, 600); this.Controls.Add(this.area1); this.Controls.Add(this.panel1); - this.Controls.Add(this.lblDescription); this.Controls.Add(this.imgbxClose); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; this.MinimumSize = new System.Drawing.Size(40, 0); - this.Name = "DialogForm"; + this.Name = "TDialogForm"; ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); this.ResumeLayout(false); @@ -116,7 +90,6 @@ #endregion protected internal Forms.TImageBox imgbxClose; - protected internal System.Windows.Forms.Label lblDescription; protected internal System.Windows.Forms.Panel panel1; protected internal System.Windows.Forms.Panel area1; } diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.cs b/RyzStudio/Windows/ThemedForms/TDialogForm.cs index ada839d..cca1c31 100644 --- a/RyzStudio/Windows/ThemedForms/TDialogForm.cs +++ b/RyzStudio/Windows/ThemedForms/TDialogForm.cs @@ -9,28 +9,24 @@ public partial class TDialogForm : System.Windows.Forms.Form { + protected readonly Color borderColour = Color.FromArgb(232, 231, 236); + protected readonly int borderWidth = 1; + protected readonly Color titleBarColour = Color.FromArgb(152, 175, 206); + protected readonly Color titleBarForeColour = Color.White; + protected readonly Font titleBarFont = new Font("Segoe UI", 8.25F, FontStyle.Bold, GraphicsUnit.Point, 0); + protected readonly int titleBarHeight = 32; + + private bool isDragging = false; + private Point startPosition = new Point(); + protected bool isBusy = false; - protected Color topFillColour = Color.FromArgb(15, 15, 15); - protected int topFillHeight = 32; - protected int borderWidth = 1; - - private bool windowDragging = false; - private Point windowOffset = new Point(); - private Point windowSize = new Point(); - public TDialogForm() : base() { this.InitializeComponent(); - this.BackColor = Color.FromArgb(246, 246, 246); - this.Padding = new Padding(1); - - this.topFillColour = Color.FromArgb(51, 51, 51); - this.topFillHeight = 32; - - this.BackColor = Color.FromArgb(248, 249, 250); this.FormBorderStyle = FormBorderStyle.None; + this.ShowInTaskbar = false; imgbxClose.Click += pictureBox3_Click; } @@ -45,22 +41,53 @@ } } + protected override void OnMouseDown(MouseEventArgs e) + { + base.OnMouseDown(e); + + if (e.Button == MouseButtons.Left) + { + isDragging = true; + startPosition = e.Location; + } + } + + protected override void OnMouseMove(MouseEventArgs e) + { + base.OnMouseMove(e); + + if (isDragging) + { + int x = (this.Location.X + (e.Location.X - startPosition.X)); + int y = (this.Location.Y + (e.Location.Y - startPosition.Y)); + + this.Location = new Point(x, y); + } + } + + protected override void OnMouseUp(MouseEventArgs e) + { + base.OnMouseUp(e); + + isDragging = false; + } + protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; + Rectangle area = new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - borderWidth), (this.DisplayRectangle.Height - borderWidth)); - Rectangle areaTop = new Rectangle(this.DisplayRectangle.Left, this.Padding.Top, this.DisplayRectangle.Width, topFillHeight); - Rectangle areaBorder = new Rectangle(this.ClientRectangle.X, this.ClientRectangle.Y, this.ClientRectangle.Width - borderWidth, this.ClientRectangle.Height - borderWidth); + // border + g.DrawRectangle(new Pen(borderColour, borderWidth), area); - // draw header - if (topFillHeight > 0) - { - g.FillRectangle(new SolidBrush(topFillColour), areaTop); - } + area.Inflate((-1 * borderWidth), (-1 * borderWidth)); + + g.FillRectangle(new SolidBrush(titleBarColour), area.X, area.Y, (area.Width + area.X), titleBarHeight); + + TextRenderer.DrawText(g, this.Title, titleBarFont, new Point(12, 11), titleBarForeColour); - g.DrawRectangle(new Pen(Color.Black, borderWidth), areaBorder); } protected override void OnResize(EventArgs e) @@ -71,7 +98,7 @@ } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] - public new Color BackColor { get => base.BackColor; set => base.BackColor = value; } + public override Color BackColor { get => base.BackColor; set => base.BackColor = Color.FromArgb(254, 254, 254); } [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } @@ -80,17 +107,7 @@ public new Padding Padding { get => base.Padding; set => base.Padding = value; } [Category("Appearance"), Browsable(true)] - public string Description - { - get - { - return lblDescription.Text?.Replace("\n", "\\n"); - } - set - { - lblDescription.Text = value?.Replace("\\n", "\n"); - } - } + public string Title { get; set; } protected virtual bool IsBusy { get => isBusy; set => isBusy = value; } @@ -108,88 +125,6 @@ this.Close(); } - private void label1_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - windowDragging = true; - windowOffset = e.Location; - } - - private void label1_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - } - - private void label1_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - Point currentScreenPos = PointToScreen(e.Location); - Location = new Point(currentScreenPos.X - windowOffset.X, currentScreenPos.Y - windowOffset.Y); - } - } - - private void label1_MouseClick(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Middle) - { - this.TopMost = !this.TopMost; - } - } - - private void panel1_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - windowSize = new Point(this.Width, this.Height); - } - - private void panel1_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - } - - private void panel1_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - this.Size = new Size(e.X - windowOffset.X + this.Width, e.Y - windowOffset.Y + this.Height); - } - } - - private void panel2_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button != MouseButtons.Left) - { - return; - } - - windowDragging = true; - windowOffset = e.Location; - windowSize = new Point(this.Width, this.Height); - } - - private void panel2_MouseUp(object sender, MouseEventArgs e) - { - windowDragging = false; - - } - - private void panel2_MouseMove(object sender, MouseEventArgs e) - { - if (windowDragging) - { - this.Size = new Size(windowSize.X, e.Y - windowOffset.Y + this.Height); - } - } } } \ No newline at end of file diff --git a/RyzStudio/Windows/ThemedForms/TDialogForm.resx b/RyzStudio/Windows/ThemedForms/TDialogForm.resx index 983de50..6e0c1de 100644 --- a/RyzStudio/Windows/ThemedForms/TDialogForm.resx +++ b/RyzStudio/Windows/ThemedForms/TDialogForm.resx @@ -117,9 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - True - True diff --git a/RyzStudio/Windows/ThemedForms/TListBox.cs b/RyzStudio/Windows/ThemedForms/TListBox.cs index 73db9bb..ed785eb 100644 --- a/RyzStudio/Windows/ThemedForms/TListBox.cs +++ b/RyzStudio/Windows/ThemedForms/TListBox.cs @@ -17,12 +17,6 @@ this.Font = new Font(this.Font, FontStyle.Regular); this.Margin = new Padding(10, 4, 10, 4); - listBox1.Items.Add("one"); - listBox1.Items.Add("two"); - listBox1.Items.Add("three"); - listBox1.Items.Add("four"); - listBox1.Items.Add("five"); - listBox1.Font = this.Font; listBox1.BorderStyle = BorderStyle.None; } diff --git a/Windows/Forms/AForm.cs b/Windows/Forms/AForm.cs index 7bf09f4..8bfc2b4 100644 --- a/Windows/Forms/AForm.cs +++ b/Windows/Forms/AForm.cs @@ -7,10 +7,13 @@ namespace AppLauncher.Windows.Forms { public class AForm : Form { - protected readonly int titleHeight = 56; + protected readonly Color borderColour = Color.FromArgb(232, 231, 236); + protected readonly int borderWidth = 1; + protected readonly Color titleBarColour = Color.FromArgb(237, 240, 247); + protected readonly int titleBarHeight = 56; - protected bool isDragging = false; - protected Point startPosition = new Point(); + private bool isDragging = false; + private Point startPosition = new Point(); public AForm() : base() { @@ -21,35 +24,11 @@ namespace AppLauncher.Windows.Forms } } - protected override void OnPaint(PaintEventArgs e) - { - base.OnPaint(e); - - Graphics g = e.Graphics; - - Color borderColour = Color.FromArgb(232, 231, 236); - Color menubarColour = Color.FromArgb(237, 240, 247); - Rectangle area = new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - 1), (this.DisplayRectangle.Height - 1)); - - // border - g.DrawRectangle(new Pen(borderColour, 1), area); - - area.Inflate(-1, -1); - - g.FillRectangle(new SolidBrush(menubarColour), area.X, area.Y, (area.Width + area.X), titleHeight); - g.DrawLine(new Pen(borderColour, 1), area.X, (titleHeight + 1), (area.Width + area.X), (titleHeight + 1)); - - g.DrawImageUnscaled(Properties.Resources.app_icon_24, 17, 17); - - TextRenderer.DrawText(e.Graphics, "Launcher", new Font(this.Font.FontFamily, 14F), new Point(58, 17), Color.FromArgb(156, 158, 171)); - - } - protected override void OnMouseClick(MouseEventArgs e) { base.OnMouseClick(e); - bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= titleHeight)); + bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= titleBarHeight)); if (e.Button == MouseButtons.Left) { @@ -112,6 +91,46 @@ namespace AppLauncher.Windows.Forms isDragging = false; } + protected override void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + + Graphics g = e.Graphics; + Rectangle area = new Rectangle(this.DisplayRectangle.X, this.DisplayRectangle.Y, (this.DisplayRectangle.Width - borderWidth), (this.DisplayRectangle.Height - borderWidth)); + + // border + g.DrawRectangle(new Pen(borderColour, borderWidth), area); + + area.Inflate((-1 * borderWidth), (-1 * borderWidth)); + + g.FillRectangle(new SolidBrush(titleBarColour), area.X, area.Y, (area.Width + area.X), titleBarHeight); + g.DrawLine(new Pen(borderColour, 1), area.X, (titleBarHeight + 1), (area.Width + area.X), (titleBarHeight + 1)); + + g.DrawImageUnscaled(Properties.Resources.app_icon_24, 17, 17); + + TextRenderer.DrawText(g, "Launcher", new Font(this.Font.FontFamily, 14F), new Point(58, 17), Color.FromArgb(156, 158, 171)); + + } + + protected override void OnResize(EventArgs e) + { + base.OnResize(e); + + this.Invalidate(); + } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public override Color BackColor { get => base.BackColor; set => base.BackColor = Color.FromArgb(254, 254, 254); } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new FormBorderStyle FormBorderStyle { get => base.FormBorderStyle; set => base.FormBorderStyle = value; } + + [Browsable(false), EditorBrowsable(EditorBrowsableState.Never)] + public new Padding Padding { get => base.Padding; set => base.Padding = new Padding(0); } + + [Category("Appearance")] + public ContextMenuStrip TitleContextMenuStrip { get; set; } = null; + protected Point DefaultLocation { get @@ -127,10 +146,5 @@ namespace AppLauncher.Windows.Forms } } - public override Color BackColor { get => base.BackColor; set => base.BackColor = Color.FromArgb(254, 254, 254); } - - [Category("Appearance")] - public ContextMenuStrip TitleContextMenuStrip { get; set; } = null; - } } \ No newline at end of file diff --git a/Windows/Forms/Tile/AddListTileForm.cs b/Windows/Forms/Tile/AddListTileForm.cs index 4826cdb..915e151 100644 --- a/Windows/Forms/Tile/AddListTileForm.cs +++ b/Windows/Forms/Tile/AddListTileForm.cs @@ -1,24 +1,33 @@ using AppLauncher.Models; using RyzStudio.Windows.ThemedForms; using System; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Windows.Forms; namespace AppLauncher.Windows.Forms { public class AddListTileForm : TDialogForm { - public static void ShowDialog(TTilePanelLayout control) + public static void ShowDialog(TTilePanelLayout control, Point coord) { AddListTileForm form = new AddListTileForm(); form.TilePanelLayout = control; + form.AimCoord = coord; form.ShowDialog(); } private System.Windows.Forms.Label label1; private TButton button1; - private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1; + private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; private TTextBox textBox1; + private TListBox listBox1; + private System.Windows.Forms.Label label2; public TTilePanelLayout TilePanelLayout { get; set; } = null; + public Point AimCoord { get; set; } = new Point(-1, -1); public AddListTileForm() : base() { @@ -28,13 +37,15 @@ namespace AppLauncher.Windows.Forms private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddListTileForm)); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle style4 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle style5 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); - RyzStudio.Windows.ThemedForms.TButton.ButtonStyle style6 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); + RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle1 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); + RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle2 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); + RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle3 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle(); this.textBox1 = new RyzStudio.Windows.ThemedForms.TTextBox(); this.label1 = new System.Windows.Forms.Label(); this.button1 = new RyzStudio.Windows.ThemedForms.TButton(); - this.horizontalSeparator1 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.horizontalSeparator2 = new RyzStudio.Windows.Forms.THorizontalSeparator(); + this.listBox1 = new RyzStudio.Windows.ThemedForms.TListBox(); + this.label2 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).BeginInit(); this.SuspendLayout(); // @@ -43,11 +54,6 @@ namespace AppLauncher.Windows.Forms this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); this.imgbxClose.Location = new System.Drawing.Point(367, 5); // - // lblDescription - // - this.lblDescription.Size = new System.Drawing.Size(359, 30); - this.lblDescription.Text = "Add List Tile"; - // // panel1 // this.panel1.Location = new System.Drawing.Point(394, 474); @@ -96,48 +102,82 @@ namespace AppLauncher.Windows.Forms this.button1.OverImage = null; this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); this.button1.Size = new System.Drawing.Size(128, 32); - style4.BackColour = System.Drawing.Color.White; - style4.ForeImage = null; - style4.PenColour = System.Drawing.Color.Black; - this.button1.StyleDefault = style4; - style5.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(179)))), ((int)(((byte)(179))))); - style5.ForeImage = null; - style5.PenColour = System.Drawing.Color.Black; - this.button1.StyleDown = style5; - style6.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); - style6.ForeImage = null; - style6.PenColour = System.Drawing.Color.White; - this.button1.StyleOver = style6; + buttonStyle1.BackColour = System.Drawing.Color.White; + buttonStyle1.ForeImage = null; + buttonStyle1.PenColour = System.Drawing.Color.Black; + this.button1.StyleDefault = buttonStyle1; + buttonStyle2.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(179)))), ((int)(((byte)(179))))); + buttonStyle2.ForeImage = null; + buttonStyle2.PenColour = System.Drawing.Color.Black; + this.button1.StyleDown = buttonStyle2; + buttonStyle3.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + buttonStyle3.ForeImage = null; + buttonStyle3.PenColour = System.Drawing.Color.White; + this.button1.StyleOver = buttonStyle3; this.button1.TabIndex = 173; this.button1.Click += new System.EventHandler(this.button1_Click); // - // horizontalSeparator1 + // horizontalSeparator2 // - this.horizontalSeparator1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.horizontalSeparator1.Location = new System.Drawing.Point(10, 92); - this.horizontalSeparator1.MaximumSize = new System.Drawing.Size(4920, 2); - this.horizontalSeparator1.Name = "horizontalSeparator1"; - this.horizontalSeparator1.Size = new System.Drawing.Size(380, 2); - this.horizontalSeparator1.TabIndex = 176; + this.horizontalSeparator2.Location = new System.Drawing.Point(10, 92); + this.horizontalSeparator2.MaximumSize = new System.Drawing.Size(4920, 2); + this.horizontalSeparator2.Name = "horizontalSeparator2"; + this.horizontalSeparator2.Size = new System.Drawing.Size(380, 2); + this.horizontalSeparator2.TabIndex = 177; // - // AddListTileForm + // listBox1 + // + this.listBox1.AllowDrop = true; + this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.listBox1.BackColor = System.Drawing.Color.Transparent; + this.listBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); + this.listBox1.Location = new System.Drawing.Point(159, 101); + this.listBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4); + this.listBox1.Name = "listBox1"; + this.listBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5); + this.listBox1.Size = new System.Drawing.Size(220, 280); + this.listBox1.SubmitButton = null; + this.listBox1.TabIndex = 180; + this.listBox1.OnAdd += new System.EventHandler(this.listBox1_OnAdd); + this.listBox1.OnEdit += new System.EventHandler(this.listBox1_OnEdit); + this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); + this.listBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.listBox1_DragOver); + // + // label2 + // + this.label2.BackColor = System.Drawing.Color.Transparent; + this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); + this.label2.Location = new System.Drawing.Point(18, 104); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(131, 32); + this.label2.TabIndex = 181; + this.label2.Text = "List"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // EditListTileForm2 // this.ClientSize = new System.Drawing.Size(400, 480); - this.Controls.Add(this.horizontalSeparator1); + this.Controls.Add(this.label2); + this.Controls.Add(this.listBox1); + this.Controls.Add(this.horizontalSeparator2); this.Controls.Add(this.button1); this.Controls.Add(this.label1); this.Controls.Add(this.textBox1); - this.Description = "Add List Tile"; - this.Name = "AddListTileForm"; + this.Name = "EditListTileForm2"; + this.Title = "Add List Tile"; this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.lblDescription, 0); this.Controls.SetChildIndex(this.panel1, 0); this.Controls.SetChildIndex(this.area1, 0); this.Controls.SetChildIndex(this.textBox1, 0); this.Controls.SetChildIndex(this.label1, 0); this.Controls.SetChildIndex(this.button1, 0); - this.Controls.SetChildIndex(this.horizontalSeparator1, 0); + this.Controls.SetChildIndex(this.horizontalSeparator2, 0); + this.Controls.SetChildIndex(this.listBox1, 0); + this.Controls.SetChildIndex(this.label2, 0); ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); this.ResumeLayout(false); @@ -151,10 +191,98 @@ namespace AppLauncher.Windows.Forms IsGroup = true }; + if (!this.AimCoord.Equals(new Point(-1, -1))) + { + model.Position = this.AimCoord; + } + + model.Items = new System.Collections.Generic.List(); + + foreach (TileModel item in listBox1.ListBox.Items.OfType()) + { + if (item.IsGroup) + { + continue; + } + + model.Items.Add(item); + } + this.TilePanelLayout.AddTile(model); this.Close(); } + private void listBox1_OnAdd(object sender, EventArgs e) => AddTileForm.ShowDialog(listBox1); + + private void listBox1_OnEdit(object sender, EventArgs e) + { + if (listBox1.ListBox.Items.Count <= 0) + { + return; + } + + EditTileForm.ShowDialog(listBox1); + } + + private void listBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + { + e.Effect = DragDropEffects.Link; + } + else + { + e.Effect = DragDropEffects.None; + } + } + + private void listBox1_DragDrop(object sender, DragEventArgs e) + { + string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; + if (fileList == null) + { + return; + } + + if (fileList.Length <= 0) + { + return; + } + + if (string.IsNullOrWhiteSpace(fileList[0])) + { + return; + } + + TileModel model = new TileModel() + { + ProcessFilename = fileList[0], + Title = Path.GetFileName(fileList[0]) + }; + + // exe + if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) + { + if (File.Exists(fileList[0])) + { + try + { + FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); + if (fvi != null) + { + model.Title = fvi.ProductName; + } + } + catch + { + // do nothing + } + } + } + + listBox1.ListBox.Items.Add(model); + } + } } \ No newline at end of file diff --git a/Windows/Forms/Tile/AddTileForm.cs b/Windows/Forms/Tile/AddTileForm.cs index e09bd6c..bb4907d 100644 --- a/Windows/Forms/Tile/AddTileForm.cs +++ b/Windows/Forms/Tile/AddTileForm.cs @@ -84,10 +84,7 @@ namespace AppLauncher.Windows.Forms this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); this.imgbxClose.Location = new System.Drawing.Point(367, 5); // - // lblDescription - // - this.lblDescription.Size = new System.Drawing.Size(359, 30); - this.lblDescription.Text = "Add Tile"; + this.Text = "Add Tile"; // // panel1 // @@ -324,10 +321,9 @@ namespace AppLauncher.Windows.Forms this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.textBox1); - this.Description = "Add Tile"; + this.Title = "Add Tile"; this.Name = "AddTileForm"; this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.lblDescription, 0); this.Controls.SetChildIndex(this.panel1, 0); this.Controls.SetChildIndex(this.area1, 0); this.Controls.SetChildIndex(this.textBox1, 0); diff --git a/Windows/Forms/Tile/EditGroupForm.cs b/Windows/Forms/Tile/EditGroupForm.cs index 0f521fd..85bd21d 100644 --- a/Windows/Forms/Tile/EditGroupForm.cs +++ b/Windows/Forms/Tile/EditGroupForm.cs @@ -48,8 +48,7 @@ namespace AppLauncher.Windows.Forms // // lblDescription // - this.lblDescription.Size = new System.Drawing.Size(359, 30); - this.lblDescription.Text = "Edit Group"; + this.Text = "Edit Group"; // // panel1 // @@ -135,10 +134,9 @@ namespace AppLauncher.Windows.Forms this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.textBox1); - this.Description = "Edit Group"; + this.Title = "Edit Group"; this.Name = "EditGroupForm"; this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.lblDescription, 0); this.Controls.SetChildIndex(this.panel1, 0); this.Controls.SetChildIndex(this.area1, 0); this.Controls.SetChildIndex(this.textBox1, 0); diff --git a/Windows/Forms/Tile/EditListTileForm.cs b/Windows/Forms/Tile/EditListTileForm.cs index c508664..924d146 100644 --- a/Windows/Forms/Tile/EditListTileForm.cs +++ b/Windows/Forms/Tile/EditListTileForm.cs @@ -1,7 +1,10 @@ using AppLauncher.Models; using RyzStudio.Windows.ThemedForms; using System; +using System.Diagnostics; +using System.IO; using System.Linq; +using System.Windows.Forms; namespace AppLauncher.Windows.Forms { @@ -50,8 +53,7 @@ namespace AppLauncher.Windows.Forms // // lblDescription // - this.lblDescription.Size = new System.Drawing.Size(359, 30); - this.lblDescription.Text = "Edit List Tile"; + this.Title = "Edit List Tile"; // // panel1 // @@ -128,6 +130,7 @@ namespace AppLauncher.Windows.Forms // // listBox1 // + this.listBox1.AllowDrop = true; this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -142,6 +145,8 @@ namespace AppLauncher.Windows.Forms this.listBox1.TabIndex = 180; this.listBox1.OnAdd += new System.EventHandler(this.listBox1_OnAdd); this.listBox1.OnEdit += new System.EventHandler(this.listBox1_OnEdit); + this.listBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.listBox1_DragDrop); + this.listBox1.DragOver += new System.Windows.Forms.DragEventHandler(this.listBox1_DragOver); // // label2 // @@ -163,10 +168,9 @@ namespace AppLauncher.Windows.Forms this.Controls.Add(this.button1); this.Controls.Add(this.label1); this.Controls.Add(this.textBox1); - this.Description = "Edit List Tile"; + this.Title = "Edit List Tile"; this.Name = "EditListTileForm"; this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.lblDescription, 0); this.Controls.SetChildIndex(this.panel1, 0); this.Controls.SetChildIndex(this.area1, 0); this.Controls.SetChildIndex(this.textBox1, 0); @@ -242,5 +246,64 @@ namespace AppLauncher.Windows.Forms EditTileForm.ShowDialog(listBox1); } + private void listBox1_DragOver(object sender, System.Windows.Forms.DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + { + e.Effect = DragDropEffects.Link; + } + else + { + e.Effect = DragDropEffects.None; + } + } + + private void listBox1_DragDrop(object sender, DragEventArgs e) + { + string[] fileList = e.Data.GetData(DataFormats.FileDrop) as string[]; + if (fileList == null) + { + return; + } + + if (fileList.Length <= 0) + { + return; + } + + if (string.IsNullOrWhiteSpace(fileList[0])) + { + return; + } + + TileModel model = new TileModel() + { + ProcessFilename = fileList[0], + Title = Path.GetFileName(fileList[0]) + }; + + // exe + if (Path.GetExtension(fileList[0]).Equals(".exe", StringComparison.CurrentCultureIgnoreCase)) + { + if (File.Exists(fileList[0])) + { + try + { + FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(fileList[0]); + if (fvi != null) + { + model.Title = fvi.ProductName; + } + } + catch + { + // do nothing + } + } + } + + listBox1.ListBox.Items.Add(model); + } + } } \ No newline at end of file diff --git a/Windows/Forms/Tile/EditTileForm.cs b/Windows/Forms/Tile/EditTileForm.cs index e8f70fc..817bbdb 100644 --- a/Windows/Forms/Tile/EditTileForm.cs +++ b/Windows/Forms/Tile/EditTileForm.cs @@ -83,8 +83,7 @@ namespace AppLauncher.Windows.Forms // // lblDescription // - this.lblDescription.Size = new System.Drawing.Size(359, 30); - this.lblDescription.Text = "Edit Tile"; + this.Title = "Edit Tile"; // // panel1 // @@ -321,10 +320,9 @@ namespace AppLauncher.Windows.Forms this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.textBox1); - this.Description = "Edit Tile"; + this.Title = "Edit Tile"; this.Name = "EditTileForm"; this.Controls.SetChildIndex(this.imgbxClose, 0); - this.Controls.SetChildIndex(this.lblDescription, 0); this.Controls.SetChildIndex(this.panel1, 0); this.Controls.SetChildIndex(this.area1, 0); this.Controls.SetChildIndex(this.textBox1, 0); diff --git a/Windows/Forms/Tile/TTilePanelLayout.cs b/Windows/Forms/Tile/TTilePanelLayout.cs index e52c537..842321d 100644 --- a/Windows/Forms/Tile/TTilePanelLayout.cs +++ b/Windows/Forms/Tile/TTilePanelLayout.cs @@ -740,7 +740,12 @@ namespace AppLauncher.Windows.Forms AddTileForm.ShowDialog(this, coord); } - private void addListTileMenuItem_Click(object sender, EventArgs e) => AddListTileForm.ShowDialog(this); + private void addListTileMenuItem_Click(object sender, EventArgs e) + { + Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y); + + AddListTileForm.ShowDialog(this, coord); + } private void addGroupMenuItem_Click(object sender, EventArgs e) => this.AddGroup();