// TODO: correct toggle function for active detail area view range
        private void toggleFullDetailScreen()
        {
            BrailleIOScreen    vs       = GetVisibleScreen();
            BrailleIOViewRange detailVR = vs.GetViewRange(VR_DETAIL_NAME); // TODO: ImageData class creates own detail area --> do not use global detailarea
            BrailleIOViewRange topVR    = vs.GetViewRange(VR_TOP_NAME);

            detailVR.SetHeight(deviceSize.Height - topVR.GetHeight());
            detailVR.SetTop(topVR.GetHeight() - 3);
            io.RefreshDisplay();
            audioRenderer.PlaySoundImmediately(LL.GetTrans("tangram.lector.wm.views.detail_maximize"));
        }
 /// <summary>
 /// Get the touched view range.
 /// </summary>
 /// <param name="x">x value of the tap (on pin device)</param>
 /// <param name="y">y value of the tap (on pin device)</param>
 /// <param name="s">visible screen</param>
 /// <returns>touched view range</returns>
 public BrailleIOViewRange GetTouchedViewRange(double x, double y, BrailleIOScreen s)
 {
     if (s != null)
     {
         OrderedDictionary viewRanges = s.GetViewRanges();
         if (viewRanges.Count > 0)
         {
             object[] keys = new object[viewRanges.Keys.Count];
             viewRanges.Keys.CopyTo(keys, 0);
             for (int i = keys.Length - 1; i >= 0; i--)
             {
                 BrailleIOViewRange vr = viewRanges[keys[i]] as BrailleIOViewRange;
                 if (vr != null && vr.IsVisible())
                 {
                     if (x >= vr.GetLeft() && x <= (vr.GetLeft() + vr.GetWidth()))
                     {
                         if (y >= vr.GetTop() && y <= (vr.GetTop() + vr.GetHeight()))
                         {
                             return(vr);
                         }
                     }
                 }
             }
         }
     }
     return(null);
 }