[PATCH] AWT DrawText Internationalization Problem
Takashi Okamoto
toraneko at kun.ne.jp
Sat Mar 3 19:44:45 PST 2001
Hi, Kaffe!!
I have posted AWT internationalization patch already.
But I haven't taken any reply.
I post it again and I explain this patch more detail following URL:
http://www.mycgiserver.com/~tora/java/diary/kaffe_en.html
The problem is that Kaffe AWT can't display multibyte characters
correctly. The principal reason is that Kaffe AWT use XDrawString16
and XFontStruct. I use XwcDrawString and XOC instead of these functions.
Could you fix it, Kaffe developers?
One more thing, we have following issue yet about AWT:
- Font should be changed by external file (like font.properties.xx)
for each locale.
- Now we can't input multibyte character. We should use
XIM ( XOpenXIM() ,XCreateXIC() ,XwcLookupString() ).
Does anyone fix these problems?
Please see above URL for more detail.
thanks.
---------------------
Takashi Okamoto
----- Original Message -----
From: "Takashi Okamoto" <toraneko at kun.ne.jp>
To: <kaffe at rufus.w3.org>
Sent: Wednesday, January 03, 2001 12:06 PM
Subject: [PATCH] AWT DrawText Internationalization Problem
> Hello ,Kaffe VM developers.
>
> I made AWT internationalization patch.
>
> Now ,we can't use multibyte character for X on Kaffe AWT.
>
> Principal reason is that Kaffe's AWT have been constructed under
> single font model. I made a patch for this problem. It uses
> XwcDrawString instead of XDrawString16. If you are interested in it,
> please chec kattached file. And you must modify following line at
> Default.java for your fontset when you use this patch. for example:
>
> original code at Default.java:
>
> String fntCat = Integer.toString(res) + '-' + res + "-*-*-*-*";
> file://FsDefault = "-b&h-lucida-%s-%s-*-*-*-%d-" + fntCat;
> FsDefault = "-adobe-helvetica-%s-%s-*-*-*-%d-" + fntCat;
> FsMonospaced = "-adobe-courier-%s-%s-*-*-*-%d-" + fntCat;
> FsSansSerif = "-adobe-helvetica-%s-%s-*-*-*-%d-" + fntCat;
> FsSerif = "-adobe-times-%s-%s-*-*-*-%d-" + fntCat;
> FsDialog = "-misc-fixed-%s-%s-*-*-*-%d-" + fntCat;
> FsDialogInput = "-b&h-lucidatypewriter-%s-%s-*-*-*-%d-" + fntCat;
> FsZapfDingbats = "-adobe-new century schoolbook-%s-%s-*-*-*-%d-" +
> fntCat;
>
> for japanese(kandata font):
>
> String fntCat = Integer.toString(res) + '-' + res + "-*-*-*-*";
> file://FsDefault = "-b&h-lucida-%s-%s-*-*-*-%d-" + fntCat;
> FsDefault = "-misc-kandata-%s-%s-normal--*-%d-" + fntCat;
> FsMonospaced = "-misc-kandata-%s-%s-normal--*-%d-" + fntCat;
> FsSansSerif = "-misc-kandata-%s-%s-normal--*-%d-" + fntCat;
> FsSerif = "-misc-kandata-%s-%s-normal--*-%d-" + fntCat;
> FsDialog = "-misc-kandata-%s-%s-normal--*-%d-" + fntCat;
> FsDialogInput = "-misc-kandata-%s-%s-normal--*-%d-" + fntCat;
> FsZapfDingbats = "-misc-kandata-%s-%s-normal--*-%d-" + fntCat;
>
>
> Note: Specified fontset should include all style.
> (ex. -misc-kandata-medium-r-..
> -misc-kandata-medium-i-..
> -misc-kandata-bold-r-..
> -misc-kandata-bold-i-..)
>
>
> I think default font should be modified by font.properties file (like
> SUN and IBM JDK).
>
>
> I also write main topic for this patch.
>
> in library/clib/awt/X/gra.c
>
> XDrawString16( X->dsp, gr->drw, gr->gc, x+gr->x0, y+gr->y0, b, len);
>
> XDrawString16 can't treat FontSet. It's only purpose for single font.
> So, it's not good for internationalization.
> I use XwcDrawString instead of XDrawString16.
>
>
> in library/clib/awt/X/fnt.c
>
> XFontStruct* fs = 0;
>
> -- snip --
>
> fs = XLoadQueryFont( X->dsp, buf);
>
>
> We must use XOC or XFontSet instead of XFontStruct for XwcDrawString.
> I used XOC for font set.
>
> Regards.
> ----------------------------
> Takashi Okamoto
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kaffe-1.0.6-awt-I18N.patch
Type: application/octet-stream
Size: 18620 bytes
Desc: not available
Url : http://kaffe.org/pipermail/kaffe/attachments/20010304/e294cde9/attachment-0003.obj
More information about the kaffe
mailing list