// Native Gtk AWT label code. #include #include #include "gtkcommon.h" #include #include void gnu::awt::gtk::GtkLabelPeer::setText (java::lang::String *text) { _Jv_GdkThreadLock sync; jsize len = 0; if (text) len = JvGetStringUTFLength (text); // FIXME: this can allocate an unbounded amount. Should use heap // even though it is slower. char buf[len + 1]; if (text) JvGetStringUTFRegion (text, 0, len, buf); buf[len] = '\0'; gtk_label_set_text (GTK_LABEL (ptr), buf); } void gnu::awt::gtk::GtkLabelPeer::setAlignment (jint alignment) { using namespace java::awt; gfloat value = 0.5; if (alignment == Label::LEFT) value = 0.0; else if (alignment == Label::RIGHT) value = 1.0; _Jv_GdkThreadLock sync; gtk_misc_set_alignment (GTK_MISC (ptr), 0.5f, value); } void gnu::awt::gtk::GtkLabelPeer::create () { if (! ptr) { _Jv_GdkThreadLock sync; // This is a little inefficient. ptr = (gnu::gcj::RawData *) gtk_label_new (""); using namespace ::java::awt; Label *label = reinterpret_cast