public FontInfo(IntPtr hfont, string fontFamily, int fontSize, int fontWeight, AntialiasFormat antialiasFormat)
 {
     Hfont           = hfont;
     FontFamily      = fontFamily;
     FontSize        = fontSize;
     FontWeight      = fontWeight;
     AntialiasFormat = antialiasFormat;
 }
        public int RegisterFont(string fontFamily, int fontSize, int fontWeight, AntialiasFormat antialiasFormat)
        {
            IntPtr hfont = isX64 ? CalculationX64.getHfont(fontFamily, fontSize, fontWeight) : CalculationX86.getHfont(fontFamily, fontSize, fontWeight);

            if (fonts.Any(f => f.FontFamily == fontFamily && f.FontSize == fontSize && f.FontWeight == fontWeight && f.AntialiasFormat == antialiasFormat))
            {
                return(fonts.FindIndex(f => f.FontFamily == fontFamily && f.FontSize == fontSize && f.FontWeight == fontWeight && f.AntialiasFormat == antialiasFormat));
            }
            else
            {
                fonts.Add(new FontInfo(hfont, fontFamily, fontSize, fontWeight, antialiasFormat));
                return(fonts.Count - 1);
            }
        }
示例#3
0
        internal LedFont Create(string name, string systemName, IEnumerable <string> searchNames, string fontFamily, int fontSize, int fontWeight, AntialiasFormat antialiasFormat)
        {
            int fontIndex = calculatorGateway.RegisterFont(fontFamily, fontSize, fontWeight, antialiasFormat);

            int ascent = calculatorGateway.GetStringAscent(fontIndex);
            int height = calculatorGateway.GetStringHeight(fontIndex);

            return(new LedFont(name, systemName, searchNames, fontIndex, ascent, height));
        }