void CBarShader::DrawPreview(CDC* dc, int iLeft, int iTop, UINT previewLevel) //Cax2 aqua bar { m_bIsPreview=true; m_used3dlevel = previewLevel; BuildModifiers(); Draw( dc, iLeft, iTop, (previewLevel==0)); m_bIsPreview=false; }
void CBarShader::SetHeight(uint32_t height) { if(m_iHeight != height) { m_iHeight = height; BuildModifiers(); } }
void CBarShader::FillRect(CDC& dc, LPCRECT rectSpan, COLORREF crColor) { if(!crColor) dc.FillSolidRect(rectSpan, crColor); else { if (m_pdblModifiers == NULL) BuildModifiers(); double dblRed = GetRValue(crColor), dblGreen = GetGValue(crColor), dblBlue = GetBValue(crColor); double dAdd, dMod; if (m_used3dlevel > 5) //Cax2 aqua bar { dMod = 1.0 - .025 * (256 - m_used3dlevel); //variable central darkness - from 97.5% to 87.5% of the original colour... dAdd = 255; dblRed = dMod * dblRed - dAdd; dblGreen = dMod * dblGreen - dAdd; dblBlue = dMod * dblBlue - dAdd; } else dAdd = 0; RECT rect; int iTop = rectSpan->top, iBot = rectSpan->bottom; double *pdCurr = m_pdblModifiers, *pdLimit = pdCurr + HALF(m_iHeight); rect.right = rectSpan->right; rect.left = rectSpan->left; for (; pdCurr < pdLimit; pdCurr++) { crColor = RGB( static_cast<int>(dAdd + dblRed * *pdCurr), static_cast<int>(dAdd + dblGreen * *pdCurr), static_cast<int>(dAdd + dblBlue * *pdCurr) ); rect.top = iTop++; rect.bottom = iTop; dc.FillSolidRect(&rect, crColor); rect.bottom = iBot--; rect.top = iBot; // Fast way to fill, background color is already set inside previous FillSolidRect dc.FillSolidRect(&rect, crColor); } } }
void CBarShader::FillRect(CDC *dc, LPRECT rectSpan, float fRed, float fGreen, float fBlue, bool bFlat) { if(bFlat) { COLORREF color = RGB((int)(fRed + .5f), (int)(fGreen + .5f), (int)(fBlue + .5f)); //Xman Code Improvement: FillSolidRect /* dc->FillRect(rectSpan, &CBrush(color)); */ dc->FillSolidRect(rectSpan, color); //Xman end } else { if (m_Modifiers == NULL || (m_used3dlevel!=thePrefs.Get3DDepth() && !m_bIsPreview) ) BuildModifiers(); RECT rect = *rectSpan; int iTop = rect.top; int iBot = rect.bottom; int iMax = HALF(m_iHeight); for(int i = 0; i < iMax; i++) { //Xman Code Improvement: FillSolidRect /* CBrush cbNew(RGB((int)(fRed * m_Modifiers[i] + .5f), (int)(fGreen * m_Modifiers[i] + .5f), (int)(fBlue * m_Modifiers[i] + .5f))); */ const COLORREF crNew = RGB((int)(fRed * m_Modifiers[i] + .5f), (int)(fGreen * m_Modifiers[i] + .5f), (int)(fBlue * m_Modifiers[i] + .5f)); //Xman end rect.top = iTop + i; rect.bottom = iTop + i + 1; //Xman Code Improvement: FillSolidRect /* dc->FillRect(&rect, &cbNew); */ dc->FillSolidRect(&rect, crNew); //Xman end rect.top = iBot - i - 1; rect.bottom = iBot - i; //Xman Code Improvement: FillSolidRect /* dc->FillRect(&rect, &cbNew); */ dc->FillSolidRect(&rect, crNew); //Xman end } } }