コード例 #1
0
            static void DisableButtonEventHandler(Efl.Object obj, Interop.Eext.EextCallbackType type, bool removeHandler)
            {
                Interop.Eext.EextEventCallback cb;

                if (type == Interop.Eext.EextCallbackType.EEXT_CALLBACK_BACK)
                {
                    if (_backButtonEventMap.TryGetValue(obj, out cb))
                    {
                        Interop.Eext.eext_object_event_callback_del(obj.NativeHandle, type, cb);
                        _backButtonEventMap.Remove(obj);
                    }
                    if (removeHandler && _backButtonEventHandlers.ContainsKey(obj))
                    {
                        _backButtonEventHandlers.Remove(obj);
                    }
                }
                else if (type == Interop.Eext.EextCallbackType.EEXT_CALLBACK_MORE)
                {
                    if (_moreButtonEventMap.TryGetValue(obj, out cb))
                    {
                        Interop.Eext.eext_object_event_callback_del(obj.NativeHandle, type, cb);
                        _moreButtonEventMap.Remove(obj);
                    }
                    if (removeHandler && _moreButtonEventHandlers.ContainsKey(obj))
                    {
                        _moreButtonEventHandlers.Remove(obj);
                    }
                }
            }
コード例 #2
0
            static void EnableButtonEventHandler(Efl.Object obj, Interop.Eext.EextCallbackType type)
            {
                if (type == Interop.Eext.EextCallbackType.EEXT_CALLBACK_BACK)
                {
                    if (!_backButtonEventMap.ContainsKey(obj))
                    {
                        Interop.Eext.EextEventCallback cb = (d, o, i) =>
                        {
                            EventHandler events;
                            if (_backButtonEventHandlers.TryGetValue(obj, out events))
                            {
                                events?.Invoke(obj, EventArgs.Empty);
                            }
                        };

                        Interop.Eext.eext_object_event_callback_add(obj.NativeHandle, type, cb, IntPtr.Zero);
                        _backButtonEventMap[obj] = cb;
                        obj.DelEvt += (s, e) => DisableButtonEventHandler(obj, type, true);
                    }
                }
                else if (type == Interop.Eext.EextCallbackType.EEXT_CALLBACK_MORE)
                {
                    if (!_moreButtonEventMap.ContainsKey(obj))
                    {
                        Interop.Eext.EextEventCallback cb = (d, o, i) =>
                        {
                            EventHandler events;
                            if (_moreButtonEventHandlers.TryGetValue(obj, out events))
                            {
                                events?.Invoke(obj, EventArgs.Empty);
                            }
                        };

                        Interop.Eext.eext_object_event_callback_add(obj.NativeHandle, type, cb, IntPtr.Zero);
                        _moreButtonEventMap[obj] = cb;
                    }
                }
            }