2003-07-27 01:24:40 +04:00
|
|
|
#ifndef CHARACTER_SET_H
|
|
|
|
#define CHARACTER_SET_H
|
|
|
|
|
|
|
|
#include <SupportDefs.h>
|
|
|
|
|
|
|
|
namespace BPrivate {
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @file CharacterSet.h
|
|
|
|
* @author Andrew Bachmann
|
|
|
|
* @brief Defines BCharacterSet
|
|
|
|
*
|
|
|
|
* @see http://www.iana.org/assignments/character-sets
|
|
|
|
**/
|
|
|
|
|
|
|
|
class BCharacterSet {
|
|
|
|
/**
|
|
|
|
* @class BCharacterSet
|
|
|
|
* @brief An object holding a variety of useful information about a character set.
|
|
|
|
*
|
|
|
|
* This information has been derived from the IANA standards organization.
|
|
|
|
* Since IANA provides several names for some encodings, this object also
|
|
|
|
* provides for aliases.
|
|
|
|
**/
|
|
|
|
public:
|
2003-07-27 05:35:41 +04:00
|
|
|
/**
|
|
|
|
* @brief default constructor, for stack allocated character set objects
|
|
|
|
**/
|
|
|
|
BCharacterSet();
|
|
|
|
/**
|
2003-07-27 01:24:40 +04:00
|
|
|
* @brief constructor, for internal use only
|
|
|
|
**/
|
|
|
|
BCharacterSet(uint32 id, uint32 MIBenum, const char * print_name,
|
|
|
|
const char * iana_name, const char * mime_name,
|
|
|
|
const char ** aliases);
|
|
|
|
/**
|
|
|
|
* @brief returns an id for use in BFont::SetEncoding
|
|
|
|
* @return an id for use in BFont::SetEncoding
|
|
|
|
**/
|
|
|
|
uint32 GetFontID(void) const;
|
|
|
|
/**
|
|
|
|
* @brief returns an id for use in convert_to/from_utf8
|
|
|
|
* @return an id for use in convert_to/from_utf8
|
|
|
|
**/
|
|
|
|
uint32 GetConversionID(void) const;
|
|
|
|
/**
|
|
|
|
* @brief returns an id for use in MIBs to identify coded character sets
|
|
|
|
* @return an id for use in MIBs to identify coded character sets
|
|
|
|
**/
|
|
|
|
uint32 GetMIBenum(void) const;
|
|
|
|
/**
|
|
|
|
* @brief returns the IANA standard name for this character set
|
|
|
|
* @return the IANA standard name for this character set
|
|
|
|
**/
|
|
|
|
const char * GetName(void) const;
|
|
|
|
/**
|
|
|
|
* @brief returns a user interface friendly name for this character set
|
|
|
|
* @return a user interface friendly name for this character set
|
|
|
|
**/
|
|
|
|
const char * GetPrintName(void) const;
|
|
|
|
/**
|
|
|
|
* @brief returns the MIME preferred name for this character set, or null if none exists
|
|
|
|
* @return the MIME preferred name for this character set, or null if none exists
|
|
|
|
**/
|
|
|
|
const char * GetMIMEName(void) const;
|
|
|
|
/**
|
|
|
|
* @brief returns the number of aliases for this character set
|
|
|
|
* @return the number of aliases for this character set
|
|
|
|
**/
|
|
|
|
int32 CountAliases(void) const;
|
|
|
|
/**
|
|
|
|
* @brief returns the index'th alias, or NULL if out of range
|
|
|
|
* @return the index'th alias, or NULL if out of range
|
|
|
|
**/
|
|
|
|
const char * AliasAt(uint32 index) const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
uint32 id; //! id from convert_to_utf8/convert_from_utf8
|
|
|
|
uint32 MIBenum; //! for use in MIBs to identify coded character sets
|
|
|
|
const char * print_name; //! user interface friendly name
|
|
|
|
const char * iana_name; //! standard IANA name
|
|
|
|
const char * mime_name; //! the preferred mime name
|
|
|
|
const char ** aliases; //! aliases for this character set
|
|
|
|
uint32 aliases_count; //! how many aliases are available
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif CHARACTER_SET_H
|