/// <summary> /// Converts the type. /// </summary> public String ConvertType(String type, bool anyType) { String result = type; // Search for a known class or enumeration @class typeCls = (from cls in this.Classes where (cls.id != null && String.Equals(cls.id, type)) || (cls.id == null && String.Equals(cls.name, type)) select cls).FirstOrDefault(); enumeration typeEnumeration = (from enm in this.Enumerations where (enm.id != null && String.Equals(enm.id, type)) || (enm.id == null && String.Equals(enm.name, type)) select enm).FirstOrDefault(); if (typeCls != null) { result = NamingHelper.GenerateDotNetName(this.Prefix, typeCls.name); return(result); } else if (typeEnumeration != null) { result = NamingHelper.GenerateDotNetName(this.Prefix, typeEnumeration.name); return(result); } if (anyType) { // Search for a common type switch (type) { case "void": result = "void"; break; case "boolean": result = "Boolean"; break; case "integer": case "unsigned integer": result = "NSInteger"; break; case "double integer": result = "Int64"; break; case "real": result = "double"; break; case "property": result = "IntPtr"; break; case "list": result = "NSArray"; break; case "color": case "RGB color": result = "NSColor"; break; case "data": case "tdta": case "picture": result = "NSData"; break; case "date": result = "NSDate"; break; case "record": result = "NSDictionary"; break; case "type": result = "NSNumber"; break; case "point": result = "NSPoint"; break; case "text": case "version": result = "NSString"; break; case "rectangle": result = "NSRect"; break; case "alias": case "file": result = "NSURL"; break; case "specifier": case "location specifier": result = "SBObject"; break; default: result = "Id"; break; } } return(result); }
return(Add(enumeration, conditionalValues.Where(tv => tv.IncludeCondition).Select(tv => tv.Value)));
private static CodeTypeDeclaration GenerateEnumeration(GenerationContext context, enumeration enumeration) { String enumerationName = NamingHelper.GenerateDotNetName(context.Prefix, enumeration.name); CodeTypeDeclaration typeDeclaration = new CodeTypeDeclaration(); typeDeclaration.Name = enumerationName; typeDeclaration.IsEnum = true; typeDeclaration.BaseTypes.Add(typeof(uint)); IEnumerable <enumerator> values = enumeration.enumerator; foreach (enumerator value in values) { CodeMemberField memberField = new CodeMemberField(); memberField.Name = NamingHelper.GenerateDotNetName(enumerationName, value.name); if (!String.IsNullOrEmpty(value.code)) { uint constant = NamingHelper.ToUInt32(value.code); memberField.InitExpression = new CodePrimitiveExpression(constant); memberField.Comments.Add(new CodeCommentStatement("'" + value.code + "' => '0x" + constant.ToString("X8") + "'")); } typeDeclaration.Members.Add(memberField); } return(typeDeclaration); }