Server IP : 85.214.239.14 / Your IP : 18.226.214.10 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/cwd/usr/include/unicode/ |
Upload File : |
// © 2022 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html #ifndef __DISPLAYOPTIONS_H__ #define __DISPLAYOPTIONS_H__ #include "unicode/utypes.h" #if U_SHOW_CPLUSPLUS_API #if !UCONFIG_NO_FORMATTING /** * \file * \brief C++ API: Display options class * * This class is designed as a more modern version of the UDisplayContext mechanism. */ #include "unicode/udisplayoptions.h" #include "unicode/uversion.h" U_NAMESPACE_BEGIN #ifndef U_HIDE_DRAFT_API /** * Represents all the display options that are supported by CLDR such as grammatical case, noun * class, ... etc. It currently supports enums, but may be extended in the future to have other * types of data. It replaces a DisplayContext[] as a method parameter. * * NOTE: This class is Immutable, and uses a Builder interface. * * For example: * ``` * DisplayOptions x = * DisplayOptions::builder(). * .setGrammaticalCase(UDISPOPT_GRAMMATICAL_CASE_DATIVE) * .setPluralCategory(UDISPOPT_PLURAL_CATEGORY_FEW) * .build(); * ``` * * @draft ICU 72 */ class U_I18N_API DisplayOptions { public: /** * Responsible for building `DisplayOptions`. * * @draft ICU 72 */ class U_I18N_API Builder { public: /** * Sets the grammatical case. * * @param grammaticalCase The grammatical case. * @return Builder * @draft ICU 72 */ Builder &setGrammaticalCase(UDisplayOptionsGrammaticalCase grammaticalCase) { this->grammaticalCase = grammaticalCase; return *this; } /** * Sets the noun class. * * @param nounClass The noun class. * @return Builder * @draft ICU 72 */ Builder &setNounClass(UDisplayOptionsNounClass nounClass) { this->nounClass = nounClass; return *this; } /** * Sets the plural category. * * @param pluralCategory The plural category. * @return Builder * @draft ICU 72 */ Builder &setPluralCategory(UDisplayOptionsPluralCategory pluralCategory) { this->pluralCategory = pluralCategory; return *this; } /** * Sets the capitalization. * * @param capitalization The capitalization. * @return Builder * @draft ICU 72 */ Builder &setCapitalization(UDisplayOptionsCapitalization capitalization) { this->capitalization = capitalization; return *this; } /** * Sets the dialect handling. * * @param nameStyle The name style. * @return Builder * @draft ICU 72 */ Builder &setNameStyle(UDisplayOptionsNameStyle nameStyle) { this->nameStyle = nameStyle; return *this; } /** * Sets the display length. * * @param displayLength The display length. * @return Builder * @draft ICU 72 */ Builder &setDisplayLength(UDisplayOptionsDisplayLength displayLength) { this->displayLength = displayLength; return *this; } /** * Sets the substitute handling. * * @param substituteHandling The substitute handling. * @return Builder * @draft ICU 72 */ Builder &setSubstituteHandling(UDisplayOptionsSubstituteHandling substituteHandling) { this->substituteHandling = substituteHandling; return *this; } /** * Builds the display options. * * @return DisplayOptions * @draft ICU 72 */ DisplayOptions build() { return DisplayOptions(*this); } private: friend DisplayOptions; Builder(); Builder(const DisplayOptions &displayOptions); UDisplayOptionsGrammaticalCase grammaticalCase; UDisplayOptionsNounClass nounClass; UDisplayOptionsPluralCategory pluralCategory; UDisplayOptionsCapitalization capitalization; UDisplayOptionsNameStyle nameStyle; UDisplayOptionsDisplayLength displayLength; UDisplayOptionsSubstituteHandling substituteHandling; }; /** * Creates a builder with the `UNDEFINED` values for all the parameters. * * @return Builder * @draft ICU 72 */ static Builder builder(); /** * Creates a builder with the same parameters from this object. * * @return Builder * @draft ICU 72 */ Builder copyToBuilder() const; /** * Gets the grammatical case. * * @return UDisplayOptionsGrammaticalCase * @draft ICU 72 */ UDisplayOptionsGrammaticalCase getGrammaticalCase() const { return grammaticalCase; } /** * Gets the noun class. * * @return UDisplayOptionsNounClass * @draft ICU 72 */ UDisplayOptionsNounClass getNounClass() const { return nounClass; } /** * Gets the plural category. * * @return UDisplayOptionsPluralCategory * @draft ICU 72 */ UDisplayOptionsPluralCategory getPluralCategory() const { return pluralCategory; } /** * Gets the capitalization. * * @return UDisplayOptionsCapitalization * @draft ICU 72 */ UDisplayOptionsCapitalization getCapitalization() const { return capitalization; } /** * Gets the dialect handling. * * @return UDisplayOptionsNameStyle * @draft ICU 72 */ UDisplayOptionsNameStyle getNameStyle() const { return nameStyle; } /** * Gets the display length. * * @return UDisplayOptionsDisplayLength * @draft ICU 72 */ UDisplayOptionsDisplayLength getDisplayLength() const { return displayLength; } /** * Gets the substitute handling. * * @return UDisplayOptionsSubstituteHandling * @draft ICU 72 */ UDisplayOptionsSubstituteHandling getSubstituteHandling() const { return substituteHandling; } /** * Copies the DisplayOptions. * * @param other The options to copy. * @draft ICU 72 */ DisplayOptions &operator=(const DisplayOptions &other) = default; /** * Moves the DisplayOptions. * * @param other The options to move from. * @draft ICU 72 */ DisplayOptions &operator=(DisplayOptions &&other) noexcept = default; /** * Copies the DisplayOptions. * * @param other The options to copy. * @draft ICU 72 */ DisplayOptions(const DisplayOptions &other) = default; private: DisplayOptions(const Builder &builder); UDisplayOptionsGrammaticalCase grammaticalCase; UDisplayOptionsNounClass nounClass; UDisplayOptionsPluralCategory pluralCategory; UDisplayOptionsCapitalization capitalization; UDisplayOptionsNameStyle nameStyle; UDisplayOptionsDisplayLength displayLength; UDisplayOptionsSubstituteHandling substituteHandling; }; #endif // U_HIDE_DRAFT_API U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ #endif /* U_SHOW_CPLUSPLUS_API */ #endif // __DISPLAYOPTIONS_H__