Imported GNU Classpath 0.92
2006-08-14 Mark Wielaard <mark@klomp.org> Imported GNU Classpath 0.92 * HACKING: Add more importing hints. Update automake version requirement. * configure.ac (gconf-peer): New enable AC argument. Add --disable-gconf-peer and --enable-default-preferences-peer to classpath configure when gconf is disabled. * scripts/makemake.tcl: Set gnu/java/util/prefs/gconf and gnu/java/awt/dnd/peer/gtk to bc. Classify gnu/java/security/Configuration.java as generated source file. * gnu/java/lang/management/VMGarbageCollectorMXBeanImpl.java, gnu/java/lang/management/VMMemoryPoolMXBeanImpl.java, gnu/java/lang/management/VMClassLoadingMXBeanImpl.java, gnu/java/lang/management/VMRuntimeMXBeanImpl.java, gnu/java/lang/management/VMMemoryManagerMXBeanImpl.java, gnu/java/lang/management/VMThreadMXBeanImpl.java, gnu/java/lang/management/VMMemoryMXBeanImpl.java, gnu/java/lang/management/VMCompilationMXBeanImpl.java: New VM stub classes. * java/lang/management/VMManagementFactory.java: Likewise. * java/net/VMURLConnection.java: Likewise. * gnu/java/nio/VMChannel.java: Likewise. * java/lang/Thread.java (getState): Add stub implementation. * java/lang/Class.java (isEnum): Likewise. * java/lang/Class.h (isEnum): Likewise. * gnu/awt/xlib/XToolkit.java (getClasspathTextLayoutPeer): Removed. * javax/naming/spi/NamingManager.java: New override for StackWalker functionality. * configure, sources.am, Makefile.in, gcj/Makefile.in, include/Makefile.in, testsuite/Makefile.in: Regenerated. From-SVN: r116139
This commit is contained in:
@@ -92,6 +92,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -112,6 +114,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -142,6 +145,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -192,6 +199,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -212,6 +220,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -111,6 +111,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -131,6 +133,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -161,6 +164,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -211,6 +218,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -231,6 +239,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -111,6 +111,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -131,6 +133,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -161,6 +164,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -211,6 +218,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -231,6 +239,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -20,14 +20,19 @@ if CREATE_QT_PEER_LIBRARIES
|
||||
CLASSPATH_QT_PEER_DIR = qt-peer
|
||||
endif
|
||||
|
||||
if CREATE_GCONF_PEER_LIBRARIES
|
||||
CLASSPATH_GCONF_PEER_DIR = gconf-peer
|
||||
endif
|
||||
|
||||
if CREATE_XMLJ_LIBRARY
|
||||
XMLJDIR = xmlj
|
||||
endif
|
||||
|
||||
SUBDIRS = classpath $(JNIDIRS) \
|
||||
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR)
|
||||
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
|
||||
$(CLASSPATH_GCONF_PEER_DIR)
|
||||
DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
|
||||
gtk-peer qt-peer xmlj midi-alsa midi-dssi
|
||||
gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi
|
||||
|
||||
all-local:
|
||||
cd $(top_srcdir) && $(SHELL) ./scripts/check_jni_methods.sh
|
||||
|
||||
@@ -92,6 +92,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -112,6 +114,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -142,6 +145,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -192,6 +199,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -212,6 +220,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
@@ -281,12 +291,14 @@ vm_classes = @vm_classes@
|
||||
@CREATE_DSSI_LIBRARIES_TRUE@DSSIDIR = midi-dssi
|
||||
@CREATE_GTK_PEER_LIBRARIES_TRUE@GTKDIR = gtk-peer
|
||||
@CREATE_QT_PEER_LIBRARIES_TRUE@CLASSPATH_QT_PEER_DIR = qt-peer
|
||||
@CREATE_GCONF_PEER_LIBRARIES_TRUE@CLASSPATH_GCONF_PEER_DIR = gconf-peer
|
||||
@CREATE_XMLJ_LIBRARY_TRUE@XMLJDIR = xmlj
|
||||
SUBDIRS = classpath $(JNIDIRS) \
|
||||
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR)
|
||||
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
|
||||
$(CLASSPATH_GCONF_PEER_DIR)
|
||||
|
||||
DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
|
||||
gtk-peer qt-peer xmlj midi-alsa midi-dssi
|
||||
gtk-peer gconf-peer qt-peer xmlj midi-alsa midi-dssi
|
||||
|
||||
all: all-recursive
|
||||
|
||||
|
||||
@@ -102,6 +102,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -122,6 +124,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -152,6 +155,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -202,6 +209,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -222,6 +230,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -0,0 +1,598 @@
|
||||
/* GConfNativePeer.c -- Implements native methods for class GConfNativePeer
|
||||
Copyright (C) 2003, 2004 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., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 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 <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <jni.h>
|
||||
|
||||
#include <glib.h>
|
||||
#include <gdk/gdk.h>
|
||||
#include <gconf/gconf-client.h>
|
||||
|
||||
#include "jcl.h"
|
||||
|
||||
#include "gnu_java_util_prefs_gconf_GConfNativePeer.h"
|
||||
|
||||
/*
|
||||
* Cached id, methods and objects
|
||||
*/
|
||||
|
||||
/** Reference count */
|
||||
static int reference_count = 0;
|
||||
|
||||
/** GConfClient backend */
|
||||
static GConfClient *client = NULL;
|
||||
|
||||
/** java.util.ArrayList class */
|
||||
static jclass jlist_class = NULL;
|
||||
|
||||
/** java.util.ArrayList constructor id */
|
||||
static jmethodID jlist_init_id = NULL;
|
||||
|
||||
/** ava.util.ArrayList add id */
|
||||
static jmethodID jlist_add_id = NULL;
|
||||
|
||||
/* ***** PRIVATE FUNCTIONS DELCARATION ***** */
|
||||
|
||||
/**
|
||||
* Gets the reference of the default GConfClient and initialize the
|
||||
* the type system.
|
||||
* The client reference should be released with g_object_unref after use.
|
||||
* This functions must be called with gdk lock held.
|
||||
*/
|
||||
static void init_gconf_client (void);
|
||||
|
||||
/**
|
||||
* Throws a new runtime exception after a failure, with the given message.
|
||||
*/
|
||||
static void throw_exception (JNIEnv * env, const char *msg);
|
||||
|
||||
/**
|
||||
* Throws the given exception after a failure, with the given message.
|
||||
*/
|
||||
static void
|
||||
throw_exception_by_name (JNIEnv * env, const char *name, const char *msg);
|
||||
|
||||
/**
|
||||
* Return a reference to a java.util.ArrayList class.
|
||||
*/
|
||||
static gboolean set_jlist_class (JNIEnv * env);
|
||||
|
||||
/**
|
||||
* Builds a new reference to a new java.util.ArrayList instace.
|
||||
* The instance should be freed by the caller after use.
|
||||
*/
|
||||
static jclass get_jlist_reference (JNIEnv * env, jclass jlist_class);
|
||||
|
||||
/* ***** END: PRIVATE FUNCTIONS DELCARATION ***** */
|
||||
|
||||
/* ***** NATIVE FUNCTIONS ***** */
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: init_class
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void
|
||||
JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
if (reference_count == 0)
|
||||
{
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache
|
||||
(env, clazz);
|
||||
return;
|
||||
}
|
||||
|
||||
reference_count++;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: init_id_chache
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void
|
||||
JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)))
|
||||
{
|
||||
reference_count++;
|
||||
|
||||
gdk_threads_enter ();
|
||||
init_gconf_client ();
|
||||
gdk_threads_leave ();
|
||||
|
||||
/* if client is null, there is probably an out of memory */
|
||||
if (client == NULL)
|
||||
{
|
||||
/* release the string and throw a runtime exception */
|
||||
throw_exception (env,
|
||||
"Unable to initialize GConfClient in native code\n");
|
||||
return;
|
||||
}
|
||||
|
||||
/* ***** java.util.ArrayList ***** */
|
||||
if (set_jlist_class (env) == FALSE)
|
||||
{
|
||||
throw_exception (env,
|
||||
"Unable to get valid reference to java.util.List in native code\n");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_gconf_client_all_keys
|
||||
* Signature: (Ljava/lang/String;)Ljava/util/List;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1keys
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
|
||||
{
|
||||
/* TODO: check all the calls to gdk_threads_enter/leave */
|
||||
|
||||
const char *dir = NULL;
|
||||
GError *err = NULL;
|
||||
GSList *entries = NULL;
|
||||
GSList *tmp;
|
||||
|
||||
/* java.util.ArrayList */
|
||||
jobject jlist = NULL;
|
||||
|
||||
dir = JCL_jstring_to_cstring (env, node);
|
||||
if (dir == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gdk_threads_enter ();
|
||||
entries = gconf_client_all_entries (client, dir, &err);
|
||||
gdk_threads_leave ();
|
||||
if (err != NULL)
|
||||
{
|
||||
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
|
||||
err->message);
|
||||
g_error_free (err);
|
||||
err = NULL;
|
||||
|
||||
JCL_free_cstring (env, node, dir);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jlist = get_jlist_reference (env, jlist_class);
|
||||
if (jlist == NULL)
|
||||
{
|
||||
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
|
||||
"Unable to get java.util.List reference in native code\n");
|
||||
JCL_free_cstring (env, node, dir);
|
||||
g_slist_foreach (entries, (GFunc) gconf_entry_free, NULL);
|
||||
g_slist_free (entries);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tmp = entries;
|
||||
while (tmp != NULL)
|
||||
{
|
||||
const char *_val = gconf_entry_get_key (tmp->data);
|
||||
_val = strrchr (_val, '/');
|
||||
++_val;
|
||||
(*env)->CallBooleanMethod (env, jlist, jlist_add_id,
|
||||
(*env)->NewStringUTF (env, _val));
|
||||
tmp = g_slist_next (tmp);
|
||||
}
|
||||
|
||||
/* clean up things */
|
||||
JCL_free_cstring (env, node, dir);
|
||||
g_slist_foreach (entries, (GFunc) gconf_entry_free, NULL);
|
||||
g_slist_free (entries);
|
||||
|
||||
return jlist;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_gconf_client_all_nodes
|
||||
* Signature: (Ljava/lang/String;)Ljava/util/List;
|
||||
*/
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1gconf_1client_1all_1nodes
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
|
||||
{
|
||||
const char *dir = NULL;
|
||||
GError *err = NULL;
|
||||
GSList *entries = NULL;
|
||||
GSList *tmp;
|
||||
|
||||
/* java.util.ArrayList */
|
||||
jobject jlist = NULL;
|
||||
|
||||
dir = JCL_jstring_to_cstring (env, node);
|
||||
if (dir == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gdk_threads_enter ();
|
||||
entries = gconf_client_all_dirs (client, dir, &err);
|
||||
gdk_threads_leave ();
|
||||
if (err != NULL)
|
||||
{
|
||||
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
|
||||
err->message);
|
||||
g_error_free (err);
|
||||
err = NULL;
|
||||
JCL_free_cstring (env, node, dir);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
jlist = get_jlist_reference (env, jlist_class);
|
||||
if (jlist == NULL)
|
||||
{
|
||||
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
|
||||
"Unable to get java.util.List reference in native code\n");
|
||||
JCL_free_cstring (env, node, dir);
|
||||
g_slist_foreach (entries, (GFunc) gconf_entry_free, NULL);
|
||||
g_slist_free (entries);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
tmp = entries;
|
||||
while (tmp != NULL)
|
||||
{
|
||||
const char *_val = tmp->data;
|
||||
_val = strrchr (_val, '/');
|
||||
++_val;
|
||||
(*env)->CallBooleanMethod (env, jlist, jlist_add_id,
|
||||
(*env)->NewStringUTF (env, _val));
|
||||
tmp = g_slist_next (tmp);
|
||||
}
|
||||
|
||||
/* clean up things */
|
||||
JCL_free_cstring (env, node, dir);
|
||||
g_slist_foreach (entries, (GFunc) gconf_entry_free, NULL);
|
||||
g_slist_free (entries);
|
||||
|
||||
return jlist;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_suggest_sync
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)))
|
||||
{
|
||||
GError *err = NULL;
|
||||
|
||||
gdk_threads_enter ();
|
||||
gconf_client_suggest_sync (client, &err);
|
||||
gdk_threads_leave ();
|
||||
if (err != NULL)
|
||||
{
|
||||
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
|
||||
err->message);
|
||||
g_error_free (err);
|
||||
err = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_unset
|
||||
* Signature: (Ljava/lang/String;)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring key)
|
||||
{
|
||||
const char *_key = NULL;
|
||||
gboolean result = JNI_FALSE;
|
||||
GError *err = NULL;
|
||||
|
||||
_key = JCL_jstring_to_cstring (env, key);
|
||||
if (_key == NULL)
|
||||
{
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
gdk_threads_enter ();
|
||||
result = gconf_client_unset (client, _key, &err);
|
||||
gdk_threads_leave ();
|
||||
if (err != NULL)
|
||||
{
|
||||
result = JNI_FALSE;
|
||||
g_error_free (err);
|
||||
err = NULL;
|
||||
}
|
||||
|
||||
JCL_free_cstring (env, key, _key);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_get_string
|
||||
* Signature: (Ljava/lang/String;)Ljava/lang/String;
|
||||
*/
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring key)
|
||||
{
|
||||
const char *_key = NULL;
|
||||
const char *_value = NULL;
|
||||
GError *err = NULL;
|
||||
jstring result = NULL;
|
||||
|
||||
_key = JCL_jstring_to_cstring (env, key);
|
||||
if (_key == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gdk_threads_enter ();
|
||||
_value = gconf_client_get_string (client, _key, &err);
|
||||
gdk_threads_leave ();
|
||||
JCL_free_cstring (env, key, _key);
|
||||
if (err != NULL)
|
||||
{
|
||||
/* just in case */
|
||||
if (_value != NULL) g_free ((gpointer) _value);
|
||||
g_error_free (err);
|
||||
err = NULL;
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Even if Gconf reported no error it is possible that NULL was returned */
|
||||
/* and it should be prevented to create a Java string from that value. */
|
||||
if (_value != NULL)
|
||||
{
|
||||
result = (*env)->NewStringUTF (env, _value);
|
||||
g_free ((gpointer) _value);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_set_string
|
||||
* Signature: (Ljava/lang/String;Ljava/lang/String;)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)),
|
||||
jstring key, jstring value)
|
||||
{
|
||||
const char *_key = NULL;
|
||||
const char *_value = NULL;
|
||||
GError *err = NULL;
|
||||
|
||||
gboolean result = JNI_FALSE;
|
||||
|
||||
/* load an UTF string from the virtual machine. */
|
||||
_key = JCL_jstring_to_cstring (env, key);
|
||||
_value = JCL_jstring_to_cstring (env, value);
|
||||
if (_key == NULL || _value == NULL)
|
||||
{
|
||||
return JNI_FALSE;
|
||||
}
|
||||
|
||||
gdk_threads_enter ();
|
||||
result = gconf_client_set_string (client, _key, _value, &err);
|
||||
gdk_threads_leave ();
|
||||
if (err != NULL)
|
||||
{
|
||||
g_error_free (err);
|
||||
err = NULL;
|
||||
result = JNI_FALSE;
|
||||
}
|
||||
|
||||
JCL_free_cstring (env, key, _key);
|
||||
JCL_free_cstring (env, value, _value);
|
||||
|
||||
return (jboolean) result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_remove_dir
|
||||
* Signature: (Ljava/lang/String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
|
||||
{
|
||||
const char *dir = NULL;
|
||||
|
||||
dir = JCL_jstring_to_cstring (env, node);
|
||||
if (dir == NULL)
|
||||
return;
|
||||
|
||||
gdk_threads_enter ();
|
||||
gconf_client_remove_dir (client, dir, NULL);
|
||||
gdk_threads_leave ();
|
||||
|
||||
JCL_free_cstring (env, node, dir);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_add_dir
|
||||
* Signature: (Ljava/lang/String;)V
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
|
||||
{
|
||||
const char *dir = NULL;
|
||||
|
||||
dir = JCL_jstring_to_cstring (env, node);
|
||||
if (dir == NULL)
|
||||
return;
|
||||
|
||||
/* ignore errors */
|
||||
gdk_threads_enter ();
|
||||
gconf_client_add_dir (client, dir, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
|
||||
gdk_threads_leave ();
|
||||
|
||||
JCL_free_cstring (env, node, dir);
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: gconf_client_dir_exists
|
||||
* Signature: (Ljava/lang/String;)Z
|
||||
*/
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
|
||||
{
|
||||
const char *dir = NULL;
|
||||
GError *err = NULL;
|
||||
jboolean value = JNI_FALSE;
|
||||
|
||||
dir = JCL_jstring_to_cstring (env, node);
|
||||
if (dir == NULL)
|
||||
return value;
|
||||
|
||||
/* on error return false */
|
||||
gdk_threads_enter ();
|
||||
value = gconf_client_dir_exists (client, dir, &err);
|
||||
gdk_threads_leave ();
|
||||
if (err != NULL)
|
||||
value = JNI_FALSE;
|
||||
|
||||
JCL_free_cstring (env, node, dir);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/*
|
||||
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
|
||||
* Method: finalize_class
|
||||
* Signature: ()V
|
||||
*/
|
||||
JNIEXPORT void
|
||||
JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class
|
||||
(JNIEnv *env, jclass clazz __attribute__ ((unused)))
|
||||
{
|
||||
if (reference_count == 0)
|
||||
{
|
||||
/* last reference, free all resources and return */
|
||||
gdk_threads_enter ();
|
||||
g_object_unref (G_OBJECT (client));
|
||||
gdk_threads_leave ();
|
||||
|
||||
(*env)->DeleteGlobalRef (env, jlist_class);
|
||||
|
||||
jlist_class = NULL;
|
||||
jlist_init_id = NULL;
|
||||
jlist_add_id = NULL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
reference_count--;
|
||||
}
|
||||
|
||||
/* ***** END: NATIVE FUNCTIONS ***** */
|
||||
|
||||
/* ***** PRIVATE FUNCTIONS IMPLEMENTATION ***** */
|
||||
|
||||
static void throw_exception (JNIEnv *env, const char *msg)
|
||||
{
|
||||
throw_exception_by_name (env, "java/lang/RuntimeException", msg);
|
||||
}
|
||||
|
||||
static void
|
||||
throw_exception_by_name (JNIEnv *env, const char *name, const char *msg)
|
||||
{
|
||||
JCL_ThrowException (env, name, msg);
|
||||
}
|
||||
|
||||
static void init_gconf_client (void)
|
||||
{
|
||||
g_type_init ();
|
||||
client = gconf_client_get_default ();
|
||||
}
|
||||
|
||||
static gboolean set_jlist_class (JNIEnv *env)
|
||||
{
|
||||
jclass local_jlist_class = NULL;
|
||||
|
||||
/* gets a reference to the ArrayList class */
|
||||
local_jlist_class = JCL_FindClass (env, "java/util/ArrayList");
|
||||
if (local_jlist_class == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
jlist_class = (*env)->NewGlobalRef (env, local_jlist_class);
|
||||
(*env)->DeleteLocalRef (env, local_jlist_class);
|
||||
if (jlist_class == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* and initialize it */
|
||||
jlist_init_id = (*env)->GetMethodID (env, jlist_class, "<init>", "()V");
|
||||
if (jlist_init_id == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
jlist_add_id = (*env)->GetMethodID (env, jlist_class, "add",
|
||||
"(Ljava/lang/Object;)Z");
|
||||
if (jlist_add_id == NULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static jobject get_jlist_reference (JNIEnv *env, jclass jlist_class)
|
||||
{
|
||||
return (*env)->NewObject (env, jlist_class, jlist_init_id);
|
||||
}
|
||||
|
||||
/* ***** END: PRIVATE FUNCTIONS IMPLEMENTATION ***** */
|
||||
@@ -0,0 +1,12 @@
|
||||
nativeexeclib_LTLIBRARIES = libgconfpeer.la
|
||||
|
||||
libgconfpeer_la_SOURCES = GConfNativePeer.c
|
||||
|
||||
libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
|
||||
$(top_builddir)/native/jni/classpath/jcl.lo
|
||||
|
||||
AM_LDFLAGS = @CLASSPATH_MODULE@ @GCONF_LIBS@ @GDK_LIBS@
|
||||
|
||||
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
|
||||
|
||||
AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ @GCONF_CFLAGS@ @GDK_CFLAGS@
|
||||
@@ -0,0 +1,591 @@
|
||||
# Makefile.in generated by automake 1.9.6 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005 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.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
|
||||
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE.
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
srcdir = @srcdir@
|
||||
top_srcdir = @top_srcdir@
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
top_builddir = ../../..
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
INSTALL = @INSTALL@
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
install_sh_SCRIPT = $(install_sh) -c
|
||||
INSTALL_HEADER = $(INSTALL_DATA)
|
||||
transform = $(program_transform_name)
|
||||
NORMAL_INSTALL = :
|
||||
PRE_INSTALL = :
|
||||
POST_INSTALL = :
|
||||
NORMAL_UNINSTALL = :
|
||||
PRE_UNINSTALL = :
|
||||
POST_UNINSTALL = :
|
||||
build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
target_triplet = @target@
|
||||
subdir = native/jni/gconf-peer
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/../../libtool.m4 \
|
||||
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
|
||||
$(top_srcdir)/m4/acinclude.m4 \
|
||||
$(top_srcdir)/m4/ax_create_stdint_h.m4 \
|
||||
$(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
|
||||
$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
|
||||
$(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
|
||||
nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
|
||||
libgconfpeer_la_DEPENDENCIES = \
|
||||
$(top_builddir)/native/jni/classpath/native_state.lo \
|
||||
$(top_builddir)/native/jni/classpath/jcl.lo
|
||||
am_libgconfpeer_la_OBJECTS = GConfNativePeer.lo
|
||||
libgconfpeer_la_OBJECTS = $(am_libgconfpeer_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \
|
||||
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
|
||||
$(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
|
||||
$(AM_LDFLAGS) $(LDFLAGS) -o $@
|
||||
SOURCES = $(libgconfpeer_la_SOURCES)
|
||||
DIST_SOURCES = $(libgconfpeer_la_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AMDEP_FALSE = @AMDEP_FALSE@
|
||||
AMDEP_TRUE = @AMDEP_TRUE@
|
||||
AMTAR = @AMTAR@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
|
||||
BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@
|
||||
CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
|
||||
CLASSPATH_MODULE = @CLASSPATH_MODULE@
|
||||
COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@
|
||||
CP = @CP@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
|
||||
CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
|
||||
CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
|
||||
CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
|
||||
CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@
|
||||
CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@
|
||||
CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@
|
||||
CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@
|
||||
CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@
|
||||
CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@
|
||||
CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@
|
||||
CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@
|
||||
CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@
|
||||
CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@
|
||||
CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
ECJ = @ECJ@
|
||||
EGREP = @EGREP@
|
||||
ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
|
||||
ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@
|
||||
ERROR_CFLAGS = @ERROR_CFLAGS@
|
||||
EXAMPLESDIR = @EXAMPLESDIR@
|
||||
EXEEXT = @EXEEXT@
|
||||
FASTJAR = @FASTJAR@
|
||||
FIND = @FIND@
|
||||
FOUND_CACAO_FALSE = @FOUND_CACAO_FALSE@
|
||||
FOUND_CACAO_TRUE = @FOUND_CACAO_TRUE@
|
||||
FOUND_ECJ_FALSE = @FOUND_ECJ_FALSE@
|
||||
FOUND_ECJ_TRUE = @FOUND_ECJ_TRUE@
|
||||
FOUND_GCJX_FALSE = @FOUND_GCJX_FALSE@
|
||||
FOUND_GCJX_TRUE = @FOUND_GCJX_TRUE@
|
||||
FOUND_GCJ_FALSE = @FOUND_GCJ_FALSE@
|
||||
FOUND_GCJ_TRUE = @FOUND_GCJ_TRUE@
|
||||
FOUND_JIKES_FALSE = @FOUND_JIKES_FALSE@
|
||||
FOUND_JIKES_TRUE = @FOUND_JIKES_TRUE@
|
||||
FOUND_KJC_FALSE = @FOUND_KJC_FALSE@
|
||||
FOUND_KJC_TRUE = @FOUND_KJC_TRUE@
|
||||
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
|
||||
INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@
|
||||
INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@
|
||||
INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
|
||||
JAY = @JAY@
|
||||
JAY_SKELETON = @JAY_SKELETON@
|
||||
JIKES = @JIKES@
|
||||
JIKESENCODING = @JIKESENCODING@
|
||||
JIKESWARNINGS = @JIKESWARNINGS@
|
||||
KJC = @KJC@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LIBDEBUG = @LIBDEBUG@
|
||||
LIBICONV = @LIBICONV@
|
||||
LIBMAGIC = @LIBMAGIC@
|
||||
LIBOBJS = @LIBOBJS@
|
||||
LIBS = @LIBS@
|
||||
LIBTOOL = @LIBTOOL@
|
||||
LIBVERSION = @LIBVERSION@
|
||||
LN_S = @LN_S@
|
||||
LTLIBICONV = @LTLIBICONV@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
|
||||
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MKDIR = @MKDIR@
|
||||
MOC = @MOC@
|
||||
MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
|
||||
MOZILLA_LIBS = @MOZILLA_LIBS@
|
||||
OBJEXT = @OBJEXT@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PLUGIN_DIR = @PLUGIN_DIR@
|
||||
QT_CFLAGS = @QT_CFLAGS@
|
||||
QT_LIBS = @QT_LIBS@
|
||||
RANLIB = @RANLIB@
|
||||
REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
|
||||
REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
|
||||
REMOVE = @REMOVE@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
|
||||
STRIP = @STRIP@
|
||||
USER_CLASSLIB = @USER_CLASSLIB@
|
||||
USER_JAVAH = @USER_JAVAH@
|
||||
USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
VM_BINARY = @VM_BINARY@
|
||||
WARNING_CFLAGS = @WARNING_CFLAGS@
|
||||
XML_CFLAGS = @XML_CFLAGS@
|
||||
XML_LIBS = @XML_LIBS@
|
||||
XSLT_CFLAGS = @XSLT_CFLAGS@
|
||||
XSLT_LIBS = @XSLT_LIBS@
|
||||
XTEST_LIBS = @XTEST_LIBS@
|
||||
X_CFLAGS = @X_CFLAGS@
|
||||
X_EXTRA_LIBS = @X_EXTRA_LIBS@
|
||||
X_LIBS = @X_LIBS@
|
||||
X_PRE_LIBS = @X_PRE_LIBS@
|
||||
ZIP = @ZIP@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_RANLIB = @ac_ct_RANLIB@
|
||||
ac_ct_STRIP = @ac_ct_STRIP@
|
||||
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
|
||||
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
|
||||
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
|
||||
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
build = @build@
|
||||
build_alias = @build_alias@
|
||||
build_cpu = @build_cpu@
|
||||
build_os = @build_os@
|
||||
build_vendor = @build_vendor@
|
||||
datadir = @datadir@
|
||||
default_toolkit = @default_toolkit@
|
||||
exec_prefix = @exec_prefix@
|
||||
glibjdir = @glibjdir@
|
||||
host = @host@
|
||||
host_alias = @host_alias@
|
||||
host_cpu = @host_cpu@
|
||||
host_os = @host_os@
|
||||
host_vendor = @host_vendor@
|
||||
includedir = @includedir@
|
||||
infodir = @infodir@
|
||||
install_sh = @install_sh@
|
||||
libdir = @libdir@
|
||||
libexecdir = @libexecdir@
|
||||
localstatedir = @localstatedir@
|
||||
mandir = @mandir@
|
||||
mkdir_p = @mkdir_p@
|
||||
nativeexeclibdir = @nativeexeclibdir@
|
||||
oldincludedir = @oldincludedir@
|
||||
prefix = @prefix@
|
||||
program_transform_name = @program_transform_name@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
sysconfdir = @sysconfdir@
|
||||
target = @target@
|
||||
target_alias = @target_alias@
|
||||
target_cpu = @target_cpu@
|
||||
target_os = @target_os@
|
||||
target_vendor = @target_vendor@
|
||||
vm_classes = @vm_classes@
|
||||
nativeexeclib_LTLIBRARIES = libgconfpeer.la
|
||||
libgconfpeer_la_SOURCES = GConfNativePeer.c
|
||||
libgconfpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/native_state.lo \
|
||||
$(top_builddir)/native/jni/classpath/jcl.lo
|
||||
|
||||
AM_LDFLAGS = @CLASSPATH_MODULE@ @GCONF_LIBS@ @GDK_LIBS@
|
||||
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
|
||||
AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ @GCONF_CFLAGS@ @GDK_CFLAGS@
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/jni/gconf-peer/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --gnu native/jni/gconf-peer/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
*config.status*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
|
||||
*) \
|
||||
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
|
||||
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
|
||||
esac;
|
||||
|
||||
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)"
|
||||
@list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
|
||||
if test -f $$p; then \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \
|
||||
$(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \
|
||||
else :; fi; \
|
||||
done
|
||||
|
||||
uninstall-nativeexeclibLTLIBRARIES:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
|
||||
p=$(am__strip_dir) \
|
||||
echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \
|
||||
$(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \
|
||||
done
|
||||
|
||||
clean-nativeexeclibLTLIBRARIES:
|
||||
-test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES)
|
||||
@list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
|
||||
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
|
||||
test "$$dir" != "$$p" || dir=.; \
|
||||
echo "rm -f \"$${dir}/so_locations\""; \
|
||||
rm -f "$${dir}/so_locations"; \
|
||||
done
|
||||
libgconfpeer.la: $(libgconfpeer_la_OBJECTS) $(libgconfpeer_la_DEPENDENCIES)
|
||||
$(LINK) -rpath $(nativeexeclibdir) $(libgconfpeer_la_LDFLAGS) $(libgconfpeer_la_OBJECTS) $(libgconfpeer_la_LIBADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GConfNativePeer.Plo@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
|
||||
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
uninstall-info-am:
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
|
||||
list='$(DISTFILES)'; for file in $$list; do \
|
||||
case $$file in \
|
||||
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
|
||||
esac; \
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
|
||||
dir="/$$dir"; \
|
||||
$(mkdir_p) "$(distdir)$$dir"; \
|
||||
else \
|
||||
dir=''; \
|
||||
fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
check-am: all-am
|
||||
check: check-am
|
||||
all-am: Makefile $(LTLIBRARIES)
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \
|
||||
test -z "$$dir" || $(mkdir_p) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
install-exec: install-exec-am
|
||||
install-data: install-data-am
|
||||
uninstall: uninstall-am
|
||||
|
||||
install-am: all-am
|
||||
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
|
||||
|
||||
installcheck: installcheck-am
|
||||
install-strip:
|
||||
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
|
||||
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
|
||||
`test -z '$(STRIP)' || \
|
||||
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am:
|
||||
|
||||
install-exec-am: install-nativeexeclibLTLIBRARIES
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-man:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
pdf-am:
|
||||
|
||||
ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-info-am uninstall-nativeexeclibLTLIBRARIES
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
|
||||
clean-libtool clean-nativeexeclibLTLIBRARIES ctags distclean \
|
||||
distclean-compile distclean-generic distclean-libtool \
|
||||
distclean-tags distdir dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am install-exec \
|
||||
install-exec-am install-info install-info-am install-man \
|
||||
install-nativeexeclibLTLIBRARIES install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-info-am \
|
||||
uninstall-nativeexeclibLTLIBRARIES
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
@@ -0,0 +1,256 @@
|
||||
/* gtkdragsourcecontextpeer.c -- Native implementation of GtkDragSourceContextPeer
|
||||
Copyright (C) 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 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 "GtkDragSourceContextPeer.h"
|
||||
|
||||
#include <jni.h>
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
static GtkWidget * get_widget (GtkWidget *widget);
|
||||
|
||||
#define ACTION_COPY 1
|
||||
#define ACTION_MOVE 2
|
||||
#define ACTION_COPY_OR_MOVE 3
|
||||
#define ACTION_LINK 1073741824
|
||||
|
||||
#define AWT_DEFAULT_CURSOR 0
|
||||
#define AWT_CROSSHAIR_CURSOR 1
|
||||
#define AWT_TEXT_CURSOR 2
|
||||
#define AWT_WAIT_CURSOR 3
|
||||
#define AWT_SW_RESIZE_CURSOR 4
|
||||
#define AWT_SE_RESIZE_CURSOR 5
|
||||
#define AWT_NW_RESIZE_CURSOR 6
|
||||
#define AWT_NE_RESIZE_CURSOR 7
|
||||
#define AWT_N_RESIZE_CURSOR 8
|
||||
#define AWT_S_RESIZE_CURSOR 9
|
||||
#define AWT_W_RESIZE_CURSOR 10
|
||||
#define AWT_E_RESIZE_CURSOR 11
|
||||
#define AWT_HAND_CURSOR 12
|
||||
#define AWT_MOVE_CURSOR 13
|
||||
|
||||
GtkWidget *widget;
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create
|
||||
(JNIEnv *env, jobject obj, jobject comp)
|
||||
{
|
||||
void *ptr;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
NSA_SET_GLOBAL_REF (env, obj);
|
||||
NSA_SET_GLOBAL_REF (env, comp);
|
||||
|
||||
ptr = NSA_GET_PTR (env, comp);
|
||||
widget = get_widget (GTK_WIDGET (ptr));
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor
|
||||
(JNIEnv *env, jobject obj, jint type)
|
||||
{
|
||||
void *ptr;
|
||||
GdkWindow *win;
|
||||
GdkCursorType gdk_cursor_type;
|
||||
GdkCursor *gdk_cursor;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_GLOBAL_REF (env, obj);
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case AWT_CROSSHAIR_CURSOR:
|
||||
gdk_cursor_type = GDK_CROSSHAIR;
|
||||
break;
|
||||
case AWT_TEXT_CURSOR:
|
||||
gdk_cursor_type = GDK_XTERM;
|
||||
break;
|
||||
case AWT_WAIT_CURSOR:
|
||||
gdk_cursor_type = GDK_WATCH;
|
||||
break;
|
||||
case AWT_SW_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_BOTTOM_LEFT_CORNER;
|
||||
break;
|
||||
case AWT_SE_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_BOTTOM_RIGHT_CORNER;
|
||||
break;
|
||||
case AWT_NW_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_TOP_LEFT_CORNER;
|
||||
break;
|
||||
case AWT_NE_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_TOP_RIGHT_CORNER;
|
||||
break;
|
||||
case AWT_N_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_TOP_SIDE;
|
||||
break;
|
||||
case AWT_S_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_BOTTOM_SIDE;
|
||||
break;
|
||||
case AWT_W_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_LEFT_SIDE;
|
||||
break;
|
||||
case AWT_E_RESIZE_CURSOR:
|
||||
gdk_cursor_type = GDK_RIGHT_SIDE;
|
||||
break;
|
||||
case AWT_HAND_CURSOR:
|
||||
gdk_cursor_type = GDK_HAND2;
|
||||
break;
|
||||
case AWT_MOVE_CURSOR:
|
||||
gdk_cursor_type = GDK_FLEUR;
|
||||
break;
|
||||
default:
|
||||
gdk_cursor_type = GDK_LEFT_PTR;
|
||||
}
|
||||
|
||||
win = widget->window;
|
||||
if ((widget->window) == NULL)
|
||||
win = widget->window;
|
||||
|
||||
gdk_cursor = gdk_cursor_new (gdk_cursor_type);
|
||||
|
||||
gdk_window_set_cursor (win, gdk_cursor);
|
||||
gdk_cursor_unref (gdk_cursor);
|
||||
|
||||
gdk_flush();
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_connectSignals
|
||||
(JNIEnv *env, jobject obj, jobject comp)
|
||||
{
|
||||
jobject *gref;
|
||||
void *ptr;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_GLOBAL_REF (env, obj);
|
||||
gref = NSA_GET_GLOBAL_REF (env, comp);
|
||||
|
||||
/* Uncomment when needed:
|
||||
g_signal_connect (G_OBJECT (widget), "drag_motion",
|
||||
G_CALLBACK (drag_motion_cb), *gref);
|
||||
g_signal_connect (G_OBJECT (widget), "drag_begin",
|
||||
G_CALLBACK (drag_begin_cb), *gref);
|
||||
g_signal_connect (G_OBJECT (widget), "drag_end",
|
||||
G_CALLBACK (drag_end_cb), *gref);
|
||||
g_signal_connect (G_OBJECT (widget), "drag_data_get",
|
||||
G_CALLBACK (drag_data_get_cb), *gref);
|
||||
g_signal_connect (G_OBJECT (widget), "drag_drop",
|
||||
G_CALLBACK (drag_drop_cb), *gref);
|
||||
g_signal_connect (G_OBJECT (widget), "drag_data_delete",
|
||||
G_CALLBACK (drag_data_delete_cb), *gref);
|
||||
g_signal_connect (G_OBJECT (widget), "drag_data_received",
|
||||
G_CALLBACK (drag_data_received_cb), *gref);
|
||||
*/
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeStartDrag
|
||||
(JNIEnv *env, jobject obj, jobject img, jint x, jint y, jint act,
|
||||
jstring target)
|
||||
{
|
||||
void *ptr;
|
||||
const gchar *data;
|
||||
GtkTargetEntry tar[1];
|
||||
GdkEvent *event;
|
||||
GdkPixbuf *image = NULL;
|
||||
GdkDragContext *context = NULL;
|
||||
GdkDragAction action = GDK_ACTION_DEFAULT;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_GLOBAL_REF (env, obj);
|
||||
|
||||
data = (*env)->GetStringUTFChars (env, target, NULL);
|
||||
tar[0].target = (gchar *) data;
|
||||
event = gdk_event_new (GDK_ALL_EVENTS_MASK);
|
||||
|
||||
switch (act)
|
||||
{
|
||||
case ACTION_COPY:
|
||||
action = GDK_ACTION_COPY;
|
||||
break;
|
||||
case ACTION_MOVE:
|
||||
action = GDK_ACTION_MOVE;
|
||||
break;
|
||||
case ACTION_COPY_OR_MOVE:
|
||||
action = GDK_ACTION_COPY | GDK_ACTION_MOVE;
|
||||
break;
|
||||
case ACTION_LINK:
|
||||
action = GDK_ACTION_LINK;
|
||||
break;
|
||||
default:
|
||||
action = GDK_ACTION_DEFAULT;
|
||||
}
|
||||
|
||||
gtk_drag_highlight (widget);
|
||||
context = gtk_drag_begin (widget,
|
||||
gtk_target_list_new (tar, sizeof (tar) / sizeof (GtkTargetEntry)),
|
||||
action, GDK_BUTTON1_MASK | GDK_BUTTON2_MASK, event);
|
||||
|
||||
if (img != NULL)
|
||||
{
|
||||
image = cp_gtk_image_get_pixbuf (env, img);
|
||||
gtk_drag_set_icon_pixbuf (context, image, x, y);
|
||||
}
|
||||
|
||||
gdk_event_free (event);
|
||||
(*env)->ReleaseStringUTFChars (env, target, data);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
get_widget (GtkWidget *widget)
|
||||
{
|
||||
GtkWidget *w;
|
||||
|
||||
if (GTK_IS_EVENT_BOX (widget) || GTK_IS_CONTAINER (widget))
|
||||
w = gtk_bin_get_child (GTK_BIN(widget));
|
||||
else
|
||||
w = widget;
|
||||
|
||||
return w;
|
||||
}
|
||||
@@ -12,10 +12,8 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
|
||||
gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
|
||||
gnu_java_awt_peer_gtk_GdkRobotPeer.c \
|
||||
gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c \
|
||||
gnu_java_awt_peer_gtk_GdkTextLayout.c \
|
||||
gnu_java_awt_peer_gtk_GtkButtonPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCanvasPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCheckboxPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkChoicePeer.c \
|
||||
@@ -42,6 +40,7 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
|
||||
gnu_java_awt_peer_gtk_GtkToolkit.c \
|
||||
gnu_java_awt_peer_gtk_GtkWindowPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkVolatileImage.c \
|
||||
GtkDragSourceContextPeer.c \
|
||||
cairographics2d.h \
|
||||
gthread-jni.c \
|
||||
gdkdisplay.h \
|
||||
|
||||
@@ -75,10 +75,8 @@ am_libgtkpeer_la_OBJECTS = gnu_java_awt_peer_gtk_CairoSurface.lo \
|
||||
gnu_java_awt_peer_gtk_GdkPixbufDecoder.lo \
|
||||
gnu_java_awt_peer_gtk_GdkRobotPeer.lo \
|
||||
gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.lo \
|
||||
gnu_java_awt_peer_gtk_GdkTextLayout.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 \
|
||||
@@ -104,8 +102,8 @@ am_libgtkpeer_la_OBJECTS = gnu_java_awt_peer_gtk_CairoSurface.lo \
|
||||
gnu_java_awt_peer_gtk_GtkTextFieldPeer.lo \
|
||||
gnu_java_awt_peer_gtk_GtkToolkit.lo \
|
||||
gnu_java_awt_peer_gtk_GtkWindowPeer.lo \
|
||||
gnu_java_awt_peer_gtk_GtkVolatileImage.lo gthread-jni.lo \
|
||||
gtk_jawt.lo
|
||||
gnu_java_awt_peer_gtk_GtkVolatileImage.lo \
|
||||
GtkDragSourceContextPeer.lo gthread-jni.lo gtk_jawt.lo
|
||||
libgtkpeer_la_OBJECTS = $(am_libgtkpeer_la_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
@@ -153,6 +151,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -173,6 +173,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -203,6 +204,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -253,6 +258,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -273,6 +279,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
@@ -351,10 +359,8 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
|
||||
gnu_java_awt_peer_gtk_GdkPixbufDecoder.c \
|
||||
gnu_java_awt_peer_gtk_GdkRobotPeer.c \
|
||||
gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c \
|
||||
gnu_java_awt_peer_gtk_GdkTextLayout.c \
|
||||
gnu_java_awt_peer_gtk_GtkButtonPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCanvasPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkCheckboxPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkChoicePeer.c \
|
||||
@@ -381,6 +387,7 @@ libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
|
||||
gnu_java_awt_peer_gtk_GtkToolkit.c \
|
||||
gnu_java_awt_peer_gtk_GtkWindowPeer.c \
|
||||
gnu_java_awt_peer_gtk_GtkVolatileImage.c \
|
||||
GtkDragSourceContextPeer.c \
|
||||
cairographics2d.h \
|
||||
gthread-jni.c \
|
||||
gdkdisplay.h \
|
||||
@@ -473,6 +480,7 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/GtkDragSourceContextPeer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_CairoGraphics2D.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_CairoSurface.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_ComponentGraphics.Plo@am__quote@
|
||||
@@ -484,10 +492,8 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GdkPixbufDecoder.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GdkRobotPeer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GdkTextLayout.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkButtonPeer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkCanvasPeer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkCheckboxPeer.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkChoicePeer.Plo@am__quote@
|
||||
|
||||
@@ -239,7 +239,6 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix
|
||||
{
|
||||
jdouble *native_matrix = NULL;
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
g_assert (obj != NULL);
|
||||
g_assert (gr != NULL);
|
||||
|
||||
native_matrix = (*env)->GetDoubleArrayElements (env, java_matrix, NULL);
|
||||
@@ -262,9 +261,20 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix
|
||||
update_pattern_transform (gr);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoScale
|
||||
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
|
||||
jlong pointer, jdouble x, jdouble y)
|
||||
{
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
g_assert (gr != NULL);
|
||||
|
||||
cairo_scale (gr->cr, x, y);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector
|
||||
(JNIEnv *env, jobject obj, jlong pointer,
|
||||
(JNIEnv *env, jobject obj __attribute__((unused)), jlong pointer,
|
||||
jobject font,
|
||||
jfloat x, jfloat y, jint n,
|
||||
jintArray java_codes,
|
||||
@@ -278,7 +288,6 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector
|
||||
float *native_positions;
|
||||
jint i = 0;
|
||||
|
||||
g_assert (obj != NULL);
|
||||
g_assert (java_codes != NULL);
|
||||
g_assert (java_positions != NULL);
|
||||
|
||||
@@ -306,7 +315,9 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawGlyphVector
|
||||
(*env)->ReleaseFloatArrayElements (env, java_positions, native_positions, 0);
|
||||
(*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
|
||||
|
||||
pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
|
||||
cairo_show_glyphs (gr->cr, glyphs, n);
|
||||
pango_fc_font_unlock_face( (PangoFcFont *)pfont->font );
|
||||
|
||||
g_free(glyphs);
|
||||
}
|
||||
@@ -472,6 +483,28 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetDash
|
||||
(*env)->ReleaseDoubleArrayElements (env, dashes, dasharr, 0);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSave
|
||||
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
|
||||
jlong pointer)
|
||||
{
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
g_assert (gr != NULL);
|
||||
|
||||
cairo_save (gr->cr);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRestore
|
||||
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
|
||||
jlong pointer)
|
||||
{
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
g_assert (gr != NULL);
|
||||
|
||||
cairo_restore (gr->cr);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoNewPath
|
||||
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
|
||||
@@ -560,6 +593,17 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRectangle
|
||||
cairo_rectangle (gr->cr, x, y, width, height);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoArc
|
||||
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
|
||||
jlong pointer, jdouble x, jdouble y, jdouble radius, jdouble angle1,
|
||||
jdouble angle2)
|
||||
{
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
|
||||
cairo_arc (gr->cr, x, y, radius, angle1, angle2);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClosePath
|
||||
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
|
||||
@@ -665,6 +709,46 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSurfaceSetFilter
|
||||
}
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawLine
|
||||
(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
|
||||
jlong pointer, jdouble x1, jdouble y1, jdouble x2, jdouble y2)
|
||||
{
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
g_assert (gr != NULL);
|
||||
|
||||
cairo_new_path(gr->cr);
|
||||
cairo_move_to(gr->cr, x1, y1);
|
||||
cairo_line_to(gr->cr, x2, y2);
|
||||
cairo_stroke(gr->cr);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoDrawRect
|
||||
(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
|
||||
jlong pointer, jdouble x, jdouble y, jdouble w, jdouble h)
|
||||
{
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
g_assert (gr != NULL);
|
||||
|
||||
cairo_new_path(gr->cr);
|
||||
cairo_rectangle(gr->cr, x, y, w, h);
|
||||
cairo_stroke(gr->cr);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFillRect
|
||||
(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
|
||||
jlong pointer, jdouble x, jdouble y, jdouble w, jdouble h)
|
||||
{
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
|
||||
g_assert (gr != NULL);
|
||||
|
||||
cairo_new_path(gr->cr);
|
||||
cairo_rectangle(gr->cr, x, y, w, h);
|
||||
cairo_fill(gr->cr);
|
||||
}
|
||||
|
||||
|
||||
/************************** FONT STUFF ****************************/
|
||||
static void
|
||||
@@ -679,18 +763,19 @@ install_font_peer(cairo_t *cr,
|
||||
|
||||
if (pfont->graphics_resource == NULL)
|
||||
{
|
||||
face = pango_ft2_font_get_face (pfont->font);
|
||||
face = pango_fc_font_lock_face( (PangoFcFont *)pfont->font );
|
||||
g_assert (face != NULL);
|
||||
|
||||
ft = cairo_ft_font_face_create_for_ft_face (face, 0);
|
||||
g_assert (ft != NULL);
|
||||
|
||||
cairo_set_font_face (cr, ft);
|
||||
cairo_font_face_destroy (ft);
|
||||
/* cairo_font_face_destroy (ft);*/
|
||||
cairo_set_font_size (cr,
|
||||
(pango_font_description_get_size (pfont->desc) /
|
||||
(double)PANGO_SCALE));
|
||||
ft = cairo_get_font_face (cr);
|
||||
pango_fc_font_unlock_face( (PangoFcFont *)pfont->font );
|
||||
pfont->graphics_resource = ft;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -276,15 +276,52 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative
|
||||
gdk_threads_leave();
|
||||
}
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_ComponentGraphics_nativeGrab
|
||||
(JNIEnv *env, jclass cls __attribute__((unused)), jobject peer )
|
||||
{
|
||||
GdkPixbuf *pixbuf;
|
||||
GdkDrawable *drawable;
|
||||
GdkWindow *win;
|
||||
gint w,h;
|
||||
GtkWidget *widget = NULL;
|
||||
void *ptr = NULL;
|
||||
|
||||
gdk_threads_enter();
|
||||
|
||||
ptr = NSA_GET_PTR (env, peer);
|
||||
g_assert (ptr != NULL);
|
||||
|
||||
widget = GTK_WIDGET (ptr);
|
||||
g_assert (widget != NULL);
|
||||
|
||||
cp_gtk_grab_current_drawable (widget, &drawable, &win);
|
||||
g_assert (drawable != NULL);
|
||||
|
||||
gdk_drawable_get_size ( drawable, &w, &h );
|
||||
|
||||
pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, TRUE, 8, w, h );
|
||||
gdk_pixbuf_get_from_drawable( pixbuf, drawable, NULL, 0, 0, 0, 0, w, h );
|
||||
g_object_ref( pixbuf );
|
||||
gdk_draw_pixbuf (drawable, NULL, pixbuf,
|
||||
0, 0, 0, 0,
|
||||
w, h,
|
||||
GDK_RGB_DITHER_NORMAL, 0, 0);
|
||||
gdk_threads_leave();
|
||||
|
||||
return JCL_NewRawDataObject (env, pixbuf);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_ComponentGraphics_drawVolatile
|
||||
(JNIEnv *env, jobject obj __attribute__ ((unused)), jobject peer,
|
||||
jlong img, jint x, jint y, jint w, jint h)
|
||||
jlong img, jint x, jint y, jint w, jint h, jint cx, jint cy, jint cw, jint ch)
|
||||
{
|
||||
GdkPixmap *pixmap;
|
||||
GtkWidget *widget = NULL;
|
||||
void *ptr = NULL;
|
||||
GdkGC *gc;
|
||||
GdkRectangle clip;
|
||||
|
||||
gdk_threads_enter();
|
||||
ptr = NSA_GET_PTR (env, peer);
|
||||
@@ -296,6 +333,13 @@ Java_gnu_java_awt_peer_gtk_ComponentGraphics_drawVolatile
|
||||
pixmap = JLONG_TO_PTR(GdkPixmap, img);
|
||||
|
||||
gc = gdk_gc_new(widget->window);
|
||||
|
||||
clip.x = cx;
|
||||
clip.y = cy;
|
||||
clip.width = cw;
|
||||
clip.height = ch;
|
||||
gdk_gc_set_clip_rectangle(gc, &clip);
|
||||
|
||||
gdk_draw_drawable(widget->window,
|
||||
gc,
|
||||
pixmap,
|
||||
|
||||
@@ -241,3 +241,35 @@ Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice
|
||||
|
||||
return defaultDevice;
|
||||
}
|
||||
|
||||
JNIEXPORT jintArray JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_getMouseCoordinates
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
jintArray retArray;
|
||||
jint *values;
|
||||
GdkDisplay *display;
|
||||
gint x, y, screenIndex;
|
||||
GdkScreen *screen;
|
||||
|
||||
display = (GdkDisplay *) NSA_GET_DISPLAY_PTR(env, obj);
|
||||
g_assert (display != NULL);
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
gdk_display_get_pointer (display, &screen, &x, &y, NULL);
|
||||
screenIndex = gdk_screen_get_number( screen );
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
retArray = (*env)->NewIntArray (env, 3);
|
||||
values = (*env)->GetIntArrayElements (env, retArray, NULL);
|
||||
|
||||
values[0] = screenIndex;
|
||||
values[1] = x;
|
||||
values[2] = y;
|
||||
|
||||
(*env)->ReleaseIntArrayElements (env, retArray, values, 0);
|
||||
|
||||
return retArray;
|
||||
}
|
||||
|
||||
@@ -1,547 +0,0 @@
|
||||
/* gnu_java_awt_GdkTextLayout.c
|
||||
Copyright (C) 2004, 2005, 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 USA.
|
||||
|
||||
Linking this library statically or dynamically with other modules is
|
||||
making a combined work based on this library. Thus, the terms and
|
||||
conditions of the GNU General Public License cover the whole
|
||||
combination.
|
||||
|
||||
As a special exception, the copyright holders of this library give you
|
||||
permission to link this library with independent modules to produce an
|
||||
executable, regardless of the license terms of these independent
|
||||
modules, and to copy and distribute the resulting executable under
|
||||
terms of your choice, provided that you also meet, for each linked
|
||||
independent module, the terms and conditions of the license of that
|
||||
module. An independent module is a module which is not derived from
|
||||
or based on this library. If you modify this library, you may extend
|
||||
this exception to your version of the library, but you are not
|
||||
obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version. */
|
||||
|
||||
|
||||
#include <jni.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <string.h>
|
||||
#include <pango/pango.h>
|
||||
#include <pango/pangoft2.h>
|
||||
#include <pango/pangofc-font.h>
|
||||
#include <freetype/ftglyph.h>
|
||||
#include <freetype/ftoutln.h>
|
||||
#include "jcl.h"
|
||||
#include "native_state.h"
|
||||
#include "gdkfont.h"
|
||||
#include "gnu_java_awt_peer_gtk_GdkTextLayout.h"
|
||||
#include "cairographics2d.h"
|
||||
|
||||
struct state_table *cp_gtk_native_text_layout_state_table;
|
||||
|
||||
typedef struct gp
|
||||
{
|
||||
JNIEnv *env;
|
||||
jobject obj;
|
||||
double px;
|
||||
double py;
|
||||
double sx;
|
||||
double sy;
|
||||
} generalpath ;
|
||||
|
||||
static void paint_glyph_run(cairo_t *cr, cairo_glyph_t **glyphs,
|
||||
gint *n_glyphs, PangoLayoutRun *run);
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_initStaticState
|
||||
(JNIEnv *env, jclass clazz)
|
||||
{
|
||||
NSA_TEXT_LAYOUT_INIT (env, clazz);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_initState
|
||||
(JNIEnv *env, jobject self)
|
||||
{
|
||||
struct textlayout *tl;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
g_assert(self != NULL);
|
||||
tl = g_malloc0 (sizeof (struct textlayout));
|
||||
g_assert(tl != NULL);
|
||||
tl->pango_layout = pango_layout_new(gdk_pango_context_get());
|
||||
g_assert(tl->pango_layout != NULL);
|
||||
NSA_SET_TEXT_LAYOUT_PTR (env, self, tl);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_setText
|
||||
(JNIEnv *env, jobject self, jstring text)
|
||||
{
|
||||
struct textlayout *tl;
|
||||
gchar *str = NULL;
|
||||
gint len = 0;
|
||||
|
||||
g_assert(self != NULL);
|
||||
g_assert(text != NULL);
|
||||
|
||||
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, self);
|
||||
g_assert(tl != NULL);
|
||||
g_assert(tl->pango_layout != NULL);
|
||||
|
||||
len = (*env)->GetStringUTFLength (env, text);
|
||||
str = (gchar *)(*env)->GetStringUTFChars (env, text, NULL);
|
||||
g_assert (str != NULL);
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
pango_layout_set_text (tl->pango_layout, str, len);
|
||||
|
||||
(*env)->ReleaseStringUTFChars (env, text, str);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_setFont (JNIEnv *env, jobject obj, jobject font)
|
||||
{
|
||||
struct textlayout *tl;
|
||||
struct peerfont *pf;
|
||||
|
||||
g_assert(obj != NULL);
|
||||
g_assert(font != NULL);
|
||||
|
||||
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, obj);
|
||||
g_assert(tl != NULL);
|
||||
g_assert(tl->pango_layout != NULL);
|
||||
pf = (struct peerfont *)NSA_GET_FONT_PTR (env, font);
|
||||
g_assert(pf != NULL);
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
pango_layout_set_font_description(tl->pango_layout, pf->desc);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_indexToPos
|
||||
(JNIEnv *env, jobject self, jint idx, jdoubleArray javaPos)
|
||||
{
|
||||
struct textlayout *tl;
|
||||
PangoRectangle pangoPos;
|
||||
jdouble *nativePos;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
g_assert(self != NULL);
|
||||
g_assert(javaPos != NULL);
|
||||
|
||||
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, self);
|
||||
g_assert(tl != NULL);
|
||||
g_assert(tl->pango_layout != NULL);
|
||||
|
||||
g_assert((*env)->GetArrayLength (env, javaPos) == 4);
|
||||
|
||||
nativePos = (*env)->GetDoubleArrayElements (env, javaPos, NULL);
|
||||
|
||||
pango_layout_index_to_pos (tl->pango_layout, idx, &pangoPos);
|
||||
|
||||
nativePos[0] = (jdouble) pangoPos.x;
|
||||
nativePos[1] = (jdouble) pangoPos.y;
|
||||
nativePos[2] = (jdouble) pangoPos.width;
|
||||
nativePos[3] = (jdouble) pangoPos.height;
|
||||
|
||||
(*env)->ReleaseDoubleArrayElements (env, javaPos, nativePos, 0);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_getExtents
|
||||
(JNIEnv *env, jobject self, jdoubleArray javaInkExtents, jdoubleArray javaLogExtents)
|
||||
{
|
||||
struct textlayout *tl;
|
||||
PangoRectangle pangoInkExtents, pangoLogExtents;
|
||||
jdouble *nativeInkExtents, *nativeLogExtents;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
g_assert(self != NULL);
|
||||
g_assert(javaInkExtents != NULL);
|
||||
g_assert(javaLogExtents != NULL);
|
||||
|
||||
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, self);
|
||||
g_assert(tl != NULL);
|
||||
g_assert(tl->pango_layout != NULL);
|
||||
|
||||
g_assert((*env)->GetArrayLength (env, javaInkExtents) == 4);
|
||||
g_assert((*env)->GetArrayLength (env, javaLogExtents) == 4);
|
||||
|
||||
nativeInkExtents = (*env)->GetDoubleArrayElements (env, javaInkExtents, NULL);
|
||||
nativeLogExtents = (*env)->GetDoubleArrayElements (env, javaLogExtents, NULL);
|
||||
|
||||
pango_layout_get_extents (tl->pango_layout,
|
||||
&pangoInkExtents, &pangoLogExtents);
|
||||
|
||||
nativeInkExtents[0] = (jdouble) pangoInkExtents.x;
|
||||
nativeInkExtents[1] = (jdouble) pangoInkExtents.y;
|
||||
nativeInkExtents[2] = (jdouble) pangoInkExtents.width;
|
||||
nativeInkExtents[3] = (jdouble) pangoInkExtents.height;
|
||||
|
||||
nativeLogExtents[0] = (jdouble) pangoLogExtents.x;
|
||||
nativeLogExtents[1] = (jdouble) pangoLogExtents.y;
|
||||
nativeLogExtents[2] = (jdouble) pangoLogExtents.width;
|
||||
nativeLogExtents[3] = (jdouble) pangoLogExtents.height;
|
||||
|
||||
(*env)->ReleaseDoubleArrayElements (env, javaInkExtents, nativeInkExtents, 0);
|
||||
(*env)->ReleaseDoubleArrayElements (env, javaLogExtents, nativeLogExtents, 0);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_dispose
|
||||
(JNIEnv *env, jobject self)
|
||||
{
|
||||
struct textlayout *tl;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
g_assert(self != NULL);
|
||||
tl = (struct textlayout *) NSA_DEL_TEXT_LAYOUT_PTR (env, self);
|
||||
g_assert(tl != NULL);
|
||||
if (tl->pango_layout != NULL)
|
||||
g_object_unref (tl->pango_layout);
|
||||
g_free(tl);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
/**
|
||||
* Draw this textlayout on a cairo surface
|
||||
* FIXME: Seems completely broken.
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_cairoDrawGdkTextLayout
|
||||
(JNIEnv *env, jobject obj, jlong cg2d, jfloat x, jfloat y)
|
||||
{
|
||||
/*
|
||||
* FIXME: Some day we expect either cairo or pango will know how to make
|
||||
* a pango layout paint to a cairo surface. that day is not yet here.
|
||||
*/
|
||||
|
||||
struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, cg2d);
|
||||
cairo_t *cr = gr->cr;
|
||||
struct textlayout *tl = NULL;
|
||||
PangoLayoutIter *i = NULL;
|
||||
PangoLayoutRun *run = NULL;
|
||||
cairo_glyph_t *glyphs = NULL;
|
||||
gint n_glyphs = 0;
|
||||
|
||||
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, obj);
|
||||
|
||||
g_assert (cr != NULL);
|
||||
g_assert (tl != NULL);
|
||||
g_assert (tl->pango_layout != NULL);
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
i = pango_layout_get_iter (tl->pango_layout);
|
||||
g_assert (i != NULL);
|
||||
|
||||
cairo_translate (cr, x, y);
|
||||
|
||||
do
|
||||
{
|
||||
run = pango_layout_iter_get_run (i);
|
||||
if (run != NULL)
|
||||
paint_glyph_run (cr, &glyphs, &n_glyphs, run);
|
||||
}
|
||||
while (pango_layout_iter_next_run (i));
|
||||
|
||||
if (glyphs != NULL)
|
||||
g_free (glyphs);
|
||||
|
||||
cairo_translate (cr, -x, -y);
|
||||
|
||||
pango_layout_iter_free (i);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
static void
|
||||
paint_glyph_run(cairo_t *cr,
|
||||
cairo_glyph_t **glyphs,
|
||||
gint *n_glyphs,
|
||||
PangoLayoutRun *run)
|
||||
{
|
||||
gint i = 0;
|
||||
gint x = 0, y = 0;
|
||||
|
||||
g_assert (cr != NULL);
|
||||
g_assert (glyphs != NULL);
|
||||
g_assert (n_glyphs != NULL);
|
||||
g_assert (run != NULL);
|
||||
|
||||
if (run->glyphs != NULL && run->glyphs->num_glyphs > 0)
|
||||
{
|
||||
if (*n_glyphs < run->glyphs->num_glyphs)
|
||||
{
|
||||
*glyphs = g_realloc(*glyphs,
|
||||
(sizeof(cairo_glyph_t)
|
||||
* run->glyphs->num_glyphs));
|
||||
*n_glyphs = run->glyphs->num_glyphs;
|
||||
}
|
||||
|
||||
g_assert (*glyphs != NULL);
|
||||
|
||||
for (i = 0; i < run->glyphs->num_glyphs; ++i)
|
||||
{
|
||||
(*glyphs)[i].index = run->glyphs->glyphs[i].glyph;
|
||||
|
||||
(*glyphs)[i].x =
|
||||
((double) (x + run->glyphs->glyphs[i].geometry.x_offset))
|
||||
/ ((double) PANGO_SCALE);
|
||||
|
||||
(*glyphs)[i].y =
|
||||
((double) (y + run->glyphs->glyphs[i].geometry.y_offset))
|
||||
/ ((double) PANGO_SCALE);
|
||||
|
||||
x += run->glyphs->glyphs[i].geometry.width;
|
||||
}
|
||||
cairo_show_glyphs (cr, *glyphs, run->glyphs->num_glyphs);
|
||||
}
|
||||
}
|
||||
|
||||
/* GetOutline code follows ****************************/
|
||||
/********* Freetype callback functions *****************************/
|
||||
|
||||
static int _moveTo( const FT_Vector* to,
|
||||
void *p)
|
||||
{
|
||||
JNIEnv *env;
|
||||
jobject obj;
|
||||
jclass cls;
|
||||
jmethodID method;
|
||||
jvalue values[2];
|
||||
generalpath *path = (generalpath *) p;
|
||||
|
||||
env = path->env;
|
||||
obj = path->obj;
|
||||
|
||||
values[0].f = (jfloat)(to->x * path->sx + path->px);
|
||||
values[1].f = (jfloat)(to->y * path->sy + path->py);
|
||||
|
||||
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
|
||||
method = (*env)->GetMethodID (env, cls, "moveTo", "(FF)V");
|
||||
(*env)->CallVoidMethodA(env, obj, method, values );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _lineTo( const FT_Vector* to,
|
||||
void *p)
|
||||
{
|
||||
JNIEnv *env;
|
||||
jobject obj;
|
||||
jclass cls;
|
||||
jmethodID method;
|
||||
jvalue values[2];
|
||||
generalpath *path = (generalpath *) p;
|
||||
|
||||
env = path->env;
|
||||
obj = path->obj;
|
||||
values[0].f = (jfloat)(to->x * path->sx + path->px);
|
||||
values[1].f = (jfloat)(to->y * path->sy + path->py);
|
||||
|
||||
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
|
||||
method = (*env)->GetMethodID (env, cls, "lineTo", "(FF)V");
|
||||
(*env)->CallVoidMethodA(env, obj, method, values );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _quadTo( const FT_Vector* cp,
|
||||
const FT_Vector* to,
|
||||
void *p)
|
||||
{
|
||||
JNIEnv *env;
|
||||
jobject obj;
|
||||
jclass cls;
|
||||
jmethodID method;
|
||||
jvalue values[4];
|
||||
generalpath *path = (generalpath *) p;
|
||||
|
||||
env = path->env;
|
||||
obj = path->obj;
|
||||
values[0].f = (jfloat)(cp->x * path->sx + path->px);
|
||||
values[1].f = (jfloat)(cp->y * path->sy + path->py);
|
||||
values[2].f = (jfloat)(to->x * path->sx + path->px);
|
||||
values[3].f = (jfloat)(to->y * path->sy + path->py);
|
||||
|
||||
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
|
||||
method = (*env)->GetMethodID (env, cls, "quadTo", "(FFFF)V");
|
||||
(*env)->CallVoidMethodA(env, obj, method, values );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int _curveTo( const FT_Vector* cp1,
|
||||
const FT_Vector* cp2,
|
||||
const FT_Vector* to,
|
||||
void *p)
|
||||
{
|
||||
JNIEnv *env;
|
||||
jobject obj;
|
||||
jclass cls;
|
||||
jmethodID method;
|
||||
jvalue values[6];
|
||||
generalpath *path = (generalpath *) p;
|
||||
|
||||
env = path->env;
|
||||
obj = path->obj;
|
||||
values[0].f = (jfloat)(cp1->x * path->sx + path->px);
|
||||
values[1].f = (jfloat)(cp1->y * path->sy + path->py);
|
||||
values[2].f = (jfloat)(cp2->x * path->sx + path->px);
|
||||
values[3].f = (jfloat)(cp2->y * path->sy + path->py);
|
||||
values[4].f = (jfloat)(to->x * path->sx + path->px);
|
||||
values[5].f = (jfloat)(to->y * path->sy + path->py);
|
||||
|
||||
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
|
||||
method = (*env)->GetMethodID (env, cls, "curveTo", "(FFFFFF)V");
|
||||
(*env)->CallVoidMethodA(env, obj, method, values );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jobject JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GdkTextLayout_getOutline
|
||||
(JNIEnv *env, jobject obj, jobject transform)
|
||||
{
|
||||
struct textlayout *tl;
|
||||
generalpath *path;
|
||||
jobject gp;
|
||||
GSList *current_run;
|
||||
PangoLayoutLine *current_line;
|
||||
FT_Outline_Funcs ftCallbacks =
|
||||
{
|
||||
(FT_Outline_MoveToFunc) _moveTo,
|
||||
(FT_Outline_LineToFunc) _lineTo,
|
||||
(FT_Outline_ConicToFunc) _quadTo,
|
||||
(FT_Outline_CubicToFunc) _curveTo,
|
||||
0,
|
||||
0
|
||||
};
|
||||
PangoLayoutIter* layoutIterator;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
tl = (struct textlayout *)NSA_GET_TEXT_LAYOUT_PTR (env, obj);
|
||||
g_assert(tl != NULL);
|
||||
g_assert(tl->pango_layout != NULL);
|
||||
|
||||
path = g_malloc0 (sizeof (generalpath));
|
||||
g_assert(path != NULL);
|
||||
path->env = env;
|
||||
|
||||
/* Scaling factors */
|
||||
path->sx = PANGO_SCALE/65536.0;
|
||||
path->sy = -PANGO_SCALE/65536.0;
|
||||
|
||||
{ /* create a GeneralPath instance */
|
||||
jclass cls;
|
||||
jmethodID method;
|
||||
|
||||
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
|
||||
method = (*env)->GetMethodID (env, cls, "<init>", "()V");
|
||||
gp = path->obj = (*env)->NewObject (env, cls, method);
|
||||
}
|
||||
|
||||
layoutIterator = pango_layout_get_iter (tl->pango_layout);
|
||||
g_assert (layoutIterator != NULL);
|
||||
|
||||
if (pango_layout_iter_get_line (layoutIterator))
|
||||
do
|
||||
{
|
||||
PangoRectangle line_logical_rect;
|
||||
current_line = pango_layout_iter_get_line (layoutIterator);
|
||||
pango_layout_iter_get_line_extents (layoutIterator,
|
||||
NULL,
|
||||
&line_logical_rect);
|
||||
|
||||
path->px = line_logical_rect.x/(double)PANGO_SCALE;
|
||||
path->py = line_logical_rect.y/(double)PANGO_SCALE;
|
||||
|
||||
current_run = current_line->runs;
|
||||
while (current_run)
|
||||
{
|
||||
FT_Face ft_face;
|
||||
int index;
|
||||
PangoGlyphItem *run = current_run->data;
|
||||
PangoGlyphString *glyphs = run->glyphs;
|
||||
|
||||
PangoAnalysis *analysis = &run->item->analysis;
|
||||
g_assert (analysis != NULL);
|
||||
g_assert (analysis->font != NULL);
|
||||
|
||||
ft_face = pango_fc_font_lock_face ((PangoFcFont *)analysis->font);
|
||||
g_assert (ft_face != NULL);
|
||||
|
||||
for (index = 0; index < glyphs->num_glyphs; index++)
|
||||
{
|
||||
FT_Glyph glyph;
|
||||
FT_Error fterror;
|
||||
PangoGlyphGeometry pgg = glyphs->glyphs[index].geometry;
|
||||
|
||||
fterror = FT_Load_Glyph(ft_face,
|
||||
(FT_UInt)(glyphs->glyphs[index].glyph),
|
||||
FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP);
|
||||
g_assert(fterror == 0);
|
||||
|
||||
FT_Get_Glyph (ft_face->glyph, &glyph);
|
||||
FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline),
|
||||
&ftCallbacks, path);
|
||||
FT_Done_Glyph (glyph);
|
||||
|
||||
path->px += pgg.width/(double)PANGO_SCALE;
|
||||
}
|
||||
|
||||
pango_fc_font_unlock_face ((PangoFcFont *)analysis->font);
|
||||
current_run = current_run->next;
|
||||
}
|
||||
} while (pango_layout_iter_next_line (layoutIterator));
|
||||
|
||||
g_free(path);
|
||||
gdk_threads_leave ();
|
||||
|
||||
if (transform != NULL)
|
||||
{
|
||||
jclass cls;
|
||||
jmethodID method;
|
||||
|
||||
cls = (*env)->FindClass (env, "java/awt/geom/GeneralPath");
|
||||
method = (*env)->GetMethodID (env, cls, "transform",
|
||||
"(Ljava/awt/geom/AffineTransform;)V");
|
||||
(*env)->CallVoidMethod(env, gp, method, transform );
|
||||
}
|
||||
|
||||
return gp;
|
||||
}
|
||||
@@ -40,9 +40,12 @@ exception statement from your version. */
|
||||
#include "gtkpeer.h"
|
||||
#include "gnu_java_awt_peer_gtk_GtkCheckboxPeer.h"
|
||||
#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
|
||||
#include "jcl.h"
|
||||
|
||||
static jmethodID postItemEventID;
|
||||
static GtkWidget *combobox_get_widget (GtkWidget *widget);
|
||||
static jmethodID addToGroupMapID;
|
||||
static GtkWidget *checkbox_get_widget (GtkWidget *widget);
|
||||
static void item_toggled_cb (GtkToggleButton *item, jobject peer);
|
||||
|
||||
void
|
||||
cp_gtk_checkbox_init_jni (void)
|
||||
@@ -55,61 +58,25 @@ cp_gtk_checkbox_init_jni (void)
|
||||
postItemEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcheckboxpeer,
|
||||
"postItemEvent",
|
||||
"(Ljava/lang/Object;Z)V");
|
||||
}
|
||||
|
||||
static void item_toggled_cb (GtkToggleButton *item, jobject peer);
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_create
|
||||
(JNIEnv *env, jobject obj, jobject group)
|
||||
{
|
||||
GtkWidget *button;
|
||||
GtkWidget *eventbox;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
NSA_SET_GLOBAL_REF (env, obj);
|
||||
eventbox = gtk_event_box_new ();
|
||||
|
||||
if (group == NULL)
|
||||
{
|
||||
button = gtk_check_button_new_with_label ("");
|
||||
gtk_container_add (GTK_CONTAINER (eventbox), button);
|
||||
gtk_widget_show (button);
|
||||
}
|
||||
else
|
||||
{
|
||||
void *native_group = NSA_GET_PTR (env, group);
|
||||
button = gtk_radio_button_new_with_label_from_widget (native_group, "");
|
||||
gtk_container_add (GTK_CONTAINER (eventbox), button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
if (native_group == NULL)
|
||||
{
|
||||
/* Set the native group so we can use the correct value the
|
||||
next time around. FIXME: this doesn't work! */
|
||||
NSA_SET_PTR (env, group, button);
|
||||
}
|
||||
}
|
||||
|
||||
NSA_SET_PTR (env, obj, eventbox);
|
||||
|
||||
gdk_threads_leave ();
|
||||
addToGroupMapID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcheckboxpeer,
|
||||
"addToGroupMap",
|
||||
"(J)V");
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
void *ptr = NULL;
|
||||
jobject *gref = NULL;
|
||||
void *ptr;
|
||||
jobject *gref;
|
||||
GtkWidget *bin;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
gref = NSA_GET_GLOBAL_REF (env, obj);
|
||||
bin = combobox_get_widget (GTK_WIDGET (ptr));
|
||||
bin = checkbox_get_widget (GTK_WIDGET (ptr));
|
||||
|
||||
/* Checkbox signals */
|
||||
g_signal_connect (G_OBJECT (bin), "toggled",
|
||||
@@ -121,46 +88,6 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_connectSignals
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_nativeSetCheckboxGroup
|
||||
(JNIEnv *env, jobject obj, jobject group)
|
||||
{
|
||||
GtkRadioButton *button;
|
||||
void *native_group, *ptr;
|
||||
GtkWidget *bin;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
bin = combobox_get_widget (GTK_WIDGET (ptr));
|
||||
|
||||
/* FIXME: we can't yet switch between a checkbutton and a
|
||||
radiobutton. However, AWT requires this. For now we just
|
||||
crash. */
|
||||
|
||||
button = GTK_RADIO_BUTTON (bin);
|
||||
|
||||
native_group = NSA_GET_PTR (env, group);
|
||||
if (native_group == NULL)
|
||||
gtk_radio_button_set_group (button, NULL);
|
||||
else
|
||||
gtk_radio_button_set_group (button,
|
||||
gtk_radio_button_get_group
|
||||
(GTK_RADIO_BUTTON (native_group)));
|
||||
|
||||
/* If the native group wasn't set on the new CheckboxGroup, then set
|
||||
it now so that the right thing will happen with the next
|
||||
radiobutton. The native state for a CheckboxGroup is a pointer
|
||||
to one of the widgets in the group. We are careful to keep this
|
||||
always pointing at a live widget; whenever a widget is destroyed
|
||||
(or otherwise removed from the group), the CheckboxGroup peer is
|
||||
notified. */
|
||||
if (native_group == NULL)
|
||||
NSA_SET_PTR (env, group, native_group);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive
|
||||
(JNIEnv *env, jobject obj, jboolean is_active)
|
||||
@@ -171,7 +98,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
bin = combobox_get_widget (GTK_WIDGET (ptr));
|
||||
bin = checkbox_get_widget (GTK_WIDGET (ptr));
|
||||
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bin), is_active);
|
||||
|
||||
@@ -192,7 +119,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkWidgetModifyFont
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
|
||||
button = combobox_get_widget (GTK_WIDGET (ptr));
|
||||
button = checkbox_get_widget (GTK_WIDGET (ptr));
|
||||
label = gtk_bin_get_child (GTK_BIN(button));
|
||||
|
||||
if (!label)
|
||||
@@ -233,7 +160,7 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel
|
||||
|
||||
c_label = (*env)->GetStringUTFChars (env, label, NULL);
|
||||
|
||||
label_widget = gtk_bin_get_child (GTK_BIN (combobox_get_widget (GTK_WIDGET (ptr))));
|
||||
label_widget = gtk_bin_get_child (GTK_BIN (checkbox_get_widget (GTK_WIDGET (ptr))));
|
||||
gtk_label_set_text (GTK_LABEL (label_widget), c_label);
|
||||
|
||||
(*env)->ReleaseStringUTFChars (env, label, c_label);
|
||||
@@ -241,6 +168,223 @@ Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
/* A check button is created if we are not part of
|
||||
a group.
|
||||
This function is called when initially creating the
|
||||
button, so an eventbox is created.
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createCheckButton
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
GtkWidget *button;
|
||||
GtkWidget *eventbox;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
NSA_SET_GLOBAL_REF (env, obj);
|
||||
eventbox = gtk_event_box_new ();
|
||||
|
||||
button = gtk_check_button_new_with_label ("");
|
||||
gtk_container_add (GTK_CONTAINER (eventbox), button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
NSA_SET_PTR (env, obj, eventbox);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
/* A radio button is created if we are part of a group.
|
||||
groupPointer points to the corresponding group. If 0,
|
||||
a new group is created.
|
||||
This function is called when initially creating the
|
||||
button, so an eventbox is created.
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_createRadioButton
|
||||
(JNIEnv *env, jobject obj, jlong groupPointer)
|
||||
{
|
||||
GtkWidget *button;
|
||||
GtkWidget *eventbox;
|
||||
GSList *native_group = NULL;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
NSA_SET_GLOBAL_REF (env, obj);
|
||||
eventbox = gtk_event_box_new ();
|
||||
|
||||
if (groupPointer != 0)
|
||||
{
|
||||
native_group = JLONG_TO_PTR (GSList, groupPointer);
|
||||
g_assert (GTK_IS_RADIO_BUTTON (native_group->data));
|
||||
}
|
||||
button = gtk_radio_button_new_with_label (native_group, "");
|
||||
|
||||
if (native_group == NULL)
|
||||
native_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (button));
|
||||
if (g_slist_index (native_group, GTK_RADIO_BUTTON (button)) == -1)
|
||||
{
|
||||
native_group = g_slist_prepend (native_group, GTK_RADIO_BUTTON (button));
|
||||
GTK_RADIO_BUTTON(button)->group = native_group;
|
||||
}
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (eventbox), button);
|
||||
gtk_widget_show (button);
|
||||
|
||||
NSA_SET_PTR (env, obj, eventbox);
|
||||
|
||||
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj,
|
||||
addToGroupMapID,
|
||||
PTR_TO_JLONG (native_group));
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
/* Add the object to the group pointed to by groupPointer.
|
||||
If groupPointer is 0, create a new group and create
|
||||
a radio button. Otherwise, creating a radio button in an
|
||||
existing group.
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_addToGroup
|
||||
(JNIEnv *env, jobject obj, jlong groupPointer)
|
||||
{
|
||||
void *ptr;
|
||||
GtkWidget *container;
|
||||
GtkWidget *check_button;
|
||||
GtkWidget *radio_button;
|
||||
const gchar *label;
|
||||
GSList *native_group = NULL;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
container = GTK_WIDGET (ptr);
|
||||
check_button = checkbox_get_widget (container);
|
||||
label = gtk_label_get_text (GTK_LABEL (gtk_bin_get_child
|
||||
(GTK_BIN (check_button))));
|
||||
|
||||
/* Need to remove the check_button, and replace it with
|
||||
a radio button in a group.
|
||||
*/
|
||||
if (groupPointer != 0)
|
||||
{
|
||||
native_group = JLONG_TO_PTR (GSList, groupPointer);
|
||||
g_assert (GTK_IS_RADIO_BUTTON (native_group->data));
|
||||
}
|
||||
|
||||
radio_button = gtk_radio_button_new_with_label (native_group, label);
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (radio_button),
|
||||
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check_button)));
|
||||
|
||||
if (native_group == NULL)
|
||||
native_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_button));
|
||||
if (g_slist_index (native_group, GTK_RADIO_BUTTON (radio_button)) == -1)
|
||||
{
|
||||
native_group = g_slist_prepend (native_group, GTK_RADIO_BUTTON (radio_button));
|
||||
GTK_RADIO_BUTTON(radio_button)->group = native_group;
|
||||
}
|
||||
|
||||
gtk_container_remove (GTK_CONTAINER (container), check_button);
|
||||
gtk_container_add (GTK_CONTAINER (container), radio_button);
|
||||
gtk_widget_show (radio_button);
|
||||
|
||||
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj,
|
||||
addToGroupMapID,
|
||||
PTR_TO_JLONG (native_group));
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
/* Remove the object from the group pointed to by groupPointer.
|
||||
We are removing the radio button and creating a check button.
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_removeFromGroup
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
void *ptr;
|
||||
GtkWidget *container;
|
||||
GtkWidget *check_button;
|
||||
GtkWidget *radio_button;
|
||||
GSList *native_group;
|
||||
const gchar *label;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
container = GTK_WIDGET (ptr);
|
||||
radio_button = checkbox_get_widget (container);
|
||||
label = gtk_label_get_text (GTK_LABEL (gtk_bin_get_child
|
||||
(GTK_BIN (radio_button))));
|
||||
|
||||
/* Need to remove the radio_button, and replace it with
|
||||
a check button.
|
||||
*/
|
||||
check_button = gtk_check_button_new_with_label (label);
|
||||
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
|
||||
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio_button)));
|
||||
|
||||
native_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_button));
|
||||
native_group = g_slist_remove (native_group, GTK_RADIO_BUTTON (radio_button));
|
||||
|
||||
if (native_group && ! GTK_IS_RADIO_BUTTON (native_group->data))
|
||||
native_group = NULL;
|
||||
|
||||
GTK_RADIO_BUTTON(radio_button)->group = NULL;
|
||||
|
||||
gtk_container_remove (GTK_CONTAINER (container), radio_button);
|
||||
gtk_container_add (GTK_CONTAINER (container), check_button);
|
||||
gtk_widget_show (check_button);
|
||||
|
||||
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj,
|
||||
addToGroupMapID,
|
||||
PTR_TO_JLONG (native_group));
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
/* Move the radio button to a new group. If groupPointer is
|
||||
0, create a new group.
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_switchToGroup
|
||||
(JNIEnv *env, jobject obj, jlong groupPointer)
|
||||
{
|
||||
void *ptr;
|
||||
GtkWidget *radio_button;
|
||||
GSList *native_group = NULL;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
radio_button = checkbox_get_widget (GTK_WIDGET (ptr));
|
||||
|
||||
native_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_button));
|
||||
native_group = g_slist_remove (native_group, GTK_RADIO_BUTTON (radio_button));
|
||||
GTK_RADIO_BUTTON(radio_button)->group = NULL;
|
||||
|
||||
if (groupPointer != 0)
|
||||
{
|
||||
native_group = JLONG_TO_PTR (GSList, groupPointer);
|
||||
g_assert (GTK_IS_RADIO_BUTTON (native_group->data));
|
||||
}
|
||||
gtk_radio_button_set_group (GTK_RADIO_BUTTON (radio_button), native_group);
|
||||
|
||||
native_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radio_button));
|
||||
if (g_slist_index (native_group, GTK_RADIO_BUTTON (radio_button)) == -1)
|
||||
{
|
||||
native_group = g_slist_prepend (native_group, GTK_RADIO_BUTTON (radio_button));
|
||||
GTK_RADIO_BUTTON(radio_button)->group = native_group;
|
||||
}
|
||||
|
||||
(*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj,
|
||||
addToGroupMapID,
|
||||
PTR_TO_JLONG (native_group));
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
static void
|
||||
item_toggled_cb (GtkToggleButton *item, jobject peer)
|
||||
{
|
||||
@@ -251,7 +395,7 @@ item_toggled_cb (GtkToggleButton *item, jobject peer)
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
combobox_get_widget (GtkWidget *widget)
|
||||
checkbox_get_widget (GtkWidget *widget)
|
||||
{
|
||||
GtkWidget *wid;
|
||||
|
||||
|
||||
@@ -339,6 +339,42 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetHasFocus
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
void *ptr;
|
||||
jboolean retval;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
|
||||
retval = GTK_WIDGET_HAS_FOCUS((GTK_WIDGET (ptr)));
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetCanFocus
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
void *ptr;
|
||||
jboolean retval;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
|
||||
retval = GTK_WIDGET_CAN_FOCUS((GTK_WIDGET (ptr)));
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRequestFocus
|
||||
(JNIEnv *env, jobject obj)
|
||||
|
||||
@@ -166,6 +166,11 @@ Java_gnu_java_awt_peer_gtk_GtkImage_getPixels(JNIEnv *env, jobject obj)
|
||||
rowstride = gdk_pixbuf_get_rowstride (pixbuf);
|
||||
|
||||
result_array = (*env)->NewIntArray (env, (width * height));
|
||||
if (result_array == NULL)
|
||||
{
|
||||
gdk_threads_leave ();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
dst = result_array_iter =
|
||||
(*env)->GetIntArrayElements (env, result_array, NULL);
|
||||
@@ -184,13 +189,27 @@ Java_gnu_java_awt_peer_gtk_GtkImage_getPixels(JNIEnv *env, jobject obj)
|
||||
pixeldata += rowstride;
|
||||
}
|
||||
} else {
|
||||
|
||||
/* Add a default alpha value of 0xFF to the pixeldata without alpha
|
||||
information and keep it in the same format as the pixeldata with alpha
|
||||
information. On Little Endian systems: AABBGGRR and on Big Endian
|
||||
systems: RRGGBBAA. */
|
||||
|
||||
for(i = 0; i < height; i++)
|
||||
{
|
||||
for(j = 0; j < width; j++)
|
||||
dst[j] = 0xFF000000 |
|
||||
(pixeldata[j*3 + 2] & 0xFF) << 16 |
|
||||
(pixeldata[j*3 + 1] & 0xFF) << 8 |
|
||||
(pixeldata[j*3] & 0xFF);
|
||||
|
||||
#ifndef WORDS_BIGENDIAN
|
||||
dst[j] = 0xFF000000
|
||||
| (pixeldata[j*3 + 2] & 0xFF) << 16
|
||||
| (pixeldata[j*3 + 1] & 0xFF) << 8
|
||||
| (pixeldata[j*3] & 0xFF);
|
||||
#else
|
||||
dst[j] = (pixeldata[j*3] & 0xFF) << 24
|
||||
| (pixeldata[j*3 + 1] & 0xFF) << 16
|
||||
| (pixeldata[j*3 + 2] & 0xFF) << 8
|
||||
| 0xFF;
|
||||
#endif
|
||||
dst += width;
|
||||
pixeldata += rowstride;
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetModifyFont
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setText
|
||||
Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText
|
||||
(JNIEnv *env, jobject obj, jstring text)
|
||||
{
|
||||
const char *str;
|
||||
|
||||
@@ -387,6 +387,37 @@ Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenResolution
|
||||
return res;
|
||||
}
|
||||
|
||||
/**
|
||||
* Report the number of mouse buttons
|
||||
* Returns the number of buttons of the first mouse found, or -1 if no mouse
|
||||
* seems to be connected.
|
||||
*/
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkToolkit_getMouseNumberOfButtons
|
||||
(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
|
||||
{
|
||||
jint res = -1;
|
||||
GList *devices;
|
||||
GdkDevice *d;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
/* FIXME: Why doesn't this return the correct number? */
|
||||
devices = gdk_devices_list();
|
||||
|
||||
while( res == -1 && devices != NULL )
|
||||
{
|
||||
d = GDK_DEVICE( devices->data );
|
||||
if( d->source == GDK_SOURCE_MOUSE )
|
||||
res = d->num_keys;
|
||||
devices = devices->next;
|
||||
}
|
||||
|
||||
gdk_threads_leave ();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
#define CONVERT(type, state) \
|
||||
gdk_color_to_java_color (style->type[GTK_STATE_ ## state])
|
||||
|
||||
|
||||
@@ -73,7 +73,8 @@ Java_gnu_java_awt_peer_gtk_GtkVolatileImage_init (JNIEnv *env,
|
||||
pixmap = gdk_pixmap_new( widget->window, width, height, -1 );
|
||||
}
|
||||
else
|
||||
pixmap = gdk_pixmap_new( NULL, width, height, 16 );
|
||||
pixmap = gdk_pixmap_new( NULL, width, height,
|
||||
gdk_rgb_get_visual()->depth );
|
||||
|
||||
gdk_threads_leave();
|
||||
|
||||
|
||||
@@ -246,7 +246,11 @@ exception statement from your version. */
|
||||
#define VK_COMPOSE 65312
|
||||
#define VK_ALT_GRAPH 65406
|
||||
#define VK_UNDEFINED 0
|
||||
#define VK_BEGIN 65368
|
||||
#define VK_CONTEXT_MENU 525
|
||||
#define VK_WINDOWS 524
|
||||
|
||||
|
||||
#define AWT_KEY_CHAR_UNDEFINED 0
|
||||
|
||||
#define AWT_FRAME_STATE_NORMAL 0
|
||||
@@ -721,14 +725,28 @@ keysym_to_awt_keycode (GdkEventKey *event)
|
||||
return VK_CUT;
|
||||
return VK_COPY;
|
||||
return VK_PASTE;
|
||||
*/
|
||||
case GDK_Undo:
|
||||
return VK_UNDO;
|
||||
case GDK_Redo:
|
||||
return VK_AGAIN;
|
||||
/*
|
||||
return VK_FIND;
|
||||
return VK_PROPS;
|
||||
return VK_STOP;
|
||||
return VK_COMPOSE;
|
||||
return VK_ALT_GRAPH;
|
||||
*/
|
||||
case GDK_ISO_Level3_Shift:
|
||||
return VK_ALT_GRAPH;
|
||||
/*
|
||||
case VK_BEGIN:
|
||||
*/
|
||||
case GDK_Menu:
|
||||
return VK_CONTEXT_MENU;
|
||||
case GDK_Super_L:
|
||||
case GDK_Super_R:
|
||||
return VK_WINDOWS;
|
||||
|
||||
default:
|
||||
return VK_UNDEFINED;
|
||||
}
|
||||
@@ -1226,6 +1244,38 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetAlwaysOnTop
|
||||
(JNIEnv *env, jobject obj, jboolean alwaysOnTop)
|
||||
{
|
||||
void *ptr;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
|
||||
gtk_window_set_keep_above (GTK_WINDOW (ptr), alwaysOnTop);
|
||||
|
||||
gdk_threads_leave ();
|
||||
}
|
||||
|
||||
JNIEXPORT jboolean JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowHasFocus
|
||||
(JNIEnv *env, jobject obj)
|
||||
{
|
||||
void *ptr;
|
||||
jboolean retval;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, obj);
|
||||
|
||||
retval = gtk_window_has_toplevel_focus (GTK_WINDOW (ptr));
|
||||
|
||||
gdk_threads_leave ();
|
||||
return retval;
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNative
|
||||
(JNIEnv *env, jobject obj, jboolean visible)
|
||||
@@ -2115,14 +2165,27 @@ cp_gtk_awt_keycode_to_keysym (jint keyCode, jint keyLocation)
|
||||
case VK_CUT:
|
||||
case VK_COPY:
|
||||
case VK_PASTE:
|
||||
*/
|
||||
case VK_UNDO:
|
||||
return GDK_Undo;
|
||||
case VK_AGAIN:
|
||||
return GDK_Redo;
|
||||
/*
|
||||
case VK_FIND:
|
||||
case VK_PROPS:
|
||||
case VK_STOP:
|
||||
case VK_COMPOSE:
|
||||
case VK_ALT_GRAPH:
|
||||
*/
|
||||
case VK_ALT_GRAPH:
|
||||
return GDK_ISO_Level3_Shift;
|
||||
/*
|
||||
case VK_BEGIN:
|
||||
*/
|
||||
case VK_CONTEXT_MENU:
|
||||
return GDK_Menu;
|
||||
case VK_WINDOWS:
|
||||
return GDK_Super_R;
|
||||
|
||||
default:
|
||||
return GDK_VoidSymbol;
|
||||
}
|
||||
|
||||
@@ -112,6 +112,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -132,6 +134,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -162,6 +165,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -212,6 +219,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -232,6 +240,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* java_io_VMFile.c - Native methods for java.io.File class
|
||||
Copyright (C) 1998, 2004 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 2004, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@@ -730,3 +730,237 @@ Java_java_io_VMFile_list (JNIEnv * env, jobject obj
|
||||
return (0);
|
||||
#endif /* not WITHOUT_FILESYSTEM */
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* These two methods are used to maintain dynamically allocated
|
||||
* buffers for getCanonicalPath without the overhead of calling
|
||||
* realloc every time a buffer is modified. Buffers are sized
|
||||
* at the smallest multiple of CHUNKSIZ that is greater than or
|
||||
* equal to the desired length. The default CHUNKSIZ is 256,
|
||||
* longer than most paths, so in most cases a getCanonicalPath
|
||||
* will require only one malloc per buffer.
|
||||
*/
|
||||
|
||||
#define CHUNKLOG 8
|
||||
#define CHUNKSIZ (1 << CHUNKLOG)
|
||||
|
||||
static int
|
||||
nextChunkSize (int size)
|
||||
{
|
||||
return ((size >> CHUNKLOG) + ((size & (CHUNKSIZ - 1)) ? 1 : 0)) << CHUNKLOG;
|
||||
}
|
||||
|
||||
static char *
|
||||
maybeGrowBuf (JNIEnv *env, char *buf, int *size, int required)
|
||||
{
|
||||
if (required > *size)
|
||||
{
|
||||
*size = nextChunkSize (required);
|
||||
buf = JCL_realloc (env, buf, *size);
|
||||
}
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*************************************************************************/
|
||||
|
||||
/*
|
||||
* This method converts a path to canonical form on GNU/Posix systems.
|
||||
* This involves the removal of redundant separators, references to
|
||||
* "." and "..", and symbolic links.
|
||||
*
|
||||
* The conversion proceeds on a component-by-component basis: symbolic
|
||||
* links and references to ".." are resolved as and when they occur.
|
||||
* This means that if "/foo/bar" is a symbolic link to "/baz" then the
|
||||
* canonical form of "/foo/bar/.." is "/" and not "/foo".
|
||||
*
|
||||
* In order to mimic the behaviour of proprietary JVMs, non-existant
|
||||
* path components are allowed (a departure from the normal GNU system
|
||||
* convention). This means that if "/foo/bar" is a symbolic link to
|
||||
* "/baz", the canonical form of "/non-existant-directory/../foo/bar"
|
||||
* is "/baz".
|
||||
*
|
||||
* Class: java_io_VMFile
|
||||
* Method: toCanonicalForm
|
||||
* Signature: (Ljava/lang/String)Ljava/lang/String
|
||||
*/
|
||||
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_java_io_VMFile_toCanonicalForm (JNIEnv *env,
|
||||
jclass class __attribute__ ((__unused__)),
|
||||
jstring jpath)
|
||||
{
|
||||
#ifndef WITHOUT_FILESYSTEM
|
||||
const char *path;
|
||||
char *src, *dst;
|
||||
int srci, dsti;
|
||||
int srcl, dstl;
|
||||
int len;
|
||||
int fschecks;
|
||||
#if defined (HAVE_LSTAT) && defined (HAVE_READLINK)
|
||||
struct stat sb;
|
||||
#endif /* HAVE_LSTAT && HAVE_READLINK */
|
||||
|
||||
path = JCL_jstring_to_cstring (env, jpath);
|
||||
if (path == NULL)
|
||||
return NULL;
|
||||
|
||||
/* It is the caller's responsibility to ensure the path is absolute. */
|
||||
if (path[0] == 0 || path[0] != '/')
|
||||
{
|
||||
JCL_free_cstring (env, jpath, path);
|
||||
JCL_ThrowException (env, "java/lang/RuntimeException", "Not absolute");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
len = strlen (path);
|
||||
srcl = nextChunkSize (len + 1);
|
||||
src = JCL_malloc (env, srcl);
|
||||
if (src == NULL)
|
||||
{
|
||||
JCL_free_cstring (env, jpath, path);
|
||||
return NULL;
|
||||
}
|
||||
strcpy (src, path);
|
||||
JCL_free_cstring (env, jpath, path);
|
||||
srci = 1;
|
||||
|
||||
dstl = nextChunkSize (2);
|
||||
dst = JCL_malloc (env, dstl);
|
||||
if (dst == NULL)
|
||||
{
|
||||
JCL_free (env, src);
|
||||
return NULL;
|
||||
}
|
||||
dst[0] = '/';
|
||||
dsti = 1;
|
||||
|
||||
fschecks = JNI_TRUE;
|
||||
|
||||
while (src[srci] != '\0')
|
||||
{
|
||||
int tmpi, dsti_save;
|
||||
|
||||
/* Skip slashes. */
|
||||
while (src[srci] == '/')
|
||||
srci++;
|
||||
tmpi = srci;
|
||||
/* Find next slash. */
|
||||
while (src[srci] != '/' && src[srci] != '\0')
|
||||
srci++;
|
||||
if (srci == tmpi)
|
||||
/* We hit the end. */
|
||||
break;
|
||||
len = srci - tmpi;
|
||||
|
||||
/* Handle "." and "..". */
|
||||
if (len == 1 && src[tmpi] == '.')
|
||||
continue;
|
||||
if (len == 2 && src[tmpi] == '.' && src[tmpi + 1] == '.')
|
||||
{
|
||||
while (dsti > 1 && dst[dsti - 1] != '/')
|
||||
dsti--;
|
||||
if (dsti != 1)
|
||||
dsti--;
|
||||
/* Reenable filesystem checking if disabled, as we might
|
||||
* have reversed over whatever caused the problem before.
|
||||
* At least one proprietary JVM has inconsistencies because
|
||||
* it does not do this.
|
||||
*/
|
||||
fschecks = JNI_TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Handle real path components. */
|
||||
dst = maybeGrowBuf (env,
|
||||
dst, &dstl, dsti + (dsti > 1 ? 1 : 0) + len + 1);
|
||||
if (dst == NULL)
|
||||
{
|
||||
JCL_free (env, src);
|
||||
return NULL;
|
||||
}
|
||||
dsti_save = dsti;
|
||||
if (dsti > 1)
|
||||
dst[dsti++] = '/';
|
||||
strncpy (&dst[dsti], &src[tmpi], len);
|
||||
dsti += len;
|
||||
if (fschecks == JNI_FALSE)
|
||||
continue;
|
||||
|
||||
#if defined (HAVE_LSTAT) && defined (HAVE_READLINK)
|
||||
dst[dsti] = '\0';
|
||||
if (lstat (dst, &sb) == 0)
|
||||
{
|
||||
if (S_ISLNK (sb.st_mode))
|
||||
{
|
||||
int tmpl = CHUNKSIZ;
|
||||
char *tmp = JCL_malloc (env, tmpl);
|
||||
if (tmp == NULL)
|
||||
{
|
||||
JCL_free (env, src);
|
||||
JCL_free (env, dst);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
while (1)
|
||||
{
|
||||
tmpi = readlink (dst, tmp, tmpl);
|
||||
if (tmpi < 1)
|
||||
{
|
||||
JCL_free (env, src);
|
||||
JCL_free (env, dst);
|
||||
JCL_free (env, tmp);
|
||||
JCL_ThrowException (env, "java/io/IOException",
|
||||
"readlink failed");
|
||||
return NULL;
|
||||
}
|
||||
if (tmpi < tmpl)
|
||||
break;
|
||||
tmpl += CHUNKSIZ;
|
||||
tmp = JCL_realloc (env, tmp, tmpl);
|
||||
}
|
||||
|
||||
/* Prepend the link's path to src. */
|
||||
tmp = maybeGrowBuf (env,
|
||||
tmp, &tmpl, tmpi + strlen (&src[srci]) + 1);
|
||||
if (tmp == NULL)
|
||||
{
|
||||
JCL_free (env, src);
|
||||
JCL_free (env, dst);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
strcpy (&tmp[tmpi], &src[srci]);
|
||||
JCL_free (env, src);
|
||||
src = tmp;
|
||||
srcl = tmpl;
|
||||
srci = 0;
|
||||
|
||||
/* Either replace or append dst depending on whether the
|
||||
* link is relative or absolute.
|
||||
*/
|
||||
dsti = src[0] == '/' ? 1 : dsti_save;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Something doesn't exist, or we don't have permission to
|
||||
* read it, or a previous path component is a directory, or
|
||||
* a symlink is looped. Whatever, we can't check the
|
||||
* filesystem any more.
|
||||
*/
|
||||
fschecks = JNI_FALSE;
|
||||
}
|
||||
#endif /* HAVE_LSTAT && HAVE_READLINK */
|
||||
}
|
||||
dst[dsti] = '\0';
|
||||
|
||||
jpath = (*env)->NewStringUTF (env, dst);
|
||||
JCL_free (env, src);
|
||||
JCL_free (env, dst);
|
||||
return jpath;
|
||||
#else /* not WITHOUT_FILESYSTEM */
|
||||
return NULL;
|
||||
#endif /* not WITHOUT_FILESYSTEM */
|
||||
}
|
||||
|
||||
@@ -118,6 +118,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -138,6 +140,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -168,6 +171,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -218,6 +225,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -238,6 +246,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -113,11 +113,11 @@ Java_java_lang_VMSystem_setErr (JNIEnv * env,
|
||||
|
||||
/*
|
||||
* Class: java_lang_VMSystem
|
||||
* Method: currentTimeMillis
|
||||
* Method: nanoTime
|
||||
* Signature: ()J
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_java_lang_VMSystem_currentTimeMillis
|
||||
Java_java_lang_VMSystem_nanoTime
|
||||
(JNIEnv * env __attribute__ ((__unused__)),
|
||||
jclass thisClass __attribute__ ((__unused__)))
|
||||
{
|
||||
@@ -129,8 +129,9 @@ Java_java_lang_VMSystem_currentTimeMillis
|
||||
(*env)->FatalError (env, "gettimeofday call failed.");
|
||||
|
||||
result = (jlong) tp.tv_sec;
|
||||
result *= 1000;
|
||||
result += (tp.tv_usec / 1000);
|
||||
result *= (jlong)1000000L;
|
||||
result += (jlong)tp.tv_usec;
|
||||
result *= (jlong)1000;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -12,11 +12,12 @@ libjavanet_la_SOURCES = javanet.c \
|
||||
javanet.h \
|
||||
java_net_VMInetAddress.c \
|
||||
java_net_VMNetworkInterface.c \
|
||||
java_net_VMURLConnection.c \
|
||||
gnu_java_net_VMPlainDatagramSocketImpl.c \
|
||||
gnu_java_net_VMPlainSocketImpl.c \
|
||||
$(local_sources)
|
||||
|
||||
libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
|
||||
libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo $(LIBMAGIC)
|
||||
|
||||
AM_LDFLAGS = @CLASSPATH_MODULE@
|
||||
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
|
||||
|
||||
@@ -61,10 +61,13 @@ am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
|
||||
nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
|
||||
LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
|
||||
am__DEPENDENCIES_1 =
|
||||
libjavanet_la_DEPENDENCIES = \
|
||||
$(top_builddir)/native/jni/classpath/jcl.lo
|
||||
$(top_builddir)/native/jni/classpath/jcl.lo \
|
||||
$(am__DEPENDENCIES_1)
|
||||
am__libjavanet_la_SOURCES_DIST = javanet.c javanet.h \
|
||||
java_net_VMInetAddress.c java_net_VMNetworkInterface.c \
|
||||
java_net_VMURLConnection.c \
|
||||
gnu_java_net_VMPlainDatagramSocketImpl.c \
|
||||
gnu_java_net_VMPlainSocketImpl.c \
|
||||
gnu_java_net_local_LocalSocketImpl.c local.c local.h
|
||||
@@ -72,7 +75,7 @@ am__libjavanet_la_SOURCES_DIST = javanet.c javanet.h \
|
||||
@ENABLE_LOCAL_SOCKETS_TRUE@am__objects_1 = gnu_java_net_local_LocalSocketImpl.lo \
|
||||
@ENABLE_LOCAL_SOCKETS_TRUE@ local.lo
|
||||
am_libjavanet_la_OBJECTS = javanet.lo java_net_VMInetAddress.lo \
|
||||
java_net_VMNetworkInterface.lo \
|
||||
java_net_VMNetworkInterface.lo java_net_VMURLConnection.lo \
|
||||
gnu_java_net_VMPlainDatagramSocketImpl.lo \
|
||||
gnu_java_net_VMPlainSocketImpl.lo $(am__objects_1)
|
||||
libjavanet_la_OBJECTS = $(am_libjavanet_la_OBJECTS)
|
||||
@@ -122,6 +125,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -142,6 +147,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -172,6 +178,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -222,6 +232,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -242,6 +253,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
@@ -316,11 +329,12 @@ libjavanet_la_SOURCES = javanet.c \
|
||||
javanet.h \
|
||||
java_net_VMInetAddress.c \
|
||||
java_net_VMNetworkInterface.c \
|
||||
java_net_VMURLConnection.c \
|
||||
gnu_java_net_VMPlainDatagramSocketImpl.c \
|
||||
gnu_java_net_VMPlainSocketImpl.c \
|
||||
$(local_sources)
|
||||
|
||||
libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
|
||||
libjavanet_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo $(LIBMAGIC)
|
||||
AM_LDFLAGS = @CLASSPATH_MODULE@
|
||||
AM_CPPFLAGS = @CLASSPATH_INCLUDES@
|
||||
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@
|
||||
@@ -398,6 +412,7 @@ distclean-compile:
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_net_local_LocalSocketImpl.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMInetAddress.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMNetworkInterface.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/java_net_VMURLConnection.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/javanet.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/local.Plo@am__quote@
|
||||
|
||||
|
||||
@@ -200,22 +200,15 @@ Java_gnu_java_net_local_LocalSocketImpl_accept (JNIEnv *env, jobject this, jobje
|
||||
|
||||
|
||||
jint
|
||||
Java_gnu_java_net_local_LocalSocketImpl_available (JNIEnv *env, jobject this)
|
||||
Java_gnu_java_net_local_LocalSocketImpl_available
|
||||
(JNIEnv *env, jobject this __attribute__((unused)), jint fd)
|
||||
{
|
||||
#ifdef ENABLE_LOCAL_SOCKETS
|
||||
jfieldID socket_fd;
|
||||
jclass clazz;
|
||||
jint avail;
|
||||
|
||||
TRACE("begin");
|
||||
|
||||
clazz = (*env)->GetObjectClass (env, this);
|
||||
socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I");
|
||||
if (!socket_fd)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
avail = (jint) local_available ((int) (*env)->GetIntField (env, this, socket_fd));
|
||||
avail = (jint) local_available (fd);
|
||||
if (avail < 0)
|
||||
{
|
||||
_throw (env, "java/io/IOException", local_error ());
|
||||
@@ -227,6 +220,7 @@ Java_gnu_java_net_local_LocalSocketImpl_available (JNIEnv *env, jobject this)
|
||||
return avail;
|
||||
#else
|
||||
(void) this;
|
||||
(void) fd;
|
||||
_throw (env, "java/lang/Error", "support for local sockets not available");
|
||||
return -1;
|
||||
#endif /* ENABLE_LOCAL_SOCKETS */
|
||||
@@ -452,14 +446,13 @@ Java_gnu_java_net_local_LocalSocketImpl_localConnect (JNIEnv *env, jobject this,
|
||||
|
||||
|
||||
jint
|
||||
Java_gnu_java_net_local_LocalSocketImpl_read (JNIEnv *env, jobject this, jbyteArray buf, jint off, jint len)
|
||||
Java_gnu_java_net_local_LocalSocketImpl_read
|
||||
(JNIEnv *env, jobject this __attribute__((unused)), jint fd, jbyteArray buf,
|
||||
jint off, jint len)
|
||||
{
|
||||
#ifdef ENABLE_LOCAL_SOCKETS
|
||||
jfieldID socket_fd;
|
||||
jclass clazz;
|
||||
jbyte *buffer;
|
||||
jint count;
|
||||
int fd;
|
||||
|
||||
TRACE("begin");
|
||||
|
||||
@@ -468,13 +461,6 @@ Java_gnu_java_net_local_LocalSocketImpl_read (JNIEnv *env, jobject this, jbyteAr
|
||||
_throw (env, "java/lang/ArrayIndexOutOfBoundsException", "");
|
||||
}
|
||||
|
||||
clazz = (*env)->GetObjectClass (env, this);
|
||||
socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I");
|
||||
if (!socket_fd)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
fd = (int) (*env)->GetIntField (env, this, socket_fd);
|
||||
buffer = (*env)->GetByteArrayElements (env, buf, NULL);
|
||||
count = (jint) local_read (fd, (void *) (buffer + off), (int) len);
|
||||
if (count < 0)
|
||||
@@ -488,6 +474,7 @@ Java_gnu_java_net_local_LocalSocketImpl_read (JNIEnv *env, jobject this, jbyteAr
|
||||
return count;
|
||||
#else
|
||||
(void) this;
|
||||
(void) fd;
|
||||
(void) buf;
|
||||
(void) off;
|
||||
(void) len;
|
||||
@@ -498,13 +485,12 @@ Java_gnu_java_net_local_LocalSocketImpl_read (JNIEnv *env, jobject this, jbyteAr
|
||||
|
||||
|
||||
void
|
||||
Java_gnu_java_net_local_LocalSocketImpl_write (JNIEnv *env, jobject this, jbyteArray buf, jint off, jint len)
|
||||
Java_gnu_java_net_local_LocalSocketImpl_write
|
||||
(JNIEnv *env, jobject this __attribute__((unused)), jint fd, jbyteArray buf,
|
||||
jint off, jint len)
|
||||
{
|
||||
#ifdef ENABLE_LOCAL_SOCKETS
|
||||
jfieldID socket_fd;
|
||||
jclass clazz;
|
||||
jbyte *buffer;
|
||||
int fd;
|
||||
|
||||
TRACE("begin");
|
||||
|
||||
@@ -513,13 +499,6 @@ Java_gnu_java_net_local_LocalSocketImpl_write (JNIEnv *env, jobject this, jbyteA
|
||||
_throw (env, "java/lang/ArrayIndexOutOfBoundsException", "");
|
||||
}
|
||||
|
||||
clazz = (*env)->GetObjectClass (env, this);
|
||||
socket_fd = (*env)->GetFieldID (env, clazz, "socket_fd", "I");
|
||||
if (!socket_fd)
|
||||
{
|
||||
return;
|
||||
}
|
||||
fd = (int) (*env)->GetIntField (env, this, socket_fd);
|
||||
buffer = (*env)->GetByteArrayElements (env, buf, NULL);
|
||||
if (local_write (fd, (void *) (buffer + off), (int) len) < 0)
|
||||
{
|
||||
@@ -530,6 +509,7 @@ Java_gnu_java_net_local_LocalSocketImpl_write (JNIEnv *env, jobject this, jbyteA
|
||||
TRACE("end");
|
||||
#else
|
||||
(void) this;
|
||||
(void) fd;
|
||||
(void) buf;
|
||||
(void) off;
|
||||
(void) len;
|
||||
|
||||
+58
-43
@@ -1,5 +1,5 @@
|
||||
/* gtkcheckboxgrouppeer.c -- Native implementation of GtkCheckboxGroupPeer
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
/* VMURLConnection.c - native bits for URLConnection
|
||||
Copyright (C) 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@@ -7,7 +7,7 @@ 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
|
||||
@@ -35,53 +35,68 @@ 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 <config.h>
|
||||
|
||||
#include "gtkpeer.h"
|
||||
#include "gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h"
|
||||
#include <java_net_VMURLConnection.h>
|
||||
|
||||
static GtkWidget *comboboxgroup_get_widget (GtkWidget *widget);
|
||||
#ifdef HAVE_MAGIC_H
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose
|
||||
(JNIEnv *env, jobject obj)
|
||||
#include <magic.h>
|
||||
|
||||
static magic_t cookie;
|
||||
|
||||
#endif /* HAVE_MAGIC_H */
|
||||
|
||||
void
|
||||
Java_java_net_VMURLConnection_init (JNIEnv *env __attribute__ ((__unused__)),
|
||||
jclass klass __attribute__ ((__unused__)))
|
||||
{
|
||||
/* The actual underlying widget is owned by a different class. So
|
||||
we just clean up the hash table here. */
|
||||
NSA_DEL_PTR (env, obj);
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_remove
|
||||
(JNIEnv *env, jobject obj, jobject checkbox)
|
||||
{
|
||||
GtkRadioButton *button;
|
||||
void *ptr;
|
||||
GSList *list;
|
||||
|
||||
gdk_threads_enter ();
|
||||
|
||||
ptr = NSA_GET_PTR (env, checkbox);
|
||||
button = GTK_RADIO_BUTTON (comboboxgroup_get_widget (GTK_WIDGET (ptr)));
|
||||
|
||||
/* Update the group to point to some other widget in the group. We
|
||||
have to do this because Gtk doesn't have a separate object to
|
||||
represent a radio button's group. */
|
||||
for (list = gtk_radio_button_get_group (button); list != NULL;
|
||||
list = list->next)
|
||||
#ifdef HAVE_MAGIC_H
|
||||
cookie = magic_open (MAGIC_MIME);
|
||||
if (cookie == (magic_t) NULL)
|
||||
return;
|
||||
if (magic_load (cookie, NULL) == -1)
|
||||
{
|
||||
if (list->data != button)
|
||||
break;
|
||||
magic_close (cookie);
|
||||
cookie = (magic_t) NULL;
|
||||
}
|
||||
|
||||
NSA_SET_PTR (env, obj, list ? list->data : NULL);
|
||||
|
||||
gdk_threads_leave ();
|
||||
#endif /* HAVE_MAGIC_H */
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
comboboxgroup_get_widget (GtkWidget *widget)
|
||||
#ifdef HAVE_MAGIC_H
|
||||
jstring
|
||||
Java_java_net_VMURLConnection_guessContentTypeFromBuffer (JNIEnv *env,
|
||||
jclass klass
|
||||
__attribute__ ((__unused__)),
|
||||
jbyteArray bytes,
|
||||
jint valid)
|
||||
{
|
||||
if (GTK_IS_EVENT_BOX (widget))
|
||||
return gtk_bin_get_child (GTK_BIN(widget));
|
||||
return widget;
|
||||
jbyte *elements;
|
||||
const char *result;
|
||||
|
||||
if (cookie == (magic_t) NULL)
|
||||
return NULL;
|
||||
|
||||
elements = (*env)->GetByteArrayElements (env, bytes, NULL);
|
||||
result = magic_buffer (cookie, elements, valid);
|
||||
|
||||
/* The mode we use doesn't matter, since we don't change the array. */
|
||||
(*env)->ReleaseByteArrayElements (env, bytes, elements, JNI_ABORT);
|
||||
|
||||
if (result == NULL)
|
||||
return NULL;
|
||||
return (*env)->NewStringUTF (env, result);
|
||||
#else
|
||||
jstring
|
||||
Java_java_net_VMURLConnection_guessContentTypeFromBuffer (JNIEnv *env
|
||||
__attribute__ ((__unused__)),
|
||||
jclass klass
|
||||
__attribute__ ((__unused__)),
|
||||
jbyteArray bytes
|
||||
__attribute__ ((__unused__)),
|
||||
jint valid
|
||||
__attribute__ ((__unused__)))
|
||||
{
|
||||
return NULL;
|
||||
#endif /* HAVE_MAGIC_H */
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
nativeexeclib_LTLIBRARIES = libjavanio.la
|
||||
|
||||
libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \
|
||||
gnu_java_nio_VMChannel.c \
|
||||
gnu_java_nio_VMSelector.c \
|
||||
gnu_java_nio_channels_FileChannelImpl.c \
|
||||
gnu_java_nio_charset_iconv_IconvDecoder.c \
|
||||
|
||||
@@ -66,7 +66,7 @@ libjavanio_la_DEPENDENCIES = \
|
||||
$(top_builddir)/native/jni/classpath/jcl.lo \
|
||||
$(am__DEPENDENCIES_1)
|
||||
am_libjavanio_la_OBJECTS = gnu_java_nio_VMPipe.lo \
|
||||
gnu_java_nio_VMSelector.lo \
|
||||
gnu_java_nio_VMChannel.lo gnu_java_nio_VMSelector.lo \
|
||||
gnu_java_nio_channels_FileChannelImpl.lo \
|
||||
gnu_java_nio_charset_iconv_IconvDecoder.lo \
|
||||
gnu_java_nio_charset_iconv_IconvEncoder.lo \
|
||||
@@ -119,6 +119,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -139,6 +141,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -169,6 +172,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -219,6 +226,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -239,6 +247,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
@@ -305,6 +315,7 @@ target_vendor = @target_vendor@
|
||||
vm_classes = @vm_classes@
|
||||
nativeexeclib_LTLIBRARIES = libjavanio.la
|
||||
libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \
|
||||
gnu_java_nio_VMChannel.c \
|
||||
gnu_java_nio_VMSelector.c \
|
||||
gnu_java_nio_channels_FileChannelImpl.c \
|
||||
gnu_java_nio_charset_iconv_IconvDecoder.c \
|
||||
@@ -387,6 +398,7 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_VMChannel.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_VMPipe.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_VMSelector.Plo@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_nio_channels_FileChannelImpl.Plo@am__quote@
|
||||
|
||||
@@ -0,0 +1,525 @@
|
||||
/* gnu_java_nio_VMChannel.c -
|
||||
Copyright (C) 2003, 2004, 2005, 2006 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., 51 Franklin Street, Fifth Floor, Boston, MA
|
||||
02110-1301 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 <config.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/uio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <jni.h>
|
||||
#include <jcl.h>
|
||||
|
||||
#include "gnu_java_nio_VMChannel.h"
|
||||
|
||||
#ifdef HAVE_FCNTL_H
|
||||
#include <fcntl.h>
|
||||
#endif /* HAVE_FCNTL_H */
|
||||
|
||||
#define IO_EXCEPTION "java/io/IOException"
|
||||
#define NON_READABLE_CHANNEL_EXCEPTION "java/nio/channels/NonReadableChannelException"
|
||||
#define NON_WRITABLE_CHANNEL_EXCEPTION "java/nio/channels/NonWritableChannelException"
|
||||
|
||||
/*
|
||||
* Limit to maximum of 16 buffers
|
||||
*/
|
||||
#define JCL_IOV_MAX 16
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
enum JCL_buffer_type { DIRECT, ARRAY, UNKNOWN };
|
||||
|
||||
struct JCL_buffer
|
||||
{
|
||||
enum JCL_buffer_type type;
|
||||
jbyte *ptr;
|
||||
jint offset;
|
||||
jint position;
|
||||
jint limit;
|
||||
jint count;
|
||||
};
|
||||
|
||||
jmethodID get_method_id(JNIEnv *, jclass, const char *, const char *);
|
||||
void JCL_print_buffer(JNIEnv *, struct JCL_buffer *);
|
||||
int JCL_init_buffer(JNIEnv *, struct JCL_buffer *, jobject);
|
||||
void JCL_release_buffer(JNIEnv *, struct JCL_buffer *, jobject, jint);
|
||||
void JCL_cleanup_buffers(JNIEnv *, struct JCL_buffer *, jint, jobjectArray, jint, jlong);
|
||||
|
||||
static jfieldID address_fid;
|
||||
static jmethodID get_position_mid;
|
||||
static jmethodID set_position_mid;
|
||||
static jmethodID get_limit_mid;
|
||||
static jmethodID set_limit_mid;
|
||||
static jmethodID has_array_mid;
|
||||
static jmethodID array_mid;
|
||||
static jmethodID array_offset_mid;
|
||||
|
||||
jmethodID
|
||||
get_method_id(JNIEnv *env, jclass clazz, const char *name,
|
||||
const char *sig)
|
||||
{
|
||||
jmethodID mid = (*env)->GetMethodID(env, clazz, name, sig);
|
||||
if (mid == NULL)
|
||||
{
|
||||
JCL_ThrowException(env, "java/lang/InternalError", name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return mid;
|
||||
}
|
||||
|
||||
void
|
||||
JCL_print_buffer(JNIEnv *env __attribute__((__unused__)), struct JCL_buffer *buf)
|
||||
{
|
||||
fprintf(stdout, "Buffer - type: %d, ptr: %p\n", buf->type, buf->ptr);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
JCL_init_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf)
|
||||
{
|
||||
jobject address = (*env)->GetObjectField(env, bbuf, address_fid);
|
||||
|
||||
buf->position = (*env)->CallIntMethod(env, bbuf, get_position_mid);
|
||||
buf->limit = (*env)->CallIntMethod(env, bbuf, get_limit_mid);
|
||||
buf->offset = 0;
|
||||
buf->count = 0;
|
||||
buf->type = UNKNOWN;
|
||||
|
||||
if (address != NULL)
|
||||
{
|
||||
buf->ptr = (jbyte *) JCL_GetRawData(env, address);
|
||||
buf->type = DIRECT;
|
||||
(*env)->DeleteLocalRef(env, address);
|
||||
}
|
||||
else
|
||||
{
|
||||
jboolean has_array;
|
||||
has_array = (*env)->CallBooleanMethod(env, bbuf, has_array_mid);
|
||||
|
||||
if (has_array == JNI_TRUE)
|
||||
{
|
||||
jbyteArray arr;
|
||||
buf->offset = (*env)->CallIntMethod(env, bbuf, array_offset_mid);
|
||||
arr = (*env)->CallObjectMethod(env, bbuf, array_mid);
|
||||
buf->ptr = (*env)->GetByteArrayElements(env, arr, 0);
|
||||
buf->type = ARRAY;
|
||||
(*env)->DeleteLocalRef(env, arr);
|
||||
}
|
||||
else
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
JCL_release_buffer(JNIEnv *env, struct JCL_buffer *buf, jobject bbuf,
|
||||
jint action)
|
||||
{
|
||||
jbyteArray arr;
|
||||
|
||||
/* Set the position to the appropriate value */
|
||||
if (buf->count > 0)
|
||||
{
|
||||
jobject bbufTemp;
|
||||
bbufTemp = (*env)->CallObjectMethod(env, bbuf, set_position_mid,
|
||||
buf->position + buf->count);
|
||||
(*env)->DeleteLocalRef(env, bbufTemp);
|
||||
}
|
||||
|
||||
switch (buf->type)
|
||||
{
|
||||
case DIRECT:
|
||||
break;
|
||||
case ARRAY:
|
||||
arr = (*env)->CallObjectMethod(env, bbuf, array_mid);
|
||||
(*env)->ReleaseByteArrayElements(env, arr, buf->ptr, action);
|
||||
(*env)->DeleteLocalRef(env, arr);
|
||||
break;
|
||||
case UNKNOWN:
|
||||
/* TODO: Handle buffers that are not direct or array backed */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
JCL_cleanup_buffers(JNIEnv *env,
|
||||
struct JCL_buffer *bi_list,
|
||||
jint vec_len,
|
||||
jobjectArray bbufs,
|
||||
jint offset,
|
||||
jlong num_bytes)
|
||||
{
|
||||
jint i;
|
||||
|
||||
/* Update all of the bbufs with the approriate information */
|
||||
for (i = 0; i < vec_len; i++)
|
||||
{
|
||||
struct JCL_buffer* buf;
|
||||
jobject bbuf;
|
||||
|
||||
buf = &bi_list[i];
|
||||
bbuf = (*env)->GetObjectArrayElement(env, bbufs, offset + i);
|
||||
|
||||
if (num_bytes > (buf->limit - buf->position))
|
||||
buf->count = (buf->limit - buf->position);
|
||||
else
|
||||
buf->count = num_bytes;
|
||||
|
||||
num_bytes -= buf->count;
|
||||
|
||||
JCL_release_buffer(env, buf, bbuf, JNI_ABORT);
|
||||
(*env)->DeleteLocalRef(env, bbuf);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_nio_VMChannel_initIDs (JNIEnv *env,
|
||||
jclass clazz __attribute__ ((__unused__)))
|
||||
{
|
||||
jclass bufferClass = JCL_FindClass(env, "java/nio/Buffer");
|
||||
jclass byteBufferClass = JCL_FindClass(env, "java/nio/ByteBuffer");
|
||||
|
||||
address_fid = (*env)->GetFieldID(env, bufferClass, "address",
|
||||
"Lgnu/classpath/Pointer;");
|
||||
if (address_fid == NULL)
|
||||
{
|
||||
JCL_ThrowException(env, "java/lang/InternalError",
|
||||
"Unable to find internal field");
|
||||
return;
|
||||
}
|
||||
|
||||
get_position_mid = get_method_id(env, bufferClass, "position", "()I");
|
||||
set_position_mid = get_method_id(env, bufferClass, "position",
|
||||
"(I)Ljava/nio/Buffer;");
|
||||
get_limit_mid = get_method_id(env, bufferClass, "limit", "()I");
|
||||
set_limit_mid = get_method_id(env, bufferClass, "limit",
|
||||
"(I)Ljava/nio/Buffer;");
|
||||
has_array_mid = get_method_id(env, byteBufferClass, "hasArray", "()Z");
|
||||
array_mid = get_method_id(env, byteBufferClass, "array", "()[B");
|
||||
array_offset_mid = get_method_id(env, byteBufferClass, "arrayOffset", "()I");
|
||||
}
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_gnu_java_nio_VMChannel_setBlocking (JNIEnv *env,
|
||||
jobject o __attribute__ ((__unused__)),
|
||||
jint fd,
|
||||
jboolean blocking)
|
||||
{
|
||||
int opts;
|
||||
|
||||
opts = fcntl(fd, F_GETFL);
|
||||
if (opts < 0)
|
||||
{
|
||||
JCL_ThrowException(env, IO_EXCEPTION,
|
||||
"Failed to get flags for file desriptor");
|
||||
return;
|
||||
}
|
||||
|
||||
if (blocking)
|
||||
opts |= O_NONBLOCK;
|
||||
else
|
||||
opts &= ~(O_NONBLOCK);
|
||||
|
||||
opts = fcntl(fd, F_SETFL, opts);
|
||||
|
||||
if (opts < 0)
|
||||
{
|
||||
JCL_ThrowException(env, IO_EXCEPTION,
|
||||
"Failed to set flags for file desriptor");
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_gnu_java_nio_VMChannel_read (JNIEnv *env,
|
||||
jobject o __attribute__ ((__unused__)),
|
||||
jint fd,
|
||||
jobject bbuf)
|
||||
{
|
||||
jint len;
|
||||
ssize_t result;
|
||||
struct JCL_buffer buf;
|
||||
|
||||
if (JCL_init_buffer(env, &buf, bbuf) < 0)
|
||||
{
|
||||
/* TODO: Rethrown exception */
|
||||
JCL_ThrowException (env, IO_EXCEPTION, "Buffer initialisation failed");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = buf.limit - buf.position;
|
||||
|
||||
result = read(fd, &(buf.ptr[buf.position + buf.offset]), len);
|
||||
buf.count = result;
|
||||
|
||||
if (result == 0)
|
||||
result = -1; /* End Of File */
|
||||
else if (result == -1)
|
||||
{
|
||||
buf.count = 0;
|
||||
if (errno == EAGAIN) /* Non-blocking */
|
||||
result = 0;
|
||||
else if (errno == EBADF) /* Bad fd */
|
||||
{
|
||||
JCL_release_buffer(env, &buf, bbuf, JNI_ABORT);
|
||||
JCL_ThrowException (env, NON_READABLE_CHANNEL_EXCEPTION,
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
JCL_release_buffer(env, &buf, bbuf, JNI_ABORT);
|
||||
JCL_ThrowException (env, IO_EXCEPTION, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
JCL_release_buffer(env, &buf, bbuf, JNI_COMMIT);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
JNIEXPORT jint JNICALL
|
||||
Java_gnu_java_nio_VMChannel_write (JNIEnv *env,
|
||||
jobject o __attribute__ ((__unused__)),
|
||||
jint fd,
|
||||
jobject bbuf)
|
||||
{
|
||||
jint len;
|
||||
ssize_t result;
|
||||
struct JCL_buffer buf;
|
||||
|
||||
if (JCL_init_buffer(env, &buf, bbuf) < 0)
|
||||
{
|
||||
/* TODO: Rethrown exception */
|
||||
JCL_ThrowException (env, IO_EXCEPTION, "Buffer initialisation failed");
|
||||
return -1;
|
||||
}
|
||||
|
||||
len = buf.limit - buf.position;
|
||||
|
||||
result = write(fd, &(buf.ptr[buf.position + buf.offset]), len);
|
||||
buf.count = result;
|
||||
|
||||
if (result == -1)
|
||||
{
|
||||
if (errno == EAGAIN) /* Non-blocking */
|
||||
result = 0;
|
||||
else
|
||||
{
|
||||
JCL_release_buffer(env, &buf, bbuf, JNI_ABORT);
|
||||
JCL_ThrowException(env, IO_EXCEPTION, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
JCL_release_buffer(env, &buf, bbuf, JNI_ABORT);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Implementation of a scattering read. Will use the appropriate
|
||||
* vector based read call (currently readv on Linux).
|
||||
*
|
||||
* This has a limit to the number of buffers that will be read. It
|
||||
* will not make muliple readv calls. This is to ensure that operations
|
||||
* are atomic. Currently it is limited to 16 buffers. This is for
|
||||
* compatibiliy with Sun.
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_gnu_java_nio_VMChannel_readScattering (JNIEnv *env,
|
||||
jobject o __attribute__ ((__unused__)),
|
||||
jint fd,
|
||||
jobjectArray bbufs,
|
||||
jint offset,
|
||||
jint length)
|
||||
{
|
||||
jint i;
|
||||
/* jboolean is_error = JNI_FALSE; */
|
||||
/* char *error_msg; */
|
||||
struct iovec buffers[JCL_IOV_MAX];
|
||||
struct JCL_buffer bi_list[JCL_IOV_MAX];
|
||||
ssize_t result;
|
||||
jint vec_len = length < JCL_IOV_MAX ? length : JCL_IOV_MAX;
|
||||
jlong bytes_read = 0;
|
||||
|
||||
/* Build the vector of buffers to read into */
|
||||
for (i = 0; i < vec_len; i++)
|
||||
{
|
||||
struct JCL_buffer* buf;
|
||||
jobject bbuf;
|
||||
|
||||
buf = &bi_list[i];
|
||||
bbuf = (*env)->GetObjectArrayElement(env, bbufs, offset + i);
|
||||
|
||||
JCL_init_buffer(env, buf, bbuf);
|
||||
|
||||
buffers[i].iov_base = &(buf->ptr[buf->position + buf->offset]);
|
||||
buffers[i].iov_len = buf->limit - buf->position;
|
||||
(*env)->DeleteLocalRef(env, bbuf);
|
||||
}
|
||||
|
||||
/* Work the scattering magic */
|
||||
result = readv(fd, buffers, vec_len);
|
||||
bytes_read = (jlong) result;
|
||||
|
||||
/* Handle the response */
|
||||
if (result < 0)
|
||||
{
|
||||
if (errno == EAGAIN) /* Non blocking */
|
||||
result = 0;
|
||||
else if (errno == EBADF) /* Bad fd */
|
||||
{
|
||||
JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read);
|
||||
JCL_ThrowException (env, NON_READABLE_CHANNEL_EXCEPTION,
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read);
|
||||
JCL_ThrowException (env, IO_EXCEPTION, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
bytes_read = 0;
|
||||
}
|
||||
else if (result == 0) /* EOF */
|
||||
{
|
||||
result = -1;
|
||||
}
|
||||
|
||||
JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_read);
|
||||
|
||||
return (jlong) result;
|
||||
}
|
||||
|
||||
/*
|
||||
* Implementation of a gathering write. Will use the appropriate
|
||||
* vector based read call (currently readv on Linux).
|
||||
*
|
||||
* This has a limit to the number of buffers that will be read. It
|
||||
* will not make muliple readv calls. This is to ensure that operations
|
||||
* are atomic. Currently it is limited to 16 buffers. This is for
|
||||
* compatibiliy with Sun.
|
||||
*/
|
||||
JNIEXPORT jlong JNICALL
|
||||
Java_gnu_java_nio_VMChannel_writeGathering (JNIEnv *env,
|
||||
jobject o __attribute__ ((__unused__)),
|
||||
jint fd,
|
||||
jobjectArray bbufs,
|
||||
jint offset,
|
||||
jint length)
|
||||
{
|
||||
int i;
|
||||
/* jboolean is_error = JNI_FALSE; */
|
||||
/* char *error_msg; */
|
||||
struct iovec buffers[JCL_IOV_MAX];
|
||||
struct JCL_buffer bi_list[JCL_IOV_MAX];
|
||||
ssize_t result;
|
||||
jint vec_len = length < JCL_IOV_MAX ? length : JCL_IOV_MAX;
|
||||
jlong bytes_written;
|
||||
|
||||
|
||||
/* Build the vector of buffers to read into */
|
||||
for (i = 0; i < vec_len; i++)
|
||||
{
|
||||
struct JCL_buffer* buf;
|
||||
jobject bbuf;
|
||||
|
||||
buf = &bi_list[i];
|
||||
bbuf = (*env)->GetObjectArrayElement(env, bbufs, offset + i);
|
||||
|
||||
JCL_init_buffer(env, buf, bbuf);
|
||||
|
||||
buffers[i].iov_base = &(buf->ptr[buf->position + buf->offset]);
|
||||
buffers[i].iov_len = buf->limit - buf->position;
|
||||
(*env)->DeleteLocalRef(env, bbuf);
|
||||
}
|
||||
|
||||
/* Work the gathering magic */
|
||||
result = writev(fd, buffers, vec_len);
|
||||
bytes_written = (jlong) result;
|
||||
|
||||
if (result < 0)
|
||||
{
|
||||
bytes_written = 0;
|
||||
if (errno == EAGAIN) /* Non blocking */
|
||||
result = 0;
|
||||
else if (errno == EBADF) /* Bad fd */
|
||||
{
|
||||
JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset,
|
||||
bytes_written);
|
||||
JCL_ThrowException (env, NON_WRITABLE_CHANNEL_EXCEPTION,
|
||||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset,
|
||||
bytes_written);
|
||||
JCL_ThrowException (env, IO_EXCEPTION, strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else if (result == 0) /* EOF?? Does this happen on a write */
|
||||
result = -1;
|
||||
|
||||
JCL_cleanup_buffers(env, bi_list, vec_len, bbufs, offset, bytes_written);
|
||||
return (jlong) result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
@@ -60,6 +60,8 @@ Java_java_nio_VMDirectByteBuffer_allocate
|
||||
return 0;
|
||||
}
|
||||
|
||||
memset (buffer, 0, capacity);
|
||||
|
||||
return JCL_NewRawDataObject (env, buffer);
|
||||
}
|
||||
|
||||
|
||||
@@ -110,6 +110,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -130,6 +132,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -160,6 +163,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -210,6 +217,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -230,6 +238,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -113,6 +113,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -133,6 +135,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -163,6 +166,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -213,6 +220,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -233,6 +241,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -113,6 +113,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -133,6 +135,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -163,6 +166,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -213,6 +220,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -233,6 +241,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* dssi_data.h - DSSI data
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
Copyright (C) 2005, 2006 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
||||
@@ -55,11 +55,6 @@ exception statement from your version. */
|
||||
1/40th of a second). */
|
||||
#define EVENT_BUFFER_SIZE 1024
|
||||
|
||||
/* Helper macros for going between pointers and jlongs. */
|
||||
#define JLONG_TO_PTR(T,P) ((T *)(long)P)
|
||||
#define PTR_TO_JLONG(P) ((jlong)(long)P)
|
||||
|
||||
|
||||
/* Every DSSI Synthesizer has one of these associated with it. The
|
||||
Java class sees it as a "long" handle. */
|
||||
|
||||
|
||||
@@ -72,7 +72,6 @@ libqtpeer_la_SOURCES = \
|
||||
qtwindowpeer.cpp \
|
||||
slotcallbacks.cpp \
|
||||
slotcallbacks.h
|
||||
|
||||
libqtpeer_la_LDFLAGS = -avoid-version
|
||||
|
||||
BUILT_SOURCES = $(libqtpeer_la_MOC)
|
||||
|
||||
@@ -136,6 +136,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -156,6 +158,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -186,6 +189,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -236,6 +243,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -256,6 +264,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -112,6 +112,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -132,6 +134,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -162,6 +165,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -212,6 +219,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -232,6 +240,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -110,6 +110,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -130,6 +132,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -160,6 +163,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -210,6 +217,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -230,6 +238,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -84,6 +84,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -104,6 +106,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -134,6 +137,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -184,6 +191,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -204,6 +212,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -93,6 +93,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -113,6 +115,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -143,6 +146,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -193,6 +200,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -213,6 +221,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -84,6 +84,8 @@ CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
|
||||
CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
|
||||
CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
|
||||
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
|
||||
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
|
||||
CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
|
||||
CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
|
||||
@@ -104,6 +106,7 @@ CXXDEPMODE = @CXXDEPMODE@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DATE = @DATE@
|
||||
DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
ECHO_C = @ECHO_C@
|
||||
@@ -134,6 +137,10 @@ FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
|
||||
FREETYPE2_LIBS = @FREETYPE2_LIBS@
|
||||
GCJ = @GCJ@
|
||||
GCJX = @GCJX@
|
||||
GCONF_CFLAGS = @GCONF_CFLAGS@
|
||||
GCONF_LIBS = @GCONF_LIBS@
|
||||
GDK_CFLAGS = @GDK_CFLAGS@
|
||||
GDK_LIBS = @GDK_LIBS@
|
||||
GJDOC = @GJDOC@
|
||||
GLIB_CFLAGS = @GLIB_CFLAGS@
|
||||
GLIB_LIBS = @GLIB_LIBS@
|
||||
@@ -184,6 +191,7 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
|
||||
PANGOFT2_LIBS = @PANGOFT2_LIBS@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PATH_TO_ESCHER = @PATH_TO_ESCHER@
|
||||
PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
|
||||
PERL = @PERL@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
@@ -204,6 +212,8 @@ USER_SPECIFIED_CLASSLIB_FALSE = @USER_SPECIFIED_CLASSLIB_FALSE@
|
||||
USER_SPECIFIED_CLASSLIB_TRUE = @USER_SPECIFIED_CLASSLIB_TRUE@
|
||||
USER_SPECIFIED_JAVAH_FALSE = @USER_SPECIFIED_JAVAH_FALSE@
|
||||
USER_SPECIFIED_JAVAH_TRUE = @USER_SPECIFIED_JAVAH_TRUE@
|
||||
USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
|
||||
USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
|
||||
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
|
||||
VERSION = @VERSION@
|
||||
|
||||
@@ -682,7 +682,8 @@ Systems : all
|
||||
\
|
||||
__value.tv_sec = flag / 1000; \
|
||||
__value.tv_usec = (flag % 1000) * 1000; \
|
||||
result=(setsockopt(socketDescriptor,SOL_SOCKET,SO_TIMEOUT,&__value,sizeof(__value))==0)?TARGET_NATIVE_OK:TARGET_NATIVE_ERROR; \
|
||||
result = ( (setsockopt(socketDescriptor, SOL_SOCKET, SO_SNDTIMEO, &__value, sizeof(__value)) | \
|
||||
setsockopt(socketDescriptor, SOL_SOCKET, SO_RCVTIMEO, &__value, sizeof(__value))) == 0) ? TARGET_NATIVE_OK : TARGET_NATIVE_ERROR; \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user