void CodePreview::FlushTextBuf(std::vector<wchar_t>& buf, unsigned char format, int x, int y) { int numChars = (int)buf.size(); if(numChars < 1) return; HFONT font = s_normalFont; unsigned int fgColor = MetalBar::s_codePreviewFg; unsigned int bgColor = MetalBar::s_codePreviewBg; switch(format) { case FormatType_Plain: break; case FormatType_Comment: fgColor = MetalBar::s_commentColor; break; case FormatType_Highlight: bgColor = MetalBar::s_codePreviewFg; fgColor = MetalBar::s_codePreviewBg; break; case FormatType_Keyword: font = s_boldFont; break; } SetBkColor(m_paintDC, RGB_TO_COLORREF(bgColor)); SetTextColor(m_paintDC, RGB_TO_COLORREF(fgColor)); SelectObject(m_paintDC, font); RECT r = { 1, 1, m_wndWidth - 1, m_wndHeight - 1 }; ExtTextOutW(m_paintDC, x, y, ETO_CLIPPED, &r, &buf[0], numChars, 0); buf.resize(0); }
// // Add a splash of colour // COLORREF _CombineBasedOnType(int iTabType, COLORREF clrSource) { RGBQUAD source = { 0 }; source.rgbBlue = GetBValue(clrSource); source.rgbGreen = GetGValue(clrSource); source.rgbRed = GetRValue(clrSource); COLORREF clr; switch (iTabType) { case TAB_PIC: // green { RGBQUAD tint = { 15, 255, 165 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_TEXT: // cyan { RGBQUAD tint = { 255, 255, 155 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_SOUND: // orange? { RGBQUAD tint = { 255, 0, 0 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_VIEW: // blue { RGBQUAD tint = { 239, 132, 33 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_FONT: // yellow { RGBQUAD tint = { 0, 255, 255}; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_VOCAB: // flesh { RGBQUAD tint = { 162, 206, 255 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_SCRIPT: // red { RGBQUAD tint = { 25, 25, 255 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_CURSOR: // pink { RGBQUAD tint = { 172, 172, 255 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; case TAB_GAME: // grey { RGBQUAD tint = { 128, 128, 128 }; clr = RGB_TO_COLORREF(_Combine(tint, source)); } break; default: clr = clrSource; break; } return clr; }