Merge branch 'master'
[mono.git] / mcs / class / System.Drawing / System.Drawing.Imaging / FrameDimension.cs
1 // created on 21.02.2002 at 17:06
2 //
3 // FrameDimension.cs
4 //
5 // Author: Christian Meyer
6 // eMail: Christian.Meyer@cs.tum.edu
7 // Dennis Hayes (dennish@raytek.com)
8 // Sanjay Gupta <gsanjay@novell.com>
9 // Jordi Mas i Hernanez (jordi@ximian.com)
10
11 //
12 // Copyright (C) 2004, 2008 Novell, Inc (http://www.novell.com)
13 //
14 // Permission is hereby granted, free of charge, to any person obtaining
15 // a copy of this software and associated documentation files (the
16 // "Software"), to deal in the Software without restriction, including
17 // without limitation the rights to use, copy, modify, merge, publish,
18 // distribute, sublicense, and/or sell copies of the Software, and to
19 // permit persons to whom the Software is furnished to do so, subject to
20 // the following conditions:
21 // 
22 // The above copyright notice and this permission notice shall be
23 // included in all copies or substantial portions of the Software.
24 // 
25 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
26 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
27 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
29 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
30 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
31 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
32 //
33
34 using System;
35
36 namespace System.Drawing.Imaging {
37
38         public sealed class FrameDimension {
39
40                 private Guid guid;
41                 private string name;
42
43                 static FrameDimension page;
44                 static FrameDimension resolution;
45                 static FrameDimension time;
46
47
48                 public FrameDimension (Guid guid) 
49                 {
50                         this.guid = guid;
51                 }
52
53                 internal FrameDimension (Guid guid, string name)
54                 {
55                         this.guid = guid;
56                         this.name = name;
57                 }
58
59                 public Guid Guid {
60                         get { return guid; }
61                 }
62
63                 public static FrameDimension Page {
64                         get {
65                                 if (page == null)
66                                         page = new FrameDimension (new Guid ("7462dc86-6180-4c7e-8e3f-ee7333a7a483"), "Page");
67                                 return page;
68                         }
69                 }
70         
71                 public static FrameDimension Resolution {
72                         get {
73                                 if (resolution == null) {
74                                         resolution = new FrameDimension (new Guid ("84236f7b-3bd3-428f-8dab-4ea1439ca315"), 
75                                                 "Resolution");
76                                 }
77                                 return resolution;
78                         }
79                 }
80         
81                 public static FrameDimension Time {
82                         get {
83                                 if (time == null)
84                                         time = new FrameDimension (new Guid ("6aedbd6d-3fb5-418a-83a6-7f45229dc872"), "Time");
85                                 return time;
86                         }
87                 }
88
89                 public override bool Equals (object o) 
90                 {
91                         FrameDimension fd = (o as FrameDimension);
92                         if (fd == null)
93                                 return false;           
94                 
95                         return (guid == fd.guid);                       
96                 }
97         
98                 public override int GetHashCode () 
99                 {
100                         return guid.GetHashCode ();
101                 }
102         
103                 public override string ToString ()
104                 {
105                         if (name == null)
106                                 name = String.Format ("[FrameDimension: {0}]", guid);
107                         return name;
108                 }
109         }
110 }