~ubuntu-branches/ubuntu/wily/gnome-do/wily

« back to all changes in this revision

Viewing changes to Do.Interface.Linux.Docky/src/Docky.Interface/Docky.Interface.Items/SeparatorItem.cs

  • Committer: Bazaar Package Importer
  • Author(s): Christopher James Halse Rogers
  • Date: 2011-02-15 21:50:02 UTC
  • mfrom: (1.1.10 upstream)
  • Revision ID: james.westby@ubuntu.com-20110215215002-1j8ylb69o15asb06
Tags: 0.8.4-0ubuntu1
* The Race Against FF upload.  Merge from unreleased Debian git.
  Remaining Ubuntu changes:
  + debian/patches/05_disable_resize_grips.patch.diff:
    Disable resize handles for the Do windows.
  + debian/control:
    Bump gtk# build dep for HasResizeGrip API.
* New Debian changes:
* The long fortold release
  + Fixes a threadsafety issue resulting in 100% CPU usage (Closes: 565591,
    LP: #450852).
  + Proxies all keyring calls to the GTK main thread, as required by the new
    gnome-keyring (Closes: 603876, LP: #553643)
* debian/patches/00_bundledlibs.dpatch:
* debian/rules:
  + Upstream has dropped bundled gmcs binary; now 100% DFSG-free, so we don't
    have to repack the tarball or patch the buildsystem.
* debian/patches/03_disable_docky.dpatch:
  + Drop.  Docky is now gone in the upstream tarball.
* debian/rules:
* debian/control:
* debian/patches/*:
  + Switch to quilt to harmonise with other pkg-cli-* packages.
* debian/control:
  + Drop recommends on gnome-do-docklets.  Docky is now a separate package,
    so the docklets are useless for Do.
  + Bump Breaks on gnome-do-plugins to 0.8.3.  Do no longer provides the Wink
    library, which has been imported into the 0.8.3 do-plugins sources.
  + Bump standards-version; no changes needed.
  + Migrate to git and update VCS fields appropriately

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
// SeperatorItem.cs
2
 
// 
3
 
// Copyright (C) 2008 GNOME Do
4
 
//
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.
9
 
//
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.
14
 
//
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/>.
17
 
//
18
 
 
19
 
using System;
20
 
 
21
 
using Cairo;
22
 
using Gdk;
23
 
 
24
 
using Do.Interface;
25
 
using Do.Interface.CairoUtils;
26
 
 
27
 
using Docky.Utilities;
28
 
 
29
 
namespace Docky.Interface
30
 
{
31
 
        public class SeparatorItem : AbstractDockItem
32
 
        {
33
 
                Surface sr;
34
 
                #region IDockItem implementation 
35
 
                
36
 
                public override int Width {
37
 
                        get { return (int) (DockPreferences.IconSize * .3); }
38
 
                }
39
 
                
40
 
                public override ScalingType ScalingType {
41
 
                        get {
42
 
                                return ScalingType.None;
43
 
                        }
44
 
                }
45
 
 
46
 
                
47
 
                #endregion 
48
 
                
49
 
                public SeparatorItem ()
50
 
                {
51
 
                        AnimationType = ClickAnimationType.None;
52
 
                        DockPreferences.IconSizeChanged += HandleIconSizeChanged;
53
 
                }
54
 
 
55
 
                void HandleIconSizeChanged ()
56
 
                {
57
 
                        if (sr != null)
58
 
                                sr.Destroy ();
59
 
                        sr = null;
60
 
                }
61
 
                
62
 
                public override Surface GetIconSurface (Surface buffer, int targetSize, out int actualSize)
63
 
                {
64
 
                        actualSize = DockPreferences.IconSize;
65
 
                        if (sr == null) {
66
 
                                sr = buffer.CreateSimilar (Cairo.Content.ColorAlpha, Width, Height);
67
 
                                Context cr = new Context (sr);
68
 
                                cr.AlphaFill ();
69
 
 
70
 
                                cr.LineWidth = 1;
71
 
                                
72
 
                                cr.MoveTo (Width / 2 - .5, 0);
73
 
                                cr.LineTo (Width / 2 - .5, Height);
74
 
                                RadialGradient rg = new RadialGradient (Width / 2, Height / 2, 0, Width / 2, Height / 2, Height / 2);
75
 
                                rg.AddColorStop (0, new Cairo.Color (1, 1, 1, .4));
76
 
                                rg.AddColorStop (0.3, new Cairo.Color (1, 1, 1, .4));
77
 
                                rg.AddColorStop (1, new Cairo.Color (1, 1, 1, 0));
78
 
                                cr.Pattern = rg;
79
 
                                cr.Stroke ();
80
 
                                
81
 
                                rg.Destroy ();
82
 
                                
83
 
                                cr.MoveTo (Width / 2 + .5, 0);
84
 
                                cr.LineTo (Width / 2 + .5, Height);
85
 
                                rg = new RadialGradient (Width / 2, Height / 2, 0, Width / 2, Height / 2, Height / 2);
86
 
                                rg.AddColorStop (0, new Cairo.Color (0, 0, 0, .5));
87
 
                                rg.AddColorStop (0.3, new Cairo.Color (0, 0, 0, .5));
88
 
                                rg.AddColorStop (1, new Cairo.Color (0, 0, 0, 0));
89
 
                                cr.Pattern = rg;
90
 
                                cr.Stroke ();
91
 
                                
92
 
                                rg.Destroy ();
93
 
                                
94
 
                                (cr as IDisposable).Dispose ();
95
 
                        }
96
 
                        return sr;
97
 
                }
98
 
                
99
 
                #region IDisposable implementation 
100
 
                
101
 
                public override void Dispose ()
102
 
                {
103
 
                        DockPreferences.IconSizeChanged -= HandleIconSizeChanged;
104
 
                        if (sr != null) {
105
 
                                sr.Destroy ();
106
 
                                sr = null;
107
 
                        }
108
 
                }
109
 
                
110
 
                #endregion 
111
 
                
112
 
                public override bool Equals (AbstractDockItem other) 
113
 
                {
114
 
                        if (other == null)
115
 
                                return false;
116
 
                        return object.ReferenceEquals (this, other);
117
 
                }
118
 
        }
119
 
}