public static void InitializeWorkbench(IWorkbench workbench, IWorkbenchLayout layout) { WorkbenchSingleton.workbench = workbench; //DisplayBindingService.InitializeService(); LayoutConfiguration.LoadLayoutConfiguration(); //FileService.InitializeService(); StatusBarService.Initialize(); //DomHostCallback.Register(); // must be called after StatusBarService.Initialize() ParserService.InitializeParserService(); //Bookmarks.BookmarkManager.Initialize(); //Project.CustomToolsService.Initialize(); //Project.BuildModifiedProjectsOnlyService.Initialize(); workbench.Initialize(); workbench.SetMemento(PropertyService.Get(workbenchMemento, new Core.Properties())); caller = new STAThreadCaller(workbench.MainForm); WinFormsMessageService.DialogOwner = workbench.MainForm; WinFormsMessageService.DialogSynchronizeInvoke = workbench.MainForm; //RemoveXButton(WorkbenchSingleton.MainForm.Handle.ToInt32()); PropertyService.PropertyChanged += new PropertyChangedEventHandler(TrackPropertyChanges); ResourceService.LanguageChanged += delegate { workbench.RedrawAllComponents(); }; ApplicationStateInfoService.RegisterStateGetter(activeContentState, delegate { return(WorkbenchSingleton.Workbench.ActiveContent); }); // attach workbench layout -> load pads workbench.WorkbenchLayout = layout; OnWorkbenchCreated(); // initialize workbench-dependent services: // Project.ProjectService.InitializeService(); NavigationService.InitializeService(); workbench.ActiveContentChanged += delegate { LoggingService.Debug("ActiveContentChanged to " + workbench.ActiveContent); }; workbench.ActiveViewContentChanged += delegate { LoggingService.Debug("ActiveViewContentChanged to " + workbench.ActiveViewContent); }; workbench.ActiveWorkbenchWindowChanged += delegate { LoggingService.Debug("ActiveWorkbenchWindowChanged to " + workbench.ActiveWorkbenchWindow); }; }
/// <remarks> /// This method handles the redraw all event for specific changed IDE properties /// </remarks> static void TrackPropertyChanges(object sender, PropertyChangedEventArgs e) { if (e.OldValue != e.NewValue && workbench != null) { switch (e.Key) { case "ICSharpCode.SharpDevelop.Gui.StatusBarVisible": case "ICSharpCode.SharpDevelop.Gui.VisualStyle": case "ICSharpCode.SharpDevelop.Gui.ToolBarVisible": workbench.RedrawAllComponents(); break; case "ICSharpCode.SharpDevelop.Gui.UseProfessionalRenderer": workbench.UpdateRenderer(); break; } } }