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

Side by Side Diff: ui/base/l10n/formatter.h

Issue 2803593002: Add month and year to time_format. (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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains implementation details, the public interface is declared 5 // This file contains implementation details, the public interface is declared
6 // in time_format.h. 6 // in time_format.h.
7 7
8 #ifndef UI_BASE_L10N_FORMATTER_H_ 8 #ifndef UI_BASE_L10N_FORMATTER_H_
9 #define UI_BASE_L10N_FORMATTER_H_ 9 #define UI_BASE_L10N_FORMATTER_H_
10 10
11 #include <memory> 11 #include <memory>
12 12
13 #include "base/lazy_instance.h" 13 #include "base/lazy_instance.h"
14 #include "base/macros.h" 14 #include "base/macros.h"
15 #include "third_party/icu/source/common/unicode/unistr.h" 15 #include "third_party/icu/source/common/unicode/unistr.h"
16 #include "third_party/icu/source/i18n/unicode/msgfmt.h" 16 #include "third_party/icu/source/i18n/unicode/msgfmt.h"
17 #include "third_party/icu/source/i18n/unicode/plurrule.h" 17 #include "third_party/icu/source/i18n/unicode/plurrule.h"
18 #include "ui/base/l10n/time_format.h" 18 #include "ui/base/l10n/time_format.h"
19 #include "ui/base/ui_base_export.h" 19 #include "ui/base/ui_base_export.h"
20 20
21 namespace ui { 21 namespace ui {
22 22
23 struct Pluralities; 23 struct Pluralities;
24 24
25 // Formatter for a (format, length) combination. May either be instantiated 25 // Formatter for a (format, length) combination. May either be instantiated
26 // with four parameters for use in TimeFormat::Simple() or with ten parameters 26 // with six parameters for use in TimeFormat::Simple() or with twelve parameters
27 // for use in TimeFormat::Detailed(). 27 // for use in TimeFormat::Detailed().
28 class Formatter { 28 class Formatter {
29 public: 29 public:
30 enum Unit { 30 enum Unit {
31 UNIT_SEC, 31 UNIT_SEC,
32 UNIT_MIN, 32 UNIT_MIN,
33 UNIT_HOUR, 33 UNIT_HOUR,
34 UNIT_DAY, 34 UNIT_DAY,
35 UNIT_MONTH,
36 UNIT_YEAR,
35 UNIT_COUNT // Enum size counter, not a unit. Must be last. 37 UNIT_COUNT // Enum size counter, not a unit. Must be last.
36 }; 38 };
37 enum TwoUnits { 39 enum TwoUnits {
38 TWO_UNITS_MIN_SEC, 40 TWO_UNITS_MIN_SEC,
39 TWO_UNITS_HOUR_MIN, 41 TWO_UNITS_HOUR_MIN,
40 TWO_UNITS_DAY_HOUR, 42 TWO_UNITS_DAY_HOUR,
41 TWO_UNITS_COUNT // Enum size counter, not a unit pair. Must be last. 43 TWO_UNITS_COUNT // Enum size counter, not a unit pair. Must be last.
42 }; 44 };
43 45
44 Formatter(const Pluralities& sec_pluralities, 46 Formatter(const Pluralities& sec_pluralities,
45 const Pluralities& min_pluralities, 47 const Pluralities& min_pluralities,
46 const Pluralities& hour_pluralities, 48 const Pluralities& hour_pluralities,
47 const Pluralities& day_pluralities); 49 const Pluralities& day_pluralities,
50 const Pluralities& month_pluralities,
51 const Pluralities& year_pluralities);
48 52
49 Formatter(const Pluralities& sec_pluralities, 53 Formatter(const Pluralities& sec_pluralities,
50 const Pluralities& min_pluralities, 54 const Pluralities& min_pluralities,
51 const Pluralities& hour_pluralities, 55 const Pluralities& hour_pluralities,
52 const Pluralities& day_pluralities, 56 const Pluralities& day_pluralities,
57 const Pluralities& month_pluralities,
58 const Pluralities& year_pluralities,
53 const Pluralities& min_sec_pluralities1, 59 const Pluralities& min_sec_pluralities1,
54 const Pluralities& min_sec_pluralities2, 60 const Pluralities& min_sec_pluralities2,
55 const Pluralities& hour_min_pluralities1, 61 const Pluralities& hour_min_pluralities1,
56 const Pluralities& hour_min_pluralities2, 62 const Pluralities& hour_min_pluralities2,
57 const Pluralities& day_hour_pluralities1, 63 const Pluralities& day_hour_pluralities1,
58 const Pluralities& day_hour_pluralities2); 64 const Pluralities& day_hour_pluralities2);
59 65
60 void Format(Unit unit, int value, icu::UnicodeString* formatted_string) const; 66 void Format(Unit unit, int value, icu::UnicodeString* formatted_string) const;
61 67
62 void Format(TwoUnits units, 68 void Format(TwoUnits units,
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 // Windows compilation requires full definition of FormatterContainer before 113 // Windows compilation requires full definition of FormatterContainer before
108 // LazyInstance<FormatterContainter> may be declared. 114 // LazyInstance<FormatterContainter> may be declared.
109 extern UI_BASE_EXPORT base::LazyInstance<FormatterContainer>::Leaky g_container; 115 extern UI_BASE_EXPORT base::LazyInstance<FormatterContainer>::Leaky g_container;
110 116
111 // For use in unit tests only. 117 // For use in unit tests only.
112 extern UI_BASE_EXPORT bool formatter_force_fallback; 118 extern UI_BASE_EXPORT bool formatter_force_fallback;
113 119
114 } // namespace ui 120 } // namespace ui
115 121
116 #endif // UI_BASE_L10N_FORMATTER_H_ 122 #endif // UI_BASE_L10N_FORMATTER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698