public static int GetGlyph(TopDeclaration decl) { if (decl == null) { return(-1); } NemerleModifiers attrs = decl.Attributes; GlyphType kind = decl is TopDeclaration.Delegate ? GlyphType.Delegate : decl is TopDeclaration.Enum ? GlyphType.Enum : decl is TopDeclaration.Interface ? GlyphType.Interface : decl is TopDeclaration.Macro ? GlyphType.Macro : decl is TopDeclaration.Variant ? GlyphType.Variant : decl is TopDeclaration.VariantOption ? GlyphType.VariantOption : Has(attrs, NemerleModifiers.Struct) ? GlyphType.Struct : GlyphType.Class; GlyphSubtype modifier = Has(attrs, NemerleModifiers.Internal | NemerleModifiers.Protected) ? GlyphSubtype.ProtectedInternal : Has(attrs, NemerleModifiers.Internal) ? GlyphSubtype.Internal : Has(attrs, NemerleModifiers.Protected) ? GlyphSubtype.Protected : Has(attrs, NemerleModifiers.Public) ? GlyphSubtype.Public : Has(attrs, NemerleModifiers.Private) ? GlyphSubtype.Private : decl is TopDeclaration.VariantOption ? GlyphSubtype.Public : GlyphSubtype.Private; return((int)kind + (int)modifier); }
public static int GetGlyph(ClassMember member) { if (member == null) { return(-1); } int kind = 0; int modifier = 0; if (member is ClassMember.Field) { kind = 7; } else if (member is ClassMember.Property) { kind = 17; } else if (member is ClassMember.Function) { kind = 12; } else if (member is ClassMember.Event) { kind = 5; } NemerleModifiers attrs = member.Attributes; modifier = Has(attrs, NemerleModifiers.Internal) ? 1 : Has(attrs, NemerleModifiers.Protected) ? 3 : Has(attrs, NemerleModifiers.Public) ? 0 : member.DefinedIn is TopDeclaration.VariantOption ? 0 : 4; return(kind * 6 + modifier); }
private static bool Has(NemerleModifiers attrs, NemerleModifiers value) { return((attrs & value) == value); }