public void DoGUI(ASHistoryWindow parentWin, Rect theRect, bool focused) { if (ASHistoryFileView.ms_Styles == null) { ASHistoryFileView.ms_Styles = new ASHistoryFileView.Styles(); } this.m_ScreenRect = theRect; Hashtable hashtable = new Hashtable(); foreach (UnityEngine.Object @object in Selection.objects) { hashtable.Add((object)@object.GetInstanceID(), (object)null); } this.m_FileViewControlID = GUIUtility.GetControlID(ASHistoryFileView.ms_FileViewHash, FocusType.Native); this.KeyboardGUI(parentWin); focused &= GUIUtility.keyboardControl == this.m_FileViewControlID; HierarchyProperty property = new HierarchyProperty(HierarchyType.Assets); int num1 = property.CountRemaining(this.m_ExpandedArray); int num2 = !this.DeletedItemsToggle ? 0 : this.m_DelPVstate.lv.totalRows; Rect viewRect = new Rect(0.0f, 0.0f, 1f, (float)((double)(num1 + 2 + num2) * (double)ASHistoryFileView.m_RowHeight + 16.0)); this.m_ScrollPosition = GUI.BeginScrollView(this.m_ScreenRect, this.m_ScrollPosition, viewRect); theRect.width = (double)viewRect.height <= (double)this.m_ScreenRect.height ? theRect.width : theRect.width - 18f; int count = Mathf.RoundToInt(this.m_ScrollPosition.y - 6f - ASHistoryFileView.m_RowHeight) / Mathf.RoundToInt(ASHistoryFileView.m_RowHeight); if (count > num1) { count = num1; } else if (count < 0) { count = 0; this.m_ScrollPosition.y = 0.0f; } GUIContent guiContent = new GUIContent(); Event current = Event.current; GUIStyle s = new GUIStyle(ASHistoryFileView.ms_Styles.label); Texture2D texture = EditorGUIUtility.FindTexture(EditorResourcesUtility.folderIconName); float y1 = (float)((double)count * (double)ASHistoryFileView.m_RowHeight + 3.0); float endOffset = this.m_ScreenRect.height + this.m_ScrollPosition.y; Rect position = new Rect(0.0f, y1, theRect.width, ASHistoryFileView.m_RowHeight); if (current.type == EventType.MouseDown && position.Contains(current.mousePosition)) { this.SelType = ASHistoryFileView.SelectionType.All; GUIUtility.keyboardControl = this.m_FileViewControlID; this.ScrollTo(0.0f); parentWin.DoLocalSelectionChange(); current.Use(); } GUIContent content = new GUIContent("Entire Project"); content.image = (Texture)texture; int baseIndent = (int)this.m_BaseIndent; s.padding.left = 3; if (Event.current.type == EventType.Repaint) { s.Draw(position, content, false, false, this.SelType == ASHistoryFileView.SelectionType.All, focused); } float y2 = y1 + (ASHistoryFileView.m_RowHeight + 3f); property.Reset(); property.Skip(count, this.m_ExpandedArray); while (property.Next(this.m_ExpandedArray) && (double)y2 <= (double)endOffset) { int instanceId = property.instanceID; position = new Rect(0.0f, y2, theRect.width, ASHistoryFileView.m_RowHeight); if (Event.current.type == EventType.Repaint) { content.text = property.name; content.image = (Texture)property.icon; int num3 = (int)((double)this.m_BaseIndent + (double)this.m_Indent * (double)property.depth); s.padding.left = num3; bool on = hashtable.Contains((object)instanceId); s.Draw(position, content, false, false, on, focused); } if (property.hasChildren) { bool flag = property.IsExpanded(this.m_ExpandedArray); GUI.changed = false; bool expand = GUI.Toggle(new Rect(this.m_BaseIndent + this.m_Indent * (float)property.depth - this.m_FoldoutSize, y2, this.m_FoldoutSize, ASHistoryFileView.m_RowHeight), flag, GUIContent.none, ASHistoryFileView.ms_Styles.foldout); if (GUI.changed) { if (Event.current.alt) { this.SetExpandedRecurse(instanceId, expand); } else { this.SetExpanded(instanceId, expand); } } } if (current.type == EventType.MouseDown && Event.current.button == 0 && position.Contains(Event.current.mousePosition)) { GUIUtility.keyboardControl = this.m_FileViewControlID; if (Event.current.clickCount == 2) { AssetDatabase.OpenAsset(instanceId); GUIUtility.ExitGUI(); } else if (position.Contains(current.mousePosition)) { this.SelectionClick(property); } current.Use(); } y2 += ASHistoryFileView.m_RowHeight; } float offset = y2 + 3f; this.DoDeletedItemsGUI(parentWin, theRect, s, offset, endOffset, focused); GUI.EndScrollView(); switch (current.type) { case EventType.MouseDown: if (current.button == 0 && this.m_ScreenRect.Contains(current.mousePosition)) { GUIUtility.hotControl = this.m_FileViewControlID; current.Use(); break; } break; case EventType.MouseUp: if (GUIUtility.hotControl == this.m_FileViewControlID) { if (this.m_ScreenRect.Contains(current.mousePosition)) { Selection.activeObject = (UnityEngine.Object)null; } GUIUtility.hotControl = 0; current.Use(); break; } break; } this.HandleFraming(); }
public void DoGUI(ASHistoryWindow parentWin, Rect theRect, bool focused) { if (ASHistoryFileView.ms_Styles == null) { ASHistoryFileView.ms_Styles = new ASHistoryFileView.Styles(); } this.m_ScreenRect = theRect; Hashtable hashtable = new Hashtable(); UnityEngine.Object[] objects = Selection.objects; for (int i = 0; i < objects.Length; i++) { UnityEngine.Object @object = objects[i]; hashtable.Add(@object.GetInstanceID(), null); } this.m_FileViewControlID = GUIUtility.GetControlID(ASHistoryFileView.ms_FileViewHash, FocusType.Passive); this.KeyboardGUI(parentWin); focused &= (GUIUtility.keyboardControl == this.m_FileViewControlID); HierarchyProperty hierarchyProperty = new HierarchyProperty(HierarchyType.Assets); int num = hierarchyProperty.CountRemaining(this.m_ExpandedArray); int num2 = (!this.DeletedItemsToggle) ? 0 : this.m_DelPVstate.lv.totalRows; Rect viewRect = new Rect(0f, 0f, 1f, (float)(num + 2 + num2) * ASHistoryFileView.m_RowHeight + 16f); this.m_ScrollPosition = GUI.BeginScrollView(this.m_ScreenRect, this.m_ScrollPosition, viewRect); theRect.width = ((viewRect.height <= this.m_ScreenRect.height) ? theRect.width : (theRect.width - 18f)); int num3 = Mathf.RoundToInt(this.m_ScrollPosition.y - 6f - ASHistoryFileView.m_RowHeight) / Mathf.RoundToInt(ASHistoryFileView.m_RowHeight); if (num3 > num) { num3 = num; } else if (num3 < 0) { num3 = 0; this.m_ScrollPosition.y = 0f; } GUIContent gUIContent = new GUIContent(); Event current = Event.current; GUIStyle gUIStyle = new GUIStyle(ASHistoryFileView.ms_Styles.label); Texture2D image = EditorGUIUtility.FindTexture(EditorResourcesUtility.folderIconName); float num4 = (float)num3 * ASHistoryFileView.m_RowHeight + 3f; float num5 = this.m_ScreenRect.height + this.m_ScrollPosition.y; Rect position = new Rect(0f, num4, theRect.width, ASHistoryFileView.m_RowHeight); if (current.type == EventType.MouseDown && position.Contains(current.mousePosition)) { this.SelType = ASHistoryFileView.SelectionType.All; GUIUtility.keyboardControl = this.m_FileViewControlID; this.ScrollTo(0f); parentWin.DoLocalSelectionChange(); current.Use(); } gUIContent = new GUIContent("Entire Project"); gUIContent.image = image; int left = (int)this.m_BaseIndent; gUIStyle.padding.left = 3; if (Event.current.type == EventType.Repaint) { gUIStyle.Draw(position, gUIContent, false, false, this.SelType == ASHistoryFileView.SelectionType.All, focused); } num4 += ASHistoryFileView.m_RowHeight + 3f; hierarchyProperty.Reset(); hierarchyProperty.Skip(num3, this.m_ExpandedArray); while (hierarchyProperty.Next(this.m_ExpandedArray) && num4 <= num5) { int instanceID = hierarchyProperty.instanceID; position = new Rect(0f, num4, theRect.width, ASHistoryFileView.m_RowHeight); if (Event.current.type == EventType.Repaint) { gUIContent.text = hierarchyProperty.name; gUIContent.image = hierarchyProperty.icon; left = (int)(this.m_BaseIndent + this.m_Indent * (float)hierarchyProperty.depth); gUIStyle.padding.left = left; bool on = hashtable.Contains(instanceID); gUIStyle.Draw(position, gUIContent, false, false, on, focused); } if (hierarchyProperty.hasChildren) { bool flag = hierarchyProperty.IsExpanded(this.m_ExpandedArray); GUI.changed = false; Rect position2 = new Rect(this.m_BaseIndent + this.m_Indent * (float)hierarchyProperty.depth - this.m_FoldoutSize, num4, this.m_FoldoutSize, ASHistoryFileView.m_RowHeight); flag = GUI.Toggle(position2, flag, GUIContent.none, ASHistoryFileView.ms_Styles.foldout); if (GUI.changed) { if (Event.current.alt) { this.SetExpandedRecurse(instanceID, flag); } else { this.SetExpanded(instanceID, flag); } } } if (current.type == EventType.MouseDown && Event.current.button == 0 && position.Contains(Event.current.mousePosition)) { GUIUtility.keyboardControl = this.m_FileViewControlID; if (Event.current.clickCount == 2) { AssetDatabase.OpenAsset(instanceID); GUIUtility.ExitGUI(); } else if (position.Contains(current.mousePosition)) { this.SelectionClick(hierarchyProperty); } current.Use(); } num4 += ASHistoryFileView.m_RowHeight; } num4 += 3f; this.DoDeletedItemsGUI(parentWin, theRect, gUIStyle, num4, num5, focused); GUI.EndScrollView(); EventType type = current.type; if (type != EventType.MouseDown) { if (type == EventType.MouseUp) { if (GUIUtility.hotControl == this.m_FileViewControlID) { if (this.m_ScreenRect.Contains(current.mousePosition)) { Selection.activeObject = null; } GUIUtility.hotControl = 0; current.Use(); } } } else if (current.button == 0 && this.m_ScreenRect.Contains(current.mousePosition)) { GUIUtility.hotControl = this.m_FileViewControlID; current.Use(); } this.HandleFraming(); }
public void DoGUI(ASHistoryWindow parentWin, Rect theRect, bool focused) { if (ASHistoryFileView.ms_Styles == null) { ASHistoryFileView.ms_Styles = new ASHistoryFileView.Styles(); } this.m_ScreenRect = theRect; Hashtable hashtable = new Hashtable(); UnityEngine.Object[] objects = Selection.objects; for (int i = 0; i < objects.Length; i++) { UnityEngine.Object @object = objects[i]; hashtable.Add(@object.GetInstanceID(), null); } this.m_FileViewControlID = GUIUtility.GetControlID(ASHistoryFileView.ms_FileViewHash, FocusType.Native); this.KeyboardGUI(parentWin); focused &= (GUIUtility.keyboardControl == this.m_FileViewControlID); HierarchyProperty hierarchyProperty = new HierarchyProperty(HierarchyType.Assets); int num = hierarchyProperty.CountRemaining(this.m_ExpandedArray); int num2 = (!this.DeletedItemsToggle) ? 0 : this.m_DelPVstate.lv.totalRows; Rect viewRect = new Rect(0f, 0f, 1f, (float)(num + 2 + num2) * ASHistoryFileView.m_RowHeight + 16f); this.m_ScrollPosition = GUI.BeginScrollView(this.m_ScreenRect, this.m_ScrollPosition, viewRect); theRect.width = ((viewRect.height <= this.m_ScreenRect.height) ? theRect.width : (theRect.width - 18f)); int num3 = Mathf.RoundToInt(this.m_ScrollPosition.y - 6f - ASHistoryFileView.m_RowHeight) / Mathf.RoundToInt(ASHistoryFileView.m_RowHeight); if (num3 > num) { num3 = num; } else { if (num3 < 0) { num3 = 0; this.m_ScrollPosition.y = 0f; } } GUIContent gUIContent = new GUIContent(); Event current = Event.current; GUIStyle gUIStyle = new GUIStyle(ASHistoryFileView.ms_Styles.label); Texture2D image = EditorGUIUtility.FindTexture(EditorResourcesUtility.folderIconName); float num4 = (float)num3 * ASHistoryFileView.m_RowHeight + 3f; float num5 = this.m_ScreenRect.height + this.m_ScrollPosition.y; Rect position = new Rect(0f, num4, theRect.width, ASHistoryFileView.m_RowHeight); if (current.type == EventType.MouseDown && position.Contains(current.mousePosition)) { this.SelType = ASHistoryFileView.SelectionType.All; GUIUtility.keyboardControl = this.m_FileViewControlID; this.ScrollTo(0f); parentWin.DoLocalSelectionChange(); current.Use(); } gUIContent = new GUIContent("Entire Project"); gUIContent.image = image; int left = (int)this.m_BaseIndent; gUIStyle.padding.left = 3; if (Event.current.type == EventType.Repaint) { gUIStyle.Draw(position, gUIContent, false, false, this.SelType == ASHistoryFileView.SelectionType.All, focused); } num4 += ASHistoryFileView.m_RowHeight + 3f; hierarchyProperty.Reset(); hierarchyProperty.Skip(num3, this.m_ExpandedArray); while (hierarchyProperty.Next(this.m_ExpandedArray) && num4 <= num5) { int instanceID = hierarchyProperty.instanceID; position = new Rect(0f, num4, theRect.width, ASHistoryFileView.m_RowHeight); if (Event.current.type == EventType.Repaint) { gUIContent.text = hierarchyProperty.name; gUIContent.image = hierarchyProperty.icon; left = (int)(this.m_BaseIndent + this.m_Indent * (float)hierarchyProperty.depth); gUIStyle.padding.left = left; bool on = hashtable.Contains(instanceID); gUIStyle.Draw(position, gUIContent, false, false, on, focused); } if (hierarchyProperty.hasChildren) { bool flag = hierarchyProperty.IsExpanded(this.m_ExpandedArray); GUI.changed = false; Rect position2 = new Rect(this.m_BaseIndent + this.m_Indent * (float)hierarchyProperty.depth - this.m_FoldoutSize, num4, this.m_FoldoutSize, ASHistoryFileView.m_RowHeight); flag = GUI.Toggle(position2, flag, GUIContent.none, ASHistoryFileView.ms_Styles.foldout); if (GUI.changed) { if (Event.current.alt) { this.SetExpandedRecurse(instanceID, flag); } else { this.SetExpanded(instanceID, flag); } } } if (current.type == EventType.MouseDown && Event.current.button == 0 && position.Contains(Event.current.mousePosition)) { GUIUtility.keyboardControl = this.m_FileViewControlID; if (Event.current.clickCount == 2) { AssetDatabase.OpenAsset(instanceID); GUIUtility.ExitGUI(); } else { if (position.Contains(current.mousePosition)) { this.SelectionClick(hierarchyProperty); } } current.Use(); } num4 += ASHistoryFileView.m_RowHeight; } num4 += 3f; this.DoDeletedItemsGUI(parentWin, theRect, gUIStyle, num4, num5, focused); GUI.EndScrollView(); EventType type = current.type; if (type != EventType.MouseDown) { if (type == EventType.MouseUp) { if (GUIUtility.hotControl == this.m_FileViewControlID) { if (this.m_ScreenRect.Contains(current.mousePosition)) { Selection.activeObject = null; } GUIUtility.hotControl = 0; current.Use(); } } } else { if (current.button == 0 && this.m_ScreenRect.Contains(current.mousePosition)) { GUIUtility.hotControl = this.m_FileViewControlID; current.Use(); } } this.HandleFraming(); }
public void DoGUI(ASHistoryWindow parentWin, Rect theRect, bool focused) { if (ASHistoryFileView.ms_Styles == null) ASHistoryFileView.ms_Styles = new ASHistoryFileView.Styles(); this.m_ScreenRect = theRect; Hashtable hashtable = new Hashtable(); foreach (UnityEngine.Object @object in Selection.objects) hashtable.Add((object) @object.GetInstanceID(), (object) null); this.m_FileViewControlID = GUIUtility.GetControlID(ASHistoryFileView.ms_FileViewHash, FocusType.Native); this.KeyboardGUI(parentWin); focused &= GUIUtility.keyboardControl == this.m_FileViewControlID; HierarchyProperty property = new HierarchyProperty(HierarchyType.Assets); int num1 = property.CountRemaining(this.m_ExpandedArray); int num2 = !this.DeletedItemsToggle ? 0 : this.m_DelPVstate.lv.totalRows; Rect viewRect = new Rect(0.0f, 0.0f, 1f, (float) ((double) (num1 + 2 + num2) * (double) ASHistoryFileView.m_RowHeight + 16.0)); this.m_ScrollPosition = GUI.BeginScrollView(this.m_ScreenRect, this.m_ScrollPosition, viewRect); theRect.width = (double) viewRect.height <= (double) this.m_ScreenRect.height ? theRect.width : theRect.width - 18f; int count = Mathf.RoundToInt(this.m_ScrollPosition.y - 6f - ASHistoryFileView.m_RowHeight) / Mathf.RoundToInt(ASHistoryFileView.m_RowHeight); if (count > num1) count = num1; else if (count < 0) { count = 0; this.m_ScrollPosition.y = 0.0f; } GUIContent guiContent = new GUIContent(); Event current = Event.current; GUIStyle s = new GUIStyle(ASHistoryFileView.ms_Styles.label); Texture2D texture = EditorGUIUtility.FindTexture(EditorResourcesUtility.folderIconName); float y1 = (float) ((double) count * (double) ASHistoryFileView.m_RowHeight + 3.0); float endOffset = this.m_ScreenRect.height + this.m_ScrollPosition.y; Rect position = new Rect(0.0f, y1, theRect.width, ASHistoryFileView.m_RowHeight); if (current.type == EventType.MouseDown && position.Contains(current.mousePosition)) { this.SelType = ASHistoryFileView.SelectionType.All; GUIUtility.keyboardControl = this.m_FileViewControlID; this.ScrollTo(0.0f); parentWin.DoLocalSelectionChange(); current.Use(); } GUIContent content = new GUIContent("Entire Project"); content.image = (Texture) texture; int baseIndent = (int) this.m_BaseIndent; s.padding.left = 3; if (Event.current.type == EventType.Repaint) s.Draw(position, content, false, false, this.SelType == ASHistoryFileView.SelectionType.All, focused); float y2 = y1 + (ASHistoryFileView.m_RowHeight + 3f); property.Reset(); property.Skip(count, this.m_ExpandedArray); while (property.Next(this.m_ExpandedArray) && (double) y2 <= (double) endOffset) { int instanceId = property.instanceID; position = new Rect(0.0f, y2, theRect.width, ASHistoryFileView.m_RowHeight); if (Event.current.type == EventType.Repaint) { content.text = property.name; content.image = (Texture) property.icon; int num3 = (int) ((double) this.m_BaseIndent + (double) this.m_Indent * (double) property.depth); s.padding.left = num3; bool on = hashtable.Contains((object) instanceId); s.Draw(position, content, false, false, on, focused); } if (property.hasChildren) { bool flag = property.IsExpanded(this.m_ExpandedArray); GUI.changed = false; bool expand = GUI.Toggle(new Rect(this.m_BaseIndent + this.m_Indent * (float) property.depth - this.m_FoldoutSize, y2, this.m_FoldoutSize, ASHistoryFileView.m_RowHeight), flag, GUIContent.none, ASHistoryFileView.ms_Styles.foldout); if (GUI.changed) { if (Event.current.alt) this.SetExpandedRecurse(instanceId, expand); else this.SetExpanded(instanceId, expand); } } if (current.type == EventType.MouseDown && Event.current.button == 0 && position.Contains(Event.current.mousePosition)) { GUIUtility.keyboardControl = this.m_FileViewControlID; if (Event.current.clickCount == 2) { AssetDatabase.OpenAsset(instanceId); GUIUtility.ExitGUI(); } else if (position.Contains(current.mousePosition)) this.SelectionClick(property); current.Use(); } y2 += ASHistoryFileView.m_RowHeight; } float offset = y2 + 3f; this.DoDeletedItemsGUI(parentWin, theRect, s, offset, endOffset, focused); GUI.EndScrollView(); switch (current.type) { case EventType.MouseDown: if (current.button == 0 && this.m_ScreenRect.Contains(current.mousePosition)) { GUIUtility.hotControl = this.m_FileViewControlID; current.Use(); break; } break; case EventType.MouseUp: if (GUIUtility.hotControl == this.m_FileViewControlID) { if (this.m_ScreenRect.Contains(current.mousePosition)) Selection.activeObject = (UnityEngine.Object) null; GUIUtility.hotControl = 0; current.Use(); break; } break; } this.HandleFraming(); }