1
// DockBackgroundRenderer.cs
3
// Copyright (C) 2008 GNOME Do
5
// This program is free software: you can redistribute it and/or modify
6
// it under the terms of the GNU General Public License as published by
7
// the Free Software Foundation, either version 3 of the License, or
8
// (at your option) any later version.
10
// This program is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU General Public License for more details.
15
// You should have received a copy of the GNU General Public License
16
// along with this program. If not, see <http://www.gnu.org/licenses/>.
20
using System.Collections.Generic;
25
using Do.Interface.CairoUtils;
27
namespace Docky.Interface.Renderers
31
public static class DockBackgroundRenderer
36
public static void RenderDockBackground (Context context, Gdk.Rectangle dockArea)
38
if (sr == null || dockArea.Height > height) {
42
height = dockArea.Height;
43
sr = context.Target.CreateSimilar (context.Target.Content, 1000, dockArea.Height);
45
using (Context cr = new Context (sr)) {
46
cr.SetRoundedRectanglePath (.5, .5, 1000 - 1, dockArea.Height+40, 5); //fall off the bottom
47
cr.Color = new Cairo.Color (0.1, 0.1, 0.1, .75);
50
//gives the dock a "lifted" look and feel
51
cr.Color = new Cairo.Color (0, 0, 0, .6);
55
cr.SetRoundedRectanglePath (1.5, 1.5, 1000 - 3, dockArea.Height + 40, 5);
56
LinearGradient lg = new LinearGradient (0, 1.5, 0, 10);
57
lg.AddColorStop (0, new Cairo.Color (1, 1, 1, .4));
58
lg.AddColorStop (1, new Cairo.Color (1, 1, 1, 0));
67
context.SetSource (sr, dockArea.X, dockArea.Y);
68
context.Rectangle (dockArea.X, dockArea.Y, dockArea.Width / 2, dockArea.Height);
71
context.SetSource (sr, dockArea.X + dockArea.Width - 1000, dockArea.Y);
72
context.Rectangle (dockArea.X + dockArea.Width / 2, dockArea.Y, dockArea.Width - dockArea.Width / 2, dockArea.Height);