/* * Copyright 2003-2010, Haiku, Inc. * Distributed under the terms of the MIT Licence. */ #ifndef _B_FORMAT_H_ #define _B_FORMAT_H_ #include #include #include #include #include // types of fields contained in formatted strings enum { // number format fields B_CURRENCY_FIELD, B_DECIMAL_SEPARATOR_FIELD, B_EXPONENT_FIELD, B_EXPONENT_SIGN_FIELD, B_EXPONENT_SYMBOL_FIELD, B_FRACTION_FIELD, B_GROUPING_SEPARATOR_FIELD, B_INTEGER_FIELD, B_PERCENT_FIELD, B_PERMILLE_FIELD, B_SIGN_FIELD, // date format fields // TODO: ... }; // structure filled in while formatting struct format_field_position { uint32 field_type; int32 start; int32 length; }; class BLocale; class BFormat { public: status_t SetLocale(const BLocale& locale); virtual status_t SetLanguage(const BLanguage& newLanguage); virtual status_t SetFormattingConventions( const BFormattingConventions& conventions); status_t InitCheck() const; protected: BFormat(); BFormat(const BFormat& other); virtual ~BFormat(); BFormat& operator=(const BFormat& other); protected: mutable BLocker fLock; BFormattingConventions fConventions; BLanguage fLanguage; status_t fInitStatus; }; #endif // _B_FORMAT_H_