EditMenuCommand(Lazy<IUndoCommandService> undoCommandService, Lazy<IAddUpdatedNodesHelperProvider> addUpdatedNodesHelperProvider, IAppService appService, IPickFilename pickFilename) : base(appService.DocumentTreeView) { this.undoCommandService = undoCommandService; this.addUpdatedNodesHelperProvider = addUpdatedNodesHelperProvider; this.appService = appService; this.pickFilename = pickFilename; }
AppSettingsPageProvider(IBackgroundImageSettingsService backgroundImageSettingsService, IPickFilename pickFilename, IPickDirectory pickDirectory) { this.backgroundImageSettingsService = backgroundImageSettingsService; this.pickFilename = pickFilename; this.pickDirectory = pickDirectory; }
public AppSettingsPageImpl(IBackgroundImageSettingsService backgroundImageSettingsService, IPickFilename pickFilename, IPickDirectory pickDirectory, ImageSettingsInfo[] settings) { if (backgroundImageSettingsService == null) throw new ArgumentNullException(nameof(backgroundImageSettingsService)); if (pickFilename == null) throw new ArgumentNullException(nameof(pickFilename)); if (pickDirectory == null) throw new ArgumentNullException(nameof(pickDirectory)); if (settings == null) throw new ArgumentNullException(nameof(settings)); if (settings.Length == 0) throw new ArgumentException(); Debug.Assert(settings.All(a => a.Lazy.Value.UserVisible)); this.backgroundImageSettingsService = backgroundImageSettingsService; this.pickFilename = pickFilename; this.pickDirectory = pickDirectory; Settings = new ObservableCollection<Settings>(settings.OrderBy(a => a.Lazy.Value.UIOrder).Select(a => new Settings(a))); stretchVM = new EnumListVM(EnumVM.Create(false, typeof(Stretch)), (a, b) => currentItem.RawSettings.Stretch = (Stretch)stretchVM.SelectedItem); stretchDirectionVM = new EnumListVM(stretchDirectionList, (a, b) => currentItem.RawSettings.StretchDirection = (StretchDirection)stretchDirectionVM.SelectedItem); imagePlacementVM = new EnumListVM(imagePlacementList, (a, b) => currentItem.RawSettings.ImagePlacement = (ImagePlacement)imagePlacementVM.SelectedItem); opacityVM = new DoubleVM(a => { if (!opacityVM.HasError) currentItem.RawSettings.Opacity = FilterOpacity(opacityVM.Value); }); horizontalOffsetVM = new DoubleVM(a => { if (!horizontalOffsetVM.HasError) currentItem.RawSettings.HorizontalOffset = FilterOffset(horizontalOffsetVM.Value); }); verticalOffsetVM = new DoubleVM(a => { if (!verticalOffsetVM.HasError) currentItem.RawSettings.VerticalOffset = FilterOffset(verticalOffsetVM.Value); }); leftMarginWidthPercentVM = new DoubleVM(a => { if (!leftMarginWidthPercentVM.HasError) currentItem.RawSettings.LeftMarginWidthPercent = FilterMarginPercent(leftMarginWidthPercentVM.Value); }); rightMarginWidthPercentVM = new DoubleVM(a => { if (!rightMarginWidthPercentVM.HasError) currentItem.RawSettings.RightMarginWidthPercent = FilterMarginPercent(rightMarginWidthPercentVM.Value); }); topMarginHeightPercentVM = new DoubleVM(a => { if (!topMarginHeightPercentVM.HasError) currentItem.RawSettings.TopMarginHeightPercent = FilterMarginPercent(topMarginHeightPercentVM.Value); }); bottomMarginHeightPercentVM = new DoubleVM(a => { if (!bottomMarginHeightPercentVM.HasError) currentItem.RawSettings.BottomMarginHeightPercent = FilterMarginPercent(bottomMarginHeightPercentVM.Value); }); maxHeightVM = new DoubleVM(a => { if (!maxHeightVM.HasError) currentItem.RawSettings.MaxHeight = FilterLength(maxHeightVM.Value); }); maxWidthVM = new DoubleVM(a => { if (!maxWidthVM.HasError) currentItem.RawSettings.MaxWidth = FilterLength(maxWidthVM.Value); }); zoomVM = new DoubleVM(a => { if (!zoomVM.HasError) currentItem.RawSettings.Zoom = FilterZoom(zoomVM.Value); }); intervalVM = new DefaultConverterVM<TimeSpan>(a => { if (!intervalVM.HasError) currentItem.RawSettings.Interval = intervalVM.Value; }); CurrentItem = Settings.FirstOrDefault(a => a.Id == backgroundImageSettingsService.LastSelectedId) ?? Settings[0]; }
public DebuggerSettingsVM(IPickFilename pickFilename) { if (pickFilename == null) throw new ArgumentNullException(); this.pickFilename = pickFilename; }
public DebuggerAppSettingsPage(DebuggerSettingsImpl debuggerSettingsImpl, IPickFilename pickFilename) { _global_settings = debuggerSettingsImpl; Settings = debuggerSettingsImpl.Clone(); BreakProcessKind = debuggerSettingsImpl.BreakProcessKind; this.pickFilename = pickFilename; }
DebuggerAppSettingsPageProvider(DebuggerSettingsImpl debuggerSettingsImpl, IPickFilename pickFilename) { this.debuggerSettingsImpl = debuggerSettingsImpl; }
public DebuggerAppSettingsTab(DebuggerSettingsImpl debuggerSettingsImpl, IPickFilename pickFilename) { this._global_settings = debuggerSettingsImpl; this.debuggerSettings = debuggerSettingsImpl.Clone(); this.BreakProcessType = debuggerSettingsImpl.BreakProcessType; this.pickFilename = pickFilename; }
DocumentsCommand(Lazy<IUndoCommandService> undoCommandService, Lazy<IAddUpdatedNodesHelperProvider> addUpdatedNodesHelperProvider, IAppService appService, IPickFilename pickFilename) { this.undoCommandService = undoCommandService; this.addUpdatedNodesHelperProvider = addUpdatedNodesHelperProvider; this.appService = appService; this.pickFilename = pickFilename; }
static void Execute(IPickFilename pickFilename, Lazy<IAddUpdatedNodesHelperProvider> addUpdatedNodesHelperProvider, Lazy<IUndoCommandService> undoCommandService, IAppService appService, DocumentTreeNodeData[] nodes) { if (!CanExecute(nodes)) return; var asmNode = nodes[0] as AssemblyDocumentNode; ModuleDocumentNode modNode; if (asmNode != null) { asmNode.TreeNode.EnsureChildrenLoaded(); modNode = asmNode.TreeNode.DataChildren.FirstOrDefault() as ModuleDocumentNode; } else modNode = nodes[0].GetModuleNode(); Debug.Assert(modNode != null); if (modNode == null) return; var module = modNode.Document.ModuleDef; Debug.Assert(module != null); if (module == null) throw new InvalidOperationException(); var filename = pickFilename.GetFilename(null, "dll", PickFilenameConstants.DotNetAssemblyOrModuleFilter); var result = GetModuleBytes(filename); if (result == null) return; // This is a basic assembly merger, we don't support merging dependencies. It would require // fixing all refs to the dep and redirect them to the new defs that now exist in 'module'. var asm = module.Assembly; if (asm != null && result.Value.Assembly != null) { if (IsNonSupportedAssembly(module, asm, result.Value.Assembly)) { Contracts.App.MsgBox.Instance.Show($"Can't merge with {result.Value.Assembly} because it's a dependency"); return; } } var importer = new ModuleImporter(module, EditCodeVM.makeEverythingPublic); try { importer.Import(result.Value.RawBytes, result.Value.DebugFile, ModuleImporterOptions.None); } catch (Exception ex) { Contracts.App.MsgBox.Instance.Show(ex); return; } undoCommandService.Value.Add(new MergeWithAssemblyCommand(addUpdatedNodesHelperProvider, modNode, importer)); }
CodeCommand(Lazy <IUndoCommandService> undoCommandService, Lazy <IAddUpdatedNodesHelperProvider> addUpdatedNodesHelperProvider, IAppService appService, IPickFilename pickFilename) : base(appService.DocumentTreeView) { this.undoCommandService = undoCommandService; this.addUpdatedNodesHelperProvider = addUpdatedNodesHelperProvider; this.appService = appService; this.pickFilename = pickFilename; }
BookmarksOperationsImpl(IBookmarksVM bookmarksVM, BookmarkDisplaySettings bookmarkDisplaySettings, Lazy <BookmarksService> bookmarksService, Lazy <BookmarkLocationSerializerService> bookmarkLocationSerializerService, Lazy <ISettingsServiceFactory> settingsServiceFactory, IPickFilename pickFilename, IMessageBoxService messageBoxService, Lazy <BookmarkSerializerService> bookmarkSerializerService, Lazy <TextViewBookmarkService> textViewBookmarkService, Lazy <ReferenceNavigatorService> referenceNavigatorService, Lazy <BookmarkNavigator> bookmarkNavigator) { this.bookmarksVM = bookmarksVM; this.bookmarkDisplaySettings = bookmarkDisplaySettings; this.bookmarksService = bookmarksService; this.bookmarkLocationSerializerService = bookmarkLocationSerializerService; this.settingsServiceFactory = settingsServiceFactory; this.pickFilename = pickFilename; this.messageBoxService = messageBoxService; this.bookmarkSerializerService = bookmarkSerializerService; this.textViewBookmarkService = textViewBookmarkService; this.referenceNavigatorService = referenceNavigatorService; this.bookmarkNavigator = bookmarkNavigator; }
DebuggerAppSettingsPageProvider(DebuggerSettingsImpl debuggerSettingsImpl, IPickFilename pickFilename) { this.debuggerSettingsImpl = debuggerSettingsImpl; }
static void Execute(IPickFilename pickFilename, Lazy <IAddUpdatedNodesHelperProvider> addUpdatedNodesHelperProvider, Lazy <IUndoCommandService> undoCommandService, IAppService appService, DocumentTreeNodeData[] nodes) { if (!CanExecute(nodes)) { return; } var asmNode = nodes[0] as AssemblyDocumentNode; ModuleDocumentNode modNode; if (asmNode != null) { asmNode.TreeNode.EnsureChildrenLoaded(); modNode = asmNode.TreeNode.DataChildren.FirstOrDefault() as ModuleDocumentNode; } else { modNode = nodes[0].GetModuleNode(); } Debug.Assert(modNode != null); if (modNode == null) { return; } var module = modNode.Document.ModuleDef; Debug.Assert(module != null); if (module == null) { throw new InvalidOperationException(); } var filename = pickFilename.GetFilename(null, "dll", PickFilenameConstants.DotNetAssemblyOrModuleFilter); var result = GetModuleBytes(filename); if (result == null) { return; } // This is a basic assembly merger, we don't support merging dependencies. It would require // fixing all refs to the dep and redirect them to the new defs that now exist in 'module'. var asm = module.Assembly; if (asm != null && result.Value.Assembly != null) { if (IsNonSupportedAssembly(module, asm, result.Value.Assembly)) { Contracts.App.MsgBox.Instance.Show($"Can't merge with {result.Value.Assembly} because it's a dependency"); return; } } var importer = new ModuleImporter(module); try { importer.Import(result.Value.RawBytes, result.Value.DebugFile, ModuleImporterOptions.None); } catch (Exception ex) { Contracts.App.MsgBox.Instance.Show(ex); return; } undoCommandService.Value.Add(new MergeWithAssemblyCommand(addUpdatedNodesHelperProvider, modNode, importer)); }