public void AddTypes(IList<Type> types, IFillable<TextPictureInfo> results)
 {
     foreach (Type t in types)
     {
         TextPictureInfo typeInfo = new TextPictureInfo(
             t.Name, Icons.GetIconForType(t));
         results.Add(typeInfo);
     }
 }
        public virtual void FillTypeList(
			ClassOrStructBlock callingClass,
			IFillable<TextPictureInfo> typeListToFill)
        {
            foreach (string s in EmbeddedTypes)
            {
                TextPictureInfo result = new TextPictureInfo(s);
                if (s == "object" || s == "string")
                {
                    result.Picture = Icons.TypeClass;
                }
                else
                {
                    result.Picture = Icons.TypeStruct;
                }
                typeListToFill.Add(result);
            }

            CodeUnitBlock codeUnit = callingClass.Root as CodeUnitBlock;
            if (codeUnit != null && codeUnit.UsingSection != null)
            {
                foreach (UsingDirective u in codeUnit.UsingDirectives)
                {
                    CacheUsing(u);
                    IList<Type> types = null;
                    Types.TryGetValue(u.Text, out types);
                    if (types != null)
                    {
                        AddTypes(types, typeListToFill);
                    }
                }
            }
        }