/// <summary> /// Deletes a signal-triggered action from an object. /// </summary> /// <param name="emission">The signal's "emission" string.</param> /// <param name="source">The signal's "source" string.</param> /// <param name="action">The action to be executed when the signal is emitted.</param> /// <since_tizen> preview </since_tizen> public void DeleteSignalAction(string emission, string source, Action <string, string> action) { if (emission != null && source != null && action != null) { var signalData = new SignalData(emission, source, action); Interop.Elementary.Edje_Signal_Cb signalCallback = null; _signalDatas.TryGetValue(signalData, out signalCallback); if (signalCallback != null) { Interop.Elementary.edje_object_signal_callback_del(_edjeHandle, emission, source, signalCallback); _signalDatas.Remove(signalData); } } }
/// <summary> /// Adds Action for an arriving edje signal, emitted by a given Ejde object. /// </summary> /// <param name="emission">The signal's "emission" string.</param> /// <param name="source">The signal's "source" string.</param> /// <param name="action">The action to be executed when the signal is emitted.</param> /// <since_tizen> preview </since_tizen> public void AddSignalAction(string emission, string source, Action <string, string> action) { if (emission != null && source != null && action != null) { var signalData = new SignalData(emission, source, action); if (!_signalDatas.ContainsKey(signalData)) { var signalCallback = new Interop.Elementary.Edje_Signal_Cb((d, o, e, s) => { action(e, s); }); Interop.Elementary.edje_object_signal_callback_add(_edjeHandle, emission, source, signalCallback, IntPtr.Zero); _signalDatas.Add(signalData, signalCallback); } } }