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); } }
public void Remove(TKey key) { var keyIndex = GetKeyIndex(key); if (keyIndex != -1) { _keys.RemoveAt(keyIndex); _values.RemoveAt(keyIndex); OnValueChanged.InvokeSafe(key); OnDictionaryChanged.InvokeSafe(); } }
// 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(); }
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(); }
public void ClearInput() { _text = ""; OnValueChanged.InvokeSafe(_text); }