-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTimer.h
61 lines (53 loc) · 1.73 KB
/
Timer.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// 名称:timer.h
// 版权:仅供学习
// 作者:Sean ([email protected])
// 环境:VS2019;EasyX_20211109
// 时间:03/16/2022
// 说明:倒计时
#ifndef TIMER_H_
#define TIMER_H_
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <regex>
#include <time.h>
#include "resource.h"
#include "seven_segment_display.h"
#pragma comment(lib,"winmm.lib")
namespace pomodoro_technique
{
class Timer
{
public:
Timer(int hour, int minute, int second);
void DrawUI(); // 负责绘制显示主界面
void Run(); // 负责侦听鼠标与键盘事件
void Start(); // 负责倒计时逻辑
private:
void DrawNumber();
void OnEvent(const ExMessage message);
void Reset();
void SetTimer(); // 自定义时分秒
// 将贴图背景设置为透明,并在指定位置(dst_x,dst_y)处显示图片
void SetTransparent(IMAGE image, const int img_width, const int img_height,
const int dst_x, const int dst_y);
private:
int current_hour_; // 当前时分秒,随着倒计时而不断减少
int current_minute_;
int current_second_;
int original_hour_; // 用户设置的时分秒,在重置时使用
int original_minute_;
int original_second_;
IMAGE img_btn_start_;
IMAGE img_btn_pause_;
IMAGE img_btn_reset_;
IMAGE img_btn_reset_light_;
IMAGE img_btn_set_;
IMAGE img_btn_rest_;
IMAGE img_btn_rest_light_;
bool is_reset_; // 是否已重置
bool is_pause_; // 是否已暂停
bool is_rest_; // 是否已休息
};
} // namespace pomodoro_technique
#endif