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