summaryrefslogtreecommitdiffstats
path: root/pacman-c++/common/sceneholder.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'pacman-c++/common/sceneholder.cpp')
-rw-r--r--pacman-c++/common/sceneholder.cpp60
1 files changed, 37 insertions, 23 deletions
diff --git a/pacman-c++/common/sceneholder.cpp b/pacman-c++/common/sceneholder.cpp
index bd9b01b..d429445 100644
--- a/pacman-c++/common/sceneholder.cpp
+++ b/pacman-c++/common/sceneholder.cpp
@@ -23,7 +23,7 @@ SceneHolder::SceneHolder(QObject *parent)
23void SceneHolder::reset() 23void SceneHolder::reset()
24{ 24{
25 processDelayedItems(); 25 processDelayedItems();
26 showEatingText(false); 26 hideOverlayText();
27 27
28 /* remove actors from scene so they don't get deleted during clear */ 28 /* remove actors from scene so they don't get deleted during clear */
29 foreach(Actor *actor, m_actors) 29 foreach(Actor *actor, m_actors)
@@ -272,15 +272,22 @@ QList<Color::Color> &SceneHolder::eatingOrder()
272 return m_eatingorder; 272 return m_eatingorder;
273} 273}
274 274
275void SceneHolder::showEatingText(bool show) 275void SceneHolder::hideOverlayText()
276{ 276{
277 if (!show) 277 if (m_overlayText->scene() == this)
278 { 278 removeItem(m_overlayText);
279 if (m_overlayText->scene() == this) 279}
280 removeItem(m_overlayText); 280
281 return; 281void SceneHolder::centerOverlayText(unsigned int lines)
282 } 282{
283 QFontMetrics metrics(m_overlayText->font());
284 m_overlayText->setPos((width() - m_overlayText->textWidth()) / 2, (height() - metrics.height() * lines) / 2);
285 m_overlayText->setZValue(100);
286}
283 287
288void SceneHolder::showEatingText()
289{
290 hideOverlayText();
284 m_overlayText->setDefaultTextColor(Qt::black); 291 m_overlayText->setDefaultTextColor(Qt::black);
285 QString text = QString( 292 QString text = QString(
286 "<div style=\"background-color: gray;\" align=\"center\">" 293 "<div style=\"background-color: gray;\" align=\"center\">"
@@ -307,23 +314,14 @@ void SceneHolder::showEatingText(bool show)
307 m_overlayText->setHtml(text); 314 m_overlayText->setHtml(text);
308 m_overlayText->setTextWidth(150); 315 m_overlayText->setTextWidth(150);
309 m_overlayText->setOpacity(0.9); 316 m_overlayText->setOpacity(0.9);
310 317 centerOverlayText(lines);
311 QFontMetrics metrics(m_overlayText->font());
312 m_overlayText->setPos((width() - m_overlayText->textWidth()) / 2, (height() - metrics.height() * lines) / 2);
313 m_overlayText->setZValue(100);
314 318
315 addItem(m_overlayText); 319 addItem(m_overlayText);
316} 320}
317 321
318void SceneHolder::showWaitingForPlayers(bool show) 322void SceneHolder::showWaitingForPlayers()
319{ 323{
320 if (!show) 324 hideOverlayText();
321 {
322 if (m_overlayText->scene() == this)
323 removeItem(m_overlayText);
324 return;
325 }
326
327 m_overlayText->setDefaultTextColor(Qt::black); 325 m_overlayText->setDefaultTextColor(Qt::black);
328 QString text = QString( 326 QString text = QString(
329 "<div style=\"background-color: gray;\" align=\"center\">" 327 "<div style=\"background-color: gray;\" align=\"center\">"
@@ -335,10 +333,26 @@ void SceneHolder::showWaitingForPlayers(bool show)
335 m_overlayText->setHtml(text); 333 m_overlayText->setHtml(text);
336 m_overlayText->setTextWidth(150); 334 m_overlayText->setTextWidth(150);
337 m_overlayText->setOpacity(0.9); 335 m_overlayText->setOpacity(0.9);
336 centerOverlayText(lines);
338 337
339 QFontMetrics metrics(m_overlayText->font()); 338 addItem(m_overlayText);
340 m_overlayText->setPos((width() - m_overlayText->textWidth()) / 2, (height() - metrics.height() * lines) / 2); 339}
341 m_overlayText->setZValue(100); 340
341void SceneHolder::showWonLost(bool won)
342{
343 hideOverlayText();
344 m_overlayText->setDefaultTextColor(Qt::black);
345 QString text = QString(
346 "<div style=\"background-color: gray;\" align=\"center\">"
347 "<br />"
348 "You %1!<br />"
349 "</div>"
350 ).arg((won) ? "won" : "lost");
351 unsigned int lines = 3;
352 m_overlayText->setHtml(text);
353 m_overlayText->setTextWidth(150);
354 m_overlayText->setOpacity(0.9);
355 centerOverlayText(lines);
342 356
343 addItem(m_overlayText); 357 addItem(m_overlayText);
344} 358}