예제 #1
0
        /// <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);
                }
            }
        }
예제 #2
0
        /// <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);
                }
            }
        }