protected void OnEditModeEnd(IToolModeOwner owner)
 {
     if (owner == this)
     {
         this.OnEditEnd();
     }
 }
Example #2
0
        internal static void ChangeEditMode(SceneViewEditMode mode, Bounds bounds, IToolModeOwner owner)
        {
            IToolModeOwner oldOwner = InternalEditorUtility.GetObjectFromInstanceID(ownerID) as IToolModeOwner;

            editMode = mode;

            ownerID = mode != SceneViewEditMode.None ? owner.GetInstanceID() : 0;

            if (onEditModeEndDelegate != null && oldOwner is Editor)
            {
                onEditModeEndDelegate(oldOwner as Editor);
            }
            if (editModeEnded != null)
            {
                editModeEnded(oldOwner);
            }

            if (editMode != SceneViewEditMode.None)
            {
                if (onEditModeStartDelegate != null && owner is Editor)
                {
                    onEditModeStartDelegate(owner as Editor, editMode);
                }
                if (editModeStarted != null)
                {
                    editModeStarted(owner, editMode);
                }
            }

            EditModeChanged(bounds);

            InspectorWindow.RepaintAllInspectors();
        }
 protected void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode mode)
 {
     if (mode == EditMode.SceneViewEditMode.Collider && owner == this)
     {
         this.OnEditStart();
     }
 }
Example #4
0
 void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode mode)
 {
     if (mode == EditMode.SceneViewEditMode.Collider && owner == (IToolModeOwner)this)
     {
         OnEditStart();
     }
 }
Example #5
0
 private void OnEditModeStarted(IToolModeOwner owner, EditMode.SceneViewEditMode mode)
 {
     if (owner == (IToolModeOwner)this && mode == EditMode.SceneViewEditMode.LightProbeGroup)
     {
         StartEditProbes();
     }
 }
Example #6
0
        internal static void ChangeEditMode(SceneViewEditMode mode, Bounds bounds, IToolModeOwner owner)
        {
            if (mode == SceneViewEditMode.None)
            {
                var activeToolIsEditModeTool = (EditorToolContext.activeTool is EditModeTool || EditorToolContext.activeTool is NoneTool);

                if (s_EditMode != SceneViewEditMode.None && activeToolIsEditModeTool)
                {
                    EditorTools.RestorePreviousPersistentTool();
                }

                EditModeToolStateChanged(owner, mode);
                return;
            }

            var tool = GetTool(owner, mode);

            if (tool != null)
            {
                EditorTools.SetActiveTool(tool);
            }
            else
            {
                // SceneViewEditModeTool doesn't exist, use old path
                EditorTools.SetActiveTool <NoneTool>();
            }

            EditModeToolStateChanged(owner, mode);
        }
Example #7
0
        internal static void ChangeEditMode(EditMode.SceneViewEditMode mode, Bounds bounds, IToolModeOwner owner)
        {
            IToolModeOwner toolModeOwner = InternalEditorUtility.GetObjectFromInstanceID(EditMode.ownerID) as IToolModeOwner;

            EditMode.editMode = mode;
            EditMode.ownerID  = ((mode == EditMode.SceneViewEditMode.None) ? 0 : owner.GetInstanceID());
            if (EditMode.onEditModeEndDelegate != null && toolModeOwner is Editor)
            {
                EditMode.onEditModeEndDelegate(toolModeOwner as Editor);
            }
            if (EditMode.editModeEnded != null)
            {
                EditMode.editModeEnded(toolModeOwner);
            }
            if (EditMode.editMode != EditMode.SceneViewEditMode.None)
            {
                if (EditMode.onEditModeStartDelegate != null && owner is Editor)
                {
                    EditMode.onEditModeStartDelegate(owner as Editor, EditMode.editMode);
                }
                if (EditMode.editModeStarted != null)
                {
                    EditMode.editModeStarted(owner, EditMode.editMode);
                }
            }
            EditMode.EditModeChanged(bounds);
            InspectorWindow.RepaintAllInspectors();
        }
Example #8
0
 private void OnEditModeEnded(IToolModeOwner owner)
 {
     if (owner == (IToolModeOwner)this)
     {
         EndEditProbes();
     }
 }
Example #9
0
 void OnEditModeEnd(IToolModeOwner owner)
 {
     if (owner == (IToolModeOwner)this)
     {
         OnEditEnd();
     }
 }
Example #10
0
 public void OnEditModeEnd(IToolModeOwner owner)
 {
     if (EditMode.editMode != EditMode.SceneViewEditMode.GridMove && EditMode.editMode != EditMode.SceneViewEditMode.GridSelect)
     {
         GridSelection.Clear();
     }
     this.CallOnToolDeactivated();
     base.Repaint();
 }
Example #11
0
        public static void OnSelectionChange()
        {
            IToolModeOwner toolModeOwner = InternalEditorUtility.GetObjectFromInstanceID(EditMode.ownerID) as IToolModeOwner;

            if (toolModeOwner == null || !toolModeOwner.ModeSurvivesSelectionChange((int)EditMode.s_EditMode))
            {
                EditMode.QuitEditMode();
            }
        }
Example #12
0
        public static void OnSelectionChange()
        {
            IToolModeOwner owner = InternalEditorUtility.GetObjectFromInstanceID(ownerID) as IToolModeOwner;

            if (owner != null && owner.ModeSurvivesSelectionChange((int)s_EditMode))
            {
                return;
            }
            QuitEditMode();
        }
Example #13
0
        internal static void EditModeToolStateChanged(IToolModeOwner owner, SceneViewEditMode mode)
        {
            // In cases of domain reloads the EditorTool can be deserialized prior to the target Inspector being
            // created. The EditMode tools do not expect an editModeStarted callback on reloads.
            if (owner == null && mode != SceneViewEditMode.None)
            {
                editMode = mode;
                return;
            }

            IToolModeOwner oldOwner = InternalEditorUtility.GetObjectFromInstanceID(ownerID) as IToolModeOwner;

            editMode = mode;

            if (oldOwner != null)
            {
                if (onEditModeEndDelegate != null && oldOwner is Editor)
                {
                    onEditModeEndDelegate(oldOwner as Editor);
                }

                if (editModeEnded != null)
                {
                    editModeEnded(oldOwner);
                }
            }

            ownerID = mode != SceneViewEditMode.None ? owner.GetInstanceID() : k_OwnerIdNone;

            if (editMode != SceneViewEditMode.None)
            {
                if (onEditModeStartDelegate != null && owner is Editor)
                {
                    onEditModeStartDelegate(owner as Editor, editMode);
                }

                if (editModeStarted != null)
                {
                    editModeStarted(owner, editMode);
                }
            }

            FocusEditModeToolTarget((mode != SceneViewEditMode.None && owner != null)
                ? owner.GetWorldBoundsOfTargets()
                : new Bounds(Vector3.zero, Vector3.positiveInfinity));

            InspectorWindow.RepaintAllInspectors();
        }
Example #14
0
 public void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode editMode)
 {
     if (GridPaintingState.gridBrush != null && PaintableGrid.InGridEditMode() && GridPaintingState.activeBrushEditor != null)
     {
         GridBrushBase.Tool tool = PaintableGrid.EditModeToBrushTool(editMode);
         GridPaintingState.activeBrushEditor.OnToolActivated(tool);
         this.m_PreviousToolActivatedEditor = GridPaintingState.activeBrushEditor;
         this.m_PreviousToolActivated       = tool;
         for (int i = 0; i < GridPaintPaletteWindow.Styles.sceneViewEditModes.Length; i++)
         {
             if (GridPaintPaletteWindow.Styles.sceneViewEditModes[i] == editMode)
             {
                 Cursor.SetCursor(GridPaintPaletteWindow.Styles.mouseCursorTextures[i], (!(GridPaintPaletteWindow.Styles.mouseCursorTextures[i] != null)) ? Vector2.zero : GridPaintPaletteWindow.Styles.mouseCursorOSHotspot[(int)SystemInfo.operatingSystemFamily], CursorMode.Auto);
                 break;
             }
         }
     }
     base.Repaint();
 }
Example #15
0
        static EditorTool GetTool(IToolModeOwner owner, SceneViewEditMode mode)
        {
            var editor = owner as Editor;

            if (editor == null)
            {
                return(null);
            }

            var editorType = editor.GetType();

            return(EditorToolContext.GetCustomEditorTool(x =>
            {
                var tool = x as EditModeTool;
                return tool != null &&
                tool.editorType == editorType &&
                tool.target == editor.target;
            }, true));
        }
Example #16
0
        internal static void ChangeEditMode(SceneViewEditMode mode, Bounds bounds, IToolModeOwner owner)
        {
            if (mode == SceneViewEditMode.None)
            {
                var activeToolIsEditModeTool = EditorToolManager.activeTool is NoneTool;

                if (s_EditMode != SceneViewEditMode.None && activeToolIsEditModeTool)
                {
                    ToolManager.RestorePreviousTool();
                }

                EditModeToolStateChanged(owner, mode);
                return;
            }

            ToolManager.SetActiveTool <NoneTool>();

            EditModeToolStateChanged(owner, mode);
        }
Example #17
0
        public void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode editMode)
        {
            if (GridPaintingState.gridBrush != null && PaintableGrid.InGridEditMode() && GridPaintingState.activeBrushEditor != null)
            {
                GridBrushBase.Tool tool = PaintableGrid.EditModeToBrushTool(editMode);
                GridPaintingState.activeBrushEditor.OnToolActivated(tool);
                m_PreviousToolActivatedEditor = GridPaintingState.activeBrushEditor;
                m_PreviousToolActivated       = tool;

                for (int i = 0; i < k_SceneViewEditModes.Length; ++i)
                {
                    if (k_SceneViewEditModes[i] == editMode)
                    {
                        Cursor.SetCursor(MouseStyles.mouseCursorTextures[i],
                                         MouseStyles.mouseCursorTextures[i] != null ? MouseStyles.mouseCursorOSHotspot[(int)SystemInfo.operatingSystemFamily] : Vector2.zero,
                                         CursorMode.Auto);
                        break;
                    }
                }
            }

            Repaint();
        }
 private void OnEditModeStart(IToolModeOwner owner, EditMode.SceneViewEditMode editMode)
 {
     UpdateCache();
 }
Example #19
0
        private static void DoEditModeInspectorModeButton(SceneViewEditMode mode, string label, GUIContent icon, Func <Bounds> getBoundsOfTargets, IToolModeOwner owner)
        {
            Rect rect       = EditorGUILayout.GetControlRect(true, k_EditColliderbuttonHeight, Styles.singleButtonStyle);
            Rect buttonRect = new Rect(rect.xMin + EditorGUIUtility.labelWidth, rect.yMin, k_EditColliderbuttonWidth, k_EditColliderbuttonHeight);

            GUIContent labelContent = new GUIContent(label);
            Vector2    labelSize    = GUI.skin.label.CalcSize(labelContent);

            Rect labelRect = new Rect(
                buttonRect.xMax + k_SpaceBetweenLabelAndButton,
                rect.yMin + (rect.height - labelSize.y) * .5f,
                labelSize.x,
                rect.height);

            bool modeEnabled = IsOwner(owner);

            EditorGUI.BeginChangeCheck();

            bool toggleEnabled = false;

            using (new EditorGUI.DisabledScope(!owner.areToolModesAvailable))
            {
                toggleEnabled = GUI.Toggle(buttonRect, modeEnabled, icon, Styles.singleButtonStyle);
                GUI.Label(labelRect, label);
            }

            if (EditorGUI.EndChangeCheck())
            {
                ChangeEditMode(toggleEnabled ? mode : SceneViewEditMode.None, getBoundsOfTargets == null ? owner.GetWorldBoundsOfTargets() : getBoundsOfTargets(), owner);
            }
        }
Example #20
0
        private static void DoInspectorToolbar(SceneViewEditMode[] modes, GUIContent[] guiContents, Func <Bounds> getBoundsOfTargets, IToolModeOwner owner)
        {
            int callerID = owner.GetInstanceID();

            int selectedIndex = ArrayUtility.IndexOf(modes, editMode);

            if (ownerID != callerID)
            {
                selectedIndex = -1;
            }
            EditorGUI.BeginChangeCheck();
            int newSelectedIndex = selectedIndex;

            using (new EditorGUI.DisabledScope(!owner.areToolModesAvailable))
                newSelectedIndex = GUILayout.Toolbar(selectedIndex, guiContents, Styles.multiButtonStyle);
            if (EditorGUI.EndChangeCheck())
            {
                // Buttons can be toggled
                SceneViewEditMode newEditMode = newSelectedIndex == selectedIndex ? SceneViewEditMode.None : modes[newSelectedIndex];
                ChangeEditMode(newEditMode, getBoundsOfTargets == null ? owner.GetWorldBoundsOfTargets() : getBoundsOfTargets(), owner);
            }
        }
Example #21
0
 internal static void ChangeEditMode(EditMode.SceneViewEditMode mode, IToolModeOwner owner)
 {
     EditMode.ChangeEditMode(mode, owner.GetWorldBoundsOfTargets(), owner);
 }
Example #22
0
        private static void DoInspectorToolbar(EditMode.SceneViewEditMode[] modes, GUIContent[] guiContents, Func <Bounds> getBoundsOfTargets, IToolModeOwner owner)
        {
            EditMode.DetectMainToolChange();
            int instanceID = owner.GetInstanceID();
            int num        = ArrayUtility.IndexOf <EditMode.SceneViewEditMode>(modes, EditMode.editMode);

            if (EditMode.ownerID != instanceID)
            {
                num = -1;
            }
            EditorGUI.BeginChangeCheck();
            int num2 = num;

            using (new EditorGUI.DisabledScope(!owner.areToolModesAvailable))
            {
                num2 = GUILayout.Toolbar(num, guiContents, EditMode.Styles.multiButtonStyle, new GUILayoutOption[0]);
            }
            if (EditorGUI.EndChangeCheck())
            {
                EditMode.SceneViewEditMode mode = (num2 != num) ? modes[num2] : EditMode.SceneViewEditMode.None;
                EditMode.ChangeEditMode(mode, (getBoundsOfTargets != null) ? getBoundsOfTargets() : owner.GetWorldBoundsOfTargets(), owner);
            }
        }
Example #23
0
 internal static void DoInspectorToolbar(EditMode.SceneViewEditMode[] modes, GUIContent[] guiContents, IToolModeOwner owner)
 {
     EditMode.DoInspectorToolbar(modes, guiContents, null, owner);
 }
Example #24
0
        private static void DoEditModeInspectorModeButton(EditMode.SceneViewEditMode mode, string label, GUIContent icon, Func <Bounds> getBoundsOfTargets, IToolModeOwner owner)
        {
            EditMode.DetectMainToolChange();
            Rect       controlRect = EditorGUILayout.GetControlRect(true, 23f, EditMode.Styles.singleButtonStyle, new GUILayoutOption[0]);
            Rect       position    = new Rect(controlRect.xMin + EditorGUIUtility.labelWidth, controlRect.yMin, 33f, 23f);
            GUIContent content     = new GUIContent(label);
            Vector2    vector      = GUI.skin.label.CalcSize(content);
            Rect       position2   = new Rect(position.xMax + 5f, controlRect.yMin + (controlRect.height - vector.y) * 0.5f, vector.x, controlRect.height);
            int        instanceID  = owner.GetInstanceID();
            bool       value       = EditMode.editMode == mode && EditMode.ownerID == instanceID;

            EditorGUI.BeginChangeCheck();
            bool flag = false;

            using (new EditorGUI.DisabledScope(!owner.areToolModesAvailable))
            {
                flag = GUI.Toggle(position, value, icon, EditMode.Styles.singleButtonStyle);
                GUI.Label(position2, label);
            }
            if (EditorGUI.EndChangeCheck())
            {
                EditMode.ChangeEditMode((!flag) ? EditMode.SceneViewEditMode.None : mode, (getBoundsOfTargets != null) ? getBoundsOfTargets() : owner.GetWorldBoundsOfTargets(), owner);
            }
        }
Example #25
0
 internal static void DoEditModeInspectorModeButton(EditMode.SceneViewEditMode mode, string label, GUIContent icon, IToolModeOwner owner)
 {
     EditMode.DoEditModeInspectorModeButton(mode, label, icon, null, owner);
 }
Example #26
0
 internal static bool IsOwner(IToolModeOwner owner)
 {
     return(owner.GetInstanceID() == EditMode.s_OwnerID);
 }
 private void OnEditModeEnd(IToolModeOwner owner)
 {
     UpdateCache();
 }