/*
 *
 * (C) Copyright IBM Corp. 1998-2007. All Rights Reserved.
 *
 * WARNING: THIS FILE IS MACHINE GENERATED. DO NOT HAND EDIT IT UNLESS
 * YOU REALLY KNOW WHAT YOU'RE DOING.
 *
 * Generated on: 08/21/2006 02:35:14 PM HST
 */

#ifndef __LELANGUAGES_H
#define __LELANGUAGES_H

#include "LETypes.h"

/**
 * \file
 * \brief C++ API: List of language codes for LayoutEngine
 */

U_NAMESPACE_BEGIN

/**
 * A provisional list of language codes. For now,
 * this is just a list of languages which the LayoutEngine
 * supports.
 *
 * @stable ICU 3.6
 */

enum LanguageCodes {
    nullLanguageCode =  0,
    araLanguageCode =  1,
    asmLanguageCode =  2,
    benLanguageCode =  3,
    farLanguageCode =  4,
    gujLanguageCode =  5,
    hinLanguageCode =  6,
    iwrLanguageCode =  7,
    jiiLanguageCode =  8,
    janLanguageCode =  9,
    kanLanguageCode = 10,
    kokLanguageCode = 11,
    korLanguageCode = 12,
    kshLanguageCode = 13,
    malLanguageCode = 14,
    marLanguageCode = 15,
    mlrLanguageCode = 16,
    mniLanguageCode = 17,
    oriLanguageCode = 18,
    sanLanguageCode = 19,
    sndLanguageCode = 20,
    snhLanguageCode = 21,
    syrLanguageCode = 22,
    tamLanguageCode = 23,
    telLanguageCode = 24,
    thaLanguageCode = 25,
    urdLanguageCode = 26,
    zhpLanguageCode = 27,
    zhsLanguageCode = 28,
    zhtLanguageCode = 29,

    languageCodeCount = 30
};

U_NAMESPACE_END
#endif
