private ReplWindow CreateReplWindowInternal(IReplEvaluator evaluator, IContentType contentType, string[] roles, int id, string title, Guid languageServiceGuid, string replId) { var service = (IVsUIShell)ServiceProvider.GlobalProvider.GetService(typeof(SVsUIShell)); var model = (IComponentModel)ServiceProvider.GlobalProvider.GetService(typeof(SComponentModel)); SaveReplInfo(id, evaluator, contentType, roles, title, languageServiceGuid, replId); var replWindow = new ReplWindow(model, evaluator, contentType, roles, title, languageServiceGuid, replId); Guid clsId = replWindow.ToolClsid; Guid toolType = typeof(ReplWindow).GUID; Guid empty = Guid.Empty; IVsWindowFrame frame; // we don't pass __VSCREATETOOLWIN.CTW_fMultiInstance because multi instance panes are // destroyed when closed. We are really multi instance but we don't want to be closed. This // seems to work fine. var creationFlags = __VSCREATETOOLWIN.CTW_fInitNew; if (!roles.Contains("DontPersist")) { creationFlags |= __VSCREATETOOLWIN.CTW_fForceCreate; } ErrorHandler.ThrowOnFailure( service.CreateToolWindow( (uint)(creationFlags), (uint)id, replWindow.GetIVsWindowPane(), ref clsId, ref toolType, ref empty, null, title, null, out frame ) ); replWindow.Frame = frame; replWindow.OnToolBarAdded(); _windows[id] = replWindow; return(replWindow); }
private ReplWindow CreateReplWindowInternal(IReplEvaluator evaluator, IContentType contentType, string[] roles, int id, string title, Guid languageServiceGuid, string replId) { var service = (IVsUIShell)ServiceProvider.GlobalProvider.GetService(typeof(SVsUIShell)); var model = (IComponentModel)ServiceProvider.GlobalProvider.GetService(typeof(SComponentModel)); SaveReplInfo(id, evaluator, contentType, roles, title, languageServiceGuid, replId); var replWindow = new ReplWindow(model, evaluator, contentType, roles, title, languageServiceGuid, replId); Guid clsId = replWindow.ToolClsid; Guid toolType = typeof(ReplWindow).GUID; Guid empty = Guid.Empty; IVsWindowFrame frame; // we don't pass __VSCREATETOOLWIN.CTW_fMultiInstance because multi instance panes are // destroyed when closed. We are really multi instance but we don't want to be closed. This // seems to work fine. var creationFlags = __VSCREATETOOLWIN.CTW_fInitNew; if (!roles.Contains("DontPersist")) { creationFlags |= __VSCREATETOOLWIN.CTW_fForceCreate; } ErrorHandler.ThrowOnFailure( service.CreateToolWindow( (uint)(creationFlags), (uint)id, replWindow.GetIVsWindowPane(), ref clsId, ref toolType, ref empty, null, title, null, out frame ) ); replWindow.Frame = frame; replWindow.OnToolBarAdded(); _windows[id] = replWindow; return replWindow; }