1/*
2 * Copyright 2010-2011, Haiku, Inc.
3 * Distributed under the terms of the MIT License.
4 */
5#ifndef _B_TIME_UNIT_FORMAT_H_
6#define _B_TIME_UNIT_FORMAT_H_
7
8
9#include <Format.h>
10#include <SupportDefs.h>
11
12
13class BString;
14
15#ifndef U_ICU_NAMESPACE
16  #define U_ICU_NAMESPACE icu
17#endif
18namespace U_ICU_NAMESPACE {
19	class TimeUnitFormat;
20}
21
22
23enum time_unit_style {
24	B_TIME_UNIT_ABBREVIATED,	// e.g. '5 hrs.'
25	B_TIME_UNIT_FULL,			// e.g. '5 hours'
26};
27
28
29enum time_unit_element {
30	B_TIME_UNIT_YEAR,
31	B_TIME_UNIT_MONTH,
32	B_TIME_UNIT_WEEK,
33	B_TIME_UNIT_DAY,
34	B_TIME_UNIT_HOUR,
35	B_TIME_UNIT_MINUTE,
36	B_TIME_UNIT_SECOND,
37
38	B_TIME_UNIT_LAST = B_TIME_UNIT_SECOND
39};
40
41
42class BTimeUnitFormat : public BFormat {
43	typedef	BFormat				Inherited;
44
45public:
46								BTimeUnitFormat(const time_unit_style style =
47									B_TIME_UNIT_FULL);
48								BTimeUnitFormat(const BLanguage& language,
49									const BFormattingConventions& conventions,
50									const time_unit_style style = B_TIME_UNIT_FULL);
51								BTimeUnitFormat(const BTimeUnitFormat& other);
52	virtual						~BTimeUnitFormat();
53
54			status_t			Format(BString& buffer,
55									const int32 value,
56									const time_unit_element unit
57									) const;
58
59private:
60			U_ICU_NAMESPACE::TimeUnitFormat*	fFormatter;
61};
62
63
64#endif
65