~ubuntu-branches/ubuntu/quantal/banshee/quantal-updates

« back to all changes in this revision

Viewing changes to src/Backends/Banshee.Windows/Banshee.Windows/GtkWindowThumbnailToolbarManager.cs

  • Committer: Bazaar Package Importer
  • Author(s): Chow Loong Jin
  • Date: 2011-08-25 20:48:45 UTC
  • mfrom: (1.15.2 upstream) (6.3.16 experimental)
  • Revision ID: james.westby@ubuntu.com-20110825204845-1rdbhdoitkv3n5u8
Tags: 2.1.3-1ubuntu1
* [e356872] Merge from Debian Experimental, remaining changes:
  + Enable SoundMenu and Disable NotificationArea by default
  + Disable boo and karma extensions
  + Enable and recommnd u1ms and soundmenu extensions
  + Move desktop file for Meego UI to /usr/share/une/applications
  + Change the url for the Amazon store redirector
  + Create the U1MS widget earlier and bump libu1 requirement
  + [9d7c600] Drop upstreamed u1ms-initialize-earlier patch

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// GtkWindowThumbnailToolbarManager.cs
 
3
//
 
4
// Authors:
 
5
//   Pete Johanson <peter@peterjohanson.com>
 
6
//
 
7
// Copyright (C) 2010 Pete Johanson
 
8
//
 
9
// Permission is hereby granted, free of charge, to any person obtaining
 
10
// a copy of this software and associated documentation files (the
 
11
// "Software"), to deal in the Software without restriction, including
 
12
// without limitation the rights to use, copy, modify, merge, publish,
 
13
// distribute, sublicense, and/or sell copies of the Software, and to
 
14
// permit persons to whom the Software is furnished to do so, subject to
 
15
// the following conditions:
 
16
//
 
17
// The above copyright notice and this permission notice shall be
 
18
// included in all copies or substantial portions of the Software.
 
19
//
 
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
21
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
22
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 
23
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
 
24
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 
25
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 
26
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 
27
//
 
28
 
 
29
using System;
 
30
using System.Collections.Generic;
 
31
using System.Linq;
 
32
using System.Runtime.InteropServices;
 
33
using System.Text;
 
34
 
 
35
using Gtk;
 
36
 
 
37
using Windows7Support;
 
38
 
 
39
namespace Banshee.Windows
 
40
{
 
41
    public static class GtkWindowThumbnailToolbarManager
 
42
    {
 
43
        public static void Register (Window window, Action<ThumbnailToolbar> toolbar_creation_callback)
 
44
        {
 
45
            callback_dict[window] = toolbar_creation_callback;
 
46
 
 
47
            if (window.IsRealized) {
 
48
                CreateForWindow (window);
 
49
            } else {
 
50
                window.Realized += OnWindowRealized;
 
51
            }
 
52
        }
 
53
 
 
54
        static Dictionary<Window, Action<ThumbnailToolbar>> callback_dict = new Dictionary<Window, Action<ThumbnailToolbar>> ();
 
55
 
 
56
        static void OnWindowRealized (object o, EventArgs args)
 
57
        {
 
58
            CreateForWindow ((Window)o);
 
59
        }
 
60
 
 
61
        static void CreateForWindow (Window window)
 
62
        {
 
63
            Action<ThumbnailToolbar> cb = null;
 
64
 
 
65
            if (!callback_dict.TryGetValue (window, out cb)) {
 
66
                return;
 
67
            }
 
68
 
 
69
            ThumbnailToolbarManager.Register (gdk_win32_drawable_get_handle (window.GdkWindow.Handle), cb);
 
70
        }
 
71
 
 
72
        [DllImport ("libgdk-win32-2.0-0.dll")]
 
73
        static extern IntPtr gdk_win32_drawable_get_handle (IntPtr drawable);
 
74
    }
 
75
}