ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

BOOL WINAPI cdtDrawExt ( HDC  hdc,
INT  x,
INT  y,
INT  dx,
INT  dy,
INT  card,
INT  type,
COLORREF  color 
)

Definition at line 121 of file cards.c.

Referenced by cdtDraw().

{
    HDC hdcCard;
    DWORD dwRasterOp = SRCCOPY, OldBkColor;
    BOOL bSaveEdges = TRUE;
    BOOL bStretch = FALSE;

    if (type & ectSAVEEDGESMASK)
    {
        type &= ~ectSAVEEDGESMASK;
        bSaveEdges = FALSE;
    }

    if (dx != CARD_WIDTH || dy != CARD_HEIGHT)
    {
        bStretch = TRUE;
        bSaveEdges = FALSE;
    }

    switch (type)
    {
        case ectINVERTED:
            dwRasterOp = NOTSRCCOPY;
        case ectFACES:
            card = (card % 4) * 13 + (card / 4);
            break;
        case ectBACKS:
            --card;
            break;
        case ectEMPTYNOBG:
            dwRasterOp = SRCAND;
        case ectEMPTY:
            card = 52;
            break;
        case ectERASE:
            break;
        case ectREDX:
            card = 66;
            break;
        case ectGREENO:
            card = 67;
            break;
        default:
            return FALSE;
    }

    if (type == ectEMPTY || type == ectERASE)
    {
        POINT pPoint;
        HBRUSH hBrush;

        hBrush = CreateSolidBrush(color);
        GetDCOrgEx(hdc, &pPoint);
        SetBrushOrgEx(hdc, pPoint.x, pPoint.y, 0);
        SelectObject(hdc, hBrush);
        PatBlt(hdc, x, y, dx, dy, PATCOPY);
    }
    if (type != ectERASE)
    {
        hdcCard = CreateCompatibleDC(hdc);
        SelectObject(hdcCard, g_CardBitmaps[card]);
        OldBkColor = SetBkColor(hdc, (type == ectFACES) ? 0xFFFFFF : color);
        if (bSaveEdges)
        {
            COLORREF SavedPixels[12];
            SavedPixels[0] = GetPixel(hdc, x, y);
            SavedPixels[1] = GetPixel(hdc, x + 1, y);
            SavedPixels[2] = GetPixel(hdc, x, y + 1);
            SavedPixels[3] = GetPixel(hdc, x + dx - 1, y);
            SavedPixels[4] = GetPixel(hdc, x + dx - 2, y);
            SavedPixels[5] = GetPixel(hdc, x + dx - 1, y + 1);
            SavedPixels[6] = GetPixel(hdc, x, y + dy - 1);
            SavedPixels[7] = GetPixel(hdc, x + 1, y + dy - 1);
            SavedPixels[8] = GetPixel(hdc, x, y + dy - 2);
            SavedPixels[9] = GetPixel(hdc, x + dx - 1, y + dy - 1);
            SavedPixels[10] = GetPixel(hdc, x + dx - 2, y + dy - 1);
            SavedPixels[11] = GetPixel(hdc, x + dx - 1, y + dy - 2);

            BltCard(hdc, x, y, dx, dy, hdcCard, dwRasterOp, bStretch);

            SetPixel(hdc, x, y, SavedPixels[0]);
            SetPixel(hdc, x + 1, y, SavedPixels[1]);
            SetPixel(hdc, x, y + 1, SavedPixels[2]);
            SetPixel(hdc, x + dx - 1, y, SavedPixels[3]);
            SetPixel(hdc, x + dx - 2, y, SavedPixels[4]);
            SetPixel(hdc, x + dx - 1, y + 1, SavedPixels[5]);
            SetPixel(hdc, x, y + dy - 1, SavedPixels[6]);
            SetPixel(hdc, x + 1, y + dy - 1, SavedPixels[7]);
            SetPixel(hdc, x, y + dy - 2, SavedPixels[8]);
            SetPixel(hdc, x + dx - 1, y + dy - 1, SavedPixels[9]);
            SetPixel(hdc, x + dx - 2, y + dy - 1, SavedPixels[10]);
            SetPixel(hdc, x + dx - 1, y + dy - 2, SavedPixels[11]);
        }
        else
        {
            BltCard(hdc, x, y, dx, dy, hdcCard, dwRasterOp, bStretch);
        }
        SetBkColor(hdc, OldBkColor);
        DeleteDC(hdcCard);
    }

    return TRUE;
}

Generated on Sun May 27 2012 05:06:53 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.