Exemplo n.º 1
0
        /// <summary>
        /// Determines whether the entry is visible or not.
        /// </summary>
        /// <param name="renderedEntry">The rendered entry.</param>
        /// <param name="view">The view to check for (BrailleIoViewRange).</param>
        /// <returns>
        /// -1 if not visible; 0 if party visible, and 1 if fully visible.
        /// </returns>
        public virtual int IsEntryVisible(RenderElement renderedEntry, IViewBoxModel view = null)
        {
            if (!renderedEntry.IsEmpty())
            {
                if (view == null)
                {
                    view = _lastView;
                }
                if (view != null && view.ContentBox.Width * view.ContentBox.Height > 0)
                {
                    int left, top, right, bottom;
                    left = top = 0;
                    if (view is IPannable)
                    {
                        left = ((IPannable)view).GetXOffset();
                        top  = ((IPannable)view).GetYOffset();
                    }
                    right  = view.ContentBox.Width + left;
                    bottom = view.ContentBox.Height + top;

                    if (renderedEntry.IsInArea(left, left + right, top, top + bottom))
                    {
                        if (renderedEntry.IsCompletelyInArea(left, right, top, bottom))
                        {
                            return(1);
                        }
                        return(0);
                    }
                }
            }
            return(-1);
        }