This repository has been archived on 2024-08-06. You can view files and clone it, but cannot push or open issues or pull requests.
linear-app-launcher/EditTileForm.cs
Ray 2e3b2998e7 Fixed file session manager
Added has-changed detection flag
Fixed dialog result null-value
Changed session manager event names
2024-07-05 22:43:19 +01:00

342 lines
14 KiB
C#

using System.Drawing;
using System.Windows.Forms;
using FizzyLauncher.Models;
using RyzStudio.Windows.Forms;
using RyzStudio.Windows.ThemedForms;
using RyzStudio.Windows.ThemedForms.ButtonTextBox;
using RyzStudio.Windows.ThemedForms.PickerBox;
using static RyzStudio.Windows.ThemedForms.ButtonTextBox.ThKeyCodeTextBox;
namespace FizzyLauncher
{
public class EditTileForm : TDialog
{
private Label label6;
private Label label7;
private Label label4;
private Label label3;
private Label label2;
private Label label1;
private ThPathDialogTextBox textBox2;
private ThClearableTextBox textBox3;
private ThPathDialogTextBox textBox4;
private ThButton button1;
private ThPickerBox pickerBox1;
private ThYesNoPickerBox pickerBox2;
private THorizontalSeparator horizontalSeparator1;
private THorizontalSeparator horizontalSeparator2;
private ThClearableTextBox textBox1;
private TileModel result = null;
public EditTileForm(TileModel model = null)
{
InitializeComponent();
StartPosition = FormStartPosition.WindowsDefaultLocation;
OkButton = button1;
result = model;
pickerBox1.ComboBox.Items.Clear();
pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" });
if (pickerBox1.ComboBox.Items.Count > 0)
{
pickerBox1.ComboBox.SelectedIndex = 0;
}
if (result != null)
{
Text = "Edit Tile";
textBox1.Text = result?.Title ?? string.Empty;
textBox2.Text = result?.ProcessFilename ?? string.Empty;
textBox3.Text = result?.ProcessArgument ?? string.Empty;
textBox4.Text = result?.ProcessWorkingDirectory ?? string.Empty;
pickerBox1.ComboBox.SelectedIndex = (int)result.ProcessWindowStyle;
pickerBox2.Value = result.ProcessAsAdmin;
}
else
{
Text = "Add Tile";
}
}
private void InitializeComponent()
{
textBox1 = new ThClearableTextBox();
label6 = new Label();
label7 = new Label();
label4 = new Label();
label3 = new Label();
label2 = new Label();
label1 = new Label();
textBox2 = new ThPathDialogTextBox();
textBox3 = new ThClearableTextBox();
textBox4 = new ThPathDialogTextBox();
button1 = new ThButton();
pickerBox1 = new ThPickerBox();
pickerBox2 = new ThYesNoPickerBox();
horizontalSeparator1 = new THorizontalSeparator();
horizontalSeparator2 = new THorizontalSeparator();
SuspendLayout();
//
// textBox1
//
textBox1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox1.BackColor = Color.Transparent;
textBox1.EnableReactiveVisual = true;
textBox1.Font = new Font("Segoe UI", 9F);
textBox1.Location = new Point(126, 20);
textBox1.Name = "textBox1";
textBox1.Size = new Size(243, 35);
textBox1.TabIndex = 152;
textBox1.TabStop = false;
textBox1.UseSystemPasswordChar = false;
//
// label6
//
label6.AutoSize = true;
label6.BackColor = Color.Transparent;
label6.ForeColor = SystemColors.ControlText;
label6.Location = new Point(10, 250);
label6.Name = "label6";
label6.Padding = new Padding(0, 9, 0, 10);
label6.Size = new Size(83, 34);
label6.TabIndex = 163;
label6.Text = "Run As Admin";
label6.TextAlign = ContentAlignment.MiddleLeft;
//
// label7
//
label7.AutoSize = true;
label7.BackColor = Color.Transparent;
label7.ForeColor = SystemColors.ControlText;
label7.Location = new Point(10, 209);
label7.Name = "label7";
label7.Padding = new Padding(0, 9, 0, 10);
label7.Size = new Size(79, 34);
label7.TabIndex = 161;
label7.Text = "Window Style";
label7.TextAlign = ContentAlignment.MiddleLeft;
//
// label4
//
label4.AutoSize = true;
label4.BackColor = Color.Transparent;
label4.ForeColor = SystemColors.ControlText;
label4.Location = new Point(10, 144);
label4.Name = "label4";
label4.Padding = new Padding(0, 9, 0, 10);
label4.Size = new Size(103, 34);
label4.TabIndex = 159;
label4.Text = "Working Directory";
label4.TextAlign = ContentAlignment.MiddleLeft;
//
// label3
//
label3.AutoSize = true;
label3.BackColor = Color.Transparent;
label3.ForeColor = SystemColors.ControlText;
label3.Location = new Point(10, 103);
label3.Name = "label3";
label3.Padding = new Padding(0, 9, 0, 10);
label3.Size = new Size(61, 34);
label3.TabIndex = 157;
label3.Text = "Argument";
label3.TextAlign = ContentAlignment.MiddleLeft;
//
// label2
//
label2.AutoSize = true;
label2.BackColor = Color.Transparent;
label2.ForeColor = SystemColors.ControlText;
label2.Location = new Point(10, 62);
label2.Name = "label2";
label2.Padding = new Padding(0, 9, 0, 10);
label2.Size = new Size(55, 34);
label2.TabIndex = 155;
label2.Text = "Filename";
label2.TextAlign = ContentAlignment.MiddleLeft;
//
// label1
//
label1.AutoSize = true;
label1.BackColor = Color.Transparent;
label1.ForeColor = SystemColors.ControlText;
label1.Location = new Point(10, 21);
label1.Margin = new Padding(0);
label1.Name = "label1";
label1.Padding = new Padding(0, 9, 0, 10);
label1.Size = new Size(29, 34);
label1.TabIndex = 153;
label1.Text = "Title";
label1.TextAlign = ContentAlignment.MiddleLeft;
//
// textBox2
//
textBox2.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox2.BackColor = Color.Transparent;
textBox2.DialogMode = ThPathDialogTextBox.DialogType.OpenFile;
textBox2.EnableReactiveVisual = true;
textBox2.Font = new Font("Segoe UI", 9F);
textBox2.Location = new Point(126, 61);
textBox2.Margin = new Padding(10, 10, 10, 0);
textBox2.Name = "textBox2";
textBox2.Size = new Size(243, 32);
textBox2.TabIndex = 170;
textBox2.TabStop = false;
textBox2.UseSystemPasswordChar = false;
//
// textBox3
//
textBox3.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox3.BackColor = Color.Transparent;
textBox3.EnableReactiveVisual = true;
textBox3.Font = new Font("Segoe UI", 9F);
textBox3.Location = new Point(147, 102);
textBox3.Name = "textBox3";
textBox3.Size = new Size(222, 35);
textBox3.TabIndex = 171;
textBox3.TabStop = false;
//
// textBox4
//
textBox4.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
textBox4.BackColor = Color.Transparent;
textBox4.DialogMode = ThPathDialogTextBox.DialogType.FolderBrowser;
textBox4.EnableReactiveVisual = true;
textBox4.Font = new Font("Segoe UI", 9F);
textBox4.Location = new Point(147, 143);
textBox4.Name = "textBox4";
textBox4.Size = new Size(222, 32);
textBox4.TabIndex = 172;
textBox4.TabStop = false;
textBox4.UseSystemPasswordChar = false;
//
// button1
//
button1.AcceptButton = null;
button1.ActiveImage = null;
button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
button1.BackColor = Color.Transparent;
button1.EnableMenuOnClick = false;
button1.EnableReactiveVisual = true;
button1.HoverImage = null;
button1.IdleImage = null;
button1.LabelText = "&Save";
button1.Location = new Point(241, 469);
button1.Margin = new Padding(10, 10, 10, 0);
button1.Name = "button1";
button1.Padding = new Padding(4, 4, 3, 3);
button1.Size = new Size(128, 32);
button1.TabIndex = 173;
button1.TabStop = false;
//
// pickerBox1
//
pickerBox1.AcceptButton = null;
pickerBox1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox1.BackColor = Color.Transparent;
pickerBox1.EnableReactiveVisual = true;
pickerBox1.Font = new Font("Segoe UI", 9F);
pickerBox1.Location = new Point(241, 209);
pickerBox1.Margin = new Padding(10, 10, 10, 0);
pickerBox1.Name = "pickerBox1";
pickerBox1.Padding = new Padding(4, 4, 3, 3);
pickerBox1.SelectedIndex = -1;
pickerBox1.Size = new Size(128, 34);
pickerBox1.TabIndex = 174;
pickerBox1.TabStop = false;
//
// pickerBox2
//
pickerBox2.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pickerBox2.BackColor = Color.Transparent;
pickerBox2.EnableReactiveVisual = true;
pickerBox2.Font = new Font("Segoe UI", 9F);
pickerBox2.Location = new Point(285, 250);
pickerBox2.Name = "pickerBox2";
pickerBox2.Size = new Size(84, 34);
pickerBox2.TabIndex = 175;
pickerBox2.TabStop = false;
//
// horizontalSeparator1
//
horizontalSeparator1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
horizontalSeparator1.AutoScrollMargin = new Size(0, 0);
horizontalSeparator1.AutoScrollMinSize = new Size(0, 0);
horizontalSeparator1.BackColor = Color.Transparent;
horizontalSeparator1.Location = new Point(10, 181);
horizontalSeparator1.Margin = new Padding(0, 10, 0, 0);
horizontalSeparator1.MaximumSize = new Size(4920, 2);
horizontalSeparator1.MinimumSize = new Size(0, 22);
horizontalSeparator1.Name = "horizontalSeparator1";
horizontalSeparator1.Size = new Size(364, 22);
horizontalSeparator1.TabIndex = 176;
horizontalSeparator1.TabStop = false;
//
// horizontalSeparator2
//
horizontalSeparator2.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
horizontalSeparator2.AutoScrollMargin = new Size(0, 0);
horizontalSeparator2.AutoScrollMinSize = new Size(0, 0);
horizontalSeparator2.BackColor = Color.Transparent;
horizontalSeparator2.Location = new Point(10, 437);
horizontalSeparator2.Margin = new Padding(0, 10, 0, 0);
horizontalSeparator2.MaximumSize = new Size(4920, 2);
horizontalSeparator2.MinimumSize = new Size(0, 22);
horizontalSeparator2.Name = "horizontalSeparator2";
horizontalSeparator2.Size = new Size(364, 22);
horizontalSeparator2.TabIndex = 177;
horizontalSeparator2.TabStop = false;
//
// EditTileForm
//
ClientSize = new Size(384, 521);
Controls.Add(horizontalSeparator2);
Controls.Add(horizontalSeparator1);
Controls.Add(pickerBox2);
Controls.Add(pickerBox1);
Controls.Add(button1);
Controls.Add(textBox4);
Controls.Add(textBox3);
Controls.Add(textBox2);
Controls.Add(label6);
Controls.Add(label7);
Controls.Add(label4);
Controls.Add(label3);
Controls.Add(label2);
Controls.Add(label1);
Controls.Add(textBox1);
MinimumSize = new Size(400, 560);
Name = "EditTileForm";
Text = "Add Tile";
ResumeLayout(false);
PerformLayout();
}
public TileModel Result
{
get
{
if (result == null)
{
result = new TileModel();
}
result.Title = textBox1.Text?.Trim() ?? string.Empty;
result.ProcessFilename = textBox2.Text?.Trim() ?? string.Empty;
result.ProcessArgument = textBox3.Text?.Trim() ?? string.Empty;
result.ProcessWorkingDirectory = textBox4.Text?.Trim();
result.ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex;
result.ProcessAsAdmin = pickerBox2.Value;
return result;
}
}
}
}