1/* 2 * Copyright 2003-2010, Haiku, Inc. 3 * Distributed under the terms of the MIT Licence. 4*/ 5#ifndef _B_FORMAT_H_ 6#define _B_FORMAT_H_ 7 8#include <FormattingConventions.h> 9#include <Locker.h> 10#include <Language.h> 11#include <SupportDefs.h> 12 13 14// types of fields contained in formatted strings 15enum { 16 // number format fields 17 B_CURRENCY_FIELD, 18 B_DECIMAL_SEPARATOR_FIELD, 19 B_EXPONENT_FIELD, 20 B_EXPONENT_SIGN_FIELD, 21 B_EXPONENT_SYMBOL_FIELD, 22 B_FRACTION_FIELD, 23 B_GROUPING_SEPARATOR_FIELD, 24 B_INTEGER_FIELD, 25 B_PERCENT_FIELD, 26 B_PERMILLE_FIELD, 27 B_SIGN_FIELD, 28 29 // date format fields 30 // TODO: ... 31}; 32 33// structure filled in while formatting 34struct format_field_position { 35 uint32 field_type; 36 int32 start; 37 int32 length; 38}; 39 40 41class BLocale; 42 43class BFormat { 44public: 45 status_t InitCheck() const; 46protected: 47 BFormat(const BLocale* locale = NULL); 48 BFormat(const BLanguage& language, 49 const BFormattingConventions& conventions); 50 51 BFormat(const BFormat& other); 52 virtual ~BFormat(); 53 54private: 55 BFormat& operator=(const BFormat& other); 56 57 status_t _Initialize(const BLocale& locale); 58 status_t _Initialize(const BLanguage& language, 59 const BFormattingConventions& conventions); 60 61protected: 62 BFormattingConventions fConventions; 63 BLanguage fLanguage; 64 status_t fInitStatus; 65}; 66 67 68#endif // _B_FORMAT_H_ 69