-JArray<java::lang::String*>* org::xwt::plat::X11::listNativeFonts() {
- int numfonts;
- char** xfonts = XListFonts(display, "-*-*-*-*-normal-*-*-*-*-*-*-*-*-*", 0xFFFFFFFF, &numfonts);
- JArray<java::lang::String*>* fonts = (JArray<java::lang::String*>*)JvNewObjectArray(numfonts, &(::java::lang::String::class$), NULL);
- java::lang::String** jfonts = (java::lang::String**)(elements(fonts));
- for(int i=0; i<numfonts; i++)
- jfonts[i] = JvNewStringLatin1(xfonts[i], strlen(xfonts[i]));
- return fonts;
-}
-
-gnu::gcj::RawData* org::xwt::plat::X11::fontStringToStruct(jstring s) {
- int len = min(1024, JvGetStringUTFLength(s));
- char buf[len + 1];
- JvGetStringUTFRegion(s, 0, len, buf);
- buf[len] = '\0';
- return (gnu::gcj::RawData*)XLoadQueryFont(display, buf);
-}
-
-jint org::xwt::plat::X11::_getMaxAscent(::java::lang::String* font) { return ((XFontStruct*)fontToXFont(font))->max_bounds.ascent; }
-jint org::xwt::plat::X11::_getMaxDescent(::java::lang::String* font) { return ((XFontStruct*)fontToXFont(font))->max_bounds.descent; }
-jint org::xwt::plat::X11::_stringWidth(::java::lang::String* font, ::java::lang::String* text) {
- if (text == NULL) return 0;
- int len = JvGetStringUTFLength(text);
- char buf[len + 1];
- JvGetStringUTFRegion(text, 0, len, buf);
- buf[len] = '\0';
- return XTextWidth((XFontStruct*)fontToXFont(font), buf, len);
-}