コード例 #1
0
 private void RecursiveComputeEnabledStateForFolders(PackageImportTreeView.PackageImportTreeViewItem pitem, HashSet <PackageImportTreeView.PackageImportTreeViewItem> done)
 {
     if (pitem.item == null || pitem.item.isFolder)
     {
         if (pitem.hasChildren)
         {
             foreach (TreeViewItem current in pitem.children)
             {
                 this.RecursiveComputeEnabledStateForFolders(current as PackageImportTreeView.PackageImportTreeViewItem, done);
             }
         }
         if (!done.Contains(pitem))
         {
             PackageImportTreeView.EnabledState folderChildrenEnabledState = this.GetFolderChildrenEnabledState(pitem);
             pitem.enableState = folderChildrenEnabledState;
             if (folderChildrenEnabledState == PackageImportTreeView.EnabledState.Mixed)
             {
                 done.Add(pitem);
                 for (PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem = pitem.parent as PackageImportTreeView.PackageImportTreeViewItem; packageImportTreeViewItem != null; packageImportTreeViewItem = (packageImportTreeViewItem.parent as PackageImportTreeView.PackageImportTreeViewItem))
                 {
                     if (!done.Contains(packageImportTreeViewItem))
                     {
                         packageImportTreeViewItem.enableState = PackageImportTreeView.EnabledState.Mixed;
                         done.Add(packageImportTreeViewItem);
                     }
                 }
             }
         }
     }
 }
コード例 #2
0
        private PackageImportTreeView.EnabledState GetFolderChildrenEnabledState(PackageImportTreeView.PackageImportTreeViewItem folder)
        {
            ImportPackageItem item = folder.item;

            if (item != null && !item.isFolder)
            {
                Debug.LogError("Should be a folder item!");
            }
            if (!folder.hasChildren)
            {
                return(PackageImportTreeView.EnabledState.None);
            }
            PackageImportTreeView.EnabledState enabledState = PackageImportTreeView.EnabledState.NotSet;
            PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem = folder.children[0] as PackageImportTreeView.PackageImportTreeViewItem;
            ImportPackageItem item2 = packageImportTreeViewItem.item;
            int num = (item2 != null) ? item2.enabledStatus : 1;

            for (int i = 1; i < folder.children.Count; i++)
            {
                item2 = (folder.children[i] as PackageImportTreeView.PackageImportTreeViewItem).item;
                if (num != item2.enabledStatus)
                {
                    enabledState = PackageImportTreeView.EnabledState.Mixed;
                    break;
                }
            }
            if (enabledState == PackageImportTreeView.EnabledState.NotSet)
            {
                enabledState = ((num != 1) ? PackageImportTreeView.EnabledState.None : PackageImportTreeView.EnabledState.All);
            }
            return(enabledState);
        }
コード例 #3
0
        private void RecursiveComputeEnabledStateForFolders(PackageImportTreeView.PackageImportTreeViewItem pitem, HashSet <PackageImportTreeView.PackageImportTreeViewItem> done)
        {
            ImportPackageItem item = pitem.item;

            if (item != null && !item.isFolder)
            {
                return;
            }
            if (pitem.hasChildren)
            {
                foreach (TreeViewItem current in pitem.children)
                {
                    this.RecursiveComputeEnabledStateForFolders(current as PackageImportTreeView.PackageImportTreeViewItem, done);
                }
            }
            if (item != null && !done.Contains(pitem))
            {
                PackageImportTreeView.EnabledState folderChildrenEnabledState = this.GetFolderChildrenEnabledState(pitem);
                item.enabledStatus = (int)folderChildrenEnabledState;
                if (folderChildrenEnabledState == PackageImportTreeView.EnabledState.Mixed)
                {
                    done.Add(pitem);
                    for (PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem = pitem.parent as PackageImportTreeView.PackageImportTreeViewItem; packageImportTreeViewItem != null; packageImportTreeViewItem = (packageImportTreeViewItem.parent as PackageImportTreeView.PackageImportTreeViewItem))
                    {
                        ImportPackageItem item2 = packageImportTreeViewItem.item;
                        if (item2 != null && !done.Contains(packageImportTreeViewItem))
                        {
                            item2.enabledStatus = 2;
                            done.Add(packageImportTreeViewItem);
                        }
                    }
                }
            }
        }
コード例 #4
0
 public PackageImportTreeViewItem(ImportPackageItem itemIn, int id, int depth, TreeViewItem parent, string displayName) : base(id, depth, parent, displayName)
 {
     this.item = itemIn;
     if (this.item == null)
     {
         this.m_EnableState = PackageImportTreeView.EnabledState.All;
     }
     else
     {
         this.m_EnableState = (PackageImportTreeView.EnabledState) this.item.enabledStatus;
     }
 }
コード例 #5
0
 private void EnableChildrenRecursive(TreeViewItem parentItem, PackageImportTreeView.EnabledState state)
 {
     if (parentItem.hasChildren)
     {
         foreach (TreeViewItem current in parentItem.children)
         {
             PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem = current as PackageImportTreeView.PackageImportTreeViewItem;
             packageImportTreeViewItem.enableState = state;
             this.EnableChildrenRecursive(packageImportTreeViewItem, state);
         }
     }
 }
コード例 #6
0
 private void EnableChildrenRecursive(TreeViewItem parentItem, PackageImportTreeView.EnabledState state)
 {
     if (!parentItem.hasChildren)
     {
         return;
     }
     using (List <TreeViewItem> .Enumerator enumerator = parentItem.children.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             PackageImportTreeView.PackageImportTreeViewItem current = enumerator.Current as PackageImportTreeView.PackageImportTreeViewItem;
             current.enableState = state;
             this.EnableChildrenRecursive((TreeViewItem)current, state);
         }
     }
 }
コード例 #7
0
 private PackageImportTreeView.EnabledState GetFolderChildrenEnabledState(PackageImportTreeView.PackageImportTreeViewItem folder)
 {
     if (folder.item != null && !folder.item.isFolder)
     {
         Debug.LogError("Should be a folder item!");
     }
     PackageImportTreeView.EnabledState result;
     if (!folder.hasChildren)
     {
         result = PackageImportTreeView.EnabledState.None;
     }
     else
     {
         PackageImportTreeView.EnabledState enabledState = PackageImportTreeView.EnabledState.NotSet;
         int i;
         for (i = 0; i < folder.children.Count; i++)
         {
             PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem = folder.children[i] as PackageImportTreeView.PackageImportTreeViewItem;
             if (this.ItemShouldBeConsideredForEnabledCheck(packageImportTreeViewItem))
             {
                 enabledState = packageImportTreeViewItem.enableState;
                 break;
             }
         }
         for (i++; i < folder.children.Count; i++)
         {
             PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem2 = folder.children[i] as PackageImportTreeView.PackageImportTreeViewItem;
             if (this.ItemShouldBeConsideredForEnabledCheck(packageImportTreeViewItem2))
             {
                 if (enabledState != packageImportTreeViewItem2.enableState)
                 {
                     enabledState = PackageImportTreeView.EnabledState.Mixed;
                     break;
                 }
             }
         }
         if (enabledState == PackageImportTreeView.EnabledState.NotSet)
         {
             result = PackageImportTreeView.EnabledState.None;
         }
         else
         {
             result = enabledState;
         }
     }
     return(result);
 }
コード例 #8
0
        public void OnGUI(Rect rect)
        {
            if (Event.current.type == EventType.ScrollWheel)
            {
                PopupWindowWithoutFocus.Hide();
            }
            int controlID = GUIUtility.GetControlID(FocusType.Keyboard);

            this.m_TreeView.OnGUI(rect, controlID);
            if (Event.current.type == EventType.KeyDown && Event.current.keyCode == KeyCode.Space && this.m_Selection != null && this.m_Selection.Count > 0 && GUIUtility.keyboardControl == controlID)
            {
                PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem = this.m_Selection[0];
                if (packageImportTreeViewItem != null)
                {
                    PackageImportTreeView.EnabledState enableState = (packageImportTreeViewItem.enableState != PackageImportTreeView.EnabledState.None) ? PackageImportTreeView.EnabledState.None : PackageImportTreeView.EnabledState.All;
                    packageImportTreeViewItem.enableState = enableState;
                    this.ItemWasToggled(this.m_Selection[0]);
                }
                Event.current.Use();
            }
        }
コード例 #9
0
        public void OnGUI(Rect rect)
        {
            if (Event.current.type == EventType.ScrollWheel)
            {
                PopupWindowWithoutFocus.Hide();
            }
            int controlId = GUIUtility.GetControlID(FocusType.Keyboard);

            this.m_TreeView.OnGUI(rect, controlId);
            if (Event.current.type != EventType.KeyDown || Event.current.keyCode != KeyCode.Space || (this.m_Selection == null || this.m_Selection.Count <= 0) || GUIUtility.keyboardControl != controlId)
            {
                return;
            }
            PackageImportTreeView.PackageImportTreeViewItem importTreeViewItem = this.m_Selection[0];
            if (importTreeViewItem != null)
            {
                PackageImportTreeView.EnabledState enabledState = importTreeViewItem.enableState != PackageImportTreeView.EnabledState.None ? PackageImportTreeView.EnabledState.None : PackageImportTreeView.EnabledState.All;
                importTreeViewItem.enableState = enabledState;
                this.ItemWasToggled(this.m_Selection[0]);
            }
            Event.current.Use();
        }
コード例 #10
0
        private PackageImportTreeView.EnabledState GetFolderChildrenEnabledState(PackageImportTreeView.PackageImportTreeViewItem folder)
        {
            if (folder.item != null && !folder.item.isFolder)
            {
                Debug.LogError((object)"Should be a folder item!");
            }
            if (!folder.hasChildren)
            {
                return(PackageImportTreeView.EnabledState.None);
            }
            PackageImportTreeView.EnabledState enabledState = PackageImportTreeView.EnabledState.NotSet;
            int index1;

            for (index1 = 0; index1 < folder.children.Count; ++index1)
            {
                PackageImportTreeView.PackageImportTreeViewItem child = folder.children[index1] as PackageImportTreeView.PackageImportTreeViewItem;
                if (this.ItemShouldBeConsideredForEnabledCheck(child))
                {
                    enabledState = child.enableState;
                    break;
                }
            }
            for (int index2 = index1 + 1; index2 < folder.children.Count; ++index2)
            {
                PackageImportTreeView.PackageImportTreeViewItem child = folder.children[index2] as PackageImportTreeView.PackageImportTreeViewItem;
                if (this.ItemShouldBeConsideredForEnabledCheck(child) && enabledState != child.enableState)
                {
                    enabledState = PackageImportTreeView.EnabledState.Mixed;
                    break;
                }
            }
            if (enabledState == PackageImportTreeView.EnabledState.NotSet)
            {
                return(PackageImportTreeView.EnabledState.None);
            }
            return(enabledState);
        }
コード例 #11
0
 private void RecursiveComputeEnabledStateForFolders(PackageImportTreeView.PackageImportTreeViewItem pitem, HashSet <PackageImportTreeView.PackageImportTreeViewItem> done)
 {
     if (pitem.item != null && !pitem.item.isFolder)
     {
         return;
     }
     if (pitem.hasChildren)
     {
         using (List <TreeViewItem> .Enumerator enumerator = pitem.children.GetEnumerator())
         {
             while (enumerator.MoveNext())
             {
                 this.RecursiveComputeEnabledStateForFolders(enumerator.Current as PackageImportTreeView.PackageImportTreeViewItem, done);
             }
         }
     }
     if (done.Contains(pitem))
     {
         return;
     }
     PackageImportTreeView.EnabledState childrenEnabledState = this.GetFolderChildrenEnabledState(pitem);
     pitem.enableState = childrenEnabledState;
     if (childrenEnabledState != PackageImportTreeView.EnabledState.Mixed)
     {
         return;
     }
     done.Add(pitem);
     for (PackageImportTreeView.PackageImportTreeViewItem parent = pitem.parent as PackageImportTreeView.PackageImportTreeViewItem; parent != null; parent = parent.parent as PackageImportTreeView.PackageImportTreeViewItem)
     {
         if (!done.Contains(parent))
         {
             parent.enableState = PackageImportTreeView.EnabledState.Mixed;
             done.Add(parent);
         }
     }
 }
コード例 #12
0
 public void SetAllEnabled(PackageImportTreeView.EnabledState state)
 {
     this.EnableChildrenRecursive(this.m_TreeView.data.root, state);
     this.ComputeEnabledStateForFolders();
 }
コード例 #13
0
 public PackageImportTreeViewItem(ImportPackageItem itemIn, int id, int depth, TreeViewItem parent, string displayName)
   : base(id, depth, parent, displayName)
 {
   this.item = itemIn;
   if (this.item == null)
     this.m_EnableState = PackageImportTreeView.EnabledState.All;
   else
     this.m_EnableState = (PackageImportTreeView.EnabledState) this.item.enabledStatus;
 }