/// <summary></summary> /// <param name="type"></param> /// <param name="sender"></param> /// <param name="evtArgs"></param> internal override void handleEvent(EventType type, Object sender, EventArgs evtArgs) { ControlsMap controlsMap = ControlsMap.getInstance(); Control ctrl = (Control)sender; MapData mapData = controlsMap.getMapData(ctrl); if (mapData == null) { return; } GuiMgControl mgControl = mapData.getControl(); MgLinkLabel linkLabel = ctrl as MgLinkLabel; var contextIDGuard = new Manager.ContextIDGuard(Manager.GetContextID(mgControl)); try { if (linkLabel != null) { switch (type) { case EventType.LINK_CLICKED: LinkLabelLinkClickedEventArgs args = (LinkLabelLinkClickedEventArgs)evtArgs; #if !PocketPC if (args.Button == MouseButtons.Left) #endif // Mobile: we get here only with a left button click OnLinkClicked(linkLabel, controlsMap, mapData, mgControl, true); return; case EventType.GOT_FOCUS: case EventType.MOUSE_UP: break; case EventType.MOUSE_DOWN: if (!linkLabel.Focused) { GuiUtils.saveFocusingControl(GuiUtils.FindForm(linkLabel), mapData); } break; case EventType.MOUSE_ENTER: linkLabel.OnHovering = true; break; case EventType.MOUSE_LEAVE: linkLabel.OnHovering = false; break; case EventType.KEY_DOWN: KeyEventArgs keyEventArgs = (KeyEventArgs)evtArgs; if (KbdConvertor.isModifier(keyEventArgs.KeyCode)) { return; } if (keyEventArgs.Modifiers == Keys.None && keyEventArgs.KeyCode == Keys.Space) { OnLinkClicked(linkLabel, controlsMap, mapData, mgControl, false); return; } break; case EventType.PRESS: if (!linkLabel.Focused) { GuiUtils.saveFocusingControl(GuiUtils.FindForm(linkLabel), mapData); } break; default: break; } } } finally { contextIDGuard.Dispose(); } DefaultHandler.getInstance().handleEvent(type, sender, evtArgs); }
internal void LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { handleEvent(EventType.LINK_CLICKED, sender, e); }