예제 #1
0
        Font IFontLibrarian.Update(FontStyle fst, FontSize fsz)
        {
            var f = _lib.lookup(_id, fst);

            byte rsz = (byte)_fsz;
            var  msk = (byte)fsz & 0b0000_1111;

            if (fsz.HasFlag(FontSize.Standard))
            {
                rsz = _lib.lookupSz(fsz);
            }
            else if (fsz.HasFlag(FontSize.RelPlus))
            {
                rsz = (byte)(((byte)_fsz) + msk);
            }
            else if (fsz.HasFlag(FontSize.RelMinus))
            {
                rsz = (byte)(((byte)_fsz) - msk);
            }

            _fsz = (FontSize)rsz;
            _fst = fst;

            return(_current = f.ToFont((byte)rsz));
        }
예제 #2
0
        public FontLibrarian(FontLibrary lib, string id, FontStyle fst, FontSize fsz)
        {
            _id  = id;
            _fst = fst;
            _fsz = fsz;
            _lib = lib;

            // Actual font entry
            var f = lib.lookup(id, fst);

            // Real size
            var rsz = (byte)lib.lookupSz(fsz);

            _current = f.ToFont(rsz);
        }