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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/*
This file is part of KOrganizer.
Copyright (c) 2002 Adriaan de Groot <[email protected]>
Copyright (c) 2004 Cornelius Schumacher <[email protected]>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
As a special exception, permission is given to link this program
with any edition of TQt, and distribute the resulting executable,
without including the source code for TQt in the source distribution.
*/
#ifndef DATECHECKER_H
#define DATECHECKER_H
#include <tqobject.h>
#include <tqdatetime.h>
class TQTimer;
class KCalendarSystem;
class NavigatorBar;
class DateChecker: public TQObject
{
TQ_OBJECT
public:
DateChecker( TQObject *parent = 0, const char *name = 0 );
~DateChecker();
/**
The DateChecker automatically checks for
the passage of midnight. If rollover type is
set to None, no signals are emitted and no
processing is done. With rollover set to
FollowDay, the day highlighter changes at
midnight and dayPassed() is emitted.
With FollowMonth, it has the same effect
as FollowDay but also adjusts the month that is
visible and emits monthPassed() when the month changes.
*/
enum RolloverType { None, FollowDay, FollowMonth };
void enableRollover( RolloverType );
signals:
// Signals emitted at midnight carrying the new date.
void dayPassed( const TQDate & );
void monthPassed( const TQDate & );
protected slots:
/**
Called regularly to see if we need to update the view
wrt. the today box and the month box. Only important
if you leave KOrganizer idle for long periods of time.
Until we have a reliable way of setting TQTimers to go
off at a particular wall-clock time, we need this,
which calls passedMidnight() at the right moments.
*/
void possiblyPastMidnight();
/**
Handles updating the view when midnight has come by due to idle time.
*/
void passedMidnight();
private:
TQTimer *mUpdateTimer;
TQDate mLastDayChecked;
RolloverType mUpdateRollover;
};
#endif
|