/// <summary> /// Adds a function for a signal emitted by the object item edje. /// </summary> /// <param name="emission">The signal's name.</param> /// <param name="source">The signal's source.</param> /// <param name="func">The function to be executed when the signal is emitted.</param> /// <since_tizen> preview </since_tizen> public void AddSignalHandler(string emission, string source, Func <string, string, bool> func) { if (emission != null && source != null && func != null) { var signalData = new SignalData(emission, source, func); if (!_signalDatas.ContainsKey(signalData)) { var signalCallback = new Interop.Elementary.Elm_Object_Item_Signal_Cb((d, o, e, s) => { return(func(e, s)); }); Interop.Elementary.elm_object_item_signal_callback_add(Handle, emission, source, signalCallback, IntPtr.Zero); } } }
/// <summary> /// Removes a signal-triggered function from the object item edje object. /// </summary> /// <param name="emission">The signal's name.</param> /// <param name="source">The signal's source.</param> /// <param name="func">The function to be executed when the signal is emitted.</param> /// <since_tizen> preview </since_tizen> public void RemoveSignalHandler(string emission, string source, Func <string, string, bool> func) { if (emission != null && source != null && func != null) { var signalData = new SignalData(emission, source, func); Interop.Elementary.Elm_Object_Item_Signal_Cb signalCallback = null; _signalDatas.TryGetValue(signalData, out signalCallback); if (signalCallback != null) { Interop.Elementary.elm_object_item_signal_callback_del(Handle, emission, source, signalCallback); _signalDatas.Remove(signalData); } } }