On Aug 7, 2008, at 4:15 PM, Randolph Valentine wrote:

Hi, all. I have a question regarding how to reliably determine that a font is a Unicode font which has Canadian Aboriginal Syllabics (CAS) glyphs. Now evidently because I'm working with Canadian Aborginal Syllabics, even when I
use a clearly Unicode font having these glyphs, and ask for the
fontlanguage, it gives me ASCI. So I thought would write a script that 1. selects a font, 2. sets a field to that font, 3. puts a CAS character e.g.
chartonum(5169) into the field, and if the font isn't Unicode, then no
character should show up. My little script (within an option menu that
provides the user with all of the fonts from fontnames) looks like this:

on menuPick pChosen
   set the textfont of fld "unicode_tester" to pChosen
   set the useunicode to true
   set the unicodetext of fld "unicode_tester" to numtochar(5169)
end menuPick

The problem is that even when I select a non-unicode font, I am still
getting the proper Syllabic character showing up for some reason. Anyone know why, and what I could do to get this to work? Basically, I want my
users to be able to tell if a font they pick is a unicode font having
Canadian Aboriginal Syllabics. Thank you!

Hi Rand,

Unfortunately, Unicode in Rev doesn't give you much control over the font the characters are displayed in. When you request a unicode character, the OS takes over and finds a suitable font (if any) to display it in. You really have little control over it. It is a known issue. See <http://quality.runrev.com/qacenter/show_bug.cgi?id=2493>.

There is a possible workaround. Try something like this (not tested, but I've used this technique lots):

on menuPick pChosen
   set the useunicode to true
   set the unicodetext of fld "unicode_tester" to numtochar(5169)
   put the textFont of char 1 of fld "unicode_tester" into tFont1
   get the htmlText of fld "unicode_tester"
   replace tFont1 with pChosen in it
   set the htmlText of fld "unicode_tester" to it
end menuPick

If you examine the htmlText of a field with unicode text in it, you'll see the <font> tags with face= elements that define the font for unicode characters. The characters themselves are HTML unicode entities. I've had good success changing fonts by just replacing the face= element in font tags like this.

Another thing that might work is:

   set the useunicode to true
   set the unicodetext of fld "unicode_tester" to numtochar(5169)
   put the textFont of char 1 of fld "unicode_tester" into tFont1
   replace item 1 of tFont1 with pChosen
   set the unicodeText of char 1 of fld "unicode_tester" to tFont1

I'll be interested in hearing if this works for you.

Regards,

Devin

Devin Asay
Humanities Technology and Research Support Center
Brigham Young University

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to