OSDN Git Service

2005-02-14 Thomas Fitzsimmons <fitzsim@redhat.com>
authorfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Feb 2005 21:08:08 +0000 (21:08 +0000)
committerfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 14 Feb 2005 21:08:08 +0000 (21:08 +0000)
* jawt.c: New file.
* include/jawt.h: Likewise.
* include/jawt_md.h: Likewise.
* include/Makefile.am (tool_include__HEADERS): Add jawt.h and
jawt_md.h files.
* include/Makefile.in: Regenerate.
* jni/classpath/classpath_jawt.h: Likewise.
* jni/gtk-peer/gtk_jawt.c: Likewise.
* Makefile.am: Build libjawt.so.
* Makefile.in: Regenerate.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@95047 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/include/Makefile.am
libjava/include/Makefile.in
libjava/include/jawt.h [new file with mode: 0644]
libjava/include/jawt_md.h [new file with mode: 0644]
libjava/jawt.c [new file with mode: 0644]
libjava/jni/classpath/classpath_jawt.h [new file with mode: 0644]
libjava/jni/gtk-peer/gtk_jawt.c [new file with mode: 0644]

index 78c0546..1adfca2 100644 (file)
@@ -1,3 +1,16 @@
+2005-02-14  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+       * jawt.c: New file.
+       * include/jawt.h: Likewise.
+       * include/jawt_md.h: Likewise.
+       * include/Makefile.am (tool_include__HEADERS): Add jawt.h and
+       jawt_md.h files.
+       * include/Makefile.in: Regenerate.
+       * jni/classpath/classpath_jawt.h: Likewise.
+       * jni/gtk-peer/gtk_jawt.c: Likewise.
+       * Makefile.am: Build libjawt.so.
+       * Makefile.in: Regenerate.
+
 2005-02-14  Tom Tromey  <tromey@redhat.com>
 
        * testsuite/libjava.lang/PR19921.java: Use correct class name.
index ba40f65..249388e 100644 (file)
@@ -102,12 +102,14 @@ endif
 
 if GTK_AWT
 cond_gtk_ltlibrary = lib-gnu-java-awt-peer-gtk.la
+cond_gtk_jawt_ltlibrary = libjawt.la
 else
 cond_gtk_ltlibrary =
+cond_gtk_jawt_ltlibrary =
 endif
 
 toolexeclib_LTLIBRARIES = libgcj.la libgij.la \
-    $(cond_gtk_ltlibrary) $(cond_xlib_ltlibrary)
+    $(cond_gtk_ltlibrary) $(cond_gtk_jawt_ltlibrary) $(cond_xlib_ltlibrary)
 toolexecmainlib_DATA = libgcj.spec
 
 pkgconfigdir = $(libdir)/pkgconfig
@@ -290,6 +292,7 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c     \
 jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \
 jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
 jni/gtk-peer/gthread-jni.c \
+jni/gtk-peer/gtk_jawt.c \
 jni/classpath/jcl.c \
 jni/classpath/jnilink.c        \
 jni/classpath/native_state.c \
@@ -460,6 +463,14 @@ lib_gnu_java_awt_peer_gtk_la_LDFLAGS = \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK)
 
+libjawt_la_SOURCES = jawt.c
+libjawt_la_CFLAGS = -I$(srcdir)/jni/classpath $(PEDANTIC_CFLAGS) $(X_CFLAGS)
+libjawt_la_LIBADD = lib-gnu-java-awt-peer-gtk.la
+libjawt_la_LDFLAGS = \
+       -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+       $(LIBGCJ_LD_SYMBOLIC)
+libjawt_la_LINK = $(LIBLINK)
+
 lib_gnu_awt_xlib_la_SOURCES = \
        $(xlib_java_source_files) \
        $(xlib_nat_source_files)
index 9b2d274..064da74 100644 (file)
@@ -17,7 +17,7 @@
 
 
 
-SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(lib_gnu_java_awt_peer_gtk_la_SOURCES) $(libgcj_la_SOURCES) $(libgij_la_SOURCES) $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
+SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(lib_gnu_java_awt_peer_gtk_la_SOURCES) $(libgcj_la_SOURCES) $(libgij_la_SOURCES) $(libjawt_la_SOURCES) $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
 
 srcdir = @srcdir@
 top_srcdir = @top_srcdir@
@@ -59,7 +59,16 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
        ChangeLog NEWS THANKS
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+am__aclocal_m4_deps = $(top_srcdir)/../config/accross.m4 \
+       $(top_srcdir)/../config/acx.m4 \
+       $(top_srcdir)/../config/gcc-version.m4 \
+       $(top_srcdir)/../config/gxx-include-dir.m4 \
+       $(top_srcdir)/../config/iconv.m4 \
+       $(top_srcdir)/../config/lcmessage.m4 \
+       $(top_srcdir)/../config/lib-ld.m4 \
+       $(top_srcdir)/../config/lib-link.m4 \
+       $(top_srcdir)/../config/lib-prefix.m4 $(top_srcdir)/pkg.m4 \
+       $(top_srcdir)/acinclude.m4 \
        $(top_srcdir)/../config/no-executables.m4 \
        $(top_srcdir)/../libtool.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
@@ -213,12 +222,12 @@ am__lib_gnu_java_awt_peer_gtk_la_SOURCES_DIST =  \
        jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c \
        jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \
        jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
-       jni/gtk-peer/gthread-jni.c jni/classpath/jcl.c \
-       jni/classpath/jnilink.c jni/classpath/native_state.c \
-       jni/classpath/primlib.c jni/gtk-peer/gthread-jni.h \
-       jni/gtk-peer/gtkpeer.h jni/classpath/jcl.h \
-       jni/classpath/jnilink.h jni/classpath/native_state.h \
-       jni/classpath/primlib.h
+       jni/gtk-peer/gthread-jni.c jni/gtk-peer/gtk_jawt.c \
+       jni/classpath/jcl.c jni/classpath/jnilink.c \
+       jni/classpath/native_state.c jni/classpath/primlib.c \
+       jni/gtk-peer/gthread-jni.h jni/gtk-peer/gtkpeer.h \
+       jni/classpath/jcl.h jni/classpath/jnilink.h \
+       jni/classpath/native_state.h jni/classpath/primlib.h
 am__objects_3 = gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkTextLayout.lo \
        gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontMetrics.lo \
        gnu/java/awt/peer/gtk/lib_gnu_java_awt_peer_gtk_la-GdkFontPeer.lo \
@@ -303,6 +312,7 @@ am__objects_5 = $(am__objects_4) \
        jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
        jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.lo \
        jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo \
+       jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo \
        jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo \
        jni/classpath/lib_gnu_java_awt_peer_gtk_la-jnilink.lo \
        jni/classpath/lib_gnu_java_awt_peer_gtk_la-native_state.lo \
@@ -4586,6 +4596,10 @@ am_libgcj_la_OBJECTS = prims.lo jni.lo exception.lo link.lo \
 libgcj_la_OBJECTS = $(am_libgcj_la_OBJECTS)
 am_libgij_la_OBJECTS = gij.lo
 libgij_la_OBJECTS = $(am_libgij_la_OBJECTS)
+libjawt_la_DEPENDENCIES = lib-gnu-java-awt-peer-gtk.la
+am_libjawt_la_OBJECTS = libjawt_la-jawt.lo
+libjawt_la_OBJECTS = $(am_libjawt_la_OBJECTS)
+@GTK_AWT_TRUE@am_libjawt_la_rpath = -rpath $(toolexeclibdir)
 binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am_gcj_dbtool_OBJECTS = gnu/gcj/tools/gcj_dbtool/Main.$(OBJEXT)
@@ -4631,15 +4645,15 @@ LTGCJCOMPILE = $(LIBTOOL) --mode=compile $(GCJ) $(AM_GCJFLAGS) \
 GCJLD = $(GCJ)
 SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
        $(lib_gnu_java_awt_peer_gtk_la_SOURCES) $(libgcj_la_SOURCES) \
-       $(libgij_la_SOURCES) $(gcj_dbtool_SOURCES) \
-       $(gen_from_JIS_SOURCES) $(gij_SOURCES) $(grmic_SOURCES) \
-       $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
+       $(libgij_la_SOURCES) $(libjawt_la_SOURCES) \
+       $(gcj_dbtool_SOURCES) $(gen_from_JIS_SOURCES) $(gij_SOURCES) \
+       $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
 DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
        $(am__lib_gnu_java_awt_peer_gtk_la_SOURCES_DIST) \
        $(am__libgcj_la_SOURCES_DIST) $(libgij_la_SOURCES) \
-       $(gcj_dbtool_SOURCES) $(am__gen_from_JIS_SOURCES_DIST) \
-       $(gij_SOURCES) $(grmic_SOURCES) $(grmiregistry_SOURCES) \
-       $(jv_convert_SOURCES)
+       $(libjawt_la_SOURCES) $(gcj_dbtool_SOURCES) \
+       $(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
+       $(grmic_SOURCES) $(grmiregistry_SOURCES) $(jv_convert_SOURCES)
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
        html-recursive info-recursive install-data-recursive \
        install-exec-recursive install-info-recursive \
@@ -4740,11 +4754,13 @@ LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
 LIBGCJ_CXXFLAGS = @LIBGCJ_CXXFLAGS@
 LIBGCJ_JAVAFLAGS = @LIBGCJ_JAVAFLAGS@
 LIBGCJ_LD_SYMBOLIC = @LIBGCJ_LD_SYMBOLIC@
+LIBICONV = @LIBICONV@
 LIBLTDL = @LIBLTDL@
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
 LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
 LTLIBOBJS = @LTLIBOBJS@
 MAINT = @MAINT@
 MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
@@ -4767,6 +4783,7 @@ PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
 PANGOFT2_LIBS = @PANGOFT2_LIBS@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
 PLATFORM_INNER_NAT_HDRS = @PLATFORM_INNER_NAT_HDRS@
 RANLIB = @RANLIB@
 SET_MAKE = @SET_MAKE@
@@ -4844,6 +4861,10 @@ build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
 exec_prefix = @exec_prefix@
+gcc_version = @gcc_version@
+gcc_version_full = @gcc_version_full@
+gcc_version_trigger = @gcc_version_trigger@
+gxx_include_dir = @gxx_include_dir@
 here = @here@
 host = @host@
 host_alias = @host_alias@
@@ -4856,6 +4877,7 @@ install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
 libgcj_basedir = @libgcj_basedir@
+libstdcxx_incdir = @libstdcxx_incdir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 mkdir_p = @mkdir_p@
@@ -4916,8 +4938,10 @@ write_entries_to_file = $(shell rm -f $(2) || :) $(shell touch $(2)) $(foreach o
 @XLIB_AWT_TRUE@cond_xlib_ltlibrary = lib-gnu-awt-xlib.la
 @GTK_AWT_FALSE@cond_gtk_ltlibrary = 
 @GTK_AWT_TRUE@cond_gtk_ltlibrary = lib-gnu-java-awt-peer-gtk.la
+@GTK_AWT_FALSE@cond_gtk_jawt_ltlibrary = 
+@GTK_AWT_TRUE@cond_gtk_jawt_ltlibrary = libjawt.la
 toolexeclib_LTLIBRARIES = libgcj.la libgij.la \
-    $(cond_gtk_ltlibrary) $(cond_xlib_ltlibrary)
+    $(cond_gtk_ltlibrary) $(cond_gtk_jawt_ltlibrary) $(cond_xlib_ltlibrary)
 
 toolexecmainlib_DATA = libgcj.spec
 pkgconfigdir = $(libdir)/pkgconfig
@@ -5046,6 +5070,7 @@ jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c   \
 jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c \
 jni/gtk-peer/gnu_java_awt_peer_gtk_GThreadNativeMethodRunner.c \
 jni/gtk-peer/gthread-jni.c \
+jni/gtk-peer/gtk_jawt.c \
 jni/classpath/jcl.c \
 jni/classpath/jnilink.c        \
 jni/classpath/native_state.c \
@@ -5119,6 +5144,14 @@ lib_gnu_java_awt_peer_gtk_la_LDFLAGS = \
         -version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
 
 lib_gnu_java_awt_peer_gtk_la_LINK = $(LIBLINK)
+libjawt_la_SOURCES = jawt.c
+libjawt_la_CFLAGS = -I$(srcdir)/jni/classpath $(PEDANTIC_CFLAGS) $(X_CFLAGS)
+libjawt_la_LIBADD = lib-gnu-java-awt-peer-gtk.la
+libjawt_la_LDFLAGS = \
+       -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+       $(LIBGCJ_LD_SYMBOLIC)
+
+libjawt_la_LINK = $(LIBLINK)
 lib_gnu_awt_xlib_la_SOURCES = \
        $(xlib_java_source_files) \
        $(xlib_nat_source_files)
@@ -8418,6 +8451,9 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GThreadNativeMet
 jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo:  \
        jni/gtk-peer/$(am__dirstamp) \
        jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
+jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo:  \
+       jni/gtk-peer/$(am__dirstamp) \
+       jni/gtk-peer/$(DEPDIR)/$(am__dirstamp)
 jni/classpath/$(am__dirstamp):
        @$(mkdir_p) jni/classpath
        @: > jni/classpath/$(am__dirstamp)
@@ -15614,6 +15650,8 @@ sysdep/dwarf2-backtrace.lo: sysdep/$(am__dirstamp) \
        sysdep/$(DEPDIR)/$(am__dirstamp)
 libgij.la: $(libgij_la_OBJECTS) $(libgij_la_DEPENDENCIES) 
        $(CXXLINK) -rpath $(toolexeclibdir) $(libgij_la_LDFLAGS) $(libgij_la_OBJECTS) $(libgij_la_LIBADD) $(LIBS)
+libjawt.la: $(libjawt_la_OBJECTS) $(libjawt_la_DEPENDENCIES) 
+       $(libjawt_la_LINK) $(am_libjawt_la_rpath) $(libjawt_la_LDFLAGS) $(libjawt_la_OBJECTS) $(libjawt_la_LIBADD) $(LIBS)
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
        test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@@ -21200,6 +21238,8 @@ mostlyclean-compile:
        -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkWindowPeer.lo
        -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.$(OBJEXT)
        -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo
+       -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.$(OBJEXT)
+       -rm -f jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo
        -rm -f org/ietf/jgss/ChannelBinding.$(OBJEXT)
        -rm -f org/ietf/jgss/ChannelBinding.lo
        -rm -f org/ietf/jgss/GSSContext.$(OBJEXT)
@@ -21229,6 +21269,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gij.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libjawt_la-jawt.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/no-threads.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nogc.Plo@am__quote@
@@ -23988,6 +24029,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkToolkit.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gnu_java_awt_peer_gtk_GtkWindowPeer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gthread-jni.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@org/ietf/jgss/$(DEPDIR)/ChannelBinding.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@org/ietf/jgss/$(DEPDIR)/GSSContext.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@org/ietf/jgss/$(DEPDIR)/GSSCredential.Plo@am__quote@
@@ -24302,6 +24344,13 @@ jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo: jni/gtk-peer/gthread-j
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gthread-jni.lo `test -f 'jni/gtk-peer/gthread-jni.c' || echo '$(srcdir)/'`jni/gtk-peer/gthread-jni.c
 
+jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo: jni/gtk-peer/gtk_jawt.c
+@am__fastdepCC_TRUE@   if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo -MD -MP -MF "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Tpo" -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo `test -f 'jni/gtk-peer/gtk_jawt.c' || echo '$(srcdir)/'`jni/gtk-peer/gtk_jawt.c; \
+@am__fastdepCC_TRUE@   then mv -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Tpo" "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Plo"; else rm -f "jni/gtk-peer/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='jni/gtk-peer/gtk_jawt.c' object='jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/gtk-peer/lib_gnu_java_awt_peer_gtk_la-gtk_jawt.lo `test -f 'jni/gtk-peer/gtk_jawt.c' || echo '$(srcdir)/'`jni/gtk-peer/gtk_jawt.c
+
 jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo: jni/classpath/jcl.c
 @am__fastdepCC_TRUE@   if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -MT jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo -MD -MP -MF "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo" -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-jcl.lo `test -f 'jni/classpath/jcl.c' || echo '$(srcdir)/'`jni/classpath/jcl.c; \
 @am__fastdepCC_TRUE@   then mv -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo" "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Plo"; else rm -f "jni/classpath/$(DEPDIR)/lib_gnu_java_awt_peer_gtk_la-jcl.Tpo"; exit 1; fi
@@ -24330,6 +24379,13 @@ jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo: jni/classpath/primlib.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_gnu_java_awt_peer_gtk_la_CFLAGS) $(CFLAGS) -c -o jni/classpath/lib_gnu_java_awt_peer_gtk_la-primlib.lo `test -f 'jni/classpath/primlib.c' || echo '$(srcdir)/'`jni/classpath/primlib.c
 
+libjawt_la-jawt.lo: jawt.c
+@am__fastdepCC_TRUE@   if $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjawt_la_CFLAGS) $(CFLAGS) -MT libjawt_la-jawt.lo -MD -MP -MF "$(DEPDIR)/libjawt_la-jawt.Tpo" -c -o libjawt_la-jawt.lo `test -f 'jawt.c' || echo '$(srcdir)/'`jawt.c; \
+@am__fastdepCC_TRUE@   then mv -f "$(DEPDIR)/libjawt_la-jawt.Tpo" "$(DEPDIR)/libjawt_la-jawt.Plo"; else rm -f "$(DEPDIR)/libjawt_la-jawt.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='jawt.c' object='libjawt_la-jawt.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libjawt_la_CFLAGS) $(CFLAGS) -c -o libjawt_la-jawt.lo `test -f 'jawt.c' || echo '$(srcdir)/'`jawt.c
+
 .cc.o:
 @am__fastdepCXX_TRUE@  depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`; \
 @am__fastdepCXX_TRUE@  if $(CXXCOMPILE) -MT $@ -MD -MP -MF "$$depbase.Tpo" -c -o $@ $<; \
index 5b6177b..089884b 100644 (file)
@@ -5,4 +5,4 @@ AUTOMAKE_OPTIONS = foreign
 # autoconf2.13's target_alias
 target_noncanonical = @target_noncanonical@
 
-tool_include__HEADERS = jni.h jvmpi.h
+tool_include__HEADERS = jni.h jawt.h jawt_md.h jvmpi.h
index 7d2bb46..4c05fce 100644 (file)
@@ -296,7 +296,7 @@ toolexecdir = @toolexecdir@
 toolexeclibdir = @toolexeclibdir@
 toolexecmainlibdir = @toolexecmainlibdir@
 AUTOMAKE_OPTIONS = foreign
-tool_include__HEADERS = jni.h jvmpi.h
+tool_include__HEADERS = jni.h jawt.h jawt_md.h jvmpi.h
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-am
 
diff --git a/libjava/include/jawt.h b/libjava/include/jawt.h
new file mode 100644 (file)
index 0000000..52cde83
--- /dev/null
@@ -0,0 +1,92 @@
+/* jawt.h -- the machine-independent parts of the AWT Native Interface
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
+
+   Linking this library statically or dynamically with other modules is
+   making a combined work based on this library.  Thus, the terms and
+   conditions of the GNU General Public License cover the whole
+   combination.
+
+   As a special exception, the copyright holders of this library give you
+   permission to link this library with independent modules to produce an
+   executable, regardless of the license terms of these independent
+   modules, and to copy and distribute the resulting executable under
+   terms of your choice, provided that you also meet, for each linked
+   independent module, the terms and conditions of the license of that
+   module.  An independent module is a module which is not derived from
+   or based on this library.  If you modify this library, you may extend
+   this exception to your version of the library, but you are not
+   obligated to do so.  If you do not wish to do so, delete this
+   exception statement from your version. */
+
+
+/*
+ * The AWT Native Interface allows direct access to native screen
+ * resources from within a Canvas's paint method.
+ */
+
+#ifndef __jawt_h__
+#define __jawt_h__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define JAWT_VERSION_1_3 0x10003
+
+#define JAWT_LOCK_ERROR 0x1
+
+struct _JAWT_DrawingSurfaceInfo
+{
+  void* platformInfo;
+};
+
+struct _JAWT_DrawingSurface
+{
+  jint (JNICALL* Lock) (struct _JAWT_DrawingSurface*);
+  void (JNICALL* Unlock) (struct _JAWT_DrawingSurface*);
+
+  struct _JAWT_DrawingSurfaceInfo* (JNICALL* GetDrawingSurfaceInfo) (struct _JAWT_DrawingSurface*);
+  void (JNICALL* FreeDrawingSurfaceInfo) (struct _JAWT_DrawingSurfaceInfo*);
+
+  struct _JAWT_DrawingSurfaceInfo* surface_info;
+
+  /* FIXME: also include bounding rectangle of drawing surface. */
+  /* FIXME: also include current clipping region. */
+};
+
+struct _JAWT
+{
+  jint version;
+  struct _JAWT_DrawingSurface* (JNICALL* GetDrawingSurface) (JNIEnv*, jobject);
+  void (JNICALL* FreeDrawingSurface) (struct _JAWT_DrawingSurface*);
+};
+
+typedef struct _JAWT_DrawingSurfaceInfo JAWT_DrawingSurfaceInfo;
+typedef struct _JAWT_DrawingSurface JAWT_DrawingSurface;
+typedef struct _JAWT JAWT;
+
+JNIEXPORT jboolean JNICALL JAWT_GetAWT (JNIEnv* env, struct _JAWT* awt);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __jawt_h__ */
diff --git a/libjava/include/jawt_md.h b/libjava/include/jawt_md.h
new file mode 100644 (file)
index 0000000..94abb57
--- /dev/null
@@ -0,0 +1,63 @@
+/* jawt_md.h -- the X11-dependent parts of the AWT Native Interface
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
+
+   Linking this library statically or dynamically with other modules is
+   making a combined work based on this library.  Thus, the terms and
+   conditions of the GNU General Public License cover the whole
+   combination.
+
+   As a special exception, the copyright holders of this library give you
+   permission to link this library with independent modules to produce an
+   executable, regardless of the license terms of these independent
+   modules, and to copy and distribute the resulting executable under
+   terms of your choice, provided that you also meet, for each linked
+   independent module, the terms and conditions of the license of that
+   module.  An independent module is a module which is not derived from
+   or based on this library.  If you modify this library, you may extend
+   this exception to your version of the library, but you are not
+   obligated to do so.  If you do not wish to do so, delete this
+   exception statement from your version. */
+
+
+#ifndef __jawt_md_h__
+#define __jawt_md_h__
+
+#include <jni.h>
+#include <jawt.h>
+#include <X11/Xlib.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct _JAWT_X11DrawingSurfaceInfo
+{
+  Display* display;
+  Drawable drawable;
+};
+
+typedef struct _JAWT_X11DrawingSurfaceInfo JAWT_X11DrawingSurfaceInfo;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __jawt_md_h__ */
diff --git a/libjava/jawt.c b/libjava/jawt.c
new file mode 100644 (file)
index 0000000..08cd78c
--- /dev/null
@@ -0,0 +1,156 @@
+/* jawt.c -- X11 implementation of the AWT Native Interface
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
+
+   Linking this library statically or dynamically with other modules is
+   making a combined work based on this library.  Thus, the terms and
+   conditions of the GNU General Public License cover the whole
+   combination.
+
+   As a special exception, the copyright holders of this library give you
+   permission to link this library with independent modules to produce an
+   executable, regardless of the license terms of these independent
+   modules, and to copy and distribute the resulting executable under
+   terms of your choice, provided that you also meet, for each linked
+   independent module, the terms and conditions of the license of that
+   module.  An independent module is a module which is not derived from
+   or based on this library.  If you modify this library, you may extend
+   this exception to your version of the library, but you are not
+   obligated to do so.  If you do not wish to do so, delete this
+   exception statement from your version. */
+
+
+#include <jni.h>
+#include <jawt.h>
+#include <jawt_md.h>
+#include "classpath_jawt.h"
+
+static jint (JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface);
+static void (JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface);
+static JAWT_DrawingSurfaceInfo* (JNICALL _Jv_GetDrawingSurfaceInfo)
+     (JAWT_DrawingSurface* surface);
+static void (JNICALL _Jv_FreeDrawingSurfaceInfo)
+     (JAWT_DrawingSurfaceInfo* surface_info);
+static JAWT_DrawingSurface* (JNICALL _Jv_GetDrawingSurface) (JNIEnv* env,
+                                                            jobject canvas);
+static void (JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface);
+
+JNIEXPORT jboolean JNICALL
+JAWT_GetAWT (JNIEnv* env, JAWT* awt)
+{
+  jint retrieved_version;
+
+  retrieved_version = classpath_jawt_get_awt_version ();
+
+  if (awt->version > retrieved_version)
+    return JNI_FALSE;
+
+  awt->GetDrawingSurface = _Jv_GetDrawingSurface;
+  awt->FreeDrawingSurface = _Jv_FreeDrawingSurface;
+
+  return JNI_TRUE;
+}
+
+/* JAWT_DrawingSurface functions */
+
+static jint
+(JNICALL _Jv_Lock) (JAWT_DrawingSurface* surface)
+{
+  /* lock the drawing surface */
+  return classpath_jawt_lock ();
+}
+
+static void
+(JNICALL _Jv_Unlock) (JAWT_DrawingSurface* surface)
+{
+  classpath_jawt_unlock ();
+}
+
+static JAWT_DrawingSurfaceInfo*
+(JNICALL _Jv_GetDrawingSurfaceInfo) (JAWT_DrawingSurface* surface)
+{
+  if (surface == NULL)
+    return NULL;
+
+  return surface->surface_info;
+}
+
+static void
+(JNICALL _Jv_FreeDrawingSurfaceInfo) (JAWT_DrawingSurfaceInfo* surface_info)
+{
+  JAWT_X11DrawingSurfaceInfo* surface_info_x11;
+
+  if (surface_info == NULL)
+    return;
+
+  surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface_info->platformInfo;
+
+  surface_info_x11->display = NULL;
+  surface_info_x11->drawable = 0;
+
+  free (surface_info);
+  surface_info = NULL;
+}
+
+/* JAWT functions */
+
+static JAWT_DrawingSurface*
+(JNICALL _Jv_GetDrawingSurface) (JNIEnv* env, jobject canvas)
+{
+  JAWT_DrawingSurface* surface;
+  JAWT_X11DrawingSurfaceInfo* surface_info_x11;
+
+  surface = (JAWT_DrawingSurface*) malloc (sizeof (JAWT_DrawingSurface));
+
+  if (surface == NULL)
+    return NULL;
+
+  /* initialize function pointers */
+  surface->GetDrawingSurfaceInfo = _Jv_GetDrawingSurfaceInfo;
+  surface->FreeDrawingSurfaceInfo = _Jv_FreeDrawingSurfaceInfo;
+
+  surface->Lock = _Jv_Lock;
+  surface->Unlock = _Jv_Unlock;
+
+  surface->surface_info = (JAWT_DrawingSurfaceInfo*) malloc (sizeof (JAWT_DrawingSurfaceInfo));
+
+  if (surface->surface_info == NULL)
+    return NULL;
+
+  surface->surface_info->platformInfo = malloc (sizeof (JAWT_X11DrawingSurfaceInfo));
+
+  if (surface->surface_info->platformInfo == NULL)
+    return NULL;
+
+  surface_info_x11 = (JAWT_X11DrawingSurfaceInfo*) surface->surface_info->platformInfo;
+
+  surface_info_x11->display = classpath_jawt_get_default_display (env, canvas);
+  surface_info_x11->drawable = classpath_jawt_get_drawable (env, canvas);
+
+  /* FIXME: also include bounding rectangle of drawing surface */
+  /* FIXME: also include current clipping region */
+
+  return surface;
+}
+
+static void
+(JNICALL _Jv_FreeDrawingSurface) (JAWT_DrawingSurface* surface)
+{
+  free (surface);
+}
diff --git a/libjava/jni/classpath/classpath_jawt.h b/libjava/jni/classpath/classpath_jawt.h
new file mode 100644 (file)
index 0000000..51e6af3
--- /dev/null
@@ -0,0 +1,59 @@
+/* classpath_awt.h -- libjawt's interface to the peer library
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
+
+   Linking this library statically or dynamically with other modules is
+   making a combined work based on this library.  Thus, the terms and
+   conditions of the GNU General Public License cover the whole
+   combination.
+
+   As a special exception, the copyright holders of this library give you
+   permission to link this library with independent modules to produce an
+   executable, regardless of the license terms of these independent
+   modules, and to copy and distribute the resulting executable under
+   terms of your choice, provided that you also meet, for each linked
+   independent module, the terms and conditions of the license of that
+   module.  An independent module is a module which is not derived from
+   or based on this library.  If you modify this library, you may extend
+   this exception to your version of the library, but you are not
+   obligated to do so.  If you do not wish to do so, delete this
+   exception statement from your version. */
+
+/*
+ * libjawt.so is linked directly to the peer library with -l.  This
+ * header declares all the functions that libjawt.so needs -- X-based
+ * peer libraries wanting to support libjawt.so must implement these
+ * functions.
+ */
+
+#ifndef __classpath_jawt_h__
+#define __classpath_jawt_h__
+
+#include <jni.h>
+#include <X11/Xlib.h>
+
+#define CLASSPATH_JAWT_VERSION 0x10004
+
+jint     classpath_jawt_get_awt_version ();
+Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas);
+Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas);
+jint     classpath_jawt_lock ();
+void     classpath_jawt_unlock ();
+
+#endif /* __classpath_jawt_h__ */
diff --git a/libjava/jni/gtk-peer/gtk_jawt.c b/libjava/jni/gtk-peer/gtk_jawt.c
new file mode 100644 (file)
index 0000000..6a12fc7
--- /dev/null
@@ -0,0 +1,132 @@
+/* gtk_jawt.c -- GTK implementation of classpath_jawt.h
+   Copyright (C) 2005 Free Software Foundation, Inc.
+
+   This file is part of GNU Classpath.
+
+   GNU Classpath is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   GNU Classpath is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with GNU Classpath; see the file COPYING.  If not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
+
+   Linking this library statically or dynamically with other modules is
+   making a combined work based on this library.  Thus, the terms and
+   conditions of the GNU General Public License cover the whole
+   combination.
+
+   As a special exception, the copyright holders of this library give you
+   permission to link this library with independent modules to produce an
+   executable, regardless of the license terms of these independent
+   modules, and to copy and distribute the resulting executable under
+   terms of your choice, provided that you also meet, for each linked
+   independent module, the terms and conditions of the license of that
+   module.  An independent module is a module which is not derived from
+   or based on this library.  If you modify this library, you may extend
+   this exception to your version of the library, but you are not
+   obligated to do so.  If you do not wish to do so, delete this
+   exception statement from your version. */
+
+
+#include "gtkpeer.h"
+#include <gtk/gtk.h>
+#include <gdk/gdkx.h>
+#include "classpath_jawt.h"
+
+jint
+classpath_jawt_get_awt_version ()
+{
+  return CLASSPATH_JAWT_VERSION;
+}
+
+Display*
+classpath_jawt_get_default_display (JNIEnv* env, jobject canvas)
+{
+  GdkDisplay *display;
+  Display *xdisplay;
+  GtkWidget *widget;
+  void *ptr;
+  jobject peer;
+  jclass class_id;
+  jmethodID method_id;
+
+  /* retrieve peer object */
+  class_id = (*env)->GetObjectClass (env, canvas);
+
+  method_id = (*env)->GetMethodID (env, class_id,
+                                  "getPeer",
+                                  "()Ljava/awt/peer/ComponentPeer;");
+
+  peer = (*env)->CallObjectMethod (env, canvas, method_id);
+
+  ptr = NSA_GET_PTR (env, peer);
+
+  gdk_threads_enter ();
+
+  widget = GTK_WIDGET (ptr);
+
+  /* widget should be realized before Canvas.paint is called. */
+  g_assert (GTK_WIDGET_REALIZED (widget));
+
+  display = gtk_widget_get_display (widget);
+
+  xdisplay = GDK_DISPLAY_XDISPLAY (display);
+
+  gdk_threads_leave ();
+
+  return xdisplay;
+}
+
+Drawable
+classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
+{
+  GtkWidget *widget;
+  int drawable;
+  void *ptr;
+  jobject peer;
+  jclass class_id;
+  jmethodID method_id;
+
+  class_id = (*env)->GetObjectClass (env, canvas);
+
+  method_id = (*env)->GetMethodID (env, class_id,
+                                  "getPeer",
+                                  "()Ljava/awt/peer/ComponentPeer;");
+
+  peer = (*env)->CallObjectMethod (env, canvas, method_id);
+
+  ptr = NSA_GET_PTR (env, peer);
+
+  gdk_threads_enter ();
+
+  widget = GTK_WIDGET (ptr);
+
+  g_assert (GTK_WIDGET_REALIZED (widget));
+
+  drawable = GDK_DRAWABLE_XID (widget->window);
+
+  gdk_threads_leave ();
+
+  return drawable;
+}
+
+jint
+classpath_jawt_lock ()
+{
+  gdk_threads_enter ();
+  return 0;
+}
+
+void
+classpath_jawt_unlock ()
+{
+  gdk_threads_leave ();
+}