Example #1
0
        private void RenderPixbuf(Pane pane, Context cr, string icon, double alpha)
        {
            int offset = PaneOffset(pane);

            if (!SurfaceCache.ContainsKey(icon))
            {
                CreateCachedSurfaceForIcon(icon);
            }

            string sec_icon = "";

            if (OldContext.GetPaneObject(pane) != null)
            {
                sec_icon = OldContext.GetPaneObject(pane).Icon;
            }

            double calc_alpha = (sec_icon != icon) ? icon_fade[(int)pane] : 1;
            int    x;
            int    y;

            if (PaneOutlineRenderer.StackIconText)
            {
                x = drawing_area.X + offset + (BoxWidth / 2 - IconSize / 2);
                y = drawing_area.Y + WindowBorder + TitleBarHeight + 3;
            }
            else
            {
                x = drawing_area.X + offset + 5;
                y = drawing_area.Y + WindowBorder + TitleBarHeight + ((BoxHeight - IconSize) / 2);
            }
            cr.SetSource(SurfaceCache.GetSurface(icon), x, y);
            cr.PaintWithAlpha(calc_alpha * alpha);
            if (string.IsNullOrEmpty(sec_icon) || calc_alpha < 1)
            {
                return;
            }

            if (!SurfaceCache.ContainsKey(OldContext.GetPaneObject(pane).Icon))
            {
                CreateCachedSurfaceForIcon(OldContext.GetPaneObject(pane).Icon);
            }
            cr.SetSource(SurfaceCache.GetSurface(OldContext.GetPaneObject(pane).Icon), x, y);
            cr.PaintWithAlpha(alpha * (1 - calc_alpha));
        }