summaryrefslogtreecommitdiffstats
path: root/libjava/gnu/gcj/xlib/natGC.cc
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-04-19 17:52:15 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-04-19 17:52:15 +0000
commite83e30fbce9ecbe4f605c18d00e699271b76a974 (patch)
tree88edbc8c34db0ddffa450851b60525991825b273 /libjava/gnu/gcj/xlib/natGC.cc
parentedaf8cb52509f6bee0ae8cc905f6c0380925d095 (diff)
downloadppe42-gcc-e83e30fbce9ecbe4f605c18d00e699271b76a974.tar.gz
ppe42-gcc-e83e30fbce9ecbe4f605c18d00e699271b76a974.zip
2003-04-19 Scott Gilbertson <scottg@mantatest.com>
* libjava/gnu/gcj/xlib/natFont.cc (getStringWidth): Support 16-bit characters. * libjava/gnu/gcj/xlib/natGC.cc (drawString): Support 16-bit characters. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65820 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/gnu/gcj/xlib/natGC.cc')
-rw-r--r--libjava/gnu/gcj/xlib/natGC.cc36
1 files changed, 17 insertions, 19 deletions
diff --git a/libjava/gnu/gcj/xlib/natGC.cc b/libjava/gnu/gcj/xlib/natGC.cc
index 1a1bd586d8e..11f4b28f22b 100644
--- a/libjava/gnu/gcj/xlib/natGC.cc
+++ b/libjava/gnu/gcj/xlib/natGC.cc
@@ -95,27 +95,25 @@ void gnu::gcj::xlib::GC::drawString(jstring text, jint x, jint y)
::Drawable drawableXID = target->getXID();
::GC gc = (::GC) structure;
- /*
- FIXME: do something along the lines of the following instead:
+ jint length = text->length();
+ jchar* txt = JvGetStringChars(text);
- jint length = text->length();
- jchar* txt = JvGetStringChars(text);
-
- XChar2b xwchars[length];
+ XChar2b xwchars[length];
- // FIXME: Add convertion and caching
-
- for (int i=0; i<length; i++)
- {
- XChar2b* xc = &(xwchars[i]);
- jchar jc = txt[i];
- xc->byte1 = jc & 0xff;
- xc->byte2 = jc >> 8;
- }
-
- XDrawString16(dpy, drawableXID, gc, x, y, xwchars, length);
- */
-
+ // FIXME: Convert to the character set used in the font, which may
+ // or may not be unicode. For now, treat everything as 16-bit and
+ // use character codes directly, which should be OK for unicode or
+ // 8-bit ascii fonts.
+
+ for (int i=0; i<length; i++)
+ {
+ XChar2b* xc = &(xwchars[i]);
+ jchar jc = txt[i];
+ xc->byte1 = (jc >> 8) & 0xff;
+ xc->byte2 = jc & 0xff;
+ }
+ XDrawString16(dpy, drawableXID, gc, x, y, xwchars, length);
+
// FIXME, temporary code:
int len = JvGetStringUTFLength(text);
char ctxt[len+1];
OpenPOWER on IntegriCloud