6
// Michael Hutchinson <mhutchinson@novell.com>
8
// Copyright (c) 2009 Novell, Inc. (http://www.novell.com)
10
// Permission is hereby granted, free of charge, to any person obtaining a copy
11
// of this software and associated documentation files (the "Software"), to deal
12
// in the Software without restriction, including without limitation the rights
13
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
// copies of the Software, and to permit persons to whom the Software is
15
// furnished to do so, subject to the following conditions:
17
// The above copyright notice and this permission notice shall be included in
18
// all copies or substantial portions of the Software.
20
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29
using System.Collections.Generic;
32
namespace MonoDevelop.MacDev.InterfaceBuilder
35
public class NSArray : IBObject
39
public List<object> Values {
42
values = new List<object> ();
47
protected override void OnPropertyDeserialized (string name, object value, IReferenceResolver resolver)
52
base.OnPropertyDeserialized (name, value, resolver);
56
public class NSMutableArray : NSArray
60
public class NSMutableDictionaryDirect : NSMutableDictionary
62
protected override void OnPropertyDeserialized (string name, object value, IReferenceResolver resolver)
68
public class NSMutableDictionary : IBObject
70
Unref<NSArray> sortedKeys, values;
71
Dictionary<object, object> dict;
72
List<object> nonCoderKeys;
74
public Dictionary<object, object> Values {
77
List<object> k = sortedKeys.Value.Values;
78
List<object> v = values.Value.Values;
79
dict = new Dictionary<object, object> (k.Count);
80
for (int i = 0; i < k.Count; i++) {
88
protected override void OnPropertyDeserialized (string name, object value, IReferenceResolver resolver)
90
if (EncodedWithXMLCoder) {
91
if (name == "dict.sortedKeys") {
92
sortedKeys = new Unref<NSArray> (value);
93
} else if (name == "dict.values") {
94
values = new Unref<NSArray> (value);
96
base.OnPropertyDeserialized (name, value, resolver);
99
if (nonCoderKeys == null) {
100
nonCoderKeys = new List<object> ();
101
dict = new Dictionary<object, object> ();
103
if (name.StartsWith ("NS.key.")) {
104
int idx = Int32.Parse (name.Substring ("NS.key.".Length));
105
while (nonCoderKeys.Count <= idx)
106
nonCoderKeys.Add (null);
107
nonCoderKeys[idx] = value;
108
} else if (name.StartsWith ("NS.object.")) {
109
int idx = Int32.Parse (name.Substring ("NS.object.".Length));
110
dict[nonCoderKeys[idx]] = value;
112
base.OnPropertyDeserialized (name, value, resolver);
118
public class IBMutableOrderedSet : IBObject
120
List<object> orderedObjects;
122
public List<object> OrderedObjects {
124
if (orderedObjects == null)
125
orderedObjects = new List<object> ();
126
return orderedObjects;
130
protected override void OnPropertyDeserialized (string name, object value, IReferenceResolver resolver)
132
if (name == "orderedObjects" && value is NSArray)
133
orderedObjects = ((NSArray)value).Values;
135
base.OnPropertyDeserialized (name, value, resolver);
b'\\ No newline at end of file'