[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdegames/kbattleship/src
From:       Paolo Capriotti <paolo.capriotti () GMAIL ! COM>
Date:       2007-06-21 15:30:26
Message-ID: 1182439826.568125.15761.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 678510 by capriotti:

Added support for a global centered welcome screen.
It looks ugly, though, so it's disabled for now.


 M  +5 -1      playfield.cpp  
 M  +33 -2     seaview.cpp  
 M  +2 -0      seaview.h  
 M  +1 -1      simplemenu.cpp  


--- trunk/KDE/kdegames/kbattleship/src/playfield.cpp #678509:678510
@@ -73,6 +73,10 @@
 
 void PlayField::setupController()
 {
+    // remove welcome screen
+    m_sea->screen(Sea::Player(0))->fadeOut();
+    m_sea->screen(Sea::Player(1))->fadeOut();
+
     delete m_controller;
     m_controller = new GeneralController(this, m_player);
     connect(m_controller, SIGNAL(gameOver(Sea::Player)),
@@ -96,7 +100,7 @@
     
     m_chat->hide();
     m_sea->screen(Sea::Player(0))->show();
-//     m_sea->screen(Sea::Player(1))->show();
+    m_sea->screen(Sea::Player(1))->show();
     
     m_menu = new SimpleMenu(this, m_sea->screen(Sea::Player(0)));
     connect(m_menu, SIGNAL(done()), this, SLOT(setupController()));
--- trunk/KDE/kdegames/kbattleship/src/seaview.cpp #678509:678510
@@ -34,11 +34,17 @@
     m_renderer = new KBSRenderer(KStandardDirs::locate("appdata", "pictures/default_theme.svgz"));
     m_renderer->resize(tileSize());
     
+    // create screen
+    m_screen = new WelcomeScreen(this, font());
+    m_screen->hide();
+    
     // create fields
     m_fields[0] = new BattleFieldView(this, m_renderer, "background", GRID_SIZE);
+    m_fields[0]->stackUnder(m_screen);
     m_fields[0]->show();
     connect(m_fields[0]->screen(), SIGNAL(clicked(Button*)), this, SLOT(buttonClicked(Button*)));
     m_fields[1] = new BattleFieldView(this, m_renderer, "background2", GRID_SIZE);
+    m_fields[1]->stackUnder(m_screen);
     m_fields[1]->show();
     connect(m_fields[1]->screen(), SIGNAL(clicked(Button*)), this, SLOT(buttonClicked(Button*)));
     
@@ -71,6 +77,10 @@
     m_fields[1]->moveTo(m_fields[0]->size().width() + ts, 0);
     m_fields[1]->update();
     
+    m_screen->moveTo(0, 0);
+    m_screen->resize(QSize(m_fields[1]->pos().x() + m_fields[1]->size().width(),
+                           m_fields[0]->size().height()));
+    
 //     m_labels[0]->resize(QSize(m_fields[0]->size().width(), LABEL_HEIGHT));
 //     m_labels[0]->moveTo(m_fields[0]->pos().x(), m_fields[0]->size().height() + 10);
 //     m_labels[1]->resize(QSize(m_fields[1]->size().width(), LABEL_HEIGHT));
@@ -100,6 +110,10 @@
 
 void SeaView::mousePressEvent(QMouseEvent* e)
 {
+    if (m_screen->active()) {
+        m_screen->onMousePress(e->pos());
+    }
+
     int f = fieldAt(e->pos());
     if (f == -1) {
         return;
@@ -124,6 +138,10 @@
 
 void SeaView::mouseReleaseEvent(QMouseEvent* e)
 {
+    if (m_screen->active()) {
+        m_screen->onMouseRelease(e->pos());
+    }
+
     int f = fieldAt(e->pos());
     if (f == -1) {
         return;
@@ -138,6 +156,10 @@
 
 void SeaView::leaveEvent(QEvent*)
 {
+    if (m_screen->active()) {
+        m_screen->onMouseLeave();
+    }
+    
     if (m_last_f != -1) {
         BattleFieldView* field = m_fields[m_last_f];
         field->onMouseLeave();
@@ -148,6 +170,10 @@
 
 void SeaView::mouseMoveEvent(QMouseEvent* e)
 {
+    if (m_screen->active()) {
+        m_screen->onMouseMove(e->pos());
+    }
+    
     // send mouse move info to the welcome screen
     int f = fieldAt(e->pos());
     if (m_last_f != -1 && m_last_f != f) {
@@ -263,11 +289,16 @@
     return QSize(100, 400);
 }
 
-WelcomeScreen* SeaView::screen(Sea::Player p) const
+WelcomeScreen* SeaView::globalScreen() const
 {
-    return m_fields[p]->screen();
+    return m_screen;
 }
 
+WelcomeScreen* SeaView::screen(Sea::Player player) const
+{
+    return m_fields[player]->screen();
+}
+
 void SeaView::buttonClicked(Button* button)
 {
     Q_UNUSED( button );
--- trunk/KDE/kdegames/kbattleship/src/seaview.h #678509:678510
@@ -27,6 +27,7 @@
     static const unsigned int GRID_SIZE = 10;
     static const unsigned int LABEL_HEIGHT = 0;
     
+    WelcomeScreen* m_screen;
     BattleFieldView* m_fields[2];
     EntityLabel* m_labels[2];
     
@@ -52,6 +53,7 @@
     void sink(Sea::Player p, const Coord& c, Ship* ship);
     void clear();
 
+    WelcomeScreen* globalScreen() const;
     WelcomeScreen* screen(Sea::Player player) const;
     
     virtual QSize sizeHint() const;
--- trunk/KDE/kdegames/kbattleship/src/simplemenu.cpp #678509:678510
@@ -38,7 +38,7 @@
 void SimpleMenu::finalize(State state)
 {
     m_state = state;
-    m_screen->fadeOut();
+//     m_screen->fadeOut();
     emit done();
 }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic