Copied remotely
[mono.git] / mcs / class / System.Windows.Forms / System.Windows.Forms / AmbientProperties.cs
1 //
2 // System.Windows.Forms.AmbientProperties
3 //
4 // Author:
5 //   Jaak Simm (jaaksimm@firm.ee)
6 //      Dennis Hayes (dennish@raytek.com)
7 // (C) Ximian, Inc 2002/3
8 //
9
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 // 
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 // 
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30 using System.Runtime.InteropServices;
31
32 using System;
33 using System.Drawing;
34
35 namespace System.Windows.Forms {
36
37         /// <summary>
38         /// Provides ambient property values to top-level controls.
39         /// </summary>
40         
41         public sealed class AmbientProperties {
42                 Cursor cursor;
43                 Font font;
44                 Color backColor;
45                 Color foreColor;
46                 // --- Constructor ---
47                 public AmbientProperties() {
48                         cursor = null;
49                         font = null;
50                         backColor = Color.Empty;
51                         foreColor = Color.Empty;
52                 }
53
54                 // --- (public) Properties ---
55
56                 public Cursor Cursor {
57                         get {
58                                 //if set, use our value, if not, search site for it.
59                                 if(cursor != null){
60                                         //This is correct
61                                         return cursor;
62                                 }
63                                 else{
64                                         //This needs to find cursor from the system
65                                         //If it cannot, return default
66                                         return cursor;//FIXME: get value from system
67                                 }
68                         }
69                         set {
70                                 cursor = value;
71                         }
72                 }
73         
74                 public Font Font {
75                         get {
76                                 if(font != null){
77                                         return  font;
78                                 }
79                                 else{//try to get font from system
80                                         return font;//FIXME: get value from system
81                                 }
82                         }
83                         set {
84                                 font = value; 
85                         }
86                 }
87         
88                 public Color ForeColor {
89                         get { 
90                                 if(foreColor != Color.Empty){
91                                         return foreColor;
92                                 }
93                                 else{
94                                         //FIXME: return system color if possible
95                                         return foreColor;
96                                 }
97                         }
98                         set {
99                                 foreColor = value;
100                         }
101                 }
102                 public Color BackColor {
103                         get { 
104                                 if(backColor != Color.Empty){
105                                         return backColor;
106                                 }
107                                 else{
108                                         //FIXME: return system color if possible
109                                         return backColor;
110                                 }
111                         }
112                         set {
113                                 backColor = value; 
114                         }
115                 }
116         }
117 }