summaryrefslogtreecommitdiff
path: root/noncore/games/solitaire
Unidiff
Diffstat (limited to 'noncore/games/solitaire') (more/less context) (show whitespace changes)
-rw-r--r--noncore/games/solitaire/canvascard.cpp31
-rw-r--r--noncore/games/solitaire/canvasshapes.cpp24
-rw-r--r--noncore/games/solitaire/freecellcardgame.cpp11
-rw-r--r--noncore/games/solitaire/patiencecardgame.cpp23
-rw-r--r--noncore/games/solitaire/patiencecardgame.h7
5 files changed, 90 insertions, 6 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
@@ -29,2 +29,3 @@
29#include <qbitmap.h> 29#include <qbitmap.h>
30#include <qgfx_qws.h> // Needed to get the device's width
30 31
@@ -104,2 +105,8 @@ CanvasCard::CanvasCard( eValue v, eSuit s, bool f, QCanvas *canvas ) :
104 if ( !cardsFaces ) { 105 if ( !cardsFaces ) {
106 if ( qt_screen->deviceWidth() < 200 ) {
107 cardsFaces = new QPixmap( Resource::loadPixmap( "cards/card_face_small" ) );
108 cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001_small" ) );
109 cardsChars = new QBitmap( Resource::loadBitmap( "cards/card_chars_small" ) );
110 cardsSuits = new QBitmap( Resource::loadBitmap( "cards/card_suits_small" ) );
111 } else {
105 cardsFaces = new QPixmap( Resource::loadPixmap( "cards/card_face" ) ); 112 cardsFaces = new QPixmap( Resource::loadPixmap( "cards/card_face" ) );
@@ -108,2 +115,3 @@ CanvasCard::CanvasCard( eValue v, eSuit s, bool f, QCanvas *canvas ) :
108 cardsSuits = new QBitmap( Resource::loadBitmap( "cards/card_suits" ) ); 115 cardsSuits = new QBitmap( Resource::loadBitmap( "cards/card_suits" ) );
116 }
109 cardsCharsUpsideDown = Create180RotatedBitmap( cardsChars ); 117 cardsCharsUpsideDown = Create180RotatedBitmap( cardsChars );
@@ -128,2 +136,16 @@ void CanvasCard::setCardBack(int b)
128 136
137 if ( qt_screen->deviceWidth() < 200 ) {
138 switch (cardBack) {
139 case 0:
140 cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0001_small" ) ); break;
141 case 1:
142 cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0002_small" ) ); break;
143 case 2:
144 cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0003_small" ) ); break;
145 case 3:
146 cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0004_small" ) ); break;
147 case 4:
148 cardsBacks = new QPixmap( Resource::loadPixmap( "cards/card_back0005_small" ) ); break;
149 }
150 } else {
129 switch (cardBack) { 151 switch (cardBack) {
@@ -140,2 +162,3 @@ void CanvasCard::setCardBack(int b)
140 } 162 }
163 }
141 164
@@ -183,2 +206,9 @@ void CanvasCard::draw(QPainter &painter)
183 206
207 if ( qt_screen->deviceWidth() < 200 ) {
208 p->drawPixmap( ix + 0, iy + 0, *cardsFaces );
209 p->drawPixmap( ix + 3, iy + 3, *cardsChars, 5*(getValue()-1), 0, 5, 6 );
210 p->drawPixmap( ix + 11, iy + 3, *cardsSuits, 5*(getSuit()-1), 0, 5, 6 );
211 p->drawPixmap( ix + w-3-5, iy + h-3-6, *cardsCharsUpsideDown, 5*(12-getValue()+1), 0, 5, 6 );
212 p->drawPixmap( ix + w-11-5, iy + h-3-6, *cardsSuitsUpsideDown, 5*(3-getSuit()+1), 0, 5, 6 );
213 } else {
184 p->drawPixmap( ix + 0, iy + 0, *cardsFaces ); 214 p->drawPixmap( ix + 0, iy + 0, *cardsFaces );
@@ -188,2 +218,3 @@ void CanvasCard::draw(QPainter &painter)
188 p->drawPixmap( ix + w-12-7, iy + h-5-7, *cardsSuitsUpsideDown, 7*(3-getSuit()+1), 0, 7, 8 ); 218 p->drawPixmap( ix + w-12-7, iy + h-5-7, *cardsSuitsUpsideDown, 7*(3-getSuit()+1), 0, 7, 8 );
219 }
189 220
diff --git a/noncore/games/solitaire/canvasshapes.cpp b/noncore/games/solitaire/canvasshapes.cpp
index 28d0b4e..6ccd4a4 100644
--- a/noncore/games/solitaire/canvasshapes.cpp
+++ b/noncore/games/solitaire/canvasshapes.cpp
@@ -21,2 +21,3 @@
21#include <qcanvas.h> 21#include <qcanvas.h>
22#include <qgfx_qws.h>
22#include "canvasshapes.h" 23#include "canvasshapes.h"
@@ -25,3 +26,3 @@
25CanvasRoundRect::CanvasRoundRect(int x, int y, QCanvas *canvas) : 26CanvasRoundRect::CanvasRoundRect(int x, int y, QCanvas *canvas) :
26 QCanvasRectangle( x, y, 23, 36, canvas) 27 QCanvasRectangle( x, y, ( qt_screen->deviceWidth() < 200 ) ? 20 : 23, ( qt_screen->deviceWidth() < 200 ) ? 27 : 36, canvas)
27{ 28{
@@ -41,2 +42,5 @@ void CanvasRoundRect::drawShape(QPainter &p)
41{ 42{
43 if ( qt_screen->deviceWidth() < 200 )
44 p.drawRoundRect( (int)x() + 1, (int)y() + 1, 18, 25);
45 else
42 p.drawRoundRect( (int)x(), (int)y(), 23, 36); 46 p.drawRoundRect( (int)x(), (int)y(), 23, 36);
@@ -75,2 +79,19 @@ void CanvasCircleOrCross::drawShape(QPainter &p)
75{ 79{
80 if ( qt_screen->deviceWidth() < 200 ) {
81 int x1 = (int)x(), y1 = (int)y();
82 // Green circle
83 if (circleShape == TRUE) {
84 p.setPen( QPen( QColor(0x10, 0xE0, 0x10), 1 ) );
85 p.drawEllipse( x1 - 1, y1 - 1, 17, 17);
86 p.drawEllipse( x1 - 1, y1 - 0, 17, 15);
87 p.drawEllipse( x1 + 0, y1 + 0, 15, 15);
88 p.drawEllipse( x1 + 1, y1 + 0, 13, 15);
89 p.drawEllipse( x1 + 1, y1 + 1, 13, 13);
90 // Red cross
91 } else {
92 p.setPen( QPen( QColor(0xE0, 0x10, 0x10), 4 ) );
93 p.drawLine( x1, y1, x1 + 14, y1 + 14);
94 p.drawLine( x1 + 14, y1, x1, y1 + 14);
95 }
96 } else {
76 int x1 = (int)x(), y1 = (int)y(); 97 int x1 = (int)x(), y1 = (int)y();
@@ -91,2 +112,3 @@ void CanvasCircleOrCross::drawShape(QPainter &p)
91} 112}
113}
92 114
diff --git a/noncore/games/solitaire/freecellcardgame.cpp b/noncore/games/solitaire/freecellcardgame.cpp
index e82afd4..98415aa 100644
--- a/noncore/games/solitaire/freecellcardgame.cpp
+++ b/noncore/games/solitaire/freecellcardgame.cpp
@@ -19,2 +19,3 @@
19**********************************************************************/ 19**********************************************************************/
20#include <qgfx_qws.h>
20#include "freecellcardgame.h" 21#include "freecellcardgame.h"
@@ -31,4 +32,8 @@ FreecellCardGame::FreecellCardGame(QCanvas *c, bool snap, QWidget *parent) : Can
31 32
33 int spaceBetweenPiles = ( qt_screen->deviceWidth() < 200 ) ? 21 : 28;
34 int xOrigin = ( qt_screen->deviceWidth() < 200 ) ? 0 : 5;
35 int spacing = ( qt_screen->deviceWidth() < 200 ) ? 0 : 0;
36
32 for (int i = 0; i < 4; i++) { 37 for (int i = 0; i < 4; i++) {
33 freecellPiles[i] = new FreecellFreecellPile( 5 + i * 28, 10, canvas() ); 38 freecellPiles[i] = new FreecellFreecellPile( xOrigin + i * spaceBetweenPiles, 10, canvas() );
34 addCardPile(freecellPiles[i]); 39 addCardPile(freecellPiles[i]);
@@ -36,3 +41,3 @@ FreecellCardGame::FreecellCardGame(QCanvas *c, bool snap, QWidget *parent) : Can
36 for (int i = 0; i < 4; i++) { 41 for (int i = 0; i < 4; i++) {
37 discardPiles[i] = new FreecellDiscardPile( 125 + i * 28, 10, canvas() ); 42 discardPiles[i] = new FreecellDiscardPile( xOrigin + spacing + 6 + (i + 4) * spaceBetweenPiles, 10, canvas() );
38 addCardPile(discardPiles[i]); 43 addCardPile(discardPiles[i]);
@@ -40,3 +45,3 @@ FreecellCardGame::FreecellCardGame(QCanvas *c, bool snap, QWidget *parent) : Can
40 for (int i = 0; i < 8; i++) { 45 for (int i = 0; i < 8; i++) {
41 workingPiles[i] = new FreecellWorkingPile( 10 + i * 28, 50, canvas() ); 46 workingPiles[i] = new FreecellWorkingPile( xOrigin + spacing + 2 + i * spaceBetweenPiles, 50, canvas() );
42 addCardPile(workingPiles[i]); 47 addCardPile(workingPiles[i]);
diff --git a/noncore/games/solitaire/patiencecardgame.cpp b/noncore/games/solitaire/patiencecardgame.cpp
index 5a9326a..1501d2f 100644
--- a/noncore/games/solitaire/patiencecardgame.cpp
+++ b/noncore/games/solitaire/patiencecardgame.cpp
@@ -19,2 +19,3 @@
19**********************************************************************/ 19**********************************************************************/
20#include <qgfx_qws.h>
20#include "patiencecardgame.h" 21#include "patiencecardgame.h"
@@ -30,2 +31,17 @@ PatienceCardGame::PatienceCardGame(QCanvas *c, bool snap, QWidget *parent) : Can
30 31
32 if ( qt_screen->deviceWidth() < 200 ) {
33 circleCross = new CanvasCircleOrCross( 7, 16, canvas() );
34 rectangle = new CanvasRoundRect( 30, 10, canvas() );
35
36 for (int i = 0; i < 4; i++) {
37 discardPiles[i] = new PatienceDiscardPile( 78 + i * 23, 10, canvas() );
38 addCardPile(discardPiles[i]);
39 }
40 for (int i = 0; i < 7; i++) {
41 workingPiles[i] = new PatienceWorkingPile( 5 + i * 23, 50, canvas() );
42 addCardPile(workingPiles[i]);
43 }
44 faceDownDealingPile = new PatienceFaceDownDeck( 5, 10, canvas() );
45 faceUpDealingPile = new PatienceFaceUpDeck( 30, 10, canvas() );
46 } else {
31 circleCross = new CanvasCircleOrCross( 7, 18, canvas() ); 47 circleCross = new CanvasCircleOrCross( 7, 18, canvas() );
@@ -44,2 +60,3 @@ PatienceCardGame::PatienceCardGame(QCanvas *c, bool snap, QWidget *parent) : Can
44} 60}
61}
45 62
@@ -175,2 +192,5 @@ bool PatienceCardGame::mousePressCard( Card *card, QPoint p )
175 192
193 if ( qt_screen->deviceWidth() < 200 )
194 item->flipTo( 30, (int)item->y() );
195 else
176 item->flipTo( 35, (int)item->y() ); 196 item->flipTo( 35, (int)item->y() );
@@ -197,2 +217,5 @@ bool PatienceCardGame::mousePressCard( Card *card, QPoint p )
197 217
218 if ( qt_screen->deviceWidth() < 200 )
219 item->flipTo( 30, (int)item->y(), 8 * flipped );
220 else
198 item->flipTo( 35, (int)item->y(), 8 * flipped ); 221 item->flipTo( 35, (int)item->y(), 8 * flipped );
diff --git a/noncore/games/solitaire/patiencecardgame.h b/noncore/games/solitaire/patiencecardgame.h
index c4f6c48..0d0e3d5 100644
--- a/noncore/games/solitaire/patiencecardgame.h
+++ b/noncore/games/solitaire/patiencecardgame.h
@@ -27,2 +27,3 @@
27#include <qcanvas.h> 27#include <qcanvas.h>
28#include <qgfx_qws.h>
28// #include "canvascardshapes.h" 29// #include "canvascardshapes.h"
@@ -132,2 +133,3 @@ public:
132 if ( newTopCard->isFacing() == FALSE ) { 133 if ( newTopCard->isFacing() == FALSE ) {
134 int offsetDown = ( qt_screen->deviceWidth() < 200 ) ? 9 : 13;
133 // correct the position taking in to account the card is not 135 // correct the position taking in to account the card is not
@@ -136,3 +138,3 @@ public:
136 newTopCard->flipTo( top.x(), top.y() ); 138 newTopCard->flipTo( top.x(), top.y() );
137 top = QPoint( top.x(), top.y() + 13 ); 139 top = QPoint( top.x(), top.y() + offsetDown );
138 } 140 }
@@ -147,3 +149,4 @@ public:
147 if (card->isFacing()) { 149 if (card->isFacing()) {
148 y += 13; 150 int offsetDown = ( qt_screen->deviceWidth() < 200 ) ? 9 : 13;
151 y += offsetDown;
149 } else { 152 } else {