Removed tabs.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27580 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -6,17 +6,17 @@
|
||||
// Created: 21/07/97
|
||||
// RCS-ID: $Id$
|
||||
// Copyright: (c) 1993-1998 Chris Breeze
|
||||
// Licence: wxWindows licence
|
||||
// Licence: wxWindows licence
|
||||
//---------------------------------------------------------------------------
|
||||
// Last modified: 22nd July 1998 - ported to wxWidgets 2.0
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//+-------------------------------------------------------------+
|
||||
//| Description
|
||||
//| A class for drawing playing cards.
|
||||
//| Currently assumes that the card symbols have been
|
||||
//| loaded into hbmap_symbols and the pictures for the
|
||||
//| Jack, Queen and King have been loaded into
|
||||
//| hbmap_pictures.
|
||||
//| A class for drawing playing cards.
|
||||
//| Currently assumes that the card symbols have been
|
||||
//| loaded into hbmap_symbols and the pictures for the
|
||||
//| Jack, Queen and King have been loaded into
|
||||
//| hbmap_pictures.
|
||||
//+-------------------------------------------------------------+
|
||||
|
||||
#ifdef __GNUG__
|
||||
@@ -54,64 +54,64 @@ int Card::m_width = 50;
|
||||
int Card::m_height = 70;
|
||||
|
||||
//+-------------------------------------------------------------+
|
||||
//| Card::Card() |
|
||||
//| Card::Card() |
|
||||
//+-------------------------------------------------------------+
|
||||
//| Description: |
|
||||
//| Constructor for a playing card. |
|
||||
//| Checks that the value is in the range 1..52 and then |
|
||||
//| initialises the suit, colour, pipValue and wayUp. |
|
||||
//| Description: |
|
||||
//| Constructor for a playing card. |
|
||||
//| Checks that the value is in the range 1..52 and then |
|
||||
//| initialises the suit, colour, pipValue and wayUp. |
|
||||
//+-------------------------------------------------------------+
|
||||
Card::Card(int value, WayUp way_up) :
|
||||
m_wayUp(way_up)
|
||||
m_wayUp(way_up)
|
||||
{
|
||||
if (!m_symbolBmap)
|
||||
{
|
||||
if (!m_symbolBmap)
|
||||
{
|
||||
#ifdef __WXMSW__
|
||||
m_symbolBmap = new wxBitmap(_T("CardSymbols"), wxBITMAP_TYPE_BMP_RESOURCE);
|
||||
m_symbolBmap = new wxBitmap(_T("CardSymbols"), wxBITMAP_TYPE_BMP_RESOURCE);
|
||||
#else
|
||||
m_symbolBmap = new wxBitmap(Symbols_bits, Symbols_width, Symbols_height);
|
||||
m_symbolBmap = new wxBitmap(Symbols_bits, Symbols_width, Symbols_height);
|
||||
#endif
|
||||
if (!m_symbolBmap->Ok())
|
||||
{
|
||||
::wxMessageBox(_T("Failed to load bitmap CardSymbols"), _T("Error"));
|
||||
}
|
||||
}
|
||||
if (!m_pictureBmap)
|
||||
{
|
||||
if (!m_symbolBmap->Ok())
|
||||
{
|
||||
::wxMessageBox(_T("Failed to load bitmap CardSymbols"), _T("Error"));
|
||||
}
|
||||
}
|
||||
if (!m_pictureBmap)
|
||||
{
|
||||
#ifdef __WXMSW__
|
||||
m_pictureBmap = new wxBitmap(_T("CardPictures"), wxBITMAP_TYPE_BMP_RESOURCE);
|
||||
m_pictureBmap = new wxBitmap(_T("CardPictures"), wxBITMAP_TYPE_BMP_RESOURCE);
|
||||
#else
|
||||
m_pictureBmap = new wxBitmap(Pictures);
|
||||
m_pictureBmap = new wxBitmap(Pictures);
|
||||
#endif
|
||||
if (!m_pictureBmap->Ok())
|
||||
{
|
||||
::wxMessageBox(_T("Failed to load bitmap CardPictures"), _T("Error"));
|
||||
}
|
||||
}
|
||||
if (!m_pictureBmap->Ok())
|
||||
{
|
||||
::wxMessageBox(_T("Failed to load bitmap CardPictures"), _T("Error"));
|
||||
}
|
||||
}
|
||||
|
||||
if (value >= 1 && value <= PackSize)
|
||||
{
|
||||
switch ((value - 1) / 13)
|
||||
{
|
||||
case 0:
|
||||
m_suit = clubs;
|
||||
m_colour = black;
|
||||
break;
|
||||
case 1:
|
||||
m_suit = diamonds;
|
||||
m_colour = red;
|
||||
break;
|
||||
case 2:
|
||||
m_suit = hearts;
|
||||
m_colour = red;
|
||||
break;
|
||||
case 3:
|
||||
m_suit = spades;
|
||||
m_colour = black;
|
||||
break;
|
||||
}
|
||||
m_pipValue = 1 + (value - 1) % 13;
|
||||
m_status = true;
|
||||
switch ((value - 1) / 13)
|
||||
{
|
||||
case 0:
|
||||
m_suit = clubs;
|
||||
m_colour = black;
|
||||
break;
|
||||
case 1:
|
||||
m_suit = diamonds;
|
||||
m_colour = red;
|
||||
break;
|
||||
case 2:
|
||||
m_suit = hearts;
|
||||
m_colour = red;
|
||||
break;
|
||||
case 3:
|
||||
m_suit = spades;
|
||||
m_colour = black;
|
||||
break;
|
||||
}
|
||||
m_pipValue = 1 + (value - 1) % 13;
|
||||
m_status = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -121,10 +121,10 @@ Card::Card(int value, WayUp way_up) :
|
||||
|
||||
|
||||
//+-------------------------------------------------------------+
|
||||
//| Card::SetScale() |
|
||||
//| Card::SetScale() |
|
||||
//+-------------------------------------------------------------+
|
||||
//| Description: |
|
||||
//| Scales the cards |
|
||||
//| Description: |
|
||||
//| Scales the cards |
|
||||
//+-------------------------------------------------------------+
|
||||
void Card::SetScale(double scale)
|
||||
{
|
||||
@@ -134,10 +134,10 @@ void Card::SetScale(double scale)
|
||||
}
|
||||
|
||||
//+-------------------------------------------------------------+
|
||||
//| Card::~Card() |
|
||||
//| Card::~Card() |
|
||||
//+-------------------------------------------------------------+
|
||||
//| Description: |
|
||||
//| Destructor - nothing to do at present. |
|
||||
//| Description: |
|
||||
//| Destructor - nothing to do at present. |
|
||||
//+-------------------------------------------------------------+
|
||||
Card::~Card()
|
||||
{
|
||||
@@ -145,262 +145,436 @@ Card::~Card()
|
||||
|
||||
|
||||
//+-------------------------------------------------------------+
|
||||
//| Card::Erase() |
|
||||
//| Card::Erase() |
|
||||
//+-------------------------------------------------------------+
|
||||
//| Description: |
|
||||
//| Erase the card at (x, y) by drawing a rectangle in the |
|
||||
//| background colour. |
|
||||
//| Description: |
|
||||
//| Erase the card at (x, y) by drawing a rectangle in the |
|
||||
//| background colour. |
|
||||
//+-------------------------------------------------------------+
|
||||
void Card::Erase(wxDC& dc, int x, int y)
|
||||
{
|
||||
wxPen* pen = wxThePenList->FindOrCreatePen(
|
||||
FortyApp::BackgroundColour(),
|
||||
1,
|
||||
wxSOLID
|
||||
);
|
||||
dc.SetPen(* pen);
|
||||
dc.SetBrush(FortyApp::BackgroundBrush());
|
||||
wxPen* pen = wxThePenList->FindOrCreatePen(
|
||||
FortyApp::BackgroundColour(),
|
||||
1,
|
||||
wxSOLID
|
||||
);
|
||||
dc.SetPen(* pen);
|
||||
dc.SetBrush(FortyApp::BackgroundBrush());
|
||||
dc.DrawRectangle(x, y, m_width, m_height);
|
||||
} // Card::Erase()
|
||||
|
||||
|
||||
//+-------------------------------------------------------------+
|
||||
//| Card::Draw() |
|
||||
//| Card::Draw() |
|
||||
//+-------------------------------------------------------------+
|
||||
//| Description: |
|
||||
//| Draw the card at (x, y). |
|
||||
//| If the card is facedown draw the back of the card. |
|
||||
//| If the card is faceup draw the front of the card. |
|
||||
//| Cards are not held in bitmaps, instead they are drawn |
|
||||
//| from their constituent parts when required. |
|
||||
//| hbmap_symbols contains large and small suit symbols and |
|
||||
//| pip values. These are copied to the appropriate part of |
|
||||
//| the card. Picture cards use the pictures defined in |
|
||||
//| hbmap_pictures. Note that only one picture is defined |
|
||||
//| for the Jack, Queen and King, unlike a real pack where |
|
||||
//| each suit is different. |
|
||||
//| |
|
||||
//| WARNING: |
|
||||
//| The locations of these symbols is 'hard-wired' into the |
|
||||
//| code. Editing the bitmaps or the numbers below will |
|
||||
//| result in the wrong symbols being displayed. |
|
||||
//| Description: |
|
||||
//| Draw the card at (x, y). |
|
||||
//| If the card is facedown draw the back of the card. |
|
||||
//| If the card is faceup draw the front of the card. |
|
||||
//| Cards are not held in bitmaps, instead they are drawn |
|
||||
//| from their constituent parts when required. |
|
||||
//| hbmap_symbols contains large and small suit symbols and |
|
||||
//| pip values. These are copied to the appropriate part of |
|
||||
//| the card. Picture cards use the pictures defined in |
|
||||
//| hbmap_pictures. Note that only one picture is defined |
|
||||
//| for the Jack, Queen and King, unlike a real pack where |
|
||||
//| each suit is different. |
|
||||
//| |
|
||||
//| WARNING: |
|
||||
//| The locations of these symbols is 'hard-wired' into the |
|
||||
//| code. Editing the bitmaps or the numbers below will |
|
||||
//| result in the wrong symbols being displayed. |
|
||||
//+-------------------------------------------------------------+
|
||||
void Card::Draw(wxDC& dc, int x, int y)
|
||||
{
|
||||
wxBrush backgroundBrush( dc.GetBackground() );
|
||||
dc.SetBrush(* wxWHITE_BRUSH);
|
||||
dc.SetPen(* wxBLACK_PEN);
|
||||
wxBrush backgroundBrush( dc.GetBackground() );
|
||||
dc.SetBrush(* wxWHITE_BRUSH);
|
||||
dc.SetPen(* wxBLACK_PEN);
|
||||
dc.DrawRoundedRectangle(x, y, m_width, m_height, 4);
|
||||
if (m_wayUp == facedown)
|
||||
{
|
||||
dc.SetBackground(* wxRED_BRUSH);
|
||||
dc.SetBackgroundMode(wxSOLID);
|
||||
wxBrush* brush = wxTheBrushList->FindOrCreateBrush(
|
||||
_T("BLACK"), wxCROSSDIAG_HATCH
|
||||
);
|
||||
dc.SetBrush(* brush);
|
||||
if (m_wayUp == facedown)
|
||||
{
|
||||
dc.SetBackground(* wxRED_BRUSH);
|
||||
dc.SetBackgroundMode(wxSOLID);
|
||||
wxBrush* brush = wxTheBrushList->FindOrCreateBrush(
|
||||
_T("BLACK"), wxCROSSDIAG_HATCH
|
||||
);
|
||||
dc.SetBrush(* brush);
|
||||
|
||||
dc.DrawRoundedRectangle(
|
||||
x + 4, y + 4,
|
||||
m_width - 8, m_height - 8,
|
||||
2
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
wxMemoryDC memoryDC;
|
||||
dc.DrawRoundedRectangle(
|
||||
x + 4, y + 4,
|
||||
m_width - 8, m_height - 8,
|
||||
2
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
wxMemoryDC memoryDC;
|
||||
|
||||
memoryDC.SelectObject(*m_symbolBmap);
|
||||
memoryDC.SelectObject(*m_symbolBmap);
|
||||
|
||||
// dc.SetBackgroundMode(wxTRANSPARENT);
|
||||
// dc.SetBackgroundMode(wxTRANSPARENT);
|
||||
|
||||
dc.SetTextBackground(*wxWHITE);
|
||||
switch (m_suit)
|
||||
{
|
||||
case spades:
|
||||
case clubs:
|
||||
dc.SetTextForeground(*wxBLACK);
|
||||
break;
|
||||
case diamonds:
|
||||
case hearts:
|
||||
dc.SetTextForeground(*wxRED);
|
||||
break;
|
||||
}
|
||||
dc.SetTextBackground(*wxWHITE);
|
||||
switch (m_suit)
|
||||
{
|
||||
case spades:
|
||||
case clubs:
|
||||
dc.SetTextForeground(*wxBLACK);
|
||||
break;
|
||||
case diamonds:
|
||||
case hearts:
|
||||
dc.SetTextForeground(*wxRED);
|
||||
break;
|
||||
}
|
||||
|
||||
int symsize = 11;
|
||||
int sympos = 14;
|
||||
int sympos2 = 25;
|
||||
int symdist = 5;
|
||||
int symdist2 = 6;
|
||||
int symsize = 11;
|
||||
int sympos = 14;
|
||||
int sympos2 = 25;
|
||||
int symdist = 5;
|
||||
int symdist2 = 6;
|
||||
|
||||
int pipsize,pippos,valueheight,valuewidth;
|
||||
int valuepos;
|
||||
if (m_scale > 1.2)
|
||||
{
|
||||
pipsize = symsize;
|
||||
pippos = sympos;
|
||||
valueheight = 10;
|
||||
valuewidth = 9;
|
||||
valuepos = 50;
|
||||
}
|
||||
else
|
||||
{
|
||||
pipsize = 7;
|
||||
pippos = 0;
|
||||
valueheight = 7;
|
||||
valuewidth = 6;
|
||||
valuepos = 36;
|
||||
}
|
||||
int pipsize,pippos,valueheight,valuewidth;
|
||||
int valuepos;
|
||||
if (m_scale > 1.2)
|
||||
{
|
||||
pipsize = symsize;
|
||||
pippos = sympos;
|
||||
valueheight = 10;
|
||||
valuewidth = 9;
|
||||
valuepos = 50;
|
||||
}
|
||||
else
|
||||
{
|
||||
pipsize = 7;
|
||||
pippos = 0;
|
||||
valueheight = 7;
|
||||
valuewidth = 6;
|
||||
valuepos = 36;
|
||||
}
|
||||
|
||||
// Draw the value
|
||||
dc.Blit((wxCoord)(x + m_scale*3), (wxCoord)(y + m_scale*3), valuewidth, valueheight,
|
||||
&memoryDC, valuewidth * (m_pipValue - 1), valuepos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x + m_width - m_scale*3 - valuewidth), (wxCoord)(y + m_height - valueheight - m_scale*3),
|
||||
valuewidth, valueheight,
|
||||
&memoryDC, valuewidth * (m_pipValue - 1), valuepos+valueheight, wxCOPY);
|
||||
// Draw the value
|
||||
dc.Blit((wxCoord)(x + m_scale*3),
|
||||
(wxCoord)(y + m_scale*3),
|
||||
valuewidth,
|
||||
valueheight,
|
||||
&memoryDC,
|
||||
valuewidth * (m_pipValue - 1),
|
||||
valuepos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x + m_width - m_scale*3 - valuewidth),
|
||||
(wxCoord)(y + m_height - valueheight - m_scale*3),
|
||||
valuewidth,
|
||||
valueheight,
|
||||
&memoryDC,
|
||||
valuewidth * (m_pipValue - 1),
|
||||
valuepos+valueheight,
|
||||
wxCOPY);
|
||||
|
||||
// Draw the pips
|
||||
dc.Blit((wxCoord)(x + m_scale*3 + valuewidth+2), (wxCoord)(y + m_scale*3), pipsize, pipsize,
|
||||
&memoryDC, pipsize * m_suit, pippos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x + m_width - m_scale*3-valuewidth-pipsize-2), (wxCoord)(y + m_height - pipsize - m_scale*3),
|
||||
pipsize, pipsize,
|
||||
&memoryDC, pipsize * m_suit, pipsize+pippos, wxCOPY);
|
||||
// Draw the pips
|
||||
dc.Blit((wxCoord)(x + m_scale*3 + valuewidth+2),
|
||||
(wxCoord)(y + m_scale*3),
|
||||
pipsize,
|
||||
pipsize,
|
||||
&memoryDC,
|
||||
pipsize * m_suit,
|
||||
pippos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x + m_width - m_scale*3-valuewidth-pipsize-2),
|
||||
(wxCoord)(y + m_height - pipsize - m_scale*3),
|
||||
pipsize,
|
||||
pipsize,
|
||||
&memoryDC,
|
||||
pipsize * m_suit,
|
||||
pipsize+pippos,
|
||||
wxCOPY);
|
||||
|
||||
switch (m_pipValue)
|
||||
{
|
||||
case 1:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2), (wxCoord)(y - m_scale*5 + m_height / 2), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
break;
|
||||
switch (m_pipValue)
|
||||
{
|
||||
case 1:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - m_scale*5 + m_height / 2),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
break;
|
||||
|
||||
case 3:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2), (wxCoord)(y - symdist + m_height / 2), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
case 2:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
break;
|
||||
case 3:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + m_height / 2),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
case 2:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
break;
|
||||
|
||||
case 5:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2), (wxCoord)(y - symdist + m_height / 2), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
case 4:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
break;
|
||||
case 5:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + m_height / 2),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
case 4:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
break;
|
||||
|
||||
case 8:
|
||||
dc.Blit((wxCoord)(x - symdist + 5 * m_width / 10),
|
||||
(wxCoord)(y - symdist + 5 * m_height / 8), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
case 7:
|
||||
dc.Blit((wxCoord)(x - symdist + 5 * m_width / 10),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 8), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
case 6:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 2), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 2), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
break;
|
||||
case 8:
|
||||
dc.Blit((wxCoord)(x - symdist + 5 * m_width / 10),
|
||||
(wxCoord)(y - symdist + 5 * m_height / 8),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
case 7:
|
||||
dc.Blit((wxCoord)(x - symdist + 5 * m_width / 10),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 8),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
case 6:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 2),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + m_height / 2),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
break;
|
||||
|
||||
case 10:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + 2 * m_height / 3), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
case 9:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist2 + m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist2 + 5 * m_height / 12), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 7 * m_height / 12), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
case 10:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + 2 * m_height / 3),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
case 9:
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist2 + m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist2 + 5 * m_height / 12),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 7 * m_height / 12),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist2 + m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist2 + 5 * m_height / 12), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 7 * m_height / 12), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + m_height / 3), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
break;
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
memoryDC.SelectObject(*m_pictureBmap);
|
||||
int picwidth = 40,picheight = 45;
|
||||
dc.Blit((wxCoord)(x + (m_width-picwidth)/2), (wxCoord)(y - picheight/2 + m_height/2),
|
||||
picwidth, picheight,
|
||||
&memoryDC, picwidth * (m_pipValue - 11), 0, wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist2 + m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist2 + 5 * m_height / 12),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 7 * m_height / 12),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + 3 * m_width / 4),
|
||||
(wxCoord)(y - symdist + 3 * m_height / 4),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x - symdist + m_width / 2),
|
||||
(wxCoord)(y - symdist + m_height / 3),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
break;
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
memoryDC.SelectObject(*m_pictureBmap);
|
||||
int picwidth = 40,picheight = 45;
|
||||
dc.Blit((wxCoord)(x + (m_width-picwidth)/2),
|
||||
(wxCoord)(y - picheight/2 + m_height/2),
|
||||
picwidth,
|
||||
picheight,
|
||||
&memoryDC,
|
||||
picwidth * (m_pipValue - 11),
|
||||
0,
|
||||
wxCOPY);
|
||||
|
||||
memoryDC.SelectObject(*m_symbolBmap);
|
||||
dc.Blit((wxCoord)(x + m_width-(m_width-picwidth)/2-symsize-3),(wxCoord)(y - picheight/2+m_height/2+1), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos, wxCOPY);
|
||||
dc.Blit((wxCoord)(x + (m_width-picwidth)/2+2),(wxCoord)(y + picheight/2 + m_height/2-symsize), symsize, symsize,
|
||||
&memoryDC, symsize * m_suit, sympos2, wxCOPY);
|
||||
break;
|
||||
}
|
||||
memoryDC.SelectObject(*m_symbolBmap);
|
||||
dc.Blit((wxCoord)(x + m_width-(m_width-picwidth)/2-symsize-3),
|
||||
(wxCoord)(y - picheight/2+m_height/2+1),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos,
|
||||
wxCOPY);
|
||||
dc.Blit((wxCoord)(x + (m_width-picwidth)/2+2),
|
||||
(wxCoord)(y + picheight/2 + m_height/2-symsize),
|
||||
symsize,
|
||||
symsize,
|
||||
&memoryDC,
|
||||
symsize * m_suit,
|
||||
sympos2,
|
||||
wxCOPY);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
dc.SetBackground( backgroundBrush );
|
||||
}
|
||||
dc.SetBackground( backgroundBrush );
|
||||
} // Card:Draw()
|
||||
|
||||
|
||||
//+-------------------------------------------------------------+
|
||||
//| Card::DrawNullCard() |
|
||||
//| Card::DrawNullCard() |
|
||||
//+-------------------------------------------------------------+
|
||||
//| Description: |
|
||||
//| Draws the outline of a card at (x, y). |
|
||||
//| Used to draw place holders for empty piles of cards. |
|
||||
//| Description: |
|
||||
//| Draws the outline of a card at (x, y). |
|
||||
//| Used to draw place holders for empty piles of cards. |
|
||||
//+-------------------------------------------------------------+
|
||||
void Card::DrawNullCard(wxDC& dc, int x, int y)
|
||||
{
|
||||
wxPen* pen = wxThePenList->FindOrCreatePen(FortyApp::TextColour(), 1, wxSOLID);
|
||||
dc.SetBrush(FortyApp::BackgroundBrush());
|
||||
dc.SetPen(*pen);
|
||||
dc.DrawRoundedRectangle(x, y, m_width, m_height, 4);
|
||||
wxPen* pen = wxThePenList->FindOrCreatePen(FortyApp::TextColour(), 1, wxSOLID);
|
||||
dc.SetBrush(FortyApp::BackgroundBrush());
|
||||
dc.SetPen(*pen);
|
||||
dc.DrawRoundedRectangle(x, y, m_width, m_height, 4);
|
||||
} // Card::DrawNullCard()
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user