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); }