Fixed sprite creation.
[tagua/yd.git] / src / clock.h
blobe4c7f67435c5a3265b830cc59bc750903c21609b
1 /*
2 Copyright (c) 2006 Paolo Capriotti <p.capriotti@sns.it>
3 (c) 2006 Maurizio Monge <maurizio.monge@kdemail.net>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
9 */
11 #ifndef CLOCK_H
12 #define CLOCK_H
14 #include <QPixmap>
15 #include <QTimer>
16 #include <QTime>
17 #include "kgamecanvas.h"
18 #include "player.h"
19 #include "clickablecanvas.h"
21 class Board;
22 class ConstrainedText;
24 class Clock : public QObject, public ClickableCanvas {
25 Q_OBJECT
27 int m_color;
28 Board *m_board;
29 QTimer m_timer;
30 QTime m_time;
31 int m_total_time;
33 bool m_running;
34 bool m_active;
36 KGameCanvasPixmap* m_background;
37 ConstrainedText* m_caption;
38 ConstrainedText* m_time_label;
39 ConstrainedText* m_player_name;
40 ConstrainedText* m_decs;
42 QPixmap m_active_pixmap;
43 QPixmap m_inactive_pixmap;
45 QColor m_active_text;
46 QColor m_inactive_text;
48 int m_height;
50 void computeTime();
51 static QString playerString(const Player& player);
53 public:
54 Clock(int col, Board* b, KGameCanvasAbstract* canvas);
55 ~Clock();
57 bool running() { return m_running; }
58 void start();
59 void stop();
60 bool active() { return m_active; }
61 void activate(bool);
63 void setPlayer(const Player& p);
64 void setTime(int t);
66 virtual void onMousePress(const QPoint& pos, int button);
67 virtual void onMouseRelease(const QPoint& /*pos*/, int /*button*/) { }
68 virtual void onMouseMove(const QPoint& /*pos*/, int /*button*/) { }
70 void resize();
71 int height() { return m_height; }
72 void settingsChanged() { }
74 private slots:
75 void tick();
77 signals:
78 void labelClicked(int);
82 #if 1-1
84 class Clock : public QObject, public ClickableCanvas {
85 Q_OBJECT
87 /**
88 * Structure containing information for a player.
90 class Info : public KGameCanvasGroup {
91 Player m_player;
92 QTime m_time;
93 bool m_running;
94 int m_total_time;
95 KGameCanvasRectangle* m_background;
96 KGameCanvasRectangle* m_frame[4];
97 KGameCanvasText* m_caption;
98 KGameCanvasText* m_time_label;
99 KGameCanvasText* m_player_name;
100 KGameCanvasText* m_decs;
101 QRect m_rect;
103 void computeTime() const;
104 void update();
105 public:
106 Info()
107 : m_player(QString(), 0)
108 , m_running(false)
109 , m_rect(0, 0, 0, 0) { }
111 void setup(const Player& player, const QRect& p,
112 const QString& caption, KGameCanvasAbstract* canvas);
113 void setTime(int);
114 void start();
115 void stop();
116 void activate(bool);
117 void tick();
119 QString playerString(const Player& player) const;
120 void setPlayer(const Player& player);
122 void resize(const QRect& rect);
123 void reload();
124 QRect eventRect() const;
126 /** changed settings handler */
127 virtual void settingsChanged();
130 Info m_info[2];
131 QTimer m_timer;
132 int m_running;
133 int m_active;
134 public:
135 Clock(KGameCanvasAbstract* parent);
137 void setTime(int index, int value);
138 void start(int index);
139 void stop();
140 void activate(int index);
142 void setPlayers(const Player& white, const Player& black);
144 bool running() const { return m_running != -1; }
145 void resize(QSize size);
146 void reload();
148 virtual void onMousePress(const QPoint& pos, int button);
149 virtual void onMouseRelease(const QPoint& /*pos*/, int /*button*/) { }
150 virtual void onMouseMove(const QPoint& /*pos*/, int /*button*/) { }
152 /** changed settings handler */
153 virtual void settingsChanged();
154 private slots:
155 void tick();
156 signals:
157 void labelClicked(int);
160 #endif
162 #endif // CLOCK_H