diff --git a/Source/Core/Controls/ActionSelectorControl.cs b/Source/Core/Controls/ActionSelectorControl.cs index b56232eeb65cdf8db7a2b8adb947a7c96c8b7116..8e2ae8b6e354bd79ac95865960bf3d2965cb1ef2 100644 --- a/Source/Core/Controls/ActionSelectorControl.cs +++ b/Source/Core/Controls/ActionSelectorControl.cs @@ -50,6 +50,7 @@ namespace CodeImp.DoomBuilder.Controls { // Initialize InitializeComponent(); + number.MouseWheel += number_OnMouseWheel; //mxd } // This returns the numeric value @@ -223,6 +224,30 @@ namespace CodeImp.DoomBuilder.Controls // Allow CTRL+X, CTRL+C and CTRL+V if(controlpressed && ((e.KeyCode == Keys.X) || (e.KeyCode == Keys.C) || (e.KeyCode == Keys.V))) return; + //mxd. Scroll action list using arrow keys + if (e.KeyCode == Keys.Down) + { + if (list.SelectedIndex > 0) + { + list.SelectedIndex--; + list_SelectionChangeCommitted(list, EventArgs.Empty); + } + // Cancel this + e.Handled = true; + return; + } + if(e.KeyCode == Keys.Up) + { + if (list.SelectedIndex < list.Items.Count) + { + list.SelectedIndex++; + list_SelectionChangeCommitted(list, EventArgs.Empty); + } + // Cancel this + e.Handled = true; + return; + } + // Not numeric or control key? if(((e.KeyValue < 48) || (e.KeyValue > 57)) && (e.KeyCode != Keys.Back) && (e.KeyCode != Keys.Left) && @@ -246,6 +271,21 @@ namespace CodeImp.DoomBuilder.Controls e.Handled = true; } } + + //mxd. Scrolls action list using mouse wheel + private void number_OnMouseWheel(object sender, MouseEventArgs e) + { + if (e.Delta < 0 && list.SelectedIndex > 0) + { + list.SelectedIndex--; + list_SelectionChangeCommitted(list, EventArgs.Empty); + } + else if (e.Delta > 0 && list.SelectedIndex < list.Items.Count) + { + list.SelectedIndex++; + list_SelectionChangeCommitted(list, EventArgs.Empty); + } + } // Selection made private void list_SelectionChangeCommitted(object sender, EventArgs e)