Example #1
0
    public override void OnGUI()
    {
        if (MyGUI.HasToggled(_filter.IsFilterWithRotation, "Rotate"))
        {
            _filter.IsFilterWithRotation = !_filter.IsFilterWithRotation;
            CallOnChange();
        }

        if (MyGUI.HasToggled(_filter.IsFilterExclusive, "Exclusive"))
        {
            _filter.IsFilterExclusive = !_filter.IsFilterExclusive;
            CallOnChange();
        }

        GUILayout.Space(5);

        var c = _filter.ConnectionFilter;

        if (MyGUI.HasToggled((c & ConnectionMask.Left) == ConnectionMask.Left, "Left"))
        {
            c ^= (ConnectionMask)(1 << 0);
        }

        if (MyGUI.HasToggled((c & ConnectionMask.Top) == ConnectionMask.Top, "Top"))
        {
            c ^= (ConnectionMask)(1 << 1);
        }

        if (MyGUI.HasToggled((c & ConnectionMask.Right) == ConnectionMask.Right, "Right"))
        {
            c ^= (ConnectionMask)(1 << 2);
        }

        if (MyGUI.HasToggled((c & ConnectionMask.Bottom) == ConnectionMask.Bottom, "Bottom"))
        {
            c ^= (ConnectionMask)(1 << 3);
        }

        if (c != _filter.ConnectionFilter)
        {
            _filter.ConnectionFilter = c;
            CallOnChange();
        }

        base.OnGUI();
    }
Example #2
0
    public override void OnGUI()
    {
        for (int index = 0; index < _layers.Count; index++)
        {
            var layer = _layers[index];

            GUILayout.BeginHorizontal();
            if (MyGUI.HasToggled((_mask & 1 << index) == 1 << index, "", GUILayout.Width(16)))
            {
                if ((_mask & 1 << index) != 1 << index || _active != index)
                {
                    _mask ^= (1 << index);
                    CallOnVisibleChange();
                }
            }

            var gc   = new GUIContent(layer.name);
            var rect = GUILayoutUtility.GetRect(gc, LabelStyle);
            if (index == _active)
            {
                LabelStyle.normal.textColor = Color.red;
            }
            GUI.Label(rect, gc, LabelStyle);
            LabelStyle.normal.textColor = DefaultLabelColor;

            if (MyGUI.ButtonMouseDown(rect))
            {
                if (_active != index)
                {
                    _mask  |= (1 << index);
                    _active = index;
                    CallOnActiveChangeChange();
                    //Close();
                }
            }

            GUI.enabled = index != _layers.Count - 1;
            if (GUILayout.Button("D", EditorStyles.miniButtonLeft, GUILayout.Width(32)))
            {
                if (index == _active)
                {
                    _active++;
                }
                else if (index + 1 == _active)
                {
                    _active--;
                }

                GetValue(index, true);
            }

            GUI.enabled = index != 0;
            if (GUILayout.Button("U", EditorStyles.miniButtonRight, GUILayout.Width(32)))
            {
                if (index == _active)
                {
                    _active--;
                }
                else if (index - 1 == _active)
                {
                    _active++;
                }

                GetValue(index, false);
            }
            GUI.enabled = true;

            GUILayout.EndHorizontal();
        }
        base.OnGUI();
    }