Exemplo n.º 1
0
        public void Draw()
        {
            Rect rect = EditorGUILayout.GetControlRect();

            var tmpText = _text;

            var labelWidthTmp = EditorGUIUtility.labelWidth;

            if (labelWidth.HasValue)
            {
                EditorGUIUtility.labelWidth = labelWidth.Value;
            }

            if (_label != null)
            {
                _text = EditorGUI.TextField(rect, _label, _text);
            }
            else
            {
                _text = EditorGUI.TextField(rect, _text);
            }

            EditorGUIUtility.labelWidth = labelWidthTmp;

            if (_text != tmpText)
            {
                OnValueChanged.InvokeSafe(_text);
            }
        }
Exemplo n.º 2
0
        public void Remove(TKey key)
        {
            var keyIndex = GetKeyIndex(key);

            if (keyIndex != -1)
            {
                _keys.RemoveAt(keyIndex);
                _values.RemoveAt(keyIndex);

                OnValueChanged.InvokeSafe(key);
                OnDictionaryChanged.InvokeSafe();
            }
        }
Exemplo n.º 3
0
        // Note: Calls OnValueChanged for each value so that persistency & ui can be updated correctly
        public void Clear()
        {
            var keysTmp = new List <TKey>(_keys); // Note: copy keys to avoid modification from subscribers

            _keys.Clear();
            _values.Clear();

            foreach (var key in keysTmp)
            {
                OnValueChanged.InvokeSafe(key);
            }

            OnDictionaryChanged.InvokeSafe();
        }
Exemplo n.º 4
0
        public virtual void Set(TKey key, TValue value)
        {
            var keyIndex = GetKeyIndex(key);

            if (keyIndex == -1)
            {
                _keys.Add(key);
                _values.Add(value);
            }
            else
            {
                _values[keyIndex] = value;
            }

            OnValueChanged.InvokeSafe(key);
            OnDictionaryChanged.InvokeSafe();
        }
Exemplo n.º 5
0
 public void ClearInput()
 {
     _text = "";
     OnValueChanged.InvokeSafe(_text);
 }