Exemple #1
0
        public void SetItemEnabled(RecorderControllerSettings prefs, bool value)
        {
            m_Disabled       = !value;
            settings.enabled = value;
            prefs.Save();

            m_EditableLabel.SetLabelEnabled(value);

            if (m_Toggle != null)
            {
                UIElementHelper.SetToggleValue(m_Toggle, value);
            }

            if (value)
            {
                RemoveFromClassList("disabled");
            }
            else
            {
                AddToClassList("disabled");
            }

            if (OnEnableStateChanged != null)
            {
                OnEnableStateChanged.Invoke(value);
            }
        }
Exemple #2
0
        public RecorderItem(RecorderControllerSettings prefs, RecorderSettings recorderSettings, string iconName)
        {
            settings = recorderSettings;

            if (settings != null)
            {
                editor = Editor.CreateEditor(settings);
            }

            UIElementHelper.SetFlex(this, 1.0f);
            style.flexDirection = FlexDirection.Row;

            m_Toggle = new Toggle();

#if UNITY_2019_1_OR_NEWER
            m_Toggle.RegisterValueChangedCallback(evt =>
#elif UNITY_2018_3_OR_NEWER
            m_Toggle.OnValueChanged(evt =>
#else
            m_Toggle.OnToggle(() =>
#endif
            {
                SetItemEnabled(prefs, UIElementHelper.GetToggleValue(m_Toggle));
            });

            Add(m_Toggle);

            m_RecorderIcon = LoadIcon(iconName);

            if (m_RecorderIcon == null)
            {
                m_RecorderIcon = LoadIcon("customrecorder_16");
            }

            UpdateState(false);

            var iconContainer = new IMGUIContainer(() => // UIElement Image doesn't support tint yet. Use IMGUI instead.
            {
                var r   = EditorGUILayout.GetControlRect();
                r.width = r.height = Mathf.Max(r.width, r.height);

                var c = GUI.color;

                var newColor = Color.white;

                if (m_Disabled)
                {
                    newColor.a = 0.5f;
                }
                else
                {
                    if (!m_Selected)
                    {
                        newColor.a = 0.8f;
                    }
                }

                GUI.color = newColor;

                GUI.DrawTexture(r, m_Icon);

                GUI.color = c;
            });

            iconContainer.AddToClassList("RecorderItemIcon");

            iconContainer.SetEnabled(false);

            Add(iconContainer);

            m_EditableLabel = new EditableLabel {
                text = settings.name
            };
            m_EditableLabel.OnValueChanged(newValue =>
            {
                settings.name = newValue;
                prefs.Save();
            });
            Add(m_EditableLabel);

            var recorderEnabled = settings.enabled;
            UIElementHelper.SetToggleValue(m_Toggle, recorderEnabled);

            SetItemEnabled(prefs, recorderEnabled);
        }