Home | History | Annotate | Download | only in unicode
      1 //  2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /*
      4 *****************************************************************************************
      5 * Copyright (C) 2014-2016, International Business Machines
      6 * Corporation and others. All Rights Reserved.
      7 *****************************************************************************************
      8 */
      9 
     10 #ifndef UDISPLAYCONTEXT_H
     11 #define UDISPLAYCONTEXT_H
     12 
     13 #include "unicode/utypes.h"
     14 
     15 #if !UCONFIG_NO_FORMATTING
     16 
     17 /**
     18  * \file
     19  * \brief C API: Display context types (enum values)
     20  */
     21 
     22 /**
     23  * Display context types, for getting values of a particular setting.
     24  * Note, the specific numeric values are internal and may change.
     25  * @stable ICU 51
     26  */
     27 enum UDisplayContextType {
     28     /**
     29      * Type to retrieve the dialect handling setting, e.g.
     30      * UDISPCTX_STANDARD_NAMES or UDISPCTX_DIALECT_NAMES.
     31      * @stable ICU 51
     32      */
     33     UDISPCTX_TYPE_DIALECT_HANDLING = 0,
     34     /**
     35      * Type to retrieve the capitalization context setting, e.g.
     36      * UDISPCTX_CAPITALIZATION_NONE, UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE,
     37      * UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE, etc.
     38      * @stable ICU 51
     39      */
     40     UDISPCTX_TYPE_CAPITALIZATION = 1,
     41     /**
     42      * Type to retrieve the display length setting, e.g.
     43      * UDISPCTX_LENGTH_FULL, UDISPCTX_LENGTH_SHORT.
     44      * @stable ICU 54
     45      */
     46     UDISPCTX_TYPE_DISPLAY_LENGTH = 2,
     47     /**
     48      * Type to retrieve the substitute handling setting, e.g.
     49      * UDISPCTX_SUBSTITUTE, UDISPCTX_NO_SUBSTITUTE.
     50      * @stable ICU 58
     51      */
     52     UDISPCTX_TYPE_SUBSTITUTE_HANDLING = 3
     53 };
     54 /**
     55 *  @stable ICU 51
     56 */
     57 typedef enum UDisplayContextType UDisplayContextType;
     58 
     59 /**
     60  * Display context settings.
     61  * Note, the specific numeric values are internal and may change.
     62  * @stable ICU 51
     63  */
     64 enum UDisplayContext {
     65     /**
     66      * ================================
     67      * DIALECT_HANDLING can be set to one of UDISPCTX_STANDARD_NAMES or
     68      * UDISPCTX_DIALECT_NAMES. Use UDisplayContextType UDISPCTX_TYPE_DIALECT_HANDLING
     69      * to get the value.
     70      */
     71     /**
     72      * A possible setting for DIALECT_HANDLING:
     73      * use standard names when generating a locale name,
     74      * e.g. en_GB displays as 'English (United Kingdom)'.
     75      * @stable ICU 51
     76      */
     77     UDISPCTX_STANDARD_NAMES = (UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 0,
     78     /**
     79      * A possible setting for DIALECT_HANDLING:
     80      * use dialect names, when generating a locale name,
     81      * e.g. en_GB displays as 'British English'.
     82      * @stable ICU 51
     83      */
     84     UDISPCTX_DIALECT_NAMES = (UDISPCTX_TYPE_DIALECT_HANDLING<<8) + 1,
     85     /**
     86      * ================================
     87      * CAPITALIZATION can be set to one of UDISPCTX_CAPITALIZATION_NONE,
     88      * UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE,
     89      * UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE,
     90      * UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU, or
     91      * UDISPCTX_CAPITALIZATION_FOR_STANDALONE.
     92      * Use UDisplayContextType UDISPCTX_TYPE_CAPITALIZATION to get the value.
     93      */
     94     /**
     95      * The capitalization context to be used is unknown (this is the default value).
     96      * @stable ICU 51
     97      */
     98     UDISPCTX_CAPITALIZATION_NONE = (UDISPCTX_TYPE_CAPITALIZATION<<8) + 0,
     99     /**
    100      * The capitalization context if a date, date symbol or display name is to be
    101      * formatted with capitalization appropriate for the middle of a sentence.
    102      * @stable ICU 51
    103      */
    104     UDISPCTX_CAPITALIZATION_FOR_MIDDLE_OF_SENTENCE = (UDISPCTX_TYPE_CAPITALIZATION<<8) + 1,
    105     /**
    106      * The capitalization context if a date, date symbol or display name is to be
    107      * formatted with capitalization appropriate for the beginning of a sentence.
    108      * @stable ICU 51
    109      */
    110     UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE = (UDISPCTX_TYPE_CAPITALIZATION<<8) + 2,
    111     /**
    112      * The capitalization context if a date, date symbol or display name is to be
    113      * formatted with capitalization appropriate for a user-interface list or menu item.
    114      * @stable ICU 51
    115      */
    116     UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU = (UDISPCTX_TYPE_CAPITALIZATION<<8) + 3,
    117     /**
    118      * The capitalization context if a date, date symbol or display name is to be
    119      * formatted with capitalization appropriate for stand-alone usage such as an
    120      * isolated name on a calendar page.
    121      * @stable ICU 51
    122      */
    123     UDISPCTX_CAPITALIZATION_FOR_STANDALONE = (UDISPCTX_TYPE_CAPITALIZATION<<8) + 4,
    124     /**
    125      * ================================
    126      * DISPLAY_LENGTH can be set to one of UDISPCTX_LENGTH_FULL or
    127      * UDISPCTX_LENGTH_SHORT. Use UDisplayContextType UDISPCTX_TYPE_DISPLAY_LENGTH
    128      * to get the value.
    129      */
    130     /**
    131      * A possible setting for DISPLAY_LENGTH:
    132      * use full names when generating a locale name,
    133      * e.g. "United States" for US.
    134      * @stable ICU 54
    135      */
    136     UDISPCTX_LENGTH_FULL = (UDISPCTX_TYPE_DISPLAY_LENGTH<<8) + 0,
    137     /**
    138      * A possible setting for DISPLAY_LENGTH:
    139      * use short names when generating a locale name,
    140      * e.g. "U.S." for US.
    141      * @stable ICU 54
    142      */
    143     UDISPCTX_LENGTH_SHORT = (UDISPCTX_TYPE_DISPLAY_LENGTH<<8) + 1,
    144     /**
    145      * ================================
    146      * SUBSTITUTE_HANDLING can be set to one of UDISPCTX_SUBSTITUTE or
    147      * UDISPCTX_NO_SUBSTITUTE. Use UDisplayContextType UDISPCTX_TYPE_SUBSTITUTE_HANDLING
    148      * to get the value.
    149      */
    150     /**
    151      * A possible setting for SUBSTITUTE_HANDLING:
    152      * Returns a fallback value (e.g., the input code) when no data is available.
    153      * This is the default value.
    154      * @stable ICU 58
    155      */
    156     UDISPCTX_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 0,
    157     /**
    158      * A possible setting for SUBSTITUTE_HANDLING:
    159      * Returns a null value when no data is available.
    160      * @stable ICU 58
    161      */
    162     UDISPCTX_NO_SUBSTITUTE = (UDISPCTX_TYPE_SUBSTITUTE_HANDLING<<8) + 1
    163 
    164 };
    165 /**
    166 *  @stable ICU 51
    167 */
    168 typedef enum UDisplayContext UDisplayContext;
    169 
    170 #endif /* #if !UCONFIG_NO_FORMATTING */
    171 
    172 #endif
    173