/// <summary> /// Remove a callback to a key /// </summary> public void RemoveCallback(string key, OnChangeHandler callback) { if (Events.ContainsKey(key)) { Events[key] = Delegate.Remove(Events[key], callback); } }
public void OnChange() { OnChangeHandler handler = Change; if (handler != null) { handler(this); } }
/// <summary> /// Set a key-value and add a callback /// </summary> public void SetAndAddCallback(string key, object value, OnChangeHandler callback, CallNow callNow, RunOnMainThead runOnMainThread = RunOnMainThead.NO, WaitUntilDone waitUntilDone = WaitUntilDone.NO) { Set(key, value); AddCallback(key, callback, runOnMainThread, waitUntilDone); if (callNow == CallNow.YES) { Invoke(key); } }
public Aggregator(float defaultValue, OnChangeHandler handler = null) { Default = defaultValue; calculatedValue = Default; if (handler != null) { OnChangeEvent += handler; } }
/// <summary> /// Add a callback to a key /// </summary> public void AddCallback(string key, OnChangeHandler callback, RunOnMainThead runOnMainThread = RunOnMainThead.NO, WaitUntilDone waitUntilDone = WaitUntilDone.NO) { if (Contains(key) == false) { Configs[key] = null; } Delegate del = runOnMainThread == RunOnMainThead.YES ? (dynamic v) => Utilities.InvokeMain(() => callback(v), waitUntilDone == WaitUntilDone.YES ? true : false) : callback; if (Events.ContainsKey(key)) { Events[key] = Delegate.Combine(Events[key], del); } else { Events[key] = del; } }
/// <summary> /// Set a key-value and add a callback /// </summary> public void SetAndAddCallback(string key, object value, OnChangeHandler callback, RunOnMainThead runOnMainThread = RunOnMainThead.NO, WaitUntilDone waitUntilDone = WaitUntilDone.NO) { SetAndAddCallback(key, value, callback, CallNow.NO, runOnMainThread, waitUntilDone); }