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;
}