Beispiel #1
0
        public static void CollapseUnnecessarySeparators(ICommandBarItemCollection items)
        {
            object obj1 = (object)null;

            foreach (object obj2 in (IEnumerable)items)
            {
                CommandBarSeparator commandBarSeparator = obj2 as CommandBarSeparator;
                if (commandBarSeparator != null)
                {
                    commandBarSeparator.Visibility = Visibility.Visible;
                    if (obj1 is CommandBarSeparator || obj1 == null)
                    {
                        commandBarSeparator.Visibility = Visibility.Collapsed;
                    }
                }
                UIElement uiElement = obj2 as UIElement;
                if (uiElement != null && uiElement.Visibility == Visibility.Visible)
                {
                    obj1 = (object)uiElement;
                }
            }
            CommandBarSeparator commandBarSeparator1 = obj1 as CommandBarSeparator;

            if (commandBarSeparator1 == null)
            {
                return;
            }
            commandBarSeparator1.Visibility = Visibility.Collapsed;
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
 public void AddSourceControlDebugMenuItems(ICommandBarItemCollection commandItems)
 {
     commandItems.AddButton("DebugSCC_NewWorkspaces", "Open Project");
     commandItems.AddButton("DebugSCC_GetAll", "Sync All");
     commandItems.AddButton("DebugSCC_Checkout", "Checkout all files");
     commandItems.AddButton("DebugSCC_Diff", "Diff All Files");
     commandItems.AddButton("DebugSCC_Checkin", "Checkin all edited files");
     commandItems.AddButton("DebugSCC_Undo", "Revert all checked out files");
     commandItems.AddButton("DebugSCC_History", "File History");
     commandItems.AddButton("DebugSCC_Add", "Add files");
     commandItems.AddButton("DebugSCC_Delete", "Delete files");
     commandItems.AddButton("DebugSCC_QueryInfo", "Query Info");
     commandItems.AddButton("DebugSCC_GoOnline", "Attempt to go online");
     commandItems.AddButton("DebugSCC_GoOffline", "Attempt to go offline");
 }
Beispiel #4
0
 internal CommandBar(ICommandService commandService)
 {
     this.items = (ICommandBarItemCollection) new CommandBarItemCollection(commandService, CommandInvocationSource.MenuItem, base.Items);
 }
Beispiel #5
0
 public static bool Compare(this ICommandBarItemCollection source, ICommandBarItemCollection n, Func<ICommandBarItem, ICommandBarItem, Action<string, string>, bool> checkitem, Action<string, string> errAct)
 {
     return Compare<ICommandBarItem>(source,n,checkitem,errAct);
 }
Beispiel #6
0
 public static bool Compare(this ICommandBarItemCollection source, ICommandBarItemCollection n, Func<ICommandBarItem, ICommandBarItem, bool> checkitem)
 {
     return Compare<ICommandBarItem>(source,n,checkitem);
 }
Beispiel #7
0
 public static bool Compare(this ICommandBarItemCollection source, ICommandBarItemCollection n)
 {
     return Compare<ICommandBarItem>(source,n);
 }
Beispiel #8
0
 public static bool Compare(this ICommandBarItemCollection source, ICommandBarItemCollection n, Func <ICommandBarItem, ICommandBarItem, Action <string, string>, bool> checkitem, Action <string, string> errAct)
 {
     return(Compare <ICommandBarItem>(source, n, checkitem, errAct));
 }
Beispiel #9
0
 public static bool Compare(this ICommandBarItemCollection source, ICommandBarItemCollection n, Func <ICommandBarItem, ICommandBarItem, bool> checkitem)
 {
     return(Compare <ICommandBarItem>(source, n, checkitem));
 }
Beispiel #10
0
 public static bool Compare(this ICommandBarItemCollection source, ICommandBarItemCollection n)
 {
     return(Compare <ICommandBarItem>(source, n));
 }
Beispiel #11
0
        /// <summary>
        /// Synchronize the example language sub menu with the current set of languages.
        /// Unfortunately, there is no add/remove event when languages are added and removed,
        /// and the DropDown event does not fire on submenus, so we need to synchronize here.
        /// </summary>
        private void OnOpenTopMenu(object sender, EventArgs e)
        {
            ICommandBarItemCollection exampleItems = myExampleLanguageMenu.Items;
            ILanguageCollection       languages    = myLanguageManager.Languages;
            ILanguage         selectedLanguage     = myConfiguration.ExampleLanguage;
            PLiXConfiguration plixConfig           = (PLiXConfiguration)myConfiguration;
            object            activeItem           = myAssemblyBrowser.ActiveItem;
            bool activeItemIsTypeDeclaration       = activeItem is ITypeDeclaration;
            bool activeItemIsNamespaceDeclaration  = !activeItemIsTypeDeclaration && activeItem is INamespace;
            bool alreadyExpandedCurrentType        = plixConfig.FullyExpandCurrentTypeDeclaration;
            bool alwaysExpandTypes = alreadyExpandedCurrentType ? false : myConfiguration.FullyExpandTypeDeclarations;

            if (activeItemIsNamespaceDeclaration)
            {
                myExpandCurrentNamespaceDeclarationButton.Visible = true;
                myExpandCurrentNamespaceDeclarationButton.Enabled = !plixConfig.FullyExpandCurrentNamespaceDeclaration;
            }
            else
            {
                myExpandCurrentNamespaceDeclarationButton.Visible = false;
            }
            if (activeItemIsTypeDeclaration)
            {
                myExpandCurrentTypeDeclarationButton.Visible = !alwaysExpandTypes;
                myExpandCurrentTypeDeclarationButton.Enabled = !alreadyExpandedCurrentType;
            }
            else
            {
                myExpandCurrentTypeDeclarationButton.Visible = false;
            }
            myFullyExpandTypeDeclarationsCheckBox.Checked     = alwaysExpandTypes;
            myDisplayContextDataTypeQualifierCheckBox.Checked = plixConfig.DisplayContextDataTypeQualifier;
            StaticCallRenderingOption staticRender = plixConfig.StaticCallRenderingOption;

            myExplicitStaticCallCheckBox.Checked            = staticRender == StaticCallRenderingOption.Explicit;
            myImplicitCurrentTypeStaticCallCheckBox.Checked = staticRender == StaticCallRenderingOption.ImplicitCurrentType;
            myImplicitBaseTypesStaticCallCheckBox.Checked   = staticRender == StaticCallRenderingOption.ImplicitBaseTypes;
            int itemsCount = exampleItems.Count;
            ICommandBarCheckBox currentItem;

            if (itemsCount == 0)
            {
                currentItem         = exampleItems.AddCheckBox("None");
                currentItem.Checked = selectedLanguage == null;
                currentItem.Click  += new EventHandler(OnExampleLanguageClick);
                ++itemsCount;
            }
            else
            {
                currentItem = (ICommandBarCheckBox)exampleItems[0];
                if (currentItem.Checked ^ (selectedLanguage == null))
                {
                    currentItem.Checked = selectedLanguage == null;
                }
            }

            int languagesCount   = languages.Count;
            int currentItemIndex = 1;             // None is at the zero position

            for (int iLanguage = 0; iLanguage < languagesCount; ++iLanguage)
            {
                ILanguage currentLanguage = languages[iLanguage];
                bool      isChecked       = currentLanguage == selectedLanguage;
                string    languageName    = currentLanguage.Name;
                if (currentLanguage != myLanguage && !languageName.StartsWith("IL"))
                {
                    if (currentItemIndex >= itemsCount)
                    {
                        currentItem       = exampleItems.AddCheckBox(languageName);
                        currentItem.Value = currentLanguage;
                        if (isChecked)
                        {
                            currentItem.Checked = true;
                        }
                        currentItem.Click += new EventHandler(OnExampleLanguageClick);
                        // No need to adjust currentItemIndex here, we'll continue to add to the end of the list
                    }
                    else
                    {
                        currentItem = (ICommandBarCheckBox)exampleItems[currentItemIndex];
                        ILanguage testLanguage = (ILanguage)currentItem.Value;
                        if (testLanguage == currentLanguage)
                        {
                            ++currentItemIndex;
                            if (currentItem.Checked ^ isChecked)
                            {
                                currentItem.Checked = isChecked;
                            }
                            continue;
                        }
                        else
                        {
                            // If the testLanguage appears later in the language list, then we need
                            // to insert the new language here. Otherwise, we need to remove the
                            // existing item.
                            int matchingLanguage = iLanguage + 1;
                            for (; matchingLanguage < languagesCount; ++matchingLanguage)
                            {
                                if (testLanguage == languages[matchingLanguage])
                                {
                                    break;
                                }
                            }
                            if (matchingLanguage < languagesCount)
                            {
                                // The language at this item will match later. Insert the currentLanguage at this position
                                currentItem       = exampleItems.InsertCheckBox(currentItemIndex, languageName);
                                currentItem.Value = currentLanguage;
                                if (isChecked)
                                {
                                    currentItem.Checked = true;
                                }
                                currentItem.Click += new EventHandler(OnExampleLanguageClick);
                                ++itemsCount;
                                ++currentItemIndex;
                            }
                            else
                            {
                                // The item needs to be removed
                                exampleItems.Remove(currentItem);
                                --itemsCount;
                            }
                        }
                    }
                }
            }
            // Remove any remaining items that we didn't match with a language
            if (currentItemIndex < itemsCount)
            {
                for (int i = itemsCount - 1; i >= currentItemIndex; --i)
                {
                    exampleItems.RemoveAt(i);
                }
            }
        }