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 { public class EditListTileForm : TDialogForm { public static void ShowDialog(TTilePanel control) { EditListTileForm form = new EditListTileForm(); form.TilePanel = control; form.ShowDialog(); } private System.Windows.Forms.Label label1; private TButton button1; private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2; private TTextBox textBox1; private TListBox listBox1; private System.Windows.Forms.Label label2; public TTilePanel TilePanel { get; set; } = null; public EditListTileForm() : base() { InitializeComponent(); } private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(EditListTileForm)); 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.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(); // // imgbxClose // this.imgbxClose.Image = ((System.Drawing.Image)(resources.GetObject("imgbxClose.Image"))); this.imgbxClose.Location = new System.Drawing.Point(367, 5); // // lblDescription // this.Title = "Edit List Tile"; // // panel1 // this.panel1.Location = new System.Drawing.Point(394, 474); // // area1 // this.area1.Location = new System.Drawing.Point(1, 474); this.area1.Size = new System.Drawing.Size(392, 5); // // textBox1 // this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.textBox1.BackColor = System.Drawing.Color.Transparent; this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); this.textBox1.Location = new System.Drawing.Point(159, 50); this.textBox1.Margin = new System.Windows.Forms.Padding(10, 6, 10, 6); this.textBox1.Name = "textBox1"; this.textBox1.Padding = new System.Windows.Forms.Padding(10, 10, 9, 9); this.textBox1.Size = new System.Drawing.Size(220, 32); this.textBox1.SubmitButton = null; this.textBox1.TabIndex = 152; this.textBox1.UseSystemPasswordChar = false; // // label1 // this.label1.BackColor = System.Drawing.Color.Transparent; this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(95)))), ((int)(((byte)(99)))), ((int)(((byte)(104))))); this.label1.Location = new System.Drawing.Point(18, 50); this.label1.Margin = new System.Windows.Forms.Padding(0); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(131, 32); this.label1.TabIndex = 153; this.label1.Text = "Title"; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; // // button1 // this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.button1.BackColor = System.Drawing.Color.Transparent; this.button1.DefaultImage = null; this.button1.DownImage = null; this.button1.LabelText = "&Save"; this.button1.Location = new System.Drawing.Point(251, 427); this.button1.Name = "button1"; this.button1.OverImage = null; this.button1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3); this.button1.Size = new System.Drawing.Size(128, 32); this.button1.TabIndex = 173; this.button1.Click += new System.EventHandler(this.button1_Click); // // horizontalSeparator2 // this.horizontalSeparator2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); 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; // // 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; // // EditListTileForm // this.ClientSize = new System.Drawing.Size(400, 480); 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.Title = "Edit List Tile"; this.Name = "EditListTileForm"; this.Controls.SetChildIndex(this.imgbxClose, 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.horizontalSeparator2, 0); this.Controls.SetChildIndex(this.listBox1, 0); this.Controls.SetChildIndex(this.label2, 0); ((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit(); this.ResumeLayout(false); } protected override void OnShown(EventArgs e) { base.OnShown(e); listBox1.ListBox.Items.Clear(); if (this.TilePanel == null) return; if (this.TilePanel.ModelInfo == null) return; textBox1.Text = this.TilePanel.ModelInfo.Title; if (this.TilePanel.ModelInfo.Items != null) { foreach (TileModel item in this.TilePanel.ModelInfo.Items) { if (item.IsGroup) { continue; } listBox1.ListBox.Items.Add(item); } } } private void button1_Click(object sender, EventArgs e) { TileModel model = new TileModel() { Title = textBox1.Text?.Trim(), IsGroup = true }; model.Items = new System.Collections.Generic.List(); foreach (TileModel item in listBox1.ListBox.Items.OfType()) { if (item.IsGroup) { continue; } model.Items.Add(item); } this.TilePanel.LoadInfo(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 } } if (string.IsNullOrWhiteSpace(model.Title)) { model.Title = Path.GetFileNameWithoutExtension(fileList[0]); } } listBox1.ListBox.Items.Add(model); } } }