public void Customize() { try { if (SettingsStore.IsSupported && !SettingsStore.IsStoreOnline) { base.Context.DesktopWindow.ShowMessageBox(Desktop.SR.MessageSettingsStoreOffline, MessageBoxActions.Ok); return; } CustomizeViewerActionModelsComponent component = new CustomizeViewerActionModelsComponent(this.ImageViewer); DialogBoxCreationArgs args = new DialogBoxCreationArgs(component, SR.TitleCustomizeActionModels, "CustomizeActionModels") { AllowUserResize = true }; ApplicationComponent.LaunchAsDialog(this.Context.DesktopWindow, args); } catch (Exception ex) { ExceptionHandler.Report(ex, SR.MessageActionModelUpdateFailure, Context.DesktopWindow); } }
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]); } }