In .:
[mono.git] / mcs / class / WindowsBase / System.Windows / PropertyMetadata.cs
1 //
2 // PropertyMetadata.cs
3 //
4 // Author:
5 //   Iain McCoy (iain@mccoy.id.au)
6 //
7 // (C) 2005 Iain McCoy
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 namespace System.Windows {
30         public class PropertyMetadata {
31                 private object defaultValue;
32                 private GetValueOverride getValueOverride;
33                 private SetValueOverride setValueOverride;
34                 private bool isSealed;
35                 private PropertyInvalidatedCallback propertyInvalidatedCallback;
36                 private ReadLocalValueOverride readLocalValueOverride;
37                 private bool readOnly;
38                 private WriteLocalValueOverride writeLocalValueOverride;
39                 
40                 public object DefaultValue {
41                         get { return defaultValue; }
42                         set { defaultValue = value; }
43                 }
44                 public GetValueOverride GetValueOverride {
45                         get { return getValueOverride; }
46                         set { getValueOverride = value;}
47                 }
48                 protected bool IsSealed {
49                         get { return isSealed; }
50                 }
51                 public PropertyInvalidatedCallback PropertyInvalidatedCallback {
52                         get { return propertyInvalidatedCallback; }
53                         set { propertyInvalidatedCallback = value; }
54                 }
55                 public ReadLocalValueOverride ReadLocalValueOverride {
56                         get { return readLocalValueOverride; }
57                         set { readLocalValueOverride = value; }
58                 }
59                 public bool ReadOnly {
60                         get { return readOnly; }
61                 }
62                 public WriteLocalValueOverride WriteLocalValueOverride {
63                         get { return writeLocalValueOverride; }
64                         set { writeLocalValueOverride = value; }
65                 }
66
67                 public PropertyMetadata()
68                 {
69                 }
70                 public PropertyMetadata(GetValueOverride getValueOverride)
71                 {
72                         this.getValueOverride = getValueOverride;
73                 }
74                 public PropertyMetadata(GetValueOverride getValueOverride, SetValueOverride setValueOverride)
75                 {
76                         this.getValueOverride = getValueOverride;
77                         this.setValueOverride = setValueOverride;
78                 }
79                 public PropertyMetadata(object defaultValue)
80                 {
81                         this.defaultValue = defaultValue;
82                 }
83                 public PropertyMetadata(object defaultValue, PropertyInvalidatedCallback propertyInvalidatedCallback)
84                 {
85                         this.defaultValue = defaultValue;
86                         this.propertyInvalidatedCallback = propertyInvalidatedCallback;
87                 }
88                 
89                 public PropertyMetadata(object defaultValue, PropertyInvalidatedCallback propertyInvalidatedCallback, GetValueOverride getValueOverride)
90                 {
91                         this.defaultValue = defaultValue;
92                         this.propertyInvalidatedCallback = propertyInvalidatedCallback;
93                         this.getValueOverride = getValueOverride;
94                 }
95                 public PropertyMetadata(object defaultValue, PropertyInvalidatedCallback propertyInvalidatedCallback, GetValueOverride getValueOverride, SetValueOverride setValueOverride)
96                 {
97                         this.defaultValue = defaultValue;
98                         this.propertyInvalidatedCallback = propertyInvalidatedCallback;
99                         this.getValueOverride = getValueOverride;
100                         this.setValueOverride = setValueOverride;
101                 }
102                 public PropertyMetadata(PropertyInvalidatedCallback propertyInvalidatedCallback)
103                 {
104                         this.propertyInvalidatedCallback = propertyInvalidatedCallback;
105                 }
106                 public PropertyMetadata(PropertyInvalidatedCallback propertyInvalidatedCallback, GetValueOverride getValueOverride)
107                 {
108                         this.propertyInvalidatedCallback = propertyInvalidatedCallback;
109                         this.getValueOverride = getValueOverride;
110                 }
111                 public PropertyMetadata(PropertyInvalidatedCallback propertyInvalidatedCallback, GetValueOverride getValueOverride, SetValueOverride setValueOverride)
112                 {
113                         this.propertyInvalidatedCallback = propertyInvalidatedCallback;
114                         this.getValueOverride = getValueOverride;
115                         this.setValueOverride = setValueOverride;
116                 }
117
118                 [MonoTODO()]            
119                 protected void ClearCachedDefaultValue (DependencyObject owner)
120                 {
121                         throw new NotImplementedException("ClearCachedDefaultValue(DependencyObject owner)");
122                 }
123                 
124                 [MonoTODO()]            
125                 protected virtual object CreateDefaultValue (DependencyObject owner, DependencyProperty property)
126                 {
127                         throw new NotImplementedException("CreateDefaultValue(DependencyObject owner, DependencyProperty property)");
128                 }
129                 
130                 [MonoTODO()]            
131                 protected virtual void Merge (PropertyMetadata baseMetadata, DependencyProperty dp)
132                 {
133                         throw new NotImplementedException("Merge(PropertyMetadata baseMetadata, DependencyProperty dp)");
134                 }
135                 
136                 [MonoTODO()]            
137                 protected virtual void OnApply (DependencyProperty dp, Type targetType)
138                 {
139                         throw new NotImplementedException("OnApply(DependencyProperty dp, Type targetType)");
140                 }
141         }
142 }