It has been discovered that there are certain problems displaying
16-bit characters in MetaCard on Windows NT. The problem arise when
trying to use a Unicode font, and don't arise on Windows 95 and 98 (or
on the other platforms). The problem is that text that should use
double-byte Unicode fonts are always displayed in single-byte mode.
Implementation-wise, the problem is easy to fix (the engine would just
use the Win32 API call TextOutW() instead of TextOut()). But we need
some sort of scripting-language API to trigger this change. How
should this be done? Are there other xTalks or other languages that
have a solution to this problem?
We've pretty much ruled out all the obvious solutions including
converting the whole engine to use only Unicode (too many
cross-platform data format issues), embedding tags in the text strings
to trigger switching in and out of "wide" mode (like UTF-8, which is
too slow and cumbersome to use), or adding a new "textCharSet"
property (maybe a good long-term solution, but would require changing
the file format and so has been ruled out for 2.3).
One quick-and-dirty solution that's been proposed is to just add some
sort of tag to the fontName property to indicate that all text in this
font should be rendered in double-byte chunks. For example, the
fontName might be set to "Helvetica,W" or "Helvetica/U" (i.e., "wide"
or "unicode" tags). It would be relatively straightforward to hide
this hack in the UI (so the user would not have to see these names),
but it would maybe cause some problems for automated tools. We'd also
have to be very careful to choose a delimiter that would never be
found in any font name. Suggestions?
If you want to bone up on the issues involved here, I recommend:
http://www.unicode.org/
Regards,
Scott
********************************************************
Scott Raney [EMAIL PROTECTED] http://www.metacard.com
MetaCard: You know, there's an easier way to do that...