| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- using UnityEditor;
 
- using UnityEngine;
 
- namespace EnhancedHierarchy.Icons {
 
-     public sealed class Static : IconBase {
 
-         public override IconPosition Side { get { return IconPosition.All; } }
 
-         public override Texture2D PreferencesPreview { get { return Utility.GetBackground(Styles.staticToggleStyle, false); } }
 
-         //public override string PreferencesTooltip { get { return "Some tag for the tooltip here"; } }
 
-         public override void DoGUI(Rect rect) {
 
-             using(new GUIBackgroundColor(EnhancedHierarchy.CurrentGameObject.isStatic ? Styles.backgroundColorEnabled : Styles.backgroundColorDisabled)) {
 
-                 GUI.changed = false;
 
-                 GUI.Toggle(rect, EnhancedHierarchy.CurrentGameObject.isStatic, Styles.staticContent, Styles.staticToggleStyle);
 
-                 if (!GUI.changed)
 
-                     return;
 
-                 var isStatic = !EnhancedHierarchy.CurrentGameObject.isStatic;
 
-                 var selectedObjects = GetSelectedObjectsAndCurrent();
 
-                 var changeMode = AskChangeModeIfNecessary(selectedObjects, Preferences.StaticAskMode.Value, "Change Static Flags",
 
-                     "Do you want to " + (!isStatic ? "enable" : "disable") + " the static flags for all child objects as well?");
 
-                 switch (changeMode) {
 
-                     case ChildrenChangeMode.ObjectOnly:
 
-                         foreach (var obj in selectedObjects) {
 
-                             Undo.RegisterCompleteObjectUndo(obj, "Static Flags Changed");
 
-                             obj.isStatic = isStatic;
 
-                         }
 
-                         break;
 
-                     case ChildrenChangeMode.ObjectAndChildren:
 
-                         foreach (var obj in selectedObjects) {
 
-                             Undo.RegisterFullObjectHierarchyUndo(obj, "Static Flags Changed");
 
-                             var transforms = obj.GetComponentsInChildren<Transform>(true);
 
-                             foreach (var transform in transforms)
 
-                                 transform.gameObject.isStatic = isStatic;
 
-                         }
 
-                         break;
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |