diff --git a/DisplayMagician/DisplayMagician.csproj b/DisplayMagician/DisplayMagician.csproj index aee3386..86404fa 100644 --- a/DisplayMagician/DisplayMagician.csproj +++ b/DisplayMagician/DisplayMagician.csproj @@ -128,7 +128,6 @@ - Form diff --git a/DisplayMagician/TableLayoutHelper.cs b/DisplayMagician/TableLayoutHelper.cs deleted file mode 100644 index 755897d..0000000 --- a/DisplayMagician/TableLayoutHelper.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Forms; -using System.Text; -using System.Threading.Tasks; - -namespace DisplayMagician -{ - - public static class TableLayoutHelper - { - public static void RemoveArbitraryRow(TableLayoutPanel panel, int rowIndex) - { - if (rowIndex >= panel.RowCount) - { - return; - } - - // delete all controls of row that we want to delete - for (int i = 0; i < panel.ColumnCount; i++) - { - var control = panel.GetControlFromPosition(i, rowIndex); - panel.Controls.Remove(control); - } - - // move up row controls that comes after row we want to remove - for (int i = rowIndex + 1; i < panel.RowCount; i++) - { - for (int j = 0; j < panel.ColumnCount; j++) - { - var control = panel.GetControlFromPosition(j, i); - if (control != null) - { - panel.SetRow(control, i - 1); - } - } - } - - var removeStyle = panel.RowCount - 1; - - if (panel.RowStyles.Count > removeStyle) - panel.RowStyles.RemoveAt(removeStyle); - - panel.RowCount--; - } - } -} diff --git a/DisplayMagician/UIForms/ShortcutForm.Designer.cs b/DisplayMagician/UIForms/ShortcutForm.Designer.cs index 72a98d4..36e791e 100644 --- a/DisplayMagician/UIForms/ShortcutForm.Designer.cs +++ b/DisplayMagician/UIForms/ShortcutForm.Designer.cs @@ -68,6 +68,7 @@ namespace DisplayMagician.UIForms this.rb_change_audio = new System.Windows.Forms.RadioButton(); this.rb_no_change_audio = new System.Windows.Forms.RadioButton(); this.tabp_before = new System.Windows.Forms.TabPage(); + this.flp_start_programs = new System.Windows.Forms.FlowLayoutPanel(); this.tabp_game = new System.Windows.Forms.TabPage(); this.lbl_no_game_libraries = new System.Windows.Forms.Label(); this.p_standalone = new System.Windows.Forms.Panel(); @@ -118,7 +119,6 @@ namespace DisplayMagician.UIForms this.cb_autosuggest = new System.Windows.Forms.CheckBox(); this.btn_hotkey = new System.Windows.Forms.Button(); this.lbl_hotkey_assigned = new System.Windows.Forms.Label(); - this.flp_start_programs = new System.Windows.Forms.FlowLayoutPanel(); this.tabc_shortcut.SuspendLayout(); this.tabp_display.SuspendLayout(); this.tabp_audio.SuspendLayout(); @@ -626,6 +626,19 @@ namespace DisplayMagician.UIForms this.tabp_before.TabIndex = 1; this.tabp_before.Text = "3. Choose what happens before"; // + // flp_start_programs + // + this.flp_start_programs.AllowDrop = true; + this.flp_start_programs.AutoScroll = true; + this.flp_start_programs.AutoScrollMargin = new System.Drawing.Size(5, 0); + this.flp_start_programs.AutoScrollMinSize = new System.Drawing.Size(5, 0); + this.flp_start_programs.BackColor = System.Drawing.Color.White; + this.flp_start_programs.Dock = System.Windows.Forms.DockStyle.Bottom; + this.flp_start_programs.Location = new System.Drawing.Point(3, 107); + this.flp_start_programs.Name = "flp_start_programs"; + this.flp_start_programs.Size = new System.Drawing.Size(1076, 508); + this.flp_start_programs.TabIndex = 0; + // // tabp_game // this.tabp_game.BackColor = System.Drawing.Color.Black; @@ -1248,18 +1261,6 @@ namespace DisplayMagician.UIForms this.lbl_hotkey_assigned.Visible = false; this.lbl_hotkey_assigned.Click += new System.EventHandler(this.lbl_hotkey_assigned_Click); // - // flp_start_programs - // - this.flp_start_programs.AutoScroll = true; - this.flp_start_programs.AutoScrollMargin = new System.Drawing.Size(5, 0); - this.flp_start_programs.AutoScrollMinSize = new System.Drawing.Size(5, 0); - this.flp_start_programs.BackColor = System.Drawing.Color.White; - this.flp_start_programs.Dock = System.Windows.Forms.DockStyle.Bottom; - this.flp_start_programs.Location = new System.Drawing.Point(3, 107); - this.flp_start_programs.Name = "flp_start_programs"; - this.flp_start_programs.Size = new System.Drawing.Size(1076, 508); - this.flp_start_programs.TabIndex = 0; - // // ShortcutForm // this.AcceptButton = this.btn_save; diff --git a/DisplayMagician/UIForms/ShortcutForm.cs b/DisplayMagician/UIForms/ShortcutForm.cs index f7b2602..c8b2b38 100644 --- a/DisplayMagician/UIForms/ShortcutForm.cs +++ b/DisplayMagician/UIForms/ShortcutForm.cs @@ -56,6 +56,12 @@ namespace DisplayMagician.UIForms private Keys _hotkey = Keys.None; private static readonly NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); + private StartProgramControl startProgramControlToMove; + private int indexOfItemUnderMouseToDrag; + private int indexOfItemUnderMouseToDrop; + private Rectangle dragBoxFromMouseDown; + private Point screenOffset; + public ShortcutForm(ShortcutItem shortcutToEdit) { InitializeComponent(); @@ -1185,6 +1191,9 @@ namespace DisplayMagician.UIForms startProgramControl.Dock = DockStyle.None; startProgramControl.Margin = startProgramMargin; startProgramControl.Width = flp_start_programs.Width - 40; + startProgramControl.MouseDown += new MouseEventHandler(StartProgramControl_MouseDown); + startProgramControl.DragOver += new DragEventHandler(StartProgramControl_DragOver); + startProgramControl.AllowDrop = true; //startProgramControl.Height = 170; //startProgramControl.Height = pnl_start_programs.Height; @@ -2123,5 +2132,44 @@ namespace DisplayMagician.UIForms ShortcutRepository.RunShortcut(chosenShortcut); } } + + /*private void flp_start_programs_DragEnter(object sender, DragEventArgs e) + { + e.Effect = DragDropEffects.All; + }*/ + + /* private void flp_start_programs_DragDrop(object sender, DragEventArgs e) + { + StartProgramControl startProgramControlBeingMoved = (StartProgramControl)e.Data.GetData(typeof(StartProgramControl)); + + Point p = flp_start_programs.PointToClient(new Point(e.X, e.Y)); + var startProgramControl = flp_start_programs.GetChildAtPoint(p); + int index = flp_start_programs.Controls.GetChildIndex(startProgramControl, false); + flp_start_programs.Controls.SetChildIndex(startProgramControlBeingMoved, index); + flp_start_programs.Invalidate(); + }*/ + + private void StartProgramControl_MouseDown(object sender, MouseEventArgs e) + { + //base.OnMouseDown(e); + DoDragDrop(sender, DragDropEffects.All); + } + + private void StartProgramControl_DragOver(object sender, DragEventArgs e) + { + //base.OnDragOver(e); + // is another dragable + if (e.Data.GetData(typeof(StartProgramControl)) != null) + { + FlowLayoutPanel p = (FlowLayoutPanel)(sender as StartProgramControl).Parent; + //Current Position + int myIndex = p.Controls.GetChildIndex((sender as StartProgramControl)); + + //Dragged to control to location of next picturebox + StartProgramControl q = (StartProgramControl)e.Data.GetData(typeof(StartProgramControl)); + p.Controls.SetChildIndex(q, myIndex); + } + } + } } \ No newline at end of file diff --git a/DisplayMagician/UIForms/StartProgramControl.Designer.cs b/DisplayMagician/UIForms/StartProgramControl.Designer.cs index 225f9b4..478dce2 100644 --- a/DisplayMagician/UIForms/StartProgramControl.Designer.cs +++ b/DisplayMagician/UIForms/StartProgramControl.Designer.cs @@ -128,13 +128,13 @@ namespace DisplayMagician.UIForms this.btn_delete.UseVisualStyleBackColor = true; this.btn_delete.Click += new System.EventHandler(this.btn_delete_Click); // - // cb_start_program + // cb_disable_start_program // this.cb_disable_start_program.AutoSize = true; this.cb_disable_start_program.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.cb_disable_start_program.ForeColor = System.Drawing.Color.White; this.cb_disable_start_program.Location = new System.Drawing.Point(78, 121); - this.cb_disable_start_program.Name = "cb_start_program"; + this.cb_disable_start_program.Name = "cb_disable_start_program"; this.cb_disable_start_program.Size = new System.Drawing.Size(312, 24); this.cb_disable_start_program.TabIndex = 28; this.cb_disable_start_program.Text = "Temporarily disable starting this program"; @@ -154,6 +154,7 @@ namespace DisplayMagician.UIForms // // StartProgramControl // + this.AllowDrop = true; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit; this.AutoSize = true; this.BackColor = System.Drawing.Color.Black; diff --git a/README.md b/README.md index 2faab48..efa0741 100644 --- a/README.md +++ b/README.md @@ -120,4 +120,4 @@ with this program; if not, write to the Free Software Foundation, Inc., Thanks for the work and the time that all of our contributors put into making this a better project. Following is a short list, containing the name of some of these people: * Original HelioDisplayManagement project created by the amazing Soroush Falahati -* Readme file created by @timegrinder \ No newline at end of file +* Various icons made by Freepik from www.flaticon.com \ No newline at end of file