Пример #1
0
        /// <summary>
        /// Renders the pager.
        /// </summary>
        public virtual void RenderPager(Cairo.Context context, Pango.Context pangoContext, Gdk.Rectangle region)
        {
            //set global clip to avoid going outside general rendering area
            CairoExtensions.RoundedRectangle(context, region.X, region.Y, region.Width, region.Height, CornerRadius);
            context.Clip();

            Pango.Layout layout      = SetupPagerText(pangoContext);
            var          boundingBox = GetPagerBounds(layout, region);

            RenderPagerBackground(context, boundingBox);

            Gdk.Rectangle arrowRect = new Gdk.Rectangle(boundingBox.X + pagerArrowPadding,
                                                        boundingBox.Y + (boundingBox.Height - Styles.PopoverWindow.PagerTriangleSize) / 2,
                                                        Styles.PopoverWindow.PagerTriangleSize,
                                                        Styles.PopoverWindow.PagerTriangleSize);

            RenderPagerArrow(context, arrowRect, PagerVertical ? ArrowType.Up : ArrowType.Left);
            arrowRect.X = boundingBox.X + boundingBox.Width - (pagerArrowPadding + Styles.PopoverWindow.PagerTriangleSize);
            RenderPagerArrow(context, arrowRect, PagerVertical ? ArrowType.Down : ArrowType.Right);

            RenderPagerText(context, layout, boundingBox);
        }