Updated the web pages
[chessclock] / classes / timecontrol.h
1  /**************************************************************************
2
3     Chess Clock
4
5     Copyright (c) Arto Hyvättinen 2010
6
7     This file is part of Chess Clock software.
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 TIMECONTROL_H
23 #define TIMECONTROL_H
24
25 #include <QString>
26 #include <QIcon>
27 class ClocksWidget;
28
29 /*! Base class of virtual controls
30
31   @author Arto Hyvättinen
32   @date 2010-08-15
33
34   */
35 class TimeControl
36 {
37 public:
38     /*! Name of the time control */
39     virtual QString getName() = 0;
40     /*! Description of the time control */
41     virtual QString getDescription() = 0;
42     /*! Icon of the time control */
43     virtual QIcon getIcon() { return QIcon(":/rc/pic/chessclock.png"); }
44     /*! Init new game
45
46       Ask options, and init new game.
47       @param useLastSettings Use last settings, don't ask
48       @return Clocks widget for new game, or NULL if unsuccess. */
49     virtual ClocksWidget* initGame(bool useLastSettings=false) = 0;
50 };
51
52
53 #endif // TIMECONTROL_H