Browse Source

Fixed FindEnum to work with qualified names.

pull/1/head
triton 13 years ago
parent
commit
95418f79ab
  1. 25
      src/Bridge/Namespace.cs

25
src/Bridge/Namespace.cs

@ -89,15 +89,30 @@ namespace CppSharp
public Enumeration FindEnum(string name, bool createDecl = false) public Enumeration FindEnum(string name, bool createDecl = false)
{ {
var @enum = Enums.Find(e => e.Name.Equals(name)); var entries = name.Split(new string[] { "::" },
StringSplitOptions.RemoveEmptyEntries).ToList();
if (@enum == null && createDecl) if (entries.Count <= 1)
{ {
@enum = new Enumeration() { Name = name, Namespace = this }; var @enum = Enums.Find(e => e.Name.Equals(name));
Enums.Add(@enum);
if (@enum == null && createDecl)
{
@enum = new Enumeration() { Name = name, Namespace = this };
Enums.Add(@enum);
}
return @enum;
} }
return @enum; var enumName = entries[entries.Count - 1];
var namespaces = entries.Take(entries.Count - 1);
var @namespace = FindNamespace(namespaces);
if (@namespace == null)
return null;
return @namespace.FindEnum(enumName, createDecl);
} }
public Function FindFunction(string name, bool createDecl = false) public Function FindFunction(string name, bool createDecl = false)

Loading…
Cancel
Save