Esempio n. 1
0
        private FontFamily GetFontFamily(FontAndColorsResourceKey key)
        {
            const __FCSTORAGEFLAGS flags = __FCSTORAGEFLAGS.FCSF_LOADDEFAULTS |
                                           __FCSTORAGEFLAGS.FCSF_NOAUTOCOLORS;

            fncStorage.OpenCategory(key.Category, (uint)flags);
            try {
                var fontInfos = new FontInfo[1];
                if (fncStorage.GetFont(null, fontInfos) != VSConstants.S_OK)
                {
                    return(null);
                }

                if (fontInfos[0].bFaceNameValid == 1)
                {
                    return(new FontFamily(fontInfos[0].bstrFaceName));
                }

                return(null);
            } finally {
                fncStorage.CloseCategory();
            }
        }
Esempio n. 2
0
        private uint GetRgbaColorValue(FontAndColorsResourceKey key)
        {
            const __FCSTORAGEFLAGS flags = __FCSTORAGEFLAGS.FCSF_LOADDEFAULTS |
                                           __FCSTORAGEFLAGS.FCSF_NOAUTOCOLORS;

            fncStorage.OpenCategory(key.Category, (uint)flags);
            try {
                var itemInfos = new ColorableItemInfo[1];
                if (fncStorage.GetItem(key.Name, itemInfos) != VSConstants.S_OK)
                {
                    return(0xFF000000);
                }

                uint color;
                switch (key.KeyType)
                {
                case FontAndColorsResourceKeyType.ForegroundColor:
                case FontAndColorsResourceKeyType.ForegroundBrush:
                    color = itemInfos[0].crForeground;
                    break;

                case FontAndColorsResourceKeyType.BackgroundColor:
                case FontAndColorsResourceKeyType.BackgroundBrush:
                    color = itemInfos[0].crBackground;
                    break;

                default:
                    color = 0;
                    break;
                }

                color |= 0xFF000000;
                return(color);
            } finally {
                fncStorage.CloseCategory();
            }
        }
Esempio n. 3
0
        private double GetFontSize(FontAndColorsResourceKey key)
        {
            const __FCSTORAGEFLAGS flags = __FCSTORAGEFLAGS.FCSF_LOADDEFAULTS |
                                           __FCSTORAGEFLAGS.FCSF_NOAUTOCOLORS;
            const double defaultFontSize = 9;

            fncStorage.OpenCategory(key.Category, (uint)flags);
            try {
                var fontInfos = new FontInfo[1];
                if (fncStorage.GetFont(null, fontInfos) != VSConstants.S_OK)
                {
                    return(defaultFontSize);
                }

                if (fontInfos[0].bPointSizeValid == 1)
                {
                    return(FontUtils.FontSizeFromPointSize(fontInfos[0].wPointSize));
                }

                return(defaultFontSize);
            } finally {
                fncStorage.CloseCategory();
            }
        }