public void UpdateForm() { _textBoxCurrentValue.Text = GetValues(); List <bool> lockedBools = new List <bool>(); for (int i = 0; i < _watchVarWrappers.Count; i++) { lockedBools.Add(_watchVarWrappers[i].GetLockedBool(_fixedAddressLists[i])); } _checkBoxLock.CheckState = BoolUtilities.GetCheckState(lockedBools); }
public void UpdateForm() { _textBoxCurrentValue.Text = GetValues(); List <bool> lockedBools = new List <bool>(); for (int i = 0; i < _watchVarWrappers.Count; i++) { lockedBools.Add(_watchVarWrappers[i].GetLockedBool(_fixedAddressLists[i])); } _checkBoxLock.CheckState = BoolUtilities.GetCheckState(lockedBools); if (_isDoingContinuousAdd) { _addAction(true, false); } if (_isDoingContinuousSubtract) { _addAction(false, false); } }
public VariableControllerForm( List <string> varNames, List <WatchVariableWrapper> watchVarWrappers, List <List <uint> > fixedAddressLists) { _varNames = varNames; _watchVarWrappers = watchVarWrappers; _fixedAddressLists = fixedAddressLists; _isDoingContinuousAdd = false; _isDoingContinuousSubtract = false; InitializeComponent(); FormManager.AddForm(this); FormClosing += (sender, e) => FormManager.RemoveForm(this); _textBoxVarName.Text = String.Join(",", _varNames); _addAction = (bool add, bool allowToggle) => { List <string> values = ParsingUtilities.ParseStringList(_textBoxAddSubtract.Text); if (values.Count == 0) { return; } for (int i = 0; i < _watchVarWrappers.Count; i++) { _watchVarWrappers[i].AddValue(values[i % values.Count], add, allowToggle, _fixedAddressLists[i]); } }; _buttonAdd.Click += (s, e) => _addAction(true, true); _buttonSubtract.Click += (s, e) => _addAction(false, true); Timer addTimer = new Timer { Interval = 30 }; addTimer.Tick += (s, e) => { if (KeyboardUtilities.IsCtrlHeld()) { _addAction(true, false); } }; _buttonAdd.MouseDown += (sender, e) => addTimer.Start(); _buttonAdd.MouseUp += (sender, e) => addTimer.Stop(); ControlUtilities.AddContextMenuStripFunctions( _buttonAdd, new List <string>() { "Start Continuous Add", "Stop Continuous Add" }, new List <Action>() { () => _isDoingContinuousAdd = true, () => _isDoingContinuousAdd = false }); Timer subtractTimer = new Timer { Interval = 30 }; subtractTimer.Tick += (s, e) => { if (KeyboardUtilities.IsCtrlHeld()) { _addAction(false, false); } }; _buttonSubtract.MouseDown += (sender, e) => subtractTimer.Start(); _buttonSubtract.MouseUp += (sender, e) => subtractTimer.Stop(); ControlUtilities.AddContextMenuStripFunctions( _buttonSubtract, new List <string>() { "Start Continuous Subtract", "Stop Continuous Subtract" }, new List <Action>() { () => _isDoingContinuousSubtract = true, () => _isDoingContinuousSubtract = false }); ToolStripMenuItem itemInvertedAdd = new ToolStripMenuItem("Inverted"); ToolStripMenuItem itemInvertedSubtract = new ToolStripMenuItem("Inverted"); Action <bool> setInverted = (bool inverted) => { tableLayoutPanel1.Controls.Remove(_buttonAdd); tableLayoutPanel1.Controls.Remove(_buttonSubtract); if (inverted) { tableLayoutPanel1.Controls.Add(_buttonAdd, 0, 2); tableLayoutPanel1.Controls.Add(_buttonSubtract, 2, 2); } else { tableLayoutPanel1.Controls.Add(_buttonAdd, 2, 2); tableLayoutPanel1.Controls.Add(_buttonSubtract, 0, 2); } itemInvertedAdd.Checked = inverted; itemInvertedSubtract.Checked = inverted; }; itemInvertedAdd.Click += (sender, e) => setInverted(!itemInvertedAdd.Checked); itemInvertedSubtract.Click += (sender, e) => setInverted(!itemInvertedSubtract.Checked); _buttonAdd.ContextMenuStrip.Items.Add(new ToolStripSeparator()); _buttonAdd.ContextMenuStrip.Items.Add(itemInvertedAdd); _buttonSubtract.ContextMenuStrip.Items.Add(new ToolStripSeparator()); _buttonSubtract.ContextMenuStrip.Items.Add(itemInvertedSubtract); _buttonGet.Click += (s, e) => _textBoxGetSet.Text = GetValues(); _buttonSet.Click += (s, e) => SetValues(true); _textBoxGetSet.AddEnterAction(() => SetValues(true)); _checkBoxFixAddress.Click += (s, e) => ToggleFixedAddress(); _checkBoxLock.Click += (s, e) => { List <bool> lockedBools = new List <bool>(); for (int i = 0; i < _watchVarWrappers.Count; i++) { lockedBools.Add(_watchVarWrappers[i].GetLockedBool(_fixedAddressLists[i])); } bool anyLocked = lockedBools.Any(b => b); for (int i = 0; i < _watchVarWrappers.Count; i++) { _watchVarWrappers[i].ToggleLocked(!anyLocked, _fixedAddressLists[i]); } }; _checkBoxFixAddress.CheckState = BoolUtilities.GetCheckState( fixedAddressLists.ConvertAll(fixedAddressList => fixedAddressList != null)); _textBoxCurrentValue.BackColor = GetColorForCheckState(BoolUtilities.GetCheckState( fixedAddressLists.ConvertAll(fixedAddressList => fixedAddressList != null))); }
public VariableControllerForm( List <string> varNames, List <WatchVariableWrapper> watchVarWrappers, List <List <uint> > fixedAddressLists) { _varNames = varNames; _watchVarWrappers = watchVarWrappers; _fixedAddressLists = fixedAddressLists; InitializeComponent(); _textBoxVarName.Text = String.Join(",", _varNames); _buttonAdd.Click += (s, e) => { List <string> values = ParsingUtilities.ParseStringList(_textBoxAddSubtract.Text); for (int i = 0; i < _watchVarWrappers.Count; i++) { _watchVarWrappers[i].AddValue(values[i % values.Count], true, _fixedAddressLists[i]); } }; _buttonSubtract.Click += (s, e) => { List <string> values = ParsingUtilities.ParseStringList(_textBoxAddSubtract.Text); for (int i = 0; i < _watchVarWrappers.Count; i++) { _watchVarWrappers[i].AddValue(values[i % values.Count], false, _fixedAddressLists[i]); } }; _buttonGet.Click += (s, e) => _textBoxGetSet.Text = GetValues(); _buttonSet.Click += (s, e) => SetValues(); _textBoxGetSet.AddEnterAction(() => SetValues()); _checkBoxFixAddress.Click += (s, e) => ToggleFixedAddress(); _checkBoxLock.Click += (s, e) => { List <bool> lockedBools = new List <bool>(); for (int i = 0; i < _watchVarWrappers.Count; i++) { lockedBools.Add(_watchVarWrappers[i].GetLockedBool(_fixedAddressLists[i])); } bool anyLocked = lockedBools.Any(b => b); for (int i = 0; i < _watchVarWrappers.Count; i++) { _watchVarWrappers[i].ToggleLocked(!anyLocked, _fixedAddressLists[i]); } }; _checkBoxFixAddress.CheckState = BoolUtilities.GetCheckState( fixedAddressLists.ConvertAll(fixedAddressList => fixedAddressList != null)); _textBoxCurrentValue.BackColor = GetColorForCheckState(BoolUtilities.GetCheckState( fixedAddressLists.ConvertAll(fixedAddressList => fixedAddressList != null))); Timer timer = new Timer { Interval = 30 }; timer.Tick += (s, e) => UpdateForm(); timer.Start(); }