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