internal static FontFamilyInternal GetOrCreateFromWpf(WpfFontFamily wpfFontFamily)
        {
            FontFamilyInternal fontFamily = new FontFamilyInternal(wpfFontFamily);

            fontFamily = FontFamilyCache.CacheOrGetFontFamily(fontFamily);
            return(fontFamily);
        }
        /// <summary>
        /// An XGlyphTypeface for a font souce that comes from a custom font resolver
        /// creates a solitary font family exclusively for it.
        /// </summary>
        internal static XFontFamily CreateSolitary(string name)
        {
            // Custom font resolver face names must not clash with platform family names.
            FontFamilyInternal fontFamilyInternal = FontFamilyCache.GetFamilyByName(name);

            if (fontFamilyInternal == null)
            {
                fontFamilyInternal = FontFamilyInternal.GetOrCreateFromName(name, false);
                fontFamilyInternal = FontFamilyCache.CacheOrGetFontFamily(fontFamilyInternal);
            }

            // Create font family and save it in cache. Do not try to create platform objects.
            return(new XFontFamily(fontFamilyInternal));

            //// Custom font resolver face names must not clash with platform family names.
            //if (FontFamilyCache.GetFamilyByName(name) != null)
            //{
            //    // User must rename its font face to resolve naming confilict.
            //    throw new InvalidOperationException(String.Format("Font face name {0} clashs with existing family name.", name));
            //}

            //// Create font family and save it in cache. Do not try to create platform objects.
            //FontFamilyInternal fontFamilyInternal = FontFamilyInternal.GetOrCreateFromName(name, false);
            //fontFamilyInternal = FontFamilyCache.CacheFontFamily(fontFamilyInternal);
            //return new XFontFamily(fontFamilyInternal);
        }
 internal static FontFamilyInternal GetOrCreateFromGdi(GdiFontFamily gdiFontFamily)
 {
     try
     {
         Lock.EnterFontFactory();
         FontFamilyInternal fontFamily = new FontFamilyInternal(gdiFontFamily);
         fontFamily = FontFamilyCache.CacheOrGetFontFamily(fontFamily);
         return(fontFamily);
     }
     finally { Lock.ExitFontFactory(); }
 }
Esempio n. 4
0
        /// <summary>
        /// An XGlyphTypeface for a font source that comes from a custom font resolver
        /// creates a solitary font family exclusively for it.
        /// </summary>
        internal static XFontFamily GetOrCreateFontFamily(string name)
        {
            // Custom font resolver face names must not clash with platform family names.
            FontFamilyInternal fontFamilyInternal = FontFamilyCache.GetFamilyByName(name);

            if (fontFamilyInternal == null)
            {
                fontFamilyInternal = FontFamilyInternal.GetOrCreateFromName(name, false);
                fontFamilyInternal = FontFamilyCache.CacheOrGetFontFamily(fontFamilyInternal);
            }

            // Create font family and save it in cache. Do not try to create platform objects.
            return(new XFontFamily(fontFamilyInternal));
        }
 internal static FontFamilyInternal GetOrCreateFromName(string familyName, bool createPlatformObject)
 {
     try
     {
         Lock.EnterFontFactory();
         FontFamilyInternal family = FontFamilyCache.GetFamilyByName(familyName);
         if (family == null)
         {
             family = new FontFamilyInternal(familyName, createPlatformObject);
             family = FontFamilyCache.CacheOrGetFontFamily(family);
         }
         return(family);
     }
     finally { Lock.ExitFontFactory(); }
 }
Esempio n. 6
0
        /// <summary>
        /// Caches the font family or returns a previously cached one.
        /// </summary>
        public static FontFamilyInternal CacheOrGetFontFamily(FontFamilyInternal fontFamily)
        {
            try
            {
                Lock.EnterFontFactory();
                // Recall that a font family is uniquely identified by its case insensitive name.
                FontFamilyInternal existingFontFamily;
                if (Singleton._familiesByName.TryGetValue(fontFamily.Name, out existingFontFamily))
                {
//#if DEBUG_
//                    if (fontFamily.Name == "xxx")
//                        fontFamily.GetType();
//#endif
                    return(existingFontFamily);
                }
                Singleton._familiesByName.Add(fontFamily.Name, fontFamily);
                return(fontFamily);
            }
            finally { Lock.ExitFontFactory(); }
        }
Esempio n. 7
0
        /// <summary>
        /// Caches the font family or returns a previously cached one.
        /// </summary>
        public static FontFamilyInternal CacheOrGetFontFamily(FontFamilyInternal fontFamily)
        {
            try
            {
                Lock.EnterFontFactory();
                // Recall that a font family is uniquely identified by its case insensitive name.
                FontFamilyInternal existingFontFamily;
                if (Singleton._familiesByName.TryGetValue(fontFamily.Name, out existingFontFamily))
                {
#if DEBUG_
                    if (fontFamily.Name == "xxx")
                        fontFamily.GetType();
#endif
                    return existingFontFamily;
                }
                Singleton._familiesByName.Add(fontFamily.Name, fontFamily);
                return fontFamily;
            }
            finally { Lock.ExitFontFactory(); }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="XFontFamily"/> class from FontFamilyInternal.
 /// </summary>
 XFontFamily(FontFamilyInternal fontFamilyInternal)
 {
     FamilyInternal = fontFamilyInternal;
 }
 internal XFontFamily(string familyName, bool createPlatformObjects)
 {
     FamilyInternal = FontFamilyInternal.GetOrCreateFromName(familyName, createPlatformObjects);
 }
Esempio n. 10
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XFontFamily"/> class.
 /// </summary>
 /// <param name="familyName">The family name of a font.</param>
 public XFontFamily(string familyName)
 {
     FamilyInternal = FontFamilyInternal.GetOrCreateFromName(familyName, true);
 }
Esempio n. 11
0
        internal static XFontFamily GetOrCreateFromWpf(WpfFontFamily wpfFontFamily)
        {
            FontFamilyInternal fontFamilyInternal = FontFamilyInternal.GetOrCreateFromWpf(wpfFontFamily);

            return(new XFontFamily(fontFamilyInternal));
        }
Esempio n. 12
0
        internal static XFontFamily GetOrCreateFromGdi(GdiFont font)
        {
            FontFamilyInternal fontFamilyInternal = FontFamilyInternal.GetOrCreateFromGdi(font.FontFamily);

            return(new XFontFamily(fontFamilyInternal));
        }
Esempio n. 13
0
 /// <summary>
 /// Initializes a new instance of the <see cref="XFontFamily"/> class from FontFamilyInternal.
 /// </summary>
 XFontFamily(FontFamilyInternal fontFamilyInternal)
 {
     FamilyInternal = fontFamilyInternal;
 }
Esempio n. 14
0
 internal static FontFamilyInternal GetOrCreateFromWpf(WpfFontFamily wpfFontFamily)
 {
     FontFamilyInternal fontFamily = new FontFamilyInternal(wpfFontFamily);
     fontFamily = FontFamilyCache.CacheOrGetFontFamily(fontFamily);
     return fontFamily;
 }
Esempio n. 15
0
 internal static FontFamilyInternal GetOrCreateFromGdi(GdiFontFamily gdiFontFamily)
 {
     try
     {
         Lock.EnterFontFactory();
         FontFamilyInternal fontFamily = new FontFamilyInternal(gdiFontFamily);
         fontFamily = FontFamilyCache.CacheOrGetFontFamily(fontFamily);
         return fontFamily;
     }
     finally { Lock.ExitFontFactory(); }
 }
Esempio n. 16
0
 internal static FontFamilyInternal GetOrCreateFromName(string familyName, bool createPlatformObject)
 {
     try
     {
         Lock.EnterFontFactory();
         FontFamilyInternal family = FontFamilyCache.GetFamilyByName(familyName);
         if (family == null)
         {
             family = new FontFamilyInternal(familyName, createPlatformObject);
             family = FontFamilyCache.CacheOrGetFontFamily(family);
         }
         return family;
     }
     finally { Lock.ExitFontFactory(); }
 }