/// <summary>
        /// get all the visible viewRanges in the currently visible screen containing text.
        /// </summary>
        /// <returns>list of ViewRanges containing text</returns>
        List<BrailleIOViewRange> getAllViews()
        {
            List<BrailleIOViewRange> vrs = new List<BrailleIOViewRange>();
            var screens = io.GetActiveViews();

            foreach (var item in screens)
            {
                if (item is BrailleIOScreen)
                {
                    foreach (var vrPair in ((BrailleIOScreen)item).GetOrderedViewRanges())
                    {
                        if (vrPair.Value != null)
                        {
                            BrailleIOViewRange vr = vrPair.Value;
                            if (vr.IsVisible() && (vr.IsText() || vr.IsOther()))
                            {
                                vrs.Add(vr);
                            }
                        }
                    }
                }
                else if (item is BrailleIOViewRange)
                {
                    BrailleIOViewRange vr = item as BrailleIOViewRange;
                    if (vr.IsVisible() && (vr.IsText() || vr.IsOther()))
                    {
                        vrs.Add(vr);
                    }
                }
            }

            return vrs;
        }