﻿//----------------------------------------------------------------------------------
// GVRNavi | Garpix Virtual Reality Navigation
// Copyright (c) 2017 Garpix Ltd.
//
// Plugin Homepage: https://gvrnavi.garpix.com
// Author Homepage: https://garpix.com
// Support: support@garpix.com
// License: Asset Store Terms of Service and EULA
// License URI: See LICENSE file in the project root for full license information.
//----------------------------------------------------------------------------------

using UnityEditor;

namespace GVRNavi
{
    [CustomEditor(typeof(VRPanelGaze), true)]
    [CanEditMultipleObjects]
    public class VRPanelEditor : Editor
    {
        SerializedProperty timeToTrigger, spriteRendererBackground, isShowingAtStart,
            colorOpened, colorClosed, sizeOpened, sizeClosed,
            OnGazeEnterEvent, OnGazeExitEvent, OnGazeTriggerEvent;

        void OnEnable()
        {
            timeToTrigger = serializedObject.FindProperty("timeToTrigger");
            spriteRendererBackground = serializedObject.FindProperty("spriteRendererBackground");
            colorOpened = serializedObject.FindProperty("colorOpened");
            colorClosed = serializedObject.FindProperty("colorClosed");
            sizeOpened = serializedObject.FindProperty("sizeOpened");
            sizeClosed = serializedObject.FindProperty("sizeClosed");
            isShowingAtStart = serializedObject.FindProperty("isShowingAtStart");
            OnGazeEnterEvent = serializedObject.FindProperty("OnGazeEnterEvent");
            OnGazeExitEvent = serializedObject.FindProperty("OnGazeExitEvent");
            OnGazeTriggerEvent = serializedObject.FindProperty("OnGazeTriggerEvent");
        }

        public override void OnInspectorGUI()
        {
            serializedObject.Update();
            EditorGUILayout.PropertyField(timeToTrigger);
            EditorGUILayout.PropertyField(spriteRendererBackground);
            EditorGUILayout.Space();
            EditorGUILayout.PropertyField(colorOpened);
            EditorGUILayout.PropertyField(colorClosed);
            EditorGUILayout.PropertyField(sizeOpened);
            EditorGUILayout.PropertyField(sizeClosed);
            foreach (var v in serializedObject.targetObjects)
            {
                VRPanelGaze b = v as VRPanelGaze;
                if (b != null)
                    b.UpdateColor();
            }
            EditorGUILayout.PropertyField(isShowingAtStart);
            EditorGUILayout.Space();
            EditorGUILayout.Space();
            EditorGUILayout.PropertyField(OnGazeEnterEvent);
            EditorGUILayout.PropertyField(OnGazeExitEvent);
            EditorGUILayout.PropertyField(OnGazeTriggerEvent);
            serializedObject.ApplyModifiedProperties();
        }
    }
}