WingMan

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 5  →  ?path2? @ 6
/trunk/WingMan/WingManForm.cs
@@ -3,6 +3,7 @@
using System.Drawing;
using System.Linq;
using System.Net;
using System.Threading.Tasks;
using System.Windows.Forms;
using Gma.System.MouseKeyHook;
using WingMan.Communication;
@@ -17,8 +18,10 @@
{
InitializeComponent();
 
MQTTCommunication = new MQTTCommunication();
FormTaskScheduler = TaskScheduler.FromCurrentSynchronizationContext();
 
MQTTCommunication = new MQTTCommunication(FormTaskScheduler);
 
MouseKeyBindings = new MouseKeyBindings(new List<MouseKeyBinding>());
 
HelmBindingSource = new BindingSource
@@ -49,44 +52,42 @@
 
private void OnMouseKeyBindingsSynchronized(object sender, MouseKeyBindingsSynchronizedEventArgs e)
{
this.Invoke((MethodInvoker) delegate
foreach (var binding in e.ExchangeBindings)
{
foreach (var binding in e.ExchangeBindings)
{
ActivityTextBox.AppendText(
$"{Strings.Synchronized_bindings_with_client} : {binding.Nick} : {binding.Names.Count}{Environment.NewLine}");
ActivityTextBox.AppendText(
$"{Strings.Synchronized_bindings_with_client} : {binding.Nick} : {binding.Names.Count}{Environment.NewLine}");
 
 
var exchangeBindings = MouseKeyBindingsExchange.ExchangeBindings.FirstOrDefault(exchangeBinding =>
string.Equals(exchangeBinding.Nick, binding.Nick, StringComparison.Ordinal));
var exchangeBindings = MouseKeyBindingsExchange.ExchangeBindings.FirstOrDefault(exchangeBinding =>
string.Equals(exchangeBinding.Nick, binding.Nick, StringComparison.Ordinal));
 
// If the nick has not been registered add it.
if (exchangeBindings == null)
{
MouseKeyBindingsExchange.ExchangeBindings.Add(binding);
continue;
}
// If the nick has not been registered add it.
if (exchangeBindings == null)
{
MouseKeyBindingsExchange.ExchangeBindings.Add(binding);
continue;
}
 
// If the nick has been added, then update the binding names.
exchangeBindings.Names = binding.Names;
// If the nick has been added, then update the binding names.
exchangeBindings.Names = binding.Names;
 
// Update wing list box.
var selectedExchangeBinding = (MouseKeyBindingExchange)WingBindingsComboBox.SelectedItem;
if (selectedExchangeBinding == null || !string.Equals(selectedExchangeBinding.Nick, binding.Nick))
continue;
// Update wing list box.
var selectedExchangeBinding = (MouseKeyBindingExchange) WingBindingsComboBox.SelectedItem;
if (selectedExchangeBinding == null || !string.Equals(selectedExchangeBinding.Nick, binding.Nick))
continue;
 
WingBindingsListBox.Items.Clear();
WingBindingsListBox.DisplayMember = "Name";
WingBindingsListBox.ValueMember = "Name";
WingBindingsListBox.Items.AddRange(exchangeBindings.Names.Select(name => (object)name).ToArray());
WingBindingsListBox.Items.Clear();
WingBindingsListBox.DisplayMember = "Name";
WingBindingsListBox.ValueMember = "Name";
WingBindingsListBox.Items.AddRange(exchangeBindings.Names.Select(name => (object) name).ToArray());
 
}
}
 
WingBindingSource.ResetBindings(false);
 
});
WingBindingSource.ResetBindings(false);
}
 
private static TaskScheduler FormTaskScheduler { get; set; }
 
private static IKeyboardMouseEvents MouseKeyApplicationHook { get; set; }
 
private List<string> MouseKeyCombo { get; set; }
@@ -329,9 +330,9 @@
LobbySayTextBox.Text = string.Empty;
}
 
private void WingBindingsComboBoxIndexChanged(object sender, EventArgs e)
private void WingBindingsComboBoxSelectionChangeCompleted(object sender, EventArgs e)
{
var exchangeBinding = (MouseKeyBindingExchange) WingBindingsComboBox.SelectedItem;
var exchangeBinding = (MouseKeyBindingExchange)WingBindingsComboBox.SelectedItem;
if (exchangeBinding == null)
return;