~ubuntu-branches/ubuntu/karmic/moon/karmic

« back to all changes in this revision

Viewing changes to class/System.Windows.Browser/System.Windows.Browser/BrowserInformation.cs

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2009-02-14 12:01:08 UTC
  • Revision ID: james.westby@ubuntu.com-20090214120108-06539vb25vhbd8bn
Tags: upstream-1.0
ImportĀ upstreamĀ versionĀ 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// System.Windows.Browser.BrowserInformation class
 
3
//
 
4
// Contact:
 
5
//   Moonlight List (moonlight-list@lists.ximian.com)
 
6
//
 
7
// Copyright (C) 2007 Novell, Inc (http://www.novell.com)
 
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.Runtime.InteropServices;
 
31
 
 
32
namespace System.Windows.Browser {
 
33
 
 
34
        public sealed class BrowserInformation {
 
35
 
 
36
                private string name;
 
37
                private string version;
 
38
                private string platform;
 
39
                private string user_agent;
 
40
                private bool cookie_enabled;
 
41
 
 
42
                [DllImport ("moonplugin")]
 
43
                static extern void plugin_instance_get_browser_information (IntPtr plugin_handle,
 
44
                        out IntPtr name, out IntPtr version, out IntPtr platform, out IntPtr userAgent,
 
45
                        [MarshalAs(UnmanagedType.I1)] ref bool cookieEnabled);
 
46
 
 
47
                internal BrowserInformation ()
 
48
                {
 
49
                        IntPtr name, version, platform, user_agent;
 
50
                        plugin_instance_get_browser_information (WebApplication.Current.PluginHandle,
 
51
                                                                 out name, out version, out platform, out user_agent,
 
52
                                                                 ref cookie_enabled);
 
53
                        this.name = Marshal.PtrToStringAnsi (name);
 
54
                        this.version = Marshal.PtrToStringAnsi (version);
 
55
                        this.platform = Marshal.PtrToStringAnsi (platform);
 
56
                        this.user_agent = Marshal.PtrToStringAnsi (user_agent);
 
57
                }
 
58
 
 
59
                public BrowserInformation (string name, string version, string platform, string userAgent, bool cookieEnabled)
 
60
                {
 
61
                        this.name = name;
 
62
                        this.version = version;
 
63
                        this.platform = platform;
 
64
                        this.user_agent = userAgent;
 
65
                        this.cookie_enabled = cookieEnabled;
 
66
                }
 
67
 
 
68
                public Version BrowserVersion {
 
69
                        get { return new Version (version); }
 
70
                }
 
71
 
 
72
                public bool CookiesEnabled {
 
73
                        get { return cookie_enabled; }
 
74
                }
 
75
 
 
76
                public string Name {
 
77
                        get { return name; }
 
78
                }
 
79
 
 
80
                public string Platform {
 
81
                        get { return platform; }
 
82
                }
 
83
 
 
84
                public string UserAgent {
 
85
                        get { return user_agent; }
 
86
                }
 
87
        }
 
88
}