character set and registry

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2045 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
shatty 2002-11-21 01:37:18 +00:00
parent 6cd1da58ba
commit e81d8d7a95
2 changed files with 69 additions and 0 deletions

View File

@ -0,0 +1,2 @@
#include "CharacterSet.h"

View File

@ -0,0 +1,67 @@
#ifndef CHARACTER_SET_H
#define CHARACTER_SET_H
/*! CharacterSet holds a variety of useful information about
each 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.
@see http://www.iana.org/assignments/character-sets
*/
class CharacterSet {
public:
CharacterSet();
//! returns an id suitable for use in BFont::SetEncoding
uint32 GetFontID() { return id + 1; }
//! returns an id suitable for use in convert_to_utf8/convert_from_utf8
uint32 GetConversionID() { return id; }
//! returns an id for use in MIBs to identify coded character sets
uint32 GetMIBenum() { return MIBenum; }
//! returns the standard IANA name for this character set
const char * GetName() { return iana_name; }
//! returns a user interface friendly name for this character set
const char * GetPrintName() { return print_name; }
//! returns the preferred MIME name for this character set
//! or null if none exists
const char * GetMIMEName() { return mime_name; }
//! returns an array of aliases for this character set
//! or null if none exist
const char ** GetAliases(int32 & out_size) {
out_size = aliases_count;
return aliases;
}
private:
uint32 id; //! id from convert_to_utf8/convert_from_utf8
uint32 MIBenum; //! for use in MIBs to identify coded character sets
char print_name[64]; //! user interface friendly name
char iana_name[64]; //! standard IANA name
char *mime_name; //! the preferred mime name
char **aliases; //! aliases for this character set
uint32 aliases_count; //! how many aliases are available
uint32 padding[16];
};
/*! the CharacterSetRoster is used to obtain a CharacterSet object
for a given encoding.
*/
class CharacterSetRoster {
public:
const CharacterSet * FindCharacterSetByFontID(uint32 id);
const CharacterSet * FindCharacterSetByConversionID(uint32 id);
const CharacterSet * FindCharacterSetByMIBenum(uint32 MIBenum);
const CharacterSet * FindCharacterSetByName(char * name);
private:
CharacterSet * character_sets;
};
#endif CHARACTER_SET_H