41 E_unicode = E_utf16be,
49 INLINE
void set_encoding(Encoding encoding);
50 INLINE Encoding get_encoding()
const;
52 INLINE
static void set_default_encoding(Encoding encoding);
53 INLINE
static Encoding get_default_encoding();
54 MAKE_PROPERTY(default_encoding, get_default_encoding, set_default_encoding);
57 EXTEND
void set_text(PyObject *text);
58 EXTEND
void set_text(PyObject *text, Encoding encoding);
60 INLINE
void set_text(
const std::string &text);
61 INLINE
void set_text(
const std::string &text, Encoding encoding);
63 INLINE
void clear_text();
64 INLINE
bool has_text()
const;
70 EXTEND PyObject *get_text()
const;
71 EXTEND PyObject *get_text(Encoding encoding)
const;
72 EXTEND
void append_text(PyObject *text);
74 INLINE std::string get_text()
const;
75 INLINE std::string get_text(Encoding encoding)
const;
76 INLINE
void append_text(
const std::string &text);
78 INLINE
void append_unicode_char(char32_t character);
79 INLINE
size_t get_num_chars()
const;
80 INLINE
int get_unicode_char(
size_t index)
const;
81 INLINE
void set_unicode_char(
size_t index, char32_t character);
82 INLINE std::string get_encoded_char(
size_t index)
const;
83 INLINE std::string get_encoded_char(
size_t index, Encoding encoding)
const;
84 INLINE std::string get_text_as_ascii()
const;
86 INLINE
static std::string reencode_text(
const std::string &text, Encoding from, Encoding to);
88 INLINE
static bool unicode_isalpha(char32_t character);
89 INLINE
static bool unicode_isdigit(char32_t character);
90 INLINE
static bool unicode_ispunct(char32_t character);
91 INLINE
static bool unicode_islower(char32_t character);
92 INLINE
static bool unicode_isupper(char32_t character);
93 INLINE
static bool unicode_isspace(char32_t character);
94 INLINE
static int unicode_toupper(char32_t character);
95 INLINE
static int unicode_tolower(char32_t character);
97 INLINE
static std::string upper(
const std::string &source);
98 INLINE
static std::string upper(
const std::string &source, Encoding encoding);
99 INLINE
static std::string lower(
const std::string &source);
100 INLINE
static std::string lower(
const std::string &source, Encoding encoding);
104 INLINE
void set_wtext(
const std::wstring &wtext);
105 INLINE
const std::wstring &get_wtext()
const;
106 INLINE
void append_wtext(
const std::wstring &text);
107 std::wstring get_wtext_as_ascii()
const;
108 bool is_wtext()
const;
111 EXTEND
static PyObject *encode_wchar(char32_t ch, Encoding encoding);
112 EXTEND INLINE PyObject *encode_wtext(
const std::wstring &wtext)
const;
113 EXTEND
static PyObject *encode_wtext(
const std::wstring &wtext, Encoding encoding);
114 EXTEND INLINE PyObject *decode_text(PyObject *text)
const;
115 EXTEND
static PyObject *decode_text(PyObject *text, Encoding encoding);
117 static std::string encode_wchar(char32_t ch, Encoding encoding);
118 INLINE std::string encode_wtext(
const std::wstring &wtext)
const;
119 static std::string encode_wtext(
const std::wstring &wtext, Encoding encoding);
120 INLINE std::wstring decode_text(
const std::string &text)
const;
121 static std::wstring decode_text(
const std::string &text, Encoding encoding);
124 MAKE_PROPERTY(text, get_text, set_text);
127 virtual void text_changed();
132 F_got_wtext = 0x0002,
134 static std::wstring decode_text_impl(
StringDecoder &decoder);
141 static Encoding _default_encoding;
144 EXPCL_DTOOL_DTOOLUTIL std::ostream &
145 operator << (std::ostream &out, TextEncoder::Encoding encoding);
146 EXPCL_DTOOL_DTOOLUTIL std::istream &
147 operator >> (std::istream &in, TextEncoder::Encoding &encoding);
154 INLINE EXPCL_DTOOL_DTOOLUTIL std::ostream &
155 operator << (std::ostream &out,
const std::wstring &str);
The base class to a family of classes that decode various kinds of encoded byte streams.
This class can be used to convert text between multiple representations, e.g.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
EXPCL_DTOOL_DTOOLUTIL std::ostream & operator<<(std::ostream &out, const std::wstring &str)
Uses the current default encoding to output the wstring.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.