Diffstat (limited to 'noncore/games/solitaire/canvascardwindow.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/solitaire/canvascardwindow.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/noncore/games/solitaire/canvascardwindow.cpp b/noncore/games/solitaire/canvascardwindow.cpp index 4c365a5..e1c021e 100644 --- a/noncore/games/solitaire/canvascardwindow.cpp +++ b/noncore/games/solitaire/canvascardwindow.cpp | |||
@@ -12,24 +12,26 @@ | |||
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. | 14 | ** See http://www.trolltech.com/gpl/ for GPL licensing information. |
15 | ** | 15 | ** |
16 | ** Contact info@trolltech.com if any conditions of this licensing are | 16 | ** Contact info@trolltech.com if any conditions of this licensing are |
17 | ** not clear to you. | 17 | ** not clear to you. |
18 | ** | 18 | ** |
19 | **********************************************************************/ | 19 | **********************************************************************/ |
20 | 20 | ||
21 | #include "canvascardwindow.h" | 21 | #include "canvascardwindow.h" |
22 | #include "patiencecardgame.h" | 22 | #include "patiencecardgame.h" |
23 | #include "freecellcardgame.h" | 23 | #include "freecellcardgame.h" |
24 | #include "chicanecardgame.h" | ||
25 | #include "harpcardgame.h" | ||
24 | 26 | ||
25 | #include <qpe/resource.h> | 27 | #include <qpe/resource.h> |
26 | 28 | ||
27 | #include <qmainwindow.h> | 29 | #include <qmainwindow.h> |
28 | #include <qpopupmenu.h> | 30 | #include <qpopupmenu.h> |
29 | #include <qstyle.h> | 31 | #include <qstyle.h> |
30 | 32 | ||
31 | 33 | ||
32 | CanvasCardWindow::CanvasCardWindow(QWidget* parent, const char* name, WFlags f) : | 34 | CanvasCardWindow::CanvasCardWindow(QWidget* parent, const char* name, WFlags f) : |
33 | QMainWindow(parent, name, f), canvas(230, 260), snapOn(TRUE), cardBack(4), gameType(0), | 35 | QMainWindow(parent, name, f), canvas(230, 260), snapOn(TRUE), cardBack(4), gameType(0), |
34 | cardGame(NULL) | 36 | cardGame(NULL) |
35 | { | 37 | { |
@@ -50,46 +52,50 @@ CanvasCardWindow::CanvasCardWindow(QWidget* parent, const char* name, WFlags f) | |||
50 | canvas.setAdvancePeriod(70); | 52 | canvas.setAdvancePeriod(70); |
51 | #else | 53 | #else |
52 | canvas.setAdvancePeriod(30); | 54 | canvas.setAdvancePeriod(30); |
53 | #endif | 55 | #endif |
54 | 56 | ||
55 | 57 | ||
56 | #ifdef _PATIENCE_USE_ACCELS_ | 58 | #ifdef _PATIENCE_USE_ACCELS_ |
57 | QPEMenuBar* menu = menuBar(); | 59 | QPEMenuBar* menu = menuBar(); |
58 | 60 | ||
59 | QPopupMenu* file = new QPopupMenu; | 61 | QPopupMenu* file = new QPopupMenu; |
60 | file->insertItem(tr("Patience"), this, SLOT(initPatience()), CTRL+Key_F); | 62 | file->insertItem(tr("Patience"), this, SLOT(initPatience()), CTRL+Key_F); |
61 | file->insertItem(tr("Freecell"), this, SLOT(initFreecell()), CTRL+Key_F); | 63 | file->insertItem(tr("Freecell"), this, SLOT(initFreecell()), CTRL+Key_F); |
64 | file->insertItem(tr("Chicane"), this, SLOT(initChicane()), CTRL+Key_F); | ||
65 | file->insertItem(tr("Harp"), this, SLOT(initHarp()), CTRL+Key_F); | ||
62 | menu->insertItem(tr("&Game"), file); | 66 | menu->insertItem(tr("&Game"), file); |
63 | 67 | ||
64 | menu->insertSeparator(); | 68 | menu->insertSeparator(); |
65 | 69 | ||
66 | settings = new QPopupMenu; | 70 | settings = new QPopupMenu; |
67 | settings->insertItem(tr("&Change Card Backs"), this, SLOT(changeCardBacks()), Key_F2); | 71 | settings->insertItem(tr("&Change Card Backs"), this, SLOT(changeCardBacks()), Key_F2); |
68 | snap_id = settings->insertItem(tr("&Snap To Position"), this, SLOT(snapToggle()), Key_F3); | 72 | snap_id = settings->insertItem(tr("&Snap To Position"), this, SLOT(snapToggle()), Key_F3); |
69 | settings->setCheckable(TRUE); | 73 | settings->setCheckable(TRUE); |
70 | menu->insertItem(tr("&Settings"),settings); | 74 | menu->insertItem(tr("&Settings"),settings); |
71 | 75 | ||
72 | menu->insertSeparator(); | 76 | menu->insertSeparator(); |
73 | 77 | ||
74 | QPopupMenu* help = new QPopupMenu; | 78 | QPopupMenu* help = new QPopupMenu; |
75 | help->insertItem(tr("&About"), this, SLOT(help()), Key_F1); | 79 | help->insertItem(tr("&About"), this, SLOT(help()), Key_F1); |
76 | help->setItemChecked(dbf_id, TRUE); | 80 | help->setItemChecked(dbf_id, TRUE); |
77 | menu->insertItem(tr("&Help"),help); | 81 | menu->insertItem(tr("&Help"),help); |
78 | #else | 82 | #else |
79 | QMenuBar* menu = menuBar(); | 83 | QMenuBar* menu = menuBar(); |
80 | 84 | ||
81 | QPopupMenu* file = new QPopupMenu; | 85 | QPopupMenu* file = new QPopupMenu; |
82 | file->insertItem(tr("Patience"), this, SLOT(initPatience())); | 86 | file->insertItem(tr("Patience"), this, SLOT(initPatience())); |
83 | file->insertItem(tr("Freecell"), this, SLOT(initFreecell())); | 87 | file->insertItem(tr("Freecell"), this, SLOT(initFreecell())); |
88 | file->insertItem(tr("Chicane"), this, SLOT(initChicane())); | ||
89 | file->insertItem(tr("Harp"), this, SLOT(initHarp())); | ||
84 | menu->insertItem(tr("Play"), file); | 90 | menu->insertItem(tr("Play"), file); |
85 | 91 | ||
86 | menu->insertSeparator(); | 92 | menu->insertSeparator(); |
87 | 93 | ||
88 | settings = new QPopupMenu; | 94 | settings = new QPopupMenu; |
89 | settings->setCheckable(TRUE); | 95 | settings->setCheckable(TRUE); |
90 | settings->insertItem(tr("Change Card Backs"), this, SLOT(changeCardBacks())); | 96 | settings->insertItem(tr("Change Card Backs"), this, SLOT(changeCardBacks())); |
91 | snap_id = settings->insertItem(tr("Snap To Position"), this, SLOT(snapToggle())); | 97 | snap_id = settings->insertItem(tr("Snap To Position"), this, SLOT(snapToggle())); |
92 | QString m; | 98 | QString m; |
93 | 99 | ||
94 | drawId = settings->insertItem(tr("Turn One Card"), this, SLOT(drawnToggle())); | 100 | drawId = settings->insertItem(tr("Turn One Card"), this, SLOT(drawnToggle())); |
95 | menu->insertItem(tr("Settings"),settings); | 101 | menu->insertItem(tr("Settings"),settings); |
@@ -109,24 +115,40 @@ CanvasCardWindow::CanvasCardWindow(QWidget* parent, const char* name, WFlags f) | |||
109 | cardGame->setNumberToDraw(drawThree ? 3 : 1); | 115 | cardGame->setNumberToDraw(drawThree ? 3 : 1); |
110 | setCaption(tr("Patience")); | 116 | setCaption(tr("Patience")); |
111 | setCentralWidget(cardGame); | 117 | setCentralWidget(cardGame); |
112 | cardGame->readConfig( cfg ); | 118 | cardGame->readConfig( cfg ); |
113 | setCardBacks(); | 119 | setCardBacks(); |
114 | } else if ( gameType == 1 ) { | 120 | } else if ( gameType == 1 ) { |
115 | cardGame = new FreecellCardGame( &canvas, snapOn, this ); | 121 | cardGame = new FreecellCardGame( &canvas, snapOn, this ); |
116 | setCaption(tr("Freecell")); | 122 | setCaption(tr("Freecell")); |
117 | setCentralWidget(cardGame); | 123 | setCentralWidget(cardGame); |
118 | //cardGame->newGame(); // Until we know how to handle reading freecell config | 124 | //cardGame->newGame(); // Until we know how to handle reading freecell config |
119 | cardGame->readConfig( cfg ); | 125 | cardGame->readConfig( cfg ); |
120 | setCardBacks(); | 126 | setCardBacks(); |
127 | } else if ( gameType == 2 ) { | ||
128 | cardGame = new ChicaneCardGame( &canvas, snapOn, this ); | ||
129 | cardGame->setNumberToDraw(1); | ||
130 | setCaption(tr("Chicane")); | ||
131 | setCentralWidget(cardGame); | ||
132 | //cardGame->newGame(); // Until we know how to handle reading freecell config | ||
133 | cardGame->readConfig( cfg ); | ||
134 | setCardBacks(); | ||
135 | } else if ( gameType == 3 ) { | ||
136 | cardGame = new HarpCardGame( &canvas, snapOn, this ); | ||
137 | cardGame->setNumberToDraw(1); | ||
138 | setCaption(tr("Harp")); | ||
139 | setCentralWidget(cardGame); | ||
140 | //cardGame->newGame(); // Until we know how to handle reading freecell config | ||
141 | cardGame->readConfig( cfg ); | ||
142 | setCardBacks(); | ||
121 | } else { | 143 | } else { |
122 | // Probably there isn't a config file or it is broken | 144 | // Probably there isn't a config file or it is broken |
123 | // Start a new game | 145 | // Start a new game |
124 | initPatience(); | 146 | initPatience(); |
125 | } | 147 | } |
126 | 148 | ||
127 | updateDraw(); | 149 | updateDraw(); |
128 | } | 150 | } |
129 | 151 | ||
130 | 152 | ||
131 | CanvasCardWindow::~CanvasCardWindow() | 153 | CanvasCardWindow::~CanvasCardWindow() |
132 | { | 154 | { |
@@ -172,24 +194,55 @@ void CanvasCardWindow::initFreecell() | |||
172 | if ( cardGame ) { | 194 | if ( cardGame ) { |
173 | delete cardGame; | 195 | delete cardGame; |
174 | } | 196 | } |
175 | cardGame = new FreecellCardGame( &canvas, snapOn, this ); | 197 | cardGame = new FreecellCardGame( &canvas, snapOn, this ); |
176 | gameType = 1; | 198 | gameType = 1; |
177 | setCaption(tr("Freecell")); | 199 | setCaption(tr("Freecell")); |
178 | setCentralWidget(cardGame); | 200 | setCentralWidget(cardGame); |
179 | cardGame->newGame(); | 201 | cardGame->newGame(); |
180 | setCardBacks(); | 202 | setCardBacks(); |
181 | } | 203 | } |
182 | 204 | ||
183 | 205 | ||
206 | void CanvasCardWindow::initChicane() | ||
207 | { | ||
208 | // Create New Game | ||
209 | if ( cardGame ) { | ||
210 | delete cardGame; | ||
211 | } | ||
212 | cardGame = new ChicaneCardGame( &canvas, snapOn, this ); | ||
213 | cardGame->setNumberToDraw(1); | ||
214 | gameType = 2; | ||
215 | setCaption(tr("Chicane")); | ||
216 | setCentralWidget(cardGame); | ||
217 | cardGame->newGame(); | ||
218 | setCardBacks(); | ||
219 | } | ||
220 | |||
221 | void CanvasCardWindow::initHarp() | ||
222 | { | ||
223 | // Create New Game | ||
224 | if ( cardGame ) { | ||
225 | delete cardGame; | ||
226 | } | ||
227 | cardGame = new HarpCardGame( &canvas, snapOn, this ); | ||
228 | cardGame->setNumberToDraw(1); | ||
229 | gameType = 3; | ||
230 | setCaption(tr("Harp")); | ||
231 | setCentralWidget(cardGame); | ||
232 | cardGame->newGame(); | ||
233 | setCardBacks(); | ||
234 | } | ||
235 | |||
236 | |||
184 | void CanvasCardWindow::snapToggle() | 237 | void CanvasCardWindow::snapToggle() |
185 | { | 238 | { |
186 | snapOn = !snapOn; | 239 | snapOn = !snapOn; |
187 | settings->setItemChecked(snap_id, snapOn); | 240 | settings->setItemChecked(snap_id, snapOn); |
188 | cardGame->toggleSnap(); | 241 | cardGame->toggleSnap(); |
189 | } | 242 | } |
190 | 243 | ||
191 | 244 | ||
192 | void CanvasCardWindow::drawnToggle() | 245 | void CanvasCardWindow::drawnToggle() |
193 | { | 246 | { |
194 | cardGame->toggleCardsDrawn(); | 247 | cardGame->toggleCardsDrawn(); |
195 | updateDraw(); | 248 | updateDraw(); |