/// <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); }
/// <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); }