예제 #1
0
 public PackageImportTreeViewDataSource(TreeView treeView, PackageImportTreeView view)
     : base(treeView)
 {
     this.m_PackageImportView = view;
     this.rootIsCollapsable   = false;
     this.showRootNode        = false;
 }
 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);
     }
   }
 }
 public PackageImportTreeViewDataSource(TreeViewController treeView, PackageImportTreeView view)
     : base(treeView)
 {
     m_PackageImportView = view;
     rootIsCollapsable   = false;
     showRootItem        = false;
 }
 public PackageImportTreeViewGUI(TreeView treeView, PackageImportTreeView view) : base(treeView)
 {
     this.m_PackageImportView = view;
     base.k_BaseIndent        = 4f;
     if (!PackageImportTreeView.s_UseFoldouts)
     {
         base.k_FoldoutWidth = 0f;
     }
 }
예제 #5
0
 public PackageImportTreeViewGUI(TreeView treeView, PackageImportTreeView view)
     : base(treeView)
 {
     this.m_PackageImportView = view;
     this.k_BaseIndent        = 4f;
     if (PackageImportTreeView.s_UseFoldouts)
     {
         return;
     }
     this.k_FoldoutWidth = 0.0f;
 }
예제 #6
0
 private void Init(string packagePath, AssetsItem[] items, string packageIconPath)
 {
     this.DestroyCreatedIcons();
     this.m_TreeViewState   = null;
     this.m_Tree            = null;
     this.m_EnabledFolders  = null;
     this.m_Assets          = items;
     this.m_PackageName     = Path.GetFileNameWithoutExtension(packagePath);
     this.m_PackageIconPath = packageIconPath;
     base.Repaint();
 }
            public PackageImportTreeViewGUI(TreeViewController treeView, PackageImportTreeView view)
                : base(treeView)
            {
                m_PackageImportView = view;

                k_BaseIndent = 4f;
                if (!s_UseFoldouts)
                {
                    k_FoldoutWidth = 0f;
                }
            }
예제 #8
0
 private void Init(string packagePath, ImportPackageItem[] items, string packageIconPath, bool allowReInstall)
 {
     this.DestroyCreatedIcons();
     this.m_ShowReInstall      = allowReInstall;
     this.m_ReInstallPackage   = true;
     this.m_TreeViewState      = null;
     this.m_Tree               = null;
     this.m_ImportPackageItems = items;
     this.m_PackageName        = Path.GetFileNameWithoutExtension(packagePath);
     this.m_PackageIconPath    = packageIconPath;
     base.Repaint();
 }
예제 #9
0
        void Init(string packagePath, ImportPackageItem[] items, string packageIconPath)
        {
            DestroyCreatedIcons();

            m_TreeViewState      = null;
            m_Tree               = null;
            m_ImportPackageItems = items;

            m_PackageName     = System.IO.Path.GetFileNameWithoutExtension(packagePath);
            m_PackageIconPath = packageIconPath;

            Repaint();
        }
        public void OnGUI()
        {
            if (ms_Constants == null)
            {
                ms_Constants = new Constants();
            }

            if (m_TreeViewState == null)
            {
                m_TreeViewState = new TreeViewState();
            }

            if (m_Tree == null)
            {
                m_Tree = new PackageImportTreeView(this, m_TreeViewState, new Rect());
            }

            if (m_ImportPackageItems != null && ShowTreeGUI(doReInstall, m_ImportPackageItems))
            {
                TopArea();
                m_Tree.OnGUI(GUILayoutUtility.GetRect(1, 9999, 1, 99999));
                BottomArea();
            }
            else
            {
                GUILayout.Label("Nothing to import!", EditorStyles.boldLabel);
                GUILayout.Label("All assets from this package are already in your project.", "WordWrappedLabel");
                GUILayout.FlexibleSpace();

                // Background
                GUILayout.BeginVertical(ms_Constants.bottomBarBg);
                GUILayout.Space(8);
                GUILayout.BeginHorizontal();
                GUILayout.FlexibleSpace();
                ReInstallToggle();
                if (GUILayout.Button("OK"))
                {
                    Close();
                    GUIUtility.ExitGUI();
                }
                GUILayout.Space(10);
                GUILayout.EndHorizontal();
                GUILayout.Space(5);
                GUILayout.EndVertical();
            }
        }
예제 #11
0
 public void OnGUI()
 {
     if (PackageImport.ms_Constants == null)
     {
         PackageImport.ms_Constants = new PackageImport.Constants();
     }
     if (this.m_TreeViewState == null)
     {
         this.m_TreeViewState = new TreeViewState();
     }
     if (this.m_Tree == null)
     {
         this.m_Tree = new PackageImportTreeView(this, this.m_TreeViewState, default(Rect));
     }
     if (this.m_ImportPackageItems != null && this.ShowTreeGUI(this.doReInstall, this.m_ImportPackageItems))
     {
         this.TopArea();
         this.m_Tree.OnGUI(GUILayoutUtility.GetRect(1f, 9999f, 1f, 99999f));
         this.BottomArea();
     }
     else
     {
         GUILayout.Label("Nothing to import!", EditorStyles.boldLabel, new GUILayoutOption[0]);
         GUILayout.Label("All assets from this package are already in your project.", "WordWrappedLabel", new GUILayoutOption[0]);
         GUILayout.FlexibleSpace();
         GUILayout.BeginVertical(PackageImport.ms_Constants.bottomBarBg, new GUILayoutOption[0]);
         GUILayout.Space(8f);
         GUILayout.BeginHorizontal(new GUILayoutOption[0]);
         GUILayout.FlexibleSpace();
         this.ReInstallToggle();
         if (GUILayout.Button("OK", new GUILayoutOption[0]))
         {
             base.Close();
             GUIUtility.ExitGUI();
         }
         GUILayout.Space(10f);
         GUILayout.EndHorizontal();
         GUILayout.Space(5f);
         GUILayout.EndVertical();
     }
 }
예제 #12
0
 public void OnGUI()
 {
     if (PackageImport.ms_Constants == null)
     {
         PackageImport.ms_Constants = new PackageImport.Constants();
     }
     if (this.m_Assets == null)
     {
         return;
     }
     if (this.m_TreeViewState == null)
     {
         this.m_TreeViewState = new TreeViewState();
     }
     if (this.m_Tree == null)
     {
         this.m_Tree = new PackageImportTreeView(this.m_Assets, this.m_EnabledFolders, this.m_TreeViewState, this, default(Rect));
     }
     if (this.m_Assets.Length > 0)
     {
         this.TopArea();
         this.m_Tree.OnGUI(GUILayoutUtility.GetRect(1f, 9999f, 1f, 99999f));
         this.BottomArea();
     }
     else
     {
         GUILayout.Label("Nothing to import!", EditorStyles.boldLabel, new GUILayoutOption[0]);
         GUILayout.Label("All assets from this package are already in your project.", "WordWrappedLabel", new GUILayoutOption[0]);
         GUILayout.FlexibleSpace();
         GUILayout.BeginHorizontal(new GUILayoutOption[0]);
         GUILayout.FlexibleSpace();
         if (GUILayout.Button("OK", new GUILayoutOption[0]))
         {
             base.Close();
             GUIUtility.ExitGUI();
         }
         GUILayout.EndHorizontal();
     }
 }
 public PackageImportTreeViewGUI(TreeView treeView, PackageImportTreeView view)
   : base(treeView)
 {
   this.m_PackageImportView = view;
   this.k_BaseIndent = 4f;
   if (PackageImportTreeView.s_UseFoldouts)
     return;
   this.k_FoldoutWidth = 0.0f;
 }
 private static void Toggle(ImportPackageItem[] items, PackageImportTreeView.PackageImportTreeViewItem pitem, Rect toggleRect)
 {
   bool flag1 = pitem.enableState > PackageImportTreeView.EnabledState.None;
   bool flag2 = pitem.item == null || pitem.item.isFolder;
   GUIStyle style = EditorStyles.toggle;
   if (flag2 && pitem.enableState == PackageImportTreeView.EnabledState.Mixed)
     style = EditorStyles.toggleMixed;
   bool flag3 = GUI.Toggle(toggleRect, flag1, GUIContent.none, style);
   if (flag3 == flag1)
     return;
   pitem.enableState = !flag3 ? PackageImportTreeView.EnabledState.None : PackageImportTreeView.EnabledState.All;
 }
예제 #15
0
 private void BuildAssetList()
 {
     this.m_Assets = GetAssetItemsForExport(Selection.assetGUIDsDeepSelection, this.m_IncludeDependencies).ToArray<AssetsItem>();
     this.m_Tree = null;
     this.m_TreeViewState = null;
 }
 private void DoToggle(PackageImportTreeView.PackageImportTreeViewItem pitem, Rect toggleRect)
 {
   EditorGUI.BeginChangeCheck();
   PackageImportTreeView.PackageImportTreeViewGUI.Toggle(this.m_PackageImportView.packageItems, pitem, toggleRect);
   if (!EditorGUI.EndChangeCheck())
     return;
   if (this.m_TreeView.GetSelection().Length <= 1 || !((IEnumerable<int>) this.m_TreeView.GetSelection()).Contains<int>(pitem.id))
   {
     this.m_TreeView.SetSelection(new int[1]{ pitem.id }, 0 != 0);
     this.m_TreeView.NotifyListenersThatSelectionChanged();
   }
   if (this.itemWasToggled != null)
     this.itemWasToggled(pitem);
   Event.current.Use();
 }
예제 #17
0
 public void OnGUI()
 {
   if (PackageImport.ms_Constants == null)
     PackageImport.ms_Constants = new PackageImport.Constants();
   if (this.m_TreeViewState == null)
     this.m_TreeViewState = new TreeViewState();
   if (this.m_Tree == null)
     this.m_Tree = new PackageImportTreeView(this, this.m_TreeViewState, new Rect());
   if (this.m_ImportPackageItems != null && this.ShowTreeGUI(this.doReInstall, this.m_ImportPackageItems))
   {
     this.TopArea();
     this.m_Tree.OnGUI(GUILayoutUtility.GetRect(1f, 9999f, 1f, 99999f));
     this.BottomArea();
   }
   else
   {
     GUILayout.Label("Nothing to import!", EditorStyles.boldLabel, new GUILayoutOption[0]);
     GUILayout.Label("All assets from this package are already in your project.", (GUIStyle) "WordWrappedLabel", new GUILayoutOption[0]);
     GUILayout.FlexibleSpace();
     GUILayout.BeginVertical(PackageImport.ms_Constants.bottomBarBg, new GUILayoutOption[0]);
     GUILayout.Space(8f);
     GUILayout.BeginHorizontal();
     GUILayout.FlexibleSpace();
     this.ReInstallToggle();
     if (GUILayout.Button("OK"))
     {
       this.Close();
       GUIUtility.ExitGUI();
     }
     GUILayout.Space(10f);
     GUILayout.EndHorizontal();
     GUILayout.Space(5f);
     GUILayout.EndVertical();
   }
 }
 private void ItemWasToggled(PackageImportTreeView.PackageImportTreeViewItem pitem)
 {
   if (this.m_Selection.Count <= 1)
   {
     this.EnableChildrenRecursive((TreeViewItem) pitem, pitem.enableState);
   }
   else
   {
     using (List<PackageImportTreeView.PackageImportTreeViewItem>.Enumerator enumerator = this.m_Selection.GetEnumerator())
     {
       while (enumerator.MoveNext())
         enumerator.Current.enableState = pitem.enableState;
     }
   }
   this.ComputeEnabledStateForFolders();
 }
예제 #19
0
		public void OnGUI()
		{
			if (PackageImport.ms_Constants == null)
			{
				PackageImport.ms_Constants = new PackageImport.Constants();
			}
			if (this.m_Assets == null)
			{
				return;
			}
			if (this.m_TreeViewState == null)
			{
				this.m_TreeViewState = new TreeViewState();
			}
			if (this.m_Tree == null)
			{
				this.m_Tree = new PackageImportTreeView(this.m_Assets, this.m_EnabledFolders, this.m_TreeViewState, this, default(Rect));
			}
			if (this.m_Assets.Length > 0)
			{
				this.TopArea();
				this.m_Tree.OnGUI(GUILayoutUtility.GetRect(1f, 9999f, 1f, 99999f));
				this.BottomArea();
			}
			else
			{
				GUILayout.Label("Nothing to import!", EditorStyles.boldLabel, new GUILayoutOption[0]);
				GUILayout.Label("All assets from this package are already in your project.", "WordWrappedLabel", new GUILayoutOption[0]);
				GUILayout.FlexibleSpace();
				GUILayout.BeginHorizontal(new GUILayoutOption[0]);
				GUILayout.FlexibleSpace();
				if (GUILayout.Button("OK", new GUILayoutOption[0]))
				{
					base.Close();
					GUIUtility.ExitGUI();
				}
				GUILayout.EndHorizontal();
			}
		}
		private void ItemWasToggled(PackageImportTreeView.PackageImportTreeViewItem pitem)
		{
			if (this.m_Selection.Count <= 1)
			{
				this.EnableChildrenRecursive(pitem, pitem.item.enabled);
			}
			else
			{
				foreach (PackageImportTreeView.PackageImportTreeViewItem current in this.m_Selection)
				{
					current.item.enabled = pitem.item.enabled;
				}
			}
			this.ComputeEnabledStateForFolders();
		}
 public void SetAllEnabled(PackageImportTreeView.EnabledState state)
 {
   this.EnableChildrenRecursive(this.m_TreeView.data.root, state);
   this.ComputeEnabledStateForFolders();
 }
 public PackageImportTreeViewDataSource(TreeView treeView, PackageImportTreeView view)
   : base(treeView)
 {
   this.m_PackageImportView = view;
   this.rootIsCollapsable = false;
   this.showRootNode = false;
 }
			private static void Toggle(PackageImportTreeView.PackageImportTreeViewItem pitem, Rect toggleRect)
			{
				bool flag = pitem.item.enabled > 0;
				GUIStyle style = EditorStyles.toggle;
				bool flag2 = pitem.isFolder && pitem.item.enabled == 2;
				if (flag2)
				{
					style = EditorStyles.toggleMixed;
				}
				bool flag3 = GUI.Toggle(toggleRect, flag, GUIContent.none, style);
				if (flag3 != flag)
				{
					pitem.item.enabled = ((!flag3) ? 0 : 1);
				}
			}
예제 #24
0
 private void BuildAssetList()
 {
     this.m_Assets        = GetAssetItemsForExport(Selection.assetGUIDsDeepSelection, this.m_IncludeDependencies).ToArray <AssetsItem>();
     this.m_Tree          = null;
     this.m_TreeViewState = null;
 }
예제 #25
0
 private void Init(string packagePath, ImportPackageItem[] items, string packageIconPath, bool allowReInstall)
 {
   this.DestroyCreatedIcons();
   this.m_ShowReInstall = allowReInstall;
   this.m_ReInstallPackage = true;
   this.m_TreeViewState = (TreeViewState) null;
   this.m_Tree = (PackageImportTreeView) null;
   this.m_ImportPackageItems = items;
   this.m_PackageName = Path.GetFileNameWithoutExtension(packagePath);
   this.m_PackageIconPath = packageIconPath;
   this.Repaint();
 }
 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);
     }
   }
 }
예제 #27
0
		private void Init(string packagePath, AssetsItem[] items, string packageIconPath)
		{
			this.DestroyCreatedIcons();
			this.m_TreeViewState = null;
			this.m_Tree = null;
			this.m_EnabledFolders = null;
			this.m_Assets = items;
			this.m_PackageName = Path.GetFileNameWithoutExtension(packagePath);
			this.m_PackageIconPath = packageIconPath;
			base.Repaint();
		}
 private void DoPreviewPopup(PackageImportTreeView.PackageImportTreeViewItem pitem, Rect rowRect)
 {
   ImportPackageItem importPackageItem = pitem.item;
   if (importPackageItem == null)
     return;
   if (Event.current.type == EventType.MouseDown && rowRect.Contains(Event.current.mousePosition) && !PopupWindowWithoutFocus.IsVisible())
     this.showPreviewForID = pitem.id;
   if (pitem.id != this.showPreviewForID || Event.current.type == EventType.Layout)
     return;
   this.showPreviewForID = 0;
   if (string.IsNullOrEmpty(importPackageItem.previewPath))
     return;
   Texture2D preview = PackageImport.GetPreview(importPackageItem.previewPath);
   Rect activatorRect = rowRect;
   activatorRect.width = EditorGUIUtility.currentViewWidth;
   PopupWindowWithoutFocus.Show(activatorRect, (PopupWindowContent) new PackageImportTreeView.PreviewPopup(preview), new PopupLocationHelper.PopupLocation[3]
   {
     PopupLocationHelper.PopupLocation.Right,
     PopupLocationHelper.PopupLocation.Left,
     PopupLocationHelper.PopupLocation.Below
   });
 }
		private void RecursiveComputeEnabledStateForFolders(PackageImportTreeView.PackageImportTreeViewItem pitem, HashSet<PackageImportTreeView.PackageImportTreeViewItem> done)
		{
			if (!pitem.isFolder)
			{
				return;
			}
			if (pitem.hasChildren)
			{
				foreach (TreeViewItem current in pitem.children)
				{
					this.RecursiveComputeEnabledStateForFolders(current as PackageImportTreeView.PackageImportTreeViewItem, done);
				}
			}
			if (!done.Contains(pitem))
			{
				PackageImportTreeView.Amount folderChildrenEnabledState = this.GetFolderChildrenEnabledState(pitem);
				pitem.item.enabled = (int)folderChildrenEnabledState;
				if (folderChildrenEnabledState == PackageImportTreeView.Amount.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.item.enabled = 2;
							done.Add(packageImportTreeViewItem);
						}
					}
				}
			}
		}
 private bool ItemShouldBeConsideredForEnabledCheck(PackageImportTreeView.PackageImportTreeViewItem pitem)
 {
   if (pitem == null)
     return false;
   if (pitem.item == null)
     return true;
   ImportPackageItem importPackageItem = pitem.item;
   return !importPackageItem.projectAsset && (importPackageItem.isFolder || importPackageItem.assetChanged || this.doReInstall);
 }
		private PackageImportTreeView.Amount GetFolderChildrenEnabledState(PackageImportTreeView.PackageImportTreeViewItem folder)
		{
			if (!folder.isFolder)
			{
				Debug.LogError("Should be a folder item!");
			}
			if (!folder.hasChildren)
			{
				return PackageImportTreeView.Amount.None;
			}
			PackageImportTreeView.Amount amount = PackageImportTreeView.Amount.NotSet;
			PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem = folder.children[0] as PackageImportTreeView.PackageImportTreeViewItem;
			int enabled = packageImportTreeViewItem.item.enabled;
			for (int i = 1; i < folder.children.Count; i++)
			{
				if (enabled != (folder.children[i] as PackageImportTreeView.PackageImportTreeViewItem).item.enabled)
				{
					amount = PackageImportTreeView.Amount.Mixed;
					break;
				}
			}
			if (amount == PackageImportTreeView.Amount.NotSet)
			{
				amount = ((enabled != 1) ? PackageImportTreeView.Amount.None : PackageImportTreeView.Amount.All);
			}
			return amount;
		}
 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;
 }