Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(663)

Side by Side Diff: third_party/WebKit/Source/core/html/shadow/DateTimeFieldElements.h

Issue 2815263002: Move form-related files in core/html/shadow to core/html/forms. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
19 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
20 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26 #ifndef DateTimeFieldElements_h
27 #define DateTimeFieldElements_h
28
29 #include "core/html/shadow/DateTimeNumericFieldElement.h"
30 #include "core/html/shadow/DateTimeSymbolicFieldElement.h"
31 #include "platform/wtf/Allocator.h"
32
33 namespace blink {
34
35 class DateTimeAMPMFieldElement final : public DateTimeSymbolicFieldElement {
36 WTF_MAKE_NONCOPYABLE(DateTimeAMPMFieldElement);
37
38 public:
39 static DateTimeAMPMFieldElement* Create(Document&,
40 FieldOwner&,
41 const Vector<String>&);
42
43 private:
44 DateTimeAMPMFieldElement(Document&, FieldOwner&, const Vector<String>&);
45
46 // DateTimeFieldElement functions.
47 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
48 void SetValueAsDate(const DateComponents&) override;
49 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
50 };
51
52 class DateTimeDayFieldElement final : public DateTimeNumericFieldElement {
53 WTF_MAKE_NONCOPYABLE(DateTimeDayFieldElement);
54
55 public:
56 static DateTimeDayFieldElement* Create(Document&,
57 FieldOwner&,
58 const String& placeholder,
59 const Range&);
60
61 private:
62 DateTimeDayFieldElement(Document&,
63 FieldOwner&,
64 const String& placeholder,
65 const Range&);
66
67 // DateTimeFieldElement functions.
68 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
69 void SetValueAsDate(const DateComponents&) override;
70 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
71 };
72
73 class DateTimeHourFieldElementBase : public DateTimeNumericFieldElement {
74 WTF_MAKE_NONCOPYABLE(DateTimeHourFieldElementBase);
75
76 protected:
77 DateTimeHourFieldElementBase(Document&,
78 FieldOwner&,
79 const Range&,
80 const Range& hard_limits,
81 const Step&);
82 void Initialize();
83
84 private:
85 // DateTimeFieldElement functions.
86 void SetValueAsDate(const DateComponents&) override;
87 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
88 };
89
90 class DateTimeHour11FieldElement final : public DateTimeHourFieldElementBase {
91 WTF_MAKE_NONCOPYABLE(DateTimeHour11FieldElement);
92
93 public:
94 static DateTimeHour11FieldElement* Create(Document&,
95 FieldOwner&,
96 const Range&,
97 const Step&);
98
99 private:
100 DateTimeHour11FieldElement(Document&,
101 FieldOwner&,
102 const Range& hour23_range,
103 const Step&);
104
105 // DateTimeFieldElement functions.
106 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
107 void SetValueAsInteger(int, EventBehavior = kDispatchNoEvent) override;
108 };
109
110 class DateTimeHour12FieldElement final : public DateTimeHourFieldElementBase {
111 WTF_MAKE_NONCOPYABLE(DateTimeHour12FieldElement);
112
113 public:
114 static DateTimeHour12FieldElement* Create(Document&,
115 FieldOwner&,
116 const Range&,
117 const Step&);
118
119 private:
120 DateTimeHour12FieldElement(Document&,
121 FieldOwner&,
122 const Range& hour23_range,
123 const Step&);
124
125 // DateTimeFieldElement functions.
126 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
127 void SetValueAsInteger(int, EventBehavior = kDispatchNoEvent) override;
128 };
129
130 class DateTimeHour23FieldElement final : public DateTimeHourFieldElementBase {
131 WTF_MAKE_NONCOPYABLE(DateTimeHour23FieldElement);
132
133 public:
134 static DateTimeHour23FieldElement* Create(Document&,
135 FieldOwner&,
136 const Range&,
137 const Step&);
138
139 private:
140 DateTimeHour23FieldElement(Document&,
141 FieldOwner&,
142 const Range& hour23_range,
143 const Step&);
144
145 // DateTimeFieldElement functions.
146 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
147 void SetValueAsInteger(int, EventBehavior = kDispatchNoEvent) override;
148 };
149
150 class DateTimeHour24FieldElement final : public DateTimeHourFieldElementBase {
151 WTF_MAKE_NONCOPYABLE(DateTimeHour24FieldElement);
152
153 public:
154 static DateTimeHour24FieldElement* Create(Document&,
155 FieldOwner&,
156 const Range&,
157 const Step&);
158
159 private:
160 DateTimeHour24FieldElement(Document&,
161 FieldOwner&,
162 const Range& hour23_range,
163 const Step&);
164
165 // DateTimeFieldElement functions.
166 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
167 void SetValueAsInteger(int, EventBehavior = kDispatchNoEvent) override;
168 };
169
170 class DateTimeMillisecondFieldElement final
171 : public DateTimeNumericFieldElement {
172 WTF_MAKE_NONCOPYABLE(DateTimeMillisecondFieldElement);
173
174 public:
175 static DateTimeMillisecondFieldElement* Create(Document&,
176 FieldOwner&,
177 const Range&,
178 const Step&);
179
180 private:
181 DateTimeMillisecondFieldElement(Document&,
182 FieldOwner&,
183 const Range&,
184 const Step&);
185
186 // DateTimeFieldElement functions.
187 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
188 void SetValueAsDate(const DateComponents&) override;
189 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
190 };
191
192 class DateTimeMinuteFieldElement final : public DateTimeNumericFieldElement {
193 WTF_MAKE_NONCOPYABLE(DateTimeMinuteFieldElement);
194
195 public:
196 static DateTimeMinuteFieldElement* Create(Document&,
197 FieldOwner&,
198 const Range&,
199 const Step&);
200
201 private:
202 DateTimeMinuteFieldElement(Document&, FieldOwner&, const Range&, const Step&);
203
204 // DateTimeFieldElement functions.
205 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
206 void SetValueAsDate(const DateComponents&) override;
207 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
208 };
209
210 class DateTimeMonthFieldElement final : public DateTimeNumericFieldElement {
211 WTF_MAKE_NONCOPYABLE(DateTimeMonthFieldElement);
212
213 public:
214 static DateTimeMonthFieldElement* Create(Document&,
215 FieldOwner&,
216 const String& placeholder,
217 const Range&);
218
219 private:
220 DateTimeMonthFieldElement(Document&,
221 FieldOwner&,
222 const String& placeholder,
223 const Range&);
224
225 // DateTimeFieldElement functions.
226 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
227 void SetValueAsDate(const DateComponents&) override;
228 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
229 };
230
231 class DateTimeSecondFieldElement final : public DateTimeNumericFieldElement {
232 WTF_MAKE_NONCOPYABLE(DateTimeSecondFieldElement);
233
234 public:
235 static DateTimeSecondFieldElement* Create(Document&,
236 FieldOwner&,
237 const Range&,
238 const Step&);
239
240 private:
241 DateTimeSecondFieldElement(Document&, FieldOwner&, const Range&, const Step&);
242
243 // DateTimeFieldElement functions.
244 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
245 void SetValueAsDate(const DateComponents&) override;
246 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
247 };
248
249 class DateTimeSymbolicMonthFieldElement final
250 : public DateTimeSymbolicFieldElement {
251 WTF_MAKE_NONCOPYABLE(DateTimeSymbolicMonthFieldElement);
252
253 public:
254 static DateTimeSymbolicMonthFieldElement* Create(Document&,
255 FieldOwner&,
256 const Vector<String>&,
257 int minimum,
258 int maximum);
259
260 private:
261 DateTimeSymbolicMonthFieldElement(Document&,
262 FieldOwner&,
263 const Vector<String>&,
264 int minimum,
265 int maximum);
266
267 // DateTimeFieldElement functions.
268 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
269 void SetValueAsDate(const DateComponents&) override;
270 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
271 };
272
273 class DateTimeWeekFieldElement final : public DateTimeNumericFieldElement {
274 WTF_MAKE_NONCOPYABLE(DateTimeWeekFieldElement);
275
276 public:
277 static DateTimeWeekFieldElement* Create(Document&, FieldOwner&, const Range&);
278
279 private:
280 DateTimeWeekFieldElement(Document&, FieldOwner&, const Range&);
281
282 // DateTimeFieldElement functions.
283 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
284 void SetValueAsDate(const DateComponents&) override;
285 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
286 };
287
288 class DateTimeYearFieldElement final : public DateTimeNumericFieldElement {
289 WTF_MAKE_NONCOPYABLE(DateTimeYearFieldElement);
290
291 public:
292 struct Parameters {
293 STACK_ALLOCATED();
294 int minimum_year;
295 int maximum_year;
296 bool min_is_specified;
297 bool max_is_specified;
298 String placeholder;
299
300 Parameters()
301 : minimum_year(-1),
302 maximum_year(-1),
303 min_is_specified(false),
304 max_is_specified(false) {}
305 };
306
307 static DateTimeYearFieldElement* Create(Document&,
308 FieldOwner&,
309 const Parameters&);
310
311 private:
312 DateTimeYearFieldElement(Document&, FieldOwner&, const Parameters&);
313
314 // DateTimeFieldElement functions.
315 void PopulateDateTimeFieldsState(DateTimeFieldsState&) override;
316 void SetValueAsDate(const DateComponents&) override;
317 void SetValueAsDateTimeFieldsState(const DateTimeFieldsState&) override;
318
319 // DateTimeNumericFieldElement functions.
320 int DefaultValueForStepDown() const override;
321 int DefaultValueForStepUp() const override;
322
323 bool min_is_specified_;
324 bool max_is_specified_;
325 };
326
327 } // namespace blink
328
329 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698