コード例 #1
0
        public void Setup()
        {
            mr              = new MockRepository();
            services        = new ServiceContainer();
            declarationForm = mr.Stub <IDeclarationForm>();
            textBox         = new FakeTextBox();
            declarationForm.Stub(f => f.TextBox).Return(textBox);
            declarationForm.Stub(f => f.ShowAt(new Point()));
            declarationForm.Stub(f => f.Hide());
            declarationForm.Stub(f => f.Dispose());
            var dlgFactory = mr.Stub <IDialogFactory>();

            dlgFactory.Stub(f => f.CreateDeclarationForm()).Return(declarationForm);
            services.AddService <IDialogFactory>(dlgFactory);
            mr.ReplayAll();
            interactor = new DeclarationFormInteractor(services);
            var mem        = new MemoryArea(Address32.Ptr32(0x10), new byte[40]);
            var seg        = new ImageSegment(".text", mem, AccessMode.ReadWrite);
            var segmentMap = new SegmentMap(Address32.Ptr32(0x05), seg);
            var arch       = new X86ArchitectureFlat32();
            var platform   = new Win32Platform(null, arch);

            program          = new Program(segmentMap, arch, platform);
            program.ImageMap = segmentMap.CreateImageMap();
        }
コード例 #2
0
        public void Setup()
        {
            services        = new ServiceContainer();
            declarationForm = new Mock <IDeclarationForm>();
            textBox         = new FakeTextBox();
            declarationForm.Setup(f => f.TextBox).Returns(textBox);
            declarationForm.Setup(f => f.ShowAt(new Point()));
            declarationForm.Setup(f => f.Hide());
            declarationForm.Setup(f => f.Dispose());
            declarationForm.SetupProperty(f => f.HintText);
            var dlgFactory = new Mock <IDialogFactory>();

            dlgFactory.Setup(f => f.CreateDeclarationForm()).Returns(declarationForm.Object);
            services.AddService <IDialogFactory>(dlgFactory.Object);

            interactor = new DeclarationFormInteractor(services);
            var mem        = new MemoryArea(Address.Ptr32(0x10), new byte[40]);
            var seg        = new ImageSegment(".text", mem, AccessMode.ReadWrite);
            var segmentMap = new SegmentMap(Address.Ptr32(0x05), seg);
            var arch       = new X86ArchitectureFlat32(services, "x86-protected-32");
            var platform   = new Win32Platform(services, arch);

            program          = new Program(segmentMap, arch, platform);
            program.ImageMap = segmentMap.CreateImageMap();
        }
コード例 #3
0
        public Control CreateControl()
        {
            var uiSvc = services.RequireService <IDecompilerShellUiService>();

            this.combinedCodeView      = new CombinedCodeView();
            this.combinedCodeView.Dock = DockStyle.Fill;

            this.combinedCodeView.CurrentAddressChanged += CombinedCodeView_CurrentAddressChanged;

            this.combinedCodeView.MixedCodeDataView.VScrollValueChanged += MixedCodeDataView_VScrollValueChanged;
            this.combinedCodeView.MixedCodeDataView.Services             = services;
            this.combinedCodeView.MixedCodeDataView.MouseDown           += MixedCodeDataView_MouseDown;
            this.combinedCodeView.MixedCodeDataView.ModelChanged        += MixedCodeDataView_ModelChanged;
            this.combinedCodeView.MixedCodeDataView.Navigate            += TextView_Navigate;

            this.combinedCodeView.CodeView.VScrollValueChanged += CodeView_VScrollValueChanged;
            this.combinedCodeView.CodeView.Services             = services;
            this.combinedCodeView.CodeView.MouseDown           += CodeView_MouseDown;
            this.combinedCodeView.CodeView.Navigate            += TextView_Navigate;

            this.combinedCodeView.ContextMenu = uiSvc.GetContextMenu(MenuIds.CtxCodeView);

            this.combinedCodeView.ToolBarGoButton.Click         += ToolBarGoButton_Click;
            this.combinedCodeView.ToolBarAddressTextbox.KeyDown += ToolBarAddressTextbox_KeyDown;

            this.gViewer                  = new GViewer();
            this.gViewer.Dock             = DockStyle.Fill;
            this.gViewer.Visible          = false;
            this.gViewer.PanButtonPressed = true;
            this.gViewer.ToolBarIsVisible = true;
            this.gViewer.KeyDown         += GViewer_KeyDown;
            this.gViewer.ContextMenu      = uiSvc.GetContextMenu(MenuIds.CtxCodeView);
            this.gViewer.LayoutAlgorithmSettingsButtonVisible = false;
            this.gViewer.LayoutEditingEnabled    = false;
            this.gViewer.EdgeInsertButtonVisible = false;
            this.gViewer.SaveButtonVisible       = false;
            this.gViewer.SaveGraphButtonVisible  = false;
            this.gViewer.SaveAsMsaglEnabled      = false;
            this.gViewer.UndoRedoButtonsVisible  = false;
            this.gViewer.KeyDown              += GViewer_KeyDown;
            this.gViewer.ContextMenu           = uiSvc.GetContextMenu(MenuIds.CtxCodeView);
            this.gViewer.MouseUp              += GViewer_MouseUp;
            this.gViewer.DrawingPanel.MouseUp += GViewer_MouseUp;
            var iViewer = (IViewer)gViewer;

            iViewer.MouseUp   += IViewer_MouseUp;
            iViewer.MouseDown += IViewer_MouseDown;

            this.navInteractor = new NavigationInteractor <Address>();
            this.navInteractor.Attach(this.combinedCodeView);

            declarationFormInteractor = new DeclarationFormInteractor(services);
            previewInteractor         = new PreviewInteractor(
                services,
                this.program,
                this.combinedCodeView.PreviewTimer,
                this.combinedCodeView.MixedCodeDataView);

            return(combinedCodeView);
        }
コード例 #4
0
        public object CreateControl()
        {
            var uiSvc = services.RequireService <IDecompilerShellUiService>();

            this.codeView          = new TextView();
            this.codeView.Services = services;
            this.codeView.Dock     = DockStyle.Fill;
            //this.codeView.VScrollValueChanged += CodeView_VScrollValueChanged;
            //this.codeView.MouseDown += CodeView_MouseDown;
            this.codeView.Navigate += TextView_Navigate;

            uiSvc.SetContextMenu(this.codeView, MenuIds.CtxCodeView);

            this.gViewer                  = new GViewer();
            this.gViewer.Dock             = DockStyle.Fill;
            this.gViewer.Visible          = false;
            this.gViewer.PanButtonPressed = true;
            this.gViewer.ToolBarIsVisible = true;
            this.gViewer.KeyDown         += GViewer_KeyDown;
            uiSvc.SetContextMenu(this.gViewer, MenuIds.CtxCodeView);
            this.gViewer.LayoutAlgorithmSettingsButtonVisible = false;
            this.gViewer.LayoutEditingEnabled    = false;
            this.gViewer.EdgeInsertButtonVisible = false;
            this.gViewer.SaveButtonVisible       = false;
            this.gViewer.SaveGraphButtonVisible  = false;
            this.gViewer.SaveAsMsaglEnabled      = false;
            this.gViewer.UndoRedoButtonsVisible  = false;
            this.gViewer.KeyDown += GViewer_KeyDown;
            uiSvc.SetContextMenu(this.gViewer, MenuIds.CtxCodeView);
            this.gViewer.MouseUp += GViewer_MouseUp;
            this.gViewer.DrawingPanel.MouseUp += GViewer_MouseUp;
            var iViewer = (IViewer)gViewer;

            iViewer.MouseUp   += IViewer_MouseUp;
            iViewer.MouseDown += IViewer_MouseDown;

            //this.navInteractor = new NavigationInteractor<Address>();
            //this.navInteractor.Attach(this.combinedCodeView);

            declarationFormInteractor = new DeclarationFormInteractor(services);
            return(codeView);
        }