コード例 #1
0
    /// <summary>
    /// Retourne Faux si une key n'existait pas
    /// </summary>
    private bool DrawData(DataType type, int keysStart, int keysEnd)
    {
        OneWayBool allKeyExist = new OneWayBool(true);

        EditorGUILayout.BeginHorizontal();


        // + Button
        if (IsDataTypeModifiable(type))
        {
            var        p                = GUI.skin.button.padding;
            var        o                = GUI.skin.button.contentOffset;
            RectOffset wasPadding       = new RectOffset(p.left, p.right, p.top, p.bottom);
            Vector2    wasContentOffset = new Vector2(o.x, o.y);

            GUI.skin.button.padding       = new RectOffset(0, 0, 0, 0);
            GUI.skin.button.contentOffset = new Vector2(0, -1);

            if (GUILayout.Button("+", GUILayout.Width(16), GUILayout.Height(16)))
            {
                var screenPoint = GUIUtility.GUIToScreenPoint(Event.current.mousePosition);
                DataSaverEditorPopup.Popup(gameSaves, type, screenPoint, RefreshKeys);
            }
            GUI.skin.button.padding       = wasPadding;
            GUI.skin.button.contentOffset = wasContentOffset;
        }

        // Label
        EditorGUILayout.LabelField(type.ToString(), EditorStyles.boldLabel);

        EditorGUILayout.EndHorizontal();


        // Data
        if (keysStart == keysEnd) // If length == 0
        {
            EditorGUILayout.LabelField("Empty", EditorStyles.centeredGreyMiniLabel);
        }
        else
        {
            for (int i = keysStart; i < keysEnd; i++)
            {
                allKeyExist.TryToSet(DrawData(type, keys[i]));
            }
        }
        EditorGUILayout.Space();
        return(allKeyExist);
    }
コード例 #2
0
    private void DrawData()
    {
        OneWayBool refresh = new OneWayBool(false);

        if (chosenDataType == DataType.All)
        {
            if (keys == null)
            {
                for (int i = 1; i < dataTypeCount; i++)
                {
                    var dataType = (DataType)i;
                    refresh.TryToSet(!DrawData(dataType, -1, -1));
                }
            }
            else
            {
                for (int i = 1; i < dataTypeCount; i++)
                {
                    var dataType = (DataType)i;
                    var begin    = keyTypeCounts[i];
                    var end      = (i + 1) >= dataTypeCount ? keys.Length : keyTypeCounts[i + 1];

                    refresh.TryToSet(!DrawData(dataType, begin, end));
                }
            }
        }
        else
        {
            refresh.TryToSet(!DrawData(chosenDataType, 0, keys != null ? keys.Length : 0));
        }

        if (refresh)
        {
            RefreshKeys();
        }
    }