Exemple #1
0
 /// <summary>
 ///   return list of standard events
 /// </summary>
 /// <param name = "eventName"></param>
 /// <returns></returns>
 internal static HandlerBase.EventType getStandardEvent(string eventName)
 {
     HandlerBase.EventType eventHandlerType = HandlerBase.EventType.NONE;
     _standardControlEvents.TryGetValue(eventName, out eventHandlerType);
     return(eventHandlerType);
 }
Exemple #2
0
        /// <summary>
        ///   handle message of  child of .NET control
        ///   create event according to message and handle it in usual manner
        /// </summary>
        /// <param name = "m"> message </param>
        /// <param name = "mapData"> map data of .NET control</param>
        /// <param name = "control">control which receive message - the child of .NET control</param>
        /// <param name="state"></param>
        private static void handleMessage(Message m, MapData mapData, Control control, PreProcessControlState state)
        {
            EventArgs e = null;

            HandlerBase.EventType eventType = HandlerBase.EventType.NONE;

            switch (m.Msg)
            {
            case NativeWindowCommon.WM_LBUTTONDOWN:
                e         = createLeftMouseEventArgs(1, (int)m.LParam);
                eventType = HandlerBase.EventType.MOUSE_DOWN;
                break;

            case NativeWindowCommon.WM_LBUTTONUP:
                e         = createLeftMouseEventArgs(1, (int)m.LParam);
                eventType = HandlerBase.EventType.MOUSE_UP;
                break;

            case NativeWindowCommon.WM_LBUTTONDBLCLK:
                e         = createLeftMouseEventArgs(2, (int)m.LParam);
                eventType = HandlerBase.EventType.MOUSE_DBLCLICK;
                break;

            case NativeWindowCommon.WM_MOUSEMOVE:
                e         = createLeftMouseEventArgs(1, (int)m.LParam);
                eventType = HandlerBase.EventType.MOUSE_MOVE;
                break;

            case NativeWindowCommon.WM_KEYDOWN:
                eventType = HandlerBase.EventType.KEY_DOWN;
                Keys keyCode = GetKeyCode(m);
                e = new KeyEventArgs(keyCode);
                DotNetHandler.getInstance().handleEvent("KeyDown", control, e, mapData);


                // we use preProcessResult only for navigation keys
                // if control returns preProcessResult = false for a navigation key then we do not
                // interfere because the control already handled the navigation internally.
                if (state == PreProcessControlState.MessageNeeded)
                {
                    foreach (var item in _navigationKeys)
                    {
                        if (keyCode == item)
                        {
                            return;
                        }
                    }
                }
                if (keyCode == Keys.Tab && !keyShouldBeHandledByMagic) //QCR #728708
                //special handling for a tab key, in future may be extended for othe keys as weel.
                {
                    return;
                }

                break;

            default:
                Debug.Assert(false);
                break;
            }

            DefaultHandler.getInstance().handleEvent(eventType, control, e, mapData);
        }