X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=www%2Fhtml%2Fclockswidget_8cpp_source.html;fp=www%2Fhtml%2Fclockswidget_8cpp_source.html;h=150e80debf69e7583ba22d08e2fe25b7662c8c0b;hb=d145b92ee23ef361bbfd91eef606cfc3ed9994fa;hp=705cc8989e499078c8d6d35ed41b85f6b447b14f;hpb=e43c493689b3e5a28625a293f811a888bd5042e8;p=chessclock diff --git a/www/html/clockswidget_8cpp_source.html b/www/html/clockswidget_8cpp_source.html index 705cc89..150e80d 100644 --- a/www/html/clockswidget_8cpp_source.html +++ b/www/html/clockswidget_8cpp_source.html @@ -153,120 +153,128 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search'); 00109 00110 // ScreenLitKeeper to keep screen lit when playing 00111 keeper_ = new ScreenLitKeeper(this); -00112 } -00113 -00114 ClocksWidget::~ClocksWidget() -00115 { -00116 delete white_; -00117 delete black_; -00118 } -00119 -00120 void ClocksWidget::pause() -00121 { -00122 if(status_ == WhiteTurn) -00123 { -00124 status_= WhitePause; -00125 white_->pauseTurn(); -00126 pauseLabel_->setVisible(true); -00127 pauseButton_->setVisible(false); -00128 keeper_->keepScreenLit(false); -00129 -00130 } -00131 else if( status_ == BlackTurn) -00132 { -00133 status_ = BlackPause; -00134 black_->pauseTurn(); -00135 pauseLabel_->setVisible(true); -00136 pauseButton_->setVisible(false); -00137 keeper_->keepScreenLit(false); -00138 } -00139 } -00140 -00141 void ClocksWidget::stopPlay() -00142 { -00143 if( status_ == BlackTurn || status_ == BlackPause ) -00144 emit TurnFinished( black_->endTurn()); -00145 else if( status_ == WhiteTurn || status_ == WhitePause ) -00146 emit TurnFinished( white_->endTurn()); -00147 status_ = Stopped; -00148 } -00149 -00150 -00151 void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) -00152 { -00153 -00154 // To avoid double clicks -00155 // a) delay (default 1,2 secs) OR -00156 // b) distance more than 90 pixels in axis. -00157 if( delayTimer_.elapsed() > CLICKDELAY || -00158 std::abs( event->x() - recentX ) > 90 || -00159 std::abs( event->y() - recentY ) > 90 -00160 ) -00161 { -00162 delayTimer_.start(); // to reset delay timer! -00163 switch( status_) -00164 { -00165 case Welcome : -00166 // Start game! -00167 welcomeLabel_->setVisible(false); -00168 pauseButton_->setVisible(true); -00169 keeper_->keepScreenLit(true); -00170 white_->startTurn(); -00171 status_ = WhiteTurn; -00172 break; -00173 case WhiteTurn: -00174 // White turn finished, then black -00175 emit TurnFinished( white_->endTurn()); -00176 black_->startTurn(); -00177 status_=BlackTurn; -00178 break; -00179 case BlackTurn: -00180 // Black finished, then white -00181 emit TurnFinished( black_->endTurn()); -00182 white_->startTurn(); -00183 status_=WhiteTurn; -00184 break; -00185 case WhitePause: -00186 // Continue play -00187 keeper_->keepScreenLit(true); -00188 pauseLabel_->setVisible(false); -00189 pauseButton_->setVisible(true); -00190 white_->continueTurn(); +00112 +00113 connect( white, SIGNAL(dontEatBattery()), this, SLOT(saveScreen())); +00114 connect( black, SIGNAL(dontEatBattery()), this, SLOT(saveScreen())); +00115 } +00116 +00117 ClocksWidget::~ClocksWidget() +00118 { +00119 delete white_; +00120 delete black_; +00121 } +00122 +00123 void ClocksWidget::pause() +00124 { +00125 if(status_ == WhiteTurn) +00126 { +00127 status_= WhitePause; +00128 white_->pauseTurn(); +00129 pauseLabel_->setVisible(true); +00130 pauseButton_->setVisible(false); +00131 keeper_->keepScreenLit(false); +00132 +00133 } +00134 else if( status_ == BlackTurn) +00135 { +00136 status_ = BlackPause; +00137 black_->pauseTurn(); +00138 pauseLabel_->setVisible(true); +00139 pauseButton_->setVisible(false); +00140 keeper_->keepScreenLit(false); +00141 } +00142 } +00143 +00144 void ClocksWidget::stopPlay() +00145 { +00146 if( status_ == BlackTurn || status_ == BlackPause ) +00147 emit TurnFinished( black_->endTurn()); +00148 else if( status_ == WhiteTurn || status_ == WhitePause ) +00149 emit TurnFinished( white_->endTurn()); +00150 status_ = Stopped; +00151 } +00152 +00153 void ClocksWidget::saveScreen() +00154 { +00155 keeper_->keepScreenLit(false); +00156 } +00157 +00158 +00159 void ClocksWidget::mouseReleaseEvent(QMouseEvent *event) +00160 { +00161 +00162 // To avoid double clicks +00163 // a) delay (default 1,2 secs) OR +00164 // b) distance more than 90 pixels in axis. +00165 if( delayTimer_.elapsed() > CLICKDELAY || +00166 std::abs( event->x() - recentX ) > 90 || +00167 std::abs( event->y() - recentY ) > 90 +00168 ) +00169 { +00170 delayTimer_.start(); // to reset delay timer! +00171 switch( status_) +00172 { +00173 case Welcome : +00174 // Start game! +00175 welcomeLabel_->setVisible(false); +00176 pauseButton_->setVisible(true); +00177 keeper_->keepScreenLit(true); +00178 white_->startTurn(); +00179 status_ = WhiteTurn; +00180 break; +00181 case WhiteTurn: +00182 // White turn finished, then black +00183 emit TurnFinished( white_->endTurn()); +00184 black_->startTurn(); +00185 status_=BlackTurn; +00186 break; +00187 case BlackTurn: +00188 // Black finished, then white +00189 emit TurnFinished( black_->endTurn()); +00190 white_->startTurn(); 00191 status_=WhiteTurn; 00192 break; -00193 case BlackPause: +00193 case WhitePause: 00194 // Continue play -00195 keeper_->keepScreenLit(false); +00195 keeper_->keepScreenLit(true); 00196 pauseLabel_->setVisible(false); 00197 pauseButton_->setVisible(true); -00198 black_->continueTurn(); -00199 status_=BlackTurn; +00198 white_->continueTurn(); +00199 status_=WhiteTurn; 00200 break; -00201 case Stopped: -00202 emit ClickedWhenStopped(); -00203 -00204 -00205 } -00206 } -00207 recentX = event->x(); -00208 recentY = event->y(); -00209 } -00210 -00211 // to grap clicking pause or welcome label -00212 bool ClocksWidget::eventFilter(QObject *obj, QEvent *event) -00213 { -00214 if (event->type() == QEvent::MouseButtonRelease) { -00215 QMouseEvent *mEvent = static_cast<QMouseEvent *>(event); -00216 mouseReleaseEvent( mEvent ); -00217 return true; -00218 } else { -00219 // standard event processing -00220 return QObject::eventFilter(obj, event); -00221 } -00222 } -00223 -00224 -00225 int const ClocksWidget::CLICKDELAY; +00201 case BlackPause: +00202 // Continue play +00203 keeper_->keepScreenLit(true); +00204 pauseLabel_->setVisible(false); +00205 pauseButton_->setVisible(true); +00206 black_->continueTurn(); +00207 status_=BlackTurn; +00208 break; +00209 case Stopped: +00210 emit ClickedWhenStopped(); +00211 +00212 +00213 } +00214 } +00215 recentX = event->x(); +00216 recentY = event->y(); +00217 } +00218 +00219 // to grap clicking pause or welcome label +00220 bool ClocksWidget::eventFilter(QObject *obj, QEvent *event) +00221 { +00222 if (event->type() == QEvent::MouseButtonRelease) { +00223 QMouseEvent *mEvent = static_cast<QMouseEvent *>(event); +00224 mouseReleaseEvent( mEvent ); +00225 return true; +00226 } else { +00227 // standard event processing +00228 return QObject::eventFilter(obj, event); +00229 } +00230 } +00231 +00232 +00233 int const ClocksWidget::CLICKDELAY;
-
Generated on Mon Sep 27 18:30:33 2010 for Chess Clock by  +
Generated on Tue Oct 12 20:52:59 2010 for Chess Clock by  doxygen 1.6.3