示例#1
0
        public IMainForm LoadForm()
        {
            this.form = dlgFactory.CreateMainForm();

            dm                                 = new DecompilerMenus(this);
            form.Menu                          = dm.MainMenu;
            dm.MainToolbar.Text                = "";
            dm.MainToolbar.ImageList           = form.ImageList;
            dm.ProjectBrowserToolbar.ImageList = form.ImageList;
            form.AddToolbar(dm.MainToolbar);
            form.AddProjectBrowserToolbar(dm.ProjectBrowserToolbar);

            var svcFactory = sc.RequireService <IServiceFactory>();

            CreateServices(svcFactory, sc, dm);
            CreatePhaseInteractors(svcFactory);
            projectBrowserSvc.Clear();

            form.Load              += this.MainForm_Loaded;
            form.Closed            += this.MainForm_Closed;
            form.ProcessCommandKey += this.MainForm_ProcessCommandKey;

            form.ToolBar.ItemClicked += toolBar_ItemClicked;
            form.ProjectBrowserToolbar.ItemClicked += toolBar_ItemClicked;

            //form.InitialPage.IsDirtyChanged += new EventHandler(InitialPage_IsDirtyChanged);//$REENABLE
            //MainForm.InitialPage.IsDirty = false;         //$REENABLE

            return(form);
        }
示例#2
0
 public DecompilerShellUiService(
     IMainForm form,
     DecompilerMenus dm,
     OpenFileDialog ofd,
     SaveFileDialog sfd,
     IServiceProvider sp)
     : base((Form)form, ofd, sfd)
 {
     this.form         = form;
     this.dm           = dm;
     this.services     = sp;
     this.framesByName = new Dictionary <string, WindowFrame>();
     this.framesByTab  = new Dictionary <TabPage, WindowFrame>();
     this.form.DocumentTabs.ControlRemoved += documentTabs_ControlRemoved;
     this.form.DocumentTabs.MouseUp        += documentTabs_MouseUp;
 }
示例#3
0
        private void CreateServices(IServiceFactory svcFactory, IServiceContainer sc, DecompilerMenus dm)
        {
            sc.AddService <DecompilerHost>(this);

            config = svcFactory.CreateDecompilerConfiguration();
            sc.AddService(typeof(IConfigurationService), config);

            var cmdFactory = new Commands.CommandFactory(sc);

            sc.AddService <ICommandFactory>(cmdFactory);

            sc.AddService(typeof(IStatusBarService), (IStatusBarService)this);

            diagnosticsSvc = svcFactory.CreateDiagnosticsService(form.DiagnosticsList);
            sc.AddService(typeof(IDiagnosticsService), diagnosticsSvc);

            decompilerSvc = svcFactory.CreateDecompilerService();
            sc.AddService(typeof(IDecompilerService), decompilerSvc);

            uiSvc = svcFactory.CreateShellUiService(form, dm);
            subWindowCommandTarget = uiSvc;
            sc.AddService(typeof(IDecompilerShellUiService), uiSvc);
            sc.AddService(typeof(IDecompilerUIService), uiSvc);

            var codeViewSvc = new CodeViewerServiceImpl(sc);

            sc.AddService <ICodeViewerService>(codeViewSvc);
            var segmentViewSvc = new ImageSegmentServiceImpl(sc);

            sc.AddService(typeof(ImageSegmentService), segmentViewSvc);

            var del = svcFactory.CreateDecompilerEventListener();

            workerDlgSvc = (IWorkerDialogService)del;
            sc.AddService(typeof(IWorkerDialogService), workerDlgSvc);
            sc.AddService(typeof(DecompilerEventListener), del);

            loader = svcFactory.CreateLoader();
            sc.AddService <ILoader>(loader);

            var abSvc = svcFactory.CreateArchiveBrowserService();

            sc.AddService <IArchiveBrowserService>(abSvc);

            sc.AddService <ILowLevelViewService>(svcFactory.CreateMemoryViewService());
            sc.AddService <IDisassemblyViewService>(svcFactory.CreateDisassemblyViewService());

            var tlSvc = svcFactory.CreateTypeLibraryLoaderService();

            sc.AddService <ITypeLibraryLoaderService>(tlSvc);

            this.projectBrowserSvc = svcFactory.CreateProjectBrowserService(form.ProjectBrowser);
            sc.AddService <IProjectBrowserService>(projectBrowserSvc);

            var upSvc = svcFactory.CreateUiPreferencesService();

            sc.AddService <IUiPreferencesService>(upSvc);

            var fsSvc = svcFactory.CreateFileSystemService();

            sc.AddService <IFileSystemService>(fsSvc);

            this.searchResultsTabControl = svcFactory.CreateTabControlHost(form.TabControl);
            sc.AddService <ITabControlHostService>(this.searchResultsTabControl);

            srSvc = svcFactory.CreateSearchResultService(form.FindResultsList);
            sc.AddService <ISearchResultService>(srSvc);
            searchResultsTabControl.Attach((IWindowPane)srSvc, form.FindResultsPage);
            searchResultsTabControl.Attach((IWindowPane)diagnosticsSvc, form.DiagnosticsPage);

            var resEditService = svcFactory.CreateResourceEditorService();

            sc.AddService <IResourceEditorService>(resEditService);

            var cgvSvc = svcFactory.CreateCallGraphViewService();

            sc.AddService <ICallGraphViewService>(cgvSvc);

            var viewImpSvc = svcFactory.CreateViewImportService();

            sc.AddService <IViewImportsService>(viewImpSvc);
        }
示例#4
0
 public IDecompilerShellUiService CreateShellUiService(IMainForm form, DecompilerMenus dm)
 {
     return(new DecompilerShellUiService(form, dm, form.OpenFileDialog, form.SaveFileDialog, services));
 }