private void OnMenuStripClick(object sender, ToolStripItemClickedEventArgs e) { if (this != _lastSelected) { return; } switch (e.ClickedItem.Text) { case "Edit": EditMode = true; break; case "View As Hexadecimal": _watchVar.UseHex = !(e.ClickedItem as ToolStripMenuItem).Checked; (e.ClickedItem as ToolStripMenuItem).Checked = !(e.ClickedItem as ToolStripMenuItem).Checked; break; case "Lock Value": EditMode = false; (e.ClickedItem as ToolStripMenuItem).Checked = !(e.ClickedItem as ToolStripMenuItem).Checked; if (OffsetList.Any(o => GetIsLocked(o))) { OffsetList.ForEach(o => RemoveLock(o)); } else { OffsetList.ForEach(o => LockUpdate(o)); } break; case "Select Object": if (_watchVar.ByteCount != 4) { return; } var slotManager = ManagerContext.Current.ObjectSlotManager; slotManager.SelectedSlotsAddresses.Clear(); foreach (var otherOffset in OffsetList) { var objAddress = BitConverter.ToUInt32(_watchVar.GetByteData(otherOffset), 0); if (ManagerContext.Current.ObjectSlotManager.ObjectSlots.Count(s => s.Address == objAddress) > 0) { slotManager.SelectedSlotsAddresses.Add(objAddress); } } break; case "Highlight": var toolItem = (e.ClickedItem as ToolStripMenuItem); toolItem.Checked = !toolItem.Checked; _tablePanel.ShowBorder = toolItem.Checked; break; } }
private void _textBoxValue_MouseEnter(object sender, EventArgs e) { var lockedStatus = CheckState.Unchecked; if (OffsetList.Any(o => GetIsLocked(o))) { if (OffsetList.All(o => GetIsLocked(o))) { lockedStatus = CheckState.Checked; } else { lockedStatus = CheckState.Indeterminate; } } _lastSelected = this; if (_watchVar.IsAngle) { (AngleMenu.Items["HexView"] as ToolStripMenuItem).Checked = _watchVar.UseHex; (AngleMenu.Items["LockValue"] as ToolStripMenuItem).CheckState = lockedStatus; (AngleMenu.Items["Highlight"] as ToolStripMenuItem).Checked = _tablePanel.ShowBorder; (AngleDropDownMenu[0].DropDownItems[0] as ToolStripMenuItem).Checked = (_angleViewMode == AngleViewModeType.Recommended); (AngleDropDownMenu[0].DropDownItems[1] as ToolStripMenuItem).Checked = (_angleViewMode == AngleViewModeType.Unsigned); (AngleDropDownMenu[0].DropDownItems[2] as ToolStripMenuItem).Checked = (_angleViewMode == AngleViewModeType.Signed); (AngleDropDownMenu[0].DropDownItems[3] as ToolStripMenuItem).Checked = (_angleViewMode == AngleViewModeType.Degrees); (AngleDropDownMenu[0].DropDownItems[4] as ToolStripMenuItem).Checked = (_angleViewMode == AngleViewModeType.Radians); (AngleDropDownMenu[1] as ToolStripMenuItem).Checked = _angleTruncated; } else { (Menu.Items["HexView"] as ToolStripMenuItem).Checked = _watchVar.UseHex; (Menu.Items["LockValue"] as ToolStripMenuItem).CheckState = lockedStatus; (Menu.Items["Highlight"] as ToolStripMenuItem).Checked = _tablePanel.ShowBorder; ObjectDropDownMenu.ForEach(d => Menu.Items.Remove(d)); if (_watchVar.IsObject) { ObjectDropDownMenu.ForEach(d => Menu.Items.Add(d)); } } }
public void Update() { if (_watchVar.IsSpecial) { return; } ShowLockedImage(OffsetList.Any(o => GetIsLocked(o)), !OffsetList.All(o => GetIsLocked(o))); if (_editMode) { return; } _changedByUser = false; if (_watchVar.IsBool) { if (OffsetList.Any(o => _watchVar.GetBoolValue(o))) { if (OffsetList.All(o => _watchVar.GetBoolValue(o))) { CheckBoxCheckState = CheckState.Checked; } else { CheckBoxCheckState = CheckState.Indeterminate; } } else { CheckBoxCheckState = CheckState.Unchecked; } } else { bool firstOffset = true; foreach (var offset in OffsetList) { string newText = ""; if (_watchVar.IsAngle) { newText = _watchVar.GetAngleStringValue(offset, _angleViewMode, _angleTruncated); } else { newText = _watchVar.GetStringValue(offset); } if (firstOffset) { _textBoxValue.Text = newText; } else if (_textBoxValue.Text != newText) { _textBoxValue.Text = ""; continue; } firstOffset = false; } } _changedByUser = true; }