Commit 8fe7789e by Graydon Hoare

configure.in: Add --enable-gtk-cairo check.

2003-12-16  Graydon Hoare  <graydon@redhat.com>

	* configure.in: Add --enable-gtk-cairo check.
	* configure: Regenerate.
	* Makefile.am: Conditionally link against cairo.
	* Makefile.in: Regenerate.
	* acinclude.m4: Include PKG_CHECK_MODULES.
	* aclocal.m4: Regenerate.
	* gnu/java/awt/peer/gtk/GtkToolkit.java (useGraphics2D): New method.
	(getFontMetrics, getClasspathFontPeer):
	* gnu/java/awt/peer/gtk/GtkCanvasPeer.java (getGraphics):
	* gnu/java/awt/peer/gtk/GtkComponentPeer.java (createImage):
	* gnu/java/awt/peer/gtk/GtkContainerPeer.java (getGraphics):
	* gnu/java/awt/peer/gtk/GtkFramePeer.java (getGraphics):
	Switch behavior depending on GtkToolkit.useGraphics2D().
	* gnu/java/awt/peer/gtk/GtkFontPeer.java: Extend ClasspathFontPeer.
	* java/awt/Font.java: Switch to peer model.
	* jni/gtk-peer/gtkcairopeer.h: Definitions of cairo stuff.
	* jni/gtk-peer/gdkfont.h: Include gtkcairopeer.h.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Include gtkcairopeer.h.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c: Un-include gtkpeer.h.

From-SVN: r75260
parent 4f0c9c8a
...@@ -168,8 +168,20 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \ ...@@ -168,8 +168,20 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` -version-info `grep -v '^\#' $(srcdir)/libtool-version`
libgcj_la_LINK = $(LIBLINK) libgcj_la_LINK = $(LIBLINK)
# Gtk/Cairo JNI sources.
if GTK_CAIRO
gtk_cairo_c_source_files = \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
else
gtk_cairo_c_source_files =
endif
## Gtk JNI sources. ## Gtk JNI sources.
gtk_c_source_files = \ gtk_c_source_files = \
$(gtk_cairo_c_source_files) \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
...@@ -207,8 +219,12 @@ jni/classpath/primlib.c ...@@ -207,8 +219,12 @@ jni/classpath/primlib.c
## Java sources for Gtk peers. ## Java sources for Gtk peers.
gtk_awt_peer_sources = \ gtk_awt_peer_sources = \
gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java \
gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java \
gnu/java/awt/peer/gtk/GdkFontMetrics.java \ gnu/java/awt/peer/gtk/GdkFontMetrics.java \
gnu/java/awt/peer/gtk/GdkGlyphVector.java \
gnu/java/awt/peer/gtk/GdkGraphics.java \ gnu/java/awt/peer/gtk/GdkGraphics.java \
gnu/java/awt/peer/gtk/GdkGraphics2D.java \
gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \ gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \
gnu/java/awt/peer/gtk/GtkArg.java \ gnu/java/awt/peer/gtk/GtkArg.java \
gnu/java/awt/peer/gtk/GtkArgList.java \ gnu/java/awt/peer/gtk/GtkArgList.java \
...@@ -264,7 +280,7 @@ jni/classpath/jnilink.h \ ...@@ -264,7 +280,7 @@ jni/classpath/jnilink.h \
jni/classpath/native_state.h \ jni/classpath/native_state.h \
jni/classpath/primlib.h jni/classpath/primlib.h
lib_gnu_java_awt_peer_gtk_la_LIBADD = $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) lib_gnu_java_awt_peer_gtk_la_LIBADD = $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS)
lib_org_w3c_dom_la_SOURCES = org/w3c/dom/Attr.java \ lib_org_w3c_dom_la_SOURCES = org/w3c/dom/Attr.java \
org/w3c/dom/CDATASection.java \ org/w3c/dom/CDATASection.java \
...@@ -430,7 +446,8 @@ $(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h ...@@ -430,7 +446,8 @@ $(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
## FIXME: see above ## FIXME: see above
$(gtk_c_files): %.lo: %.c $(gtk_c_files): %.lo: %.c
$(LTCOMPILE) -c -Ijniinclude -I$(srcdir)/jni/classpath -I$(srcdir)/jni/gtk-peer $(GTK_CFLAGS) $(LIBART_CFLAGS) -o $@ $< $(LTCOMPILE) -c -Ijniinclude -I$(srcdir)/jni/classpath -I$(srcdir)/jni/gtk-peer \
$(GTK_CFLAGS) $(LIBART_CFLAGS) $(CAIRO_LIBS) $(PANGOFT2_LIBS) -o $@ $<
$(gtk_c_files): $(gtk_c_headers) $(gtk_c_files): $(gtk_c_headers)
...@@ -604,7 +621,6 @@ install-data-local: ...@@ -604,7 +621,6 @@ install-data-local:
$(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(includedir)/java/lang/reflect/ $(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(includedir)/java/lang/reflect/
$(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/ $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/
$(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/ $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/
$(INSTALL_DATA) $(srcdir)/java/util/logging/logging.properties $(DESTDIR)$(propdir)/logging.properties $(INSTALL_DATA) $(srcdir)/java/util/logging/logging.properties $(DESTDIR)$(propdir)/logging.properties
## ################################################################ ## ################################################################
...@@ -833,6 +849,7 @@ gnu/awt/j2d/MappedRaster.java \ ...@@ -833,6 +849,7 @@ gnu/awt/j2d/MappedRaster.java \
gnu/java/awt/BitMaskExtent.java \ gnu/java/awt/BitMaskExtent.java \
gnu/java/awt/Buffers.java \ gnu/java/awt/Buffers.java \
gnu/java/awt/ComponentDataBlitOp.java \ gnu/java/awt/ComponentDataBlitOp.java \
gnu/java/awt/ClasspathToolkit.java \
gnu/java/awt/EmbeddedWindow.java \ gnu/java/awt/EmbeddedWindow.java \
gnu/java/awt/EmbeddedWindowSupport.java \ gnu/java/awt/EmbeddedWindowSupport.java \
gnu/java/awt/EventModifier.java \ gnu/java/awt/EventModifier.java \
...@@ -840,6 +857,7 @@ gnu/java/awt/image/ImageDecoder.java \ ...@@ -840,6 +857,7 @@ gnu/java/awt/image/ImageDecoder.java \
gnu/java/awt/image/XBMDecoder.java \ gnu/java/awt/image/XBMDecoder.java \
gnu/java/awt/peer/EmbeddedWindowPeer.java \ gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \ gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/beans/editors/ColorEditor.java \ gnu/java/beans/editors/ColorEditor.java \
gnu/java/beans/editors/FontEditor.java \ gnu/java/beans/editors/FontEditor.java \
gnu/java/beans/editors/NativeBooleanEditor.java \ gnu/java/beans/editors/NativeBooleanEditor.java \
......
# Makefile.in generated automatically by automake 1.4 from Makefile.am # Makefile.in generated automatically by automake 1.4-p6 from Makefile.am
# Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. # Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
...@@ -66,6 +66,8 @@ target_triplet = @target@ ...@@ -66,6 +66,8 @@ target_triplet = @target@
AR = @AR@ AR = @AR@
AS = @AS@ AS = @AS@
BACKTRACESPEC = @BACKTRACESPEC@ BACKTRACESPEC = @BACKTRACESPEC@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@ CC = @CC@
CHECKREFSPEC = @CHECKREFSPEC@ CHECKREFSPEC = @CHECKREFSPEC@
COMPPATH = @COMPPATH@ COMPPATH = @COMPPATH@
...@@ -116,6 +118,8 @@ MAKEINFO = @MAKEINFO@ ...@@ -116,6 +118,8 @@ MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@ OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@ OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
PANGOFT2_LIBS = @PANGOFT2_LIBS@
PERL = @PERL@ PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@ PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@ PLATFORMOBJS = @PLATFORMOBJS@
...@@ -258,8 +262,15 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \ ...@@ -258,8 +262,15 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` -version-info `grep -v '^\#' $(srcdir)/libtool-version`
libgcj_la_LINK = $(LIBLINK) libgcj_la_LINK = $(LIBLINK)
@GTK_CAIRO_TRUE@gtk_cairo_c_source_files = @GTK_CAIRO_TRUE@\
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.c \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.c \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.c \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
@GTK_CAIRO_FALSE@gtk_cairo_c_source_files =
gtk_c_source_files = \ gtk_c_source_files = \
$(gtk_cairo_c_source_files) \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \ jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
...@@ -297,8 +308,12 @@ jni/classpath/primlib.c ...@@ -297,8 +308,12 @@ jni/classpath/primlib.c
gtk_awt_peer_sources = \ gtk_awt_peer_sources = \
gnu/java/awt/peer/gtk/GdkClasspathFontPeer.java \
gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.java \
gnu/java/awt/peer/gtk/GdkFontMetrics.java \ gnu/java/awt/peer/gtk/GdkFontMetrics.java \
gnu/java/awt/peer/gtk/GdkGlyphVector.java \
gnu/java/awt/peer/gtk/GdkGraphics.java \ gnu/java/awt/peer/gtk/GdkGraphics.java \
gnu/java/awt/peer/gtk/GdkGraphics2D.java \
gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \ gnu/java/awt/peer/gtk/GdkPixbufDecoder.java \
gnu/java/awt/peer/gtk/GtkArg.java \ gnu/java/awt/peer/gtk/GtkArg.java \
gnu/java/awt/peer/gtk/GtkArgList.java \ gnu/java/awt/peer/gtk/GtkArgList.java \
...@@ -351,7 +366,7 @@ jni/classpath/native_state.h \ ...@@ -351,7 +366,7 @@ jni/classpath/native_state.h \
jni/classpath/primlib.h jni/classpath/primlib.h
lib_gnu_java_awt_peer_gtk_la_LIBADD = $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) lib_gnu_java_awt_peer_gtk_la_LIBADD = $(GTK_LIBS) $(GLIB_LIBS) $(LIBART_LIBS) $(CAIRO_LIBS) $(PANGOFT2_LIBS)
lib_org_w3c_dom_la_SOURCES = org/w3c/dom/Attr.java \ lib_org_w3c_dom_la_SOURCES = org/w3c/dom/Attr.java \
org/w3c/dom/CDATASection.java \ org/w3c/dom/CDATASection.java \
...@@ -547,6 +562,7 @@ gnu/awt/j2d/MappedRaster.java \ ...@@ -547,6 +562,7 @@ gnu/awt/j2d/MappedRaster.java \
gnu/java/awt/BitMaskExtent.java \ gnu/java/awt/BitMaskExtent.java \
gnu/java/awt/Buffers.java \ gnu/java/awt/Buffers.java \
gnu/java/awt/ComponentDataBlitOp.java \ gnu/java/awt/ComponentDataBlitOp.java \
gnu/java/awt/ClasspathToolkit.java \
gnu/java/awt/EmbeddedWindow.java \ gnu/java/awt/EmbeddedWindow.java \
gnu/java/awt/EmbeddedWindowSupport.java \ gnu/java/awt/EmbeddedWindowSupport.java \
gnu/java/awt/EventModifier.java \ gnu/java/awt/EventModifier.java \
...@@ -554,6 +570,7 @@ gnu/java/awt/image/ImageDecoder.java \ ...@@ -554,6 +570,7 @@ gnu/java/awt/image/ImageDecoder.java \
gnu/java/awt/image/XBMDecoder.java \ gnu/java/awt/image/XBMDecoder.java \
gnu/java/awt/peer/EmbeddedWindowPeer.java \ gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \ gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/beans/editors/ColorEditor.java \ gnu/java/beans/editors/ColorEditor.java \
gnu/java/beans/editors/FontEditor.java \ gnu/java/beans/editors/FontEditor.java \
gnu/java/beans/editors/NativeBooleanEditor.java \ gnu/java/beans/editors/NativeBooleanEditor.java \
...@@ -2682,77 +2699,162 @@ org/w3c/dom/traversal/NodeIterator.lo \ ...@@ -2682,77 +2699,162 @@ org/w3c/dom/traversal/NodeIterator.lo \
org/w3c/dom/traversal/TreeWalker.lo org/w3c/dom/traversal/TreeWalker.lo
lib_gnu_java_awt_peer_gtk_la_LDFLAGS = lib_gnu_java_awt_peer_gtk_la_LDFLAGS =
lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES = lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES =
lib_gnu_java_awt_peer_gtk_la_OBJECTS = \ @GTK_CAIRO_TRUE@lib_gnu_java_awt_peer_gtk_la_OBJECTS = \
gnu/java/awt/peer/gtk/GdkFontMetrics.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \
gnu/java/awt/peer/gtk/GdkGraphics.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \
gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkFontMetrics.lo \
gnu/java/awt/peer/gtk/GtkArg.lo gnu/java/awt/peer/gtk/GtkArgList.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGlyphVector.lo \
gnu/java/awt/peer/gtk/GtkButtonPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphics.lo \
gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \
gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArg.lo \
gnu/java/awt/peer/gtk/GtkCheckboxPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArgList.lo \
gnu/java/awt/peer/gtk/GtkChoicePeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
gnu/java/awt/peer/gtk/GtkClipboard.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
gnu/java/awt/peer/gtk/GtkComponentPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
gnu/java/awt/peer/gtk/GtkContainerPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.lo \
gnu/java/awt/peer/gtk/GtkDialogPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxPeer.lo \
gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkChoicePeer.lo \
gnu/java/awt/peer/gtk/GtkFileDialogPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkClipboard.lo \
gnu/java/awt/peer/gtk/GtkFontPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkComponentPeer.lo \
gnu/java/awt/peer/gtk/GtkFramePeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkContainerPeer.lo \
gnu/java/awt/peer/gtk/GtkGenericPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkDialogPeer.lo \
gnu/java/awt/peer/gtk/GtkImage.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.lo \
gnu/java/awt/peer/gtk/GtkImagePainter.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkFileDialogPeer.lo \
gnu/java/awt/peer/gtk/GtkLabelPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkFontPeer.lo \
gnu/java/awt/peer/gtk/GtkListPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkFramePeer.lo \
gnu/java/awt/peer/gtk/GtkMainThread.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkGenericPeer.lo \
gnu/java/awt/peer/gtk/GtkMenuBarPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkImage.lo \
gnu/java/awt/peer/gtk/GtkMenuComponentPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkImagePainter.lo \
gnu/java/awt/peer/gtk/GtkMenuItemPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkLabelPeer.lo \
gnu/java/awt/peer/gtk/GtkMenuPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkListPeer.lo \
gnu/java/awt/peer/gtk/GtkOffScreenImage.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMainThread.lo \
gnu/java/awt/peer/gtk/GtkPanelPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuBarPeer.lo \
gnu/java/awt/peer/gtk/GtkPopupMenuPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuComponentPeer.lo \
gnu/java/awt/peer/gtk/GtkScrollPanePeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuItemPeer.lo \
gnu/java/awt/peer/gtk/GtkScrollbarPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuPeer.lo \
gnu/java/awt/peer/gtk/GtkTextAreaPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkOffScreenImage.lo \
gnu/java/awt/peer/gtk/GtkTextComponentPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkPanelPeer.lo \
gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkPopupMenuPeer.lo \
gnu/java/awt/peer/gtk/GtkToolkit.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkScrollPanePeer.lo \
gnu/java/awt/peer/gtk/GtkWindowPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkScrollbarPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkTextAreaPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkTextComponentPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkToolkit.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \ @GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkWindowPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \
jni/gtk-peer/gthread-jni.lo jni/classpath/jcl.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \
jni/classpath/jnilink.lo jni/classpath/native_state.lo \ @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.lo \
jni/classpath/primlib.lo @GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gthread-jni.lo jni/classpath/jcl.lo \
@GTK_CAIRO_TRUE@jni/classpath/jnilink.lo jni/classpath/native_state.lo \
@GTK_CAIRO_TRUE@jni/classpath/primlib.lo
@GTK_CAIRO_FALSE@lib_gnu_java_awt_peer_gtk_la_OBJECTS = \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkFontMetrics.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGlyphVector.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArg.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkArgList.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkCheckboxPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkChoicePeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkClipboard.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkComponentPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkContainerPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkDialogPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFileDialogPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFontPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkFramePeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkGenericPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkImage.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkImagePainter.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkLabelPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkListPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMainThread.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuBarPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuComponentPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuItemPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkMenuPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkOffScreenImage.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkPanelPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkPopupMenuPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkScrollPanePeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkScrollbarPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextAreaPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextComponentPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkToolkit.lo \
@GTK_CAIRO_FALSE@gnu/java/awt/peer/gtk/GtkWindowPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
@GTK_CAIRO_FALSE@jni/gtk-peer/gthread-jni.lo jni/classpath/jcl.lo \
@GTK_CAIRO_FALSE@jni/classpath/jnilink.lo jni/classpath/native_state.lo \
@GTK_CAIRO_FALSE@jni/classpath/primlib.lo
lib_gnu_awt_xlib_la_OBJECTS = gnu/gcj/xlib/natClip.lo \ lib_gnu_awt_xlib_la_OBJECTS = gnu/gcj/xlib/natClip.lo \
gnu/gcj/xlib/natColormap.lo gnu/gcj/xlib/natDisplay.lo \ gnu/gcj/xlib/natColormap.lo gnu/gcj/xlib/natDisplay.lo \
gnu/gcj/xlib/natDrawable.lo gnu/gcj/xlib/natFont.lo \ gnu/gcj/xlib/natDrawable.lo gnu/gcj/xlib/natFont.lo \
...@@ -2796,7 +2898,7 @@ libgcj-test.spec.in libgcj.pc.in libgcj.spec.in ...@@ -2796,7 +2898,7 @@ libgcj-test.spec.in libgcj.pc.in libgcj.spec.in
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST) DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar TAR = gtar
GZIP_ENV = --best GZIP_ENV = --best
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
...@@ -2878,6 +2980,7 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ ...@@ -2878,6 +2980,7 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/gnu/gcj/xlib/natXException.P .deps/gnu/gcj/xlib/natXExposeEvent.P \ .deps/gnu/gcj/xlib/natXException.P .deps/gnu/gcj/xlib/natXExposeEvent.P \
.deps/gnu/gcj/xlib/natXImage.P .deps/gnu/gcj/xlib/natXUnmapEvent.P \ .deps/gnu/gcj/xlib/natXImage.P .deps/gnu/gcj/xlib/natXUnmapEvent.P \
.deps/gnu/java/awt/BitMaskExtent.P .deps/gnu/java/awt/Buffers.P \ .deps/gnu/java/awt/BitMaskExtent.P .deps/gnu/java/awt/Buffers.P \
.deps/gnu/java/awt/ClasspathToolkit.P \
.deps/gnu/java/awt/ComponentDataBlitOp.P \ .deps/gnu/java/awt/ComponentDataBlitOp.P \
.deps/gnu/java/awt/EmbeddedWindow.P \ .deps/gnu/java/awt/EmbeddedWindow.P \
.deps/gnu/java/awt/EmbeddedWindowSupport.P \ .deps/gnu/java/awt/EmbeddedWindowSupport.P \
...@@ -2885,10 +2988,15 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ ...@@ -2885,10 +2988,15 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/gnu/java/awt/image/ImageDecoder.P \ .deps/gnu/java/awt/image/ImageDecoder.P \
.deps/gnu/java/awt/image/XBMDecoder.P \ .deps/gnu/java/awt/image/XBMDecoder.P \
.deps/gnu/java/awt/natEmbeddedWindow.P \ .deps/gnu/java/awt/natEmbeddedWindow.P \
.deps/gnu/java/awt/peer/ClasspathFontPeer.P \
.deps/gnu/java/awt/peer/EmbeddedWindowPeer.P \ .deps/gnu/java/awt/peer/EmbeddedWindowPeer.P \
.deps/gnu/java/awt/peer/GLightweightPeer.P \ .deps/gnu/java/awt/peer/GLightweightPeer.P \
.deps/gnu/java/awt/peer/gtk/GdkClasspathFontPeer.P \
.deps/gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.P \
.deps/gnu/java/awt/peer/gtk/GdkFontMetrics.P \ .deps/gnu/java/awt/peer/gtk/GdkFontMetrics.P \
.deps/gnu/java/awt/peer/gtk/GdkGlyphVector.P \
.deps/gnu/java/awt/peer/gtk/GdkGraphics.P \ .deps/gnu/java/awt/peer/gtk/GdkGraphics.P \
.deps/gnu/java/awt/peer/gtk/GdkGraphics2D.P \
.deps/gnu/java/awt/peer/gtk/GdkPixbufDecoder.P \ .deps/gnu/java/awt/peer/gtk/GdkPixbufDecoder.P \
.deps/gnu/java/awt/peer/gtk/GtkArg.P \ .deps/gnu/java/awt/peer/gtk/GtkArg.P \
.deps/gnu/java/awt/peer/gtk/GtkArgList.P \ .deps/gnu/java/awt/peer/gtk/GtkArgList.P \
...@@ -4396,8 +4504,12 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \ ...@@ -4396,8 +4504,12 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
.deps/javax/transaction/xa/Xid.P .deps/jni.P .deps/jni/classpath/jcl.P \ .deps/javax/transaction/xa/Xid.P .deps/jni.P .deps/jni/classpath/jcl.P \
.deps/jni/classpath/jnilink.P .deps/jni/classpath/native_state.P \ .deps/jni/classpath/jnilink.P .deps/jni/classpath/native_state.P \
.deps/jni/classpath/primlib.P \ .deps/jni/classpath/primlib.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.P \ .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.P \ .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.P \ .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.P \ .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.P \ .deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.P \
...@@ -4715,7 +4827,7 @@ uninstall-toolexecmainlibDATA: ...@@ -4715,7 +4827,7 @@ uninstall-toolexecmainlibDATA:
all-recursive install-data-recursive install-exec-recursive \ all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \ installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive: check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \ @set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \ dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \ list='$(SUBDIRS)'; for subdir in $$list; do \
...@@ -4735,11 +4847,11 @@ check-recursive installcheck-recursive info-recursive dvi-recursive: ...@@ -4735,11 +4847,11 @@ check-recursive installcheck-recursive info-recursive dvi-recursive:
mostlyclean-recursive clean-recursive distclean-recursive \ mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive: maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \ @set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \ dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \ rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \ rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \ test "$$subdir" != "." || dot_seen=yes; \
done; \ done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \ test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \ target=`echo $@ | sed s/-recursive//`; \
...@@ -5084,7 +5196,8 @@ $(extra_cc_files): %.lo: %.cc ...@@ -5084,7 +5196,8 @@ $(extra_cc_files): %.lo: %.cc
$(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h $(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
$(gtk_c_files): %.lo: %.c $(gtk_c_files): %.lo: %.c
$(LTCOMPILE) -c -Ijniinclude -I$(srcdir)/jni/classpath -I$(srcdir)/jni/gtk-peer $(GTK_CFLAGS) $(LIBART_CFLAGS) -o $@ $< $(LTCOMPILE) -c -Ijniinclude -I$(srcdir)/jni/classpath -I$(srcdir)/jni/gtk-peer \
$(GTK_CFLAGS) $(LIBART_CFLAGS) $(CAIRO_LIBS) $(PANGOFT2_LIBS) -o $@ $<
$(gtk_c_files): $(gtk_c_headers) $(gtk_c_files): $(gtk_c_headers)
...@@ -5223,7 +5336,6 @@ install-data-local: ...@@ -5223,7 +5336,6 @@ install-data-local:
$(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(includedir)/java/lang/reflect/ $(INSTALL_DATA) 'java/lang/reflect/Proxy$$ProxyType.h' $(DESTDIR)$(includedir)/java/lang/reflect/
$(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/ $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketInputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/
$(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/ $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/
$(INSTALL_DATA) $(srcdir)/java/util/logging/logging.properties $(DESTDIR)$(propdir)/logging.properties $(INSTALL_DATA) $(srcdir)/java/util/logging/logging.properties $(DESTDIR)$(propdir)/logging.properties
maintainer-check: libgcj.la maintainer-check: libgcj.la
......
...@@ -268,3 +268,60 @@ else ...@@ -268,3 +268,60 @@ else
[Indicate that linker is not able to 8-byte align static data]) [Indicate that linker is not able to 8-byte align static data])
fi[]dnl fi[]dnl
])# CHECK_FOR_BROKEN_MINGW_LD ])# CHECK_FOR_BROKEN_MINGW_LD
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
dnl also defines GSTUFF_PKG_ERRORS on error
AC_DEFUN(PKG_CHECK_MODULES, [
succeeded=no
if test -z "$PKG_CONFIG"; then
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
fi
if test "$PKG_CONFIG" = "no" ; then
echo "*** The pkg-config script could not be found. Make sure it is"
echo "*** in your path, or set the PKG_CONFIG environment variable"
echo "*** to the full path to pkg-config."
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
else
PKG_CONFIG_MIN_VERSION=0.9.0
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
AC_MSG_CHECKING(for $2)
if $PKG_CONFIG --exists "$2" ; then
AC_MSG_RESULT(yes)
succeeded=yes
AC_MSG_CHECKING($1_CFLAGS)
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
AC_MSG_RESULT($$1_CFLAGS)
AC_MSG_CHECKING($1_LIBS)
$1_LIBS=`$PKG_CONFIG --libs "$2"`
AC_MSG_RESULT($$1_LIBS)
else
$1_CFLAGS=""
$1_LIBS=""
## If we have a custom action on failure, don't print errors, but
## do set a variable so people can do so.
$1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
ifelse([$4], ,echo $$1_PKG_ERRORS,)
fi
AC_SUBST($1_CFLAGS)
AC_SUBST($1_LIBS)
else
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
echo "*** See http://www.freedesktop.org/software/pkgconfig"
fi
fi
if test $succeeded = yes; then
ifelse([$3], , :, [$3])
else
ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
fi
])
dnl aclocal.m4 generated automatically by aclocal 1.4 dnl aclocal.m4 generated automatically by aclocal 1.4-p6
dnl Copyright (C) 1994, 1995-8, 1999 Free Software Foundation, Inc. dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it, dnl gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved. dnl with or without modifications, as long as this notice is preserved.
...@@ -281,6 +281,63 @@ else ...@@ -281,6 +281,63 @@ else
fi[]dnl fi[]dnl
])# CHECK_FOR_BROKEN_MINGW_LD ])# CHECK_FOR_BROKEN_MINGW_LD
dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
dnl also defines GSTUFF_PKG_ERRORS on error
AC_DEFUN(PKG_CHECK_MODULES, [
succeeded=no
if test -z "$PKG_CONFIG"; then
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
fi
if test "$PKG_CONFIG" = "no" ; then
echo "*** The pkg-config script could not be found. Make sure it is"
echo "*** in your path, or set the PKG_CONFIG environment variable"
echo "*** to the full path to pkg-config."
echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
else
PKG_CONFIG_MIN_VERSION=0.9.0
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
AC_MSG_CHECKING(for $2)
if $PKG_CONFIG --exists "$2" ; then
AC_MSG_RESULT(yes)
succeeded=yes
AC_MSG_CHECKING($1_CFLAGS)
$1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
AC_MSG_RESULT($$1_CFLAGS)
AC_MSG_CHECKING($1_LIBS)
$1_LIBS=`$PKG_CONFIG --libs "$2"`
AC_MSG_RESULT($$1_LIBS)
else
$1_CFLAGS=""
$1_LIBS=""
## If we have a custom action on failure, don't print errors, but
## do set a variable so people can do so.
$1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
ifelse([$4], ,echo $$1_PKG_ERRORS,)
fi
AC_SUBST($1_CFLAGS)
AC_SUBST($1_LIBS)
else
echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
echo "*** See http://www.freedesktop.org/software/pkgconfig"
fi
fi
if test $succeeded = yes; then
ifelse([$3], , :, [$3])
else
ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
fi
])
# Do all the work for Automake. This macro actually does too much -- # Do all the work for Automake. This macro actually does too much --
# some checks are only needed if your package does certain things. # some checks are only needed if your package does certain things.
# But this isn't really a big deal. # But this isn't really a big deal.
...@@ -290,8 +347,9 @@ fi[]dnl ...@@ -290,8 +347,9 @@ fi[]dnl
dnl Usage: dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define]) dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE, AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_REQUIRE([AC_PROG_INSTALL]) [AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1] PACKAGE=[$1]
AC_SUBST(PACKAGE) AC_SUBST(PACKAGE)
VERSION=[$2] VERSION=[$2]
...@@ -307,18 +365,47 @@ AC_REQUIRE([AM_SANITY_CHECK]) ...@@ -307,18 +365,47 @@ AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM]) AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross. dnl FIXME This is truly gross.
missing_dir=`cd $ac_aux_dir && pwd` missing_dir=`cd $ac_aux_dir && pwd`
AM_MISSING_PROG(ACLOCAL, aclocal, $missing_dir) AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}, $missing_dir)
AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir) AM_MISSING_PROG(AUTOCONF, autoconf, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake, $missing_dir) AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir) AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir) AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
AC_REQUIRE([AC_PROG_MAKE_SET])]) AC_REQUIRE([AC_PROG_MAKE_SET])])
# Copyright 2002 Free Software Foundation, Inc.
# This program 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.
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
# AM_AUTOMAKE_VERSION(VERSION)
# ----------------------------
# Automake X.Y traces this macro to ensure aclocal.m4 has been
# generated from the m4 files accompanying Automake X.Y.
AC_DEFUN([AM_AUTOMAKE_VERSION],[am__api_version="1.4"])
# AM_SET_CURRENT_AUTOMAKE_VERSION
# -------------------------------
# Call AM_AUTOMAKE_VERSION so it can be traced.
# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
[AM_AUTOMAKE_VERSION([1.4-p6])])
# #
# Check to make sure that the build environment is sane. # Check to make sure that the build environment is sane.
# #
AC_DEFUN(AM_SANITY_CHECK, AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane]) [AC_MSG_CHECKING([whether build environment is sane])
# Just in case # Just in case
sleep 1 sleep 1
...@@ -359,7 +446,7 @@ AC_MSG_RESULT(yes)]) ...@@ -359,7 +446,7 @@ AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY) dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version. dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG, AC_DEFUN([AM_MISSING_PROG],
[AC_MSG_CHECKING(for working $2) [AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if # Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected. # an executable is not found, even if stderr is redirected.
...@@ -378,7 +465,7 @@ AC_SUBST($1)]) ...@@ -378,7 +465,7 @@ AC_SUBST($1)])
# serial 1 # serial 1
AC_DEFUN(AM_MAINTAINER_MODE, AC_DEFUN([AM_MAINTAINER_MODE],
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
dnl maintainer-mode is disabled by default dnl maintainer-mode is disabled by default
AC_ARG_ENABLE(maintainer-mode, AC_ARG_ENABLE(maintainer-mode,
...@@ -395,7 +482,7 @@ AC_DEFUN(AM_MAINTAINER_MODE, ...@@ -395,7 +482,7 @@ AC_DEFUN(AM_MAINTAINER_MODE,
# Define a conditional. # Define a conditional.
AC_DEFUN(AM_CONDITIONAL, AC_DEFUN([AM_CONDITIONAL],
[AC_SUBST($1_TRUE) [AC_SUBST($1_TRUE)
AC_SUBST($1_FALSE) AC_SUBST($1_FALSE)
if $2; then if $2; then
...@@ -408,7 +495,7 @@ fi]) ...@@ -408,7 +495,7 @@ fi])
# Like AC_CONFIG_HEADER, but automatically create stamp file. # Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER, AC_DEFUN([AM_CONFIG_HEADER],
[AC_PREREQ([2.12]) [AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1]) AC_CONFIG_HEADER([$1])
dnl When config.status generates a header, we must update the stamp-h file. dnl When config.status generates a header, we must update the stamp-h file.
...@@ -873,10 +960,7 @@ AC_ARG_ENABLE(libarttest, [ --disable-libarttest Do not try to compile an ...@@ -873,10 +960,7 @@ AC_ARG_ENABLE(libarttest, [ --disable-libarttest Do not try to compile an
fi fi
fi fi
AC_PATH_PROG(LIBART_CONFIG, libart2-config, no) AC_PATH_PROG(LIBART_CONFIG, libart-config, no)
if test "$LIBART_CONFIG" = "no" ; then
AC_PATH_PROG(LIBART_CONFIG, libart-config, no)
fi
min_libart_version=ifelse([$1], ,0.2.5,$1) min_libart_version=ifelse([$1], ,0.2.5,$1)
AC_MSG_CHECKING(for LIBART - version >= $min_libart_version) AC_MSG_CHECKING(for LIBART - version >= $min_libart_version)
no_libart="" no_libart=""
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -405,6 +405,18 @@ done ...@@ -405,6 +405,18 @@ done
AM_CONDITIONAL(XLIB_AWT, test "$use_xlib_awt" = yes) AM_CONDITIONAL(XLIB_AWT, test "$use_xlib_awt" = yes)
AM_CONDITIONAL(GTK_AWT, test "$use_gtk_awt" = yes) AM_CONDITIONAL(GTK_AWT, test "$use_gtk_awt" = yes)
dnl determine whether to enable the cairo GTK Graphics2D backend
AC_ARG_ENABLE(gtk-cairo, [ --enable-gtk-cairo build the cairo Graphics2D implementation on GTK])
AM_CONDITIONAL(GTK_CAIRO, test "x${enable_gtk_cairo}" = xyes)
if test "x${enable_gtk_cairo}" = xyes
then
PKG_CHECK_MODULES(CAIRO, cairo)
PKG_CHECK_MODULES(PANGOFT2, pangoft2)
fi
AC_SUBST(CAIRO_LIBS)
AC_SUBST(CAIRO_CFLAGS)
AC_SUBST(PANGOFT2_LIBS)
AC_SUBST(PANGOFT2_CFLAGS)
dnl FIXME: this should be _libs on some hosts. dnl FIXME: this should be _libs on some hosts.
libsubdir=.libs libsubdir=.libs
......
...@@ -56,6 +56,9 @@ public class GtkCanvasPeer extends GtkComponentPeer implements CanvasPeer ...@@ -56,6 +56,9 @@ public class GtkCanvasPeer extends GtkComponentPeer implements CanvasPeer
public Graphics getGraphics () public Graphics getGraphics ()
{ {
if (GtkToolkit.useGraphics2D ())
return new GdkGraphics2D (this);
else
return new GdkGraphics (this); return new GdkGraphics (this);
} }
......
...@@ -48,6 +48,7 @@ import java.awt.Font; ...@@ -48,6 +48,7 @@ import java.awt.Font;
import java.awt.FontMetrics; import java.awt.FontMetrics;
import java.awt.Frame; import java.awt.Frame;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration; import java.awt.GraphicsConfiguration;
import java.awt.Image; import java.awt.Image;
import java.awt.Insets; import java.awt.Insets;
...@@ -148,7 +149,16 @@ public class GtkComponentPeer extends GtkGenericPeer ...@@ -148,7 +149,16 @@ public class GtkComponentPeer extends GtkGenericPeer
public Image createImage (int width, int height) public Image createImage (int width, int height)
{ {
GdkGraphics g = new GdkGraphics (width, height); Graphics g;
if (GtkToolkit.useGraphics2D ())
{
Graphics2D g2 = new GdkGraphics2D (width, height);
g2.setBackground (getBackground ());
g = g2;
}
else
g = new GdkGraphics (width, height);
return new GtkOffScreenImage (null, g, width, height); return new GtkOffScreenImage (null, g, width, height);
} }
......
...@@ -92,6 +92,9 @@ public class GtkContainerPeer extends GtkComponentPeer ...@@ -92,6 +92,9 @@ public class GtkContainerPeer extends GtkComponentPeer
public Graphics getGraphics () public Graphics getGraphics ()
{ {
if (GtkToolkit.useGraphics2D ())
return new GdkGraphics2D (this);
else
return new GdkGraphics (this); return new GdkGraphics (this);
} }
......
...@@ -38,10 +38,15 @@ exception statement from your version. */ ...@@ -38,10 +38,15 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk; package gnu.java.awt.peer.gtk;
import java.awt.peer.FontPeer; import java.awt.peer.FontPeer;
import java.awt.Font; import java.awt.*;
import java.awt.geom.*;
import java.awt.font.*;
import java.util.Locale;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.text.*;
import gnu.java.awt.peer.ClasspathFontPeer;
public class GtkFontPeer implements FontPeer public class GtkFontPeer extends ClasspathFontPeer
{ {
private static ResourceBundle bundle; private static ResourceBundle bundle;
...@@ -61,6 +66,8 @@ public class GtkFontPeer implements FontPeer ...@@ -61,6 +66,8 @@ public class GtkFontPeer implements FontPeer
public GtkFontPeer (String name, int style) public GtkFontPeer (String name, int style)
{ {
super(name, style, 12 /* kludge */);
if (bundle != null) if (bundle != null)
Xname = bundle.getString (name.toLowerCase () + "." + style); Xname = bundle.getString (name.toLowerCase () + "." + style);
else else
...@@ -91,4 +98,104 @@ public class GtkFontPeer implements FontPeer ...@@ -91,4 +98,104 @@ public class GtkFontPeer implements FontPeer
{ {
return Xname; return Xname;
} }
/* remaining methods are for static compatibility with the newer
ClasspathFontPeer superclass; none of these methods ever existed or
worked on the older FontPeer interface, but we need to pretend to
support them anyways. */
public boolean canDisplay (Font font, char c)
{
throw new UnsupportedOperationException();
}
public int canDisplayUpTo (Font font, CharacterIterator i, int start, int limit)
{
throw new UnsupportedOperationException();
}
public String getSubFamilyName (Font font, Locale locale)
{
throw new UnsupportedOperationException();
}
public String getPostScriptName (Font font)
{
throw new UnsupportedOperationException();
}
public int getNumGlyphs (Font font)
{
throw new UnsupportedOperationException();
}
public int getMissingGlyphCode (Font font)
{
throw new UnsupportedOperationException();
}
public byte getBaselineFor (Font font, char c)
{
throw new UnsupportedOperationException();
}
public String getGlyphName (Font font, int glyphIndex)
{
throw new UnsupportedOperationException();
}
public GlyphVector createGlyphVector (Font font,
FontRenderContext frc,
CharacterIterator ci)
{
throw new UnsupportedOperationException();
}
public GlyphVector createGlyphVector (Font font,
FontRenderContext ctx,
int[] glyphCodes)
{
throw new UnsupportedOperationException();
}
public GlyphVector layoutGlyphVector (Font font,
FontRenderContext frc,
char[] chars, int start,
int limit, int flags)
{
throw new UnsupportedOperationException();
}
public FontMetrics getFontMetrics (Font font)
{
throw new UnsupportedOperationException();
}
public boolean hasUniformLineMetrics (Font font)
{
throw new UnsupportedOperationException();
}
public LineMetrics getLineMetrics (Font font,
CharacterIterator ci,
int begin, int limit,
FontRenderContext rc)
{
throw new UnsupportedOperationException();
}
public Rectangle2D getMaxCharBounds (Font font,
FontRenderContext rc)
{
throw new UnsupportedOperationException();
}
public Rectangle2D getStringBounds (Font font,
CharacterIterator ci,
int begin, int limit,
FontRenderContext frc)
{
throw new UnsupportedOperationException();
}
} }
...@@ -41,6 +41,7 @@ package gnu.java.awt.peer.gtk; ...@@ -41,6 +41,7 @@ package gnu.java.awt.peer.gtk;
import java.awt.Component; import java.awt.Component;
import java.awt.Frame; import java.awt.Frame;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image; import java.awt.Image;
import java.awt.Insets; import java.awt.Insets;
import java.awt.MenuBar; import java.awt.MenuBar;
...@@ -109,8 +110,12 @@ public class GtkFramePeer extends GtkWindowPeer ...@@ -109,8 +110,12 @@ public class GtkFramePeer extends GtkWindowPeer
public Graphics getGraphics () public Graphics getGraphics ()
{ {
GdkGraphics g = new GdkGraphics (this); Graphics g;
g.translateNative (-insets.left, -insets.top); if (GtkToolkit.useGraphics2D ())
g = new GdkGraphics2D (this);
else
g = new GdkGraphics (this);
g.translate (-insets.left, -insets.top);
return g; return g;
} }
......
...@@ -42,6 +42,7 @@ import java.awt.*; ...@@ -42,6 +42,7 @@ import java.awt.*;
import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.Clipboard;
import java.awt.dnd.DragGestureEvent; import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.peer.DragSourceContextPeer; import java.awt.dnd.peer.DragSourceContextPeer;
import java.awt.font.TextAttribute;
import java.awt.im.InputMethodHighlight; import java.awt.im.InputMethodHighlight;
import java.awt.image.ColorModel; import java.awt.image.ColorModel;
import java.awt.image.ImageObserver; import java.awt.image.ImageObserver;
...@@ -55,6 +56,7 @@ import java.util.Properties; ...@@ -55,6 +56,7 @@ import java.util.Properties;
import gnu.java.awt.EmbeddedWindow; import gnu.java.awt.EmbeddedWindow;
import gnu.java.awt.EmbeddedWindowSupport; import gnu.java.awt.EmbeddedWindowSupport;
import gnu.java.awt.peer.EmbeddedWindowPeer; import gnu.java.awt.peer.EmbeddedWindowPeer;
import gnu.java.awt.peer.ClasspathFontPeer;
import gnu.classpath.Configuration; import gnu.classpath.Configuration;
import gnu.java.awt.peer.gtk.GdkPixbufDecoder; import gnu.java.awt.peer.gtk.GdkPixbufDecoder;
...@@ -65,7 +67,15 @@ import gnu.java.awt.peer.gtk.GdkPixbufDecoder; ...@@ -65,7 +67,15 @@ import gnu.java.awt.peer.gtk.GdkPixbufDecoder;
this class. If getPeer() ever goes away, we can implement a hash table this class. If getPeer() ever goes away, we can implement a hash table
that will keep up with every window's peer, but for now this is faster. */ that will keep up with every window's peer, but for now this is faster. */
public class GtkToolkit extends Toolkit /**
* This class accesses a system property called
* <tt>gnu.java.awt.peer.gtk.Graphics</tt>. If the property is defined and
* equal to "Graphics2D", the cairo-based GdkGraphics2D will be used in
* drawing contexts. Any other value will cause the older GdkGraphics
* object to be used.
*/
public class GtkToolkit extends gnu.java.awt.ClasspathToolkit
implements EmbeddedWindowSupport implements EmbeddedWindowSupport
{ {
GtkMainThread main; GtkMainThread main;
...@@ -73,6 +83,19 @@ public class GtkToolkit extends Toolkit ...@@ -73,6 +83,19 @@ public class GtkToolkit extends Toolkit
static EventQueue q = new EventQueue(); static EventQueue q = new EventQueue();
static Clipboard systemClipboard; static Clipboard systemClipboard;
static boolean useGraphics2dSet;
static boolean useGraphics2d;
public static boolean useGraphics2D()
{
if (useGraphics2dSet)
return useGraphics2d;
useGraphics2d = System.getProperty("gnu.java.awt.peer.gtk.Graphics",
"Graphics").equals("Graphics2D");
useGraphics2dSet = true;
return useGraphics2d;
}
static static
{ {
if (Configuration.INIT_LOAD_LIBRARY) if (Configuration.INIT_LOAD_LIBRARY)
...@@ -135,7 +158,10 @@ public class GtkToolkit extends Toolkit ...@@ -135,7 +158,10 @@ public class GtkToolkit extends Toolkit
public FontMetrics getFontMetrics (Font font) public FontMetrics getFontMetrics (Font font)
{ {
return new GdkFontMetrics (font); if (useGraphics2D())
return new GdkClasspathFontPeerMetrics (font);
else
return new GdkFontMetrics (font);
} }
public Image getImage (String filename) public Image getImage (String filename)
...@@ -322,6 +348,11 @@ public class GtkToolkit extends Toolkit ...@@ -322,6 +348,11 @@ public class GtkToolkit extends Toolkit
return new GtkEmbeddedWindowPeer (w); return new GtkEmbeddedWindowPeer (w);
} }
/**
* @deprecated part of the older "logical font" system in earlier AWT
* implementations. Our newer Font class uses getClasspathFontPeer.
*/
protected FontPeer getFontPeer (String name, int style) protected FontPeer getFontPeer (String name, int style)
{ {
try { try {
...@@ -332,6 +363,38 @@ public class GtkToolkit extends Toolkit ...@@ -332,6 +363,38 @@ public class GtkToolkit extends Toolkit
} }
} }
/**
* Newer method to produce a peer for a Font object, even though Sun's
* design claims Font should now be peerless, we do not agree with this
* model, hence "ClasspathFontPeer".
*/
public ClasspathFontPeer getClasspathFontPeer (String name, Map attrs)
{
if (useGraphics2D())
return new GdkClasspathFontPeer (name, attrs);
else
{
int style = Font.PLAIN;
if (attrs.containsKey (TextAttribute.WEIGHT))
{
Float weight = (Float) attrs.get (TextAttribute.WEIGHT);
if (weight.floatValue () >= TextAttribute.WEIGHT_BOLD.floatValue ())
style += Font.BOLD;
}
if (attrs.containsKey (TextAttribute.POSTURE))
{
Float posture = (Float) attrs.get (TextAttribute.POSTURE);
if (posture.floatValue () >= TextAttribute.POSTURE_OBLIQUE.floatValue ())
style += Font.ITALIC;
}
return (ClasspathFontPeer) this.getFontPeer (name, style);
}
}
protected EventQueue getSystemEventQueueImpl() protected EventQueue getSystemEventQueueImpl()
{ {
return q; return q;
...@@ -350,4 +413,18 @@ public class GtkToolkit extends Toolkit ...@@ -350,4 +413,18 @@ public class GtkToolkit extends Toolkit
{ {
throw new Error("not implemented"); throw new Error("not implemented");
} }
// ClasspathToolkit methods
public GraphicsEnvironment getLocalGraphicsEnvironment()
{
throw new java.lang.UnsupportedOperationException ();
}
public Font createFont(int format, java.io.InputStream stream)
{
throw new java.lang.UnsupportedOperationException ();
}
} // class GtkToolkit } // class GtkToolkit
...@@ -42,6 +42,7 @@ import java.awt.font.FontRenderContext; ...@@ -42,6 +42,7 @@ import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector; import java.awt.font.GlyphVector;
import java.awt.font.LineMetrics; import java.awt.font.LineMetrics;
import java.awt.font.TextAttribute; import java.awt.font.TextAttribute;
import java.awt.font.TransformAttribute;
import java.awt.geom.AffineTransform; import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D; import java.awt.geom.Rectangle2D;
import java.awt.peer.FontPeer; import java.awt.peer.FontPeer;
...@@ -50,15 +51,21 @@ import java.io.IOException; ...@@ -50,15 +51,21 @@ import java.io.IOException;
import java.io.Serializable; import java.io.Serializable;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.HashMap;
import java.util.StringTokenizer; import java.util.StringTokenizer;
import java.text.CharacterIterator; import java.text.CharacterIterator;
import java.text.AttributedCharacterIterator; import java.text.AttributedCharacterIterator;
import java.text.StringCharacterIterator;
import gnu.java.awt.ClasspathToolkit;
import gnu.java.awt.peer.ClasspathFontPeer;
/** /**
* This class represents a windowing system font. * This class represents a windowing system font.
* *
* @author Aaron M. Renn (arenn@urbanophile.com) * @author Aaron M. Renn (arenn@urbanophile.com)
* @author Warren Levy <warrenl@cygnus.com> * @author Warren Levy <warrenl@cygnus.com>
* @author Graydon Hoare <graydon@redhat.com>
*/ */
public class Font implements Serializable public class Font implements Serializable
{ {
...@@ -160,32 +167,9 @@ public static final int HANGING_BASELINE = 2; ...@@ -160,32 +167,9 @@ public static final int HANGING_BASELINE = 2;
// Serialization constant // Serialization constant
private static final long serialVersionUID = -4206021311591459213L; private static final long serialVersionUID = -4206021311591459213L;
/*************************************************************************/
/*
* Instance Variables
*/
/**
* The name of this font
*/
protected String name;
/**
* The font style, which is a combination (by summing, not OR-ing) of
* the font style constants in this class.
*/
protected int style;
/**
* The font point size.
*/
protected int size;
protected float pointSize; // The ClasspathToolkit-provided peer which implements this font
private ClasspathFontPeer peer;
// The native peer for this font
private FontPeer peer;
/*************************************************************************/ /*************************************************************************/
...@@ -208,8 +192,7 @@ private FontPeer peer; ...@@ -208,8 +192,7 @@ private FontPeer peer;
* style if none is specified is PLAIN. The default size if none * style if none is specified is PLAIN. The default size if none
* is specified is 12. * is specified is 12.
*/ */
public static Font public static Font decode (String fontspec)
decode(String fontspec)
{ {
String name = null; String name = null;
int style = PLAIN; int style = PLAIN;
...@@ -237,7 +220,7 @@ decode(String fontspec) ...@@ -237,7 +220,7 @@ decode(String fontspec)
} }
if (token.toUpperCase().equals("BOLDITALIC")) if (token.toUpperCase().equals("BOLDITALIC"))
{ {
style = BOLD + ITALIC; style = BOLD | ITALIC;
continue; continue;
} }
...@@ -252,9 +235,46 @@ decode(String fontspec) ...@@ -252,9 +235,46 @@ decode(String fontspec)
size = tokenval; size = tokenval;
} }
return(new Font(name, style, size)); return getFontFromToolkit (name, attrsToMap (style, size));
} }
/* These methods delegate to the toolkit. */
protected static ClasspathToolkit tk ()
{
return (ClasspathToolkit)(Toolkit.getDefaultToolkit ());
}
protected static Map attrsToMap(int style, int size)
{
Map attrs = new HashMap();
attrs.put (TextAttribute.SIZE, new Float ((float)size));
if ((style & BOLD) == BOLD)
attrs.put (TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD);
else
attrs.put (TextAttribute.WEIGHT, TextAttribute.WEIGHT_REGULAR);
if ((style & ITALIC) == ITALIC)
attrs.put (TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE);
else
attrs.put (TextAttribute.POSTURE, TextAttribute.POSTURE_REGULAR);
return attrs;
}
/* Every factory method in Font should eventually call this. */
protected static Font getFontFromToolkit (String name, Map attribs)
{
return tk ().getFont (name, attribs);
}
/* Every Font constructor should eventually call this. */
protected static ClasspathFontPeer getPeerFromToolkit (String name, Map attrs)
{
return tk ().getClasspathFontPeer (name, attrs);
}
/*************************************************************************/ /*************************************************************************/
/** /**
...@@ -266,14 +286,12 @@ decode(String fontspec) ...@@ -266,14 +286,12 @@ decode(String fontspec)
* @return The requested font, or <code>default</code> if the property * @return The requested font, or <code>default</code> if the property
* not exist or is malformed. * not exist or is malformed.
*/ */
public static Font public static Font getFont (String propname, Font defval)
getFont(String propname, Font defval)
{ {
String propval = System.getProperty(propname); String propval = System.getProperty(propname);
if (propval != null) if (propval != null)
return(decode(propval)); return decode (propval);
return defval;
return(defval);
} }
/*************************************************************************/ /*************************************************************************/
...@@ -286,10 +304,9 @@ getFont(String propname, Font defval) ...@@ -286,10 +304,9 @@ getFont(String propname, Font defval)
* @return The requested font, or <code>null</code> if the property * @return The requested font, or <code>null</code> if the property
* not exist or is malformed. * not exist or is malformed.
*/ */
public static Font public static Font getFont (String propname)
getFont(String propname)
{ {
return(getFont(propname, null)); return getFont (propname, (Font)null);
} }
/*************************************************************************/ /*************************************************************************/
...@@ -306,19 +323,22 @@ getFont(String propname) ...@@ -306,19 +323,22 @@ getFont(String propname)
* @param style The font style. * @param style The font style.
* @param size The font point size. * @param size The font point size.
*/ */
public
Font(String name, int style, int size) public Font (String name, int style, int size)
{
this.peer = getPeerFromToolkit (name, attrsToMap (style, size));
}
public Font (Map attrs)
{ {
this.name = name; this.peer = getPeerFromToolkit (null, attrs);
this.style = style;
this.size = size;
this.pointSize = size;
} }
public /* This extra constructor is here to permit ClasspathToolkit and to build
Font(Map attributes) a font with a "logical name" as well as attrs. */
public Font (String name, Map attrs)
{ {
throw new UnsupportedOperationException(); this.peer = getPeerFromToolkit (name, attrs);
} }
/*************************************************************************/ /*************************************************************************/
...@@ -328,20 +348,19 @@ Font(Map attributes) ...@@ -328,20 +348,19 @@ Font(Map attributes)
*/ */
/** /**
* Returns the logical name of the font. A logical name describes a very * Returns the logical name of the font. A logical name is the name the
* general typographic style (such as Sans Serif). It is less specific * font was constructed with. It may be the name of a logical font (one
* than both a font family name (such as Helvetica) and a font face name * of 6 required names in all java environments) or it may be a face
* (such as Helvetica Bold). * name.
* *
* @return The logical name of the font. * @return The logical name of the font.
* *
* @see getFamily() * @see getFamily()
* @see getFontName() * @see getFontName()
*/ */
public String public String getName ()
getName()
{ {
return(name); return peer.getName (this);
} }
/*************************************************************************/ /*************************************************************************/
...@@ -351,16 +370,14 @@ getName() ...@@ -351,16 +370,14 @@ getName()
* *
* @return The font style. * @return The font style.
*/ */
public int public int getSize ()
getSize()
{ {
return(size); return (int) peer.getSize (this);
} }
public float public float getSize2D ()
getSize2D()
{ {
return pointSize; return peer.getSize (this);
} }
/*************************************************************************/ /*************************************************************************/
...@@ -372,13 +389,9 @@ getSize2D() ...@@ -372,13 +389,9 @@ getSize2D()
* @return <code>true</code> if this is a plain font, <code>false</code> * @return <code>true</code> if this is a plain font, <code>false</code>
* otherwise. * otherwise.
*/ */
public boolean public boolean isPlain ()
isPlain()
{ {
if (style == PLAIN) return peer.isPlain (this);
return(true);
else
return(false);
} }
/*************************************************************************/ /*************************************************************************/
...@@ -389,13 +402,9 @@ isPlain() ...@@ -389,13 +402,9 @@ isPlain()
* @return <code>true</code> if this font is bold, <code>false</code> * @return <code>true</code> if this font is bold, <code>false</code>
* otherwise. * otherwise.
*/ */
public boolean public boolean isBold ()
isBold()
{ {
if ((style == BOLD) || (style == (BOLD+ITALIC))) return peer.isBold (this);
return(true);
else
return(false);
} }
/*************************************************************************/ /*************************************************************************/
...@@ -406,22 +415,17 @@ isBold() ...@@ -406,22 +415,17 @@ isBold()
* @return <code>true</code> if this font is italic, <code>false</code> * @return <code>true</code> if this font is italic, <code>false</code>
* otherwise. * otherwise.
*/ */
public boolean public boolean isItalic ()
isItalic()
{ {
if ((style == ITALIC) || (style == (BOLD+ITALIC))) return peer.isItalic (this);
return(true);
else
return(false);
} }
/*************************************************************************/ /*************************************************************************/
/** /**
* Returns the family name of this font. A family name describes a * Returns the family name of this font. A family name describes a design
* typographic style (such as Helvetica or Palatino). It is more specific * or "brand name" (such as Helvetica or Palatino). It is less specific
* than a logical font name (such as Sans Serif) but less specific than a * than a font face name (such as Helvetica Bold).
* font face name (such as Helvetica Bold).
* *
* @return A string containing the font family name. * @return A string containing the font family name.
* *
...@@ -431,11 +435,9 @@ isItalic() ...@@ -431,11 +435,9 @@ isItalic()
* @see getFontName() * @see getFontName()
* @see GraphicsEnvironment.getAvailableFontFamilyNames() * @see GraphicsEnvironment.getAvailableFontFamilyNames()
*/ */
public String public String getFamily ()
getFamily()
{ {
// FIXME: How do I implement this? return peer.getFamily (this);
return(name);
} }
/** /**
...@@ -448,10 +450,9 @@ getFamily() ...@@ -448,10 +450,9 @@ getFamily()
* @see isBold() * @see isBold()
* @see isItalic() * @see isItalic()
*/ */
public int public int getStyle ()
getStyle()
{ {
return style; return peer.getStyle (this);
} }
/** /**
...@@ -463,10 +464,9 @@ getStyle() ...@@ -463,10 +464,9 @@ getStyle()
* *
* @since 1.2 * @since 1.2
*/ */
public boolean public boolean canDisplay (char c)
canDisplay(char c)
{ {
throw new UnsupportedOperationException (); return peer.canDisplay (this, c);
} }
/** /**
...@@ -481,10 +481,10 @@ canDisplay(char c) ...@@ -481,10 +481,10 @@ canDisplay(char c)
* *
* @since 1.2 * @since 1.2
*/ */
public int public int canDisplayUpTo (String s)
canDisplayUpTo(String s)
{ {
throw new UnsupportedOperationException (); return peer.canDisplayUpTo (this, new StringCharacterIterator (s),
0, s.length () - 1);
} }
/** /**
...@@ -504,10 +504,10 @@ canDisplayUpTo(String s) ...@@ -504,10 +504,10 @@ canDisplayUpTo(String s)
* @throws IndexOutOfBoundsException if the range [start, limit] is * @throws IndexOutOfBoundsException if the range [start, limit] is
* invalid in <code>text</code>. * invalid in <code>text</code>.
*/ */
public int public int canDisplayUpTo (char[] text, int start, int limit)
canDisplayUpTo(char[] text, int start, int limit)
{ {
throw new UnsupportedOperationException (); return peer.canDisplayUpTo
(this, new StringCharacterIterator (new String (text)), start, limit);
} }
/** /**
...@@ -527,10 +527,9 @@ canDisplayUpTo(char[] text, int start, int limit) ...@@ -527,10 +527,9 @@ canDisplayUpTo(char[] text, int start, int limit)
* @throws IndexOutOfBoundsException if the range [start, limit] is * @throws IndexOutOfBoundsException if the range [start, limit] is
* invalid in <code>i</code>. * invalid in <code>i</code>.
*/ */
public int public int canDisplayUpTo (CharacterIterator i, int start, int limit)
canDisplayUpTo(CharacterIterator i, int start, int limit)
{ {
throw new UnsupportedOperationException (); return peer.canDisplayUpTo (this, i, start, limit);
} }
/** /**
...@@ -554,11 +553,10 @@ canDisplayUpTo(CharacterIterator i, int start, int limit) ...@@ -554,11 +553,10 @@ canDisplayUpTo(CharacterIterator i, int start, int limit)
* *
* @since 1.3 * @since 1.3
*/ */
public static Font public static Font createFont (int fontFormat, InputStream is)
createFont(int fontFormat, InputStream is)
throws FontFormatException, IOException throws FontFormatException, IOException
{ {
throw new UnsupportedOperationException (); return tk().createFont (fontFormat, is);
} }
/** /**
...@@ -576,10 +574,9 @@ createFont(int fontFormat, InputStream is) ...@@ -576,10 +574,9 @@ createFont(int fontFormat, InputStream is)
* *
* @see layoutGlyphVector() * @see layoutGlyphVector()
*/ */
public GlyphVector public GlyphVector createGlyphVector (FontRenderContext ctx, String str)
createGlyphVector(FontRenderContext ctx, String str)
{ {
throw new UnsupportedOperationException (); return peer.createGlyphVector (this, ctx, new StringCharacterIterator (str));
} }
/** /**
...@@ -597,10 +594,9 @@ createGlyphVector(FontRenderContext ctx, String str) ...@@ -597,10 +594,9 @@ createGlyphVector(FontRenderContext ctx, String str)
* *
* @see layoutGlyphVector() * @see layoutGlyphVector()
*/ */
public GlyphVector public GlyphVector createGlyphVector (FontRenderContext ctx, CharacterIterator i)
createGlyphVector(FontRenderContext ctx, CharacterIterator i)
{ {
throw new UnsupportedOperationException (); return peer.createGlyphVector (this, ctx, i);
} }
/** /**
...@@ -618,10 +614,10 @@ createGlyphVector(FontRenderContext ctx, CharacterIterator i) ...@@ -618,10 +614,10 @@ createGlyphVector(FontRenderContext ctx, CharacterIterator i)
* *
* @see layoutGlyphVector() * @see layoutGlyphVector()
*/ */
public GlyphVector public GlyphVector createGlyphVector (FontRenderContext ctx, char[] chars)
createGlyphVector(FontRenderContext ctx, char[] chars)
{ {
throw new UnsupportedOperationException (); return peer.createGlyphVector
(this, ctx, new StringCharacterIterator (new String (chars)));
} }
/** /**
...@@ -642,10 +638,10 @@ createGlyphVector(FontRenderContext ctx, char[] chars) ...@@ -642,10 +638,10 @@ createGlyphVector(FontRenderContext ctx, char[] chars)
* purpose was to transport character codes inside integers. I assume it * purpose was to transport character codes inside integers. I assume it
* is mis-documented in the Sun documentation. * is mis-documented in the Sun documentation.
*/ */
public GlyphVector
createGlyphVector(FontRenderContext ctx, int[] glyphCodes) public GlyphVector createGlyphVector (FontRenderContext ctx, int[] glyphCodes)
{ {
throw new UnsupportedOperationException (); return peer.createGlyphVector (this, ctx, glyphCodes);
} }
/** /**
...@@ -658,10 +654,9 @@ createGlyphVector(FontRenderContext ctx, int[] glyphCodes) ...@@ -658,10 +654,9 @@ createGlyphVector(FontRenderContext ctx, int[] glyphCodes)
* *
* @since 1.2 * @since 1.2
*/ */
public Font public Font deriveFont (float size)
deriveFont(float size)
{ {
throw new UnsupportedOperationException (); return peer.deriveFont (this, size);
} }
/** /**
...@@ -674,10 +669,9 @@ deriveFont(float size) ...@@ -674,10 +669,9 @@ deriveFont(float size)
* *
* @since 1.2 * @since 1.2
*/ */
public Font public Font deriveFont (int style)
deriveFont(int style)
{ {
throw new UnsupportedOperationException (); return peer.deriveFont (this, style);
} }
/** /**
...@@ -695,10 +689,12 @@ deriveFont(int style) ...@@ -695,10 +689,12 @@ deriveFont(int style)
* *
* @since 1.2 * @since 1.2
*/ */
public Font public Font deriveFont (int style, AffineTransform a)
deriveFont(int style, AffineTransform a)
{ {
throw new UnsupportedOperationException (); if (a == null)
throw new IllegalArgumentException ("Affine transformation is null");
return peer.deriveFont (this, style, a);
} }
/** /**
...@@ -711,10 +707,9 @@ deriveFont(int style, AffineTransform a) ...@@ -711,10 +707,9 @@ deriveFont(int style, AffineTransform a)
* *
* @since 1.2 * @since 1.2
*/ */
public Font public Font deriveFont (Map attributes)
deriveFont(Map attributes)
{ {
throw new UnsupportedOperationException (); return peer.deriveFont (this, attributes);
} }
/** /**
...@@ -726,10 +721,9 @@ deriveFont(Map attributes) ...@@ -726,10 +721,9 @@ deriveFont(Map attributes)
* @see java.text.AttributedCharacterIterator.Attribute * @see java.text.AttributedCharacterIterator.Attribute
* @see java.awt.font.TextAttribute * @see java.awt.font.TextAttribute
*/ */
public Map public Map getAttributes ()
getAttributes()
{ {
throw new UnsupportedOperationException (); return peer.getAttributes (this);
} }
/** /**
...@@ -741,10 +735,9 @@ getAttributes() ...@@ -741,10 +735,9 @@ getAttributes()
* @see java.text.AttributedCharacterIterator.Attribute * @see java.text.AttributedCharacterIterator.Attribute
* @see java.awt.font.TextAttribute * @see java.awt.font.TextAttribute
*/ */
public AttributedCharacterIterator.Attribute[] public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
getAvailableAttributes()
{ {
throw new UnsupportedOperationException (); return peer.getAvailableAttributes (this);
} }
/** /**
...@@ -768,10 +761,9 @@ getAvailableAttributes() ...@@ -768,10 +761,9 @@ getAvailableAttributes()
* *
* @see LineMetrics.getBaselineOffsets() * @see LineMetrics.getBaselineOffsets()
*/ */
public byte public byte getBaselineFor (char c)
getBaselineFor(char c)
{ {
throw new UnsupportedOperationException (); return peer.getBaselineFor (this, c);
} }
/** /**
...@@ -792,10 +784,9 @@ getBaselineFor(char c) ...@@ -792,10 +784,9 @@ getBaselineFor(char c)
* @see GraphicsEnvironment.getAvailableFontFamilyNames() * @see GraphicsEnvironment.getAvailableFontFamilyNames()
* @see Locale * @see Locale
*/ */
public String public String getFamily (Locale lc)
getFamily(Locale lc)
{ {
throw new UnsupportedOperationException (); return peer.getFamily (this, lc);
} }
/** /**
...@@ -809,10 +800,9 @@ getFamily(Locale lc) ...@@ -809,10 +800,9 @@ getFamily(Locale lc)
* *
* @see TextAttribure * @see TextAttribure
*/ */
public static Font public static Font getFont (Map attributes)
getFont(Map attributes)
{ {
throw new UnsupportedOperationException (); return getFontFromToolkit (null, attributes);
} }
/** /**
...@@ -828,17 +818,15 @@ getFont(Map attributes) ...@@ -828,17 +818,15 @@ getFont(Map attributes)
* @see getName() * @see getName()
* @see getFamily() * @see getFamily()
*/ */
public String public String getFontName ()
getFontName()
{ {
throw new UnsupportedOperationException (); return peer.getFontName (this);
} }
/** /**
* Returns the font face name of the font. A font face name describes a * Returns the font face name of the font. A font face name describes a
* specific variant of a font family (such as Helvetica Bold). It is more * specific variant of a font family (such as Helvetica Bold). It is more
* specific than both a font family name (such as Helvetica) and a logical * specific than both a font family name (such as Helvetica).
* font name (such as Sans Serif).
* *
* @param lc The locale in which to describe the name of the font face. * @param lc The locale in which to describe the name of the font face.
* *
...@@ -850,10 +838,9 @@ getFontName() ...@@ -850,10 +838,9 @@ getFontName()
* @see getName() * @see getName()
* @see getFamily() * @see getFamily()
*/ */
public String public String getFontName (Locale lc)
getFontName(Locale lc)
{ {
throw new UnsupportedOperationException (); return peer.getFontName (this, lc);
} }
/** /**
...@@ -865,10 +852,9 @@ getFontName(Locale lc) ...@@ -865,10 +852,9 @@ getFontName(Locale lc)
* *
* @see TextAttribute.POSTURE * @see TextAttribute.POSTURE
*/ */
public float public float getItalicAngle ()
getItalicAngle()
{ {
throw new UnsupportedOperationException (); return peer.getItalicAngle (this);
} }
/** /**
...@@ -885,10 +871,11 @@ getItalicAngle() ...@@ -885,10 +871,11 @@ getItalicAngle()
* @throws IndexOutOfBoundsException if the range [begin, limit] is * @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>text</code>. * invalid in <code>text</code>.
*/ */
public LineMetrics public LineMetrics getLineMetrics(String text, int begin,
getLineMetrics(String text, int begin, int limit, FontRenderContext rc) int limit, FontRenderContext rc)
{ {
throw new UnsupportedOperationException (); return peer.getLineMetrics (this, new StringCharacterIterator (text),
begin, limit, rc);
} }
/** /**
...@@ -905,10 +892,11 @@ getLineMetrics(String text, int begin, int limit, FontRenderContext rc) ...@@ -905,10 +892,11 @@ getLineMetrics(String text, int begin, int limit, FontRenderContext rc)
* @throws IndexOutOfBoundsException if the range [begin, limit] is * @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>chars</code>. * invalid in <code>chars</code>.
*/ */
public LineMetrics public LineMetrics getLineMetrics(char[] chars, int begin,
getLineMetrics(char[] chars, int begin, int limit, FontRenderContext rc) int limit, FontRenderContext rc)
{ {
throw new UnsupportedOperationException (); return peer.getLineMetrics (this, new StringCharacterIterator (new String(chars)),
begin, limit, rc);
} }
/** /**
...@@ -925,10 +913,10 @@ getLineMetrics(char[] chars, int begin, int limit, FontRenderContext rc) ...@@ -925,10 +913,10 @@ getLineMetrics(char[] chars, int begin, int limit, FontRenderContext rc)
* @throws IndexOutOfBoundsException if the range [begin, limit] is * @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>ci</code>. * invalid in <code>ci</code>.
*/ */
public LineMetrics public LineMetrics getLineMetrics (CharacterIterator ci, int begin,
getLineMetrics(CharacterIterator ci, int begin, int limit, FontRenderContext rc) int limit, FontRenderContext rc)
{ {
throw new UnsupportedOperationException (); return peer.getLineMetrics (this, ci, begin, limit, rc);
} }
/** /**
...@@ -940,10 +928,9 @@ getLineMetrics(CharacterIterator ci, int begin, int limit, FontRenderContext rc) ...@@ -940,10 +928,9 @@ getLineMetrics(CharacterIterator ci, int begin, int limit, FontRenderContext rc)
* *
* @return The maximal bounding box. * @return The maximal bounding box.
*/ */
public Rectangle2D public Rectangle2D getMaxCharBounds (FontRenderContext rc)
getMaxCharBounds(FontRenderContext rc)
{ {
throw new UnsupportedOperationException (); return peer.getMaxCharBounds (this, rc);
} }
/** /**
...@@ -955,10 +942,9 @@ getMaxCharBounds(FontRenderContext rc) ...@@ -955,10 +942,9 @@ getMaxCharBounds(FontRenderContext rc)
* *
* @since 1.2 * @since 1.2
*/ */
public int public int getMissingGlyphCode ()
getMissingGlyphCode()
{ {
throw new UnsupportedOperationException (); return peer.getMissingGlyphCode (this);
} }
/** /**
...@@ -971,10 +957,9 @@ getMissingGlyphCode() ...@@ -971,10 +957,9 @@ getMissingGlyphCode()
* *
* @since 1.2 * @since 1.2
*/ */
public int public int getNumGlyphs ()
getNumGlyphs()
{ {
throw new UnsupportedOperationException (); return peer.getMissingGlyphCode (this);
} }
/** /**
...@@ -988,10 +973,9 @@ getNumGlyphs() ...@@ -988,10 +973,9 @@ getNumGlyphs()
* @see getFamily() * @see getFamily()
* @see getFontName() * @see getFontName()
*/ */
public String public String getPSName ()
getPSName()
{ {
throw new UnsupportedOperationException (); return peer.getPostScriptName (this);
} }
/** /**
...@@ -1009,10 +993,9 @@ getPSName() ...@@ -1009,10 +993,9 @@ getPSName()
* *
* @see createGlyphVector() * @see createGlyphVector()
*/ */
public Rectangle2D public Rectangle2D getStringBounds (String str, FontRenderContext frc)
getStringBounds(String str, FontRenderContext frc)
{ {
throw new UnsupportedOperationException (); return getStringBounds (str, 0, str.length () - 1, frc);
} }
/** /**
...@@ -1037,10 +1020,10 @@ getStringBounds(String str, FontRenderContext frc) ...@@ -1037,10 +1020,10 @@ getStringBounds(String str, FontRenderContext frc)
* *
* @see createGlyphVector() * @see createGlyphVector()
*/ */
public Rectangle2D public Rectangle2D getStringBounds (String str, int begin,
getStringBounds(String str, int begin, int limit, FontRenderContext frc) int limit, FontRenderContext frc)
{ {
throw new UnsupportedOperationException (); return peer.getStringBounds (this, new StringCharacterIterator(str), begin, limit, frc);
} }
/** /**
...@@ -1065,10 +1048,10 @@ getStringBounds(String str, int begin, int limit, FontRenderContext frc) ...@@ -1065,10 +1048,10 @@ getStringBounds(String str, int begin, int limit, FontRenderContext frc)
* *
* @see createGlyphVector() * @see createGlyphVector()
*/ */
public Rectangle2D public Rectangle2D getStringBounds (CharacterIterator ci, int begin,
getStringBounds(CharacterIterator ci, int begin, int limit, FontRenderContext frc) int limit, FontRenderContext frc)
{ {
throw new UnsupportedOperationException (); return peer.getStringBounds (this, ci, begin, limit, frc);
} }
/** /**
...@@ -1093,10 +1076,11 @@ getStringBounds(CharacterIterator ci, int begin, int limit, FontRenderContext fr ...@@ -1093,10 +1076,11 @@ getStringBounds(CharacterIterator ci, int begin, int limit, FontRenderContext fr
* *
* @see createGlyphVector() * @see createGlyphVector()
*/ */
public Rectangle2D public Rectangle2D getStringBounds (char[] chars, int begin,
getStringBounds(char[] chars, int begin, int limit, FontRenderContext frc) int limit, FontRenderContext frc)
{ {
throw new UnsupportedOperationException (); return peer.getStringBounds (this, new StringCharacterIterator (new String (chars)),
begin, limit, frc);
} }
/** /**
...@@ -1105,10 +1089,9 @@ getStringBounds(char[] chars, int begin, int limit, FontRenderContext frc) ...@@ -1105,10 +1089,9 @@ getStringBounds(char[] chars, int begin, int limit, FontRenderContext frc)
* *
* @return The current transformation. * @return The current transformation.
*/ */
public AffineTransform public AffineTransform getTransform ()
getTransform()
{ {
throw new UnsupportedOperationException (); return peer.getTransform (this);
} }
/** /**
...@@ -1123,10 +1106,9 @@ getTransform() ...@@ -1123,10 +1106,9 @@ getTransform()
* @see LineMetrics * @see LineMetrics
* @see getLineMetrics() * @see getLineMetrics()
*/ */
public boolean public boolean hasUniformLineMetrics ()
hasUniformLineMetrics()
{ {
throw new UnsupportedOperationException (); return peer.hasUniformLineMetrics (this);
} }
/** /**
...@@ -1136,10 +1118,9 @@ hasUniformLineMetrics() ...@@ -1136,10 +1118,9 @@ hasUniformLineMetrics()
* @return <code>true</code> iff the font has a non-identity affine * @return <code>true</code> iff the font has a non-identity affine
* transformation applied to it. * transformation applied to it.
*/ */
public boolean public boolean isTransformed ()
isTransformed()
{ {
throw new UnsupportedOperationException (); return peer.isTransformed (this);
} }
/** /**
...@@ -1169,15 +1150,14 @@ isTransformed() ...@@ -1169,15 +1150,14 @@ isTransformed()
* @throws IndexOutOfBoundsException if the range [begin, limit] is * @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>chars</code>. * invalid in <code>chars</code>.
*/ */
public GlyphVector public GlyphVector layoutGlyphVector (FontRenderContext frc,
layoutGlyphVector(FontRenderContext frc, char[] chars, int start, int limit, int flags) char[] chars, int start,
int limit, int flags)
{ {
throw new UnsupportedOperationException (); return peer.layoutGlyphVector (this, frc, chars, start, limit, flags);
} }
/*************************************************************************/
/** /**
* Returns a native peer object for this font. * Returns a native peer object for this font.
* *
...@@ -1185,30 +1165,22 @@ layoutGlyphVector(FontRenderContext frc, char[] chars, int start, int limit, int ...@@ -1185,30 +1165,22 @@ layoutGlyphVector(FontRenderContext frc, char[] chars, int start, int limit, int
* *
* @deprecated * @deprecated
*/ */
public FontPeer public FontPeer getPeer ()
getPeer()
{ {
if (peer != null) return peer;
return(peer);
peer = Toolkit.getDefaultToolkit().getFontPeer(name, style);
return(peer);
} }
/*************************************************************************/
/** /**
* Returns a hash value for this font. * Returns a hash value for this font.
* *
* @return A hash for this font. * @return A hash for this font.
*/ */
public int public int hashCode()
hashCode()
{ {
return((new String(name + size + style)).hashCode()); return this.toString().hashCode();
} }
/*************************************************************************/
/** /**
* Tests whether or not the specified object is equal to this font. This * Tests whether or not the specified object is equal to this font. This
...@@ -1217,7 +1189,7 @@ hashCode() ...@@ -1217,7 +1189,7 @@ hashCode()
* <ul> * <ul>
* <li>The object is not <code>null</code>. * <li>The object is not <code>null</code>.
* <li>The object is an instance of <code>Font</code>. * <li>The object is an instance of <code>Font</code>.
* <li>The object has the same name, style, and size as this object. * <li>The object has the same names, style, size, and transform as this object.
* </ul> * </ul>
* *
* @return <code>true</code> if the specified object is equal to this * @return <code>true</code> if the specified object is equal to this
...@@ -1226,21 +1198,20 @@ hashCode() ...@@ -1226,21 +1198,20 @@ hashCode()
public boolean public boolean
equals(Object obj) equals(Object obj)
{ {
if (!(obj instanceof Font)) if (obj == null)
return(false); return(false);
Font f = (Font)obj; if (!(obj instanceof Font))
if (!f.name.equals(name))
return(false);
if (f.size != size)
return(false); return(false);
if (f.style != style) Font f = (Font)obj;
return(false);
return(true); return (f.getName ().equals (this.getName ()) &&
f.getFamily ().equals (this.getFamily ()) &&
f.getFontName ().equals (this.getFontName ()) &&
f.getTransform ().equals (this.getTransform ()) &&
f.getSize() == this.getSize() &&
f.getStyle() == this.getStyle());
} }
/*************************************************************************/ /*************************************************************************/
...@@ -1253,8 +1224,13 @@ equals(Object obj) ...@@ -1253,8 +1224,13 @@ equals(Object obj)
public String public String
toString() toString()
{ {
return(getClass().getName() + "(name=" + name + ",style=" + style + return(getClass().getName()
",size=" + size + ")"); + "(logical=" + getName ()
+ ",family=" + getFamily ()
+ ",face=" + getFontName ()
+ ",style=" + getStyle ()
+ ",size=" + getSize ()
+ ",transform=" + getTransform () + ")");
} }
...@@ -1278,7 +1254,8 @@ toString() ...@@ -1278,7 +1254,8 @@ toString()
*/ */
public LineMetrics getLineMetrics(String str, FontRenderContext frc) public LineMetrics getLineMetrics(String str, FontRenderContext frc)
{ {
throw new UnsupportedOperationException(); // FIXME return getLineMetrics (str, 0, str.length () - 1, frc);
} }
} // class Font } // class Font
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
obligated to do so. If you do not wish to do so, delete this obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */ exception statement from your version. */
#include "gtkpeer.h" #include "gtkcairopeer.h"
#include <pango/pango.h> #include <pango/pango.h>
#include <pango/pango-context.h> #include <pango/pango-context.h>
......
...@@ -37,7 +37,6 @@ ...@@ -37,7 +37,6 @@
#include <math.h> #include <math.h>
#include "gtkpeer.h"
#include "gdkfont.h" #include "gdkfont.h"
#include "gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.h" #include "gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.h"
......
...@@ -35,7 +35,7 @@ ...@@ -35,7 +35,7 @@
obligated to do so. If you do not wish to do so, delete this obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */ exception statement from your version. */
#include "gtkpeer.h" #include "gtkcairopeer.h"
#include "gdkfont.h" #include "gdkfont.h"
#include "gnu_java_awt_peer_gtk_GdkGraphics2D.h" #include "gnu_java_awt_peer_gtk_GdkGraphics2D.h"
#include <gdk/gdktypes.h> #include <gdk/gdktypes.h>
......
#ifndef __GTKCAIROPEER_H__
#define __GTKCAIROPEER_H__
/* gtkcairopeer.h -- Some global variables and #defines
Copyright (C) 1998, 1999 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 <cairo.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
/*
A graphics2d struct is both simpler and uglier than a graphics
struct.
Most of the graphics2d drawing state is held in the referenced cairo_t
and corresponding cairo_surface_t, so we can ignore it.
In addition to the cairo_t, we need to hold an extra reference to the
underlying GdkDrawable so its refcount matches the lifecycle of the java
Graphics object which is peering with us; also a reference to a byte
buffer and cairo_surface_t which contain the pattern you're drawing from
(if it exists).
Finally, it is possible that we are using a non-RENDER capable X server,
therefore we will be drawing to an cairo_surface_t which is actually a
pixbuf. When this is the case, the pointer to a GdkPixbuf will be
non-NULL and any drawing operation needs to be bracketed by pixbuf
load/save operations. If the GdkPixbuf pointer is NULL, we will treat
the cairo_surface_t as RENDER-capable.
*/
struct graphics2d
{
cairo_t *cr;
cairo_surface_t *surface;
GdkDrawable *drawable;
GdkWindow *win;
GdkPixbuf *drawbuf;
char *pattern_pixels;
cairo_surface_t *pattern;
gboolean debug;
};
#endif /* __GTKCAIROPEER_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment