void IPackage.Load(IServiceProvider serviceProvider) { // Set this early so it is easily referenced myServiceProvider = serviceProvider; IAssemblyBrowser assemblyBrowser = (IAssemblyBrowser)serviceProvider.GetService(typeof(IAssemblyBrowser)); assemblyBrowser.ActiveItemChanged += new EventHandler(OnActiveItemChanged); myLastActiveItem = assemblyBrowser.ActiveItem; myAssemblyBrowser = assemblyBrowser; ILanguageManager languageManager = (ILanguageManager)serviceProvider.GetService(typeof(ILanguageManager)); myLanguageManager = languageManager; myConfiguration = new PLiXConfiguration(this); languageManager.ActiveLanguageChanged += new EventHandler(OnActiveLanguageChanged); ILanguage language = new PLiXLanguage((ITranslatorManager)serviceProvider.GetService(typeof(ITranslatorManager)), myConfiguration); languageManager.RegisterLanguage(language); myLanguage = language; // Add our PLiX menu item, activated when the plix language is active ICommandBarManager commandBarManager = (ICommandBarManager)serviceProvider.GetService(typeof(ICommandBarManager)); ICommandBar menuBar = commandBarManager.CommandBars["MenuBar"]; ICommandBarMenu topMenu = menuBar.Items.InsertMenu(menuBar.Items.Count - 1, "PLiXLanguageOptions", "PLi&X"); topMenu.Visible = false; topMenu.DropDown += new EventHandler(OnOpenTopMenu); ICommandBarItemCollection menuItems = topMenu.Items; myExampleLanguageMenu = menuItems.AddMenu("PLiXExampleLanguage", "&Example Language"); menuItems.AddSeparator(); myExpandCurrentNamespaceDeclarationButton = menuItems.AddButton("E&xpand Current Namespace Declaration", new EventHandler(OnExpandCurrentNamespaceDeclaration)); myExpandCurrentTypeDeclarationButton = menuItems.AddButton("E&xpand Current Type Declaration", new EventHandler(OnExpandCurrentTypeDeclaration)); (myFullyExpandTypeDeclarationsCheckBox = menuItems.AddCheckBox("Ex&pand All Type Declarations")).Click += new EventHandler(OnFullyExpandTypeDeclarationsChanged); menuItems.AddSeparator(); (myDisplayContextDataTypeQualifierCheckBox = menuItems.AddCheckBox("Display Context Type &Qualifier")).Click += new EventHandler(OnDisplayContextDataTypeQualifierChanged); ICommandBarMenu callStaticOptionsMenu = menuItems.AddMenu("PLiXStaticCallOptions", "&Static Call Options"); menuItems = callStaticOptionsMenu.Items; (myExplicitStaticCallCheckBox = menuItems.AddCheckBox("&Explicit")).Click += new EventHandler(OnExplicitStaticCallCheckBoxChanged); (myImplicitCurrentTypeStaticCallCheckBox = menuItems.AddCheckBox("Implicit (&Current Type)")).Click += new EventHandler(OnImplicitCurrentTypeStaticCallCheckBoxChanged); (myImplicitBaseTypesStaticCallCheckBox = menuItems.AddCheckBox("Implicit (&Base Types)")).Click += new EventHandler(OnImplicitBaseTypesStaticCallCheckBoxChanged); myTopMenu = topMenu; ICommandBarControl appRefresh1 = GetCommandbarControl(commandBarManager, "ToolBar", "Application.Refresh"); if (appRefresh1 != null) { appRefresh1.Click += new EventHandler(OnApplicationRefresh); } ICommandBarControl appRefresh2 = GetCommandbarControl(commandBarManager, "View", "Application.Refresh"); if (appRefresh2 != null && appRefresh2 != appRefresh1) { appRefresh2.Click += new EventHandler(OnApplicationRefresh); } //DumpMenus(commandBarManager); }
/// <summary> /// Event handler to clear cached information when the Refresh button is clicked /// </summary> private void OnApplicationRefresh(object sender, EventArgs e) { PLiXLanguage language = myLanguage as PLiXLanguage; if (language != null) { language.OnRefresh(); } }