void interactionManager_ButtonReleased(object sender, ButtonReleasedEventArgs e) { if (e != null) { sentButtonReleasedToRegisteredSpecifiedFunctionProxies(sender, e); } }
protected override void im_ButtonCombinationReleased(object sender, ButtonReleasedEventArgs e) { if (sender != null && e != null) { fire_buttonCombinationReleased(e.ReleasedGenericKeys); // cancel button combos // } }
protected virtual bool fireButtonCombinationReleasedEvent(ButtonReleasedEventArgs args) { bool cancel = false; if (ButtonCombinationReleased != null && args != null) { foreach (EventHandler<ButtonReleasedEventArgs> hndl in ButtonCombinationReleased.GetInvocationList()) { try { if (hndl != null) { hndl.DynamicInvoke(this, args); } if (args.Cancel == true) { cancel = args.Cancel; break; } } catch (Exception) { } } } return cancel; }
protected override void im_ButtonCombinationReleased(object sender, ButtonReleasedEventArgs e) { if (e != null && e.ReleasedGenericKeys != null) { BrailleIOScreen vs = GetVisibleScreen(); #region General Commands switch (e.ReleasedGenericKeys.Count) { case 1: switch (e.ReleasedGenericKeys[0]) { case "l": // abort speech output AbortAudio(); e.Cancel = true; return; default: break; } break; case 3: if (e.ReleasedGenericKeys.Contains("k1")) { // calibrate BrailleDis // if (e.ReleasedGenericKeys.Intersect(new List<String> { "k1", "k3", "hbr" }).ToList().Count == 3) { if (io != null) { this.ScreenObserver.Stop(); audioRenderer.PlaySound(LL.GetTrans("tangram.lector.wm.recalibrate")); bool res = io.Recalibrate(); this.ScreenObserver.Start(); audioRenderer.PlaySound(LL.GetTrans("tangram.lector.wm.recalibrate.success", (res ? "" : LL.GetTrans("tangram.lector.not") + " "))); } Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] recalibrate the device"); e.Cancel = true; return; } } break; case 4: // follow GUI focus mode // if (e.ReleasedGenericKeys.Intersect(new List<String> { "k1", "k2", "k4", "k7" }).ToList().Count == 4) { bool communicateSelection = false; if (this.FocusMode == FollowFocusModes.FOLLOW_MOUSE_FOCUS) { this.FocusMode = FollowFocusModes.NONE; } else { this.FocusMode = FollowFocusModes.FOLLOW_MOUSE_FOCUS; // jump to selected element OoConnector ooc = OoConnector.Instance; if (ooc != null && ooc.Observer != null) { System.Drawing.Rectangle bb = ooc.Observer.SelectedBoundingBox; ooc.Observer.StartDrawSelectFocusHighlightingMode(); if (bb.Width > 0 && bb.Height > 0) MoveToObject(bb); communicateSelection = true; } } if (communicateSelection && OoConnector.Instance != null && OoConnector.Instance.Observer != null) { OoConnector.Instance.Observer.CommunicateLastSelection(false); } e.Cancel = true; return; } break; default: break; } #endregion #region minimap commands if (vs != null && vs.Name.Equals(BS_MINIMAP_NAME)) { if (e.PressedGenericKeys == null || e.PressedGenericKeys.Count < 1) { if (e.ReleasedGenericKeys.Count == 1) { if (e.ReleasedGenericKeys[0].Equals("k2")) { } // exit minimap else if (e.ReleasedGenericKeys[0].Equals("lr")) { } // invert image else { vs = screenBeforeMinimap; // operation has to be executed for normal screen, minimap is automatically synchronized to this switch (e.ReleasedGenericKeys[0]) { // panning operations will be handled later case "nsll": break; case "nsl": break; case "nsr": break; case "nsrr": break; case "nsuu": break; case "nsu": break; case "nsd": break; case "nsdd": break; case "clu": break; case "cll": break; case "clr": break; case "cld": break; default: // all other operations lead to error sound audioRenderer.PlayWaveImmediately(StandardSounds.Error); e.Cancel = true; return; } } } } } #endregion #region global button commands if (e.PressedGenericKeys == null || e.PressedGenericKeys.Count < 1) { BrailleIOViewRange center = GetActiveCenterView(vs); BrailleIOViewRange detail = null; if (vs != null) detail = vs.GetViewRange(VR_DETAIL_NAME); if (e.ReleasedGenericKeys.Count == 1) { switch (e.ReleasedGenericKeys[0]) { #region panning operations case "nsll":// links blättern if (vs != null && center != null) if (moveHorizontal(vs.Name, center.Name, center.ContentBox.Width)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.left_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll left"); } e.Cancel = true; return; case "nsl":// links verschieben if (vs != null && center != null) if (moveHorizontal(vs.Name, center.Name, 5)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.left")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] small scroll left"); } e.Cancel = true; return; case "nsr":// rechts verschieben if (vs != null && center != null) if (moveHorizontal(vs.Name, center.Name, -5)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.right")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] small scroll right"); } e.Cancel = true; return; case "nsrr":// rechts blättern if (vs != null && center != null) if (moveHorizontal(vs.Name, center.Name, -center.ContentBox.Width)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.right_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll right"); } e.Cancel = true; return; case "nsuu":// hoch blättern if (vs != null && center != null) if (moveVertical(vs.Name, center.Name, center.ContentBox.Height)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.up_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll up"); } e.Cancel = true; return; case "nsu":// hoch verschieben if (vs != null && center != null) if (moveVertical(vs.Name, center.Name, 5)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.up")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] small scroll up"); } e.Cancel = true; return; case "nsd":// runter verschieben if (vs != null && center != null) if (moveVertical(vs.Name, center.Name, -5)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.down")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] small scroll down"); } e.Cancel = true; return; case "nsdd":// runter blättern if (vs != null && center != null) if (moveVertical(vs.Name, center.Name, -center.ContentBox.Height)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.down_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll down"); } e.Cancel = true; return; case "clu":// Sprung nach oben jumpToTopBorder(center); e.Cancel = true; return; case "cll":// Sprung nach links jumpToLeftBorder(center); e.Cancel = true; return; case "clr":// Sprung nach rechts jumpToRightBorder(center); e.Cancel = true; return; case "cld":// Sprung nach unten jumpToBottomBorder(center); e.Cancel = true; return; #endregion #region zooming operations case "rslu": // kleiner Zoom in if (vs != null && center != null) { if (zoomWithFactor(vs.Name, center.Name, 1.5)) { audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.zooming.in", GetZoomPercentageBasedOnPrintZoom(vs.Name, center.Name))); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] small zoom in"); } else audioRenderer.PlayWaveImmediately(StandardSounds.End); } e.Cancel = true; return; case "rsld": // kleiner Zoom out if (vs != null && center != null) { if (zoomWithFactor(vs.Name, center.Name, 1 / 1.5)) { audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.zooming.out", GetZoomPercentageBasedOnPrintZoom(vs.Name, center.Name))); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] small zoom out"); } else audioRenderer.PlayWaveImmediately(StandardSounds.End); } e.Cancel = true; return; case "rsru": // großer Zoom in if (vs != null && center != null) { if (zoomWithFactor(vs.Name, center.Name, 3)) { audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.zooming.in_big", GetZoomPercentageBasedOnPrintZoom(vs.Name, center.Name))); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big zoom in"); } else audioRenderer.PlayWaveImmediately(StandardSounds.End); } e.Cancel = true; return; case "rsrd": // großer Zoom out if (vs != null && center != null) { if (zoomWithFactor(vs.Name, center.Name, (double)1 / 3)) { audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.zooming.out_big", GetZoomPercentageBasedOnPrintZoom(vs.Name, center.Name))); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big zoom out"); } else audioRenderer.PlayWaveImmediately(StandardSounds.End); } e.Cancel = true; return; #endregion #region detail area scrolling case "cru": // scroll detail region up if (detail != null) { if (scrollViewRange(detail, 5)) { e.Cancel = true; break; } } AudioRenderer.Instance.PlayWaveImmediately(StandardSounds.Error); break; case "crl": // no function yet AudioRenderer.Instance.PlayWaveImmediately(StandardSounds.Error); break; case "crr": // no function yet AudioRenderer.Instance.PlayWaveImmediately(StandardSounds.Error); break; case "crd": // scroll detail region down if (detail != null) { if (scrollViewRange(detail, -5)) { e.Cancel = true; break; } } AudioRenderer.Instance.PlayWaveImmediately(StandardSounds.Error); break; #endregion default: break; } } else if (e.ReleasedGenericKeys.Count == 2) // TODO: maybe bring this in one { #region panning operations if (e.ReleasedGenericKeys.Intersect(new List<String> { "nsdd", "nsd" }).ToList().Count == 2) { if (vs != null && center != null) if (moveVertical(vs.Name, center.Name, -center.ContentBox.Height)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.down_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll down"); } } else if (e.ReleasedGenericKeys.Intersect(new List<String> { "nsuu", "nsu" }).ToList().Count == 2) { if (vs != null && center != null) if (moveVertical(vs.Name, center.Name, center.ContentBox.Height)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.up_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll up"); } } else if (e.ReleasedGenericKeys.Intersect(new List<String> { "nsll", "nsl" }).ToList().Count == 2) { if (vs != null && center != null) if (moveHorizontal(vs.Name, center.Name, center.ContentBox.Width)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.left_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll left"); } } else if (e.ReleasedGenericKeys.Intersect(new List<String> { "nsrr", "nsr" }).ToList().Count == 2) { if (vs != null && center != null) if (moveHorizontal(vs.Name, center.Name, -center.ContentBox.Width)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.panning.right_big")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] big scroll right"); } } #endregion } else if (e.ReleasedGenericKeys.Count == 8) { // Ansichtswechsel if (e.ReleasedGenericKeys.Intersect(new List<String> { "k1", "k2", "k3", "k4", "k5", "k6", "k7", "k8" }).ToList().Count == 8) { string message = ""; if (currentView.Equals(LectorView.Braille)) { if (ChangeLectorView(LectorView.Drawing)) { changeActiveCenterView(vs, VR_CENTER_NAME); message = LL.GetTrans("tangram.lector.wm.views.draw_activated"); } } else if (currentView.Equals(LectorView.Drawing)) { if (ChangeLectorView(LectorView.Braille)) { changeActiveCenterView(vs, VR_CENTER_2_NAME); message = LL.GetTrans("tangram.lector.wm.views.braille_activated"); } } audioRenderer.PlaySoundImmediately(message); ShowTemporaryMessageInDetailRegion(message); fillMainCenterContent(); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] " + message); e.Cancel = true; return; } } } #endregion #region Drawing mode button commands // button commands that are not working in Braille mode if (!InteractionManager.Mode.Equals(InteractionMode.Braille)) { if (e.PressedGenericKeys == null || e.PressedGenericKeys.Count < 1) { #region 1 key if (e.ReleasedGenericKeys.Count == 1) { switch (e.ReleasedGenericKeys[0]) { case "k1": // Druck-Zoom if (vs != null && !vs.Name.Equals(BS_MINIMAP_NAME)) { if (ZoomTo(vs.Name, VR_CENTER_NAME, GetPrintZoomLevel())) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.zooming.to_print")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] print zoom"); } else audioRenderer.PlayWaveImmediately(StandardSounds.End); } e.Cancel = true; return; case "k2": // Minimap toggleMinimap(); BrailleIOScreen nvs = GetVisibleScreen(); if (nvs != null && nvs.Name.Equals(BS_MINIMAP_NAME)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.minimap.show")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] start minimap"); } else if (nvs != null) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.minimap.hide")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] stop minimap"); } e.Cancel = true; return; case "k3": // Breite/Höhe einpassen if (vs != null && !vs.Name.Equals(BS_MINIMAP_NAME)) { if (ZoomTo(vs.Name, VR_CENTER_NAME, -1)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.zooming.fit_height")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] zoom fit to height"); } else audioRenderer.PlayWaveImmediately(StandardSounds.End); } e.Cancel = true; return; case "k7": // 1-zu-1 Zoom if (vs != null && !vs.Name.Equals(BS_MINIMAP_NAME)) { if (ZoomTo(vs.Name, VR_CENTER_NAME, 1)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.zooming.1-1")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] zoom 1:1"); } else audioRenderer.PlayWaveImmediately(StandardSounds.End); } e.Cancel = true; return; case "lr": // Invertieren if (vs != null) { invertImage(vs.Name, VR_CENTER_NAME); BrailleIOViewRange vr = vs.GetViewRange(VR_CENTER_NAME); if (vr != null && !vr.InvertImage) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.non_invert")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] not invert output"); } else { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.invert")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] invert output"); } } e.Cancel = true; return; case "rl": // Schwellwert minus if (vs != null) { if (updateContrast(vs.Name, VR_CENTER_NAME, -THRESHOLD_STEP)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.threshold_down")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] reduce threshold"); } else { audioRenderer.PlayWaveImmediately(StandardSounds.End); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] already mininum threshold"); } } e.Cancel = true; return; case "r": // Schwellwert plus if (vs != null) { if (updateContrast(vs.Name, VR_CENTER_NAME, THRESHOLD_STEP)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.threshold_up")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] increase threshold"); } else { audioRenderer.PlayWaveImmediately(StandardSounds.End); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] already maximum threshold"); } } e.Cancel = true; return; default: break; } } #endregion #region 2 keys else if (e.ReleasedGenericKeys.Count == 2) { // Standard-Schwellwert if (e.ReleasedGenericKeys.Intersect(new List<String> { "rl", "r" }).ToList().Count == 2) { if (vs != null) { setContrast(vs.Name, VR_CENTER_NAME, STANDARD_CONTRAST_THRESHOLD); audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.threshold_reset")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] reset threshold"); } } } #endregion #region 3 keys else if (e.ReleasedGenericKeys.Count == 3) { // Kopfbereich ein/aus if (e.ReleasedGenericKeys.Intersect(new List<String> { "k1", "k3", "k8" }).ToList().Count == 3) { if (vs != null && vs.GetViewRange(VR_TOP_NAME) != null) { if (vs.GetViewRange(VR_TOP_NAME).IsVisible()) { if (changeViewVisibility(vs.Name, VR_TOP_NAME, false)) { changeViewVisibility(vs.Name, VR_STATUS_NAME, false); audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.views.region.hide", LL.GetTrans("tangram.lector.wm.views.region.VR_TOP_NAME") )); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] hide top region"); } } else if (changeViewVisibility(vs.Name, VR_TOP_NAME, true)) { changeViewVisibility(vs.Name, VR_STATUS_NAME, true); audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.views.region.show", LL.GetTrans("tangram.lector.wm.views.region.VR_TOP_NAME") )); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] show top region"); } } else if (vs != null && vs.Name.Equals(BS_FULLSCREEN_NAME)) { // exit fullscreen mode and show top region toggleFullscreen(); BrailleIOScreen nvs = GetVisibleScreen(); if (nvs != null) { BrailleIOViewRange top = nvs.GetViewRange(VR_TOP_NAME); if (top != null && !top.IsVisible()) { changeViewVisibility(nvs.Name, VR_TOP_NAME, true); } audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.full_screen_exit")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] exit full screen"); } } e.Cancel = true; return; } } #endregion #region 4 keys else if (e.ReleasedGenericKeys.Count == 4) { // Detailbereich ein/aus if (e.ReleasedGenericKeys.Intersect(new List<String> { "k1", "k4", "k5", "k8" }).ToList().Count == 4) { if (vs != null && vs.GetViewRange(VR_DETAIL_NAME) != null) { if (vs.GetViewRange(VR_DETAIL_NAME).IsVisible()) { if (changeViewVisibility(vs.Name, VR_DETAIL_NAME, false)) { audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.views.region.hide", LL.GetTrans("tangram.lector.wm.views.region.VR_DETAIL_NAME") )); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] hide detail region"); } } else if (changeViewVisibility(vs.Name, VR_DETAIL_NAME, true)) { audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.wm.views.region.show", LL.GetTrans("tangram.lector.wm.views.region.VR_DETAIL_NAME") )); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] show detail region"); } } else if (vs != null && vs.Name.Equals(BS_FULLSCREEN_NAME)) { // exit fullscreen mode and show detail region toggleFullscreen(); BrailleIOScreen nvs = GetVisibleScreen(); if (nvs != null) { BrailleIOViewRange detail = nvs.GetViewRange(VR_DETAIL_NAME); if (detail != null && !detail.IsVisible()) { changeViewVisibility(nvs.Name, VR_DETAIL_NAME, true); } audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.full_screen_exit")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] exit full screen"); } } e.Cancel = true; return; } } #endregion #region 5 keys else if (e.ReleasedGenericKeys.Count == 5) { // Vollbildmodus if (e.ReleasedGenericKeys.Intersect(new List<String> { "k1", "k3", "k4", "k6", "k8" }).ToList().Count == 5) { toggleFullscreen(); BrailleIOScreen nvs = GetVisibleScreen(); if (nvs != null && nvs.Name.Equals(BS_FULLSCREEN_NAME)) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.full_screen_start")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] start full screen"); } else if (nvs != null) { audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.full_screen_exit")); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] exit full screen"); } e.Cancel = true; return; } } #endregion #region 6 keys else if (e.ReleasedGenericKeys.Count == 6) { // Zoomstufe abfragen if (e.ReleasedGenericKeys.Intersect(new List<String> { "k1", "k3", "k5", "k6", "k7", "k8" }).ToList().Count == 6) { if (vs != null) { BrailleIOViewRange vr = vs.GetViewRange(VR_CENTER_NAME); if (vr != null) { double zl = GetZoomPercentageBasedOnPrintZoom(vs.Name, vr.Name); string message = LL.GetTrans("tangram.lector.wm.zooming.current", zl.ToString()); audioRenderer.PlaySoundImmediately(message); ShowTemporaryMessageInDetailRegion(message); Logger.Instance.Log(LogPriority.MIDDLE, this, "[INTERACTION] ask for current zoom level"); } } e.Cancel = true; return; } } #endregion } } #endregion #region Braille input mode commands // button commands that only work in Braille writing mode if (InteractionManager.Mode.Equals(InteractionMode.Braille)) { if (e.PressedGenericKeys == null || e.PressedGenericKeys.Count < 1) { if (e.ReleasedGenericKeys.Count == 1) { switch (e.ReleasedGenericKeys[0]) { case "r": // maximize detail area //toggleFullDetailScreen(); audioRenderer.PlayWaveImmediately(StandardSounds.Error); e.Cancel = true; return; } } } } #endregion } }
internal bool fireButtonCombinationReleasedEvent(Object sender, ButtonReleasedEventArgs args) { bool cancel = false; if (ButtonCombinationReleased != null && args != null) { foreach (EventHandler<ButtonReleasedEventArgs> hndl in ButtonCombinationReleased.GetInvocationList()) { if (cancel) return cancel; if (hndl != null && hndl.Target is IInteractionContextProxy) { if (!((IInteractionContextProxy)hndl.Target).Active) { continue; } } try { if (hndl != null) { hndl.Invoke(sender, args); } if (args.Cancel == true) { cancel = args.Cancel; break; } } catch (Exception) { } } } return cancel; }
private void sentButtonReleasedToRegisteredSpecifiedFunctionProxies(object sender, ButtonReleasedEventArgs e) { if (eventForwarder != null) { eventForwarder.fireButtonReleasedEvent(sender, e); } }
void interactionManager_ButtonCombinationReleased(object sender, ButtonReleasedEventArgs e) { if (e != null && e.ReleasedGenericKeys != null && e.ReleasedGenericKeys.Count > 0 && (e.PressedGenericKeys == null || e.PressedGenericKeys.Count < 1)) { if (interactionManager.Mode == InteractionMode.Braille) { interpretBrailleKeyboardCommand(e.ReleasedGenericKeys); } sentButtonCombinationReleasedToRegisteredSpecifiedFunctionProxies(sender, ref e); } }
void interactionManager_ButtonReleased(object sender, ButtonReleasedEventArgs e) { if (monitor != null) monitor.MarkButtonAsPressed(e.PressedGenericKeys); if (monitor != null) monitor.UnmarkButtons(e.ReleasedGenericKeys); }
protected bool fireButtonCombinationReleasedEvent(BrailleIO.BrailleIODevice device, List<BrailleIO_DeviceButton> pressedGeneralKeys, List<String> pressedGenericKeys, List<BrailleIO_DeviceButton> releasedGeneralKeys, List<String> releasedGenericKeys) { var args = new ButtonReleasedEventArgs(device, pressedGeneralKeys, pressedGenericKeys, releasedGeneralKeys, releasedGenericKeys); Logger.Instance.Log(LogPriority.OFTEN, this, "Button combination released: " + String.Join(",", args.ReleasedGenericKeys) + " pressed: " + String.Join(",", args.PressedGenericKeys)); bool cancel = base.fireButtonCombinationReleasedEvent(args); if (cancel) { System.Diagnostics.Debug.WriteLine("InteractionManager Event canceled"); } return cancel; }
void InteractionManager_ButtonReleased(object sender, ButtonReleasedEventArgs e) { if (e != null) { checkForKeyCombination(e.Device, e.PressedGeneralKeys, e.PressedGenericKeys, e.ReleasedGeneralKeys, e.ReleasedGenericKeys); } }
protected override void im_ButtonCombinationReleased(object sender, ButtonReleasedEventArgs e) { if ((e.ReleasedGenericKeys.Count == 1 && e.ReleasedGenericKeys[0] == "crc") || (e.ReleasedGenericKeys.Count == 2 && e.ReleasedGenericKeys.Contains("crc") && (e.ReleasedGenericKeys.Contains("cru") || e.ReleasedGenericKeys.Contains("crl") || e.ReleasedGenericKeys.Contains("crr") || e.ReleasedGenericKeys.Contains("crd")))) { switch (saveMenu) { case SaveDialog.NonActive: //first call make save dialog visible //saveDialog = SaveDialog.Active; Logger.Instance.Log(LogPriority.MIDDLE, this, "[SHAPE EDIT DIALOG] open save dialog"); saveMenu = SaveDialog.Save; showMenuDetailView(); UnderLiningHook.selectedString = LL.GetTrans("tangram.lector.image_data.save"); SaveBrailleInput(activeProperty, removeInputStr(activeProperty, Property.None)); audioRenderer.PlaySoundImmediately( LL.GetTrans("tangram.lector.image_data.save_dialog.opend") + " " + LL.GetTrans("tangram.lector.image_data.save_dialog.entry_selected" , LL.GetTrans("tangram.lector.image_data.save"))); break; case SaveDialog.Abort: //close save dialog saveMenu = SaveDialog.NonActive; Logger.Instance.Log(LogPriority.MIDDLE, this, "[SHAPE EDIT DIALOG] save menu aborted"); detailViewDic[TITLE_DESC_SAVE_VIEW_NAME].SetVisibility(false); ShowImageDetailView(TITLE_DESC_VIEW_NAME, 15, 0, activeProperty); break; case SaveDialog.NotSave: // quit dialog without saving changes CloseImageDialog(false); Logger.Instance.Log(LogPriority.MIDDLE, this, "[SHAPE EDIT DIALOG] changes were not saved, dialog closed"); break; case SaveDialog.Save: // quit dialog and save changes CloseImageDialog(true); Logger.Instance.Log(LogPriority.MIDDLE, this, "[SHAPE EDIT DIALOG] changes were saved, dialog closed"); break; } e.Cancel = true; } // bei Verlassen des Dialoges else if (e.ReleasedGenericKeys.Count == 1 && e.PressedGenericKeys.Count == 0) { switch (e.ReleasedGenericKeys[0]) { // scrolling through save, not saving and abort case "crr": //right scrolling through saveCommand if (saveMenu != SaveDialog.NonActive) { rotateThroughSaveDialog(1); } else // editing mode --> move caret to right { bki.MoveCaret(1); Logger.Instance.Log(LogPriority.MIDDLE, this, "[SHAPE EDIT DIALOG] move caret to right"); } e.Cancel = true; break; case "crl": if (saveMenu != SaveDialog.NonActive) { rotateThroughSaveDialog(-1); } else // editing mode --> move caret to left { bki.MoveCaret(-1); Logger.Instance.Log(LogPriority.MIDDLE, this, "[SHAPE EDIT DIALOG] move caret to left"); } e.Cancel = true; break; case "cru": rotateThroughProperties(); e.Cancel = true; break; case "crd": rotateThroughProperties(); e.Cancel = true; break; default: break; } } }
internal void fire_ButtonCombinationReleased(object sender, ButtonReleasedEventArgs e) { this.im_ButtonCombinationReleased(sender, e); }