Restrictions |
Text is rendered using the DrawText
method of a graphics context. Its argument is a TDesC8
, a string of bytes. A single Unicode character can take between one and three bytes in UTF-8 encoding, and UniFEP rendering expects that characters are not split across several calls to DrawText
.
Unfortunately, the EPOC rich text component does not fulfill this assumption, and so UniFEP implements a layer of protection on the Eikon level. This protection is only applied to a graphics context for the screen device in the Eikon environment (a graphic context created from CEikonEnv::Screen()
). In particular, the protection is available for CEikonEnv::SystemGc()
.
Protection is not applied to other graphics contexts, in particular not to any graphics context for rendering to a bitmap. Developers can create a protection layer explicitely using a CUnicodeRenderer
object.
UniFEPĀ V2 has the following, much more severe restrictions:
DrawText
method of CWindowGc
. All other graphics contexts (in particular, the CFbsBitGc
class used for rendering to bitmaps) do not support Unicode at all.
Developers can render Unicode to a bitmap by using a CUnicodeRenderer
object.
BusyMsgL
and InfoMsgL
(infoprints) do not use Unicode.
DrawVerticalText
does not use Unicode.
Restrictions |