private void InitializeCommands() { SaveApplicationSettingCommand = new RelayCommand(p => { var defaultAction = actionProvider.GetDefaultActions(); defaultAction.X = X; defaultAction.Y = Y; defaultAction.IsKeepAfterUpdate = IsKeepAfterUpdate; defaultAction.Dict = defaultActionViewModelDict.ToDictionary(k => k.Key, v => v.Value.Select(vm => vm.ConvertBackToAction()).ToList()); if (actionProvider.SaveDefaultActions(defaultAction)) { ; } SettingSaved?.Invoke(this, EventArgs.Empty); }); }
/// <summary> /// Scale the default action to macro resolution /// </summary> /// <param name="macro"></param> /// <param name="actionList"></param> /// <returns></returns> private IList <IAction> ScaleActionsToMacroResolution(MacroTemplate macro, IList <IAction> actionList) { var newList = new List <IAction>(); //double scaleX = macro.OriginalX / 1280.0; //double scaleY = macro.OriginalY / 720.0; GlobalData.CustomX = macro.OriginalX; GlobalData.CustomY = macro.OriginalY; GlobalData.OriginalX = actionProvider.GetDefaultActions().X; GlobalData.OriginalY = actionProvider.GetDefaultActions().Y; GlobalData.Emulator = Emulator.Nox; foreach (var action in actionList) { switch (action.BasicAction) { case BasicAction.Click: var copied = this.autoMapper.SimpleAutoMap <Click, Click>(action as Click); //copied.ClickPoint = new System.Windows.Point(Math.Round((action as Click).ClickPoint.X * scaleX), Math.Round((action as Click).ClickPoint.Y * scaleY)); copied.Scale(); newList.Add(copied); break; case BasicAction.Swipe: var copiedSwipe = this.autoMapper.SimpleAutoMap <Swipe, Swipe>(action as Swipe); //copiedSwipe.PointList = copiedSwipe.PointList.Select(sp => new SwipePoint(sp)).ToList(); copiedSwipe.Scale(); newList.Add(copiedSwipe); break; default: newList.Add(action); break; } } ApplyConvertSetting(macro); return(newList); }