1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 from timelinelib.calendar.gregorian.gregorian import is_valid_time
20 from timelinelib.wxgui.components import TextPatternControl
21
22
24
25 HOUR_GROUP = 0
26 MINUTE_GROUP = 1
27 SECOND_GROUP = 2
28
30 self.config = config
31 if (self.config.use_second):
32 TextPatternControl.__init__(self, parent, fit_text="00:00:00")
33 self.SetSeparators([":",":"])
34 else:
35 TextPatternControl.__init__(self, parent, fit_text="00:00")
36 self.SetSeparators([":"])
37 self.SetValidator(self._is_time_valid)
38 self.SetUpHandler(self.HOUR_GROUP, self._increment_hour)
39 self.SetUpHandler(self.MINUTE_GROUP, self._increment_minute)
40 self.SetDownHandler(self.HOUR_GROUP, self._decrement_hour)
41 self.SetDownHandler(self.MINUTE_GROUP, self._decrement_minute)
42
43 if (self.config.use_second):
44 self.SetUpHandler(self.SECOND_GROUP, self._increment_second)
45 self.SetDownHandler(self.SECOND_GROUP, self._decrement_second)
46
49
52
54 try:
55 self.GetGregorianTime()
56 except ValueError:
57 return False
58 else:
59 return True
60
63
66
69
72
75
78
80 (hour, minute, second) = time
81 if (self.config.use_second):
82 return [
83 "%02d" % hour,
84 "%02d" % minute,
85 "%02d" % second,
86 ]
87 else:
88 return [
89 "%02d" % hour,
90 "%02d" % minute
91 ]
92
93
95 hour = minute = second = 0
96 if not self.config.use_second:
97 [hour_str, minute_str] = parts
98 hour = int(hour_str)
99 minute = int(minute_str)
100
101 if self.config.use_second:
102 [hour_str, minute_str, second_str] = parts
103 hour = int(hour_str)
104 minute = int(minute_str)
105 second = int(second_str)
106
107 if not is_valid_time(hour, minute, second):
108 raise ValueError()
109 return (hour, minute, second)
110
111
113 hour, minute, second = time
114 new_hour = hour + 1
115 if new_hour > 23:
116 new_hour = 0
117 return (new_hour, minute, second)
118
119
121 hour, minute, second = time
122 new_hour = hour
123 new_minute = minute + 1
124 if new_minute > 59:
125 new_minute = 0
126 new_hour = hour + 1
127 if new_hour > 23:
128 new_hour = 0
129 return (new_hour, new_minute, second)
130
131
133 hour, minute, second = time
134 new_hour = hour
135 new_minute = minute
136 new_second = second
137 if new_second > 59:
138 new_second = 0
139 new_minute = minute + 1
140 if new_minute > 59:
141 new_minute = 0
142 new_hour = hour + 1
143 if new_hour > 23:
144 new_hour = 0
145 return (new_hour, new_minute, new_second)
146
148 hour, minute, second = time
149 new_hour = hour - 1
150 if new_hour < 0:
151 new_hour = 23
152 return (new_hour, minute, second)
153
154
156 hour, minute, second = time
157 new_hour = hour
158 new_minute = minute - 1
159 if new_minute < 0:
160 new_minute = 59
161 new_hour = hour - 1
162 if new_hour < 0:
163 new_hour = 23
164 return (new_hour, new_minute, second)
165
167 hour, minute, second = time
168 new_hour = hour
169 new_minute = minute
170 new_second = second
171 if new_second < 0:
172 new_second = 59
173 new_minute = minute - 1
174 if new_minute < 0:
175 new_minute = 59
176 new_hour = hour - 1
177 if new_hour < 0:
178 new_hour = 23
179 return (new_hour, new_minute, new_second)
180