Esempio n. 1
0
        private void SaveQatItems()
        {
            string text = string.Empty;

            if (this.QuickAccessToolBar != null && this.QuickAccessToolBar.Items != null)
            {
                List <QatItem> qatItems = this.QuickAccessToolBar.Items.Cast <object>().
                                          Select(i => i as FrameworkElement).Where(e => e != null).
                                          Select(e => RibbonControlService.GetQuickAccessToolBarId(e)).Where(id => id != null).
                                          Select(q => new QatItem(q.GetHashCode())).ToList();

                List <QatItem> remainingItems = new List <QatItem>();
                remainingItems.AddRange(qatItems);

                // add -1 to show from application menu
                remainingItems.ForEach(qat => qat.ControlIndices.Add(-1));
                SaveQatItems(remainingItems, this.ApplicationMenu);
                remainingItems.ForEach(qat => qat.ControlIndices.Clear());
                SaveQatItems(remainingItems, this);

                text = qatItems.Aggregate("", (a, b) => a + "," + b.ControlIndices.ToString()).TrimStart(',');
            }
            Properties.Settings.Default.QuickAccessToolBar = text;
            Properties.Settings.Default.Save();
        }
Esempio n. 2
0
        private static void AddToQATCanExecute(object sender, CanExecuteRoutedEventArgs args)
        {
            DependencyObject thatCanBeAddedToQat = MyRibbon.FindElementThatCanBeAddedToQAT(args.OriginalSource as DependencyObject);

            if (thatCanBeAddedToQat == null || RibbonControlService.GetQuickAccessToolBarId(thatCanBeAddedToQat) == null || RibbonHelper.ExistsInQAT(thatCanBeAddedToQat))
            {
                return;
            }
            args.CanExecute = true;
        }
Esempio n. 3
0
        public static DependencyObject GetQATButton(RibbonQuickAccessToolBar qatBar, object id)
        {
            foreach (DependencyObject each in qatBar.Items)
            {
                if (RibbonControlService.GetQuickAccessToolBarId(each) == id)
                {
                    return(each);
                }
            }

            return(null);
        }
Esempio n. 4
0
        private bool SaveQatItemsIfMatchesControl(List <QatItem> remainingItems, object control)
        {
            bool matched = false;

            if (control is FrameworkElement element)
            {
                object getQuickAccessToolBarId = RibbonControlService.GetQuickAccessToolBarId(element);
                if (getQuickAccessToolBarId != null)
                {
                    int remove = remainingItems.RemoveAll(qat => qat.HashCode == getQuickAccessToolBarId.GetHashCode());
                    matched = remove > 0;
                }
            }

            return(matched);
        }
Esempio n. 5
0
        // Determine whether the QAT contains an element with the given QAT ID.
        internal bool ContainsId(object targetID)
        {
            foreach (object o in this.Items)
            {
                DependencyObject dependencyObject = o as DependencyObject;
                if (dependencyObject != null)
                {
                    object currentID = RibbonControlService.GetQuickAccessToolBarId(dependencyObject);
                    if (object.Equals(currentID, targetID))
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }