private static void AssertStringParse(string sMouseButtonCombo, XMouseButtonCombo vMouseButtonCombo, CultureInfo culture, string message) { XMouseButtonCombo actualValue = XMouseButtonCombo.Parse(sMouseButtonCombo, culture); //System.Diagnostics.Trace.WriteLine(actualValue); Assert.AreEqual(vMouseButtonCombo, actualValue, "{0}: converting {1} which is {2}", message, sMouseButtonCombo, actualValue); }
public void TestEmptyEquality() { Assert.AreEqual(XMouseButtonCombo.None, XMouseButtonCombo.None, "None should be equal to None."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(), "None should be equal to value constructed with default ctor."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(XMouseButtons.None), "None should be equal to value constructed with no mouse buttons."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(XMouseButtons.None, ModifierFlags.None), "None should be equal to value constructed with no mouse buttons and no modifiers."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(XMouseButtons.None, ModifierFlags.Shift), "None should be equal to value constructed with no mouse buttons and non-zero modifiers."); Assert.AreEqual(XMouseButtonCombo.None, (XMouseButtonCombo)XMouseButtons.None, "None should be equal to value cast from no mouse buttons."); Assert.AreEqual(XMouseButtonCombo.None, (XMouseButtonCombo)XKeys.None, "None should be equal to value cast from no XKeys."); Assert.AreEqual(XMouseButtonCombo.None, (XMouseButtonCombo)(XKeys.Control | XKeys.None), "None should be equal to value cast from modified XKeys.None."); XMouseButtonCombo value = new XMouseButtonCombo(XMouseButtons.Left, ModifierFlags.Shift); value.MouseButtons = XMouseButtons.None; Assert.AreEqual(XMouseButtonCombo.None, value, "None should be equal to value which had a modifier and has had its mouse button field modified to be empty."); XMouseButtonCombo value2 = new XMouseButtonCombo(XMouseButtons.Left, ModifierFlags.None); value2.MouseButtons = XMouseButtons.None; Assert.AreEqual(XMouseButtonCombo.None, value2, "None should be equal to value which has had its mouse button field modified to be empty."); XMouseButtonCombo value3 = new XMouseButtonCombo(XMouseButtons.Left, ModifierFlags.Shift); value3.Modifiers = ModifierFlags.None; value3.MouseButtons = XMouseButtons.None; Assert.AreEqual(XMouseButtonCombo.None, value3, "None should be equal to value which has had its fields modified to be empty."); }
private static void AssertStringFormat(string sMouseButtonCombo, XMouseButtonCombo vMouseButtonCombo, CultureInfo culture, string message) { string actualString = vMouseButtonCombo.ToString(culture); //System.Diagnostics.Trace.WriteLine(actualString); Assert.AreEqual(sMouseButtonCombo, actualString, "{0}: converting [{1},{2}] which is {3}", message, vMouseButtonCombo.MouseButtons, vMouseButtonCombo.Modifiers, vMouseButtonCombo); }
private bool ValidateMouseToolMouseButton(AbstractActionModelTreeLeafAction node, XMouseButtons mouseButton) { // if we're just synchronizing the value due to another update action, short the validation request if (_updatingKeyStrokes) { return(true); } // check that we're not setting it to none if (mouseButton == XMouseButtons.None) { return(false); } // check for presence of a global tool for this button var defaultMouseButtonCombo = new XMouseButtonCombo(mouseButton, ModifierFlags.None); if (_defaultMouseToolsMap.IsAssigned(defaultMouseButtonCombo)) { IList <AbstractActionModelTreeLeafAction> actions = _actionMap[_defaultMouseToolsMap[defaultMouseButtonCombo]]; if (actions.Count > 0) { string message = string.Format(SR.MessageMouseButtonActiveToolAssignmentConflict, defaultMouseButtonCombo, actions[0].Label); DialogBoxAction result = base.Host.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo); if (result != DialogBoxAction.Yes) { return(false); } } } return(true); }
public void TestEmptyStringParse() { // empty strings should parse to XMouseButtonCombo.None XMouseButtonCombo mouseButtonCombo = XMouseButtonCombo.Parse(string.Empty); Assert.AreEqual(XMouseButtonCombo.None, mouseButtonCombo, "empty strings should parse to XMouseButtonCombo.None"); }
public void TestEquality() { XMouseButtonCombo value = new XMouseButtonCombo(XMouseButtons.Left, ModifierFlags.Shift); value.MouseButtons = XMouseButtons.XButton2; value.Modifiers = ModifierFlags.None; Assert.AreEqual(new XMouseButtonCombo(XMouseButtons.XButton2), new XMouseButtonCombo(XMouseButtons.XButton2, ModifierFlags.None)); Assert.AreEqual(new XMouseButtonCombo(XMouseButtons.XButton2), new XMouseButtonCombo(XMouseButtons.XButton2, ModifierFlags.None)); Assert.AreEqual(new XMouseButtonCombo(XMouseButtons.XButton2), value); }
public void TestInvalidCastFromXKeys() { try { XMouseButtonCombo combo = (XMouseButtonCombo) (XKeys.Shift | XKeys.Attn); Assert.Fail("Casting a key stroke as an XMouseButtonCombo should be invalid"); } catch (InvalidCastException) {} }
public MouseImageViewerToolPropertyComponent(AbstractActionModelTreeNode selectedNode, XMouseButtons activeMouseButtons, XMouseButtons globalMouseButtons, ModifierFlags globalModifiers, bool initiallyActive) : base(selectedNode) { _activeMouseButtons = activeMouseButtons; _globalMouseButtonCombo = new XMouseButtonCombo(globalMouseButtons, globalModifiers); _globalMouseButtons = globalMouseButtons; _globalModifiers = globalModifiers; _initiallyActive = initiallyActive; }
public void TestInvalidElementStringParse() { try { // on the other hand, invalid combo strings should throw exceptions during conversion XMouseButtonCombo.Parse("NonExistentCombo"); Assert.Fail("Expected an exception because the parsed string has an invalid element name"); } catch (FormatException) {} }
public void TestInvalidStringParse() { try { // on the other hand, invalid combo strings should throw exceptions during conversion XMouseButtonCombo.Parse("\n"); Assert.Fail("Expected an exception because the parsed string has an invalid character"); } catch (FormatException) {} }
public void TestInvalidModifiersOnlyStringParse() { try { // on the other hand, invalid combo strings should throw exceptions during conversion XMouseButtonCombo.Parse("Ctrl+Shift"); Assert.Fail("Expected an exception because the parsed string has no mouse button, only modifiers"); } catch (FormatException) {} }
public void TestInvalidElementLeadingSeparatorStringParse() { try { // on the other hand, invalid combo strings should throw exceptions during conversion XMouseButtonCombo.Parse("+Right Mouse Button"); Assert.Fail("Expected an exception because of a leading separator in the parse string"); } catch (FormatException) {} }
private static void AssertEquivalency(string sMouseButtonCombo, XMouseButtonCombo vMouseButtonCombo, CultureInfo culture, string message) { AssertStringFormat(sMouseButtonCombo, vMouseButtonCombo, culture, message); AssertStringParse(sMouseButtonCombo, vMouseButtonCombo, culture, message); }
private bool ValidateDefaultMouseButtons(AbstractActionModelTreeLeafAction node, XMouseButtonCombo defaultMouseButtonCombo) { // if we're just synchronizing the value due to another update action, short the validation request if (_updatingKeyStrokes) { return(true); } // check for presence of another global tool for this button if (_defaultMouseToolsMap.IsAssignedToOther(defaultMouseButtonCombo, node.ActionId)) { IList <AbstractActionModelTreeLeafAction> actions = _actionMap[_defaultMouseToolsMap[defaultMouseButtonCombo]]; if (actions.Count > 0) { string message = string.Format(SR.MessageMouseButtonGlobalToolAlreadyAssigned, defaultMouseButtonCombo, actions[0].Label); DialogBoxAction result = base.Host.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo); if (result != DialogBoxAction.Yes) { return(false); } } } // check for presence of an active tool for this button var unmodifiedMouseButton = defaultMouseButtonCombo.MouseButtons; if (defaultMouseButtonCombo.Modifiers == ModifierFlags.None && _mouseButtonMap[unmodifiedMouseButton].Count > 0) { IList <AbstractActionModelTreeLeafAction> actions = _actionMap[_mouseButtonMap[unmodifiedMouseButton][0]]; if (actions.Count > 0) { string message = string.Format(SR.MessageMouseButtonGlobalToolAssignmentConflict, unmodifiedMouseButton, actions[0].Label); DialogBoxAction result = base.Host.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo); if (result != DialogBoxAction.Yes) { return(false); } } } return(true); }
private void UpdateDefaultMouseButtons(AbstractActionModelTreeLeafAction node, XMouseButtonCombo defaultMouseButtonCombo) { if (_updatingKeyStrokes) { return; } _updatingKeyStrokes = true; try { // find the old default mouse buttons to which this tool was assigned var oldMouseButtons = _defaultMouseToolsMap.FindAssignment(node.ActionId, XMouseButtonCombo.None); // check if updating this value actually causes a change if (oldMouseButtons == defaultMouseButtonCombo) { return; } // clear the old assignment if (oldMouseButtons != XMouseButtonCombo.None) { _defaultMouseToolsMap[oldMouseButtons] = string.Empty; } // update the default tool map if (defaultMouseButtonCombo != XMouseButtonCombo.None) { _defaultMouseToolsMap[defaultMouseButtonCombo] = node.ActionId; } } finally { _updatingKeyStrokes = false; } }
public ImageViewerActionModelConfigurationComponent(string @namespace, string site, CustomizeViewerActionModelsComponent owner) : base(@namespace, site, owner._imageViewer.ExportedActions, owner._imageViewer.DesktopWindow, site == _globalToolbarActionSite) { _owner = owner; // just keep a single copy of it for a consistent startup state - we don't store the unsaved changes in here _toolProfile = MouseToolSettingsProfile.Current.Clone(); this.ValidationPolicy = _owner._validationPolicy; // update the keystroke and action maps foreach (AbstractActionModelTreeLeafAction node in base.ActionNodeMap.ActionNodes) { if (node is AbstractActionModelTreeLeafClickAction) { AbstractActionModelTreeLeafClickAction clickActionNode = (AbstractActionModelTreeLeafClickAction)node; if (clickActionNode.KeyStroke != XKeys.None) { if (_owner._keyStrokeMap.IsAssignedToOther(clickActionNode.KeyStroke, clickActionNode.ActionId)) { clickActionNode.KeyStroke = XKeys.None; } else { _owner._keyStrokeMap[clickActionNode.KeyStroke] = clickActionNode.ActionId; } } } if (_toolProfile.HasEntryByActivationActionId(node.ActionId)) { var mouseToolSetting = _toolProfile.GetEntryByActivationActionId(node.ActionId); var mouseButtonValue = mouseToolSetting.MouseButton.GetValueOrDefault(XMouseButtons.Left); if (mouseButtonValue != XMouseButtons.None) { if (mouseToolSetting.InitiallyActive.GetValueOrDefault(false)) { if (!_owner._initialMouseToolsMap.IsAssignedToOther(mouseButtonValue, node.ActionId)) { _owner._initialMouseToolsMap[mouseButtonValue] = node.ActionId; } } if (!_owner._mouseButtonMap[mouseButtonValue].Contains(node.ActionId)) { _owner._mouseButtonMap.Add(mouseButtonValue, node.ActionId); } } var defaultMouseButtonValue = mouseToolSetting.DefaultMouseButton.GetValueOrDefault(XMouseButtons.None); var defaultMouseButtonModifiers = mouseToolSetting.DefaultMouseButtonModifiers.GetValueOrDefault(ModifierFlags.None); if (defaultMouseButtonValue != XMouseButtons.None) { var defaultMouseButton = new XMouseButtonCombo(defaultMouseButtonValue, defaultMouseButtonModifiers); if (!_owner._defaultMouseToolsMap.IsAssignedToOther(defaultMouseButton, node.ActionId)) { _owner._defaultMouseToolsMap[defaultMouseButton] = node.ActionId; } } } } foreach (string actionId in base.ActionNodeMap.ActionIds) { _owner._actionMap.AddRange(actionId, base.ActionNodeMap[actionId]); } }
public void TestEmptyEquality() { Assert.AreEqual(XMouseButtonCombo.None, XMouseButtonCombo.None, "None should be equal to None."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(), "None should be equal to value constructed with default ctor."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(XMouseButtons.None), "None should be equal to value constructed with no mouse buttons."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(XMouseButtons.None, ModifierFlags.None), "None should be equal to value constructed with no mouse buttons and no modifiers."); Assert.AreEqual(XMouseButtonCombo.None, new XMouseButtonCombo(XMouseButtons.None, ModifierFlags.Shift), "None should be equal to value constructed with no mouse buttons and non-zero modifiers."); Assert.AreEqual(XMouseButtonCombo.None, (XMouseButtonCombo) XMouseButtons.None, "None should be equal to value cast from no mouse buttons."); Assert.AreEqual(XMouseButtonCombo.None, (XMouseButtonCombo) XKeys.None, "None should be equal to value cast from no XKeys."); Assert.AreEqual(XMouseButtonCombo.None, (XMouseButtonCombo) (XKeys.Control | XKeys.None), "None should be equal to value cast from modified XKeys.None."); XMouseButtonCombo value = new XMouseButtonCombo(XMouseButtons.Left, ModifierFlags.Shift); value.MouseButtons = XMouseButtons.None; Assert.AreEqual(XMouseButtonCombo.None, value, "None should be equal to value which had a modifier and has had its mouse button field modified to be empty."); XMouseButtonCombo value2 = new XMouseButtonCombo(XMouseButtons.Left, ModifierFlags.None); value2.MouseButtons = XMouseButtons.None; Assert.AreEqual(XMouseButtonCombo.None, value2, "None should be equal to value which has had its mouse button field modified to be empty."); XMouseButtonCombo value3 = new XMouseButtonCombo(XMouseButtons.Left, ModifierFlags.Shift); value3.Modifiers = ModifierFlags.None; value3.MouseButtons = XMouseButtons.None; Assert.AreEqual(XMouseButtonCombo.None, value3, "None should be equal to value which has had its fields modified to be empty."); }