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