public Control CreateControl() { var uiService = services.RequireService <IDecompilerShellUiService>(); var uiPrefsSvc = services.RequireService <IUiPreferencesService>(); this.control = new LowLevelView(); this.Control.Font = uiPrefsSvc.DisassemblerFont ?? new Font("Lucida Console", 10F); //$TODO: use user preference this.Control.CurrentAddressChanged += LowLevelView_CurrentAddressChanged; this.Control.ImageMapView.SelectedAddressChanged += ImageMapView_SelectedAddressChanged; this.Control.MemoryView.SelectionChanged += MemoryView_SelectionChanged; this.Control.MemoryView.ContextMenu = uiService.GetContextMenu(MenuIds.CtxMemoryControl); this.control.MemoryView.Services = this.services; this.Control.DisassemblyView.SelectedObjectChanged += DisassemblyView_SelectedObjectChanged; this.Control.DisassemblyView.ContextMenu = uiService.GetContextMenu(MenuIds.CtxDisassembler); this.Control.DisassemblyView.Navigate += DisassemblyControl_Navigate; this.Control.ToolBarGoButton.Click += ToolBarGoButton_Click; this.Control.ToolBarAddressTextbox.KeyDown += ToolBarAddressTextbox_KeyDown; this.navInteractor = new NavigationInteractor(); this.navInteractor.Attach(this.Control); typeMarker = new TypeMarker(control.MemoryView); typeMarker.TextChanged += typeMarker_FormatType; typeMarker.TextAccepted += typeMarker_TextAccepted; return(control); }
public void LLI_ShowMemoryAtAddressShouldChangeMemoryControl() { var sc = new ServiceContainer(); var ctrl = new LowLevelView(); var interactor = new Mock <LowLevelViewInteractor>(); //interactor.Expect(i => i.SelectedAddress).SetPropertyWithArgument(Address.Ptr32(0x4711)); var uiSvc = AddStubService <IDecompilerShellUiService>(sc); AddStubService <IUiPreferencesService>(sc).Setup(u => u.Styles).Returns(new Dictionary <string, UiStyle>()); Given_Program(); uiSvc.Setup(x => x.FindDocumentWindow(It.IsAny <string>(), It.IsAny <object>())) .Returns((IWindowFrame)null); uiSvc.Setup(x => x.CreateDocumentWindow( It.IsAny <string>(), It.IsAny <object>(), It.IsAny <string>(), It.IsAny <IWindowPane>())) .Returns(new Mock <IWindowFrame>().Object); //uiSvc.Setup(x => x.SetContextMenu(null, MenuIds.CtxMemoryControl)).IgnoreArguments(); //uiSvc.Setup(x => x.SetContextMenu(null, MenuIds.CtxMemoryControl)); //uiSvc.Setup(x => x.GetContextMenu(MenuIds.CtxDisassembler)).Return(new ContextMenu()); var service = new Mock <LowLevelViewServiceImpl>(sc); service.Setup(x => x.CreateMemoryViewInteractor()).Returns(interactor.Object); var image = new ByteMemoryArea(Address.Ptr32(0x1000), new byte[300]); interactor.Object.SetSite(sc); interactor.Object.CreateControl(); service.Object.ShowMemoryAtAddress(program, Address.Ptr32(0x4711)); }
public void LLI_ShowMemoryAtAddressShouldChangeMemoryControl() { var sc = new ServiceContainer(); var ctrl = new LowLevelView(); var interactor = mr.DynamicMock <LowLevelViewInteractor>(); interactor.Expect(i => i.SelectedAddress).SetPropertyWithArgument(Address.Ptr32(0x4711)); var uiSvc = AddStubService <IDecompilerShellUiService>(sc); AddStubService <IUiPreferencesService>(sc); Given_Program(); uiSvc.Stub(x => x.FindWindow(Arg <string> .Is.Anything)).Return(null); uiSvc.Stub(x => x.CreateWindow("", "", null)) .IgnoreArguments() .Return(mr.Stub <IWindowFrame>()); uiSvc.Stub(x => x.GetContextMenu(MenuIds.CtxMemoryControl)).Return(new ContextMenu()); uiSvc.Stub(x => x.GetContextMenu(MenuIds.CtxDisassembler)).Return(new ContextMenu()); var service = mr.Stub <LowLevelViewServiceImpl>(sc); service.Stub(x => x.CreateMemoryViewInteractor()).Return(interactor); var image = new LoadedImage(Address.Ptr32(0x1000), new byte[300]); mr.ReplayAll(); interactor.SetSite(sc); interactor.CreateControl(); service.ShowMemoryAtAddress(program, Address.Ptr32(0x4711)); mr.VerifyAll(); }
private void Given_Interactor() { interactor = mr.PartialMock <LowLevelViewInteractor>(); interactor.SetSite(sp); control = (LowLevelView)interactor.CreateControl(); interactor.Program = program; }
public object CreateControl() { var uiService = services.RequireService <IDecompilerShellUiService>(); this.control = new LowLevelView(); this.Control.Font = new Font("Lucida Console", 10F); //$TODO: use user preference this.Control.CurrentAddressChanged += LowLevelView_CurrentAddressChanged; this.Control.ImageMapView.SelectedAddressChanged += ImageMapView_SelectedAddressChanged; this.Control.MemoryView.SelectionChanged += MemoryView_SelectionChanged; uiService.SetContextMenu(this.Control.MemoryView, MenuIds.CtxMemoryControl); this.control.MemoryView.Services = this.services; this.Control.DisassemblyView.StyleClass = UiStyles.Disassembler; this.Control.DisassemblyView.SelectedObjectChanged += DisassemblyView_SelectedObjectChanged; uiService.SetContextMenu(this.Control.DisassemblyView, MenuIds.CtxDisassembler); this.Control.DisassemblyView.Services = this.services; this.Control.DisassemblyView.Navigate += DisassemblyControl_Navigate; this.Control.VisualizerControl.Services = services; PopulateVisualizers(); this.Control.VisualizerList.SelectedIndexChanged += VisualizerList_SelectedIndexChanged; this.control.VisualizerList.SelectedIndex = 0; this.Control.ToolBarGoButton.Click += ToolBarGoButton_Click; this.Control.ToolBarAddressTextbox.KeyDown += ToolBarAddressTextbox_KeyDown; this.navInteractor = new NavigationInteractor <Address>(); this.navInteractor.Attach(this.Control); typeMarker = new TypeMarker(control.MemoryView); return(control); }
private void Given_Interactor() { interactor = new Mock <LowLevelViewInteractor>(); interactor.Object.SetSite(sp); control = (LowLevelView)interactor.Object.CreateControl(); interactor.Object.Program = program; }