Example #1
0
        /// <summary>
        /// Gets the mouse handler presence for the view.
        /// </summary>
        /// <param name="view">The view.</param>
        /// <param name="handlerMask">Affected handlers.</param>
        /// <returns>
        /// true if a any handler from the handlerMask is enabled on the view, false otherwise.
        /// </returns>
        public static bool GetMouseHandlerPresent(this object view, MouseHandlerMask handlerMask)
        {
            if (view == null)
            {
                throw new ArgumentNullException(nameof(view));
            }

            if (s_properties.TryGetValue(view, out var elementData))
            {
                return((elementData.MouseHandlers & handlerMask) != 0);
            }

            return(false);
        }
Example #2
0
        /// <summary>
        /// Sets mouse handler presence for the view. Tracks multiple handlers, whereas the getter returns an "OR" value.
        /// </summary>
        /// <param name="view">The view.</param>
        /// <param name="handlerMask">Affected handlers.</param>
        /// <param name="handlerPresent">true if handler present, false otherwise.</param>
        internal static void SetMouseHandlerPresent(this object view, MouseHandlerMask handlerMask, bool handlerPresent)
        {
            if (view == null)
            {
                throw new ArgumentNullException(nameof(view));
            }

            var data = s_properties.GetOrAdd(view, (v) => new ViewData());

            if (handlerPresent)
            {
                data.MouseHandlers |= handlerMask;
            }
            else
            {
                data.MouseHandlers &= ~handlerMask;
            }
        }