Пример #1
0
extern  reg_set_index RegIntersect( reg_set_index s1, reg_set_index s2 )
/**********************************************************************/
{
    if( s1 == s2 ) return( s1 );
    switch( _Combine( s1, s2 ) ) {
    default:
        if( s1 == RL_NUMBER_OF_SETS ) return( s2 );
        if( s2 == RL_NUMBER_OF_SETS ) return( s1 );
        return( RL_ );
    }
}
Пример #2
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;    
}
Пример #3
0
void CColorPickerButton::_OnDraw(HDC hdc, RECT *prc, EGACOLOR color)
{
    CDC *pDC = CDC::FromHandle(hdc);
    if (pDC)
    {
        // Figure out the right color - do color 1 for now.
        RGBQUAD color1 = EGA_TO_RGBQUAD(color.color1);
        RGBQUAD color2 = EGA_TO_RGBQUAD(color.color2);

        CBitmap bm;
        if (CreateDCCompatiblePattern(color1, color2, pDC, &bm))
        {
            CBrush brushPat;
            if (brushPat.CreatePatternBrush(&bm))
            {
                CRect rcShrunk(prc->left + 1, prc->top + 1, prc->right - 1, prc->bottom - 1);
                pDC->FillRect(&rcShrunk, &brushPat);
            }
        }
       
        //int cx = RECTWIDTH(*prc) / 2;
        //int cy = RECTHEIGHT(*prc) / 2;
        //RECT rectOverlay = { prc->left + cx, prc->top + cy, prc->right, prc->bottom };
        int iModePrev = pDC->SetBkMode(TRANSPARENT);
        RGBQUAD colorCombine = _Combine(color1, color2);
        RGBQUAD colorTL = _Lighter(colorCombine);
        RGBQUAD colorBR = _Darker(colorCombine);

        // Draw an x maybe
        if (!_bOn)
        {
            /*
            RGBQUAD colorRedder = _Redden(colorCombine);
            CPen penX(PS_SOLID, 1, RGB_TO_COLORREF(colorRedder));
            HGDIOBJ hgdiObjOld = pDC->SelectObject(&penX);
            pDC->MoveTo(prc->left, prc->bottom);
            pDC->LineTo(prc->right, prc->top);
            pDC->MoveTo(prc->left, prc->top);
            pDC->LineTo(prc->right, prc->bottom);
            pDC->SelectObject(hgdiObjOld);*/
        }

        /*
        // Do highlights.
        CPen penTL(PS_SOLID, 2, RGB_TO_COLORREF(colorTL));
        HGDIOBJ hgdiObj = pDC->SelectObject(&penTL);
        pDC->MoveTo(prc->left + 1, prc->bottom - 1);
        pDC->LineTo(prc->left + 1, prc->top + 1);
        pDC->LineTo(prc->right - 1, prc->top + 1);
        CPen penBR(PS_SOLID, 2, RGB_TO_COLORREF(colorBR));
        pDC->SelectObject(&penBR);
        pDC->LineTo(prc->right -1 , prc->bottom - 1);
        pDC->LineTo(prc->left + 1, prc->bottom - 1);
        pDC->SelectObject(hgdiObj);*/

        // Draw some text.
        int iColorPrev = pDC->SetTextColor(_GetTextColor(colorCombine));
        CString text;
        GetWindowText(text);
        pDC->DrawText(text, prc, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
        pDC->SetTextColor(iColorPrev);

        CRect rcPadding(0, 0, 0, 0);
        if (_bOn)
        {
            CRect rcSrc(CPoint(0, 0), g_bitmapHighlight.GetSize());
            g_bitmapHighlight.AlphaBlendSkinParts(hdc, *prc, rcSrc, rcPadding, /*__EXT_BMP_FLAG_PREMULTIPLIED_RGB_CHANNELS |*/ CExtBitmap::__EDM_STRETCH, true, true, 0xFF);
        }
        else
        {
            CRect rcSrc(CPoint(0, 0), g_bitmapHighlightX.GetSize());
            g_bitmapHighlightX.AlphaBlendSkinParts(hdc, *prc, rcSrc, rcPadding, /*__EXT_BMP_FLAG_PREMULTIPLIED_RGB_CHANNELS |*/ CExtBitmap::__EDM_STRETCH, true, true, 0xFF);
        }

        pDC->SetBkMode(iModePrev);
    }
}