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