Added: support for add tile at coord
This commit is contained in:
parent
c90d846f2e
commit
d4258b39eb
@ -7,7 +7,6 @@ namespace AppLauncher.Models
|
||||
public class TileModel
|
||||
{
|
||||
public string Title { get; set; }
|
||||
public Image Icon { get; set; }
|
||||
public string ProcessFilename { get; set; }
|
||||
public string ProcessArgument { get; set; }
|
||||
public string ProcessWorkingDirectory { get; set; }
|
||||
@ -16,7 +15,22 @@ namespace AppLauncher.Models
|
||||
public Point Position { get; set; }
|
||||
|
||||
public bool IsGroup { get; set; } = false;
|
||||
protected List<TileModel> Items { get; set; } = new List<TileModel>();
|
||||
public List<TileModel> Items { get; set; } = new List<TileModel>();
|
||||
|
||||
public override string ToString() => this.Title ?? string.Empty;
|
||||
|
||||
//public void Update(TileModel model)
|
||||
//{
|
||||
// this.Title = model.Title;
|
||||
// this.ProcessFilename = model.ProcessFilename;
|
||||
// this.ProcessArgument = model.ProcessArgument;
|
||||
// this.ProcessWorkingDirectory = model.ProcessWorkingDirectory;
|
||||
// this.ProcessWindowStyle = model.ProcessWindowStyle;
|
||||
// this.ProcessAsAdmin = model.ProcessAsAdmin;
|
||||
// this.Position = model.Position;
|
||||
// this.IsGroup = model.IsGroup;
|
||||
// this.Items = model.Items;
|
||||
//}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -26,9 +26,9 @@
|
||||
inkscape:document-rotation="0"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:cy="362.07537"
|
||||
inkscape:cx="331.14896"
|
||||
inkscape:zoom="5.6"
|
||||
inkscape:cy="407.3011"
|
||||
inkscape:cx="356.66747"
|
||||
inkscape:zoom="11.2"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1.0"
|
||||
@ -523,7 +523,10 @@
|
||||
inkscape:export-ydpi="120" />
|
||||
</g>
|
||||
<g
|
||||
transform="matrix(0.26458333,0,0,0.26458333,90.279613,100.24874)"
|
||||
inkscape:export-ydpi="96"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-filename="L:\gitlab-hiimray\linear-app-launcher\Resources\folder_32.png"
|
||||
transform="matrix(0.34189664,0,0,0.34189664,90.202299,100.09411)"
|
||||
id="g1832"
|
||||
style="fill:none;stroke:#636977;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:1">
|
||||
<path
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 19 KiB |
@ -6,9 +6,10 @@ namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
public class AddListTileForm : TDialogForm
|
||||
{
|
||||
public static void ShowDialog(TTilePanelLayout panel)
|
||||
public static void ShowDialog(TTilePanelLayout control)
|
||||
{
|
||||
AddListTileForm form = new AddListTileForm(panel);
|
||||
AddListTileForm form = new AddListTileForm();
|
||||
form.TilePanelLayout = control;
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
@ -16,20 +17,14 @@ namespace AppLauncher.Windows.Forms
|
||||
private TButton button1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1;
|
||||
private TTextBox textBox1;
|
||||
protected TTilePanelLayout parentPanel = null;
|
||||
|
||||
public TTilePanelLayout TilePanelLayout { get; set; } = null;
|
||||
|
||||
public AddListTileForm() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public AddListTileForm(TTilePanelLayout panel) : base()
|
||||
{
|
||||
parentPanel = panel;
|
||||
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AddListTileForm));
|
||||
@ -156,7 +151,7 @@ namespace AppLauncher.Windows.Forms
|
||||
IsGroup = true
|
||||
};
|
||||
|
||||
parentPanel.AddTile(model);
|
||||
this.TilePanelLayout.AddTile(model);
|
||||
|
||||
this.Close();
|
||||
}
|
||||
|
@ -1,19 +1,24 @@
|
||||
using AppLauncher.Models;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Drawing;
|
||||
|
||||
namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
public class AddTileForm : TDialogForm
|
||||
{
|
||||
public static void ShowDialog(TTilePanelLayout panel)
|
||||
public static void ShowDialog(TTilePanelLayout control, Point coord)
|
||||
{
|
||||
AddTileForm form = new AddTileForm(panel);
|
||||
AddTileForm form = new AddTileForm();
|
||||
form.TilePanelLayout = control;
|
||||
form.AimCoord = coord;
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
public static void ShowDialog(TListBox control)
|
||||
{
|
||||
AddTileForm form = new AddTileForm();
|
||||
form.ListBox = control;
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
@ -32,20 +37,22 @@ namespace AppLauncher.Windows.Forms
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
|
||||
private TTextBox textBox1;
|
||||
protected TTilePanelLayout parentPanel = null;
|
||||
|
||||
public TTilePanelLayout TilePanelLayout { get; set; } = null;
|
||||
public Point AimCoord { get; set; } = new Point(-1, -1);
|
||||
public TListBox ListBox { get; set; } = null;
|
||||
|
||||
public AddTileForm() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
initialiseComponents2();
|
||||
}
|
||||
|
||||
public AddTileForm(TTilePanelLayout panel) : base()
|
||||
{
|
||||
parentPanel = panel;
|
||||
pickerBox1.ComboBox.Items.Clear();
|
||||
pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" });
|
||||
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0;
|
||||
|
||||
InitializeComponent();
|
||||
initialiseComponents2();
|
||||
pickerBox2.ComboBox.Items.Clear();
|
||||
pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
|
||||
if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
@ -343,20 +350,26 @@ namespace AppLauncher.Windows.Forms
|
||||
|
||||
}
|
||||
|
||||
private void initialiseComponents2()
|
||||
{
|
||||
pickerBox1.ComboBox.Items.Clear();
|
||||
pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" });
|
||||
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0;
|
||||
|
||||
pickerBox2.ComboBox.Items.Clear();
|
||||
pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
|
||||
if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
TileModel model = new TileModel()
|
||||
TileModel model = buildModel();
|
||||
|
||||
if (this.TilePanelLayout != null)
|
||||
{
|
||||
this.TilePanelLayout.AddTile(model);
|
||||
}
|
||||
else if (this.ListBox != null)
|
||||
{
|
||||
int n = this.ListBox.ListBox.Items.Add(model);
|
||||
this.ListBox.ListBox.SelectedIndex = n;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
|
||||
protected TileModel buildModel()
|
||||
{
|
||||
TileModel rs = new TileModel()
|
||||
{
|
||||
Title = textBox1.Text?.Trim(),
|
||||
ProcessFilename = textBox2.Text?.Trim(),
|
||||
@ -366,9 +379,12 @@ namespace AppLauncher.Windows.Forms
|
||||
ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1)
|
||||
};
|
||||
|
||||
parentPanel.AddTile(model);
|
||||
if (!this.AimCoord.Equals(new Point(-1, -1)))
|
||||
{
|
||||
rs.Position = this.AimCoord;
|
||||
}
|
||||
|
||||
this.Close();
|
||||
return rs;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -6,25 +6,28 @@ namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
public class EditGroupForm : TDialogForm
|
||||
{
|
||||
public static void ShowDialog(TTilePanelLayout control)
|
||||
{
|
||||
EditGroupForm form = new EditGroupForm();
|
||||
form.TilePanelLayout = control;
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
private System.Windows.Forms.Label label2;
|
||||
private System.Windows.Forms.Label label1;
|
||||
private TButton button1;
|
||||
private TPickerBox pickerBox1;
|
||||
private TTextBox textBox1;
|
||||
protected TTilePanelLayout parentContainer = null;
|
||||
|
||||
public TTilePanelLayout TilePanelLayout { get; set; } = null;
|
||||
|
||||
public EditGroupForm() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
initialiseComponents2();
|
||||
}
|
||||
|
||||
public EditGroupForm(TTilePanelLayout container) : base()
|
||||
{
|
||||
parentContainer = container;
|
||||
|
||||
InitializeComponent();
|
||||
initialiseComponents2();
|
||||
pickerBox1.ComboBox.Items.Clear();
|
||||
pickerBox1.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
|
||||
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
@ -148,31 +151,24 @@ namespace AppLauncher.Windows.Forms
|
||||
|
||||
}
|
||||
|
||||
private void initialiseComponents2()
|
||||
{
|
||||
pickerBox1.ComboBox.Items.Clear();
|
||||
pickerBox1.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
|
||||
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
if (parentContainer != null)
|
||||
if (this.TilePanelLayout != null)
|
||||
{
|
||||
textBox1.Text = parentContainer.Model.Title;
|
||||
pickerBox1.ComboBox.SelectedIndex = (parentContainer.Model.IsExclusive ? 1 : 0);
|
||||
textBox1.Text = this.TilePanelLayout.Model.Title;
|
||||
pickerBox1.ComboBox.SelectedIndex = (this.TilePanelLayout.Model.IsExclusive ? 1 : 0);
|
||||
}
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
TileGroupModel model = parentContainer.Model;
|
||||
TileGroupModel model = this.TilePanelLayout.Model;
|
||||
model.Title = textBox1.Text?.Trim();
|
||||
model.IsExclusive = (pickerBox1.ComboBox.SelectedIndex == 1);
|
||||
|
||||
parentContainer.UpdateModel(model);
|
||||
this.TilePanelLayout.UpdateModel(model);
|
||||
|
||||
this.Close();
|
||||
}
|
||||
|
@ -1,14 +1,16 @@
|
||||
using AppLauncher.Models;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
public class EditListTileForm : TDialogForm
|
||||
{
|
||||
public static void ShowDialog(TTilePanel panel)
|
||||
public static void ShowDialog(TTilePanel control)
|
||||
{
|
||||
EditListTileForm form = new EditListTileForm(panel);
|
||||
EditListTileForm form = new EditListTileForm();
|
||||
form.TilePanel = control;
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
@ -16,79 +18,53 @@ namespace AppLauncher.Windows.Forms
|
||||
private TButton button1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
|
||||
private TTextBox textBox1;
|
||||
private TListBox tListBox1;
|
||||
private TListBox listBox1;
|
||||
private System.Windows.Forms.Label label2;
|
||||
private TButton tButton1;
|
||||
private TButton tButton2;
|
||||
private TButton tButton3;
|
||||
private TButton tButton4;
|
||||
protected TTilePanel parentPanel = null;
|
||||
|
||||
public TTilePanel TilePanel { get; set; } = null;
|
||||
|
||||
public EditListTileForm() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
public EditListTileForm(TTilePanel panel) : base()
|
||||
{
|
||||
parentPanel = panel;
|
||||
|
||||
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();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle4 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle5 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle6 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle7 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle8 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle9 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle10 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle11 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle12 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle13 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle14 = new RyzStudio.Windows.ThemedForms.TButton.ButtonStyle();
|
||||
RyzStudio.Windows.ThemedForms.TButton.ButtonStyle buttonStyle15 = 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.tListBox1 = new RyzStudio.Windows.ThemedForms.TListBox();
|
||||
this.listBox1 = new RyzStudio.Windows.ThemedForms.TListBox();
|
||||
this.label2 = new System.Windows.Forms.Label();
|
||||
this.tButton1 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.tButton2 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.tButton3 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
this.tButton4 = new RyzStudio.Windows.ThemedForms.TButton();
|
||||
((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.lblDescription.Size = new System.Drawing.Size(359, 30);
|
||||
this.lblDescription.Text = "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)
|
||||
//
|
||||
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);
|
||||
@ -100,9 +76,9 @@ namespace AppLauncher.Windows.Forms
|
||||
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);
|
||||
@ -112,9 +88,9 @@ namespace AppLauncher.Windows.Forms
|
||||
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;
|
||||
@ -139,33 +115,36 @@ namespace AppLauncher.Windows.Forms
|
||||
this.button1.StyleOver = buttonStyle3;
|
||||
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)
|
||||
//
|
||||
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;
|
||||
//
|
||||
// tListBox1
|
||||
//
|
||||
this.tListBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
//
|
||||
// listBox1
|
||||
//
|
||||
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.tListBox1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tListBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F);
|
||||
this.tListBox1.Location = new System.Drawing.Point(159, 101);
|
||||
this.tListBox1.Margin = new System.Windows.Forms.Padding(10, 4, 10, 4);
|
||||
this.tListBox1.Name = "tListBox1";
|
||||
this.tListBox1.Padding = new System.Windows.Forms.Padding(10, 6, 7, 5);
|
||||
this.tListBox1.Size = new System.Drawing.Size(220, 180);
|
||||
this.tListBox1.SubmitButton = null;
|
||||
this.tListBox1.TabIndex = 180;
|
||||
//
|
||||
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);
|
||||
//
|
||||
// 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);
|
||||
@ -174,116 +153,12 @@ namespace AppLauncher.Windows.Forms
|
||||
this.label2.TabIndex = 181;
|
||||
this.label2.Text = "List";
|
||||
this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
|
||||
//
|
||||
// tButton1
|
||||
//
|
||||
this.tButton1.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tButton1.DefaultImage = global::AppLauncher.Resource1.plus;
|
||||
this.tButton1.DownImage = global::AppLauncher.Resource1.plus2;
|
||||
this.tButton1.LabelText = "";
|
||||
this.tButton1.Location = new System.Drawing.Point(159, 288);
|
||||
this.tButton1.Name = "tButton1";
|
||||
this.tButton1.OverImage = global::AppLauncher.Resource1.plus2;
|
||||
this.tButton1.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.tButton1.Size = new System.Drawing.Size(32, 32);
|
||||
buttonStyle4.BackColour = System.Drawing.Color.White;
|
||||
buttonStyle4.ForeImage = null;
|
||||
buttonStyle4.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton1.StyleDefault = buttonStyle4;
|
||||
buttonStyle5.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(179)))), ((int)(((byte)(179)))));
|
||||
buttonStyle5.ForeImage = null;
|
||||
buttonStyle5.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton1.StyleDown = buttonStyle5;
|
||||
buttonStyle6.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
|
||||
buttonStyle6.ForeImage = null;
|
||||
buttonStyle6.PenColour = System.Drawing.Color.White;
|
||||
this.tButton1.StyleOver = buttonStyle6;
|
||||
this.tButton1.TabIndex = 182;
|
||||
//
|
||||
// tButton2
|
||||
//
|
||||
this.tButton2.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tButton2.DefaultImage = null;
|
||||
this.tButton2.DownImage = null;
|
||||
this.tButton2.LabelText = "";
|
||||
this.tButton2.Location = new System.Drawing.Point(197, 288);
|
||||
this.tButton2.Name = "tButton2";
|
||||
this.tButton2.OverImage = null;
|
||||
this.tButton2.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.tButton2.Size = new System.Drawing.Size(32, 32);
|
||||
buttonStyle7.BackColour = System.Drawing.Color.White;
|
||||
buttonStyle7.ForeImage = null;
|
||||
buttonStyle7.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton2.StyleDefault = buttonStyle7;
|
||||
buttonStyle8.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(179)))), ((int)(((byte)(179)))));
|
||||
buttonStyle8.ForeImage = null;
|
||||
buttonStyle8.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton2.StyleDown = buttonStyle8;
|
||||
buttonStyle9.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
|
||||
buttonStyle9.ForeImage = null;
|
||||
buttonStyle9.PenColour = System.Drawing.Color.White;
|
||||
this.tButton2.StyleOver = buttonStyle9;
|
||||
this.tButton2.TabIndex = 183;
|
||||
//
|
||||
// tButton3
|
||||
//
|
||||
this.tButton3.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tButton3.DefaultImage = null;
|
||||
this.tButton3.DownImage = null;
|
||||
this.tButton3.LabelText = "";
|
||||
this.tButton3.Location = new System.Drawing.Point(235, 288);
|
||||
this.tButton3.Name = "tButton3";
|
||||
this.tButton3.OverImage = null;
|
||||
this.tButton3.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.tButton3.Size = new System.Drawing.Size(32, 32);
|
||||
buttonStyle10.BackColour = System.Drawing.Color.White;
|
||||
buttonStyle10.ForeImage = null;
|
||||
buttonStyle10.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton3.StyleDefault = buttonStyle10;
|
||||
buttonStyle11.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(179)))), ((int)(((byte)(179)))));
|
||||
buttonStyle11.ForeImage = null;
|
||||
buttonStyle11.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton3.StyleDown = buttonStyle11;
|
||||
buttonStyle12.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
|
||||
buttonStyle12.ForeImage = null;
|
||||
buttonStyle12.PenColour = System.Drawing.Color.White;
|
||||
this.tButton3.StyleOver = buttonStyle12;
|
||||
this.tButton3.TabIndex = 184;
|
||||
//
|
||||
// tButton4
|
||||
//
|
||||
this.tButton4.BackColor = System.Drawing.Color.Transparent;
|
||||
this.tButton4.DefaultImage = null;
|
||||
this.tButton4.DownImage = null;
|
||||
this.tButton4.LabelText = "";
|
||||
this.tButton4.Location = new System.Drawing.Point(273, 288);
|
||||
this.tButton4.Name = "tButton4";
|
||||
this.tButton4.OverImage = null;
|
||||
this.tButton4.Padding = new System.Windows.Forms.Padding(4, 4, 3, 3);
|
||||
this.tButton4.Size = new System.Drawing.Size(32, 32);
|
||||
buttonStyle13.BackColour = System.Drawing.Color.White;
|
||||
buttonStyle13.ForeImage = null;
|
||||
buttonStyle13.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton4.StyleDefault = buttonStyle13;
|
||||
buttonStyle14.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(179)))), ((int)(((byte)(179)))), ((int)(((byte)(179)))));
|
||||
buttonStyle14.ForeImage = null;
|
||||
buttonStyle14.PenColour = System.Drawing.Color.Black;
|
||||
this.tButton4.StyleDown = buttonStyle14;
|
||||
buttonStyle15.BackColour = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51)))));
|
||||
buttonStyle15.ForeImage = null;
|
||||
buttonStyle15.PenColour = System.Drawing.Color.White;
|
||||
this.tButton4.StyleOver = buttonStyle15;
|
||||
this.tButton4.TabIndex = 185;
|
||||
//
|
||||
//
|
||||
// EditListTileForm
|
||||
//
|
||||
//
|
||||
this.ClientSize = new System.Drawing.Size(400, 480);
|
||||
this.Controls.Add(this.tButton4);
|
||||
this.Controls.Add(this.tButton3);
|
||||
this.Controls.Add(this.tButton2);
|
||||
this.Controls.Add(this.tButton1);
|
||||
this.Controls.Add(this.label2);
|
||||
this.Controls.Add(this.tListBox1);
|
||||
this.Controls.Add(this.listBox1);
|
||||
this.Controls.Add(this.horizontalSeparator2);
|
||||
this.Controls.Add(this.button1);
|
||||
this.Controls.Add(this.label1);
|
||||
@ -298,12 +173,8 @@ namespace AppLauncher.Windows.Forms
|
||||
this.Controls.SetChildIndex(this.label1, 0);
|
||||
this.Controls.SetChildIndex(this.button1, 0);
|
||||
this.Controls.SetChildIndex(this.horizontalSeparator2, 0);
|
||||
this.Controls.SetChildIndex(this.tListBox1, 0);
|
||||
this.Controls.SetChildIndex(this.listBox1, 0);
|
||||
this.Controls.SetChildIndex(this.label2, 0);
|
||||
this.Controls.SetChildIndex(this.tButton1, 0);
|
||||
this.Controls.SetChildIndex(this.tButton2, 0);
|
||||
this.Controls.SetChildIndex(this.tButton3, 0);
|
||||
this.Controls.SetChildIndex(this.tButton4, 0);
|
||||
((System.ComponentModel.ISupportInitialize)(this.imgbxClose)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
@ -313,9 +184,24 @@ namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
if (parentPanel != null)
|
||||
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)
|
||||
{
|
||||
textBox1.Text = parentPanel.ModelInfo.Title;
|
||||
foreach (TileModel item in this.TilePanel.ModelInfo.Items)
|
||||
{
|
||||
if (item.IsGroup)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
listBox1.ListBox.Items.Add(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -327,10 +213,34 @@ namespace AppLauncher.Windows.Forms
|
||||
IsGroup = true
|
||||
};
|
||||
|
||||
parentPanel.LoadInfo(model);
|
||||
model.Items = new System.Collections.Generic.List<TileModel>();
|
||||
|
||||
foreach (TileModel item in listBox1.ListBox.Items.OfType<TileModel>())
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -1,15 +1,22 @@
|
||||
using AppLauncher.Models;
|
||||
using RyzStudio.Windows.ThemedForms;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
public class EditTileForm : TDialogForm
|
||||
{
|
||||
public static void ShowDialog(TTilePanel panel)
|
||||
public static void ShowDialog(TTilePanel control)
|
||||
{
|
||||
EditTileForm form = new EditTileForm(panel);
|
||||
EditTileForm form = new EditTileForm();
|
||||
form.TilePanel = control;
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
public static void ShowDialog(TListBox control)
|
||||
{
|
||||
EditTileForm form = new EditTileForm();
|
||||
form.ListBox = control;
|
||||
form.ShowDialog();
|
||||
}
|
||||
|
||||
@ -28,20 +35,21 @@ namespace AppLauncher.Windows.Forms
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator1;
|
||||
private RyzStudio.Windows.Forms.THorizontalSeparator horizontalSeparator2;
|
||||
private TTextBox textBox1;
|
||||
protected TTilePanel parentPanel = null;
|
||||
|
||||
public TTilePanel TilePanel { get; set; } = null;
|
||||
public TListBox ListBox { get; set; } = null;
|
||||
|
||||
public EditTileForm() : base()
|
||||
{
|
||||
InitializeComponent();
|
||||
initialiseComponents2();
|
||||
}
|
||||
|
||||
public EditTileForm(TTilePanel panel) : base()
|
||||
{
|
||||
parentPanel = panel;
|
||||
pickerBox1.ComboBox.Items.Clear();
|
||||
pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" });
|
||||
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0;
|
||||
|
||||
InitializeComponent();
|
||||
initialiseComponents2();
|
||||
pickerBox2.ComboBox.Items.Clear();
|
||||
pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
|
||||
if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
@ -339,36 +347,52 @@ namespace AppLauncher.Windows.Forms
|
||||
|
||||
}
|
||||
|
||||
private void initialiseComponents2()
|
||||
{
|
||||
pickerBox1.ComboBox.Items.Clear();
|
||||
pickerBox1.ComboBox.Items.AddRange(new string[] { "Normal", "Hidden", "Minimized", "Maximized" });
|
||||
if (pickerBox1.ComboBox.Items.Count > 0) pickerBox1.ComboBox.SelectedIndex = 0;
|
||||
|
||||
pickerBox2.ComboBox.Items.Clear();
|
||||
pickerBox2.ComboBox.Items.AddRange(new string[] { "No", "Yes" });
|
||||
if (pickerBox2.ComboBox.Items.Count > 0) pickerBox2.ComboBox.SelectedIndex = 0;
|
||||
}
|
||||
|
||||
protected override void OnShown(EventArgs e)
|
||||
{
|
||||
base.OnShown(e);
|
||||
|
||||
if (parentPanel != null)
|
||||
if (this.TilePanel != null)
|
||||
{
|
||||
textBox1.Text = parentPanel.ModelInfo.Title;
|
||||
textBox2.Text = parentPanel.ModelInfo.ProcessFilename;
|
||||
textBox3.Text = parentPanel.ModelInfo.ProcessArgument;
|
||||
textBox4.Text = parentPanel.ModelInfo.ProcessWorkingDirectory;
|
||||
pickerBox1.ComboBox.SelectedIndex = (int)parentPanel.ModelInfo.ProcessWindowStyle;
|
||||
pickerBox2.ComboBox.SelectedIndex = (parentPanel.ModelInfo.ProcessAsAdmin ? 1 : 0);
|
||||
|
||||
updateModel(this.TilePanel.ModelInfo);
|
||||
}
|
||||
else if (this.ListBox != null)
|
||||
{
|
||||
if (this.ListBox.ListBox.SelectedItem != null)
|
||||
{
|
||||
TileModel model = (this.ListBox.ListBox.SelectedItem as TileModel);
|
||||
if (model != null)
|
||||
{
|
||||
updateModel(model);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void button1_Click(object sender, EventArgs e)
|
||||
{
|
||||
TileModel model = new TileModel()
|
||||
TileModel model = buildModel();
|
||||
|
||||
if (this.TilePanel != null)
|
||||
{
|
||||
this.TilePanel.LoadInfo(model);
|
||||
}
|
||||
else if (this.ListBox != null)
|
||||
{
|
||||
int n = this.ListBox.ListBox.SelectedIndex;
|
||||
if (n >= 0)
|
||||
{
|
||||
this.ListBox.ListBox.Items.RemoveAt(n);
|
||||
this.ListBox.ListBox.Items.Insert(n, model);
|
||||
this.ListBox.ListBox.SelectedIndex = n;
|
||||
}
|
||||
}
|
||||
|
||||
this.Close();
|
||||
}
|
||||
|
||||
protected TileModel buildModel()
|
||||
{
|
||||
return new TileModel()
|
||||
{
|
||||
Title = textBox1.Text?.Trim(),
|
||||
ProcessFilename = textBox2.Text?.Trim(),
|
||||
@ -377,18 +401,22 @@ namespace AppLauncher.Windows.Forms
|
||||
ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle)pickerBox1.ComboBox.SelectedIndex,
|
||||
ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1)
|
||||
};
|
||||
}
|
||||
|
||||
parentPanel.LoadInfo(model);
|
||||
protected void updateModel(TileModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//parentPanel.Info.Title = textBox1.Text?.Trim();
|
||||
//parentPanel.Info.ProcessFilename = textBox2.Text?.Trim();
|
||||
//parentPanel.Info.ProcessArgument = textBox3.Text?.Trim();
|
||||
//parentPanel.Info.ProcessWorkingDirectory = textBox4.Text?.Trim();
|
||||
//parentPanel.Info.ProcessWindowStyle = (System.Diagnostics.ProcessWindowStyle) pickerBox1.ComboBox.SelectedIndex;
|
||||
//parentPanel.Info.ProcessAsAdmin = (pickerBox2.ComboBox.SelectedIndex == 1);
|
||||
|
||||
this.Close();
|
||||
textBox1.Text = model.Title;
|
||||
textBox2.Text = model.ProcessFilename;
|
||||
textBox3.Text = model.ProcessArgument;
|
||||
textBox4.Text = model.ProcessWorkingDirectory;
|
||||
pickerBox1.ComboBox.SelectedIndex = (int)model.ProcessWindowStyle;
|
||||
pickerBox2.ComboBox.SelectedIndex = (model.ProcessAsAdmin ? 1 : 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -13,6 +13,7 @@ namespace AppLauncher.Windows.Forms
|
||||
protected bool isDragging = false;
|
||||
protected Point startPosition = new Point();
|
||||
|
||||
protected ContextMenuStrip groupContextMenu = null;
|
||||
protected TileModel modelInfo = new TileModel();
|
||||
|
||||
public TTilePanel() : base()
|
||||
@ -77,30 +78,18 @@ namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
this.modelInfo = model;
|
||||
|
||||
this.Image = null;
|
||||
this.Title = model.Title;
|
||||
|
||||
if (this.modelInfo.IsGroup)
|
||||
{
|
||||
this.Image = Properties.Resources.folder_32;
|
||||
|
||||
invalidateGroupMenu(this.modelInfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.Image = model.Icon;
|
||||
|
||||
if (this.Image == null)
|
||||
{
|
||||
if (File.Exists(model.ProcessFilename))
|
||||
{
|
||||
try
|
||||
{
|
||||
this.Image = Icon.ExtractAssociatedIcon(model.ProcessFilename)?.ToBitmap();
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
this.Image = getIcon(model);
|
||||
}
|
||||
|
||||
toolTip1.SetToolTip(this, this.Title);
|
||||
@ -116,15 +105,13 @@ namespace AppLauncher.Windows.Forms
|
||||
return;
|
||||
}
|
||||
|
||||
if (e.Button != MouseButtons.Right)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
this.BringToFront();
|
||||
|
||||
isDragging = true;
|
||||
startPosition = e.Location;
|
||||
if (((e.Button == MouseButtons.Left) && (Control.ModifierKeys == Keys.Control)) || (e.Button == MouseButtons.Right))
|
||||
{
|
||||
isDragging = true;
|
||||
startPosition = e.Location;
|
||||
}
|
||||
}
|
||||
|
||||
private void panel_MouseUp(object sender, MouseEventArgs e)
|
||||
@ -151,67 +138,32 @@ namespace AppLauncher.Windows.Forms
|
||||
|
||||
private void panel_MouseClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (Control.ModifierKeys == Keys.Control) return;
|
||||
if (this.ModelInfo == null) return;
|
||||
|
||||
if (this.ModelInfo == null)
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.ModelInfo.IsGroup)
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
panel_MouseDoubleClick(sender, e);
|
||||
if (this.ModelInfo.IsGroup)
|
||||
{
|
||||
if (groupContextMenu != null)
|
||||
{
|
||||
groupContextMenu.Show(this, e.Location);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
panel_MouseDoubleClick(sender, e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void panel_MouseDoubleClick(object sender, MouseEventArgs e)
|
||||
{
|
||||
if (e.Button != MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (Control.ModifierKeys == Keys.Control) return;
|
||||
|
||||
if (this.ModelInfo == null)
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.ModelInfo.IsGroup)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(this.ModelInfo.ProcessFilename))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!File.Exists(this.ModelInfo.ProcessFilename))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ProcessStartInfo p = new ProcessStartInfo();
|
||||
p.FileName = this.ModelInfo.ProcessFilename;
|
||||
p.WindowStyle = this.ModelInfo.ProcessWindowStyle;
|
||||
if (!string.IsNullOrWhiteSpace(this.ModelInfo.ProcessArgument)) p.Arguments = this.ModelInfo.ProcessArgument;
|
||||
if (!string.IsNullOrWhiteSpace(this.ModelInfo.ProcessWorkingDirectory)) p.WorkingDirectory = this.ModelInfo.ProcessWorkingDirectory;
|
||||
if (this.ModelInfo.ProcessAsAdmin) p.Verb = "runas";
|
||||
|
||||
try
|
||||
{
|
||||
Process.Start(p);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
execute(this.ModelInfo);
|
||||
}
|
||||
}
|
||||
|
||||
@ -237,5 +189,105 @@ namespace AppLauncher.Windows.Forms
|
||||
this.PanelContainer.Remove(this);
|
||||
}
|
||||
|
||||
protected void execute(TileModel model)
|
||||
{
|
||||
if (model == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (model.IsGroup)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(model.ProcessFilename))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!File.Exists(model.ProcessFilename))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ProcessStartInfo p = new ProcessStartInfo();
|
||||
p.FileName = model.ProcessFilename;
|
||||
p.WindowStyle = model.ProcessWindowStyle;
|
||||
if (!string.IsNullOrWhiteSpace(model.ProcessArgument)) p.Arguments = model.ProcessArgument;
|
||||
if (!string.IsNullOrWhiteSpace(model.ProcessWorkingDirectory)) p.WorkingDirectory = model.ProcessWorkingDirectory;
|
||||
if (model.ProcessAsAdmin) p.Verb = "runas";
|
||||
|
||||
try
|
||||
{
|
||||
Process.Start(p);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
MessageBox.Show(exc.Message);
|
||||
}
|
||||
}
|
||||
|
||||
protected Image getIcon(TileModel model)
|
||||
{
|
||||
if (!File.Exists(model.ProcessFilename))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
return Icon.ExtractAssociatedIcon(model.ProcessFilename)?.ToBitmap();
|
||||
}
|
||||
catch
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void invalidateGroupMenu(TileModel model)
|
||||
{
|
||||
if (groupContextMenu == null) groupContextMenu = new ContextMenuStrip();
|
||||
groupContextMenu.Items.Clear();
|
||||
|
||||
if (model.Items == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
foreach (TileModel item in model.Items)
|
||||
{
|
||||
ToolStripItem toolItem = groupContextMenu.Items.Add(item.Title);
|
||||
toolItem.Image = getIcon(item);
|
||||
toolItem.Tag = item;
|
||||
toolItem.Click += toolItem_Click;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void toolItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (sender.GetType() != typeof(ToolStripMenuItem))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ToolStripMenuItem item = (sender as ToolStripMenuItem);
|
||||
if (item.Tag == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (item.Tag.GetType() != typeof(TileModel))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TileModel model = (item.Tag as TileModel);
|
||||
execute(model);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -35,6 +35,7 @@ namespace AppLauncher.Windows.Forms
|
||||
|
||||
protected bool isAnimating = false;
|
||||
protected bool isChecked = true;
|
||||
protected Point lastMousePosition = new Point();
|
||||
|
||||
public TTilePanelLayout(TileGroupModel model) : base()
|
||||
{
|
||||
@ -139,6 +140,8 @@ namespace AppLauncher.Windows.Forms
|
||||
{
|
||||
base.OnMouseClick(e);
|
||||
|
||||
lastMousePosition = e.Location;
|
||||
|
||||
bool isLabel = ((e.Location.X >= 0) && (e.Location.X <= this.Width) && (e.Location.Y >= 0) && (e.Location.Y <= 20));
|
||||
|
||||
if (e.Button == MouseButtons.Left)
|
||||
@ -248,7 +251,12 @@ namespace AppLauncher.Windows.Forms
|
||||
this.SetGridSize(gridSize.X, (gridSize.Y + 1));
|
||||
}
|
||||
|
||||
Point? newCoord = findLastFreeCoord();
|
||||
Point? newCoord = tile.Position;
|
||||
if ((newCoord == null) || hasTile(tile.Position))
|
||||
{
|
||||
newCoord = findLastFreeCoord();
|
||||
}
|
||||
|
||||
if (newCoord == null)
|
||||
{
|
||||
return;
|
||||
@ -385,11 +393,7 @@ namespace AppLauncher.Windows.Forms
|
||||
this.SetGridSize(groupInfo.GridSize.Width, (groupInfo.GridSize.Height + 1));
|
||||
}
|
||||
|
||||
public void EditGroup()
|
||||
{
|
||||
EditGroupForm editForm = new EditGroupForm(this);
|
||||
editForm.ShowDialog();
|
||||
}
|
||||
public void EditGroup() => EditGroupForm.ShowDialog(this);
|
||||
|
||||
public void LoadModel(TileGroupModel model)
|
||||
{
|
||||
@ -457,7 +461,7 @@ namespace AppLauncher.Windows.Forms
|
||||
return;
|
||||
}
|
||||
|
||||
Point newPosition = convertLocationToCoord(posX, posY);
|
||||
Point newPosition = convertLocationToCoord_Nearest(posX, posY);
|
||||
if (!isTileInBounds(newPosition))
|
||||
{
|
||||
return;
|
||||
@ -565,6 +569,20 @@ namespace AppLauncher.Windows.Forms
|
||||
protected Point convertCoordToLocation(Point position) => new Point((position.X * this.TileSize), ((position.Y * this.TileSize) + labelHeight));
|
||||
|
||||
protected Point convertLocationToCoord(int posX, int posY)
|
||||
{
|
||||
int x = (int)Math.Ceiling(decimal.Divide(posX, this.TileSize));
|
||||
int y = (int)Math.Ceiling(decimal.Divide((posY - labelHeight), this.TileSize));
|
||||
|
||||
x--;
|
||||
y--;
|
||||
|
||||
if (x < 0) x = 0;
|
||||
if (y < 0) y = 0;
|
||||
|
||||
return new Point(x, y);
|
||||
}
|
||||
|
||||
protected Point convertLocationToCoord_Nearest(int posX, int posY)
|
||||
{
|
||||
int x = (int)Math.Round(decimal.Divide(posX, this.TileSize));
|
||||
int y = (int)Math.Round(decimal.Divide((posY - labelHeight), this.TileSize));
|
||||
@ -715,7 +733,12 @@ namespace AppLauncher.Windows.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void addTileMenuItem_Click(object sender, EventArgs e) => AddTileForm.ShowDialog(this);
|
||||
private void addTileMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
Point coord = convertLocationToCoord(lastMousePosition.X, lastMousePosition.Y);
|
||||
|
||||
AddTileForm.ShowDialog(this, coord);
|
||||
}
|
||||
|
||||
private void addListTileMenuItem_Click(object sender, EventArgs e) => AddListTileForm.ShowDialog(this);
|
||||
|
||||
|
Reference in New Issue
Block a user