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
This commit is contained in:
Graydon Hoare 2003-12-31 08:58:31 +00:00
parent 4f0c9c8a87
commit 8fe7789edd
17 changed files with 1456 additions and 732 deletions

View file

@ -168,8 +168,20 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
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_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_GdkGraphics.c \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
@ -207,8 +219,12 @@ jni/classpath/primlib.c
## Java sources for Gtk peers.
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/GdkGlyphVector.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/GtkArg.java \
gnu/java/awt/peer/gtk/GtkArgList.java \
@ -264,7 +280,7 @@ jni/classpath/jnilink.h \
jni/classpath/native_state.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 \
org/w3c/dom/CDATASection.java \
@ -430,7 +446,8 @@ $(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
## FIXME: see above
$(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)
@ -604,7 +621,6 @@ install-data-local:
$(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$$SocketOutputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/
$(INSTALL_DATA) $(srcdir)/java/util/logging/logging.properties $(DESTDIR)$(propdir)/logging.properties
## ################################################################
@ -833,6 +849,7 @@ gnu/awt/j2d/MappedRaster.java \
gnu/java/awt/BitMaskExtent.java \
gnu/java/awt/Buffers.java \
gnu/java/awt/ComponentDataBlitOp.java \
gnu/java/awt/ClasspathToolkit.java \
gnu/java/awt/EmbeddedWindow.java \
gnu/java/awt/EmbeddedWindowSupport.java \
gnu/java/awt/EventModifier.java \
@ -840,6 +857,7 @@ gnu/java/awt/image/ImageDecoder.java \
gnu/java/awt/image/XBMDecoder.java \
gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/beans/editors/ColorEditor.java \
gnu/java/beans/editors/FontEditor.java \
gnu/java/beans/editors/NativeBooleanEditor.java \

View file

@ -1,6 +1,6 @@
# 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
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@ -66,6 +66,8 @@ target_triplet = @target@
AR = @AR@
AS = @AS@
BACKTRACESPEC = @BACKTRACESPEC@
CAIRO_CFLAGS = @CAIRO_CFLAGS@
CAIRO_LIBS = @CAIRO_LIBS@
CC = @CC@
CHECKREFSPEC = @CHECKREFSPEC@
COMPPATH = @COMPPATH@
@ -116,6 +118,8 @@ MAKEINFO = @MAKEINFO@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
PANGOFT2_LIBS = @PANGOFT2_LIBS@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@
@ -258,8 +262,15 @@ libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(THREADLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version`
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_cairo_c_source_files) \
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_GdkPixbufDecoder.c \
@ -297,8 +308,12 @@ jni/classpath/primlib.c
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/GdkGlyphVector.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/GtkArg.java \
gnu/java/awt/peer/gtk/GtkArgList.java \
@ -351,7 +366,7 @@ jni/classpath/native_state.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 \
org/w3c/dom/CDATASection.java \
@ -547,6 +562,7 @@ gnu/awt/j2d/MappedRaster.java \
gnu/java/awt/BitMaskExtent.java \
gnu/java/awt/Buffers.java \
gnu/java/awt/ComponentDataBlitOp.java \
gnu/java/awt/ClasspathToolkit.java \
gnu/java/awt/EmbeddedWindow.java \
gnu/java/awt/EmbeddedWindowSupport.java \
gnu/java/awt/EventModifier.java \
@ -554,6 +570,7 @@ gnu/java/awt/image/ImageDecoder.java \
gnu/java/awt/image/XBMDecoder.java \
gnu/java/awt/peer/EmbeddedWindowPeer.java \
gnu/java/awt/peer/GLightweightPeer.java \
gnu/java/awt/peer/ClasspathFontPeer.java \
gnu/java/beans/editors/ColorEditor.java \
gnu/java/beans/editors/FontEditor.java \
gnu/java/beans/editors/NativeBooleanEditor.java \
@ -2682,77 +2699,162 @@ org/w3c/dom/traversal/NodeIterator.lo \
org/w3c/dom/traversal/TreeWalker.lo
lib_gnu_java_awt_peer_gtk_la_LDFLAGS =
lib_gnu_java_awt_peer_gtk_la_DEPENDENCIES =
lib_gnu_java_awt_peer_gtk_la_OBJECTS = \
gnu/java/awt/peer/gtk/GdkFontMetrics.lo \
gnu/java/awt/peer/gtk/GdkGraphics.lo \
gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
gnu/java/awt/peer/gtk/GtkArg.lo gnu/java/awt/peer/gtk/GtkArgList.lo \
gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.lo \
gnu/java/awt/peer/gtk/GtkCheckboxPeer.lo \
gnu/java/awt/peer/gtk/GtkChoicePeer.lo \
gnu/java/awt/peer/gtk/GtkClipboard.lo \
gnu/java/awt/peer/gtk/GtkComponentPeer.lo \
gnu/java/awt/peer/gtk/GtkContainerPeer.lo \
gnu/java/awt/peer/gtk/GtkDialogPeer.lo \
gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.lo \
gnu/java/awt/peer/gtk/GtkFileDialogPeer.lo \
gnu/java/awt/peer/gtk/GtkFontPeer.lo \
gnu/java/awt/peer/gtk/GtkFramePeer.lo \
gnu/java/awt/peer/gtk/GtkGenericPeer.lo \
gnu/java/awt/peer/gtk/GtkImage.lo \
gnu/java/awt/peer/gtk/GtkImagePainter.lo \
gnu/java/awt/peer/gtk/GtkLabelPeer.lo \
gnu/java/awt/peer/gtk/GtkListPeer.lo \
gnu/java/awt/peer/gtk/GtkMainThread.lo \
gnu/java/awt/peer/gtk/GtkMenuBarPeer.lo \
gnu/java/awt/peer/gtk/GtkMenuComponentPeer.lo \
gnu/java/awt/peer/gtk/GtkMenuItemPeer.lo \
gnu/java/awt/peer/gtk/GtkMenuPeer.lo \
gnu/java/awt/peer/gtk/GtkOffScreenImage.lo \
gnu/java/awt/peer/gtk/GtkPanelPeer.lo \
gnu/java/awt/peer/gtk/GtkPopupMenuPeer.lo \
gnu/java/awt/peer/gtk/GtkScrollPanePeer.lo \
gnu/java/awt/peer/gtk/GtkScrollbarPeer.lo \
gnu/java/awt/peer/gtk/GtkTextAreaPeer.lo \
gnu/java/awt/peer/gtk/GtkTextComponentPeer.lo \
gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \
gnu/java/awt/peer/gtk/GtkToolkit.lo \
gnu/java/awt/peer/gtk/GtkWindowPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.lo \
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
jni/gtk-peer/gthread-jni.lo jni/classpath/jcl.lo \
jni/classpath/jnilink.lo jni/classpath/native_state.lo \
jni/classpath/primlib.lo
@GTK_CAIRO_TRUE@lib_gnu_java_awt_peer_gtk_la_OBJECTS = \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkClasspathFontPeerMetrics.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkFontMetrics.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGlyphVector.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphics.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkGraphics2D.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GdkPixbufDecoder.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArg.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkArgList.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkButtonPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCanvasPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxGroupPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxMenuItemPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkCheckboxPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkChoicePeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkClipboard.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkComponentPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkContainerPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkDialogPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkEmbeddedWindowPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkFileDialogPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkFontPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkFramePeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkGenericPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkImage.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkImagePainter.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkLabelPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkListPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMainThread.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuBarPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuComponentPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuItemPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkMenuPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkOffScreenImage.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkPanelPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkPopupMenuPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkScrollPanePeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkScrollbarPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkTextAreaPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkTextComponentPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkTextFieldPeer.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkToolkit.lo \
@GTK_CAIRO_TRUE@gnu/java/awt/peer/gtk/GtkWindowPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGlyphVector.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontMetrics.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImagePainter.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.lo \
@GTK_CAIRO_TRUE@jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.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 \
gnu/gcj/xlib/natColormap.lo gnu/gcj/xlib/natDisplay.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
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
TAR = tar
TAR = gtar
GZIP_ENV = --best
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
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/natXImage.P .deps/gnu/gcj/xlib/natXUnmapEvent.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/EmbeddedWindow.P \
.deps/gnu/java/awt/EmbeddedWindowSupport.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/XBMDecoder.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/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/GdkGlyphVector.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/GtkArg.P \
.deps/gnu/java/awt/peer/gtk/GtkArgList.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/jni/classpath/jnilink.P .deps/jni/classpath/native_state.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_GdkGlyphVector.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_GtkButtonPeer.P \
.deps/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.P \
@ -4715,7 +4827,7 @@ uninstall-toolexecmainlibDATA:
all-recursive install-data-recursive install-exec-recursive \
installdirs-recursive install-recursive uninstall-recursive \
check-recursive installcheck-recursive info-recursive dvi-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
target=`echo $@ | sed s/-recursive//`; \
list='$(SUBDIRS)'; for subdir in $$list; do \
@ -4735,11 +4847,11 @@ check-recursive installcheck-recursive info-recursive dvi-recursive:
mostlyclean-recursive clean-recursive distclean-recursive \
maintainer-clean-recursive:
@set fnord $(MAKEFLAGS); amf=$$2; \
@set fnord $$MAKEFLAGS; amf=$$2; \
dot_seen=no; \
rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
rev="$$subdir $$rev"; \
test "$$subdir" = "." && dot_seen=yes; \
test "$$subdir" != "." || dot_seen=yes; \
done; \
test "$$dot_seen" = "no" && rev=". $$rev"; \
target=`echo $@ | sed s/-recursive//`; \
@ -5084,7 +5196,8 @@ $(extra_cc_files): %.lo: %.cc
$(c_files): java/lang/fdlibm.h java/lang/ieeefp.h java/lang/mprec.h
$(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)
@ -5223,7 +5336,6 @@ install-data-local:
$(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$$SocketOutputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/
$(INSTALL_DATA) $(srcdir)/java/util/logging/logging.properties $(DESTDIR)$(propdir)/logging.properties
maintainer-check: libgcj.la

View file

@ -268,3 +268,60 @@ else
[Indicate that linker is not able to 8-byte align static data])
fi[]dnl
])# 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
])

114
libjava/aclocal.m4 vendored
View file

@ -1,6 +1,6 @@
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 gives unlimited permission to copy and/or distribute it,
dnl with or without modifications, as long as this notice is preserved.
@ -281,6 +281,63 @@ else
fi[]dnl
])# 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 --
# some checks are only needed if your package does certain things.
# But this isn't really a big deal.
@ -290,8 +347,9 @@ fi[]dnl
dnl Usage:
dnl AM_INIT_AUTOMAKE(package,version, [no-define])
AC_DEFUN(AM_INIT_AUTOMAKE,
[AC_REQUIRE([AC_PROG_INSTALL])
AC_DEFUN([AM_INIT_AUTOMAKE],
[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
AC_REQUIRE([AC_PROG_INSTALL])
PACKAGE=[$1]
AC_SUBST(PACKAGE)
VERSION=[$2]
@ -307,18 +365,47 @@ AC_REQUIRE([AM_SANITY_CHECK])
AC_REQUIRE([AC_ARG_PROGRAM])
dnl FIXME This is truly gross.
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(AUTOMAKE, automake, $missing_dir)
AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}, $missing_dir)
AM_MISSING_PROG(AUTOHEADER, autoheader, $missing_dir)
AM_MISSING_PROG(MAKEINFO, makeinfo, $missing_dir)
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.
#
AC_DEFUN(AM_SANITY_CHECK,
AC_DEFUN([AM_SANITY_CHECK],
[AC_MSG_CHECKING([whether build environment is sane])
# Just in case
sleep 1
@ -359,7 +446,7 @@ AC_MSG_RESULT(yes)])
dnl AM_MISSING_PROG(NAME, PROGRAM, DIRECTORY)
dnl The program must properly implement --version.
AC_DEFUN(AM_MISSING_PROG,
AC_DEFUN([AM_MISSING_PROG],
[AC_MSG_CHECKING(for working $2)
# Run test in a subshell; some versions of sh will print an error if
# an executable is not found, even if stderr is redirected.
@ -378,7 +465,7 @@ AC_SUBST($1)])
# serial 1
AC_DEFUN(AM_MAINTAINER_MODE,
AC_DEFUN([AM_MAINTAINER_MODE],
[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
dnl maintainer-mode is disabled by default
AC_ARG_ENABLE(maintainer-mode,
@ -395,7 +482,7 @@ AC_DEFUN(AM_MAINTAINER_MODE,
# Define a conditional.
AC_DEFUN(AM_CONDITIONAL,
AC_DEFUN([AM_CONDITIONAL],
[AC_SUBST($1_TRUE)
AC_SUBST($1_FALSE)
if $2; then
@ -408,7 +495,7 @@ fi])
# Like AC_CONFIG_HEADER, but automatically create stamp file.
AC_DEFUN(AM_CONFIG_HEADER,
AC_DEFUN([AM_CONFIG_HEADER],
[AC_PREREQ([2.12])
AC_CONFIG_HEADER([$1])
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
fi
fi
AC_PATH_PROG(LIBART_CONFIG, libart2-config, no)
if test "$LIBART_CONFIG" = "no" ; then
AC_PATH_PROG(LIBART_CONFIG, libart-config, no)
fi
AC_PATH_PROG(LIBART_CONFIG, libart-config, no)
min_libart_version=ifelse([$1], ,0.2.5,$1)
AC_MSG_CHECKING(for LIBART - version >= $min_libart_version)
no_libart=""

978
libjava/configure vendored

File diff suppressed because it is too large Load diff

View file

@ -405,6 +405,18 @@ done
AM_CONDITIONAL(XLIB_AWT, test "$use_xlib_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.
libsubdir=.libs

View file

@ -56,6 +56,9 @@ public class GtkCanvasPeer extends GtkComponentPeer implements CanvasPeer
public Graphics getGraphics ()
{
if (GtkToolkit.useGraphics2D ())
return new GdkGraphics2D (this);
else
return new GdkGraphics (this);
}

View file

@ -48,6 +48,7 @@ import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.Image;
import java.awt.Insets;
@ -148,7 +149,16 @@ public class GtkComponentPeer extends GtkGenericPeer
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);
}

View file

@ -92,6 +92,9 @@ public class GtkContainerPeer extends GtkComponentPeer
public Graphics getGraphics ()
{
if (GtkToolkit.useGraphics2D ())
return new GdkGraphics2D (this);
else
return new GdkGraphics (this);
}

View file

@ -38,10 +38,15 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
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.text.*;
import gnu.java.awt.peer.ClasspathFontPeer;
public class GtkFontPeer implements FontPeer
public class GtkFontPeer extends ClasspathFontPeer
{
private static ResourceBundle bundle;
@ -61,6 +66,8 @@ public class GtkFontPeer implements FontPeer
public GtkFontPeer (String name, int style)
{
super(name, style, 12 /* kludge */);
if (bundle != null)
Xname = bundle.getString (name.toLowerCase () + "." + style);
else
@ -91,4 +98,104 @@ public class GtkFontPeer implements FontPeer
{
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();
}
}

View file

@ -41,6 +41,7 @@ package gnu.java.awt.peer.gtk;
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Insets;
import java.awt.MenuBar;
@ -109,8 +110,12 @@ public class GtkFramePeer extends GtkWindowPeer
public Graphics getGraphics ()
{
GdkGraphics g = new GdkGraphics (this);
g.translateNative (-insets.left, -insets.top);
Graphics g;
if (GtkToolkit.useGraphics2D ())
g = new GdkGraphics2D (this);
else
g = new GdkGraphics (this);
g.translate (-insets.left, -insets.top);
return g;
}

View file

@ -42,6 +42,7 @@ import java.awt.*;
import java.awt.datatransfer.Clipboard;
import java.awt.dnd.DragGestureEvent;
import java.awt.dnd.peer.DragSourceContextPeer;
import java.awt.font.TextAttribute;
import java.awt.im.InputMethodHighlight;
import java.awt.image.ColorModel;
import java.awt.image.ImageObserver;
@ -55,6 +56,7 @@ import java.util.Properties;
import gnu.java.awt.EmbeddedWindow;
import gnu.java.awt.EmbeddedWindowSupport;
import gnu.java.awt.peer.EmbeddedWindowPeer;
import gnu.java.awt.peer.ClasspathFontPeer;
import gnu.classpath.Configuration;
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
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
{
GtkMainThread main;
@ -73,6 +83,19 @@ public class GtkToolkit extends Toolkit
static EventQueue q = new EventQueue();
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
{
if (Configuration.INIT_LOAD_LIBRARY)
@ -135,7 +158,10 @@ public class GtkToolkit extends Toolkit
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)
@ -322,6 +348,11 @@ public class GtkToolkit extends Toolkit
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)
{
try {
@ -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()
{
return q;
@ -350,4 +413,18 @@ public class GtkToolkit extends Toolkit
{
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

View file

@ -42,6 +42,7 @@ import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.font.LineMetrics;
import java.awt.font.TextAttribute;
import java.awt.font.TransformAttribute;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.awt.peer.FontPeer;
@ -50,15 +51,21 @@ import java.io.IOException;
import java.io.Serializable;
import java.util.Locale;
import java.util.Map;
import java.util.HashMap;
import java.util.StringTokenizer;
import java.text.CharacterIterator;
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.
*
* @author Aaron M. Renn (arenn@urbanophile.com)
* @author Warren Levy <warrenl@cygnus.com>
* @author Graydon Hoare <graydon@redhat.com>
*/
public class Font implements Serializable
{
@ -160,32 +167,9 @@ public static final int HANGING_BASELINE = 2;
// Serialization constant
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 native peer for this font
private FontPeer peer;
// The ClasspathToolkit-provided peer which implements this font
private ClasspathFontPeer peer;
/*************************************************************************/
@ -208,8 +192,7 @@ private FontPeer peer;
* style if none is specified is PLAIN. The default size if none
* is specified is 12.
*/
public static Font
decode(String fontspec)
public static Font decode (String fontspec)
{
String name = null;
int style = PLAIN;
@ -237,7 +220,7 @@ decode(String fontspec)
}
if (token.toUpperCase().equals("BOLDITALIC"))
{
style = BOLD + ITALIC;
style = BOLD | ITALIC;
continue;
}
@ -252,9 +235,46 @@ decode(String fontspec)
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)
* @return The requested font, or <code>default</code> if the property
* not exist or is malformed.
*/
public static Font
getFont(String propname, Font defval)
public static Font getFont (String propname, Font defval)
{
String propval = System.getProperty(propname);
if (propval != null)
return(decode(propval));
return(defval);
return decode (propval);
return defval;
}
/*************************************************************************/
@ -286,10 +304,9 @@ getFont(String propname, Font defval)
* @return The requested font, or <code>null</code> if the property
* not exist or is malformed.
*/
public static Font
getFont(String propname)
public static Font getFont (String propname)
{
return(getFont(propname, null));
return getFont (propname, (Font)null);
}
/*************************************************************************/
@ -306,19 +323,22 @@ getFont(String propname)
* @param style The font style.
* @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.style = style;
this.size = size;
this.pointSize = size;
this.peer = getPeerFromToolkit (null, attrs);
}
public
Font(Map attributes)
/* This extra constructor is here to permit ClasspathToolkit and to build
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)
*/
/**
* Returns the logical name of the font. A logical name describes a very
* general typographic style (such as Sans Serif). It is less specific
* than both a font family name (such as Helvetica) and a font face name
* (such as Helvetica Bold).
* Returns the logical name of the font. A logical name is the name the
* font was constructed with. It may be the name of a logical font (one
* of 6 required names in all java environments) or it may be a face
* name.
*
* @return The logical name of the font.
*
* @see getFamily()
* @see getFontName()
*/
public String
getName()
public String getName ()
{
return(name);
return peer.getName (this);
}
/*************************************************************************/
@ -351,16 +370,14 @@ getName()
*
* @return The font style.
*/
public int
getSize()
public int getSize ()
{
return(size);
return (int) peer.getSize (this);
}
public float
getSize2D()
public float getSize2D ()
{
return pointSize;
return peer.getSize (this);
}
/*************************************************************************/
@ -372,13 +389,9 @@ getSize2D()
* @return <code>true</code> if this is a plain font, <code>false</code>
* otherwise.
*/
public boolean
isPlain()
public boolean isPlain ()
{
if (style == PLAIN)
return(true);
else
return(false);
return peer.isPlain (this);
}
/*************************************************************************/
@ -389,13 +402,9 @@ isPlain()
* @return <code>true</code> if this font is bold, <code>false</code>
* otherwise.
*/
public boolean
isBold()
public boolean isBold ()
{
if ((style == BOLD) || (style == (BOLD+ITALIC)))
return(true);
else
return(false);
return peer.isBold (this);
}
/*************************************************************************/
@ -406,22 +415,17 @@ isBold()
* @return <code>true</code> if this font is italic, <code>false</code>
* otherwise.
*/
public boolean
isItalic()
public boolean isItalic ()
{
if ((style == ITALIC) || (style == (BOLD+ITALIC)))
return(true);
else
return(false);
return peer.isItalic (this);
}
/*************************************************************************/
/**
* Returns the family name of this font. A family name describes a
* typographic style (such as Helvetica or Palatino). It is more specific
* than a logical font name (such as Sans Serif) but less specific than a
* font face name (such as Helvetica Bold).
* Returns the family name of this font. A family name describes a design
* or "brand name" (such as Helvetica or Palatino). It is less specific
* than a font face name (such as Helvetica Bold).
*
* @return A string containing the font family name.
*
@ -431,11 +435,9 @@ isItalic()
* @see getFontName()
* @see GraphicsEnvironment.getAvailableFontFamilyNames()
*/
public String
getFamily()
public String getFamily ()
{
// FIXME: How do I implement this?
return(name);
return peer.getFamily (this);
}
/**
@ -448,10 +450,9 @@ getFamily()
* @see isBold()
* @see isItalic()
*/
public int
getStyle()
public int getStyle ()
{
return style;
return peer.getStyle (this);
}
/**
@ -463,10 +464,9 @@ getStyle()
*
* @since 1.2
*/
public boolean
canDisplay(char c)
public boolean canDisplay (char c)
{
throw new UnsupportedOperationException ();
return peer.canDisplay (this, c);
}
/**
@ -481,10 +481,10 @@ canDisplay(char c)
*
* @since 1.2
*/
public int
canDisplayUpTo(String s)
public int canDisplayUpTo (String s)
{
throw new UnsupportedOperationException ();
return peer.canDisplayUpTo (this, new StringCharacterIterator (s),
0, s.length () - 1);
}
/**
@ -504,10 +504,10 @@ canDisplayUpTo(String s)
* @throws IndexOutOfBoundsException if the range [start, limit] is
* invalid in <code>text</code>.
*/
public int
canDisplayUpTo(char[] text, int start, int limit)
public int 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)
* @throws IndexOutOfBoundsException if the range [start, limit] is
* invalid in <code>i</code>.
*/
public int
canDisplayUpTo(CharacterIterator i, int start, int limit)
public int 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)
*
* @since 1.3
*/
public static Font
createFont(int fontFormat, InputStream is)
public static Font createFont (int fontFormat, InputStream is)
throws FontFormatException, IOException
{
throw new UnsupportedOperationException ();
return tk().createFont (fontFormat, is);
}
/**
@ -576,10 +574,9 @@ createFont(int fontFormat, InputStream is)
*
* @see layoutGlyphVector()
*/
public GlyphVector
createGlyphVector(FontRenderContext ctx, String str)
public GlyphVector 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)
*
* @see layoutGlyphVector()
*/
public GlyphVector
createGlyphVector(FontRenderContext ctx, CharacterIterator i)
public GlyphVector createGlyphVector (FontRenderContext ctx, CharacterIterator i)
{
throw new UnsupportedOperationException ();
return peer.createGlyphVector (this, ctx, i);
}
/**
@ -618,10 +614,10 @@ createGlyphVector(FontRenderContext ctx, CharacterIterator i)
*
* @see layoutGlyphVector()
*/
public GlyphVector
createGlyphVector(FontRenderContext ctx, char[] chars)
public GlyphVector 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)
* purpose was to transport character codes inside integers. I assume it
* 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)
*
* @since 1.2
*/
public Font
deriveFont(float size)
public Font deriveFont (float size)
{
throw new UnsupportedOperationException ();
return peer.deriveFont (this, size);
}
/**
@ -674,10 +669,9 @@ deriveFont(float size)
*
* @since 1.2
*/
public Font
deriveFont(int style)
public Font deriveFont (int style)
{
throw new UnsupportedOperationException ();
return peer.deriveFont (this, style);
}
/**
@ -695,10 +689,12 @@ deriveFont(int style)
*
* @since 1.2
*/
public Font
deriveFont(int style, AffineTransform a)
public Font 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)
*
* @since 1.2
*/
public Font
deriveFont(Map attributes)
public Font deriveFont (Map attributes)
{
throw new UnsupportedOperationException ();
return peer.deriveFont (this, attributes);
}
/**
@ -726,10 +721,9 @@ deriveFont(Map attributes)
* @see java.text.AttributedCharacterIterator.Attribute
* @see java.awt.font.TextAttribute
*/
public Map
getAttributes()
public Map getAttributes ()
{
throw new UnsupportedOperationException ();
return peer.getAttributes (this);
}
/**
@ -741,10 +735,9 @@ getAttributes()
* @see java.text.AttributedCharacterIterator.Attribute
* @see java.awt.font.TextAttribute
*/
public AttributedCharacterIterator.Attribute[]
getAvailableAttributes()
public AttributedCharacterIterator.Attribute[] getAvailableAttributes()
{
throw new UnsupportedOperationException ();
return peer.getAvailableAttributes (this);
}
/**
@ -768,10 +761,9 @@ getAvailableAttributes()
*
* @see LineMetrics.getBaselineOffsets()
*/
public byte
getBaselineFor(char c)
public byte getBaselineFor (char c)
{
throw new UnsupportedOperationException ();
return peer.getBaselineFor (this, c);
}
/**
@ -792,10 +784,9 @@ getBaselineFor(char c)
* @see GraphicsEnvironment.getAvailableFontFamilyNames()
* @see Locale
*/
public String
getFamily(Locale lc)
public String getFamily (Locale lc)
{
throw new UnsupportedOperationException ();
return peer.getFamily (this, lc);
}
/**
@ -809,10 +800,9 @@ getFamily(Locale lc)
*
* @see TextAttribure
*/
public static Font
getFont(Map attributes)
public static Font getFont (Map attributes)
{
throw new UnsupportedOperationException ();
return getFontFromToolkit (null, attributes);
}
/**
@ -828,17 +818,15 @@ getFont(Map attributes)
* @see getName()
* @see getFamily()
*/
public String
getFontName()
public String getFontName ()
{
throw new UnsupportedOperationException ();
return peer.getFontName (this);
}
/**
* 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 than both a font family name (such as Helvetica) and a logical
* font name (such as Sans Serif).
* specific than both a font family name (such as Helvetica).
*
* @param lc The locale in which to describe the name of the font face.
*
@ -850,10 +838,9 @@ getFontName()
* @see getName()
* @see getFamily()
*/
public String
getFontName(Locale lc)
public String getFontName (Locale lc)
{
throw new UnsupportedOperationException ();
return peer.getFontName (this, lc);
}
/**
@ -865,10 +852,9 @@ getFontName(Locale lc)
*
* @see TextAttribute.POSTURE
*/
public float
getItalicAngle()
public float getItalicAngle ()
{
throw new UnsupportedOperationException ();
return peer.getItalicAngle (this);
}
/**
@ -885,10 +871,11 @@ getItalicAngle()
* @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>text</code>.
*/
public LineMetrics
getLineMetrics(String text, int begin, int limit, FontRenderContext rc)
public LineMetrics getLineMetrics(String text, int begin,
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)
* @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>chars</code>.
*/
public LineMetrics
getLineMetrics(char[] chars, int begin, int limit, FontRenderContext rc)
public LineMetrics getLineMetrics(char[] chars, int begin,
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)
* @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>ci</code>.
*/
public LineMetrics
getLineMetrics(CharacterIterator ci, int begin, int limit, FontRenderContext rc)
public LineMetrics getLineMetrics (CharacterIterator ci, int begin,
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)
*
* @return The maximal bounding box.
*/
public Rectangle2D
getMaxCharBounds(FontRenderContext rc)
public Rectangle2D getMaxCharBounds (FontRenderContext rc)
{
throw new UnsupportedOperationException ();
return peer.getMaxCharBounds (this, rc);
}
/**
@ -955,10 +942,9 @@ getMaxCharBounds(FontRenderContext rc)
*
* @since 1.2
*/
public int
getMissingGlyphCode()
public int getMissingGlyphCode ()
{
throw new UnsupportedOperationException ();
return peer.getMissingGlyphCode (this);
}
/**
@ -971,10 +957,9 @@ getMissingGlyphCode()
*
* @since 1.2
*/
public int
getNumGlyphs()
public int getNumGlyphs ()
{
throw new UnsupportedOperationException ();
return peer.getMissingGlyphCode (this);
}
/**
@ -988,10 +973,9 @@ getNumGlyphs()
* @see getFamily()
* @see getFontName()
*/
public String
getPSName()
public String getPSName ()
{
throw new UnsupportedOperationException ();
return peer.getPostScriptName (this);
}
/**
@ -1009,10 +993,9 @@ getPSName()
*
* @see createGlyphVector()
*/
public Rectangle2D
getStringBounds(String str, FontRenderContext frc)
public Rectangle2D 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)
*
* @see createGlyphVector()
*/
public Rectangle2D
getStringBounds(String str, int begin, int limit, FontRenderContext frc)
public Rectangle2D getStringBounds (String str, int begin,
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)
*
* @see createGlyphVector()
*/
public Rectangle2D
getStringBounds(CharacterIterator ci, int begin, int limit, FontRenderContext frc)
public Rectangle2D getStringBounds (CharacterIterator ci, int begin,
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
*
* @see createGlyphVector()
*/
public Rectangle2D
getStringBounds(char[] chars, int begin, int limit, FontRenderContext frc)
public Rectangle2D getStringBounds (char[] chars, int begin,
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)
*
* @return The current transformation.
*/
public AffineTransform
getTransform()
public AffineTransform getTransform ()
{
throw new UnsupportedOperationException ();
return peer.getTransform (this);
}
/**
@ -1123,10 +1106,9 @@ getTransform()
* @see LineMetrics
* @see getLineMetrics()
*/
public boolean
hasUniformLineMetrics()
public boolean hasUniformLineMetrics ()
{
throw new UnsupportedOperationException ();
return peer.hasUniformLineMetrics (this);
}
/**
@ -1136,10 +1118,9 @@ hasUniformLineMetrics()
* @return <code>true</code> iff the font has a non-identity affine
* transformation applied to it.
*/
public boolean
isTransformed()
public boolean isTransformed ()
{
throw new UnsupportedOperationException ();
return peer.isTransformed (this);
}
/**
@ -1169,15 +1150,14 @@ isTransformed()
* @throws IndexOutOfBoundsException if the range [begin, limit] is
* invalid in <code>chars</code>.
*/
public GlyphVector
layoutGlyphVector(FontRenderContext frc, char[] chars, int start, int limit, int flags)
public GlyphVector layoutGlyphVector (FontRenderContext frc,
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.
*
@ -1185,30 +1165,22 @@ layoutGlyphVector(FontRenderContext frc, char[] chars, int start, int limit, int
*
* @deprecated
*/
public FontPeer
getPeer()
public FontPeer getPeer ()
{
if (peer != null)
return(peer);
peer = Toolkit.getDefaultToolkit().getFontPeer(name, style);
return(peer);
return peer;
}
/*************************************************************************/
/**
* Returns a hash value for this font.
*
* @return A hash for this font.
*/
public int
hashCode()
public int 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
@ -1217,7 +1189,7 @@ hashCode()
* <ul>
* <li>The object is not <code>null</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>
*
* @return <code>true</code> if the specified object is equal to this
@ -1226,21 +1198,20 @@ hashCode()
public boolean
equals(Object obj)
{
if (obj == null)
return(false);
if (!(obj instanceof Font))
return(false);
Font f = (Font)obj;
if (!f.name.equals(name))
return(false);
if (f.size != size)
return(false);
if (f.style != style)
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)
public String
toString()
{
return(getClass().getName() + "(name=" + name + ",style=" + style +
",size=" + size + ")");
return(getClass().getName()
+ "(logical=" + getName ()
+ ",family=" + getFamily ()
+ ",face=" + getFontName ()
+ ",style=" + getStyle ()
+ ",size=" + getSize ()
+ ",transform=" + getTransform () + ")");
}
@ -1278,7 +1254,8 @@ toString()
*/
public LineMetrics getLineMetrics(String str, FontRenderContext frc)
{
throw new UnsupportedOperationException(); // FIXME
return getLineMetrics (str, 0, str.length () - 1, frc);
}
} // class Font

View file

@ -38,7 +38,7 @@
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include "gtkpeer.h"
#include "gtkcairopeer.h"
#include <pango/pango.h>
#include <pango/pango-context.h>

View file

@ -37,7 +37,6 @@
#include <math.h>
#include "gtkpeer.h"
#include "gdkfont.h"
#include "gnu_java_awt_peer_gtk_GdkClasspathFontPeerMetrics.h"

View file

@ -35,7 +35,7 @@
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
#include "gtkpeer.h"
#include "gtkcairopeer.h"
#include "gdkfont.h"
#include "gnu_java_awt_peer_gtk_GdkGraphics2D.h"
#include <gdk/gdktypes.h>

View file

@ -0,0 +1,78 @@
#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 */