X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/70d26c3f4ffb24d50457d405c9595fd23f9e5b7c..81ba2662b188f62ee9a04501d89ce83be1bbec54:/demos/forty/pile.cpp?ds=sidebyside diff --git a/demos/forty/pile.cpp b/demos/forty/pile.cpp index d92c1d821d..34796835c1 100644 --- a/demos/forty/pile.cpp +++ b/demos/forty/pile.cpp @@ -40,6 +40,8 @@ #include #include "card.h" #include "pile.h" +#include "forty.h" +#include "canvas.h" #include "wx/app.h" @@ -75,19 +77,18 @@ Pile::Pile(int x, int y, int dx, int dy) //+-------------------------------------------------------------+ void Pile::Redraw(wxDC& dc ) { - wxWindow *frame = wxTheApp->GetTopWindow(); + FortyFrame *frame = (FortyFrame*) wxTheApp->GetTopWindow(); wxWindow *canvas = (wxWindow *) NULL; if (frame) { - wxNode *node = frame->GetChildren().First(); - if (node) canvas = (wxWindow*)node->Data(); + canvas = frame->GetCanvas(); } if (m_topCard >= 0) { if (m_dx == 0 && m_dy == 0) { - if ((canvas) && (canvas->IsExposed(m_x,m_y,60,200))) + if ((canvas) && (canvas->IsExposed(m_x,m_y,Card::GetScale()*60,Card::GetScale()*200))) m_cards[m_topCard]->Draw(dc, m_x, m_y); } else @@ -96,16 +97,16 @@ void Pile::Redraw(wxDC& dc ) int y = m_y; for (int i = 0; i <= m_topCard; i++) { - if ((canvas) && (canvas->IsExposed(x,y,60,200))) + if ((canvas) && (canvas->IsExposed(x,y,Card::GetScale()*60,Card::GetScale()*200))) m_cards[i]->Draw(dc, x, y); - x += m_dx; - y += m_dy; + x += (int)Card::GetScale()*m_dx; + y += (int)Card::GetScale()*m_dy; } } } else { - if ((canvas) && (canvas->IsExposed(m_x,m_y,60,200))) + if ((canvas) && (canvas->IsExposed(m_x,m_y,Card::GetScale()*60,Card::GetScale()*200))) Card::DrawNullCard(dc, m_x, m_y); } } @@ -195,8 +196,8 @@ void Pile::GetTopCardPos(int& x, int& y) } else { - x = m_x + m_dx * m_topCard; - y = m_y + m_dy * m_topCard; + x = m_x + (int)Card::GetScale()*m_dx * m_topCard; + y = m_y + (int)Card::GetScale()*m_dy * m_topCard; } } @@ -249,13 +250,13 @@ Card* Pile::GetCard(int x, int y) for (int i = m_topCard; i >= 0; i--) { - if (x >= cardX && x <= cardX + CardWidth && - y >= cardY && y <= cardY + CardHeight) + if (x >= cardX && x <= cardX + Card::GetWidth() && + y >= cardY && y <= cardY + Card::GetHeight()) { return m_cards[i]; } - cardX -= m_dx; - cardY -= m_dy; + cardX -= (int)Card::GetScale()*m_dx; + cardY -= (int)Card::GetScale()*m_dy; } return 0; } @@ -274,8 +275,8 @@ void Pile::GetCardPos(Card* card, int& x, int& y) { return; } - x += m_dx; - y += m_dy; + x += (int)Card::GetScale()*m_dx; + y += (int)Card::GetScale()*m_dy; } // card not found in pile, return origin of pile @@ -290,8 +291,8 @@ bool Pile::Overlap(int x, int y) int cardY; GetTopCardPos(cardX, cardY); - if (x >= cardX - CardWidth && x <= cardX + CardWidth && - y >= cardY - CardHeight && y <= cardY + CardHeight) + if (x >= cardX - Card::GetWidth() && x <= cardX + Card::GetWidth() && + y >= cardY - Card::GetHeight() && y <= cardY + Card::GetHeight()) { return TRUE; }