| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | 
							- using System.Linq;
 
- using UnityEditor;
 
- using UnityEngine;
 
- namespace EnhancedHierarchy.Icons {
 
-     public sealed class GameObjectIcon : IconBase {
 
-         private GUIContent lastContent;
 
-         public override string Name { get { return "GameObject Icon"; } }
 
-         public override IconPosition Side { get { return IconPosition.All; } }
 
-         public override float Width { get { return lastContent.image ? base.Width : 0f; } }
 
-         public override Texture2D PreferencesPreview { get { return AssetPreview.GetMiniTypeThumbnail(typeof(GameObject)); } }
 
-         //public override string PreferencesTooltip { get { return "Some tag for the tooltip here"; } }
 
-         public override void Init() {
 
-             if (lastContent == null)
 
-                 lastContent = new GUIContent();
 
-             lastContent.text = string.Empty;
 
-             lastContent.image = Preferences.HideDefaultIcon ? // Fix #46
 
-                 Reflected.GetObjectIcon(EnhancedHierarchy.CurrentGameObject) :
 
-                 AssetPreview.GetMiniThumbnail(EnhancedHierarchy.CurrentGameObject);
 
-             lastContent.tooltip = Preferences.Tooltips && !Preferences.RelevantTooltipsOnly ? "Change Icon" : string.Empty;
 
-         }
 
-         public override void DoGUI(Rect rect) {
 
-             using(ProfilerSample.Get()) {
 
-                 rect.yMin++;
 
-                 rect.xMin++;
 
-                 GUI.changed = false;
 
-                 GUI.Button(rect, lastContent, EditorStyles.label);
 
-                 if (!GUI.changed)
 
-                     return;
 
-                 var affectedObjsList = GetSelectedObjectsAndCurrent();
 
-                 var affectedObjsEnum = affectedObjsList.AsEnumerable();
 
-                 var changeMode = AskChangeModeIfNecessary(affectedObjsList, Preferences.IconAskMode.Value, "Change Icons", "Do you want to change children icons as well?");
 
-                 switch (changeMode) {
 
-                     case ChildrenChangeMode.ObjectAndChildren:
 
-                         affectedObjsEnum = affectedObjsEnum.SelectMany(go => go.GetComponentsInChildren<Transform>(true).Select(t => t.gameObject));
 
-                         break;
 
-                 }
 
-                 affectedObjsEnum = affectedObjsEnum.Distinct();
 
-                 var affectedObjsArray = affectedObjsEnum.ToArray();
 
-                 foreach (var obj in affectedObjsArray)
 
-                     Undo.RegisterCompleteObjectUndo(obj, "Icon Changed");
 
-                 Reflected.ShowIconSelector(affectedObjsArray, rect, true);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |