Using Normal Clock if bogus time control value from QML
[chessclock] / classes / wrappedclockswidget.h
1 /**************************************************************************
2
3    Chess Clock
4
5    This file is part of Chess Clock software.
6
7    (This file) Copyright (c) Heli Hyvättinen 2011
8
9    Chess Clock is free software: you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation, either version 3 of the License, or
12    (at your option) any later version.
13
14    Chess Clock is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18
19
20 **************************************************************************/
21
22 #ifndef WRAPPEDCLOCKSWIDGET_H
23 #define WRAPPEDCLOCKSWIDGET_H
24
25 #include <QGraphicsProxyWidget>
26 #include "clockswidget.h"
27 #include "chessclockwidget.h"
28
29 /*! A proxy for ClocksWidget for using it from QML
30
31     @author Heli Hyvättinen
32     @date 2011-08-12
33
34   */
35
36 class WrappedClocksWidget : public QGraphicsProxyWidget
37 {
38     Q_OBJECT
39     Q_ENUMS (TimeControlType)
40 public:
41     explicit WrappedClocksWidget(QObject *parent = 0);
42     virtual ~WrappedClocksWidget();
43
44     bool isPlayStarted();
45
46     enum TimeControlType
47     {
48      NormalClock,
49      AdditionBefore,
50      AdditionAfter,
51      Delay,
52      DelayAfter,
53      HourGlass
54     };
55
56 signals:
57
58 public slots:
59
60     /*! Start a new game
61         Times are in milliseconds!
62     */
63      void startGame(TimeControlType timeControl, int whiteInitialTime, int whiteAdditionalTime, int whiteTurnsPerAddition, int blackInitialTime, int blackAdditionalTime, int blackTurnsPerAddition);
64
65      /*! Pause game */
66      void pause();
67      /*! End the game */
68      void stopPlay();
69      /*! Not to keep screen lit */
70      void saveScreen();
71
72 private:
73
74     void deleteOldWidgets();
75     ClocksWidget * pClocksWidget_;
76     ChessClock * pWhiteClock_;
77     ChessClock * pBlackClock_;
78
79 };
80
81 #endif // WRAPPEDCLOCKSWIDGET_H