Exemple #1
0
        public GuiFont(string filePath, float size, float scaleFactor, GlyphFilterFlags filter, float yoffset, float linespacing)
        {
            try {
                Name     = Path.GetFileName(filePath);
                FilePath = filePath.FixedExpandedPath();
                Size     = size;
                Filter   = filter;
                OnDemand = Filter.HasFlag(GlyphFilterFlags.OnDemand);

                YOffset     = yoffset;
                LineSpacing = linespacing;
                if (LineSpacing < 0.01)
                {
                    LineSpacing = 1;
                }
                InitFont(scaleFactor);
            } catch (Exception ex) {
                ex.LogError();
            }
        }
        public static bool IsValid(this GlyphFilterFlags filter, char c)
        {
            //return true;
            // simple stupid but shortest and fastest solution..

            if (filter <= GlyphFilterFlags.OnDemand)
            {
                return(true);
            }

            if (filter.HasFlag(GlyphFilterFlags.Lower) && !Char.IsLower(c))
            {
                return(false);
            }
            if (filter.HasFlag(GlyphFilterFlags.Upper) && !Char.IsUpper(c))
            {
                return(false);
            }
            if (filter.HasFlag(GlyphFilterFlags.Symbol) && Char.IsLetterOrDigit(c))
            {
                return(false);
            }

            bool hasFilter = false;

            if (filter.HasFlag(GlyphFilterFlags.Punctation))
            {
                hasFilter = true;
                if (c.IsPunctation())
                {
                    return(true);
                }
            }

            if (filter.HasFlag(GlyphFilterFlags.Numeric))
            {
                hasFilter = true;
                if (Char.IsNumber(c))
                {
                    return(true);
                }
            }

            if (filter.HasFlag(GlyphFilterFlags.Alpha))
            {
                hasFilter = true;
                if (Char.IsLetter(c))
                {
                    return(true);
                }
            }

            if (filter.HasFlag(GlyphFilterFlags.Ascii))
            {
                hasFilter = true;
                if (c.ToString().Is7Bit())
                {
                    return(true);
                }
            }

            return(!hasFilter);
        }