Diffstat (limited to 'noncore/games/solitaire/canvascard.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/games/solitaire/canvascard.cpp | 71 |
1 files changed, 51 insertions, 20 deletions
diff --git a/noncore/games/solitaire/canvascard.cpp b/noncore/games/solitaire/canvascard.cpp index ae3c859..7c4a5ba 100644 --- a/noncore/games/solitaire/canvascard.cpp +++ b/noncore/games/solitaire/canvascard.cpp @@ -24,12 +24,13 @@ #include <qpe/resource.h> #include <qpainter.h> #include <qimage.h> #include <qpaintdevice.h> #include <qbitmap.h> +#include <qgfx_qws.h> // Needed to get the device's width #include <math.h> #if defined( QT_QWS_CASSIOPEIA ) #define SLOW_HARDWARE #endif @@ -99,16 +100,23 @@ QBitmap *CanvasCard::cardsSuitsUpsideDown = NULL; CanvasCard::CanvasCard( eValue v, eSuit s, bool f, QCanvas *canvas ) : Card(v, s, f), QCanvasRectangle( 0, 0, 1, 1, canvas ), cardBack(1), scaleX(1.0), scaleY(1.0) { if ( !cardsFaces ) { - cardsFaces = new QPixmap( Resource::loadPixmap( "cards/card_face" ) ); - cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001" ) ); - cardsChars = new QBitmap( Resource::loadBitmap( "cards/card_chars" ) ); - cardsSuits = new QBitmap( Resource::loadBitmap( "cards/card_suits" ) ); + if ( qt_screen->deviceWidth() < 200 ) { + cardsFaces = new QPixmap( Resource::loadPixmap( "cards/card_face_small" ) ); + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001_small" ) ); + cardsChars = new QBitmap( Resource::loadBitmap( "cards/card_chars_small" ) ); + cardsSuits = new QBitmap( Resource::loadBitmap( "cards/card_suits_small" ) ); + } else { + cardsFaces = new QPixmap( Resource::loadPixmap( "cards/card_face" ) ); + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001" ) ); + cardsChars = new QBitmap( Resource::loadBitmap( "cards/card_chars" ) ); + cardsSuits = new QBitmap( Resource::loadBitmap( "cards/card_suits" ) ); + } cardsCharsUpsideDown = Create180RotatedBitmap( cardsChars ); cardsSuitsUpsideDown = Create180RotatedBitmap( cardsSuits ); } xOff = cardsFaces->width() / 2; yOff = cardsFaces->height() / 2; setSize( cardsFaces->width(), cardsFaces->height() ); @@ -123,23 +131,38 @@ void CanvasCard::setCardBack(int b) cardBack = b; if ( cardsBacks ) delete cardsBacks; - switch (cardBack) { - case 0: - cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001" ) ); break; - case 1: - cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0002" ) ); break; - case 2: - cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0003" ) ); break; - case 3: - cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0004" ) ); break; - case 4: - cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0005" ) ); break; + if ( qt_screen->deviceWidth() < 200 ) { + switch (cardBack) { + case 0: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001_small" ) ); break; + case 1: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0002_small" ) ); break; + case 2: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0003_small" ) ); break; + case 3: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0004_small" ) ); break; + case 4: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0005_small" ) ); break; + } + } else { + switch (cardBack) { + case 0: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001" ) ); break; + case 1: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0002" ) ); break; + case 2: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0003" ) ); break; + case 3: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0004" ) ); break; + case 4: + cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0005" ) ); break; + } } if ( !isFacing() ) redraw(); } } @@ -178,17 +201,25 @@ void CanvasCard::draw(QPainter &painter) if ( isRed() == TRUE ) p->setPen( QColor( 0xFF, 0, 0 ) ); else p->setPen( QColor( 0, 0, 0 ) ); - p->drawPixmap( ix + 0, iy + 0, *cardsFaces ); - p->drawPixmap( ix + 4, iy + 4, *cardsChars, 7*(getValue()-1), 0, 7, 7 ); - p->drawPixmap( ix + 12, iy + 4, *cardsSuits, 7*(getSuit()-1), 0, 7, 8 ); - p->drawPixmap( ix + w-4-7, iy + h-4-7, *cardsCharsUpsideDown, 7*(12-getValue()+1), 0, 7, 7 ); - p->drawPixmap( ix + w-12-7, iy + h-5-7, *cardsSuitsUpsideDown, 7*(3-getSuit()+1), 0, 7, 8 ); + if ( qt_screen->deviceWidth() < 200 ) { + p->drawPixmap( ix + 0, iy + 0, *cardsFaces ); + p->drawPixmap( ix + 3, iy + 3, *cardsChars, 5*(getValue()-1), 0, 5, 6 ); + p->drawPixmap( ix + 11, iy + 3, *cardsSuits, 5*(getSuit()-1), 0, 5, 6 ); + p->drawPixmap( ix + w-3-5, iy + h-3-6, *cardsCharsUpsideDown, 5*(12-getValue()+1), 0, 5, 6 ); + p->drawPixmap( ix + w-11-5, iy + h-3-6, *cardsSuitsUpsideDown, 5*(3-getSuit()+1), 0, 5, 6 ); + } else { + p->drawPixmap( ix + 0, iy + 0, *cardsFaces ); + p->drawPixmap( ix + 4, iy + 4, *cardsChars, 7*(getValue()-1), 0, 7, 7 ); + p->drawPixmap( ix + 12, iy + 4, *cardsSuits, 7*(getSuit()-1), 0, 7, 8 ); + p->drawPixmap( ix + w-4-7, iy + h-4-7, *cardsCharsUpsideDown, 7*(12-getValue()+1), 0, 7, 7 ); + p->drawPixmap( ix + w-12-7, iy + h-5-7, *cardsSuitsUpsideDown, 7*(3-getSuit()+1), 0, 7, 8 ); + } } else { p->drawPixmap( ix, iy, *cardsBacks ); } |