aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8.1/libjava/classpath/native/jni/gtk-peer')
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/.cvsignore8
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c325
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.am61
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.in743
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/cairographics2d.h116
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h43
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkfont.h105
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c749
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c333
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c291
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c129
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c449
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c370
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c299
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c470
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c440
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c351
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c376
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c58
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c78
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c407
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c237
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c422
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c1260
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c84
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c302
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c234
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c100
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c434
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c221
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c549
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c92
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c55
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c191
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c176
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c112
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c110
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c222
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c296
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c489
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c547
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c388
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c627
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c202
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c2164
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c203
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.c586
-rw-r--r--gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.h360
48 files changed, 0 insertions, 16864 deletions
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/.cvsignore b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/.cvsignore
deleted file mode 100644
index e9f2658a6..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/.cvsignore
+++ /dev/null
@@ -1,8 +0,0 @@
-*.o
-*.a
-*.lo
-*.la
-.libs
-.deps
-Makefile
-Makefile.in
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c
deleted file mode 100644
index b8f1ba5b2..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/GtkDragSourceContextPeer.c
+++ /dev/null
@@ -1,325 +0,0 @@
-/* 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 "gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer.h"
-
-#include <jni.h>
-#include <gtk/gtk.h>
-
-static GtkWidget * get_widget (GtkWidget *widget);
-static void connect_signals_for_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
-
-static jmethodID dragEnterID;
-static jmethodID dragExitID;
-static jmethodID dragDropEndID;
-static jmethodID dragMouseMovedID;
-static jmethodID dragOverID;
-static jmethodID dragActionChangedID;
-static jmethodID acceptDragID;
-static jmethodID rejectDragID;
-static jmethodID acceptDropID;
-static jmethodID rejectDropID;
-static jmethodID dropCompleteID;
-
-GtkWidget *widget;
-GtkWidget *tgt;
-jobject gref;
-jobject javaObj;
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_create
- (JNIEnv *env, jobject obj, jobject comp)
-{
- gdk_threads_enter ();
-
- javaObj = obj;
- gtkpeer_set_global_ref (env, obj);
- gtkpeer_set_global_ref (env, comp);
-
- gref = gtkpeer_get_widget (env, comp);
- widget = get_widget (GTK_WIDGET (gref));
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_nativeSetCursor
- (JNIEnv *env __attribute__((unused)), jobject obj, jint type)
-{
- GdkWindow *win;
- GdkCursorType gdk_cursor_type;
- GdkCursor *gdk_cursor;
-
- gdk_threads_enter ();
-
- javaObj = 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)
-{
- jclass gtkdragsourcecontextpeer;
- jclass gtkdroptargetcontextpeer;
-
- gdk_threads_enter ();
-
- javaObj = obj;
- gref = gtkpeer_get_global_ref (env, comp);
-
- connect_signals_for_widget (widget);
-
- gtkdragsourcecontextpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/dnd/peer/gtk/GtkDragSourceContextPeer");
-
- dragEnterID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdragsourcecontextpeer,
- "dragEnter", "(II)V");
- dragExitID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdragsourcecontextpeer,
- "dragExit", "(III)V");
- dragDropEndID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdragsourcecontextpeer,
- "dragDropEnd", "(IZII)V");
- dragMouseMovedID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdragsourcecontextpeer,
- "dragMouseMoved", "(II)V");
- dragOverID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdragsourcecontextpeer,
- "dragOver", "(II)V");
- dragActionChangedID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdragsourcecontextpeer,
- "dragActionChanged", "(II)V");
-
-
- gtkdroptargetcontextpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/dnd/peer/gtk/GtkDropTargetContextPeer");
-
- acceptDragID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdroptargetcontextpeer,
- "acceptDrag", "(I)V");
- rejectDragID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdroptargetcontextpeer,
- "rejectDrag", "()V");
- acceptDropID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdroptargetcontextpeer,
- "acceptDrop", "(I)V");
- rejectDropID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdroptargetcontextpeer,
- "rejectDrop", "()V");
- dropCompleteID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkdroptargetcontextpeer,
- "dropComplete", "(Z)V");
-
- gdk_threads_leave ();
-}
-
-static void
-connect_signals_for_widget (GtkWidget *w __attribute__((unused)))
-{
- /* FIXME: Not implemented. */
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_dnd_peer_gtk_GtkDragSourceContextPeer_setTarget
- (JNIEnv *env, jobject obj, jobject target)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- javaObj = obj;
- ptr = gtkpeer_get_widget (env, target);
- tgt = get_widget (GTK_WIDGET (ptr));
- connect_signals_for_widget (tgt);
-
- 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)
-{
- const gchar *data;
- GtkTargetEntry tar[1];
- GdkEvent *event;
- GdkPixbuf *image = NULL;
- GdkDragContext *context = NULL;
- GdkDragAction action = GDK_ACTION_DEFAULT;
-
- gdk_threads_enter ();
-
- javaObj = 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_dest_set (widget, GTK_DEST_DEFAULT_ALL, tar,
- sizeof (tar) / sizeof (GtkTargetEntry),
- action);
- 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);
- }
-
- if (tgt != NULL)
- gtk_drag_dest_set (tgt, GTK_DEST_DEFAULT_ALL, tar,
- sizeof (tar) / sizeof (GtkTargetEntry),
- action);
-
- 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;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.am b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.am
deleted file mode 100644
index 6ab32636b..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.am
+++ /dev/null
@@ -1,61 +0,0 @@
-nativeexeclib_LTLIBRARIES = libgtkpeer.la
-
-# GTK JNI sources.
-libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
- gnu_java_awt_peer_gtk_CairoGraphics2D.c \
- gnu_java_awt_peer_gtk_ComponentGraphics.c \
- gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c \
- gnu_java_awt_peer_gtk_FreetypeGlyphVector.c \
- gnu_java_awt_peer_gtk_GdkFontPeer.c \
- gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.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_GtkButtonPeer.c \
- gnu_java_awt_peer_gtk_GtkCanvasPeer.c \
- gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c \
- gnu_java_awt_peer_gtk_GtkCheckboxPeer.c \
- gnu_java_awt_peer_gtk_GtkChoicePeer.c \
- gnu_java_awt_peer_gtk_GtkClipboard.c \
- gnu_java_awt_peer_gtk_GtkComponentPeer.c \
- gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c \
- gnu_java_awt_peer_gtk_GtkFileDialogPeer.c \
- gnu_java_awt_peer_gtk_GtkFramePeer.c \
- gnu_java_awt_peer_gtk_GtkGenericPeer.c \
- gnu_java_awt_peer_gtk_GtkImage.c \
- gnu_java_awt_peer_gtk_GtkLabelPeer.c \
- gnu_java_awt_peer_gtk_GtkListPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuBarPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuItemPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuPeer.c \
- gnu_java_awt_peer_gtk_GtkPanelPeer.c \
- gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c \
- gnu_java_awt_peer_gtk_GtkScrollbarPeer.c \
- gnu_java_awt_peer_gtk_GtkScrollPanePeer.c \
- gnu_java_awt_peer_gtk_GtkSelection.c \
- gnu_java_awt_peer_gtk_GtkTextAreaPeer.c \
- gnu_java_awt_peer_gtk_GtkTextFieldPeer.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 \
- gdkdisplay.h \
- gdkfont.h \
- gtk_jawt.c \
- gtkpeer.c \
- gtkpeer.h
-
-libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
-libgtkpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
-
-AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \
- @PANGOFT2_LIBS@ @X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ @XTEST_LIBS@
-AM_CPPFLAGS = @CLASSPATH_INCLUDES@
-
-# Just the WARNING_CFLAGS. We cannot use the strict flags since the gtk
-# headers contain broken prototypes (by design, see gtkitemfactory.h).
-AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ \
- @GTK_CFLAGS@ @FREETYPE2_CFLAGS@ @PANGOFT2_CFLAGS@ \
- @X_CFLAGS@ @EXTRA_CFLAGS@
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.in b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.in
deleted file mode 100644
index 4ca363c7e..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/Makefile.in
+++ /dev/null
@@ -1,743 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 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@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-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/gtk-peer
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
- $(top_srcdir)/../../config/lead-dot.m4 \
- $(top_srcdir)/../../config/multi.m4 \
- $(top_srcdir)/../../config/no-executables.m4 \
- $(top_srcdir)/../../config/override.m4 \
- $(top_srcdir)/../../libtool.m4 \
- $(top_srcdir)/../../ltoptions.m4 \
- $(top_srcdir)/../../ltsugar.m4 \
- $(top_srcdir)/../../ltversion.m4 \
- $(top_srcdir)/../../lt~obsolete.m4 \
- $(top_srcdir)/m4/ac_prog_antlr.m4 \
- $(top_srcdir)/m4/ac_prog_java.m4 \
- $(top_srcdir)/m4/ac_prog_java_works.m4 \
- $(top_srcdir)/m4/ac_prog_javac.m4 \
- $(top_srcdir)/m4/ac_prog_javac_works.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/ax_func_which_gethostbyname_r.m4 \
- $(top_srcdir)/m4/gcc_attribute.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 =
-CONFIG_CLEAN_VPATH_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 = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
-LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
-libgtkpeer_la_DEPENDENCIES = \
- $(top_builddir)/native/jni/classpath/jcl.lo
-am_libgtkpeer_la_OBJECTS = gnu_java_awt_peer_gtk_CairoSurface.lo \
- gnu_java_awt_peer_gtk_CairoGraphics2D.lo \
- gnu_java_awt_peer_gtk_ComponentGraphics.lo \
- gnu_java_awt_peer_gtk_ComponentGraphicsCopy.lo \
- gnu_java_awt_peer_gtk_FreetypeGlyphVector.lo \
- gnu_java_awt_peer_gtk_GdkFontPeer.lo \
- gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.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_GtkButtonPeer.lo \
- gnu_java_awt_peer_gtk_GtkCanvasPeer.lo \
- gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.lo \
- gnu_java_awt_peer_gtk_GtkCheckboxPeer.lo \
- gnu_java_awt_peer_gtk_GtkChoicePeer.lo \
- gnu_java_awt_peer_gtk_GtkClipboard.lo \
- gnu_java_awt_peer_gtk_GtkComponentPeer.lo \
- gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.lo \
- gnu_java_awt_peer_gtk_GtkFileDialogPeer.lo \
- gnu_java_awt_peer_gtk_GtkFramePeer.lo \
- gnu_java_awt_peer_gtk_GtkGenericPeer.lo \
- gnu_java_awt_peer_gtk_GtkImage.lo \
- gnu_java_awt_peer_gtk_GtkLabelPeer.lo \
- gnu_java_awt_peer_gtk_GtkListPeer.lo \
- gnu_java_awt_peer_gtk_GtkMenuBarPeer.lo \
- gnu_java_awt_peer_gtk_GtkMenuComponentPeer.lo \
- gnu_java_awt_peer_gtk_GtkMenuItemPeer.lo \
- gnu_java_awt_peer_gtk_GtkMenuPeer.lo \
- gnu_java_awt_peer_gtk_GtkPanelPeer.lo \
- gnu_java_awt_peer_gtk_GtkPopupMenuPeer.lo \
- gnu_java_awt_peer_gtk_GtkScrollbarPeer.lo \
- gnu_java_awt_peer_gtk_GtkScrollPanePeer.lo \
- gnu_java_awt_peer_gtk_GtkSelection.lo \
- gnu_java_awt_peer_gtk_GtkTextAreaPeer.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 \
- GtkDragSourceContextPeer.lo gtk_jawt.lo gtkpeer.lo
-libgtkpeer_la_OBJECTS = $(am_libgtkpeer_la_OBJECTS)
-libgtkpeer_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(libgtkpeer_la_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/include
-depcomp = $(SHELL) $(top_srcdir)/../../depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libgtkpeer_la_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-ANTLR = @ANTLR@
-ANTLR_JAR = @ANTLR_JAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CAIRO_CFLAGS = @CAIRO_CFLAGS@
-CAIRO_LIBS = @CAIRO_LIBS@
-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@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DATE = @DATE@
-DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-ECJ_JAR = @ECJ_JAR@
-EGREP = @EGREP@
-ERROR_CFLAGS = @ERROR_CFLAGS@
-EXAMPLESDIR = @EXAMPLESDIR@
-EXEEXT = @EXEEXT@
-EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FGREP = @FGREP@
-FIND = @FIND@
-FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
-FREETYPE2_LIBS = @FREETYPE2_LIBS@
-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@
-GMP_CFLAGS = @GMP_CFLAGS@
-GMP_LIBS = @GMP_LIBS@
-GREP = @GREP@
-GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
-GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
-GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
-GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
-GSTREAMER_LIBS = @GSTREAMER_LIBS@
-GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
-GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
-GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
-GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
-GTK_CFLAGS = @GTK_CFLAGS@
-GTK_LIBS = @GTK_LIBS@
-INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-JAR = @JAR@
-JAVA = @JAVA@
-JAVAC = @JAVAC@
-JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
-JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
-JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
-JAY = @JAY@
-JAY_SKELETON = @JAY_SKELETON@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBDEBUG = @LIBDEBUG@
-LIBICONV = @LIBICONV@
-LIBMAGIC = @LIBMAGIC@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIBVERSION = @LIBVERSION@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBICONV = @LTLIBICONV@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR = @MKDIR@
-MKDIR_P = @MKDIR_P@
-MOC = @MOC@
-MOC4 = @MOC4@
-MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
-MOZILLA_LIBS = @MOZILLA_LIBS@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-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@
-REMOVE = @REMOVE@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
-STRIP = @STRIP@
-TOOLSDIR = @TOOLSDIR@
-USER_JAVAH = @USER_JAVAH@
-VERSION = @VERSION@
-WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
-WARNING_CFLAGS = @WARNING_CFLAGS@
-XMKMF = @XMKMF@
-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@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_ANTLR = @ac_ct_ANTLR@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-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@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-default_toolkit = @default_toolkit@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-glibjdir = @glibjdir@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-multi_basedir = @multi_basedir@
-nativeexeclibdir = @nativeexeclibdir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-toolexeclibdir = @toolexeclibdir@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-uudecode = @uudecode@
-vm_classes = @vm_classes@
-nativeexeclib_LTLIBRARIES = libgtkpeer.la
-
-# GTK JNI sources.
-libgtkpeer_la_SOURCES = gnu_java_awt_peer_gtk_CairoSurface.c \
- gnu_java_awt_peer_gtk_CairoGraphics2D.c \
- gnu_java_awt_peer_gtk_ComponentGraphics.c \
- gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c \
- gnu_java_awt_peer_gtk_FreetypeGlyphVector.c \
- gnu_java_awt_peer_gtk_GdkFontPeer.c \
- gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.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_GtkButtonPeer.c \
- gnu_java_awt_peer_gtk_GtkCanvasPeer.c \
- gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c \
- gnu_java_awt_peer_gtk_GtkCheckboxPeer.c \
- gnu_java_awt_peer_gtk_GtkChoicePeer.c \
- gnu_java_awt_peer_gtk_GtkClipboard.c \
- gnu_java_awt_peer_gtk_GtkComponentPeer.c \
- gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c \
- gnu_java_awt_peer_gtk_GtkFileDialogPeer.c \
- gnu_java_awt_peer_gtk_GtkFramePeer.c \
- gnu_java_awt_peer_gtk_GtkGenericPeer.c \
- gnu_java_awt_peer_gtk_GtkImage.c \
- gnu_java_awt_peer_gtk_GtkLabelPeer.c \
- gnu_java_awt_peer_gtk_GtkListPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuBarPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuItemPeer.c \
- gnu_java_awt_peer_gtk_GtkMenuPeer.c \
- gnu_java_awt_peer_gtk_GtkPanelPeer.c \
- gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c \
- gnu_java_awt_peer_gtk_GtkScrollbarPeer.c \
- gnu_java_awt_peer_gtk_GtkScrollPanePeer.c \
- gnu_java_awt_peer_gtk_GtkSelection.c \
- gnu_java_awt_peer_gtk_GtkTextAreaPeer.c \
- gnu_java_awt_peer_gtk_GtkTextFieldPeer.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 \
- gdkdisplay.h \
- gdkfont.h \
- gtk_jawt.c \
- gtkpeer.c \
- gtkpeer.h
-
-libgtkpeer_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
-libgtkpeer_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
-AM_LDFLAGS = @CLASSPATH_MODULE@ @GTK_LIBS@ @FREETYPE2_LIBS@ \
- @PANGOFT2_LIBS@ @X_PRE_LIBS@ @X_LIBS@ @X_EXTRA_LIBS@ @XTEST_LIBS@
-
-AM_CPPFLAGS = @CLASSPATH_INCLUDES@
-
-# Just the WARNING_CFLAGS. We cannot use the strict flags since the gtk
-# headers contain broken prototypes (by design, see gtkitemfactory.h).
-AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ \
- @GTK_CFLAGS@ @FREETYPE2_CFLAGS@ @PANGOFT2_CFLAGS@ \
- @X_CFLAGS@ @EXTRA_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 ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/jni/gtk-peer/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --gnu native/jni/gtk-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
-$(am__aclocal_m4_deps):
-install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(nativeexeclibdir)" || $(MKDIR_P) "$(DESTDIR)$(nativeexeclibdir)"
- @list='$(nativeexeclib_LTLIBRARIES)'; test -n "$(nativeexeclibdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(nativeexeclibdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(nativeexeclibdir)"; \
- }
-
-uninstall-nativeexeclibLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(nativeexeclib_LTLIBRARIES)'; test -n "$(nativeexeclibdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$f"; \
- 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
-libgtkpeer.la: $(libgtkpeer_la_OBJECTS) $(libgtkpeer_la_DEPENDENCIES)
- $(libgtkpeer_la_LINK) -rpath $(nativeexeclibdir) $(libgtkpeer_la_OBJECTS) $(libgtkpeer_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-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@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_FreetypeGlyphVector.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GdkFontPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.Plo@am__quote@
-@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_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_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@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkClipboard.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkComponentPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkFileDialogPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkFramePeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkGenericPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkImage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkLabelPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkListPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkMenuBarPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkMenuItemPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkMenuPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkPanelPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkScrollPanePeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkScrollbarPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkSelection.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkTextAreaPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkTextFieldPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkToolkit.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkVolatileImage.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_awt_peer_gtk_GtkWindowPeer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtk_jawt.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkpeer.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@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@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@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@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@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
-
-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; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- 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; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- 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; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-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)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_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-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-nativeexeclibLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-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-nativeexeclibLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.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 dvi dvi-am html html-am info info-am install \
- install-am install-data install-data-am install-dvi \
- install-dvi-am install-exec install-exec-am install-html \
- install-html-am install-info install-info-am install-man \
- install-nativeexeclibLTLIBRARIES install-pdf install-pdf-am \
- install-ps install-ps-am 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-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:
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/cairographics2d.h b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/cairographics2d.h
deleted file mode 100644
index d5611bff6..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/cairographics2d.h
+++ /dev/null
@@ -1,116 +0,0 @@
-/* cairographics2d.h --
- 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. */
-
-#ifndef CAIROGRAPHICS2D_H
-#define CAIROGRAPHICS2D_H
-
-
-#include <cairo.h>
-#include <gtk/gtk.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <config.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include <jni.h>
-
-/*
- * These public final constants are part of the java2d public API, so we
- * write them explicitly here to save fetching them from the constant pool
- * all the time.
- */
-enum java_awt_alpha_composite_rule
- {
- java_awt_alpha_composite_CLEAR = 1,
- java_awt_alpha_composite_SRC = 2,
- java_awt_alpha_composite_SRC_OVER = 3,
- java_awt_alpha_composite_DST_OVER = 4,
- java_awt_alpha_composite_SRC_IN = 5,
- java_awt_alpha_composite_DST_IN = 6,
- java_awt_alpha_composite_SRC_OUT = 7,
- java_awt_alpha_composite_DST_OUT = 8,
- java_awt_alpha_composite_DST = 9,
- java_awt_alpha_composite_SRC_ATOP = 10,
- java_awt_alpha_composite_DST_ATOP = 11,
- java_awt_alpha_composite_XOR = 12
- };
-
-enum java_awt_basic_stroke_join_rule
- {
- java_awt_basic_stroke_JOIN_MITER = 0,
- java_awt_basic_stroke_JOIN_ROUND = 1,
- java_awt_basic_stroke_JOIN_BEVEL = 2
- };
-
-enum java_awt_basic_stroke_cap_rule
- {
- java_awt_basic_stroke_CAP_BUTT = 0,
- java_awt_basic_stroke_CAP_ROUND = 1,
- java_awt_basic_stroke_CAP_SQUARE = 2
- };
-
-enum java_awt_geom_path_iterator_winding_rule
- {
- java_awt_geom_path_iterator_WIND_EVEN_ODD = 0,
- java_awt_geom_path_iterator_WIND_NON_ZERO = 1
- };
-
-enum java_awt_rendering_hints_filter
- {
- java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR = 0,
- java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR = 1,
- java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED = 2,
- java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY = 3,
- java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT = 4,
- java_awt_rendering_hints_VALUE_INTERPOLATION_BICUBIC = 5
-
- };
-
-/**
- * A structure which basically contains the cairo_t pointer.
- * The rest is for gradient and texture fills.
- */
-struct cairographics2d
-{
- cairo_t *cr;
- cairo_surface_t *pattern_surface;
- cairo_pattern_t *pattern;
- char *pattern_pixels;
-};
-
-#endif
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h
deleted file mode 100644
index e15f08e69..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkdisplay.h
+++ /dev/null
@@ -1,43 +0,0 @@
-#ifndef __GDKDISPLAY_H__
-#define __GDKDISPLAY_H__
-
-/* gdkdisplay.h -- Some global stuff related to displays & screens
- 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"
-
-#endif /* __GDKDISPLAY_H__ */
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkfont.h b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkfont.h
deleted file mode 100644
index 241a05f7d..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gdkfont.h
+++ /dev/null
@@ -1,105 +0,0 @@
-#ifndef __GDKFONT_H__
-#define __GDKFONT_H__
-
-/* gdkfont.h -- Some global stuff related to fonts and glyphs
- Copyright (C) 2003 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"
-
-#define PANGO_ENABLE_ENGINE
-#include <pango/pango.h>
-#include <pango/pango-context.h>
-#include <pango/pango-fontmap.h>
-#include <pango/pangoft2.h>
-
-#define FONT_METRICS_ASCENT 0
-#define FONT_METRICS_MAX_ASCENT 1
-#define FONT_METRICS_DESCENT 2
-#define FONT_METRICS_MAX_DESCENT 3
-#define FONT_METRICS_MAX_ADVANCE 4
-#define FONT_METRICS_HEIGHT 5
-#define FONT_METRICS_UNDERLINE_OFFSET 6
-#define FONT_METRICS_UNDERLINE_THICKNESS 7
-#define NUM_FONT_METRICS 8
-
-#define TEXT_METRICS_X_BEARING 0
-#define TEXT_METRICS_Y_BEARING 1
-#define TEXT_METRICS_WIDTH 2
-#define TEXT_METRICS_HEIGHT 3
-#define TEXT_METRICS_X_ADVANCE 4
-#define TEXT_METRICS_Y_ADVANCE 5
-#define NUM_TEXT_METRICS 6
-
-#define NUM_GLYPH_METRICS 10
-
-#define GLYPH_LOG_X(i) (NUM_GLYPH_METRICS * (i) )
-#define GLYPH_LOG_Y(i) (NUM_GLYPH_METRICS * (i) + 1)
-#define GLYPH_LOG_WIDTH(i) (NUM_GLYPH_METRICS * (i) + 2)
-#define GLYPH_LOG_HEIGHT(i) (NUM_GLYPH_METRICS * (i) + 3)
-
-#define GLYPH_INK_X(i) (NUM_GLYPH_METRICS * (i) + 4)
-#define GLYPH_INK_Y(i) (NUM_GLYPH_METRICS * (i) + 5)
-#define GLYPH_INK_WIDTH(i) (NUM_GLYPH_METRICS * (i) + 6)
-#define GLYPH_INK_HEIGHT(i) (NUM_GLYPH_METRICS * (i) + 7)
-
-#define GLYPH_POS_X(i) (NUM_GLYPH_METRICS * (i) + 8)
-#define GLYPH_POS_Y(i) (NUM_GLYPH_METRICS * (i) + 9)
-
-struct peerfont
-{
- PangoFont *font;
- PangoFontset *set;
- PangoFontDescription *desc;
- PangoContext *ctx;
- PangoLayout *layout;
- /*
- * The GdkGraphics2D (using cairo) may store a pointer to a
- * cairo_font_t here; since we want to work equally well with
- * the GdkGraphics class (using GDK) we do not explicitly mention
- * cairo types here; it is up to the higher level driver routine
- * in GdkClasspathFontPeer.java to decide which backend functions
- * to invoke.
- */
- void *graphics_resource;
-};
-
-struct textlayout
-{
- PangoLayout *pango_layout;
-};
-
-#endif /* __GDKFONT_H__ */
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
deleted file mode 100644
index 58f003e86..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoGraphics2D.c
+++ /dev/null
@@ -1,749 +0,0 @@
-/* gnu_java_awt_peer_gtk_CairoGraphics2d.c
- Copyright (C) 2006, 2008 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 "jcl.h"
-#include "gdkfont.h"
-#include "cairographics2d.h"
-#include "gnu_java_awt_peer_gtk_CairoGraphics2D.h"
-#include <gdk/gdktypes.h>
-#include <gdk/gdkprivate.h>
-
-#include <cairo-ft.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-static void update_pattern_transform (struct cairographics2d *gr);
-
-/**
- * Allocates the cairographics2d structure.
- */
-JNIEXPORT jlong JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_init
- (JNIEnv *env __attribute__ ((unused)),
- jobject obj __attribute__ ((unused)),
- jlong cairo_t_pointer)
-{
- struct cairographics2d *g = NULL;
- cairo_t *cr = JLONG_TO_PTR(cairo_t, cairo_t_pointer);
- g_assert(cr != NULL);
-
- g = (struct cairographics2d *) g_malloc (sizeof (struct cairographics2d));
-
- g_assert (g != NULL);
- memset (g, 0, sizeof(struct cairographics2d));
- g->cr = cr;
-
- return PTR_TO_JLONG(g);
-}
-
-/**
- * Disposes of the cairographics2d structure.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_disposeNative
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
-
- if (gr == NULL)
- return;
-
- if (gr->cr)
- {
- gdk_threads_enter();
- cairo_destroy (gr->cr);
- gdk_threads_leave();
- }
-
- if (gr->pattern)
- cairo_pattern_destroy (gr->pattern);
- gr->pattern = NULL;
-
- if (gr->pattern_surface)
- cairo_surface_destroy (gr->pattern_surface);
- gr->pattern_surface = NULL;
-
- if (gr->pattern_pixels)
- g_free(gr->pattern_pixels);
- gr->pattern_pixels = NULL;
-
- g_free( gr );
-}
-
-/**
- * Set the gradient.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setGradient
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer,
- jdouble x1, jdouble y1,
- jdouble x2, jdouble y2,
- jint r1, jint g1, jint b1, jint a1,
- jint r2, jint g2, jint b2, jint a2,
- jboolean cyclic)
-{
- struct cairographics2d *gr = NULL;
- cairo_pattern_t* pattern;
- cairo_extend_t extend;
-
- gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert( gr != NULL );
-
- pattern = cairo_pattern_create_linear(x1, y1, x2, y2);
- g_assert( pattern != NULL );
-
- cairo_pattern_add_color_stop_rgba(pattern, 0.0, r1 / 255.0, g1 / 255.0,
- b1 / 255.0, a1 / 255.0);
-
- cairo_pattern_add_color_stop_rgba(pattern, 1.0, r2 / 255.0, g2 / 255.0,
- b2 / 255.0, a2 / 255.0);
-
- #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 2, 0)
- extend = (cyclic == JNI_TRUE) ? CAIRO_EXTEND_REFLECT : CAIRO_EXTEND_PAD;
- #else
- extend = (cyclic == JNI_TRUE) ? CAIRO_EXTEND_REFLECT : CAIRO_EXTEND_NONE;
- #endif
-
- cairo_pattern_set_extend( pattern, extend );
-
- gr->pattern = pattern;
- cairo_set_source(gr->cr, gr->pattern);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_setPaintPixels
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jintArray jarr, jint w, jint h, jint stride, jboolean repeat,
- jint x, jint y)
-{
- struct cairographics2d *gr = NULL;
- jint *jpixels = NULL;
-
- gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- if (gr->pattern)
- cairo_pattern_destroy (gr->pattern);
-
- if (gr->pattern_surface)
- cairo_surface_destroy (gr->pattern_surface);
-
- if (gr->pattern_pixels)
- g_free (gr->pattern_pixels);
-
- gr->pattern = NULL;
- gr->pattern_surface = NULL;
- gr->pattern_pixels = NULL;
-
- gr->pattern_pixels = (char *) g_malloc (h * stride * 4);
- g_assert (gr->pattern_pixels != NULL);
-
- jpixels = (*env)->GetIntArrayElements (env, jarr, NULL);
- g_assert (jpixels != NULL);
- memcpy (gr->pattern_pixels, jpixels, h * stride * 4);
- (*env)->ReleaseIntArrayElements (env, jarr, jpixels, 0);
-
- gr->pattern_surface = cairo_image_surface_create_for_data ((unsigned char *)gr->pattern_pixels,
- CAIRO_FORMAT_ARGB32,
- w, h, stride * 4);
- g_assert (gr->pattern_surface != NULL);
- gr->pattern = cairo_pattern_create_for_surface (gr->pattern_surface);
- g_assert (gr->pattern != NULL);
-
- cairo_set_source_surface(gr->cr, gr->pattern_surface, x, y);
-
- if (repeat)
- cairo_pattern_set_extend(cairo_get_source(gr->cr), CAIRO_EXTEND_REPEAT);
- else
- cairo_pattern_set_extend(cairo_get_source(gr->cr), CAIRO_EXTEND_NONE);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_drawPixels
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jintArray java_pixels,
- jint w, jint h, jint stride, jdoubleArray java_matrix, jdouble alpha,
- jint interpolation)
-{
- jint *native_pixels = NULL;
- jdouble *native_matrix = NULL;
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- native_pixels = (*env)->GetIntArrayElements (env, java_pixels, NULL);
- native_matrix = (*env)->GetDoubleArrayElements (env, java_matrix, NULL);
- g_assert (native_pixels != NULL);
- g_assert (native_matrix != NULL);
- g_assert ((*env)->GetArrayLength (env, java_matrix) == 6);
-
- {
- cairo_matrix_t mat;
- cairo_pattern_t *p;
- cairo_surface_t *surf = cairo_image_surface_create_for_data ((unsigned char *)native_pixels,
- CAIRO_FORMAT_ARGB32,
- w, h, stride * 4);
- cairo_matrix_init_identity (&mat);
- cairo_matrix_init (&mat,
- native_matrix[0], native_matrix[1],
- native_matrix[2], native_matrix[3],
- native_matrix[4], native_matrix[5]);
-
- p = cairo_pattern_create_for_surface (surf);
- cairo_pattern_set_matrix (p, &mat);
- switch ((enum java_awt_rendering_hints_filter) interpolation)
- {
- case java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR:
- cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST);
- break;
- case java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR:
- cairo_pattern_set_filter (p, CAIRO_FILTER_BILINEAR);
- break;
- case java_awt_rendering_hints_VALUE_INTERPOLATION_BICUBIC:
- cairo_pattern_set_filter (p, CAIRO_FILTER_GAUSSIAN);
- break;
- case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED:
- cairo_pattern_set_filter (p, CAIRO_FILTER_FAST);
- break;
- case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT:
- cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST);
- break;
- case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY:
- cairo_pattern_set_filter (p, CAIRO_FILTER_BEST);
- break;
- }
-
- cairo_set_source (gr->cr, p);
- if (alpha == 1.)
- cairo_paint (gr->cr);
- else
- cairo_paint_with_alpha(gr->cr, alpha);
-
- cairo_pattern_destroy (p);
- cairo_surface_destroy (surf);
- }
-
- (*env)->ReleaseIntArrayElements (env, java_pixels, native_pixels, 0);
- (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0);
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetMatrix
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdoubleArray java_matrix)
-{
- jdouble *native_matrix = NULL;
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- native_matrix = (*env)->GetDoubleArrayElements (env, java_matrix, NULL);
- g_assert (native_matrix != NULL);
- g_assert ((*env)->GetArrayLength (env, java_matrix) == 6);
-
- {
- cairo_matrix_t mat;
-
- cairo_matrix_init_identity (&mat);
- cairo_matrix_init (&mat,
- native_matrix[0], native_matrix[1],
- native_matrix[2], native_matrix[3],
- native_matrix[4], native_matrix[5]);
- g_assert (gr != NULL);
- cairo_set_matrix (gr->cr, &mat);
- }
-
- (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0);
- 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 __attribute__((unused)), jlong pointer,
- jobject font,
- jfloat x, jfloat y, jint n,
- jintArray java_codes,
- jfloatArray java_positions, jlongArray java_fontset)
-{
- struct cairographics2d *gr = NULL;
- struct peerfont *pfont = NULL;
- cairo_glyph_t *glyphs = NULL;
- int *native_codes;
- float *native_positions;
- jint i = 0;
-
- g_assert (java_codes != NULL);
- g_assert (java_positions != NULL);
-
- gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- pfont = (struct peerfont *) gtkpeer_get_font(env, font);
- g_assert (pfont != NULL);
-
- glyphs = g_malloc( sizeof(cairo_glyph_t) * n);
- g_assert (glyphs != NULL);
-
- native_codes = (*env)->GetIntArrayElements (env, java_codes, NULL);
- native_positions = (*env)->GetFloatArrayElements (env, java_positions, NULL);
-
- /* Set up glyphs and layout */
- for (i = 0; i < n; ++i)
- {
- glyphs[i].index = native_codes[i];
- glyphs[i].x = x + native_positions[ 2*i ];
- glyphs[i].y = y + native_positions[ 2*i + 1];
- }
-
- (*env)->ReleaseFloatArrayElements (env, java_positions, native_positions, 0);
- (*env)->ReleaseIntArrayElements (env, java_codes, native_codes, 0);
-
- /* Iterate through glyphs and draw */
- jlong* fonts = (*env)->GetLongArrayElements (env, java_fontset, NULL);
- gdk_threads_enter();
- for (i = 0; i < n; i++)
- {
- PangoFcFont *font = JLONG_TO_PTR(PangoFcFont, fonts[i]);
-
- /* Draw as many glyphs as possible with the current font */
- int length = 0;
- while (i < n-1 && fonts[i] == fonts[i+1])
- {
- length++;
- i++;
- }
-
- FT_Face face = pango_fc_font_lock_face( font );
- cairo_font_face_t *ft = cairo_ft_font_face_create_for_ft_face (face, 0);
- g_assert (ft != NULL);
-
- cairo_set_font_face (gr->cr, ft);
- cairo_show_glyphs (gr->cr, &glyphs[i-length], length+1);
-
- cairo_font_face_destroy (ft);
- pango_fc_font_unlock_face(font);
- }
- gdk_threads_leave();
-
- (*env)->ReleaseLongArrayElements (env, java_fontset, fonts, 0);
- g_free(glyphs);
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFont
-(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
- jlong pointer, jobject font)
-{
- struct cairographics2d *gr = NULL;
- struct peerfont *pfont = NULL;
- FT_Face face = NULL;
- cairo_font_face_t *ft = NULL;
-
- gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- pfont = (struct peerfont *) gtkpeer_get_font(env, font);
- g_assert (pfont != NULL);
-
- gdk_threads_enter();
- 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 (gr->cr, ft);
- cairo_set_font_size (gr->cr,
- (pango_font_description_get_size (pfont->desc) /
- (double)PANGO_SCALE));
-
- cairo_font_face_destroy (ft);
- pango_fc_font_unlock_face((PangoFcFont *)pfont->font);
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetOperator
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jint op)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- switch ((enum java_awt_alpha_composite_rule) op)
- {
- case java_awt_alpha_composite_CLEAR:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_CLEAR);
- break;
-
- case java_awt_alpha_composite_SRC:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_SOURCE);
- break;
-
- case java_awt_alpha_composite_SRC_OVER:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_OVER);
- break;
-
- case java_awt_alpha_composite_DST_OVER:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_DEST_OVER);
- break;
-
- case java_awt_alpha_composite_SRC_IN:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_IN);
- break;
-
- case java_awt_alpha_composite_DST_IN:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_DEST_IN);
- break;
-
- case java_awt_alpha_composite_SRC_OUT:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_OUT);
- break;
-
- case java_awt_alpha_composite_DST_OUT:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_DEST_OUT);
- break;
-
- case java_awt_alpha_composite_DST:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_DEST);
- break;
-
- case java_awt_alpha_composite_SRC_ATOP:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_ATOP);
- break;
-
- case java_awt_alpha_composite_DST_ATOP:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_DEST_ATOP);
- break;
-
- case java_awt_alpha_composite_XOR:
- cairo_set_operator (gr->cr, CAIRO_OPERATOR_XOR);
- break;
- }
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetRGBAColor
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdouble r, jdouble g, jdouble b, jdouble a)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- cairo_set_source_rgba (gr->cr, r, g, b, a);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetFillRule
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jint rule)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- switch ((enum java_awt_geom_path_iterator_winding_rule) rule)
- {
- case java_awt_geom_path_iterator_WIND_NON_ZERO:
- cairo_set_fill_rule (gr->cr, CAIRO_FILL_RULE_WINDING);
- break;
- case java_awt_geom_path_iterator_WIND_EVEN_ODD:
- cairo_set_fill_rule (gr->cr, CAIRO_FILL_RULE_EVEN_ODD);
- break;
- }
-}
-
-/**
- * Set the line style, except for dashes.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetLine
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdouble width, jint cap, jint join, jdouble miterLimit)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- /* set width */
- cairo_set_line_width (gr->cr, width);
-
- /* set cap */
- switch ((enum java_awt_basic_stroke_cap_rule) cap)
- {
- case java_awt_basic_stroke_CAP_BUTT:
- cairo_set_line_cap (gr->cr, CAIRO_LINE_CAP_BUTT);
- break;
-
- case java_awt_basic_stroke_CAP_ROUND:
- cairo_set_line_cap (gr->cr, CAIRO_LINE_CAP_ROUND);
- break;
-
- case java_awt_basic_stroke_CAP_SQUARE:
- cairo_set_line_cap (gr->cr, CAIRO_LINE_CAP_SQUARE);
- break;
- }
-
- /* set join */
- switch ((enum java_awt_basic_stroke_join_rule) join)
- {
- case java_awt_basic_stroke_JOIN_MITER:
- cairo_set_line_join (gr->cr, CAIRO_LINE_JOIN_MITER);
- break;
-
- case java_awt_basic_stroke_JOIN_ROUND:
- cairo_set_line_join (gr->cr, CAIRO_LINE_JOIN_ROUND);
- break;
-
- case java_awt_basic_stroke_JOIN_BEVEL:
- cairo_set_line_join (gr->cr, CAIRO_LINE_JOIN_BEVEL);
- break;
- }
-
- /* set miter */
- cairo_set_miter_limit (gr->cr, miterLimit);
-}
-
-/**
- * Set the line dashes
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetDash
-(JNIEnv *env, jobject obj __attribute__((unused)),
- jlong pointer, jdoubleArray dashes, jint ndash, jdouble offset)
-{
- jdouble *dasharr = NULL;
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- dasharr = (*env)->GetDoubleArrayElements (env, dashes, NULL);
- g_assert (dasharr != NULL);
-
- cairo_set_dash (gr->cr, dasharr, ndash, offset);
-
- (*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)),
- jlong pointer)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- cairo_new_path (gr->cr);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoMoveTo
-(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_move_to (gr->cr, x, y);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoLineTo
-(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_line_to (gr->cr, x, y);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoCurveTo
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdouble x1, jdouble y1,
- jdouble x2, jdouble y2, jdouble x3, jdouble y3)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
- cairo_curve_to (gr->cr, x1, y1, x2, y2, x3, y3);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoRectangle
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdouble x, jdouble y, jdouble width, jdouble height)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
-
- 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)),
- jlong pointer)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- cairo_close_path (gr->cr);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoStroke
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- cairo_stroke (gr->cr);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoFill
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jdouble alpha)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- if (alpha == 1.0)
- cairo_fill (gr->cr);
- else
- {
- cairo_save(gr->cr);
- cairo_clip(gr->cr);
- cairo_paint_with_alpha(gr->cr, alpha);
- cairo_restore(gr->cr);
- }
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoClip
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert( gr != NULL );
-
- cairo_clip( gr->cr );
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoResetClip
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- cairo_reset_clip( gr->cr );
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoSetAntialias
-(JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
- jlong pointer, jboolean aa)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, pointer);
- g_assert (gr != NULL);
-
- if (aa)
- cairo_set_antialias(gr->cr, CAIRO_ANTIALIAS_GRAY);
- else
- cairo_set_antialias(gr->cr, CAIRO_ANTIALIAS_NONE);
-}
-
-static void
-update_pattern_transform (struct cairographics2d *gr)
-{
- cairo_matrix_t mat;
-
- g_assert (gr != NULL);
- if (gr->pattern == NULL)
- return;
-
- cairo_get_matrix (gr->cr, &mat);
- cairo_pattern_set_matrix (gr->pattern, &mat);
-}
-
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
deleted file mode 100644
index 23340fb5b..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_CairoSurface.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/* gnu_java_awt_peer_gtk_CairoSurface.c
- 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 "jcl.h"
-#include "gtkpeer.h"
-
-#include "gnu_java_awt_peer_gtk_CairoSurface.h"
-#include "cairographics2d.h"
-
-/**
- * Field names in CairoSurface.java
- */
-#define SURFACE "surfacePointer"
-#define SHARED "sharedBuffer"
-
-/* prototypes */
-static void setNativeObject( JNIEnv *env, jobject obj, void *ptr, const char *pointer );
-
-/**
- * Creates a cairo surface, ARGB32, native ordering, premultiplied alpha.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_create
-(JNIEnv *env, jobject obj, jint width, jint height, jint stride,
- jintArray buf )
-{
- cairo_surface_t* surface;
- jboolean isCopy;
-
- /* Retrieve java-created data array */
- void *data = (*env)->GetIntArrayElements (env, buf, &isCopy);
-
- /* Set sharedBuffer variable */
- jclass cls = (*env)->GetObjectClass (env, obj);
- jfieldID field = (*env)->GetFieldID (env, cls, SHARED, "Z");
- g_assert (field != 0);
-
- if (isCopy == JNI_TRUE)
- {
- (*env)->SetBooleanField (env, obj, field, JNI_FALSE);
- void* temp = g_malloc(stride * height * 4);
- memcpy(temp, data, stride * height * 4);
- (*env)->ReleaseIntArrayElements (env, buf, data, 0);
- data = temp;
- }
- else
- (*env)->SetBooleanField (env, obj, field, JNI_TRUE);
-
- /* Create the cairo surface and set the java pointer */
- surface = cairo_image_surface_create_for_data
- (data, CAIRO_FORMAT_ARGB32, width, height, stride * 4);
-
- setNativeObject(env, obj, surface, SURFACE);
-}
-
-/**
- * Destroy the surface
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_destroy
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong surfacePointer, jintArray buf)
-{
- cairo_surface_t* surface = JLONG_TO_PTR(void, surfacePointer);
- void *data = cairo_image_surface_get_data(surface);
- if( surface != NULL )
- {
- /* Release or free the data buffer as appropriate */
- jclass cls = (*env)->GetObjectClass (env, obj);
- jfieldID field = (*env)->GetFieldID (env, cls, SHARED, "Z");
- g_assert (field != 0);
- jboolean sharedBuffer = (*env)->GetBooleanField (env, obj, field);
-
- if (sharedBuffer == JNI_TRUE)
- (*env)->ReleaseIntArrayElements (env, buf, data, 0);
- else
- g_free(data);
-
- /* Destroy the cairo surface itself */
- cairo_surface_destroy(surface);
- }
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_nativeDrawSurface
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong surfacePointer, jlong context, jdoubleArray java_matrix, double alpha,
- jint interpolation)
-{
- struct cairographics2d *gr = JLONG_TO_PTR(struct cairographics2d, context);
- cairo_t *cr = gr->cr;
- jdouble *native_matrix = NULL;
- cairo_surface_t* surface = JLONG_TO_PTR(void, surfacePointer);
- g_assert(surface != NULL);
- g_assert(cr != NULL);
-
- native_matrix = (*env)->GetDoubleArrayElements (env, java_matrix, NULL);
- g_assert (native_matrix != NULL);
- g_assert ((*env)->GetArrayLength (env, java_matrix) == 6);
-
- {
- cairo_matrix_t mat;
- cairo_pattern_t *p;
- cairo_matrix_init_identity (&mat);
- cairo_matrix_init (&mat,
- native_matrix[0], native_matrix[1],
- native_matrix[2], native_matrix[3],
- native_matrix[4], native_matrix[5]);
-
- p = cairo_pattern_create_for_surface (surface);
- cairo_pattern_set_matrix (p, &mat);
- switch ((enum java_awt_rendering_hints_filter) interpolation)
- {
- case java_awt_rendering_hints_VALUE_INTERPOLATION_NEAREST_NEIGHBOR:
- cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST);
- break;
- case java_awt_rendering_hints_VALUE_INTERPOLATION_BILINEAR:
- cairo_pattern_set_filter (p, CAIRO_FILTER_BILINEAR);
- break;
- case java_awt_rendering_hints_VALUE_INTERPOLATION_BICUBIC:
- cairo_pattern_set_filter (p, CAIRO_FILTER_GAUSSIAN);
- break;
- case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_SPEED:
- cairo_pattern_set_filter (p, CAIRO_FILTER_FAST);
- break;
- case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_DEFAULT:
- cairo_pattern_set_filter (p, CAIRO_FILTER_NEAREST);
- break;
- case java_awt_rendering_hints_VALUE_ALPHA_INTERPOLATION_QUALITY:
- cairo_pattern_set_filter (p, CAIRO_FILTER_BEST);
- break;
- }
-
- cairo_set_source(cr, p);
- if (alpha == 1.0)
- cairo_paint(cr);
- else
- cairo_paint_with_alpha(cr, alpha);
-
- cairo_pattern_destroy(p);
- }
-
- (*env)->ReleaseDoubleArrayElements (env, java_matrix, native_matrix, 0);
-}
-
-JNIEXPORT jlong JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_getFlippedBuffer
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong surfacePointer)
-{
- cairo_surface_t* surface;
- jint *src;
- jint *dst;
- int i, t, width, height;
- jclass cls;
- jfieldID field;
-
- /* Retrieve pointer to cairo data buffer */
- surface = JLONG_TO_PTR(void, surfacePointer);
- src = (jint*)cairo_image_surface_get_data(surface);
-
- /* Retrieve dimensions of surface, from java fields */
- cls = (*env)->GetObjectClass (env, obj);
- field = (*env)->GetFieldID (env, cls, "width", "I");
- g_assert (field != 0);
- width = (*env)->GetIntField (env, obj, field);
-
- field = (*env)->GetFieldID (env, cls, "height", "I");
- g_assert (field != 0);
- height = (*env)->GetIntField (env, obj, field);
-
- /* Create destination array */
- g_assert( src != NULL );
- dst = g_malloc( width * height * sizeof( jint ) );
-
- /* Copy data into destination array, reversing sample order of each pixel */
- for(i = 0; i < (height * width); i++ )
- {
- t = (src[i] & 0x0000FF) << 16;
- dst[i] = (src[i] & 0x00FF0000) >> 16;
- dst[i] |= (src[i] & 0xFF00FF00);
- dst[i] |= t;
- }
-
- return PTR_TO_JLONG(dst);
-}
-
-/**
- * Create and return a cairo context for drawing to the surface.
- */
-JNIEXPORT jlong JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_nativeNewCairoContext
-(JNIEnv *env __attribute((unused)), jobject obj __attribute((unused)),
- jlong surfacePointer)
-{
- cairo_surface_t* surface = JLONG_TO_PTR(cairo_surface_t, surfacePointer);
- cairo_t *ptr;
- g_assert(surface != NULL);
- ptr = cairo_create(surface);
- g_assert(ptr != NULL);
-
- return PTR_TO_JLONG(ptr);
-}
-
-/**
- * copyArea.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_copyAreaNative2
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong surfacePointer,
- jint x, jint y, jint w, jint h, jint dx, jint dy, jint stride)
-{
- int row;
- int srcOffset, dstOffset;
- jint *temp;
-
- /* Retrieve pointer to cairo data buffer */
- cairo_surface_t* surface = JLONG_TO_PTR(void, surfacePointer);
- jint *pixeldata = (jint*)cairo_image_surface_get_data(surface);
- g_assert( pixeldata != NULL );
-
- /* Create temporary buffer and calculate offsets */
- temp = g_malloc( h * w * 4 );
- g_assert( temp != NULL );
-
- srcOffset = x + (y * stride);
- dstOffset = (x + dx) + ((y + dy) * stride);
-
- /* Copy desired region into temporary buffer */
- for( row = 0; row < h; row++ )
- memcpy( temp + (w * row), pixeldata + srcOffset + (stride * row), w * 4 );
-
- /* Copy out of buffer and to destination */
- for( row = 0; row < h; row++ )
- memcpy( pixeldata + dstOffset + (stride * row), temp + (w * row), w * 4 );
-
- g_free( temp );
-}
-
-/*
- * Synchronizes the java and native data buffers, copying any changes made in
- * the java array into the native array.
- * This method should only be called if (sharedBuffer == false).
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_syncJavaToNative
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong surfacePointer, jintArray buffer)
-{
- /* Get size of java array */
- int size = (*env)->GetArrayLength(env, buffer);
-
- /* Get native data buffer */
- cairo_surface_t* surface = JLONG_TO_PTR(void, surfacePointer);
- g_assert(surface != NULL);
- void* nativeBuffer = cairo_image_surface_get_data(surface);
-
- /* Sync buffers */
- (*env)->GetIntArrayRegion(env, buffer, 0, size, nativeBuffer);
-}
-
-/*
- * Synchronizes the java and native data buffers, copying any changes made in
- * the native array into the java array.
- * This method should only be called if (sharedBuffer == false).
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_CairoSurface_syncNativeToJava
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong surfacePointer, jintArray buffer)
-{
- /* Get size of java array */
- int size = (*env)->GetArrayLength(env, buffer);
-
- /* Get native data buffer */
- cairo_surface_t* surface = JLONG_TO_PTR(void, surfacePointer);
- g_assert(surface != NULL);
- void* nativeBuffer = cairo_image_surface_get_data(surface);
-
- /* Sync buffers */
- (*env)->SetIntArrayRegion(env, buffer, 0, size, nativeBuffer);
-}
-
-/*
- * Sets the native object field.
- */
-static void
-setNativeObject( JNIEnv *env, jobject obj, void *ptr, const char *pointer )
-{
- jclass cls;
- jlong value;
- jfieldID nofid;
- cls = (*env)->GetObjectClass( env, obj );
- value = PTR_TO_JLONG(ptr);
- nofid = (*env)->GetFieldID( env, cls, pointer, "J" );
- (*env)->SetLongField( env, obj, nofid, value );
- (*env)->DeleteLocalRef( env, cls );
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
deleted file mode 100644
index 31bab77d4..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
+++ /dev/null
@@ -1,291 +0,0 @@
-/* gnu_java_awt_peer_gtk_ComponentGraphics.c
- Copyright (C) 2006, 2007 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 "jcl.h"
-#include "gtkpeer.h"
-#include <gdk/gdktypes.h>
-#include <gdk/gdkprivate.h>
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gdk-pixbuf/gdk-pixdata.h>
-
-#include <cairo-ft.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#if HAVE_XRENDER
-#include <gdk/gdkx.h>
-#include <X11/extensions/Xrender.h>
-#endif
-
-#include "gnu_java_awt_peer_gtk_ComponentGraphics.h"
-
-#include "cairographics2d.h"
-
-static short flush_scheduled = 0;
-
-static gboolean flush (gpointer data __attribute__((unused)))
-{
- gdk_threads_enter ();
-
- gdk_display_flush (gdk_display_get_default ());
- flush_scheduled = 0;
-
- gdk_threads_leave ();
-
- return FALSE;
-}
-
-/* The minimum time period between calls to XFlush, in
- milliseconds. */
-#define MINIMUM_FLUSH_PERIOD 20
-
-/* schedule_flush must be called with the GDK lock held. */
-static void
-schedule_flush ()
-{
- if (!flush_scheduled)
- {
- g_timeout_add (MINIMUM_FLUSH_PERIOD, flush, NULL);
- flush_scheduled = 1;
- }
-}
-
-void cp_gtk_grab_current_drawable(GtkWidget *widget, GdkDrawable **draw,
- GdkWindow **win)
-{
- g_assert (widget != NULL);
- g_assert (draw != NULL);
- g_assert (win != NULL);
-
- *win = widget->window;
-
- *draw = *win;
- gdk_window_get_internal_paint_info (*win, draw, 0, 0);
-}
-
-/**
- * Returns whether the XRender extension is supported
- */
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphics_hasXRender
- (JNIEnv *env __attribute__ ((unused)), jclass cls __attribute__ ((unused)))
-{
-#if HAVE_XRENDER
- int ev = 0, err = 0;
- if( XRenderQueryExtension (GDK_DISPLAY(), &ev, &err) )
- return JNI_TRUE;
-#endif
- return JNI_FALSE;
-}
-
-
-JNIEXPORT jlong JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState
- (JNIEnv *env, jobject obj __attribute__ ((unused)), jobject peer)
-{
- GdkDrawable *drawable;
- GtkWidget *widget;
- cairo_t *cr;
- void *ptr;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, peer);
- g_assert (ptr != NULL);
-
- widget = GTK_WIDGET (ptr);
- g_assert (widget != NULL);
-
- drawable = widget->window;
- g_assert (drawable != NULL);
-
- cr = gdk_cairo_create(drawable);
-
- g_assert(cr != NULL);
-
- gdk_threads_leave();
-
- return PTR_TO_JLONG(cr);
-}
-
-JNIEXPORT jlong JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphics_initFromVolatile
- (JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)),
- jlong ptr)
-{
- GdkDrawable *drawable;
- cairo_t *cr;
-
- gdk_threads_enter();
-
- drawable = JLONG_TO_PTR(GdkDrawable, ptr);
- g_assert (drawable != NULL);
-
- cr = gdk_cairo_create (drawable);
- g_assert(cr != NULL);
-
- gdk_threads_leave();
-
- return PTR_TO_JLONG(cr);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphics_start_1gdk_1drawing
- (JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)))
-{
- gdk_threads_enter();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphics_end_1gdk_1drawing
- (JNIEnv *env __attribute__ ((unused)), jobject obj __attribute__ ((unused)))
-{
- schedule_flush ();
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative
- (JNIEnv *env, jobject obj __attribute__((unused)), jobject peer,
- jint x, jint y, jint w, jint h, jint dx, jint dy)
-{
- GdkPixbuf *pixbuf;
- GdkDrawable *drawable;
- GdkWindow *win;
- GtkWidget *widget = NULL;
- void *ptr = NULL;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (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);
-
- pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, TRUE, 8, w, h );
- gdk_pixbuf_get_from_drawable( pixbuf, drawable, NULL, x, y, 0, 0, w, h );
- gdk_draw_pixbuf (drawable, NULL, pixbuf,
- 0, 0, x + dx, y + dy,
- w, h,
- GDK_RGB_DITHER_NORMAL, 0, 0);
- 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 = gtkpeer_get_widget (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, jint cx, jint cy, jint cw, jint ch)
-{
- GdkPixmap *pixmap;
- GtkWidget *widget = NULL;
- GdkGC *gc;
- GdkRectangle clip;
- void *ptr;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, peer);
- g_assert (ptr != NULL);
-
- widget = GTK_WIDGET (ptr);
- g_assert (widget != NULL);
-
- 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,
- 0, 0,
- x, y,
- w, h);
-
- g_object_unref( gc );
-
- schedule_flush ();
-
- gdk_threads_leave();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
deleted file mode 100644
index df700f559..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/* gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
- 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 "jcl.h"
-#include "gtkpeer.h"
-#include <gdk/gdktypes.h>
-#include <gdk/gdkprivate.h>
-
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gdk-pixbuf/gdk-pixdata.h>
-
-#include <cairo-ft.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf
- (JNIEnv *env, jobject obj __attribute__((unused)),
- jobject peer, jobject image)
-{
- gint width, height;
- GdkPixbuf *pixbuf;
- GdkDrawable *drawable;
- GdkWindow *win;
- GtkWidget *widget = NULL;
- void *ptr = NULL;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (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);
-
- pixbuf = cp_gtk_image_get_pixbuf( env, image );
- g_assert( pixbuf != NULL);
-
- width = gdk_pixbuf_get_width( pixbuf );
- height = gdk_pixbuf_get_height( pixbuf );
-
- gdk_pixbuf_get_from_drawable( pixbuf, /* destination pixbuf */
- drawable,
- NULL, /* colormap */
- 0, 0, 0, 0,
- width, height );
- gdk_threads_leave();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf
- (JNIEnv *env, jobject obj __attribute__((unused)),
- jobject peer, jobject image,
- jint x __attribute__((unused)), jint y __attribute__((unused)),
- jint width __attribute__((unused)), jint height __attribute__((unused)))
-{
- gint pwidth, pheight;
- GdkPixbuf *pixbuf;
- GdkDrawable *drawable;
- GdkWindow *win;
- GtkWidget *widget = NULL;
- void *ptr = NULL;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (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);
-
- pixbuf = cp_gtk_image_get_pixbuf( env, image );
- g_assert( pixbuf != NULL);
-
- pwidth = gdk_pixbuf_get_width( pixbuf );
- pheight = gdk_pixbuf_get_height( pixbuf );
-
- gdk_draw_pixbuf (drawable, NULL, pixbuf,
- 0, 0, 0, 0,
- pwidth, pheight,
- GDK_RGB_DITHER_NORMAL, 0, 0);
-
- gdk_threads_leave();
-}
-
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
deleted file mode 100644
index cb7bf43dc..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_FreetypeGlyphVector.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/* gnu_java_awt_FreetypeGlyphVector.c
- 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. */
-
-#define PANGO_ENABLE_ENGINE
-#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 "gdkfont.h"
-#include "gnu_java_awt_peer_gtk_FreetypeGlyphVector.h"
-#include "cairographics2d.h"
-
-typedef struct gp
-{
- JNIEnv *env;
- jobject obj;
- double px;
- double py;
- double sx;
- double sy;
-} generalpath ;
-
-static PangoFcFont *
-getFont(JNIEnv *env, jobject obj)
-{
- jfieldID fid;
- jobject data;
- jclass cls;
- struct peerfont *pfont;
-
- cls = (*env)->GetObjectClass (env, obj);
- fid = (*env)->GetFieldID (env, cls, "peer",
- "Lgnu/java/awt/peer/gtk/GdkFontPeer;");
- g_assert (fid != 0);
-
- data = (*env)->GetObjectField (env, obj, fid);
- g_assert (data != NULL);
-
- pfont = (struct peerfont *) gtkpeer_get_font(env, data);
- g_assert (pfont != NULL);
- g_assert (pfont->font != NULL);
-
- return (PangoFcFont *)pfont->font;
-}
-
-static PangoFontset *
-getFontSet(JNIEnv *env, jobject obj)
-{
- jfieldID fid;
- jobject data;
- jclass cls;
- struct peerfont *pfont;
-
- cls = (*env)->GetObjectClass (env, obj);
- fid = (*env)->GetFieldID (env, cls, "peer",
- "Lgnu/java/awt/peer/gtk/GdkFontPeer;");
- g_assert (fid != 0);
-
- data = (*env)->GetObjectField (env, obj, fid);
- g_assert (data != NULL);
-
- pfont = (struct peerfont *) gtkpeer_get_font (env, data);
- g_assert (pfont != NULL);
- g_assert (pfont->font != NULL);
-
- return (PangoFontset *)pfont->set;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getGlyphs
- (JNIEnv *env, jobject obj, jintArray codepoints, jintArray glyphs,
- jlongArray fonts)
-{
- PangoFcFont *default_font, *current_font;
- PangoFontset *pfs;
- jint *cpvals;
- jint length;
- int i;
-
- /* Set up default font and fontset */
- default_font = getFont(env, obj);
- current_font = default_font;
- pfs = getFontSet(env, obj);
-
- /* Retrieve string information */
- length = (*env)->GetArrayLength (env, codepoints);
- cpvals = (*env)->GetIntArrayElements (env, codepoints, NULL);
-
- jint *glyphArray = (*env)->GetIntArrayElements (env, glyphs, NULL);
- jlong *fontArray = (*env)->GetLongArrayElements (env, fonts, NULL);
-
- /* A design goal of Pango is to be threadsafe, but it's admitted that it is
- * not actually threadsafe at the moment. Using gdk locking here to be safe,
- * but I don't know if if actually helps at all... */
- gdk_threads_enter();
-
- for( i = 0; i < length; i++ )
- {
- /* Ensure the current font has the requested character; if it doesn't,
- * try the default font before pulling a new font out of the fontset.
- * Once chosen, a font will be used until a character not in the font is
- * encountered. */
- if (!pango_fc_font_has_char(current_font, cpvals[i]))
- {
- if (pango_fc_font_has_char(default_font, cpvals[i]))
- {
- current_font = default_font;
- g_object_ref(current_font);
- }
- else
- {
- current_font = (PangoFcFont*)pango_fontset_get_font(pfs, cpvals[i]);
- }
- }
- else
- {
- g_object_ref(current_font);
- }
-
- /* Get glyph, and store both glyph and pointer to font */
- glyphArray[i] = (int)pango_fc_font_get_glyph(current_font,
- (gunichar)cpvals[i]);
- fontArray[i] = PTR_TO_JLONG(current_font);
- }
-
- gdk_threads_leave();
-
- (*env)->ReleaseIntArrayElements (env, glyphs, glyphArray, 0);
- (*env)->ReleaseIntArrayElements (env, codepoints, cpvals, 0);
- (*env)->ReleaseLongArrayElements (env, fonts, fontArray, 0);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getKerning
- (JNIEnv *env, jobject obj __attribute__((unused)), jint rightGlyph,
- jint leftGlyph, jlong fnt, jfloatArray p)
-{
- FT_Face ft_face;
- FT_Vector kern;
- PangoFcFont *font;
-
- font = JLONG_TO_PTR(PangoFcFont, fnt);
- ft_face = pango_fc_font_lock_face( font );
- g_assert (ft_face != NULL);
- FT_Get_Kerning( ft_face, rightGlyph, leftGlyph, FT_KERNING_DEFAULT, &kern );
-
- pango_fc_font_unlock_face( font );
-
- jfloat *pelements = (*env)->GetPrimitiveArrayCritical(env, p, NULL);
- pelements[0] = (jfloat)kern.x/64.0;
- pelements[1] = (jfloat)kern.y/64.0;
- (*env)->ReleasePrimitiveArrayCritical (env, p, pelements, 0);
-}
-
-JNIEXPORT jdoubleArray JNICALL
-Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getMetricsNative
-(JNIEnv *env, jobject obj __attribute__((unused)), jint glyphIndex, jlong fnt)
-{
- FT_Face ft_face;
- jdouble *values;
- jdoubleArray retArray = NULL;
- PangoFcFont *font;
-
- font = JLONG_TO_PTR(PangoFcFont, fnt);
- ft_face = pango_fc_font_lock_face( font );
-
- g_assert (ft_face != NULL);
-
- FT_Set_Transform( ft_face, NULL, NULL );
-
- if( FT_Load_Glyph( ft_face, glyphIndex, FT_LOAD_NO_BITMAP ) != 0 )
- {
- pango_fc_font_unlock_face( font );
- printf("Couldn't load glyph %i\n", glyphIndex);
- return NULL;
- }
-
- retArray = (*env)->NewDoubleArray (env, 8);
- values = (*env)->GetDoubleArrayElements (env, retArray, NULL);
-
- values[0] = 0;
- values[1] = (jdouble)ft_face->glyph->advance.x/64.0;
- values[2] = (jdouble)ft_face->glyph->advance.y/64.0;
- values[3] = (jdouble)ft_face->glyph->metrics.horiBearingX/64.0;
- values[4] = -(jdouble)ft_face->glyph->metrics.horiBearingY/64.0;
- values[5] = (jdouble)ft_face->glyph->metrics.width/64.0;
- values[6] = (jdouble)ft_face->glyph->metrics.height/64.0;
- values[7] = 0;
-
- (*env)->ReleaseDoubleArrayElements (env, retArray, values, 0);
- pango_fc_font_unlock_face( font );
-
- return retArray;
-}
-
-/* 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_FreetypeGlyphVector_getGlyphOutlineNative
- (JNIEnv *env, jobject obj __attribute__((unused)), jint glyphIndex, jlong fnt)
-{
- generalpath *path;
- jobject gp;
- FT_Outline_Funcs ftCallbacks =
- {
- (FT_Outline_MoveToFunc) _moveTo,
- (FT_Outline_LineToFunc) _lineTo,
- (FT_Outline_ConicToFunc) _quadTo,
- (FT_Outline_CubicToFunc) _curveTo,
- 0,
- 0
- };
- PangoFcFont *font;
- FT_Face ft_face;
- FT_Glyph glyph;
-
- font = JLONG_TO_PTR(PangoFcFont, fnt);
- ft_face = pango_fc_font_lock_face( font );
-
- g_assert (ft_face != NULL);
-
- path = g_malloc0 (sizeof (generalpath));
- g_assert(path != NULL);
- path->env = env;
-
- path->px = path->py = 0.0;
- path->sx = 1.0/64.0;
- path->sy = -1.0/64.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);
- }
-
- if(FT_Load_Glyph(ft_face,
- (FT_UInt)(glyphIndex),
- FT_LOAD_DEFAULT | FT_LOAD_NO_BITMAP) != 0)
- {
- pango_fc_font_unlock_face( font );
- g_free(path);
- return NULL;
- }
-
- FT_Get_Glyph( ft_face->glyph, &glyph );
- if (glyph->format == FT_GLYPH_FORMAT_OUTLINE)
- {
- FT_Outline_Decompose (&(((FT_OutlineGlyph)glyph)->outline),
- &ftCallbacks, path);
- }
- else
- {
- char format[5];
-
- format[0] = (glyph->format & 0xFF000000) >> 24;
- format[1] = (glyph->format & 0x00FF0000) >> 16;
- format[2] = (glyph->format & 0x0000FF00) >> 8;
- format[3] = (glyph->format & 0x000000FF);
- format[4] = '\0';
- printf("WARNING: Unable to create outline for font %s %s of format %s\n",
- ft_face->family_name, ft_face->style_name, format);
- }
- FT_Done_Glyph( glyph );
-
- pango_fc_font_unlock_face( font );
-
- g_free(path);
-
- return gp;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_dispose
- (JNIEnv *env, jobject obj __attribute__((unused)), jlongArray fontset)
-{
- PangoFcFont *font;
- jlong *fontArray;
- int i, length;
-
- length = (*env)->GetArrayLength (env, fontset);
- fontArray = (*env)->GetLongArrayElements (env, fontset, NULL);
-
- gdk_threads_enter();
-
- for( i = 0; i < length; i++ )
- {
- font = JLONG_TO_PTR(PangoFcFont, fontArray[i]);
- g_object_unref(font);
- }
-
- gdk_threads_leave();
-
- (*env)->ReleaseLongArrayElements (env, fontset, fontArray, 0);
-}
-
-JNIEXPORT jlong JNICALL
-Java_gnu_java_awt_peer_gtk_FreetypeGlyphVector_getNativeFontPointer
- (JNIEnv *env, jobject obj, jint n)
-{
- int i;
- PangoFcFont *font = getFont(env, obj);
-
- for (i = 0; i < n; i++)
- g_object_ref(font);
-
- return PTR_TO_JLONG(font);
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
deleted file mode 100644
index 771b23e37..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkFontPeer.c
+++ /dev/null
@@ -1,370 +0,0 @@
-/* gnu_java_awt_GdkFont.c
- 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. */
-
-#define PANGO_ENABLE_ENGINE
-#include <pango/pango.h>
-#include <pango/pangoft2.h>
-#include <pango/pangofc-font.h>
-#include <freetype/ftglyph.h>
-#include <freetype/ftoutln.h>
-#include <freetype/fttypes.h>
-#include <freetype/tttables.h>
-#include "gdkfont.h"
-#include "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GdkFontPeer.h"
-
-enum java_awt_font_style {
- java_awt_font_PLAIN = 0,
- java_awt_font_BOLD = 1,
- java_awt_font_ITALIC = 2
-};
-
-enum java_awt_font_baseline {
- java_awt_font_ROMAN_BASELINE = 0,
- java_awt_font_CENTER_BASELINE = 1,
- java_awt_font_HANGING_BASELINE = 2
-};
-
-static PangoFontMap *font_map = NULL;
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_initStaticState
- (JNIEnv *env, jclass clazz __attribute__((unused)))
-{
- gtkpeer_init_font_IDs(env);
- font_map = pango_ft2_font_map_new();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_initState
- (JNIEnv *env, jobject self)
-{
- struct peerfont *pfont = NULL;
-
- gdk_threads_enter ();
-
- g_assert (self != NULL);
- pfont = (struct peerfont *) g_malloc0 (sizeof (struct peerfont));
- g_assert (pfont != NULL);
- gtkpeer_set_font (env, self, pfont);
-
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_dispose
- (JNIEnv *env, jobject self)
-{
- struct peerfont *pfont = NULL;
-
- gdk_threads_enter ();
-
- pfont = (struct peerfont *) gtkpeer_get_font (env, self);
- g_assert (pfont != NULL);
- if (pfont->layout != NULL)
- g_object_unref (pfont->layout);
- if (pfont->font != NULL)
- g_object_unref (pfont->font);
- if (pfont->set != NULL)
- g_object_unref (pfont->set);
- if (pfont->ctx != NULL)
- g_object_unref (pfont->ctx);
- if (pfont->desc != NULL)
- pango_font_description_free (pfont->desc);
- g_free (pfont);
-
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_releasePeerGraphicsResource
- (JNIEnv *env, jobject java_font)
-{
- struct peerfont *pfont = NULL;
-
- gdk_threads_enter();
-
- pfont = (struct peerfont *) gtkpeer_get_font (env, java_font);
- g_assert (pfont != NULL);
- if (pfont->graphics_resource != NULL)
- {
- cairo_font_face_destroy ((cairo_font_face_t *) pfont->graphics_resource);
- pfont->graphics_resource = NULL;
- }
-
- gdk_threads_leave();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_getFontMetrics
-(JNIEnv *env, jobject java_font, jdoubleArray java_metrics)
-{
- FT_Face face;
- struct peerfont *pfont = NULL;
- jdouble *native_metrics = NULL;
- short x_ppem;
- short y_ppem;
- short units_per_em;
- double factorx;
- double factory;
-
- gdk_threads_enter();
-
- pfont = (struct peerfont *) gtkpeer_get_font (env, java_font);
- g_assert (pfont != NULL);
- face = pango_fc_font_lock_face ((PangoFcFont *)pfont->font);
-
- native_metrics
- = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
-
- g_assert (native_metrics != NULL);
-
- x_ppem = face->size->metrics.x_ppem;
- y_ppem = face->size->metrics.y_ppem;
- units_per_em = face->units_per_EM;
- factorx = units_per_em / x_ppem;
- factory = units_per_em / y_ppem;
- native_metrics[FONT_METRICS_ASCENT] = face->ascender / factory;
- native_metrics[FONT_METRICS_MAX_ASCENT] = face->bbox.yMax / factory;
- native_metrics[FONT_METRICS_DESCENT] = - face->descender / factory;
- native_metrics[FONT_METRICS_MAX_DESCENT] = - face->bbox.yMin / factory;
- native_metrics[FONT_METRICS_MAX_ADVANCE] = face->max_advance_width / factorx;
- native_metrics[FONT_METRICS_HEIGHT] = face->height / factory;
- native_metrics[FONT_METRICS_UNDERLINE_OFFSET] =
- face->underline_position / factory;
- native_metrics[FONT_METRICS_UNDERLINE_THICKNESS] =
- face->underline_thickness / factory;
-
- pango_fc_font_unlock_face((PangoFcFont *)pfont->font);
-
- (*env)->ReleaseDoubleArrayElements (env,
- java_metrics,
- native_metrics, 0);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTextMetrics
- (JNIEnv *env, jobject java_font, jstring str, jdoubleArray java_metrics)
-{
- struct peerfont *pfont = NULL;
- const char *cstr = NULL;
- jdouble *native_metrics = NULL;
- PangoRectangle log;
- PangoRectangle log2;
- int line_count = 0;
- int i = 0;
- int width = 0;
-
- gdk_threads_enter();
-
- pfont = (struct peerfont *) gtkpeer_get_font(env, java_font);
- g_assert (pfont != NULL);
-
- cstr = (*env)->GetStringUTFChars (env, str, NULL);
- g_assert(cstr != NULL);
-
- pango_layout_set_text (pfont->layout, cstr, -1);
- pango_layout_get_extents (pfont->layout, NULL, &log);
-
- line_count = pango_layout_get_line_count (pfont->layout);
- for (i = 0; i < line_count; i++)
- {
- pango_layout_line_get_extents (pango_layout_get_line (pfont->layout, i),
- NULL, &log2);
- width += log2.width;
- }
-
- (*env)->ReleaseStringUTFChars (env, str, cstr);
- pango_layout_set_text (pfont->layout, "", -1);
-
- native_metrics = (*env)->GetDoubleArrayElements (env, java_metrics, NULL);
- g_assert (native_metrics != NULL);
-
- native_metrics[TEXT_METRICS_X_BEARING]
- = PANGO_PIXELS( ((double)log.x) );
-
- native_metrics[TEXT_METRICS_Y_BEARING]
- = PANGO_PIXELS( ((double)log.y) );
-
- native_metrics[TEXT_METRICS_HEIGHT]
- = PANGO_PIXELS( ((double)log.height) );
-
- native_metrics[TEXT_METRICS_WIDTH]
- = PANGO_PIXELS( ((double)width) );
-
- native_metrics[TEXT_METRICS_X_ADVANCE]
- = PANGO_PIXELS( ((double) (log.x + log.width)) );
-
- native_metrics[TEXT_METRICS_Y_ADVANCE]
- = PANGO_PIXELS( ((double) (log.y + log.height)) );
-
- (*env)->ReleaseDoubleArrayElements (env, java_metrics, native_metrics, 0);
-
- gdk_threads_leave();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_setFont
- (JNIEnv *env, jobject self, jstring family_name_str, jint style_int, jint size)
-{
- struct peerfont *pfont = NULL;
- char const *family_name = NULL;
- enum java_awt_font_style style;
-
- gdk_threads_enter ();
-
- style = (enum java_awt_font_style) style_int;
-
- g_assert (self != NULL);
- pfont = (struct peerfont *) gtkpeer_get_font(env, self);
- g_assert (pfont != NULL);
-
- /* Clear old font information */
- if (pfont->ctx != NULL)
- g_object_unref (pfont->ctx);
- if (pfont->font != NULL)
- g_object_unref (pfont->font);
- if (pfont->set != NULL)
- g_object_unref (pfont->set);
- if (pfont->desc != NULL)
- pango_font_description_free (pfont->desc);
-
- /* Set new description information */
- pfont->desc = pango_font_description_new ();
- g_assert (pfont->desc != NULL);
-
- family_name = (*env)->GetStringUTFChars(env, family_name_str, 0);
- g_assert (family_name != NULL);
- pango_font_description_set_family (pfont->desc, family_name);
- (*env)->ReleaseStringUTFChars(env, family_name_str, family_name);
-
- if (style & java_awt_font_BOLD)
- pango_font_description_set_weight (pfont->desc, PANGO_WEIGHT_BOLD);
-
- if (style & java_awt_font_ITALIC)
- pango_font_description_set_style (pfont->desc, PANGO_STYLE_ITALIC);
-
- pango_font_description_set_size (pfont->desc, size * PANGO_SCALE);
-
- /* Create new context */
- pfont->ctx = pango_font_map_create_context (font_map);
- g_assert (pfont->ctx != NULL);
-
- pango_context_set_font_description (pfont->ctx, pfont->desc);
- pango_context_set_language (pfont->ctx, gtk_get_default_language());
-
- /* Create new fontset and default font */
- pfont->set = pango_context_load_fontset(pfont->ctx, pfont->desc,
- gtk_get_default_language());
- pfont->font = pango_context_load_font (pfont->ctx, pfont->desc);
- g_assert (pfont->font != NULL);
-
- if (pfont->layout == NULL)
- pfont->layout = pango_layout_new (pfont->ctx);
- g_assert (pfont->layout != NULL);
-
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT jbyteArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkFontPeer_getTrueTypeTable
- (JNIEnv *env, jobject self, jbyte n, jbyte a, jbyte m, jbyte e)
-{
- struct peerfont *pfont = NULL;
- FT_Face face;
- FT_ULong length = 0;
- FT_ULong tag;
- int error;
- FT_Byte *buffer;
- jbyteArray result_array;
- jbyte *rbuf;
-
- pfont = (struct peerfont *) gtkpeer_get_font(env, self);
- if(pfont == NULL)
- return NULL;
-
- gdk_threads_enter ();
- face = pango_fc_font_lock_face ((PangoFcFont *)pfont->font);
- tag = FT_MAKE_TAG( n, a, m, e );
-
- /* Get the length of the table requested */
- error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length );
- if ( error )
- {
- pango_fc_font_unlock_face ((PangoFcFont *)pfont->font);
- gdk_threads_leave ();
- return NULL;
- }
-
- buffer = (FT_Byte *)g_malloc0( length );
- if ( buffer == NULL )
- {
- pango_fc_font_unlock_face ((PangoFcFont *)pfont->font);
- gdk_threads_leave ();
- return NULL;
- }
- /* get the table data */
- error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length );
- if ( error )
- {
- pango_fc_font_unlock_face ((PangoFcFont *)pfont->font);
- g_free(buffer);
- gdk_threads_leave ();
- return NULL;
- }
-
- /* copy to a jbytearray */
- result_array = (*env)->NewByteArray (env, length);
-
- rbuf = (*env)->GetByteArrayElements (env, result_array, NULL);
- memcpy(rbuf, buffer, length);
- (*env)->ReleaseByteArrayElements (env, result_array, rbuf, 0);
-
- g_free(buffer);
- pango_fc_font_unlock_face ((PangoFcFont *)pfont->font);
- gdk_threads_leave ();
-
- /* done */
- return result_array;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
deleted file mode 100644
index 6066a6bb2..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
+++ /dev/null
@@ -1,299 +0,0 @@
-/* gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.c
- Copyright (C) 2004, 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 <glib.h>
-#include <gdk/gdk.h>
-
-#include "gdkfont.h"
-#include "gdkdisplay.h"
-#include "gnu_java_awt_peer_gtk_GdkGraphicsEnvironment.h"
-
-jclass gdkGraphicsEnvironment_class;
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_initIDs
-(JNIEnv *env, jclass klazz __attribute__((unused)))
-{
- gtkpeer_init_display_IDs(env);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeInitState
-(JNIEnv *env, jobject obj)
-{
- GdkDisplay *defaultDisplay;
-
- gdk_threads_enter();
-
- /* Retrieve the default display. */
- defaultDisplay = gdk_display_get_default();
-
- gdk_threads_leave();
-
- /* Store display pointer in GdkGraphicsEnvironment instance. */
- gtkpeer_set_display(env, obj, (void *) defaultDisplay);
-}
-
-static gint
-cmp_families (const void *a, const void *b)
-{
- const char *a_name = pango_font_family_get_name (*(PangoFontFamily **)a);
- const char *b_name = pango_font_family_get_name (*(PangoFontFamily **)b);
-
- return g_utf8_collate (a_name, b_name);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetFontFamilies
-(JNIEnv *env, jobject self __attribute__((unused)), jobjectArray family_name)
-{
- PangoContext *context = NULL;
- PangoFontFamily **families = NULL;
- int n_families = 0;
- int idx = 0;
-
- gdk_threads_enter ();
-
- context = gdk_pango_context_get();
- g_assert (context != NULL);
-
- pango_context_list_families (context, &families, &n_families);
-
- qsort (families, n_families, sizeof (PangoFontFamily *), cmp_families);
-
- for (idx = 0; idx < n_families; idx++)
- {
- const char *name_tmp = pango_font_family_get_name (families[idx]);
- jstring name = (*env)->NewStringUTF (env, name_tmp);
- (*env)->SetObjectArrayElement (env, family_name, idx, name);
- (*env)->DeleteLocalRef(env, name);
- }
- g_free (families);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetNumFontFamilies
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
- PangoContext *context = NULL;
- PangoFontFamily **families = NULL;
- gint n_families = 0;
- gint num = 0;
-
- gdk_threads_enter ();
-
- context = gdk_pango_context_get();
- g_assert (context != NULL);
-
- pango_context_list_families (context, &families, &n_families);
-
- num = n_families;
- g_free (families);
-
- gdk_threads_leave ();
-
- return num;
-}
-
-JNIEXPORT jobjectArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetScreenDevices
-(JNIEnv *env, jobject obj)
-{
- jmethodID gdkScreenGraphicsDevice_ctor, gdkScreenGraphicsDevice_init;
- jclass gdkScreenGraphicsDevice_class;
- int numScreens = 0, i = 0;
- GdkDisplay *display;
- jobjectArray array;
- jobject instance;
-
- gdkScreenGraphicsDevice_class = (*env)->FindClass
- (env, "gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice");
-
- gdkScreenGraphicsDevice_ctor = (*env)->GetMethodID
- (env, gdkScreenGraphicsDevice_class, "<init>",
- "(Lgnu/java/awt/peer/gtk/GdkGraphicsEnvironment;)V");
-
- gdkScreenGraphicsDevice_init = (*env)->GetMethodID
- (env, gdkScreenGraphicsDevice_class, "init", "()V");
-
- display = (GdkDisplay *) gtkpeer_get_display(env, obj);
-
- gdk_threads_enter();
-
- numScreens = gdk_display_get_n_screens(display);
-
-
- /* Create a suitably sized array. */
- array = (*env)->NewObjectArray(env,
- numScreens,
- gdkScreenGraphicsDevice_class,
- NULL);
-
- /* Create GdkScreenGraphicsDevice instances, store the native pointer to
- * the GScreen object with them, run a 2nd initialization phase and
- * put the new instance into the result array.
- */
- for ( ; i < numScreens ; i++)
- {
- instance = (*env)->NewObject (env,
- gdkScreenGraphicsDevice_class,
- gdkScreenGraphicsDevice_ctor,
- obj);
-
- gtkpeer_set_screen(env, instance, gdk_display_get_screen(display, i));
-
- gdk_threads_leave();
- (*env)->CallVoidMethod(env,
- instance,
- gdkScreenGraphicsDevice_init);
- gdk_threads_enter();
-
- (*env)->SetObjectArrayElement(env, array, i, instance);
- }
-
- gdk_threads_leave();
-
- return array;
-}
-
-JNIEXPORT jobject JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_nativeGetDefaultScreenDevice
-(JNIEnv *env, jobject obj)
-{
- jclass gdkScreenGraphicsDevice_class;
- jmethodID gdkScreenGraphicsDevice_ctor, gdkScreenGraphicsDevice_init;
- jobject defaultDevice;
- GdkScreen *defaultScreen;
-
- gdkScreenGraphicsDevice_class = (*env)->FindClass
- (env, "gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice");
-
- gdkScreenGraphicsDevice_ctor = (*env)->GetMethodID
- (env, gdkScreenGraphicsDevice_class, "<init>",
- "(Lgnu/java/awt/peer/gtk/GdkGraphicsEnvironment;)V");
- gdkScreenGraphicsDevice_init = (*env)->GetMethodID
- (env, gdkScreenGraphicsDevice_class, "init", "()V");
-
- /* Create the GdkScreenGraphicsDevice instance. */
- defaultDevice = (*env)->NewObject(env, gdkScreenGraphicsDevice_class,
- gdkScreenGraphicsDevice_ctor, obj);
-
- gdk_threads_enter();
-
- defaultScreen = gdk_screen_get_default();
-
- gdk_threads_leave();
-
- /* Class initialization will have set up the native_state storage
- * mechanism for GdkScreenGraphicsDevice.
- */
- gtkpeer_set_screen(env, defaultDevice, defaultScreen);
-
- (*env)->CallVoidMethod(env,
- defaultDevice,
- gdkScreenGraphicsDevice_init);
-
- 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 *) gtkpeer_get_display(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;
-}
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GdkGraphicsEnvironment_isWindowUnderMouse
-(JNIEnv *env, jobject obj, jobject windowPeer)
-{
- GdkDisplay *display = NULL;
- gint x = 0;
- gint y = 0;
- GtkWidget *windowToTest = NULL;
- GdkWindow *windowAtPointer = NULL;
- jboolean retVal = JNI_FALSE;
-
- display = (GdkDisplay *) gtkpeer_get_display (env, obj);
- g_assert (display != NULL);
-
- windowToTest = (GtkWidget *) gtkpeer_get_widget (env, windowPeer);
-
- gdk_threads_enter ();
-
- windowAtPointer = gdk_display_get_window_at_pointer (display, &x, &y);
-
- while (windowAtPointer
- && windowAtPointer != windowToTest->window)
- windowAtPointer = gdk_window_get_parent (windowAtPointer);
-
- gdk_threads_leave ();
-
- if (windowAtPointer)
- retVal = JNI_TRUE;
- else
- retVal = JNI_FALSE;
-
- return retVal;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
deleted file mode 100644
index 5ed39521a..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+++ /dev/null
@@ -1,470 +0,0 @@
-/* gdkpixbufdecoder.c
- Copyright (C) 1999, 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 <gtkpeer.h>
-#include <gdk/gdk.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gdk-pixbuf/gdk-pixbuf-loader.h>
-
-#include <jni.h>
-#include <jcl.h>
-#include "gnu_java_awt_peer_gtk_GdkPixbufDecoder.h"
-
-#include <string.h>
-#include <stdlib.h>
-
-/* Union used for type punning. */
-union env_union
-{
- void **void_env;
- JNIEnv **jni_env;
-};
-
-static JavaVM *vm;
-
-static jmethodID areaPreparedID;
-static jmethodID areaUpdatedID;
-static jmethodID dataOutputWriteID;
-static jmethodID registerFormatID;
-
-static void
-area_prepared_cb (GdkPixbufLoader *loader,
- jobject *decoder)
-{
- JNIEnv *env = NULL;
- union env_union e;
- jint width = 0;
- jint height = 0;
- GdkPixbuf *pixbuf = NULL;
-
- pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
- g_assert (pixbuf != NULL);
-
- width = gdk_pixbuf_get_width (pixbuf);
- height = gdk_pixbuf_get_height (pixbuf);
-
- g_assert (decoder != NULL);
-
- e.jni_env = &env;
- (*vm)->GetEnv (vm, e.void_env, JNI_VERSION_1_1);
-
- (*env)->CallVoidMethod (env,
- *decoder,
- areaPreparedID,
- width, height);
-}
-
-static void
-area_updated_cb (GdkPixbufLoader *loader,
- gint x, gint y,
- gint width, gint height,
- jobject *decoder)
-{
- JNIEnv *env;
- union env_union e;
- jint stride_bytes, stride_pixels, n_channels, n_pixels;
- jintArray jpixels;
- jint *java_pixels;
- guchar *gdk_pixels;
-
- GdkPixbuf *pixbuf_no_alpha = NULL;
- GdkPixbuf *pixbuf = NULL;
-
-#ifndef WORDS_BIGENDIAN
- int i;
-#endif
-
- pixbuf_no_alpha = gdk_pixbuf_loader_get_pixbuf (loader);
- if (pixbuf_no_alpha == NULL)
- return;
-
- pixbuf = gdk_pixbuf_add_alpha(pixbuf_no_alpha, FALSE, 0, 0, 0);
- g_assert (gdk_pixbuf_get_has_alpha (pixbuf));
-
- stride_bytes = gdk_pixbuf_get_rowstride (pixbuf);
- n_channels = gdk_pixbuf_get_n_channels (pixbuf);
- stride_pixels = stride_bytes / n_channels;
- n_pixels = height * stride_pixels;
- gdk_pixels = gdk_pixbuf_get_pixels (pixbuf);
-
- e.jni_env = &env;
- (*vm)->GetEnv (vm, e.void_env, JNI_VERSION_1_1);
-
- jpixels = (*env)->NewIntArray (env, n_pixels);
-
- java_pixels = (*env)->GetIntArrayElements (env, jpixels, NULL);
-
- memcpy (java_pixels,
- gdk_pixels + (y * stride_bytes),
- (height * stride_bytes));
-
-#ifndef WORDS_BIGENDIAN
- /* convert pixels from 0xBBGGRRAA to 0xAARRGGBB */
- for (i = 0; i < n_pixels; ++i)
- {
- java_pixels[i] = SWAPU32 ((unsigned)java_pixels[i]);
- }
-#endif
-
- g_object_unref (pixbuf);
-
- (*env)->ReleaseIntArrayElements (env, jpixels, java_pixels, 0);
-
- (*env)->CallVoidMethod (env,
- *decoder,
- areaUpdatedID,
- (jint) x, (jint) y,
- (jint) width, (jint) height,
- jpixels,
- stride_pixels);
-
- (*env)->DeleteLocalRef(env, jpixels);
-}
-
-static void
-closed_cb (GdkPixbufLoader *loader __attribute__((unused)), jobject *decoder)
-{
- JNIEnv *env;
- union env_union e;
- e.jni_env = &env;
- (*vm)->GetEnv (vm, e.void_env, JNI_VERSION_1_1);
-
- (*env)->DeleteGlobalRef (env, *decoder);
- g_free (decoder);
-}
-
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initState
- (JNIEnv *env, jobject obj)
-{
- GdkPixbufLoader *loader = NULL;
- jobject *decoder = NULL;
-
- decoder = (jobject *) g_malloc (sizeof (jobject));
- g_assert (decoder != NULL);
- *decoder = (*env)->NewGlobalRef (env, obj);
-
- loader = gdk_pixbuf_loader_new ();
- g_assert (loader != NULL);
- g_signal_connect (loader, "area-prepared", G_CALLBACK (area_prepared_cb), decoder);
- g_signal_connect (loader, "area-updated", G_CALLBACK (area_updated_cb), decoder);
- g_signal_connect (loader, "closed", G_CALLBACK (closed_cb), decoder);
-
- gtkpeer_set_pixbuf_loader (env, obj, loader);
-}
-
-static void
-query_formats (JNIEnv *env, jclass clazz)
-{
- jobject jformat;
- GSList *formats, *f;
- GdkPixbufFormat *format;
- gchar **ch, *name;
- gint count;
-
- jclass formatClass;
- jmethodID addExtensionID;
- jmethodID addMimeTypeID;
- jobject string;
-
- formatClass = (*env)->FindClass
- (env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec");
-
- g_assert(formatClass != NULL);
-
- addExtensionID = (*env)->GetMethodID (env, formatClass,
- "addExtension",
- "(Ljava/lang/String;)V");
-
- addMimeTypeID = (*env)->GetMethodID (env, formatClass,
- "addMimeType",
- "(Ljava/lang/String;)V");
-
- formats = gdk_pixbuf_get_formats ();
-
- for (f = formats; f; f = f->next)
- {
- format = (GdkPixbufFormat *) f->data;
- name = gdk_pixbuf_format_get_name(format);
-
- string = (*env)->NewStringUTF(env, name);
- g_assert(string != NULL);
-
- jformat = (*env)->CallStaticObjectMethod
- (env, clazz, registerFormatID, string,
- (jboolean) gdk_pixbuf_format_is_writable(format));
- (*env)->DeleteLocalRef(env, string);
- g_free(name);
-
- g_assert(jformat != NULL);
-
- ch = gdk_pixbuf_format_get_extensions(format);
- count = 0;
- while (*ch)
- {
- string = (*env)->NewStringUTF(env, *ch);
- g_assert(string != NULL);
- (*env)->CallVoidMethod (env, jformat, addExtensionID, string);
- (*env)->DeleteLocalRef(env, string);
- ++ch;
- ++count;
- }
- g_strfreev(ch - count);
-
- ch = gdk_pixbuf_format_get_mime_types(format);
- count = 0;
- while (*ch)
- {
- string = (*env)->NewStringUTF(env, *ch);
- g_assert(string != NULL);
- (*env)->CallVoidMethod (env, jformat, addMimeTypeID, string);
- (*env)->DeleteLocalRef(env, string);
- ++ch;
- ++count;
- }
- g_strfreev(ch - count);
- (*env)->DeleteLocalRef(env, jformat);
- }
-
- g_slist_free(formats);
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_initStaticState
- (JNIEnv *env, jclass clazz)
-{
- jclass writerClass;
-
- (*env)->GetJavaVM(env, &vm);
-
- areaPreparedID = (*env)->GetMethodID (env, clazz,
- "areaPrepared",
- "(II)V");
-
- areaUpdatedID = (*env)->GetMethodID (env, clazz,
- "areaUpdated",
- "(IIII[II)V");
-
- registerFormatID = (*env)->GetStaticMethodID
- (env, clazz,
- "registerFormat",
- "(Ljava/lang/String;Z)"
- "Lgnu/java/awt/peer/gtk/GdkPixbufDecoder$ImageFormatSpec;");
-
- writerClass = (*env)->FindClass
- (env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder$GdkPixbufWriter");
- dataOutputWriteID = (*env)->GetMethodID (env, writerClass,
- "write", "([B)V");
-
- query_formats (env, clazz);
-
- gtkpeer_init_pixbuf_IDs (env);
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_finish
-(JNIEnv *env, jobject obj, jboolean needs_close)
-{
- GdkPixbufLoader *loader = NULL;
-
- loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader(env, obj);
- if (loader == NULL)
- return;
-
- if (needs_close)
- gdk_pixbuf_loader_close (loader, NULL);
- g_object_unref (loader);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone
-(JNIEnv *env, jobject obj)
-{
- GError *err = NULL;
- GdkPixbufLoader *loader = NULL;
-
- loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader (env, obj);
- g_assert (loader != NULL);
-
- gdk_pixbuf_loader_close (loader, &err);
-
- if (err != NULL)
- {
- JCL_ThrowException (env, "java/io/IOException", err->message);
- g_error_free (err);
- }
-}
-
-struct stream_save_request
-{
- JNIEnv *env;
- jobject *writer;
-};
-
-static gboolean
-save_to_stream(const gchar *buf,
- gsize count,
- GError **error __attribute__((unused)),
- gpointer data)
-{
- struct stream_save_request *ssr = (struct stream_save_request *)data;
-
- jbyteArray jbuf;
- jbyte *cbuf;
-
- jbuf = (*(ssr->env))->NewByteArray ((ssr->env), count);
- cbuf = (*(ssr->env))->GetByteArrayElements ((ssr->env), jbuf, NULL);
- memcpy (cbuf, buf, count);
- (*(ssr->env))->ReleaseByteArrayElements ((ssr->env), jbuf, cbuf, 0);
- (*(ssr->env))->CallVoidMethod ((ssr->env), *(ssr->writer),
- dataOutputWriteID, jbuf);
- (*(ssr->env))->DeleteLocalRef((ssr->env), jbuf);
-
- return TRUE;
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_streamImage
-(JNIEnv *env, jclass clazz __attribute__((unused)),
- jintArray jarr, jstring jenctype, jint width, jint height,
- jboolean hasAlpha, jobject writer)
-{
- GdkPixbuf* pixbuf;
- jint *ints;
- guchar a, r, g, b, *pix, *p;
- GError *err = NULL;
- const char *enctype;
- int i;
- struct stream_save_request ssr;
-
- ssr.writer = &writer;
- ssr.env = env;
-
- ints = (*env)->GetIntArrayElements (env, jarr, NULL);
- pix = g_malloc(width * height * (hasAlpha ? 4 : 3));
-
- enctype = (*env)->GetStringUTFChars (env, jenctype, NULL);
- g_assert(enctype != NULL);
-
- g_assert (pix != NULL);
- g_assert (ints != NULL);
-
- p = pix;
- for (i = 0; i < width*height; ++i)
- {
- /*
- * Java encodes pixels as integers in a predictable arithmetic order:
- * 0xAARRGGBB. Since these are jints, JNI has already byte-swapped
- * them for us if necessary, so they're in "our" endianness, whatever
- * that is. It uses 4 bytes per pixel whether or not there's an alpha
- * channel.
- */
-
- a = 0xff & (ints[i] >> 24);
- r = 0xff & (ints[i] >> 16);
- g = 0xff & (ints[i] >> 8);
- b = 0xff & ints[i];
-
- /*
- * GDK-pixbuf has a very different storage model:
- *
- * - A different alpha order (alpha after colors).
- * - A different packing model (no alpha -> 3-bytes-per-pixel).
- * - A different "RGB" order (host memory order, not endian-neutral).
- */
-
- *p++ = r;
- *p++ = g;
- *p++ = b;
- if (hasAlpha)
- *p++ = a;
- }
-
- pixbuf = gdk_pixbuf_new_from_data (pix,
- GDK_COLORSPACE_RGB,
- (gboolean) hasAlpha,
- 8, width, height,
- width * (hasAlpha ? 4 : 3), /* rowstride */
- NULL, NULL);
- g_assert (pixbuf != NULL);
-
- g_assert(gdk_pixbuf_save_to_callback (pixbuf,
- &save_to_stream,
- &ssr,
- enctype,
- &err, NULL));
-
- g_object_unref (pixbuf);
-
- g_free(pix);
-
- (*env)->ReleaseStringUTFChars (env, jenctype, enctype);
- (*env)->ReleaseIntArrayElements (env, jarr, ints, 0);
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes
- (JNIEnv *env, jobject obj, jbyteArray jarr, jint len)
-{
- GdkPixbufLoader *loader = NULL;
- jbyte *bytes = NULL;
- GError *err = NULL;
-
- g_assert (len >= 1);
- g_assert (jarr != NULL);
-
- bytes = (*env)->GetByteArrayElements (env, jarr, NULL);
- g_assert (bytes != NULL);
- loader = (GdkPixbufLoader *) gtkpeer_get_pixbuf_loader (env, obj);
- g_assert (loader != NULL);
-
- gdk_pixbuf_loader_write (loader, (const guchar *) bytes, len, &err);
-
- (*env)->ReleaseByteArrayElements (env, jarr, bytes, 0);
-
- if (err != NULL)
- {
- JCL_ThrowException (env, "java/io/IOException", err->message);
- g_error_free (err);
- }
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
deleted file mode 100644
index ea9c1d6e8..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkRobotPeer.c
+++ /dev/null
@@ -1,440 +0,0 @@
-/* gdkrobotpeer.c
- Copyright (C) 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GdkRobotPeer.h"
-
-#ifdef HAVE_XTEST
-#include <gdk/gdkx.h>
-#include <X11/extensions/XTest.h>
-#endif
-
-#ifdef HAVE_XTEST
-
-static int
-awt_button_mask_to_num (int buttons)
-{
- switch (buttons)
- {
- case AWT_BUTTON1_MASK:
- return 1;
- case AWT_BUTTON2_MASK:
- return 2;
- case AWT_BUTTON3_MASK:
- return 3;
- }
-
- return 0;
-}
-
-#endif
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_initXTest
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
-
-#ifdef HAVE_XTEST
-
- GdkDisplay *display;
- Display *xdisplay;
- int event_basep;
- int error_basep;
- int majorp;
- int minorp;
- jboolean result;
-
- gdk_threads_enter ();
-
- display = gdk_display_get_default ();
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- result = XTestQueryExtension (xdisplay,
- &event_basep,
- &error_basep,
- &majorp,
- &minorp);
-
- gdk_threads_leave ();
-
- return result;
-
-#else
-
- return JNI_FALSE;
-
-#endif
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseMove
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint x, jint y)
-{
-
-#ifdef HAVE_XTEST
-
- GdkDisplay *display;
- Display *xdisplay;
- int result;
-
- gdk_threads_enter ();
-
- display = gdk_display_get_default ();
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- result = XTestFakeMotionEvent (xdisplay,
- -1,
- x, y, CurrentTime);
- if (result)
- g_warning("XTestFakeMotionEvent returned %d\n", result);
-
- XFlush (xdisplay);
-
- gdk_threads_leave ();
-
-#else
-
- (void) x; // Unused.
- (void) y; // Unused.
-
-#endif
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mousePress
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons)
-{
-
-#ifdef HAVE_XTEST
-
- GdkDisplay *display;
- Display *xdisplay;
- int result;
-
- gdk_threads_enter ();
-
- display = gdk_display_get_default ();
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- result = XTestFakeButtonEvent (xdisplay,
- awt_button_mask_to_num (buttons),
- True, CurrentTime);
- if (result)
- g_warning("XTestFakeButtonEvent returned %d\n", result);
-
- XFlush (xdisplay);
-
- gdk_threads_leave ();
-
-#else
-
- (void) buttons; // Unused.
-
-#endif
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseRelease
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint buttons)
-{
-
-#ifdef HAVE_XTEST
-
- GdkDisplay *display;
- Display *xdisplay;
- int result;
-
- gdk_threads_enter ();
-
- display = gdk_display_get_default ();
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- result = XTestFakeButtonEvent (xdisplay,
- awt_button_mask_to_num (buttons),
- False, CurrentTime);
- if (result)
- g_warning("XTestFakeButtonEvent returned %d\n", result);
-
- XFlush (xdisplay);
-
- gdk_threads_leave ();
-
-#else
-
- (void) buttons; // Unused.
-
-#endif
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_mouseWheel
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint wheelAmt)
-{
-
-#ifdef HAVE_XTEST
-
- GdkDisplay *display;
- Display *xdisplay;
- int i = 0;
-
- gdk_threads_enter ();
-
- display = gdk_display_get_default ();
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- if (wheelAmt < 0)
- for (i = 0; i < -wheelAmt; i++)
- {
- XTestFakeButtonEvent (xdisplay,
- 4,
- True, CurrentTime);
- XTestFakeButtonEvent (xdisplay,
- 4,
- False, CurrentTime);
- }
- else
- for (i = 0; i < wheelAmt; i++)
- {
- XTestFakeButtonEvent (xdisplay,
- 5,
- True, CurrentTime);
- XTestFakeButtonEvent (xdisplay,
- 5,
- False, CurrentTime);
- }
-
- XFlush (xdisplay);
-
- gdk_threads_leave ();
-
-#else
-
- (void) wheelAmt; // Unused.
-
-#endif
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyPress
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode)
-{
-
-#ifdef HAVE_XTEST
-
- GdkDisplay *display;
- Display *xdisplay;
- GdkKeymapKey *keymap_keys = NULL;
- gint n_keys = 0;
- guint lookup_keyval = 0;
- int result;
-
- gdk_threads_enter ();
-
- display = gdk_display_get_default ();
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- lookup_keyval = cp_gtk_awt_keycode_to_keysym (keycode,
- AWT_KEY_LOCATION_LEFT);
-
- if (!gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
- lookup_keyval,
- &keymap_keys,
- &n_keys))
- {
- /* No matching keymap entry was found. */
- g_message ("No matching keymap entries were found\n");
- gdk_threads_leave ();
- return;
- }
-
- /* If n_keys > 1 then there are multiple hardware keycodes that
- translate to lookup_keyval. We arbitrarily choose the first
- hardware keycode from the list returned by
- gdk_keymap_get_entries_for_keyval. */
- result = XTestFakeKeyEvent (xdisplay,
- keymap_keys[0].keycode,
- True, CurrentTime);
- if (result)
- g_warning("XTestFakeKeyEvent returned %d\n", result);
-
- g_free (keymap_keys);
-
- XFlush (xdisplay);
-
- gdk_threads_leave ();
-
-#else
-
- (void) keycode; // Unused.
-
-#endif
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_keyRelease
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)), jint keycode)
-{
-
-#ifdef HAVE_XTEST
-
- GdkDisplay *display;
- Display *xdisplay;
- GdkKeymapKey *keymap_keys = NULL;
- gint n_keys = 0;
- guint lookup_keyval = 0;
- int result;
-
- gdk_threads_enter ();
-
- display = gdk_display_get_default ();
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- lookup_keyval = cp_gtk_awt_keycode_to_keysym (keycode,
- AWT_KEY_LOCATION_LEFT);
-
- if (!gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
- lookup_keyval,
- &keymap_keys,
- &n_keys))
- {
- /* No matching keymap entry was found. */
- g_message ("No matching keymap entries were found\n");
- gdk_threads_leave ();
- return;
- }
-
- /* If n_keys > 1 then there are multiple hardware keycodes that
- translate to lookup_keyval. We arbitrarily choose the first
- hardware keycode from the list returned by
- gdk_keymap_get_entries_for_keyval. */
- result = XTestFakeKeyEvent (xdisplay,
- keymap_keys[0].keycode,
- False, CurrentTime);
- if (result)
- g_warning("XTestFakeKeyEvent returned %d\n", result);
-
- g_free (keymap_keys);
-
- XFlush (xdisplay);
-
- gdk_threads_leave ();
-
-#else
-
- (void) keycode; // Unused.
-
-#endif
-
-}
-
-JNIEXPORT jintArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkRobotPeer_nativeGetRGBPixels
- (JNIEnv *env, jobject obj __attribute__((unused)), jint x, jint y,
- jint width, jint height)
-{
-
-#ifdef HAVE_XTEST
-
- jint stride_bytes, stride_pixels, n_channels, n_pixels;
- jintArray jpixels;
- jint *java_pixels;
- guchar *gdk_pixels;
- GdkPixbuf *pixbuf_no_alpha = NULL;
- GdkPixbuf *pixbuf = NULL;
-
-#ifndef WORDS_BIGENDIAN
- int i;
-#endif
-
- gdk_threads_enter ();
-
- pixbuf_no_alpha = gdk_pixbuf_get_from_drawable (NULL,
- gdk_get_default_root_window (),
- NULL, x, y, 0, 0,
- width, height);
-
- pixbuf = gdk_pixbuf_add_alpha(pixbuf_no_alpha, FALSE, 0, 0, 0);
- g_assert (gdk_pixbuf_get_has_alpha (pixbuf));
-
- stride_bytes = gdk_pixbuf_get_rowstride (pixbuf);
- n_channels = gdk_pixbuf_get_n_channels (pixbuf);
- stride_pixels = stride_bytes / n_channels;
- n_pixels = height * stride_pixels;
- gdk_pixels = gdk_pixbuf_get_pixels (pixbuf);
-
- jpixels = (*env)->NewIntArray (env, n_pixels);
-
- java_pixels = (*env)->GetIntArrayElements (env, jpixels, NULL);
-
- memcpy (java_pixels,
- gdk_pixels,
- (height * stride_bytes));
-
-#ifndef WORDS_BIGENDIAN
- /* convert pixels from 0xBBGGRRAA to 0xAARRGGBB */
- for (i = 0; i < n_pixels; ++i)
- {
- java_pixels[i] = SWAPU32 ((unsigned)java_pixels[i]);
- }
-#endif
-
- g_object_unref (pixbuf);
-
- (*env)->ReleaseIntArrayElements (env, jpixels, java_pixels, 0);
-
- gdk_threads_leave ();
-
- return jpixels;
-
-#else
-
- (void) env;
- (void) x;
- (void) y;
- (void) width;
- (void) height;
- return NULL;
-
-#endif
-
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
deleted file mode 100644
index 14ba2a123..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
+++ /dev/null
@@ -1,351 +0,0 @@
-/* gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.c
- 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 <jcl.h>
-
-#include <gdk/gdk.h>
-#include <gdk/gdkx.h>
-
-#ifdef HAVE_XRANDR
-#include <X11/Xlib.h>
-#include <X11/extensions/Xrandr.h>
-#endif
-
-#include "gdkdisplay.h"
-
-#include "gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice.h"
-
-struct state_table *cp_gtk_native_screen_state_table;
-
-jclass gdkScreenGraphicsDevice_class;
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_initIDs
-(JNIEnv *env, jclass klazz __attribute__((unused)))
-{
- gtkpeer_init_screen_IDs(env);
-}
-
-JNIEXPORT jobject JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetFixedDisplayMode
-(JNIEnv *env, jobject obj, jobject gdkGraphicsEnv __attribute__((unused)))
-{
- jclass displayMode_class;
- jmethodID displayMode_ctor;
- GdkScreen *screen;
- jobject fixedDisplayMode = NULL;
-#ifdef HAVE_XRANDR
- int temp1, temp2;
- GdkDisplay *display;
-
- display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
-
- gdk_threads_enter();
-
- if (!XRRQueryExtension(GDK_DISPLAY_XDISPLAY(display), &temp1, &temp2))
- {
- displayMode_class = (*env)->FindClass(env, "java/awt/DisplayMode");
- displayMode_ctor = (*env)->GetMethodID(env,
- displayMode_class,
- "<init>",
- "(IIII)V");
-
- screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
-
- fixedDisplayMode = (*env)->NewObject(env,
- displayMode_class,
- displayMode_ctor,
- gdk_screen_get_width(screen),
- gdk_screen_get_height(screen),
- -1,
- 0);
- }
-
- gdk_threads_leave();
-
-#else
-
- displayMode_class = (*env)->FindClass(env, "java/awt/DisplayMode");
- displayMode_ctor = (*env)->GetMethodID(env,
- displayMode_class,
- "<init>",
- "(IIII)V");
-
- screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
-
- fixedDisplayMode = (*env)->NewObject(env,
- displayMode_class,
- displayMode_ctor,
- gdk_screen_get_width(screen),
- gdk_screen_get_height(screen),
- -1,
- 0);
-
-#endif
- return fixedDisplayMode;
-}
-
-JNIEXPORT jstring JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetIDString
-(JNIEnv *env, jobject obj)
-{
- GdkScreen *screen;
- gchar* displayName;
- jstring string;
-
- screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
-
- gdk_threads_enter();
-
- displayName = gdk_screen_make_display_name(screen);
-
- gdk_threads_leave();
-
- string = (*env)->NewStringUTF(env, displayName);
-
- g_free(displayName);
-
- return string;
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeRate
-(JNIEnv *env, jobject obj __attribute__((unused)), jobject gdkGraphicsEnv __attribute__((unused)))
-{
-#ifdef HAVE_XRANDR
-
- GdkDisplay *display;
- XRRScreenConfiguration *config;
- int rate;
-
- display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
-
- gdk_threads_enter();
-
- config = XRRGetScreenInfo (GDK_DISPLAY_XDISPLAY(display), GDK_ROOT_WINDOW());
-
- rate = (int) XRRConfigCurrentRate (config);
-
- XRRFreeScreenConfigInfo (config);
-
- gdk_threads_leave();
-
- return rate;
-#else
- JCL_ThrowException(env,
- "java/lang/InternalError",
- "Method should not have been invoked.");
-
- return -1;
-#endif
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModeIndex
-(JNIEnv *env, jobject obj __attribute__((unused)), jobject gdkGraphicsEnv __attribute__((unused)))
-{
-#ifdef HAVE_XRANDR
-
- GdkDisplay *display;
- XRRScreenConfiguration *config;
- SizeID index;
- Rotation rotation;
-
- display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
-
- gdk_threads_enter();
-
- config = XRRGetScreenInfo (GDK_DISPLAY_XDISPLAY(display), GDK_ROOT_WINDOW());
-
- index = XRRConfigCurrentConfiguration (config, &rotation);
-
- XRRFreeScreenConfigInfo (config);
-
- gdk_threads_leave();
-
- return (int) index;
-
-#else
-
- JCL_ThrowException(env,
- "java/lang/InternalError",
- "Method should not have been invoked.");
-
- return -1;
-
-#endif
-}
-
-JNIEXPORT jobjectArray JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetDisplayModes
-(JNIEnv *env, jobject obj __attribute__((unused)), jobject gdkGraphicsEnv __attribute__((unused)))
-{
-#ifdef HAVE_XRANDR
- GdkDisplay *display;
- XRRScreenConfiguration *config;
- XRRScreenSize *screenSizes;
- int nsizes = 0, nrates = 0, i = 0;
- jclass x11DisplayMode_class;
- jmethodID x11DisplayMode_ctor;
- jobjectArray array;
- jobject instance;
- short *rates;
- jshortArray shortArray;
-
- display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
-
- gdk_threads_enter();
-
- config = XRRGetScreenInfo (GDK_DISPLAY_XDISPLAY(display), GDK_ROOT_WINDOW());
-
- screenSizes = XRRConfigSizes(config, &nsizes);
-
- x11DisplayMode_class = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice$X11DisplayMode");
-
- x11DisplayMode_ctor = (*env)->GetMethodID(env, x11DisplayMode_class, "<init>", "(II[S)V");
-
- array = (*env)->NewObjectArray(env, nsizes, x11DisplayMode_class, NULL);
-
- for (; i < nsizes ; i++)
- {
- /* Retrieves refresh rate information. */
- rates = XRRConfigRates(config, i, &nrates);
-
- /* Create a Java short array and put them in. */
- shortArray = (*env)->NewShortArray(env, nrates);
- (*env)->SetShortArrayRegion(env, shortArray, 0, nrates, (jshort *) rates);
-
- /* Create a GdkScreenGraphicsDevice.X11DisplayMode instance. */
- instance = (*env)->NewObject(env,
- x11DisplayMode_class,
- x11DisplayMode_ctor,
- screenSizes[i].width,
- screenSizes[i].height,
- shortArray);
-
- /* Put it into the result array. */
- (*env)->SetObjectArrayElement(env, array, i, instance);
- }
-
- /* Free everything acquired by xlib. */
- XRRFreeScreenConfigInfo (config);
-
- gdk_threads_leave();
-
- return array;
-#else
- JCL_ThrowException(env,
- "java/lang/InternalError",
- "Method should not have been invoked.");
-
- return NULL;
-
-#endif
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeSetDisplayMode
-(JNIEnv *env, jobject obj __attribute__((unused)), jobject gdkGraphicsEnv __attribute__((unused)), jint index __attribute__((unused)), jshort rate __attribute__((unused)))
-{
-#ifdef HAVE_XRANDR
- GdkDisplay *display;
- XRRScreenConfiguration *config;
- Rotation rotation;
-
- display = (GdkDisplay *) gtkpeer_get_display(env, gdkGraphicsEnv);
-
- gdk_threads_enter();
-
- config = XRRGetScreenInfo (GDK_DISPLAY_XDISPLAY(display), GDK_ROOT_WINDOW());
-
- /* The rotation is not exposed to the Java API. So we retrieve its current
- * value and set it to the same when switching resolution.
- */
- XRRConfigCurrentConfiguration (config, &rotation);
-
- XRRSetScreenConfigAndRate (GDK_DISPLAY_XDISPLAY(display),
- config,
- GDK_ROOT_WINDOW(),
- index,
- rotation,
- rate,
- CurrentTime);
-
- XRRFreeScreenConfigInfo(config);
-
- gdk_threads_leave();
-
-#else
- JCL_ThrowException(env,
- "java/lang/InternalError",
- "Method should not have been invoked.");
-#endif
-}
-
-JNIEXPORT jobject JNICALL
-Java_gnu_java_awt_peer_gtk_GdkScreenGraphicsDevice_nativeGetBounds
-(JNIEnv *env, jobject obj)
-{
- jclass rectangle_class;
- jmethodID rectangle_ctor;
- GdkScreen *screen;
- GdkWindow *window;
- int x, y, w, h;
- jobject instance;
-
- rectangle_class = (*env)->FindClass(env, "java/awt/Rectangle");
-
- rectangle_ctor = (*env)->GetMethodID
- (env, rectangle_class, "<init>", "(IIII)V");
-
- screen = (GdkScreen *) gtkpeer_get_screen(env, obj);
-
- gdk_threads_enter();
-
- window = gdk_screen_get_root_window(screen);
-
- gdk_window_get_geometry(window, &x, &y, &w, &h, NULL);
-
- gdk_threads_leave();
-
- instance = (*env)->NewObject(env,
- rectangle_class,
- rectangle_ctor,
- x, y, w, h);
-
- return instance;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
deleted file mode 100644
index 3e39b0ee2..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c
+++ /dev/null
@@ -1,376 +0,0 @@
-/* gtkbuttonpeer.c -- Native implementation of GtkButtonPeer
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 "gnu_java_awt_peer_gtk_GtkButtonPeer.h"
-
-static jmethodID postActionEventID;
-
-void
-cp_gtk_button_init_jni (JNIEnv* env)
-{
- jclass gtkbuttonpeer;
-
- gtkbuttonpeer = (*env)->FindClass (env,
- "gnu/java/awt/peer/gtk/GtkButtonPeer");
-
- postActionEventID = (*env)->GetMethodID (cp_gtk_gdk_env(), gtkbuttonpeer,
- "postActionEvent", "(I)V");
-}
-
-static void clicked_cb (GtkButton *button,
- jobject peer);
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
- (JNIEnv *env, jobject obj, jstring label)
-{
- const char *c_label;
- GtkWidget *eventbox;
- GtkWidget *button;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- c_label = (*env)->GetStringUTFChars (env, label, NULL);
-
- eventbox = gtk_event_box_new ();
- button = gtk_button_new_with_label (c_label);
- gtk_container_add (GTK_CONTAINER (eventbox), button);
- gtk_widget_show (button);
-
- (*env)->ReleaseStringUTFChars (env, label, c_label);
- gtkpeer_set_widget (env, obj, eventbox);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetGetPreferredDimensions
- (JNIEnv *env, jobject obj, jintArray jdims)
-{
- void *ptr;
- jint *dims;
- GtkWidget *button;
- GtkWidget *label;
- GtkRequisition current_req;
- GtkRequisition current_label_req;
- GtkRequisition natural_req;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- button = gtk_bin_get_child (GTK_BIN (ptr));
- label = gtk_bin_get_child (GTK_BIN (button));
-
- dims = (*env)->GetIntArrayElements (env, jdims, 0);
- dims[0] = dims[1] = 0;
-
- /* Save the button's current size request. */
- gtk_widget_size_request (GTK_WIDGET (button), &current_req);
-
- /* Save the label's current size request. */
- gtk_widget_size_request (GTK_WIDGET (label), &current_label_req);
-
- /* Get the widget's "natural" size request. */
- gtk_widget_set_size_request (GTK_WIDGET (button), -1, -1);
- gtk_widget_set_size_request (GTK_WIDGET (label), -1, -1);
-
- gtk_widget_size_request (GTK_WIDGET (button), &natural_req);
-
- /* Reset the button's size request. */
- gtk_widget_set_size_request (GTK_WIDGET (button),
- current_req.width, current_req.height);
-
- /* Reset the label's size request. */
- gtk_widget_set_size_request (GTK_WIDGET (label),
- current_label_req.width, current_label_req.height);
-
- dims[0] = natural_req.width;
- dims[1] = natural_req.height;
-
- (*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- GtkWidget *widget;
- jobject gref;
- GtkWidget *button;
-
- gdk_threads_enter ();
-
- widget = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- button = gtk_bin_get_child (GTK_BIN (widget));
-
- /* Button signals */
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (clicked_cb), gref);
-
- /* Component signals */
- cp_gtk_component_connect_signals (G_OBJECT (button), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetLabel
- (JNIEnv *env, jobject obj, jstring jtext)
-{
- const char *text;
- GtkWidget *button;
- GtkWidget *label;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = (*env)->GetStringUTFChars (env, jtext, NULL);
-
- button = gtk_bin_get_child (GTK_BIN (ptr));
- label = gtk_bin_get_child (GTK_BIN (button));
- gtk_label_set_text (GTK_LABEL (label), text);
-
- (*env)->ReleaseStringUTFChars (env, jtext, text);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetModifyFont
- (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
-{
- const char *font_name;
- void *ptr;
- GtkWidget *button;
- GtkWidget *label;
- PangoFontDescription *font_desc;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- font_name = (*env)->GetStringUTFChars (env, name, NULL);
-
- button = gtk_bin_get_child (GTK_BIN (ptr));
- label = gtk_bin_get_child (GTK_BIN (button));
-
- font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc,
- size * cp_gtk_dpi_conversion_factor);
-
- if (style & AWT_STYLE_BOLD)
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-
- if (style & AWT_STYLE_ITALIC)
- pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
-
- gtk_widget_modify_font (GTK_WIDGET(label), font_desc);
-
- pango_font_description_free (font_desc);
-
- (*env)->ReleaseStringUTFChars (env, name, font_name);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetBackground
- (JNIEnv *env, jobject obj, jint red, jint green, jint blue)
-{
- GdkColor normal_color;
- GdkColor prelight_color;
- GdkColor active_color;
- int prelight_red;
- int prelight_blue;
- int prelight_green;
- GtkWidget *button;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- normal_color.red = (red / 255.0) * 65535;
- normal_color.green = (green / 255.0) * 65535;
- normal_color.blue = (blue / 255.0) * 65535;
-
- /* This calculation only approximate the active color produced by
- Sun's AWT. */
- active_color.red = 0.85 * (red / 255.0) * 65535;
- active_color.green = 0.85 * (green / 255.0) * 65535;
- active_color.blue = 0.85 * (blue / 255.0) * 65535;
-
- /* There is no separate prelight color in Motif. */
- prelight_red = 1.15 * (red / 255.0) * 65535;
- prelight_green = 1.15 * (green / 255.0) * 65535;
- prelight_blue = 1.15 * (blue / 255.0) * 65535;
-
- prelight_color.red = prelight_red > 65535 ? 65535 : prelight_red;
- prelight_color.green = prelight_green > 65535 ? 65535 : prelight_green;
- prelight_color.blue = prelight_blue > 65535 ? 65535 : prelight_blue;
-
- button = gtk_bin_get_child (GTK_BIN (ptr));
-
- gtk_widget_modify_bg (button, GTK_STATE_NORMAL, &normal_color);
- gtk_widget_modify_bg (button, GTK_STATE_ACTIVE, &active_color);
- gtk_widget_modify_bg (button, GTK_STATE_PRELIGHT, &prelight_color);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetSetForeground
- (JNIEnv *env, jobject obj, jint red, jint green, jint blue)
-{
- GdkColor color;
- GtkWidget *button;
- GtkWidget *label;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- color.red = (red / 255.0) * 65535;
- color.green = (green / 255.0) * 65535;
- color.blue = (blue / 255.0) * 65535;
-
- button = gtk_bin_get_child (GTK_BIN (ptr));
- label = gtk_bin_get_child (GTK_BIN (button));
-
- gtk_widget_modify_fg (label, GTK_STATE_NORMAL, &color);
- gtk_widget_modify_fg (label, GTK_STATE_ACTIVE, &color);
- gtk_widget_modify_fg (label, GTK_STATE_PRELIGHT, &color);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkActivate
- (JNIEnv *env, jobject obj)
-{
- GtkWidget *button;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- button = gtk_bin_get_child (GTK_BIN (ptr));
- gtk_widget_activate (GTK_WIDGET (button));
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetRequestFocus
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkWidget *button;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- button = gtk_bin_get_child (GTK_BIN (ptr));
- gtk_widget_grab_focus (button);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds
- (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
-{
- GtkWidget *widget, *child;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- widget = GTK_WIDGET (ptr);
-
- /* We assume that -1 is a width or height and not a request for the
- widget's natural size. */
- width = width < 0 ? 0 : width;
- height = height < 0 ? 0 : height;
- child = gtk_bin_get_child (GTK_BIN (widget));
-
- if (!(width == 0 && height == 0))
- {
- /* Set the event box's size request... */
- gtk_widget_set_size_request (widget, width, height);
- /* ...and the button's size request... */
- gtk_widget_set_size_request (child, width, height);
- /* ...and the label's size request. */
- gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (child)), width,
- height);
- if (widget->parent != NULL && GTK_IS_FIXED (widget->parent))
- gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y);
- }
-
- gdk_threads_leave ();
-}
-
-static void
-clicked_cb (GtkButton* button __attribute__((unused)),
- jobject peer)
-{
- GdkEventButton* event;
-
- event = (GdkEventButton*) gtk_get_current_event ();
- g_assert (event);
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postActionEventID,
- cp_gtk_state_to_awt_mods (event->state));
-
- gdk_event_free ((GdkEvent*) event);
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
deleted file mode 100644
index 600b61a33..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCanvasPeer.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* gtkcanvaspeer.c -- Native implementation of GtkCanvasPeer
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 "gnu_java_awt_peer_gtk_GtkCanvasPeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCanvasPeer_create
- (JNIEnv *env, jobject obj)
-{
- gpointer widget;
-
- gdk_threads_enter ();
-
- /* Create global reference and save it for future use */
- gtkpeer_set_global_ref (env, obj);
-
- widget = gtk_drawing_area_new ();
-
- gtkpeer_set_widget (env, obj, widget);
-
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
deleted file mode 100644
index a30eba449..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* gtkmenuitempeer.c -- Native implementation of GtkMenuItemPeer
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 "gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_create
- (JNIEnv *env, jobject obj, jstring label)
-{
- GtkWidget *widget;
- const char *str;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- str = (*env)->GetStringUTFChars (env, label, NULL);
-
- widget = gtk_check_menu_item_new_with_label (str);
- gtk_widget_show (widget);
-
- (*env)->ReleaseStringUTFChars (env, label, str);
-
- gtkpeer_set_widget (env, obj, widget);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCheckboxMenuItemPeer_setState
- (JNIEnv *env, jobject obj, jboolean state)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (ptr), state);
-
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
deleted file mode 100644
index 96230aadf..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
+++ /dev/null
@@ -1,407 +0,0 @@
-/* gtkcheckboxpeer.c -- Native implementation of GtkCheckboxPeer
- Copyright (C) 1998, 1999, 2002, 2003, 2004, 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 "gnu_java_awt_peer_gtk_GtkCheckboxPeer.h"
-#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
-#include "jcl.h"
-
-static jmethodID postItemEventID;
-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)
-{
- jclass gtkcheckboxpeer;
-
- gtkcheckboxpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkCheckboxPeer");
-
- postItemEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcheckboxpeer,
- "postItemEvent",
- "(Ljava/lang/Object;Z)V");
-
- 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;
- jobject gref;
- GtkWidget *bin;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
- bin = checkbox_get_widget (GTK_WIDGET (ptr));
-
- /* Checkbox signals */
- g_signal_connect (G_OBJECT (bin), "toggled",
- G_CALLBACK (item_toggled_cb), gref);
-
- /* Component signals */
- cp_gtk_component_connect_signals (G_OBJECT (bin), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkToggleButtonSetActive
- (JNIEnv *env, jobject obj, jboolean is_active)
-{
- void *ptr;
- GtkWidget *bin;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- bin = checkbox_get_widget (GTK_WIDGET (ptr));
-
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (bin), is_active);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkWidgetModifyFont
- (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
-{
- const char *font_name;
- void *ptr;
- GtkWidget *button;
- GtkWidget *label;
- PangoFontDescription *font_desc;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- button = checkbox_get_widget (GTK_WIDGET (ptr));
- label = gtk_bin_get_child (GTK_BIN(button));
-
- if (!label)
- return;
-
- font_name = (*env)->GetStringUTFChars (env, name, NULL);
-
- font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc,
- size * cp_gtk_dpi_conversion_factor);
-
- if (style & AWT_STYLE_BOLD)
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-
- if (style & AWT_STYLE_ITALIC)
- pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
-
- gtk_widget_modify_font (GTK_WIDGET(label), font_desc);
-
- pango_font_description_free (font_desc);
-
- (*env)->ReleaseStringUTFChars (env, name, font_name);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkCheckboxPeer_gtkButtonSetLabel
- (JNIEnv *env, jobject obj, jstring label)
-{
- const char *c_label;
- GtkWidget *label_widget;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- c_label = (*env)->GetStringUTFChars (env, label, NULL);
-
- 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);
-
- 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 ();
-
- gtkpeer_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);
-
- gtkpeer_set_widget (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 ();
-
- gtkpeer_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);
-
- gtkpeer_set_widget (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 = gtkpeer_get_widget (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 = gtkpeer_get_widget (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 = gtkpeer_get_widget (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)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postItemEventID,
- peer,
- item->active);
-}
-
-static GtkWidget *
-checkbox_get_widget (GtkWidget *widget)
-{
- GtkWidget *wid;
-
- g_assert (GTK_IS_EVENT_BOX (widget));
- wid = gtk_bin_get_child (GTK_BIN(widget));
-
- return wid;
-}
-
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
deleted file mode 100644
index 6f3d9c0e1..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
+++ /dev/null
@@ -1,237 +0,0 @@
-/* gtkchoicepeer.c -- Native implementation of GtkChoicePeer
- Copyright (C) 1998, 1999, 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 "gnu_java_awt_peer_gtk_GtkChoicePeer.h"
-
-static jmethodID postChoiceItemEventID;
-static GtkWidget *choice_get_widget (GtkWidget *widget);
-
-void
-cp_gtk_choice_init_jni (void)
-{
- jclass gtkchoicepeer;
-
- gtkchoicepeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkChoicePeer");
-
- postChoiceItemEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkchoicepeer,
- "postChoiceItemEvent",
- "(I)V");
-}
-
-static void selection_changed_cb (GtkComboBox *combobox, jobject peer);
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create
- (JNIEnv *env, jobject obj)
-{
- GtkWidget *combobox;
- GtkWidget *eventbox;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- eventbox = gtk_event_box_new ();
- combobox = gtk_combo_box_new_text ();
- gtk_container_add (GTK_CONTAINER (eventbox), combobox);
- gtk_widget_show (combobox);
-
- gtkpeer_set_widget (env, obj, eventbox);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr = NULL;
- jobject gref;
- GtkWidget *bin;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- bin = choice_get_widget (GTK_WIDGET (ptr));
-
- /* Choice signals */
- g_signal_connect (G_OBJECT (bin), "changed",
- G_CALLBACK (selection_changed_cb), gref);
-
- /* Component signals */
- cp_gtk_component_connect_signals (G_OBJECT (bin), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_add
- (JNIEnv *env, jobject obj, jstring item, jint index)
-{
- void *ptr;
- const char *label;
- GtkWidget *bin;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- bin = choice_get_widget (GTK_WIDGET (ptr));
-
- label = (*env)->GetStringUTFChars (env, item, 0);
-
- gtk_combo_box_insert_text (GTK_COMBO_BOX (bin), index, label);
-
- (*env)->ReleaseStringUTFChars (env, item, label);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemove
- (JNIEnv *env, jobject obj, jint index)
-{
- void *ptr;
- GtkWidget *bin;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- bin = choice_get_widget (GTK_WIDGET (ptr));
-
- /* First, unselect everything, to avoid problems when removing items. */
- gtk_combo_box_set_active (GTK_COMBO_BOX (bin), -1);
- gtk_combo_box_remove_text (GTK_COMBO_BOX (bin), index);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeRemoveAll
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkTreeModel *model;
- GtkWidget *bin;
- gint count, i;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- bin = choice_get_widget (GTK_WIDGET (ptr));
-
- model = gtk_combo_box_get_model (GTK_COMBO_BOX (bin));
- count = gtk_tree_model_iter_n_children (model, NULL);
-
- /* First, unselect everything, to avoid problems when removing items. */
- gtk_combo_box_set_active (GTK_COMBO_BOX (bin), -1);
-
- for (i = count - 1; i >= 0; i--) {
- gtk_combo_box_remove_text (GTK_COMBO_BOX (bin), i);
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNative
- (JNIEnv *env, jobject obj, jint index)
-{
- gdk_threads_enter ();
-
- Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked
- (env, obj, index);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_selectNativeUnlocked
- (JNIEnv *env, jobject obj, jint index)
-{
- void *ptr;
- GtkWidget *bin;
-
- ptr = gtkpeer_get_widget (env, obj);
- bin = choice_get_widget (GTK_WIDGET (ptr));
- gtk_combo_box_set_active (GTK_COMBO_BOX (bin), (gint)index);
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int index;
- GtkWidget *bin;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- bin = choice_get_widget (GTK_WIDGET (ptr));
-
- index = gtk_combo_box_get_active (GTK_COMBO_BOX (bin));
-
- gdk_threads_leave ();
-
- return index;
-}
-
-static void
-selection_changed_cb (GtkComboBox *combobox, jobject peer)
-{
- gint index = gtk_combo_box_get_active(combobox);
-
- if (index >= 0)
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postChoiceItemEventID, (jint)index );
-}
-
-static GtkWidget *
-choice_get_widget (GtkWidget *widget)
-{
- GtkWidget *wid;
-
- g_assert (GTK_IS_EVENT_BOX (widget));
- wid = gtk_bin_get_child (GTK_BIN(widget));
-
- return wid;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
deleted file mode 100644
index 0b076f864..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkClipboard.c
+++ /dev/null
@@ -1,422 +0,0 @@
-/* gtkclipboard.c
- Copyright (C) 1998, 1999, 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 "jcl.h"
-#include "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkClipboard.h"
-
-#define OBJECT_TARGET 1
-#define TEXT_TARGET 2
-#define IMAGE_TARGET 3
-#define URI_TARGET 4
-
-/* The clipboard and selection plus corresponding GtkClipboard objects. */
-GtkClipboard *cp_gtk_clipboard;
-GtkClipboard *cp_gtk_selection;
-
-jobject cp_gtk_clipboard_instance;
-jobject cp_gtk_selection_instance;
-
-/* Standard (string targets) shared with GtkSelection. */
-jstring cp_gtk_stringTarget;
-jstring cp_gtk_imageTarget;
-jstring cp_gtk_filesTarget;
-
-static jclass gtk_clipboard_class;
-
-static jmethodID setSystemContentsID;
-static jmethodID provideContentID;
-static jmethodID provideTextID;
-static jmethodID provideImageID;
-static jmethodID provideURIsID;
-
-/* Called when clipboard owner changes. Used to update available targets. */
-#if GTK_MINOR_VERSION > 4
-static void
-clipboard_owner_change_cb (GtkClipboard *clipboard,
- GdkEvent *event __attribute__((unused)),
- gpointer user_data __attribute__((unused)))
-{
- JNIEnv *env = cp_gtk_gdk_env ();
- if (clipboard == cp_gtk_clipboard)
- (*env)->CallVoidMethod (env, cp_gtk_clipboard_instance,
- setSystemContentsID, JNI_FALSE);
- else
- (*env)->CallVoidMethod (env, cp_gtk_selection_instance,
- setSystemContentsID, JNI_FALSE);
-
-}
-#endif
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GtkClipboard_initNativeState (JNIEnv *env,
- jclass clz,
- jobject gtkclipboard,
- jobject gtkselection,
- jstring string,
- jstring image,
- jstring files)
-{
- GdkDisplay* display;
- jboolean can_cache;
-
- gtk_clipboard_class = clz;
- setSystemContentsID = (*env)->GetMethodID (env, gtk_clipboard_class,
- "setSystemContents",
- "(Z)V");
- if (setSystemContentsID == NULL)
- return JNI_FALSE;
-
- provideContentID = (*env)->GetMethodID (env, gtk_clipboard_class,
- "provideContent",
- "(Ljava/lang/String;)[B");
- if (provideContentID == NULL)
- return JNI_FALSE;
-
- provideTextID = (*env)->GetMethodID (env, gtk_clipboard_class,
- "provideText",
- "()Ljava/lang/String;");
- if (provideTextID == NULL)
- return JNI_FALSE;
-
- provideImageID = (*env)->GetMethodID (env, gtk_clipboard_class,
- "provideImage",
- "()Lgnu/java/awt/peer/gtk/GtkImage;");
- if (provideImageID == NULL)
- return JNI_FALSE;
-
- provideURIsID = (*env)->GetMethodID (env, gtk_clipboard_class,
- "provideURIs",
- "()[Ljava/lang/String;");
- if (provideURIsID == NULL)
- return JNI_FALSE;
-
- cp_gtk_clipboard_instance = (*env)->NewGlobalRef(env, gtkclipboard);
- cp_gtk_selection_instance = (*env)->NewGlobalRef(env, gtkselection);
-
- cp_gtk_stringTarget = (*env)->NewGlobalRef(env, string);
- cp_gtk_imageTarget = (*env)->NewGlobalRef(env, image);
- cp_gtk_filesTarget = (*env)->NewGlobalRef(env, files);
-
- gdk_threads_enter ();
- cp_gtk_clipboard = gtk_clipboard_get (GDK_SELECTION_CLIPBOARD);
- cp_gtk_selection = gtk_clipboard_get (GDK_SELECTION_PRIMARY);
-
- display = gtk_clipboard_get_display (cp_gtk_clipboard);
- /* Check for support for clipboard owner changes. */
-#if GTK_MINOR_VERSION > 4
- if (gdk_display_supports_selection_notification (display))
- {
- g_signal_connect (cp_gtk_clipboard, "owner-change",
- G_CALLBACK (clipboard_owner_change_cb), NULL);
- g_signal_connect (cp_gtk_selection, "owner-change",
- G_CALLBACK (clipboard_owner_change_cb), NULL);
- gdk_display_request_selection_notification (display,
- GDK_SELECTION_CLIPBOARD);
- gdk_display_request_selection_notification (display,
- GDK_SELECTION_PRIMARY);
- can_cache = JNI_TRUE;
- }
- else
-#endif
- can_cache = JNI_FALSE;
-
- gdk_threads_leave ();
-
- return can_cache;
-}
-
-static void
-clipboard_get_func (GtkClipboard *clipboard,
- GtkSelectionData *selection,
- guint info,
- gpointer user_data __attribute__((unused)))
-{
- jobject gtk_clipboard_instance;
- JNIEnv *env = cp_gtk_gdk_env ();
-
- if (clipboard == cp_gtk_clipboard)
- gtk_clipboard_instance = cp_gtk_clipboard_instance;
- else
- gtk_clipboard_instance = cp_gtk_selection_instance;
-
- if (info == OBJECT_TARGET)
- {
- const gchar *target_name;
- jstring target_string;
- jbyteArray bytes;
- jint len;
- jbyte *barray;
-
- target_name = gdk_atom_name (selection->target);
- if (target_name == NULL)
- return;
- target_string = (*env)->NewStringUTF (env, target_name);
- if (target_string == NULL)
- return;
- bytes = (*env)->CallObjectMethod(env,
- gtk_clipboard_instance,
- provideContentID,
- target_string);
- (*env)->DeleteLocalRef(env, target_string);
- if (bytes == NULL)
- return;
- len = (*env)->GetArrayLength(env, bytes);
- if (len <= 0)
- return;
- barray = (*env)->GetByteArrayElements(env, bytes, NULL);
- if (barray == NULL)
- return;
- gtk_selection_data_set (selection, selection->target, 8,
- (guchar *) barray, len);
-
- (*env)->ReleaseByteArrayElements(env, bytes, barray, 0);
-
- }
- else if (info == TEXT_TARGET)
- {
- jstring string;
- const gchar *text;
- int len;
- string = (*env)->CallObjectMethod(env,
- gtk_clipboard_instance,
- provideTextID);
- if (string == NULL)
- return;
- len = (*env)->GetStringUTFLength (env, string);
- if (len == -1)
- return;
- text = (*env)->GetStringUTFChars (env, string, NULL);
- if (text == NULL)
- return;
-
- gtk_selection_data_set_text (selection, text, len);
- (*env)->ReleaseStringUTFChars (env, string, text);
- }
- /* Images and URIs/Files support only available with gtk+2.6 or higher. */
-#if GTK_MINOR_VERSION > 4
- else if (info == IMAGE_TARGET)
- {
- jobject gtkimage;
- GdkPixbuf *pixbuf = NULL;
-
- gtkimage = (*env)->CallObjectMethod(env,
- gtk_clipboard_instance,
- provideImageID);
- if (gtkimage == NULL)
- return;
-
- pixbuf = cp_gtk_image_get_pixbuf (env, gtkimage);
- if (pixbuf != NULL)
- gtk_selection_data_set_pixbuf (selection, pixbuf);
- }
- else if (info == URI_TARGET)
- {
- jobjectArray uris;
- jint count;
- int i;
- gchar **list;
-
- uris = (*env)->CallObjectMethod(env,
- gtk_clipboard_instance,
- provideURIsID);
- if (uris == NULL)
- return;
- count = (*env)->GetArrayLength (env, uris);
- if (count <= 0)
- return;
-
- list = (gchar **) JCL_malloc (env, (count + 1) * sizeof (gchar *));
- for (i = 0; i < count; i++)
- {
- const char *text;
- jstring uri;
-
- /* Mark NULL in so case of some error we can find the end. */
- list[i] = NULL;
- uri = (*env)->GetObjectArrayElement (env, uris, i);
- if (uri == NULL)
- break;
- text = (*env)->GetStringUTFChars (env, uri, NULL);
- if (text == NULL)
- {
- (*env)->DeleteLocalRef(env, uri);
- break;
- }
- list[i] = strdup (text);
- (*env)->ReleaseStringUTFChars (env, uri, text);
- (*env)->DeleteLocalRef(env, uri);
- }
-
- if (i == count)
- {
- list[count] = NULL;
- gtk_selection_data_set_uris (selection, list);
- }
-
- for (i = 0; list[i] != NULL; i++)
- free (list[i]);
- JCL_free (env, list);
- }
-#endif
-}
-
-static void
-clipboard_clear_func (GtkClipboard *clipboard,
- gpointer user_data __attribute__((unused)))
-{
- JNIEnv *env = cp_gtk_gdk_env();
- if (clipboard == cp_gtk_clipboard)
- (*env)->CallVoidMethod (env, cp_gtk_clipboard_instance,
- setSystemContentsID, JNI_TRUE);
- else
- (*env)->CallVoidMethod (env, cp_gtk_selection_instance,
- setSystemContentsID, JNI_TRUE);
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkClipboard_advertiseContent
-(JNIEnv *env,
- jobject instance,
- jobjectArray mime_array,
-#if GTK_MINOR_VERSION > 4
- jboolean add_text, jboolean add_images, jboolean add_uris)
-#else
- jboolean add_text __attribute__((unused)),
- jboolean add_images __attribute__((unused)),
- jboolean add_uris __attribute__((unused)))
-#endif
-{
- GtkTargetList *target_list;
- GList *list;
- GtkTargetEntry *targets;
- gint n, i;
-
- gdk_threads_enter ();
- target_list = gtk_target_list_new (NULL, 0);
-
- if (mime_array != NULL)
- {
- n = (*env)->GetArrayLength (env, mime_array);
- for (i = 0; i < n; i++)
- {
- const char *text;
- jstring target;
- GdkAtom atom;
-
- target = (*env)->GetObjectArrayElement (env, mime_array, i);
- if (target == NULL)
- break;
- text = (*env)->GetStringUTFChars (env, target, NULL);
- if (text == NULL)
- break;
-
- atom = gdk_atom_intern (text, FALSE);
- gtk_target_list_add (target_list, atom, 0, OBJECT_TARGET);
-
- (*env)->ReleaseStringUTFChars (env, target, text);
- }
- }
-
- /* Add extra targets that gtk+ can provide/translate for us. */
-#if GTK_MINOR_VERSION > 4
- if (add_text)
- gtk_target_list_add_text_targets (target_list, TEXT_TARGET);
- if (add_images)
- gtk_target_list_add_image_targets (target_list, IMAGE_TARGET, TRUE);
- if (add_uris)
- gtk_target_list_add_uri_targets (target_list, URI_TARGET);
-#else
- if (add_text)
- gtk_target_list_add (target_list,
- gdk_atom_intern ("STRING", FALSE),
- 0, TEXT_TARGET);
-#endif
-
-
- /* Turn list into a target table. */
- n = g_list_length (target_list->list);
- if (n > 0)
- {
- targets = g_new (GtkTargetEntry, n);
- for (list = target_list->list, i = 0;
- list != NULL;
- list = list->next, i++)
- {
- GtkTargetPair *pair = (GtkTargetPair *) list->data;
- targets[i].target = gdk_atom_name (pair->target);
- targets[i].flags = pair->flags;
- targets[i].info = pair->info;
- }
-
- /* Set the targets plus callback functions and ask for the clipboard
- to be stored when the application exists if supported. */
- if ((*env)->IsSameObject(env, instance, cp_gtk_clipboard_instance))
- {
- if (gtk_clipboard_set_with_data (cp_gtk_clipboard, targets, n,
- clipboard_get_func,
- clipboard_clear_func,
- NULL))
- {
-#if GTK_MINOR_VERSION > 4
- gtk_clipboard_set_can_store (cp_gtk_clipboard, NULL, 0);
-#endif
- }
- }
- else
- {
- if (gtk_clipboard_set_with_data (cp_gtk_selection, targets, n,
- clipboard_get_func,
- clipboard_clear_func,
- NULL))
- {
-#if GTK_MINOR_VERSION > 4
- gtk_clipboard_set_can_store (cp_gtk_selection, NULL, 0);
-#endif
- }
- }
-
- for (i = 0; i < n; i++)
- g_free (targets[i].target);
- g_free (targets);
- }
-
- gtk_target_list_unref (target_list);
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
deleted file mode 100644
index 5de5d82a6..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c
+++ /dev/null
@@ -1,1260 +0,0 @@
-/* gtkcomponentpeer.c -- Native implementation of GtkComponentPeer
- Copyright (C) 1998, 1999, 2002, 2004, 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 "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
-
-#include <gtk/gtkprivate.h>
-
-#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
-
-/* FIXME: use gtk-double-click-time, gtk-double-click-distance */
-#define MULTI_CLICK_TIME 250
-/* as opposed to a MULTI_PASS_TIME :) */
-
-#define AWT_MOUSE_CLICKED 500
-#define AWT_MOUSE_PRESSED 501
-#define AWT_MOUSE_RELEASED 502
-#define AWT_MOUSE_MOVED 503
-#define AWT_MOUSE_ENTERED 504
-#define AWT_MOUSE_EXITED 505
-#define AWT_MOUSE_DRAGGED 506
-#define AWT_MOUSE_WHEEL 507
-
-#define AWT_WHEEL_UNIT_SCROLL 0
-
-#define AWT_FOCUS_GAINED 1004
-#define AWT_FOCUS_LOST 1005
-
-static GtkWidget *find_fg_color_widget (GtkWidget *widget);
-static GtkWidget *find_bg_color_widget (GtkWidget *widget);
-static GtkWidget *get_widget (GtkWidget *widget);
-
-static jmethodID postMouseEventID;
-static jmethodID postMouseWheelEventID;
-static jmethodID postExposeEventID;
-static jmethodID postFocusEventID;
-
-void
-cp_gtk_component_init_jni (void)
- {
- jclass gtkcomponentpeer;
-
- gtkcomponentpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkComponentPeer");
-
- postMouseEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcomponentpeer,
- "postMouseEvent", "(IJIIIIZ)V");
-
- postMouseWheelEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkcomponentpeer,
- "postMouseWheelEvent",
- "(IJIIIIZIII)V");
-
- postExposeEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcomponentpeer,
- "postExposeEvent", "(IIII)V");
-
- postFocusEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcomponentpeer,
- "postFocusEvent", "(IZ)V");
-}
-
-static gboolean component_button_press_cb (GtkWidget *widget,
- GdkEventButton *event,
- jobject peer);
-static gboolean component_button_release_cb (GtkWidget *widget,
- GdkEventButton *event,
- jobject peer);
-static gboolean component_motion_notify_cb (GtkWidget *widget,
- GdkEventMotion *event,
- jobject peer);
-static gboolean component_scroll_cb (GtkWidget *widget,
- GdkEventScroll *event,
- jobject peer);
-static gboolean component_enter_notify_cb (GtkWidget *widget,
- GdkEventCrossing *event,
- jobject peer);
-static gboolean component_leave_notify_cb (GtkWidget *widget,
- GdkEventCrossing *event,
- jobject peer);
-static gboolean component_expose_cb (GtkWidget *widget,
- GdkEventExpose *event,
- jobject peer);
-static gboolean component_focus_in_cb (GtkWidget *widget,
- GdkEventFocus *event,
- jobject peer);
-static gboolean component_focus_out_cb (GtkWidget *widget,
- GdkEventFocus *event,
- jobject peer);
-
-static jint
-button_to_awt_mods (int button)
-{
- switch (button)
- {
- case 1:
- return AWT_BUTTON1_DOWN_MASK | AWT_BUTTON1_MASK;
- case 2:
- return AWT_BUTTON2_DOWN_MASK | AWT_BUTTON2_MASK;
- case 3:
- return AWT_BUTTON3_DOWN_MASK | AWT_BUTTON3_MASK;
- }
-
- return 0;
-}
-
-jint
-cp_gtk_state_to_awt_mods (guint state)
-{
- jint result = 0;
-
- if (state & GDK_SHIFT_MASK)
- result |= (AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK);
- if (state & GDK_CONTROL_MASK)
- result |= (AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK);
- if (state & GDK_MOD1_MASK)
- result |= (AWT_ALT_DOWN_MASK | AWT_ALT_MASK);
-
- return result;
-}
-
-static jint
-state_to_awt_mods_with_button_states (guint state)
-{
- jint result = 0;
-
- if (state & GDK_SHIFT_MASK)
- result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
- if (state & GDK_CONTROL_MASK)
- result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
- if (state & GDK_MOD1_MASK)
- result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
- if (state & GDK_BUTTON1_MASK)
- result |= AWT_BUTTON1_DOWN_MASK | AWT_BUTTON1_MASK;
- if (state & GDK_BUTTON2_MASK)
- result |= AWT_BUTTON2_DOWN_MASK;
- if (state & GDK_BUTTON3_MASK)
- result |= AWT_BUTTON3_DOWN_MASK;
-
- return result;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursor
- (JNIEnv *env, jobject obj, jint type, jobject image, jint x, jint y)
-{
- gdk_threads_enter ();
-
- Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked
- (env, obj, type, image, x, y);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetCursorUnlocked
- (JNIEnv *env, jobject obj, jint type, jobject image, jint x, jint y)
-{
- void *ptr;
- GtkWidget *widget;
- GdkWindow *win;
- GdkCursorType gdk_cursor_type;
- GdkCursor *gdk_cursor;
-
- ptr = gtkpeer_get_widget (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;
- }
-
- widget = get_widget(GTK_WIDGET(ptr));
-
- win = widget->window;
- if ((widget->window) == NULL)
- win = GTK_WIDGET(ptr)->window;
-
- if (image == NULL)
- gdk_cursor = gdk_cursor_new (gdk_cursor_type);
- else
- gdk_cursor
- = gdk_cursor_new_from_pixbuf (gdk_drawable_get_display (win),
- cp_gtk_image_get_pixbuf (env, image),
- x, y);
-
- gdk_window_set_cursor (win, gdk_cursor);
- gdk_cursor_unref (gdk_cursor);
-
- /* Make sure the cursor is replaced on screen. */
- gdk_flush();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetParent
- (JNIEnv *env, jobject obj, jobject parent)
-{
- void *ptr;
- void *parent_ptr;
- GtkWidget *widget;
- GtkWidget *parent_widget;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- parent_ptr = gtkpeer_get_widget (env, parent);
-
- widget = GTK_WIDGET (ptr);
- parent_widget = get_widget(GTK_WIDGET (parent_ptr));
-
- if (widget->parent == NULL)
- {
- if (GTK_IS_WINDOW (parent_widget))
- {
- GList *children = gtk_container_get_children
- (GTK_CONTAINER (parent_widget));
-
- if (GTK_IS_MENU_BAR (children->data))
- gtk_fixed_put (GTK_FIXED (children->next->data), widget, 0, 0);
- else
- gtk_fixed_put (GTK_FIXED (children->data), widget, 0, 0);
- }
- else
- if (GTK_IS_SCROLLED_WINDOW (parent_widget))
- {
- gtk_scrolled_window_add_with_viewport
- (GTK_SCROLLED_WINDOW (parent_widget), widget);
- gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent),
- GTK_SHADOW_NONE);
-
- }
- else
- {
- if (widget->parent == NULL)
- gtk_fixed_put (GTK_FIXED (parent_widget), widget, 0, 0);
- }
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetSensitive
- (JNIEnv *env, jobject obj, jboolean sensitive)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_widget_set_sensitive (get_widget(GTK_WIDGET (ptr)), sensitive);
-
- 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 = gtkpeer_get_widget (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 = gtkpeer_get_widget (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)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_widget_grab_focus (get_widget(GTK_WIDGET (ptr)));
-
- gdk_threads_leave ();
-}
-
-/*
- * Translate a Java KeyEvent object into a GdkEventKey event, then
- * pass it to the GTK main loop for processing.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetDispatchKeyEvent
- (JNIEnv *env, jobject obj, jint id, jlong when, jint mods,
- jint keyCode, jint keyLocation)
-{
- void *ptr;
- GdkEvent *event = NULL;
- GdkKeymapKey *keymap_keys = NULL;
- gint n_keys = 0;
- guint lookup_keyval = 0;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- if (id == AWT_KEY_PRESSED)
- event = gdk_event_new (GDK_KEY_PRESS);
- else if (id == AWT_KEY_RELEASED)
- event = gdk_event_new (GDK_KEY_RELEASE);
- else
- {
- gdk_threads_leave ();
- /* Don't send AWT KEY_TYPED events to GTK. */
- return;
- }
-
- if (GTK_IS_BUTTON (ptr))
- event->key.window = GTK_BUTTON (get_widget(GTK_WIDGET (ptr)))->event_window;
- else if (GTK_IS_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr))))
- event->key.window = GTK_WIDGET (GTK_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr)))->container.child)->window;
- else
- event->key.window = get_widget(GTK_WIDGET (ptr))->window;
-
- event->key.send_event = 0;
- event->key.time = (guint32) when;
-
- if (mods & AWT_SHIFT_DOWN_MASK)
- event->key.state |= GDK_SHIFT_MASK;
- if (mods & AWT_CTRL_DOWN_MASK)
- event->key.state |= GDK_CONTROL_MASK;
- if (mods & AWT_ALT_DOWN_MASK)
- event->key.state |= GDK_MOD1_MASK;
-
- /* This hack is needed because the AWT has no notion of num lock.
- It infers numlock state from the only Java virtual keys that are
- affected by it. */
- if (keyCode == VK_NUMPAD9
- || keyCode == VK_NUMPAD8
- || keyCode == VK_NUMPAD7
- || keyCode == VK_NUMPAD6
- || keyCode == VK_NUMPAD5
- || keyCode == VK_NUMPAD4
- || keyCode == VK_NUMPAD3
- || keyCode == VK_NUMPAD2
- || keyCode == VK_NUMPAD1
- || keyCode == VK_NUMPAD0
- || keyCode == VK_DECIMAL)
- event->key.state |= GDK_MOD2_MASK;
-
- /* These values don't need to be filled in since GTK doesn't use
- them. */
- event->key.length = 0;
- event->key.string = NULL;
-
- lookup_keyval = cp_gtk_awt_keycode_to_keysym (keyCode, keyLocation);
-
- if (!gdk_keymap_get_entries_for_keyval (gdk_keymap_get_default (),
- lookup_keyval,
- &keymap_keys,
- &n_keys))
- {
- /* No matching keymap entry was found. */
- g_printerr ("No matching keymap entries were found\n");
- gdk_threads_leave ();
- return;
- }
-
- /* Note: if n_keys > 1 then there are multiple hardware keycodes
- that translate to lookup_keyval. We arbitrarily choose the first
- hardware keycode from the list returned by
- gdk_keymap_get_entries_for_keyval. */
-
- event->key.hardware_keycode = keymap_keys[0].keycode;
- event->key.group = keymap_keys[0].group;
-
- g_free (keymap_keys);
-
- if (!gdk_keymap_translate_keyboard_state (gdk_keymap_get_default (),
- event->key.hardware_keycode,
- event->key.state,
- event->key.group,
- &event->key.keyval,
- NULL, NULL, NULL))
- {
- /* No matching keyval was found. */
- g_printerr ("No matching keyval was found\n");
- gdk_threads_leave ();
- return;
- }
-
- /* keyevent = (GdkEventKey *) event; */
- /* g_printerr ("generated event: sent: %d time: %d state: %d keyval: %d length: %d string: %s hardware_keycode: %d group: %d\n", keyevent->send_event, keyevent->time, keyevent->state, keyevent->keyval, keyevent->length, keyevent->string, keyevent->hardware_keycode, keyevent->group); */
-
- /* We already received the original key event on the window itself,
- so we don't want to resend it. */
- if (!GTK_IS_WINDOW (ptr))
- {
- if (GTK_IS_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr))))
- gtk_widget_event (GTK_WIDGET (GTK_SCROLLED_WINDOW (get_widget(GTK_WIDGET (ptr)))->container.child), event);
- else
- gtk_widget_event (get_widget(GTK_WIDGET (ptr)), event);
- }
-
- gdk_threads_leave ();
-}
-
-/*
- * Find the origin of a widget's window.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen
- (JNIEnv * env, jobject obj, jintArray jpoint)
-{
- gdk_threads_enter();
-
- Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked
- (env, obj, jpoint);
-
- gdk_threads_leave();
-
-}
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreenUnlocked
- (JNIEnv * env, jobject obj, jintArray jpoint)
-{
- void *ptr;
- jint *point;
-
- ptr = gtkpeer_get_widget (env, obj);
- point = (*env)->GetIntArrayElements (env, jpoint, 0);
-
- gdk_window_get_root_origin (get_widget(GTK_WIDGET (ptr))->window, point, point+1);
-
- (*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
-}
-
-/*
- * Find the origin of a widget
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
- (JNIEnv * env, jobject obj, jintArray jpoint)
-{
- gdk_threads_enter();
-
- Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked
- (env, obj, jpoint);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreenUnlocked
- (JNIEnv * env, jobject obj, jintArray jpoint)
-{
- void *ptr;
- jint *point;
- GtkWidget *widget;
-
- ptr = gtkpeer_get_widget (env, obj);
- point = (*env)->GetIntArrayElements (env, jpoint, 0);
-
- widget = get_widget(GTK_WIDGET (ptr));
- while(gtk_widget_get_parent(widget) != NULL)
- widget = gtk_widget_get_parent(widget);
- gdk_window_get_position (GTK_WIDGET(widget)->window, point, point+1);
-
- *point += GTK_WIDGET(ptr)->allocation.x;
- *(point+1) += GTK_WIDGET(ptr)->allocation.y;
-
- (*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
-}
-
-/*
- * Find this widget's current size.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetDimensions
- (JNIEnv *env, jobject obj, jintArray jdims)
-{
- void *ptr;
- jint *dims;
- GtkRequisition requisition;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- dims = (*env)->GetIntArrayElements (env, jdims, 0);
- dims[0] = dims[1] = 0;
-
- gtk_widget_size_request (get_widget(GTK_WIDGET (ptr)), &requisition);
-
- dims[0] = requisition.width;
- dims[1] = requisition.height;
-
- (*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
-
- gdk_threads_leave ();
-}
-
-/*
- * Find this widget's preferred size.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetPreferredDimensions
- (JNIEnv *env, jobject obj, jintArray jdims)
-{
- void *ptr;
- jint *dims;
- GtkRequisition current_req;
- GtkRequisition natural_req;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- dims = (*env)->GetIntArrayElements (env, jdims, 0);
- dims[0] = dims[1] = 0;
-
- /* Widgets that extend GtkWindow such as GtkFileChooserDialog may have
- a default size. These values seem more useful then the natural
- requisition values, particularly for GtkFileChooserDialog. */
- if (GTK_IS_WINDOW (get_widget(GTK_WIDGET (ptr))))
- {
- gint width, height;
- gtk_window_get_default_size (GTK_WINDOW (get_widget(GTK_WIDGET (ptr))), &width, &height);
-
- dims[0] = width;
- dims[1] = height;
- }
- else
- {
- /* Save the widget's current size request. */
- gtk_widget_size_request (get_widget(GTK_WIDGET (ptr)), &current_req);
-
- /* Get the widget's "natural" size request. */
- gtk_widget_set_size_request (get_widget(GTK_WIDGET (ptr)), -1, -1);
- gtk_widget_size_request (get_widget(GTK_WIDGET (ptr)), &natural_req);
-
- /* Reset the widget's size request. */
- gtk_widget_set_size_request (get_widget(GTK_WIDGET (ptr)),
- current_req.width, current_req.height);
-
- dims[0] = natural_req.width;
- dims[1] = natural_req.height;
- }
-
- (*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeBounds
- (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
-{
- GtkWidget *widget;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- widget = GTK_WIDGET (ptr);
-
- /* We assume that -1 is a width or height and not a request for the
- widget's natural size. */
- width = width < 0 ? 0 : width;
- height = height < 0 ? 0 : height;
-
- if (!(width == 0 && height == 0))
- {
- gtk_widget_set_size_request (widget, width, height);
- /* The GTK_IS_FIXED check here prevents gtk_fixed_move being
- called when our parent is a GtkScrolledWindow. In that
- case though, moving the child widget is invalid since a
- ScrollPane only has one child and that child is always
- located at (0, 0) in viewport coordinates. */
- if (widget->parent != NULL && GTK_IS_FIXED (widget->parent))
- gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y);
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jintArray JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetBackground
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jintArray array;
- int *rgb;
- GdkColor bg;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- bg = GTK_WIDGET (ptr)->style->bg[GTK_STATE_NORMAL];
-
- array = (*env)->NewIntArray (env, 3);
-
- rgb = (*env)->GetIntArrayElements (env, array, NULL);
- /* convert color data from 16 bit values down to 8 bit values */
- rgb[0] = bg.red >> 8;
- rgb[1] = bg.green >> 8;
- rgb[2] = bg.blue >> 8;
- (*env)->ReleaseIntArrayElements (env, array, rgb, 0);
-
- gdk_threads_leave ();
-
- return array;
-}
-
-JNIEXPORT jintArray JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetForeground
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jintArray array;
- jint *rgb;
- GdkColor fg;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- fg = get_widget(GTK_WIDGET (ptr))->style->fg[GTK_STATE_NORMAL];
-
- array = (*env)->NewIntArray (env, 3);
-
- rgb = (*env)->GetIntArrayElements (env, array, NULL);
- /* convert color data from 16 bit values down to 8 bit values */
- rgb[0] = fg.red >> 8;
- rgb[1] = fg.green >> 8;
- rgb[2] = fg.blue >> 8;
- (*env)->ReleaseIntArrayElements (env, array, rgb, 0);
-
- gdk_threads_leave ();
-
- return array;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetBackground
- (JNIEnv *env, jobject obj, jint red, jint green, jint blue)
-{
- GdkColor normal_color;
- GdkColor active_color;
- GtkWidget *widget;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- normal_color.red = (red / 255.0) * 65535;
- normal_color.green = (green / 255.0) * 65535;
- normal_color.blue = (blue / 255.0) * 65535;
-
- /* This calculation only approximates the active colors produced by
- Sun's AWT. */
- active_color.red = 0.85 * (red / 255.0) * 65535;
- active_color.green = 0.85 * (green / 255.0) * 65535;
- active_color.blue = 0.85 * (blue / 255.0) * 65535;
-
- widget = find_bg_color_widget (GTK_WIDGET (ptr));
-
- gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &normal_color);
- gtk_widget_modify_bg (widget, GTK_STATE_ACTIVE, &active_color);
- gtk_widget_modify_bg (widget, GTK_STATE_PRELIGHT, &normal_color);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetSetForeground
- (JNIEnv *env, jobject obj, jint red, jint green, jint blue)
-{
- GdkColor color;
- GtkWidget *widget;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- color.red = (red / 255.0) * 65535;
- color.green = (green / 255.0) * 65535;
- color.blue = (blue / 255.0) * 65535;
-
- widget = find_fg_color_widget (GTK_WIDGET (ptr));
-
- gtk_widget_modify_fg (widget, GTK_STATE_NORMAL, &color);
- gtk_widget_modify_fg (widget, GTK_STATE_ACTIVE, &color);
- gtk_widget_modify_fg (widget, GTK_STATE_PRELIGHT, &color);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_realize (JNIEnv *env, jobject obj)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_widget_realize (GTK_WIDGET (ptr));
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNative
- (JNIEnv *env, jobject obj, jboolean visible)
-{
- gdk_threads_enter();
-
- Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNativeUnlocked
- (env, obj, visible);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setVisibleNativeUnlocked
- (JNIEnv *env, jobject obj, jboolean visible)
-{
- void *ptr;
-
- ptr = gtkpeer_get_widget (env, obj);
-
- if (visible)
- gtk_widget_show (GTK_WIDGET (ptr));
- else
- gtk_widget_hide (GTK_WIDGET (ptr));
-}
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isEnabled
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jboolean ret_val;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- ret_val = GTK_WIDGET_IS_SENSITIVE (get_widget(GTK_WIDGET (ptr)));
-
- gdk_threads_leave ();
-
- return ret_val;
-}
-
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_modalHasGrab
- (JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)))
-{
- GtkWidget *widget;
- jboolean retval;
-
- gdk_threads_enter ();
-
- widget = gtk_grab_get_current ();
- retval = (widget && GTK_IS_WINDOW (widget) && GTK_WINDOW (widget)->modal);
-
- gdk_threads_leave ();
-
- return retval;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jobject gref;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- cp_gtk_component_connect_signals (ptr, gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkComponentPeer_setNativeEventMask
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_widget_add_events (get_widget(GTK_WIDGET (ptr)),
- GDK_POINTER_MOTION_MASK
- | GDK_BUTTON_MOTION_MASK
- | GDK_BUTTON_PRESS_MASK
- | GDK_BUTTON_RELEASE_MASK
- | GDK_KEY_PRESS_MASK
- | GDK_KEY_RELEASE_MASK
- | GDK_ENTER_NOTIFY_MASK
- | GDK_LEAVE_NOTIFY_MASK
- | GDK_STRUCTURE_MASK
- | GDK_KEY_PRESS_MASK
- | GDK_FOCUS_CHANGE_MASK);
-
- gdk_threads_leave ();
-}
-
-static GtkWidget *
-get_widget (GtkWidget *widget)
-{
- GtkWidget *w;
-
- if (GTK_IS_EVENT_BOX (widget))
- w = gtk_bin_get_child (GTK_BIN(widget));
- else
- w = widget;
-
- return w;
-}
-
-/* FIXME: these functions should be implemented by overridding the
- appropriate GtkComponentPeer methods. */
-static GtkWidget *
-find_fg_color_widget (GtkWidget *widget)
-{
- GtkWidget *fg_color_widget;
-
- if (GTK_IS_EVENT_BOX (widget)
- || (GTK_IS_BUTTON (widget)
- && !GTK_IS_COMBO_BOX (widget)))
- fg_color_widget = gtk_bin_get_child (GTK_BIN(widget));
- else
- fg_color_widget = widget;
-
- return fg_color_widget;
-}
-
-static GtkWidget *
-find_bg_color_widget (GtkWidget *widget)
-{
- GtkWidget *bg_color_widget;
-
- bg_color_widget = widget;
-
- return bg_color_widget;
-}
-
-void
-cp_gtk_component_connect_expose_signals (GObject *ptr, jobject gref)
-{
- g_signal_connect (G_OBJECT (ptr), "expose-event",
- G_CALLBACK (component_expose_cb), gref);
-}
-
-void
-cp_gtk_component_connect_focus_signals (GObject *ptr, jobject gref)
-{
- g_signal_connect (G_OBJECT (ptr), "focus-in-event",
- G_CALLBACK (component_focus_in_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "focus-out-event",
- G_CALLBACK (component_focus_out_cb), gref);
-}
-
-void
-cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject gref)
-{
- g_signal_connect (G_OBJECT (ptr), "button-press-event",
- G_CALLBACK (component_button_press_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "button-release-event",
- G_CALLBACK (component_button_release_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "enter-notify-event",
- G_CALLBACK (component_enter_notify_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "leave-notify-event",
- G_CALLBACK (component_leave_notify_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "motion-notify-event",
- G_CALLBACK (component_motion_notify_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "scroll-event",
- G_CALLBACK (component_scroll_cb), gref);
-}
-
-void
-cp_gtk_component_connect_signals (GObject *ptr, jobject gref)
-{
- cp_gtk_component_connect_expose_signals (ptr, gref);
- cp_gtk_component_connect_focus_signals (ptr, gref);
- cp_gtk_component_connect_mouse_signals (ptr, gref);
-}
-
-/* These variables are used to keep track of click counts. The AWT
- allows more than a triple click to occur but GTK doesn't report
- more-than-triple clicks. Also used for keeping track of scroll events.*/
-static jint click_count = 1;
-static guint32 button_click_time = 0;
-static GdkWindow *button_window = NULL;
-static guint button_number_direction = -1;
-static int hasBeenDragged;
-
-static gboolean
-component_button_press_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventButton *event,
- jobject peer)
-{
- /* Ignore double and triple click events. */
- if (event->type == GDK_2BUTTON_PRESS
- || event->type == GDK_3BUTTON_PRESS)
- return FALSE;
-
- if ((event->time < (button_click_time + MULTI_CLICK_TIME))
- && (event->window == button_window)
- && (event->button == button_number_direction))
- click_count++;
- else
- click_count = 1;
-
- button_click_time = event->time;
- button_window = event->window;
- button_number_direction = event->button;
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postMouseEventID,
- AWT_MOUSE_PRESSED,
- (jlong)event->time,
- cp_gtk_state_to_awt_mods (event->state)
- | button_to_awt_mods (event->button),
- (jint)event->x,
- (jint)event->y,
- click_count,
- (event->button == 3) ? JNI_TRUE :
- JNI_FALSE);
-
- hasBeenDragged = FALSE;
-
- return FALSE;
-}
-
-static gboolean
-component_button_release_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventButton *event,
- jobject peer)
-{
- int width, height;
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postMouseEventID,
- AWT_MOUSE_RELEASED,
- (jlong)event->time,
- cp_gtk_state_to_awt_mods (event->state)
- | button_to_awt_mods (event->button),
- (jint)event->x,
- (jint)event->y,
- click_count,
- JNI_FALSE);
-
- /* Generate an AWT click event only if the release occured in the
- window it was pressed in, and the mouse has not been dragged since
- the last time it was pressed. */
- gdk_drawable_get_size (event->window, &width, &height);
- if (! hasBeenDragged
- && event->x >= 0
- && event->y >= 0
- && event->x <= width
- && event->y <= height)
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postMouseEventID,
- AWT_MOUSE_CLICKED,
- (jlong)event->time,
- cp_gtk_state_to_awt_mods (event->state)
- | button_to_awt_mods (event->button),
- (jint)event->x,
- (jint)event->y,
- click_count,
- JNI_FALSE);
- }
- return FALSE;
-}
-
-static gboolean
-component_motion_notify_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventMotion *event,
- jobject peer)
-{
- if (event->state & (GDK_BUTTON1_MASK
- | GDK_BUTTON2_MASK
- | GDK_BUTTON3_MASK
- | GDK_BUTTON4_MASK
- | GDK_BUTTON5_MASK))
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postMouseEventID,
- AWT_MOUSE_DRAGGED,
- (jlong)event->time,
- state_to_awt_mods_with_button_states (event->state),
- (jint)event->x,
- (jint)event->y,
- 0,
- JNI_FALSE);
-
- hasBeenDragged = TRUE;
- }
- else
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, postMouseEventID,
- AWT_MOUSE_MOVED,
- (jlong)event->time,
- cp_gtk_state_to_awt_mods (event->state),
- (jint)event->x,
- (jint)event->y,
- 0,
- JNI_FALSE);
- }
- return FALSE;
-}
-
-static gboolean
-component_scroll_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventScroll *event,
- jobject peer)
-{
- int rotation;
- /** Record click count for specific direction. */
- if ((event->time < (button_click_time + MULTI_CLICK_TIME))
- && (event->window == button_window)
- && (event->direction == button_number_direction))
- click_count++;
- else
- click_count = 1;
-
- button_click_time = event->time;
- button_window = event->window;
- button_number_direction = event->direction;
-
- if (event->direction == GDK_SCROLL_UP
- || event->direction == GDK_SCROLL_LEFT)
- rotation = -1;
- else
- rotation = 1;
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postMouseWheelEventID,
- AWT_MOUSE_WHEEL,
- (jlong)event->time,
- cp_gtk_state_to_awt_mods (event->state),
- (jint)event->x,
- (jint)event->y,
- click_count,
- JNI_FALSE,
- AWT_WHEEL_UNIT_SCROLL,
- 1 /* amount */,
- rotation);
- return FALSE;
-}
-
-static gboolean
-component_enter_notify_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventCrossing *event,
- jobject peer)
-{
- /* We are not interested in enter events that are due to
- grab/ungrab and not to actually crossing boundaries */
- if (event->mode == GDK_CROSSING_NORMAL)
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, postMouseEventID,
- AWT_MOUSE_ENTERED,
- (jlong)event->time,
- state_to_awt_mods_with_button_states (event->state),
- (jint)event->x,
- (jint)event->y,
- 0,
- JNI_FALSE);
- }
- return FALSE;
-}
-
-static gboolean
-component_leave_notify_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventCrossing *event,
- jobject peer)
-{
- /* We are not interested in leave events that are due to
- grab/ungrab and not to actually crossing boundaries */
- if (event->mode == GDK_CROSSING_NORMAL)
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postMouseEventID,
- AWT_MOUSE_EXITED,
- (jlong)event->time,
- state_to_awt_mods_with_button_states (event->state),
- (jint)event->x,
- (jint)event->y,
- 0,
- JNI_FALSE);
- }
- return FALSE;
-}
-
-static gboolean
-component_expose_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventExpose *event,
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postExposeEventID,
- (jint)event->area.x,
- (jint)event->area.y,
- (jint)event->area.width,
- (jint)event->area.height);
-
- return FALSE;
-}
-
-static gboolean
-component_focus_in_cb (GtkWidget *widget __attribute((unused)),
- GdkEventFocus *event __attribute((unused)),
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postFocusEventID,
- AWT_FOCUS_GAINED,
- JNI_FALSE);
-
- return FALSE;
-}
-
-static gboolean
-component_focus_out_cb (GtkWidget *widget __attribute((unused)),
- GdkEventFocus *event __attribute((unused)),
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postFocusEventID,
- AWT_FOCUS_LOST,
- JNI_FALSE);
-
- return FALSE;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
deleted file mode 100644
index fabadc8ca..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.c -- Native
- implementation of GtkEmbeddedWindowPeer
- Copyright (C) 2003, 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 "gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_create
- (JNIEnv *env, jobject obj, jlong socket_id)
-{
- GtkWidget *window;
- GtkWidget *fixed;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- window = gtk_plug_new ((GdkNativeWindow) socket_id);
-
- gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
-
- fixed = gtk_fixed_new ();
- gtk_container_add (GTK_CONTAINER (window), fixed);
-
- gtk_widget_show (fixed);
-
- gtkpeer_set_widget (env, obj, window);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkEmbeddedWindowPeer_construct
- (JNIEnv *env, jobject obj, jlong socket_id)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- if (GTK_WIDGET_REALIZED (GTK_WIDGET (ptr)))
- g_printerr ("ERROR: GtkPlug is already realized\n");
-
- gtk_plug_construct (GTK_PLUG (ptr), (GdkNativeWindow) socket_id);
-
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
deleted file mode 100644
index 10f512f29..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFileDialogPeer.c
+++ /dev/null
@@ -1,302 +0,0 @@
-/* gtkfiledialogpeer.c -- Native implementation of GtkFileDialogPeer
- Copyright (C) 1998, 1999, 2002, 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
-#include "gnu_java_awt_peer_gtk_GtkFileDialogPeer.h"
-
-#define AWT_FILEDIALOG_LOAD 0
-#define AWT_FILEDIALOG_SAVE 1
-
-static void handle_response_cb (GtkDialog *dialog,
- gint responseId,
- jobject peer_obj);
-
-static jmethodID gtkSetFilenameID;
-static jmethodID gtkHideFileDialogID;
-static jmethodID gtkDisposeFileDialogID;
-static jmethodID filenameFilterCallbackID;
-
-void
-cp_gtk_filedialog_init_jni (void)
-{
- jclass gtkfiledialogpeer;
-
- gtkfiledialogpeer =
- (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkFileDialogPeer");
-
- gtkDisposeFileDialogID =
- (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkfiledialogpeer,
- "gtkDisposeFileDialog", "()V");
-
- gtkHideFileDialogID =
- (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkfiledialogpeer,
- "gtkHideFileDialog", "()V");
-
- gtkSetFilenameID =
- (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkfiledialogpeer,
- "gtkSetFilename",
- "(Ljava/lang/String;)V");
-
- filenameFilterCallbackID =
- (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkfiledialogpeer,
- "filenameFilterCallback",
- "(Ljava/lang/String;)Z");
-}
-
-/*
- * Make a new file selection dialog
- */
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_create
- (JNIEnv *env, jobject obj, jobject parent, jint mode)
-{
- void *parentp;
- gpointer widget;
-
- gdk_threads_enter ();
-
- /* Create global reference and save it for future use */
- gtkpeer_set_global_ref (env, obj);
-
- parentp = gtkpeer_get_widget(env, parent);
-
- if (mode == AWT_FILEDIALOG_LOAD)
- widget = gtk_file_chooser_dialog_new
- ("Open File",
- GTK_WINDOW(parentp),
- GTK_FILE_CHOOSER_ACTION_OPEN,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
- NULL);
- else
- {
- widget = gtk_file_chooser_dialog_new
- ("Save File",
- GTK_WINDOW(parentp),
- GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
- NULL);
-#if GTK_MINOR_VERSION >= 8
- gtk_file_chooser_set_do_overwrite_confirmation
- (GTK_FILE_CHOOSER (widget), TRUE);
-#endif
- }
-
-
- /* GtkFileChooserDialog is not modal by default */
- gtk_window_set_modal (GTK_WINDOW (widget), TRUE);
-
- /* We must add this window to the group so input in the others are
- disable while it is being shown */
- gtk_window_group_add_window (cp_gtk_global_window_group,
- GTK_WINDOW (widget));
-
- gtkpeer_set_widget (env, obj, widget);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr = NULL;
- jobject gref;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- /* FileDialog signals */
- g_signal_connect (G_OBJECT (ptr), "response",
- G_CALLBACK (handle_response_cb), gref);
-
- /* Component signals */
- cp_gtk_component_connect_signals (G_OBJECT (ptr), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jstring JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeGetDirectory
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- const char *str;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- str = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(ptr));
-
- gdk_threads_leave ();
-
- return (*env)->NewStringUTF(env, str);
-}
-
-
-/* This function interfaces with the Java callback method of the same name.
- This function extracts the filename from the GtkFileFilterInfo object,
- and passes it to the Java method. The Java method will call the filter's
- accept() method and will give back the return value. */
-static gboolean filename_filter_cb (const GtkFileFilterInfo *filter_info,
- gpointer obj)
-{
- jstring *filename;
- gboolean accepted;
-
- filename = (*cp_gtk_gdk_env())->NewStringUTF(cp_gtk_gdk_env(), filter_info->filename);
-
- accepted = (*cp_gtk_gdk_env())->CallBooleanMethod(cp_gtk_gdk_env(), obj,
- filenameFilterCallbackID,
- filename);
-
- return accepted;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFilenameFilter
- (JNIEnv *env, jobject obj, jobject filter_obj __attribute__((unused)))
-{
- void *ptr;
- GtkFileFilter *filter;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- filter = gtk_file_filter_new();
- gtk_file_filter_add_custom(filter, GTK_FILE_FILTER_FILENAME,
- filename_filter_cb, obj, NULL);
-
- gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(ptr), filter);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetDirectory
- (JNIEnv *env, jobject obj, jstring directory)
-{
- void *ptr;
- const char *str;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- str = (*env)->GetStringUTFChars (env, directory, 0);
-
- gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(ptr), str);
-
- (*env)->ReleaseStringUTFChars (env, directory, str);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_nativeSetFile
- (JNIEnv *env, jobject obj, jstring filename)
-{
- void *ptr;
- const char *str;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- str = (*env)->GetStringUTFChars (env, filename, 0);
-
- gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (ptr), str);
-
- (*env)->ReleaseStringUTFChars (env, filename, str);
-
- gdk_threads_leave ();
-}
-
-static void
-handle_response_cb (GtkDialog *dialog __attribute__((unused)),
- gint responseId,
- jobject peer_obj)
-{
- void *ptr;
- G_CONST_RETURN gchar *fileName;
- jstring str_fileName = NULL;
-
- /* We only need this for the case when the user closed the window,
- or clicked ok or cancel. */
- if (responseId != GTK_RESPONSE_DELETE_EVENT
- && responseId != GTK_RESPONSE_ACCEPT
- && responseId != GTK_RESPONSE_CANCEL)
- return;
-
- ptr = gtkpeer_get_widget (cp_gtk_gdk_env(), peer_obj);
-
- if (responseId == GTK_RESPONSE_DELETE_EVENT)
- {
- /* We can dispose of the dialog now (and unblock show) */
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer_obj,
- gtkDisposeFileDialogID);
-
- return;
- }
-
- if (responseId == GTK_RESPONSE_ACCEPT)
- {
- fileName = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (GTK_WIDGET (ptr)));
- str_fileName = (*cp_gtk_gdk_env())->NewStringUTF (cp_gtk_gdk_env(), fileName);
- }
-
- /* Set the Java object field 'file' with this value. */
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer_obj,
- gtkSetFilenameID, str_fileName);
-
- /* We can hide the dialog now (and unblock show) */
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer_obj,
- gtkHideFileDialogID);
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
deleted file mode 100644
index ef7df0f03..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkFramePeer.c
+++ /dev/null
@@ -1,234 +0,0 @@
-/* gtkframepeer.c -- Native implementation of GtkFramePeer
- Copyright (C) 1998, 1999, 2002 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 "gnu_java_awt_peer_gtk_GtkFramePeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_removeMenuBarPeer
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- void *mptr;
- void *fixed;
- GList* children;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
- children = gtk_container_get_children (GTK_CONTAINER (fixed));
-
- while (children != NULL && !GTK_IS_MENU_SHELL (children->data))
- {
- children = children->next;
- }
-
- /* If there's a menu bar, remove it. */
- if (children != NULL)
- {
- mptr = children->data;
-
- /* This will actually destroy the MenuBar. By removing it from
- its parent, the reference count for the MenuBar widget will
- decrement to 0. The widget will be automatically destroyed by
- GTK. */
- gtk_container_remove (GTK_CONTAINER (fixed), GTK_WIDGET (mptr));
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarPeer
- (JNIEnv *env, jobject obj, jobject menubar)
-{
- void *ptr;
- void *mptr;
- void *fixed;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- if (menubar)
- {
- mptr = gtkpeer_get_widget (env, menubar);
-
- fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
- gtk_fixed_put (GTK_FIXED (fixed), mptr, 0, 0);
- gtk_widget_show (mptr);
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight
- (JNIEnv *env, jobject obj __attribute__((unused)), jobject menubar)
-{
- GtkWidget *ptr;
- GtkRequisition requisition;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, menubar);
-
- gtk_widget_size_request (ptr, &requisition);
-
- gdk_threads_leave ();
-
- return requisition.height;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarWidth
- (JNIEnv *env, jobject obj, jobject menubar, jint width)
-{
- gdk_threads_enter ();
-
- Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarWidthUnlocked
- (env, obj, menubar, width);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_setMenuBarWidthUnlocked
- (JNIEnv *env, jobject obj __attribute__((unused)), jobject menubar, jint width)
-{
- GtkWidget *ptr;
- GtkRequisition natural_req;
-
- if (menubar)
- {
- ptr = gtkpeer_get_widget (env, menubar);
-
- /* Get the menubar's natural size request. */
- gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1);
- gtk_widget_size_request (GTK_WIDGET (ptr), &natural_req);
-
- /* Set the menubar's size request to width by natural_req.height. */
- gtk_widget_set_size_request (GTK_WIDGET (ptr),
- width, natural_req.height);
- }
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_gtkFixedSetVisible
- (JNIEnv *env, jobject obj, jboolean visible)
-{
- void *ptr;
- void *fixed;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- fixed = gtk_container_get_children (GTK_CONTAINER (ptr))->data;
-
- if (visible)
- gtk_widget_show (GTK_WIDGET (fixed));
- else
- gtk_widget_hide (GTK_WIDGET (fixed));
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_nativeSetIconImage
- (JNIEnv *env, jobject obj, jobject gtkimage)
-{
- void *ptr;
- GdkPixbuf *pixbuf = NULL;
-
- gdk_threads_enter ();
-
- pixbuf = cp_gtk_image_get_pixbuf (env, gtkimage);
- g_assert (pixbuf != NULL);
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_window_set_icon (GTK_WINDOW (ptr), pixbuf);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_maximize
-(JNIEnv *env, jobject obj)
-{
- void *ptr;
- gdk_threads_enter ();
- ptr = gtkpeer_get_widget (env, obj);
- gtk_window_maximize (GTK_WINDOW (ptr));
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_unmaximize
-(JNIEnv *env, jobject obj)
-{
- void *ptr;
- gdk_threads_enter ();
- ptr = gtkpeer_get_widget (env, obj);
- gtk_window_unmaximize (GTK_WINDOW (ptr));
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_iconify
-(JNIEnv *env, jobject obj)
-{
- void *ptr;
- gdk_threads_enter ();
- ptr = gtkpeer_get_widget (env, obj);
- gtk_window_iconify (GTK_WINDOW (ptr));
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkFramePeer_deiconify
-(JNIEnv *env, jobject obj)
-{
- void *ptr;
- gdk_threads_enter ();
- ptr = gtkpeer_get_widget (env, obj);
- gtk_window_deiconify (GTK_WINDOW (ptr));
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
deleted file mode 100644
index e0ba50849..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* gtkgenericpeer.c -- Native implementation of GtkGenericPeer
- Copyright (C) 1998, 1999, 2002, 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkGenericPeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkGenericPeer_initIDs
-(JNIEnv *env, jclass clz __attribute__((unused)))
-{
- gtkpeer_init_widget_IDs(env);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- /* For now the native state for any object must be a widget.
- However, a subclass could override dispose() if required. */
- gtk_widget_destroy (GTK_WIDGET (ptr));
-
- /* Delete global reference. */
- gtkpeer_del_global_ref(env, obj);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkGenericPeer_gtkWidgetModifyFont
- (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
-{
- const char *font_name;
- void *ptr;
- PangoFontDescription *font_desc;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- font_name = (*env)->GetStringUTFChars (env, name, NULL);
-
- font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc,
- size * cp_gtk_dpi_conversion_factor);
-
- if (style & AWT_STYLE_BOLD)
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-
- if (style & AWT_STYLE_ITALIC)
- pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
-
- gtk_widget_modify_font (GTK_WIDGET(ptr), font_desc);
-
- pango_font_description_free (font_desc);
-
- (*env)->ReleaseStringUTFChars (env, name, font_name);
-
- gdk_threads_leave();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
deleted file mode 100644
index 0b0dbec4b..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkImage.c
+++ /dev/null
@@ -1,434 +0,0 @@
-/* gtkimage.c
- Copyright (C) 2005, 2006, 2007 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 "jcl.h"
-#include "gtkpeer.h"
-
-#include "gnu_java_awt_peer_gtk_GtkImage.h"
-
-/* The constant fields in java.awt.Image */
-#define SCALE_DEFAULT 1
-#define SCALE_FAST 2
-#define SCALE_SMOOTH 4
-#define SCALE_REPLICATE 8
-#define SCALE_AREA_AVERAGING 16
-
-/* local stuff */
-static GdkInterpType mapHints(jint hints);
-static void createRawData (JNIEnv * env, jobject obj, void *ptr);
-static void setWidthHeight (JNIEnv * env, jobject obj, int width, int height);
-
-/**
- * Loads a pixbuf from a file.
- */
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_loadPixbuf
- (JNIEnv *env, jobject obj, jstring name)
-{
- const char *filename;
- int width, height;
- GdkPixbuf *pixbuf;
-
- /* Don't use the JCL convert function because it throws an exception
- on failure */
- filename = (*env)->GetStringUTFChars (env, name, 0);
-
- if (filename == NULL)
- return JNI_FALSE;
-
- pixbuf = gdk_pixbuf_new_from_file (filename, NULL);
- if (pixbuf == NULL)
- {
- (*env)->ReleaseStringUTFChars (env, name, filename);
- return JNI_FALSE;
- }
-
- width = gdk_pixbuf_get_width (pixbuf);
- height = gdk_pixbuf_get_height (pixbuf);
-
- createRawData (env, obj, pixbuf);
- setWidthHeight(env, obj, width, height);
- (*env)->ReleaseStringUTFChars (env, name, filename);
-
- return JNI_TRUE;
-}
-
-/*
- * Creates the image from an array of java bytes.
- */
-JNIEXPORT jboolean JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_loadImageFromData
- (JNIEnv *env, jobject obj, jbyteArray data)
-{
- jbyte *src;
- GdkPixbuf* pixbuf;
- GdkPixbufLoader* loader;
- int len;
- int width;
- int height;
-
- src = (*env)->GetByteArrayElements (env, data, NULL);
- len = (*env)->GetArrayLength (env, data);
-
- loader = gdk_pixbuf_loader_new ();
-
- gdk_pixbuf_loader_write (loader, (guchar *)src, len, NULL);
- gdk_pixbuf_loader_close (loader, NULL);
-
- (*env)->ReleaseByteArrayElements (env, data, src, 0);
-
- pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
-
- if (pixbuf == NULL)
- {
- g_object_unref (loader);
- createRawData (env, obj, NULL);
- return JNI_FALSE;
- }
-
- g_object_ref (pixbuf);
- g_object_unref (loader);
-
- width = gdk_pixbuf_get_width (pixbuf);
- height = gdk_pixbuf_get_height (pixbuf);
-
- createRawData (env, obj, pixbuf);
- setWidthHeight(env, obj, width, height);
-
- return JNI_TRUE;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_createFromPixbuf
-(JNIEnv *env, jobject obj)
-{
- int width, heigth;
- GdkPixbuf *pixbuf = cp_gtk_image_get_pixbuf (env, obj);
- width = gdk_pixbuf_get_width (pixbuf);
- heigth = gdk_pixbuf_get_height (pixbuf);
- setWidthHeight(env, obj, width, heigth);
-}
-
-/**
- * Returns a copy of the pixel data as a java array.
- */
-JNIEXPORT jintArray JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_getPixels(JNIEnv *env, jobject obj)
-{
- GdkPixbuf *pixbuf;
- int width, height, rowstride;
- guchar *pixeldata;
- jintArray result_array;
- jint *result_array_iter, *dst;
- int i,j;
-
- gdk_threads_enter ();
-
- pixbuf = cp_gtk_image_get_pixbuf (env, obj);
- width = gdk_pixbuf_get_width (pixbuf);
- height = gdk_pixbuf_get_height (pixbuf);
- 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);
-
-
- pixeldata = gdk_pixbuf_get_pixels (pixbuf);
-
- g_assert (gdk_pixbuf_get_bits_per_sample (pixbuf) == 8);
-
- if (gdk_pixbuf_get_has_alpha (pixbuf))
- {
- for(i = 0 ; i < height; i++)
- {
- memcpy(dst, (void *)pixeldata, width * 4);
- dst += width;
- 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++)
-
-#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;
- }
- }
-
- (*env)->ReleaseIntArrayElements (env, result_array, result_array_iter, 0);
-
- gdk_threads_leave ();
- return result_array;
-}
-
-/**
- * Returns a copy of the pixel data as a java array.
- * (GdkPixbuf only)
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_setPixels(JNIEnv *env, jobject obj,
- jintArray pixels)
-{
- GdkPixbuf *pixbuf = cp_gtk_image_get_pixbuf (env, obj);
- int width, height, rowstride;
- guchar *pixeldata;
- jint *src_array_iter, *src;
- int i;
-
- width = gdk_pixbuf_get_width (pixbuf);
- height = gdk_pixbuf_get_height (pixbuf);
- rowstride = gdk_pixbuf_get_rowstride (pixbuf);
-
- src = src_array_iter =
- (*env)->GetIntArrayElements (env, pixels, NULL);
-
- pixeldata = gdk_pixbuf_get_pixels (pixbuf);
- for(i = 0 ; i < height; i++)
- {
- memcpy((void *)pixeldata, (void *)src, width * 4);
- src += width;
- pixeldata += rowstride;
- }
-
- (*env)->ReleaseIntArrayElements (env, pixels, src_array_iter, 0);
-}
-
-/**
- * Allocates a Gtk Pixbuf
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_createPixbuf(JNIEnv *env, jobject obj)
-{
- int width, height;
- jclass cls;
- jfieldID field;
-
- cls = (*env)->GetObjectClass (env, obj);
- field = (*env)->GetFieldID (env, cls, "width", "I");
- g_assert (field != 0);
- width = (*env)->GetIntField (env, obj, field);
-
- field = (*env)->GetFieldID (env, cls, "height", "I");
- g_assert (field != 0);
- height = (*env)->GetIntField (env, obj, field);
-
- createRawData (env, obj, gdk_pixbuf_new (GDK_COLORSPACE_RGB,
- TRUE,
- 8,
- width,
- height));
-}
-
-/**
- * Allocates a Gtk Pixbuf
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_initFromBuffer(JNIEnv *env, jobject obj,
- jlong bufferPointer)
-{
- int width, height;
- jclass cls;
- jfieldID field;
- GdkPixbuf *pixbuf;
- const guchar *bp = JLONG_TO_PTR(const guchar, bufferPointer);
-
- g_assert(bp != NULL);
- cls = (*env)->GetObjectClass( env, obj );
- field = (*env)->GetFieldID( env, cls, "width", "I" );
- g_assert( field != 0 );
- width = (*env)->GetIntField( env, obj, field );
-
- field = (*env)->GetFieldID( env, cls, "height", "I" );
- g_assert( field != 0 );
- height = (*env)->GetIntField( env, obj, field );
-
- pixbuf = gdk_pixbuf_new_from_data( bp,
- GDK_COLORSPACE_RGB, TRUE, 8,
- width, height, width * 4, NULL, NULL );
- g_assert( pixbuf != NULL );
- createRawData( env, obj, pixbuf );
-}
-
-/**
- * Frees the Gtk Pixbuf.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_freePixbuf(JNIEnv *env, jobject obj)
-{
- g_object_unref (cp_gtk_image_get_pixbuf (env, obj));
-}
-
-/**
- * Sets this to a scaled version of the original pixbuf
- * width and height of the destination GtkImage must be set.
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkImage_createScaledPixbuf(JNIEnv *env,
- jobject destination,
- jobject source,
- jint hints)
-{
- GdkPixbuf* dst;
- int width, height;
- jclass cls;
- jfieldID field;
-
- GdkPixbuf *pixbuf;
-
- cls = (*env)->GetObjectClass (env, destination);
- field = (*env)->GetFieldID (env, cls, "width", "I");
- g_assert (field != 0);
- width = (*env)->GetIntField (env, destination, field);
-
- field = (*env)->GetFieldID (env, cls, "height", "I");
- g_assert (field != 0);
- height = (*env)->GetIntField (env, destination, field);
-
- pixbuf = cp_gtk_image_get_pixbuf (env, source);
-
- dst = gdk_pixbuf_scale_simple(pixbuf,
- width, height,
- mapHints(hints));
-
- createRawData (env, destination, (void *)dst);
-}
-
-/**
- * Used by GtkFramePeer
- */
-GdkPixbuf *cp_gtk_image_get_pixbuf (JNIEnv *env, jobject obj)
-{
- jclass cls;
- jfieldID data_fid;
- jobject data;
-
- cls = (*env)->GetObjectClass (env, obj);
- data_fid = (*env)->GetFieldID (env, cls, "pixbuf",
- "Lgnu/classpath/Pointer;");
- g_assert (data_fid != 0);
- data = (*env)->GetObjectField (env, obj, data_fid);
-
- if (data == NULL)
- return NULL;
-
- return (GdkPixbuf *)JCL_GetRawData (env, data);
-}
-
-/**
- * Maps java.awt.Image scaling hints to the native GDK ones.
- */
-static GdkInterpType mapHints(jint hints)
-{
- switch ( hints )
- {
- /* For FAST, we use the nearest-neighbor. Fastest and lowest quality. */
- case SCALE_FAST:
- case SCALE_REPLICATE:
- return GDK_INTERP_NEAREST;
-
- /* Hyperbolic for smooth. Slowest too. */
- case SCALE_SMOOTH:
- return GDK_INTERP_HYPER;
-
- /* the inbetweenish method */
- case SCALE_AREA_AVERAGING:
- return GDK_INTERP_TILES;
-
- /* default to bilinear */
- }
- return GDK_INTERP_BILINEAR;
-}
-
-/* Sets the width and height fields of a GtkImage object. */
-static void setWidthHeight (JNIEnv * env, jobject obj, int width, int height)
-{
- jclass cls;
- jfieldID field;
-
- cls = (*env)->GetObjectClass (env, obj);
- g_assert (cls != 0);
- field = (*env)->GetFieldID (env, cls, "width", "I");
- g_assert (field != 0);
- (*env)->SetIntField (env, obj, field, (jint)width);
-
- field = (*env)->GetFieldID (env, cls, "height", "I");
- g_assert (field != 0);
- (*env)->SetIntField (env, obj, field, (jint)height);
-}
-
-/* Store and get the pixbuf pointer */
-static void
-createRawData (JNIEnv * env, jobject obj, void *ptr)
-{
- jclass cls;
- jobject data;
- jfieldID data_fid;
-
- cls = (*env)->GetObjectClass (env, obj);
- data_fid = (*env)->GetFieldID (env, cls, "pixbuf",
- "Lgnu/classpath/Pointer;");
- g_assert (data_fid != 0);
-
- data = JCL_NewRawDataObject (env, ptr);
-
- (*env)->SetObjectField (env, obj, data_fid, data);
-}
-
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
deleted file mode 100644
index 3703858fe..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* gtklabelpeer.c -- Native implementation of GtkLabelPeer
- Copyright (C) 1998, 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 "gnu_java_awt_peer_gtk_GtkLabelPeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkLabelPeer_create
- (JNIEnv *env, jobject obj, jstring text, jfloat xalign)
-{
- GtkWidget *label;
- GtkWidget *eventbox;
- const char *str;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- str = (*env)->GetStringUTFChars (env, text, 0);
-
- eventbox = gtk_event_box_new ();
- label = gtk_label_new (str);
- gtk_misc_set_alignment (GTK_MISC (label), xalign, 0.5);
- gtk_container_add (GTK_CONTAINER (eventbox), label);
- gtk_widget_show (label);
-
- (*env)->ReleaseStringUTFChars (env, text, str);
-
- gtkpeer_set_widget (env, obj, eventbox);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetGetPreferredDimensions
- (JNIEnv *env, jobject obj, jintArray jdims)
-{
- void *ptr;
- jint *dims;
- GtkWidget *label;
- GtkRequisition current_req;
- GtkRequisition natural_req;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- label = gtk_bin_get_child (GTK_BIN (ptr));
-
- dims = (*env)->GetIntArrayElements (env, jdims, 0);
- dims[0] = dims[1] = 0;
-
- /* Save the widget's current size request. */
- gtk_widget_size_request (GTK_WIDGET (label), &current_req);
-
- /* Get the widget's "natural" size request. */
- gtk_widget_set_size_request (GTK_WIDGET (label), -1, -1);
- gtk_widget_size_request (GTK_WIDGET (label), &natural_req);
-
- /* Reset the widget's size request. */
- gtk_widget_set_size_request (GTK_WIDGET (label),
- current_req.width, current_req.height);
-
- dims[0] = natural_req.width;
- dims[1] = natural_req.height;
-
- (*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetModifyFont
- (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
-{
- const char *font_name;
- void *ptr;
- GtkWidget *label;
- PangoFontDescription *font_desc;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- font_name = (*env)->GetStringUTFChars (env, name, NULL);
-
- label = gtk_bin_get_child (GTK_BIN (ptr));
-
- if (!label)
- {
- gdk_threads_leave ();
- return;
- }
-
- font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc,
- size * cp_gtk_dpi_conversion_factor);
-
- if (style & AWT_STYLE_BOLD)
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-
- if (style & AWT_STYLE_ITALIC)
- pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
-
- gtk_widget_modify_font (GTK_WIDGET (label), font_desc);
-
- pango_font_description_free (font_desc);
-
- (*env)->ReleaseStringUTFChars (env, name, font_name);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeText
- (JNIEnv *env, jobject obj, jstring text)
-{
- const char *str;
- void *ptr;
- GtkWidget *label;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- str = (*env)->GetStringUTFChars (env, text, 0);
-
- label = gtk_bin_get_child (GTK_BIN (ptr));
-
- gtk_label_set_label (GTK_LABEL (label), str);
-
- (*env)->ReleaseStringUTFChars (env, text, str);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkLabelPeer_nativeSetAlignment
- (JNIEnv *env, jobject obj, jfloat xalign)
-{
- void *ptr;
- GtkWidget *label;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- label = gtk_bin_get_child (GTK_BIN(ptr));
-
- gtk_misc_set_alignment (GTK_MISC (label), xalign, 0.5);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeBounds
- (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
-{
- GtkWidget *widget;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- widget = GTK_WIDGET (ptr);
-
- /* We assume that -1 is a width or height and not a request for the
- widget's natural size. */
- width = width < 0 ? 0 : width;
- height = height < 0 ? 0 : height;
-
- if (!(width == 0 && height == 0))
- {
- /* Set the event box's size request... */
- gtk_widget_set_size_request (widget, width, height);
- /* ...and the label's size request. */
- gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (widget)),
- width, height);
-
- if (widget->parent != NULL && GTK_IS_FIXED (widget->parent))
- gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y);
- }
-
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
deleted file mode 100644
index 4b7b63e6d..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
+++ /dev/null
@@ -1,549 +0,0 @@
-/* GtkListPeer.c -- implements GtkListPeer's native methods
- Copyright (C) 1998, 1999, 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkListPeer.h"
-
-static jmethodID postListItemEventID;
-static GtkWidget *list_get_widget (GtkWidget *widget);
-
-void
-cp_gtk_list_init_jni (void)
-{
- jclass gtklistpeer;
-
- gtklistpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkListPeer");
-
- postListItemEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtklistpeer,
- "postItemEvent",
- "(II)V");
-}
-
-enum
- {
- COLUMN_STRING,
- N_COLUMNS
- };
-
-static gboolean item_highlighted_cb (GtkTreeSelection *selection,
- GtkTreeModel *model,
- GtkTreePath *path,
- gboolean path_currently_selected,
- jobject peer);
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_create
- (JNIEnv *env, jobject obj, jint rows)
-{
- GtkWidget *sw;
- GtkWidget *list;
- GtkWidget *eventbox;
- GtkCellRenderer *renderer;
- GtkTreeViewColumn *column;
- GtkListStore *list_store;
- GtkTreeIter iter;
- GtkRequisition req;
- gint i;
-
- gdk_threads_enter ();
-
- /* Create global reference and save it for future use */
- gtkpeer_set_global_ref (env, obj);
-
- list_store = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING);
- /* Add the number of rows so that we can calculate the tree view's
- size request. */
- for (i = 0; i < rows; i++)
- {
- gtk_list_store_append (list_store, &iter);
- gtk_list_store_set (list_store, &iter,
- COLUMN_STRING, "",
- -1);
- }
- list = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store));
- renderer = gtk_cell_renderer_text_new ();
- column = gtk_tree_view_column_new_with_attributes (NULL,
- renderer,
- "text",
- COLUMN_STRING,
- NULL);
-
- eventbox = gtk_event_box_new ();
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (eventbox), sw);
-
- gtk_tree_view_append_column (GTK_TREE_VIEW (list), column);
-
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list), FALSE);
-
- gtk_widget_size_request (GTK_WIDGET (list), &req);
-
- gtk_widget_set_size_request (GTK_WIDGET (list), req.width, req.height);
-
- gtk_container_add (GTK_CONTAINER (sw), list);
-
- /* Remove the blank rows. */
- gtk_list_store_clear (list_store);
-
- gtk_widget_show (list);
- gtk_widget_show (sw);
-
- gtkpeer_set_widget (env, obj, eventbox);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jobject gref;
- GtkWidget *list;
- GtkTreeSelection *selection;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
- gtk_tree_selection_set_select_function (selection, item_highlighted_cb,
- gref, NULL);
-
- cp_gtk_component_connect_signals (G_OBJECT (list), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetModifyFont
- (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
-{
- const char *font_name;
- void *ptr;
- GtkWidget *list;
- PangoFontDescription *font_desc;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
-
- font_name = (*env)->GetStringUTFChars (env, name, NULL);
-
- font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc,
- size * cp_gtk_dpi_conversion_factor);
-
- if (style & AWT_STYLE_BOLD)
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-
- if (style & AWT_STYLE_ITALIC)
- pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
-
- gtk_widget_modify_font (GTK_WIDGET (list), font_desc);
-
- pango_font_description_free (font_desc);
-
- (*env)->ReleaseStringUTFChars (env, name, font_name);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_gtkWidgetRequestFocus
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkWidget *list;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- gtk_widget_grab_focus (list);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_append
- (JNIEnv *env, jobject obj, jobjectArray items)
-{
- void *ptr;
- GtkWidget *list;
- GtkTreeIter iter;
- GtkTreeModel *list_store;
- jint count;
- jint i;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- count = (*env)->GetArrayLength (env, items);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
-
- for (i = 0; i < count; i++)
- {
- const char *text;
- jobject item;
-
- item = (*env)->GetObjectArrayElement (env, items, i);
-
- text = (*env)->GetStringUTFChars (env, item, NULL);
- gtk_list_store_append (GTK_LIST_STORE (list_store), &iter);
- gtk_list_store_set (GTK_LIST_STORE (list_store), &iter,
- COLUMN_STRING, text,
- -1);
- (*env)->ReleaseStringUTFChars (env, item, text);
- (*env)->DeleteLocalRef(env, item);
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_add
- (JNIEnv *env, jobject obj, jstring text, jint index)
-{
- void *ptr;
- const char *str;
- GtkWidget *list;
- GtkTreeIter iter;
- GtkTreeModel *list_store;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- str = (*env)->GetStringUTFChars (env, text, NULL);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
-
- if (index == -1)
- gtk_list_store_append (GTK_LIST_STORE (list_store), &iter);
- else
- gtk_list_store_insert (GTK_LIST_STORE (list_store), &iter, index);
-
- gtk_list_store_set (GTK_LIST_STORE (list_store), &iter,
- COLUMN_STRING, str, -1);
-
- (*env)->ReleaseStringUTFChars (env, text, str);
-
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_delItems
- (JNIEnv *env, jobject obj, jint start, jint end)
-{
- void *ptr;
- GtkWidget *list;
- GtkTreeIter iter;
- GtkTreeModel *list_store;
- jint i;
- jint num_items;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- list_store = gtk_tree_view_get_model (GTK_TREE_VIEW (list));
-
- /* Special case: remove all rows. */
- if (end == -1)
- gtk_list_store_clear (GTK_LIST_STORE (list_store));
- else
- {
- i = 0;
- num_items = end - start + 1;
- gtk_tree_model_iter_nth_child (list_store, &iter, NULL, start);
- while (i < num_items)
- {
- gtk_list_store_remove (GTK_LIST_STORE (list_store), &iter);
- i++;
- }
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_select
- (JNIEnv *env, jobject obj, jint index)
-{
- void *ptr;
- GtkWidget *list;
- GtkTreePath *path;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- path = gtk_tree_path_new_from_indices (index, -1);
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (list), path, NULL, FALSE);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_deselect
- (JNIEnv *env, jobject obj, jint index)
-{
- void *ptr;
- GtkWidget *list;
- GtkTreeSelection *selection;
- GtkTreePath *path;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
- path = gtk_tree_path_new_from_indices (index, -1);
- gtk_tree_selection_unselect_path (selection, path);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize
- (JNIEnv *env, jobject obj, jint rows, jint visible_rows, jintArray jdims)
-{
- void *ptr;
- jint *dims;
- GtkRequisition current_req;
- GtkRequisition natural_req;
- GtkWidget* bin;
-
- gdk_threads_enter ();
-
- dims = (*env)->GetIntArrayElements (env, jdims, NULL);
- dims[0] = dims[1] = 0;
-
- ptr = gtkpeer_get_widget (env, obj);
- bin = list_get_widget (GTK_WIDGET (ptr));
-
- /* Save the widget's current size request. */
- gtk_widget_size_request (bin, &current_req);
-
- /* Get the widget's "natural" size request. */
- gtk_widget_set_size_request (GTK_WIDGET (ptr), -1, -1);
- gtk_widget_size_request (bin, &natural_req);
-
- /* Reset the widget's size request. */
- gtk_widget_set_size_request (bin,
- current_req.width, current_req.height);
-
- dims[0] = natural_req.width;
-
- /* Calculate the final height, by comparing the number of rows
- in the list to the number of rows requested by the caller.
- FIXME: Is there a GTK method that counts the number of rows
- in the list? If so, we don't need to bring visible_rows from
- the Java peer. */
- if (rows == visible_rows)
- dims[1] = natural_req.height;
- else
- dims[1] = natural_req.height / visible_rows * rows;
-
- (*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
-
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT jintArray JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_getSelectedIndexes
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkWidget *list;
- GtkTreeSelection *selection;
- jintArray result_array;
- jint *result_array_iter;
- GList *current_row;
- GList *rows;
- gint *indices;
- jint count;
- jint i;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
- count = gtk_tree_selection_count_selected_rows (selection);
- if (count > 0)
- {
- current_row = rows = gtk_tree_selection_get_selected_rows (selection, NULL);
-
- result_array = (*env)->NewIntArray (env, count);
-
- result_array_iter = (*env)->GetIntArrayElements (env, result_array, NULL);
-
- for (i = 0; i < count; i++)
- {
- indices = gtk_tree_path_get_indices (current_row->data);
- result_array_iter[i] = indices ? indices[0] : -1;
- current_row = g_list_next (current_row);
- }
-
- if (rows)
- {
- g_list_foreach (rows, (GFunc) gtk_tree_path_free, NULL);
- g_list_free (rows);
- }
-
- (*env)->ReleaseIntArrayElements (env, result_array, result_array_iter, 0);
- }
- else
- result_array = NULL;
-
- gdk_threads_leave ();
-
- return result_array;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_makeVisible
- (JNIEnv *env, jobject obj, jint index)
-{
- void *ptr;
- GtkWidget *list;
- GtkTreePath *path;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- path = gtk_tree_path_new_from_indices (index, -1);
- gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (list), path,
- NULL, FALSE, 0.0, 0.0);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkListPeer_setMultipleMode
- (JNIEnv *env, jobject obj, jboolean mode)
-{
- void *ptr;
- GtkWidget *list;
- GtkTreeSelection *selection;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = list_get_widget (GTK_WIDGET (ptr));
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (list));
- gtk_tree_selection_set_mode (selection,
- mode ? GTK_SELECTION_MULTIPLE
- : GTK_SELECTION_SINGLE);
-
- gdk_threads_leave ();
-}
-
-static gboolean
-item_highlighted_cb (GtkTreeSelection *selection __attribute__((unused)),
- GtkTreeModel *model,
- GtkTreePath *path,
- gboolean path_currently_selected,
- jobject peer)
-{
- GtkTreeIter iter;
- jint row;
- gint *indices;
-
- if (gtk_tree_model_get_iter (model, &iter, path))
- {
- indices = gtk_tree_path_get_indices (path);
- row = indices ? indices[0] : -1;
-
- if (!path_currently_selected)
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postListItemEventID,
- row,
- (jint) AWT_ITEM_SELECTED);
- }
- else
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postListItemEventID,
- row,
- (jint) AWT_ITEM_DESELECTED);
- }
- }
-
- return TRUE;
-}
-
-static GtkWidget *
-list_get_widget (GtkWidget *widget)
-{
- GtkWidget *wid;
- g_assert (GTK_IS_EVENT_BOX (widget));
-
- wid = gtk_bin_get_child (GTK_BIN (widget));
- g_assert (GTK_IS_SCROLLED_WINDOW (wid));
-
- wid = gtk_bin_get_child (GTK_BIN (wid));
-
- return wid;
-}
-
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
deleted file mode 100644
index ac3fab78b..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuBarPeer.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* gtkmenubarpeer.c -- Native implementation of GtkMenuBarPeer
- Copyright (C) 1999, 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 "gnu_java_awt_peer_gtk_GtkMenuBarPeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_create
- (JNIEnv *env, jobject obj)
-{
- GtkWidget *widget;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- widget = gtk_menu_bar_new ();
- gtk_widget_show (widget);
-
- gtkpeer_set_widget (env, obj, widget);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_addMenu
- (JNIEnv *env, jobject obj, jobject menupeer)
-{
- void *mbar, *menu;
-
- gdk_threads_enter ();
-
- mbar = gtkpeer_get_widget (env, obj);
- menu = gtkpeer_get_widget (env, menupeer);
-
- gtk_menu_shell_append (GTK_MENU_SHELL (mbar), GTK_WIDGET (menu));
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuBarPeer_delMenu
- (JNIEnv *env, jobject obj, jint index)
-{
- void *ptr;
- GList *list;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- list = gtk_container_get_children (GTK_CONTAINER (ptr));
- list = g_list_nth (list, index);
- gtk_container_remove (GTK_CONTAINER (ptr), GTK_WIDGET (list->data));
-
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
deleted file mode 100644
index 6da949488..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuComponentPeer.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* gtkmenucomponentpeer.c -- Native implementation of GtkMenuComponentPeer
- Copyright (C) 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkMenuComponentPeer.h"
-
-JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuComponentPeer_dispose
- (JNIEnv *env, jobject obj)
-{
- /* For MenuComponents and its subclasses, the widgets are
- automatically destroyed by Gtk when the parent MenuBar
- is removed from the Frame. So we avoid the widget
- destruction in GtkGenericPeer dispose() by overriding
- it here. */
-
- /* However, references to the Java objects still exist in the
- state tables, so we still have to remove those. */
-
- gtkpeer_del_global_ref (env, obj);
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
deleted file mode 100644
index 965435545..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuItemPeer.c
+++ /dev/null
@@ -1,191 +0,0 @@
-/* gtkmenuitempeer.c -- Native implementation of GtkMenuItemPeer
- Copyright (C) 1999 Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING. If not, write to the
-Free Software Foundation, Inc., 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 "gnu_java_awt_peer_gtk_GtkMenuItemPeer.h"
-#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
-
-static jmethodID postMenuActionEventID;
-
-void
-cp_gtk_menuitem_init_jni (void)
-{
- jclass gtkmenuitempeer;
-
- gtkmenuitempeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkMenuItemPeer");
-
- postMenuActionEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkmenuitempeer,
- "postMenuActionEvent",
- "()V");
-}
-
-static void item_activate_cb (GtkMenuItem *item __attribute__((unused)),
- jobject peer_obj);
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_create
- (JNIEnv *env, jobject obj, jstring label)
-{
- GtkWidget *widget;
- const char *str;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- str = (*env)->GetStringUTFChars (env, label, NULL);
-
- /* "-" signals that we need a separator. */
- if (strcmp (str, "-") == 0)
- widget = gtk_menu_item_new ();
- else
- widget = gtk_menu_item_new_with_label (str);
-
- gtk_widget_show (widget);
-
- (*env)->ReleaseStringUTFChars (env, label, str);
-
- gtkpeer_set_widget (env, obj, widget);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jobject gref;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- g_signal_connect (G_OBJECT (ptr), "activate",
- G_CALLBACK (item_activate_cb), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_gtkWidgetModifyFont
- (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
-{
- const char *font_name;
- void *ptr;
- GtkWidget *label;
- PangoFontDescription *font_desc;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- font_name = (*env)->GetStringUTFChars (env, name, NULL);
-
- label = gtk_bin_get_child (GTK_BIN (ptr));
-
- if (label)
- {
- font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc,
- size * cp_gtk_dpi_conversion_factor);
-
- if (style & AWT_STYLE_BOLD)
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-
- if (style & AWT_STYLE_ITALIC)
- pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
-
- gtk_widget_modify_font (GTK_WIDGET(label), font_desc);
-
- pango_font_description_free (font_desc);
- }
-
- (*env)->ReleaseStringUTFChars (env, name, font_name);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setEnabled
- (JNIEnv *env, jobject obj, jboolean enabled)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_widget_set_sensitive (GTK_WIDGET (ptr), enabled);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuItemPeer_setLabel
- (JNIEnv *env, jobject obj, jstring label)
-{
- void *ptr;
- const char *str;
- GtkAccelLabel *accel_label;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- str = (*env)->GetStringUTFChars (env, label, NULL);
-
- accel_label = GTK_ACCEL_LABEL (GTK_BIN (ptr)->child);
-
- gtk_label_set_text (GTK_LABEL (accel_label), str);
- gtk_accel_label_refetch (accel_label);
-
- (*env)->ReleaseStringUTFChars (env, label, str);
-
- gdk_threads_leave ();
-}
-
-static void
-item_activate_cb (GtkMenuItem *item __attribute__((unused)), jobject peer_obj)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer_obj,
- postMenuActionEventID);
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
deleted file mode 100644
index 1081de253..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* gtkmenupeer.c -- Native implementation of GtkMenuPeer
- Copyright (C) 1999, 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkMenuPeer.h"
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup
- (JNIEnv *env, jobject obj, jobject parent)
-{
- void *ptr1, *ptr2;
-
- gdk_threads_enter ();
-
- ptr1 = gtkpeer_get_widget (env, obj);
-
- if (!parent)
- {
- gtk_menu_set_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu),
- gtk_accel_group_new ());
- }
- else
- {
- GtkAccelGroup *parent_accel;
-
- ptr2 = gtkpeer_get_widget (env, parent);
- parent_accel = gtk_menu_get_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr2)->submenu));
-
- gtk_menu_set_accel_group (GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu),
- parent_accel);
- }
-
- gdk_threads_leave ();
-}
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuPeer_create
- (JNIEnv *env, jobject obj, jstring label)
-{
- GtkWidget *menu_title, *menu, *toplevel;
- const char *str;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- str = (*env)->GetStringUTFChars (env, label, NULL);
-
- menu = gtk_menu_new ();
-
- if (str != NULL)
- menu_title = gtk_menu_item_new_with_label (str);
- else
- menu_title = gtk_menu_item_new();
-
- gtk_menu_item_set_submenu (GTK_MENU_ITEM (menu_title), menu);
-
- /* Allow this menu to grab the pointer. */
- toplevel = gtk_widget_get_toplevel (menu);
- if (GTK_IS_WINDOW (toplevel))
- {
- gtk_window_group_add_window (cp_gtk_global_window_group,
- GTK_WINDOW(toplevel));
- }
-
- gtk_widget_show (menu_title);
-
- gtkpeer_set_widget (env, obj, menu_title);
-
- (*env)->ReleaseStringUTFChars (env, label, str);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addTearOff
- (JNIEnv *env, jobject obj)
-{
- void *ptr1;
- GtkWidget *menu, *item;
-
- gdk_threads_enter ();
-
- ptr1 = gtkpeer_get_widget (env, obj);
-
- menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (ptr1));
- item = gtk_tearoff_menu_item_new ();
- gtk_menu_shell_append (GTK_MENU_SHELL (menu), item);
- gtk_widget_show (item);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem
- (JNIEnv *env, jobject obj, jobject menuitempeer, jint key, jboolean shift)
-{
- void *ptr1, *ptr2;
- GtkWidget *menu;
-
- gdk_threads_enter ();
-
- ptr1 = gtkpeer_get_widget (env, obj);
- ptr2 = gtkpeer_get_widget (env, menuitempeer);
-
- menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(ptr1));
- gtk_menu_shell_append (GTK_MENU_SHELL(menu), GTK_WIDGET (ptr2));
-
- if (key)
- {
- gtk_widget_add_accelerator (GTK_WIDGET (ptr2), "activate",
- gtk_menu_get_accel_group (GTK_MENU (menu)), key,
- (GDK_CONTROL_MASK
- | ((shift) ? GDK_SHIFT_MASK : 0)),
- GTK_ACCEL_VISIBLE);
- }
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem
- (JNIEnv *env, jobject obj, jint index)
-{
- void *ptr;
- GList *list;
- GtkWidget *menu;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- menu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(ptr));
-
- list = gtk_container_get_children (GTK_CONTAINER (menu));
- list = g_list_nth (list, index);
- gtk_container_remove (GTK_CONTAINER (menu), GTK_WIDGET (list->data));
-
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
deleted file mode 100644
index e52e6de51..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPanelPeer.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* gtkpanelpeer.c -- Native implementation of GtkPanelPeer
- Copyright (C) 1998, 1999, 2002 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 "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
-#include "gnu_java_awt_peer_gtk_GtkPanelPeer.h"
-
-static gboolean panel_focus_in_cb (GtkWidget * widget,
- GdkEventFocus *event,
- jobject peer);
-static gboolean panel_focus_out_cb (GtkWidget * widget,
- GdkEventFocus *event,
- jobject peer);
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkPanelPeer_create
- (JNIEnv *env, jobject obj)
-{
- GtkWidget *widget;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- widget = gtk_fixed_new ();
-
- gtk_fixed_set_has_window (GTK_FIXED (widget), TRUE);
-
- GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
-
- gtkpeer_set_widget (env, obj, widget);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkPanelPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jobject gref;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- /* Panel signals. These callbacks prevent expose events being
- delivered to the panel when it is focused. */
- g_signal_connect (G_OBJECT (ptr), "focus-in-event",
- G_CALLBACK (panel_focus_in_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "focus-out-event",
- G_CALLBACK (panel_focus_out_cb), gref);
-
- /* Component signals. Exclude focus signals. */
- cp_gtk_component_connect_expose_signals (ptr, gref);
- cp_gtk_component_connect_mouse_signals (ptr, gref);
-
- gdk_threads_leave ();
-}
-
-static gboolean
-panel_focus_in_cb (GtkWidget * widget __attribute__((unused)),
- GdkEventFocus *event __attribute__((unused)),
- jobject peer __attribute__((unused)))
-{
- return TRUE;
-}
-
-static gboolean
-panel_focus_out_cb (GtkWidget * widget __attribute__((unused)),
- GdkEventFocus *event __attribute__((unused)),
- jobject peer __attribute__((unused)))
-{
- return TRUE;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
deleted file mode 100644
index 0511c051a..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkPopupMenuPeer.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* gtkpopupmenupeer.c -- Native implementation of GtkPopupMenuPeer
- Copyright (C) 1999, 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkPopupMenuPeer.h"
-
-struct pos
-{
- gint x;
- gint y;
-};
-
-static void
-menu_pos (GtkMenu *menu __attribute__((unused)),
- gint *x, gint *y,
- gboolean *push_in,
- gpointer user_data)
-{
- struct pos *p = (struct pos *) user_data;
-
- *x = p->x;
- *y = p->y;
- *push_in = TRUE;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_show
- (JNIEnv *env, jobject obj, jint x, jint y, jlong time)
-{
- void *ptr;
- struct pos *p;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- p = g_malloc (sizeof (struct pos));
- p->x = x;
- p->y = y;
-
- gtk_menu_popup (GTK_MENU (GTK_MENU_ITEM (ptr)->submenu),
- NULL, NULL, menu_pos, p, 0, time);
-
- g_free (p);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkPopupMenuPeer_setupAccelGroup
- (JNIEnv *env, jobject obj, jobject parent __attribute__((unused)))
-{
- void *ptr1;
- GtkMenu *menu;
-#if 0
- void *ptr2;
-#endif
-
- gdk_threads_enter ();
-
- ptr1 = gtkpeer_get_widget (env, obj);
-
- menu = GTK_MENU (GTK_MENU_ITEM (ptr1)->submenu);
- gtk_menu_set_accel_group (menu, gtk_accel_group_new ());
- /* FIXME: update this to use GTK-2.4 GtkActions. */
- // FIXME: _gtk_accel_group_attach is a GTK-private function, so
- // we'll need a different approach here
-#if 0
- ptr2 = gtkpeer_get_widget (env, parent);
- _gtk_accel_group_attach (gtk_menu_get_accel_group (menu),
- G_OBJECT (gtk_widget_get_toplevel (ptr2)));
-#endif
-
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
deleted file mode 100644
index 0d67b0b78..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollPanePeer.c
+++ /dev/null
@@ -1,222 +0,0 @@
-/* gtkscrollpanepeer.c -- Native implementation of GtkScrollPanePeer
- Copyright (C) 1998, 1999, 2002 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 "gnu_java_awt_peer_gtk_GtkScrollPanePeer.h"
-
-#define AWT_SCROLLPANE_SCROLLBARS_AS_NEEDED 0
-#define AWT_SCROLLPANE_SCROLLBARS_ALWAYS 1
-#define AWT_SCROLLPANE_SCROLLBARS_NEVER 2
-
-static GtkWidget *scrollpane_get_widget (GtkWidget *widget);
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_create
- (JNIEnv *env, jobject obj, int width, int height)
-{
- GtkWidget *sw;
- GtkWidget *eventbox;
-
- gdk_threads_enter ();
-
- /* Create global reference and save it for future use */
- gtkpeer_set_global_ref (env, obj);
-
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_widget_set_size_request (sw, width, height);
- eventbox = gtk_event_box_new ();
- gtk_container_add (GTK_CONTAINER (eventbox), sw);
- gtk_widget_show (sw);
-
- gtkpeer_set_widget (env, obj, eventbox);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setScrollPosition
- (JNIEnv *env, jobject obj, jint x, jint y)
-{
- GtkAdjustment *hadj, *vadj;
- GtkScrolledWindow *sw;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
-
- hadj = gtk_scrolled_window_get_hadjustment (sw);
- vadj = gtk_scrolled_window_get_vadjustment (sw);
-
- gtk_adjustment_set_value (hadj, x);
- gtk_adjustment_set_value (vadj, y);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetHScrollIncrement
- (JNIEnv *env, jobject obj, jint u)
-{
- GtkAdjustment *hadj;
- GtkScrolledWindow *sw;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
-
- hadj = gtk_scrolled_window_get_hadjustment (sw);
- hadj->step_increment = u;
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_gtkScrolledWindowSetVScrollIncrement
- (JNIEnv *env, jobject obj, jint u)
-{
- GtkAdjustment *vadj;
- GtkScrolledWindow *sw;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
-
- vadj = gtk_scrolled_window_get_hadjustment (sw);
- vadj->step_increment = u;
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getHScrollbarHeight
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkScrolledWindow *sw;
- GtkRequisition requisition;
- jint height = 0;
- jint spacing = 0;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
-
- gtk_widget_size_request (sw->hscrollbar, &requisition);
- gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL);
- height = requisition.height + spacing;
-
- gdk_threads_leave ();
-
- return height;
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_getVScrollbarWidth
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkScrolledWindow *sw;
- GtkRequisition requisition;
- jint width = 0;
- jint spacing = 0;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- sw = GTK_SCROLLED_WINDOW (scrollpane_get_widget (GTK_WIDGET (ptr)));
-
- gtk_widget_size_request (sw->vscrollbar, &requisition);
- gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL);
- width = requisition.width + spacing;
-
- gdk_threads_leave ();
-
- return width;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollPanePeer_setPolicy
- (JNIEnv *env, jobject obj, jint policy)
-{
- void *ptr;
- GtkWidget *sw;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- switch (policy)
- {
- case AWT_SCROLLPANE_SCROLLBARS_AS_NEEDED:
- policy = GTK_POLICY_AUTOMATIC;
- break;
- case AWT_SCROLLPANE_SCROLLBARS_ALWAYS:
- policy = GTK_POLICY_ALWAYS;
- break;
- case AWT_SCROLLPANE_SCROLLBARS_NEVER:
- policy = GTK_POLICY_NEVER;
- break;
- }
-
- sw = scrollpane_get_widget (GTK_WIDGET (ptr));
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), policy, policy);
-
- gdk_threads_leave ();
-}
-
-static GtkWidget *
-scrollpane_get_widget (GtkWidget *widget)
-{
- GtkWidget *wid;
- g_assert (GTK_IS_EVENT_BOX (widget));
- wid = gtk_bin_get_child (GTK_BIN(widget));
-
- return wid;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
deleted file mode 100644
index 64d91d2b2..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollbarPeer.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/* gtkscrollbarpeer.c -- Native implementation of GtkScrollbarPeer
- Copyright (C) 1998, 1999, 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 <math.h>
-#include "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
-#include "gnu_java_awt_peer_gtk_GtkScrollbarPeer.h"
-
-#define AWT_ADJUSTMENT_UNIT_INCREMENT 1
-#define AWT_ADJUSTMENT_UNIT_DECREMENT 2
-#define AWT_ADJUSTMENT_BLOCK_DECREMENT 3
-#define AWT_ADJUSTMENT_BLOCK_INCREMENT 4
-#define AWT_ADJUSTMENT_TRACK 5
-
-static jmethodID postAdjustmentEventID;
-static GtkWidget *scrollbar_get_widget (GtkWidget *widget);
-
-void
-cp_gtk_scrollbar_init_jni (void)
-{
- jclass gtkscrollbarpeer;
-
- gtkscrollbarpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkScrollbarPeer");
-
- postAdjustmentEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(),
- gtkscrollbarpeer,
- "postAdjustmentEvent",
- "(II)V");
-}
-
-#if GTK_MINOR_VERSION > 4
-static gboolean slider_moved_cb (GtkRange *range,
- GtkScrollType scroll,
- gdouble value,
- jobject obj);
-#else
-static void post_change_event_cb (GtkRange *range,
- jobject peer);
-#endif
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_create
- (JNIEnv *env, jobject obj, jint orientation, jint value,
- jint min, jint max, jint step_incr, jint page_incr, jint visible_amount)
-{
- GtkWidget *scrollbar;
- GtkWidget *eventbox;
- GtkObject *adj;
-
- /* Create global reference and save it for future use */
- gtkpeer_set_global_ref (env, obj);
-
- gdk_threads_enter ();
-
- /* A little hack because gtk_range_set_range() doesn't allow min == max. */
- if (min == max)
- {
- if (visible_amount == 0)
- visible_amount = 1;
- max++;
- }
-
- adj = gtk_adjustment_new ((gdouble) value,
- (gdouble) min,
- (gdouble) max,
- (gdouble) step_incr,
- (gdouble) page_incr,
- (gdouble) visible_amount);
-
- scrollbar = orientation
- ? gtk_vscrollbar_new (GTK_ADJUSTMENT (adj))
- : gtk_hscrollbar_new (GTK_ADJUSTMENT (adj));
- eventbox = gtk_event_box_new ();
- gtk_container_add (GTK_CONTAINER (eventbox), scrollbar);
- gtk_widget_show (scrollbar);
-
- GTK_RANGE (scrollbar)->round_digits = 0;
- /* These calls seem redundant but they are not. They clamp values
- so that the slider's entirety is always between the two
- steppers. */
- gtk_range_set_range (GTK_RANGE (scrollbar), (gdouble) min, (gdouble) max);
- gtk_range_set_value (GTK_RANGE (scrollbar), (gdouble) value);
-
- gdk_threads_leave ();
-
- gtkpeer_set_widget (env, obj, eventbox);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr = gtkpeer_get_widget (env, obj);
- GtkWidget *wid = scrollbar_get_widget (GTK_WIDGET (ptr));
- jobject gref = gtkpeer_get_global_ref (env, obj);
- g_assert (gref);
-
- gdk_threads_enter ();
-
- /* Scrollbar signals */
-#if GTK_MINOR_VERSION > 4
- g_signal_connect (G_OBJECT (wid), "change-value",
- G_CALLBACK (slider_moved_cb), gref);
-#else
- g_signal_connect (G_OBJECT (wid), "value-changed",
- G_CALLBACK (post_change_event_cb), gref);
-#endif
-
- /* Component signals */
- cp_gtk_component_connect_signals (G_OBJECT (wid), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setLineIncrement
- (JNIEnv *env, jobject obj, jint amount)
-{
- void *ptr;
- GtkAdjustment *adj;
- GtkWidget *wid;
-
- ptr = gtkpeer_get_widget (env, obj);
- wid = scrollbar_get_widget (GTK_WIDGET (ptr));
-
- gdk_threads_enter ();
-
- adj = gtk_range_get_adjustment (GTK_RANGE (wid));
- adj->step_increment = (gdouble) amount;
- gtk_adjustment_changed (adj);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setPageIncrement
- (JNIEnv *env, jobject obj, jint amount)
-{
- void *ptr;
- GtkAdjustment *adj;
- GtkWidget *wid;
-
- ptr = gtkpeer_get_widget (env, obj);
- wid = scrollbar_get_widget (GTK_WIDGET (ptr));
-
- gdk_threads_enter ();
-
- adj = gtk_range_get_adjustment (GTK_RANGE (wid));
- adj->page_increment = (gdouble) amount;
- gtk_adjustment_changed (adj);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_setBarValues
- (JNIEnv *env, jobject obj, jint value, jint visible, jint min, jint max)
-{
- void *ptr;
- GtkAdjustment *adj;
- GtkWidget *wid;
-
- ptr = gtkpeer_get_widget (env, obj);
- wid = scrollbar_get_widget (GTK_WIDGET (ptr));
-
- gdk_threads_enter ();
-
- /* A little hack because gtk_range_set_range() doesn't allow min == max. */
- if (min == max)
- {
- if (visible == 0)
- visible = 1;
- max++;
- }
-
- adj = gtk_range_get_adjustment (GTK_RANGE (wid));
- adj->page_size = (gdouble) visible;
-
- gtk_range_set_range (GTK_RANGE (wid), (gdouble) min, (gdouble) max);
- gtk_range_set_value (GTK_RANGE (wid), (gdouble) value);
-
- gdk_threads_leave ();
-}
-
-#if GTK_MINOR_VERSION > 4
-static gboolean
-slider_moved_cb (GtkRange *range,
- GtkScrollType scroll,
- gdouble value,
- jobject obj)
-{
- GtkAdjustment *adj = gtk_range_get_adjustment (GTK_RANGE (range));
-
- value = CLAMP (value, adj->lower,
- (adj->upper - adj->page_size));
-
- if (range->round_digits >= 0)
- {
- gdouble power;
- gint i;
-
- i = range->round_digits;
- power = 1;
- while (i--)
- power *= 10;
-
- value = floor ((value * power) + 0.5) / power;
- }
-
- switch (scroll)
- {
- case GTK_SCROLL_STEP_BACKWARD:
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj, postAdjustmentEventID,
- AWT_ADJUSTMENT_UNIT_DECREMENT,
- (jint) value);
- break;
- case GTK_SCROLL_STEP_FORWARD:
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj, postAdjustmentEventID,
- AWT_ADJUSTMENT_UNIT_INCREMENT,
- (jint) value);
- break;
- case GTK_SCROLL_PAGE_BACKWARD:
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj, postAdjustmentEventID,
- AWT_ADJUSTMENT_BLOCK_DECREMENT,
- (jint) value);
- break;
- case GTK_SCROLL_PAGE_FORWARD:
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj, postAdjustmentEventID,
- AWT_ADJUSTMENT_BLOCK_INCREMENT,
- (jint) value);
- break;
- default:
- /* GTK_SCROLL_JUMP: */
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), obj, postAdjustmentEventID,
- AWT_ADJUSTMENT_TRACK,
- (jint) value);
- break;
- }
- return FALSE;
-}
-#else
-static void
-post_change_event_cb (GtkRange *range, jobject peer)
-{
- GtkAdjustment *adj;
- adj = gtk_range_get_adjustment (range);
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, postAdjustmentEventID,
- AWT_ADJUSTMENT_TRACK, (jint) adj->value);
-}
-#endif
-
-static GtkWidget *
-scrollbar_get_widget (GtkWidget *widget)
-{
- GtkWidget *wid;
- g_assert (GTK_IS_EVENT_BOX (widget));
- wid = gtk_bin_get_child (GTK_BIN(widget));
-
- return wid;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
deleted file mode 100644
index e5ba4c7b1..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkSelection.c
+++ /dev/null
@@ -1,489 +0,0 @@
-/* gtkselection.c -- Native C functions for GtkSelection class using gtk+.
- Copyright (C) 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 "jcl.h"
-#include "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkSelection.h"
-
-static jmethodID mimeTypesAvailableID;
-
-/* Note this is actually just a GtkClipboardReceivedFunc, not a real
- GtkClipboardTargetsReceivedFunc, see requestMimeTypes. */
-static void
-clipboard_targets_received (GtkClipboard *clipboard
- __attribute__((unused)),
- GtkSelectionData *target_data,
- gpointer selection)
-{
- GdkAtom *targets = NULL;
- gint targets_len = 0;
- gchar **target_strings = NULL;
- jobjectArray strings = NULL;
- int strings_len = 0;
- gboolean include_text = FALSE;
- gboolean include_image = FALSE;
- gboolean include_uris = FALSE;
- jobject selection_obj = (jobject) selection;
- JNIEnv *env = cp_gtk_gdk_env ();
-
- if (target_data != NULL && target_data->length > 0)
- {
- include_text = gtk_selection_data_targets_include_text (target_data);
-
-#if GTK_MINOR_VERSION > 4
- include_image = gtk_selection_data_targets_include_image (target_data,
- TRUE);
-#endif
- if (gtk_selection_data_get_targets (target_data, &targets, &targets_len))
- {
- int i;
- GdkAtom uri_list_atom = gdk_atom_intern ("text/uri-list", FALSE);
- target_strings = g_new (gchar*, targets_len);
- if (target_strings != NULL)
- for (i = 0; i < targets_len; i++)
- {
- gchar *name = gdk_atom_name (targets[i]);
- if (strchr (name, '/') != NULL)
- {
- target_strings[i] = name;
- strings_len++;
- if (! include_uris && targets[i] == uri_list_atom)
- include_uris = TRUE;
- }
- else
- target_strings[i] = NULL;
- }
- }
-
- if (target_strings != NULL)
- {
- int i = 0, j = 0;
- jclass stringClass;
-
- if (include_text)
- strings_len++;
- if (include_image)
- strings_len++;
- if (include_uris)
- strings_len++;
-
- stringClass = (*env)->FindClass (env, "java/lang/String");
- strings = (*env)->NewObjectArray (env, strings_len, stringClass,
- NULL);
- (*env)->DeleteLocalRef(env, stringClass);
-
- if (strings != NULL)
- {
- if (include_text)
- (*env)->SetObjectArrayElement (env, strings, i++,
- cp_gtk_stringTarget);
- if (include_image)
- (*env)->SetObjectArrayElement (env, strings, i++,
- cp_gtk_imageTarget);
- if (include_uris)
- (*env)->SetObjectArrayElement (env, strings, i++,
- cp_gtk_filesTarget);
-
- while(i < strings_len)
- {
- if (target_strings[j] == NULL)
- j++;
- else
- {
- jstring string;
- string = (*env)->NewStringUTF (env,
- target_strings[j++]);
- if (string == NULL)
- break;
- (*env)->SetObjectArrayElement (env, strings, i++,
- string);
- (*env)->DeleteLocalRef (env, string);
- }
- }
-
- (*env)->DeleteLocalRef(env, strings);
- }
-
- for (i = 0; i < targets_len; i++)
- g_free (target_strings[i]);
- g_free (target_strings);
- }
- }
-
- (*env)->CallVoidMethod (env, selection_obj,
- mimeTypesAvailableID,
- strings);
- (*env)->DeleteGlobalRef (env, selection_obj);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkSelection_requestMimeTypes
-(JNIEnv *env, jobject selection, jboolean clipboard)
-{
- jobject selection_obj;
- GtkClipboard *gtk_clipboard;
- selection_obj = (*env)->NewGlobalRef(env, selection);
- if (selection_obj == NULL)
- return;
-
- if (mimeTypesAvailableID == NULL)
- {
- jclass gtk_selection_class;
- gtk_selection_class = (*env)->GetObjectClass (env, selection_obj);
- mimeTypesAvailableID = (*env)->GetMethodID (env, gtk_selection_class,
- "mimeTypesAvailable",
- "([Ljava/lang/String;)V");
- if (mimeTypesAvailableID == NULL)
- return;
- }
-
- if (clipboard)
- gtk_clipboard = cp_gtk_clipboard;
- else
- gtk_clipboard = cp_gtk_selection;
-
- /* We would have liked to call gtk_clipboard_request_targets ()
- since that is more general. But the result of that, an array of
- GdkAtoms, cannot be used with the
- gtk_selection_data_targets_include_<x> functions (despite what
- the name suggests). */
- gdk_threads_enter ();
- gtk_clipboard_request_contents (gtk_clipboard,
- gdk_atom_intern ("TARGETS", FALSE),
- clipboard_targets_received,
- (gpointer) selection_obj);
- gdk_threads_leave ();
-}
-
-
-static jmethodID textAvailableID;
-
-static void
-clipboard_text_received (GtkClipboard *clipboard
- __attribute__((unused)),
- const gchar *text,
- gpointer selection)
-{
- jstring string;
- jobject selection_obj = (jobject) selection;
-
- JNIEnv *env = cp_gtk_gdk_env ();
- if (text != NULL)
- string = (*env)->NewStringUTF (env, text);
- else
- string = NULL;
-
- (*env)->CallVoidMethod (env, selection_obj,
- textAvailableID,
- string);
- (*env)->DeleteGlobalRef (env, selection_obj);
-
- if (string != NULL)
- (*env)->DeleteLocalRef (env, string);
-
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkSelection_requestText
-(JNIEnv *env, jobject selection, jboolean clipboard)
-{
- jobject selection_obj;
- GtkClipboard *gtk_clipboard;
- selection_obj = (*env)->NewGlobalRef(env, selection);
- if (selection_obj == NULL)
- return;
-
- if (textAvailableID == NULL)
- {
- jclass gtk_selection_class;
- gtk_selection_class = (*env)->GetObjectClass (env, selection_obj);
- textAvailableID = (*env)->GetMethodID (env, gtk_selection_class,
- "textAvailable",
- "(Ljava/lang/String;)V");
- if (textAvailableID == NULL)
- return;
- }
-
- if (clipboard)
- gtk_clipboard = cp_gtk_clipboard;
- else
- gtk_clipboard = cp_gtk_selection;
-
- gdk_threads_enter ();
- gtk_clipboard_request_text (gtk_clipboard,
- clipboard_text_received,
- (gpointer) selection_obj);
- gdk_threads_leave ();
-}
-
-static jmethodID imageAvailableID;
-
-static void
-clipboard_image_received (GtkClipboard *clipboard
- __attribute__((unused)),
- GdkPixbuf *pixbuf,
- gpointer selection)
-{
- jobject pointer = NULL;
- jobject selection_obj = (jobject) selection;
- JNIEnv *env = cp_gtk_gdk_env ();
-
- if (pixbuf != NULL)
- {
- g_object_ref (pixbuf);
- pointer = JCL_NewRawDataObject (env, (void *) pixbuf);
- }
-
- (*env)->CallVoidMethod (env, selection_obj,
- imageAvailableID,
- pointer);
- (*env)->DeleteGlobalRef (env, selection_obj);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkSelection_requestImage (JNIEnv *env,
- jobject obj,
- jboolean clipboard)
-{
- jobject selection_obj;
- GtkClipboard *gtk_clipboard;
- selection_obj = (*env)->NewGlobalRef(env, obj);
- if (selection_obj == NULL)
- return;
-
- if (imageAvailableID == NULL)
- {
- jclass gtk_selection_class;
- gtk_selection_class = (*env)->GetObjectClass (env, selection_obj);
- imageAvailableID = (*env)->GetMethodID (env, gtk_selection_class,
- "imageAvailable",
- "(Lgnu/classpath/Pointer;)V");
- if (imageAvailableID == NULL)
- return;
- }
-
- if (clipboard)
- gtk_clipboard = cp_gtk_clipboard;
- else
- gtk_clipboard = cp_gtk_selection;
-
-#if GTK_MINOR_VERSION > 4
- gdk_threads_enter ();
- gtk_clipboard_request_image (gtk_clipboard,
- clipboard_image_received,
- (gpointer) selection_obj);
- gdk_threads_leave ();
-#else
- clipboard_image_received (gtk_clipboard, NULL, (gpointer) selection_obj);
-#endif
-}
-
-static jmethodID urisAvailableID;
-
-static void
-clipboard_uris_received (GtkClipboard *clipboard
- __attribute__((unused)),
- GtkSelectionData *uri_data,
- gpointer selection)
-{
- gchar **uris = NULL;
- jobjectArray strings = NULL;
- jobject selection_obj = (jobject) selection;
- JNIEnv *env = cp_gtk_gdk_env ();
-
-#if GTK_MINOR_VERSION > 4
- if (uri_data != NULL)
- uris = gtk_selection_data_get_uris (uri_data);
-#else
- if (uri_data != NULL)
- uris = NULL;
-#endif
-
- if (uris != NULL)
- {
- int len, i;
- gchar **count = uris;
- jclass stringClass = (*env)->FindClass (env, "java/lang/String");
-
- len = 0;
- while (count[len])
- len++;
-
- strings = (*env)->NewObjectArray (env, len, stringClass, NULL);
- (*env)->DeleteLocalRef(env, stringClass);
-
- if (strings != NULL)
- {
- for (i = 0; i < len; i++)
- {
- jstring string = (*env)->NewStringUTF (env, uris[i]);
- if (string == NULL)
- break;
- (*env)->SetObjectArrayElement (env, strings, i, string);
- (*env)->DeleteLocalRef (env, string);
- }
-
- (*env)->DeleteLocalRef(env, strings);
- }
- g_strfreev (uris);
- }
-
- (*env)->CallVoidMethod (env, selection_obj,
- urisAvailableID,
- strings);
- (*env)->DeleteGlobalRef (env, selection_obj);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkSelection_requestURIs (JNIEnv *env,
- jobject obj,
- jboolean clipboard)
-{
-#if GTK_MINOR_VERSION > 4
- GdkAtom uri_atom;
-#endif
- jobject selection_obj;
- GtkClipboard *gtk_clipboard;
- selection_obj = (*env)->NewGlobalRef(env, obj);
- if (selection_obj == NULL)
- return;
-
- if (urisAvailableID == NULL)
- {
- jclass gtk_selection_class;
- gtk_selection_class = (*env)->GetObjectClass (env, selection_obj);
- urisAvailableID = (*env)->GetMethodID (env, gtk_selection_class,
- "urisAvailable",
- "([Ljava/lang/String;)V");
- if (urisAvailableID == NULL)
- return;
- }
-
- if (clipboard)
- gtk_clipboard = cp_gtk_clipboard;
- else
- gtk_clipboard = cp_gtk_selection;
-
-#if GTK_MINOR_VERSION > 4
- /* There is no real request_uris so we have to make one ourselves. */
- gdk_threads_enter ();
- uri_atom = gdk_atom_intern ("text/uri-list", FALSE);
- gtk_clipboard_request_contents (gtk_clipboard,
- uri_atom,
- clipboard_uris_received,
- (gpointer) selection_obj);
- gdk_threads_leave ();
-#else
- clipboard_uris_received (gtk_clipboard, NULL, (gpointer) selection_obj);
-#endif
-}
-
-static jmethodID bytesAvailableID;
-
-static void
-clipboard_bytes_received (GtkClipboard *clipboard
- __attribute__((unused)),
- GtkSelectionData *selection_data,
- gpointer selection)
-{
- jbyteArray bytes = NULL;
- jobject selection_obj = (jobject) selection;
- JNIEnv *env = cp_gtk_gdk_env ();
-
- if (selection_data != NULL && selection_data->length > 0)
- {
- bytes = (*env)->NewByteArray (env, selection_data->length);
- if (bytes != NULL)
- (*env)->SetByteArrayRegion(env, bytes, 0, selection_data->length,
- (jbyte *) selection_data->data);
- }
-
- (*env)->CallVoidMethod (env, selection_obj,
- bytesAvailableID,
- bytes);
- (*env)->DeleteGlobalRef (env, selection_obj);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkSelection_requestBytes (JNIEnv *env,
- jobject obj,
- jboolean clipboard,
- jstring target_string)
-{
- int len;
- const gchar *target_text;
- GdkAtom target_atom;
- jobject selection_obj;
- GtkClipboard *gtk_clipboard;
- selection_obj = (*env)->NewGlobalRef(env, obj);
- if (selection_obj == NULL)
- return;
-
- if (bytesAvailableID == NULL)
- {
- jclass gtk_selection_class;
- gtk_selection_class = (*env)->GetObjectClass (env, selection_obj);
- bytesAvailableID = (*env)->GetMethodID (env, gtk_selection_class,
- "bytesAvailable",
- "([B)V");
- if (bytesAvailableID == NULL)
- return;
- }
-
- len = (*env)->GetStringUTFLength (env, target_string);
- if (len == -1)
- return;
- target_text = (*env)->GetStringUTFChars (env, target_string, NULL);
- if (target_text == NULL)
- return;
-
- if (clipboard)
- gtk_clipboard = cp_gtk_clipboard;
- else
- gtk_clipboard = cp_gtk_selection;
-
- gdk_threads_enter ();
- target_atom = gdk_atom_intern (target_text, FALSE);
- gtk_clipboard_request_contents (gtk_clipboard,
- target_atom,
- clipboard_bytes_received,
- (gpointer) selection_obj);
- gdk_threads_leave ();
-
- (*env)->ReleaseStringUTFChars (env, target_string, target_text);
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
deleted file mode 100644
index 4d768fa33..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c
+++ /dev/null
@@ -1,547 +0,0 @@
-/* gtktextareapeer.c -- Native implementation of GtkTextAreaPeer
- Copyright (C) 1998, 1999, 2003 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 "gnu_java_awt_peer_gtk_GtkTextAreaPeer.h"
-
-#define AWT_TEXTAREA_SCROLLBARS_BOTH 0
-#define AWT_TEXTAREA_SCROLLBARS_VERTICAL_ONLY 1
-#define AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY 2
-
-static GtkWidget *textarea_get_widget (GtkWidget *widget);
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
- (JNIEnv *env, jobject obj,
- jint textview_width, jint textview_height, jint scroll)
-{
- GtkWidget *text;
- GtkWidget *sw;
- GtkWidget *eventbox;
-
- gdk_threads_enter ();
-
- /* Create global reference and save it for future use */
- gtkpeer_set_global_ref (env, obj);
-
- text = gtk_text_view_new ();
- gtk_widget_set_size_request (text, textview_width, textview_height);
- gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW (text), TRUE);
-
- gtk_widget_show (text);
-
- eventbox = gtk_event_box_new ();
- sw = gtk_scrolled_window_new (NULL, NULL);
- gtk_container_add (GTK_CONTAINER (sw), text);
- gtk_container_add (GTK_CONTAINER (eventbox), sw);
- gtk_widget_show (sw);
-
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
- /* horizontal scrollbar */
- (scroll == AWT_TEXTAREA_SCROLLBARS_BOTH
- || scroll == AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY) ?
- GTK_POLICY_ALWAYS : GTK_POLICY_NEVER,
- /* vertical scrollbar */
- (scroll == AWT_TEXTAREA_SCROLLBARS_BOTH
- || scroll == AWT_TEXTAREA_SCROLLBARS_VERTICAL_ONLY) ?
- GTK_POLICY_ALWAYS : GTK_POLICY_NEVER);
-
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text),
- (scroll == AWT_TEXTAREA_SCROLLBARS_BOTH
- || scroll == AWT_TEXTAREA_SCROLLBARS_HORIZONTAL_ONLY)
- ? GTK_WRAP_NONE : GTK_WRAP_WORD);
-
- gtkpeer_set_widget (env, obj, eventbox);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
- void *ptr;
- jobject gref;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- /* Unwrap the text view from the scrolled window */
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
-
- /* TextComponent signals */
- cp_gtk_textcomponent_connect_signals (G_OBJECT (buf), gref);
-
- /* Component signals */
- cp_gtk_component_connect_signals (G_OBJECT (text), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert
- (JNIEnv *env, jobject obj, jstring contents, jint position)
-{
- GtkTextBuffer *buf;
- GtkTextIter iter;
- GtkWidget *text;
- void *ptr;
- const char *str;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- str = (*env)->GetStringUTFChars (env, contents, NULL);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
- gtk_text_buffer_get_iter_at_offset (buf, &iter, position);
- gtk_text_buffer_insert (buf, &iter, str, strlen (str));
-
- (*env)->ReleaseStringUTFChars (env, contents, str);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_replaceRange
- (JNIEnv *env, jobject obj, jstring contents, jint start, jint end)
-{
- GtkWidget *text;
- GtkTextBuffer *buf;
- GtkTextIter iter, startIter, endIter;
- void *ptr;
- const char *str;
- int mystart = start;
- int myend = end;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- str = (*env)->GetStringUTFChars (env, contents, NULL);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
-
- gtk_text_buffer_get_iter_at_offset (buf, &startIter, mystart);
- gtk_text_buffer_get_iter_at_offset (buf, &endIter, myend);
- gtk_text_buffer_delete (buf, &startIter, &endIter);
-
- gtk_text_buffer_get_iter_at_offset (buf, &iter, mystart);
- gtk_text_buffer_insert(buf, &iter, str, strlen (str));
-
- (*env)->ReleaseStringUTFChars (env, contents, str);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetModifyFont
- (JNIEnv *env, jobject obj, jstring name, jint style, jint size)
-{
- const char *font_name;
- void *ptr;
- GtkWidget *text;
- PangoFontDescription *font_desc;
-
- gdk_threads_enter();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- font_name = (*env)->GetStringUTFChars (env, name, NULL);
-
- font_desc = pango_font_description_from_string (font_name);
- pango_font_description_set_size (font_desc,
- size * cp_gtk_dpi_conversion_factor);
-
- if (style & AWT_STYLE_BOLD)
- pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
-
- if (style & AWT_STYLE_ITALIC)
- pango_font_description_set_style (font_desc, PANGO_STYLE_OBLIQUE);
-
- gtk_widget_modify_font (GTK_WIDGET (text), font_desc);
-
- pango_font_description_free (font_desc);
-
- (*env)->ReleaseStringUTFChars (env, name, font_name);
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkWidgetRequestFocus
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkWidget *text;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- gtk_widget_grab_focus (text);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getHScrollbarHeight
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkWidget *bin;
- GtkScrolledWindow *sw;
- GtkRequisition requisition;
- jint height = 0;
- jint spacing = 0;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- bin = gtk_bin_get_child (GTK_BIN (ptr));
- sw = GTK_SCROLLED_WINDOW (bin);
-
- if (sw)
- {
- gtk_widget_size_request (sw->hscrollbar, &requisition);
- gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL);
- height = requisition.height + spacing;
- }
-
- gdk_threads_leave ();
-
- return height;
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getVScrollbarWidth
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- GtkWidget *bin;
- GtkScrolledWindow *sw;
- GtkRequisition requisition;
- jint width = 0;
- jint spacing = 0;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- bin = gtk_bin_get_child (GTK_BIN (ptr));
- sw = GTK_SCROLLED_WINDOW (bin);
-
- if (sw)
- {
- gtk_widget_size_request (sw->vscrollbar, &requisition);
- gtk_widget_style_get (GTK_WIDGET (sw), "scrollbar_spacing", &spacing, NULL);
- width = requisition.width + spacing;
- }
-
- gdk_threads_leave ();
-
- return width;
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getCaretPosition
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int pos = 0;
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
- GtkTextMark *mark;
- GtkTextIter iter;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
- mark = gtk_text_buffer_get_insert (buf);
- gtk_text_buffer_get_iter_at_mark (buf, &iter, mark);
- pos = gtk_text_iter_get_offset (&iter);
-
- gdk_threads_leave ();
-
- return pos;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setCaretPosition
- (JNIEnv *env, jobject obj, jint pos)
-{
- void *ptr;
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
- GtkTextIter iter;
- GtkTextMark *oldmark;
- GtkTextIter olditer;
- int oldpos;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
-
- /* Save old position. */
- oldmark = gtk_text_buffer_get_insert (buf);
- gtk_text_buffer_get_iter_at_mark (buf, &olditer, oldmark);
- oldpos = gtk_text_iter_get_offset (&olditer);
-
- /* Move to new position. */
- gtk_text_buffer_get_iter_at_offset (buf, &iter, pos);
- gtk_text_buffer_place_cursor (buf, &iter);
-
- /* Scroll to new position. Alignment is determined
- comparing the new position to the old position. */
- if (oldpos > pos)
- gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (text),
- &iter, 0, TRUE, 0, 0);
- else if (oldpos < pos)
- gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (text),
- &iter, 0, TRUE, 1, 1);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionStart
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int pos = 0;
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
- GtkTextIter start;
- GtkTextIter end;
- GtkTextMark *mark;
- GtkTextIter iter;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
-
- if (gtk_text_buffer_get_selection_bounds (buf, &start, &end))
- {
- pos = gtk_text_iter_get_offset (&start);
- }
- else
- {
- mark = gtk_text_buffer_get_insert (buf);
- gtk_text_buffer_get_iter_at_mark (buf, &iter, mark);
- pos = gtk_text_iter_get_offset (&iter);
- }
-
- gdk_threads_leave ();
-
- return pos;
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getSelectionEnd
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int pos = 0;
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
- GtkTextIter start;
- GtkTextIter end;
- GtkTextMark *mark;
- GtkTextIter iter;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
-
- if (gtk_text_buffer_get_selection_bounds (buf, &start, &end))
- {
- pos = gtk_text_iter_get_offset (&end);
- }
- else
- {
- mark = gtk_text_buffer_get_insert (buf);
- gtk_text_buffer_get_iter_at_mark (buf, &iter, mark);
- pos = gtk_text_iter_get_offset (&iter);
- }
-
- gdk_threads_leave ();
-
- return pos;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_select
- (JNIEnv *env, jobject obj, jint start, jint end)
-{
- void *ptr;
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
- GtkTextIter iter;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
- gtk_text_buffer_get_iter_at_offset (buf, &iter, start);
- /* quickly move both 'insert' and 'selection_bound' to the
- same position */
- gtk_text_buffer_place_cursor (buf, &iter);
- gtk_text_buffer_get_iter_at_offset (buf, &iter, end);
- gtk_text_buffer_move_mark_by_name (buf, "selection_bound", &iter);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setEditable
- (JNIEnv *env, jobject obj, jboolean state)
-{
- void *ptr;
- GtkWidget *text = NULL;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- gtk_text_view_set_editable (GTK_TEXT_VIEW (text), state);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jstring JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_getText
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- char *contents = NULL;
- jstring jcontents;
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
- GtkTextIter start, end;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
- gtk_text_buffer_get_start_iter (buf, &start);
- gtk_text_buffer_get_end_iter (buf, &end);
- contents = gtk_text_buffer_get_text (buf, &start, &end, FALSE);
-
- jcontents = (*env)->NewStringUTF (env, contents);
- g_free (contents);
-
- gdk_threads_leave ();
-
- return jcontents;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_setText
- (JNIEnv *env, jobject obj, jstring contents)
-{
- void *ptr;
- const char *str;
- GtkWidget *text = NULL;
- GtkTextBuffer *buf;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- str = (*env)->GetStringUTFChars (env, contents, NULL);
-
- text = textarea_get_widget (GTK_WIDGET (ptr));
-
- buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
- gtk_text_buffer_set_text (buf, str, strlen (str));
-
- (*env)->ReleaseStringUTFChars (env, contents, str);
-
- gdk_threads_leave ();
-}
-
-static GtkWidget *
-textarea_get_widget (GtkWidget *widget)
-{
- GtkWidget *wid;
- g_assert (GTK_IS_EVENT_BOX (widget));
-
- wid = gtk_bin_get_child (GTK_BIN (widget));
- g_assert (GTK_IS_SCROLLED_WINDOW (wid));
-
- wid = gtk_bin_get_child (GTK_BIN (wid));
-
- return wid;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
deleted file mode 100644
index df82ff091..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c
+++ /dev/null
@@ -1,388 +0,0 @@
-/* gtktextfieldpeer.c -- Native implementation of GtkTextFieldPeer
- Copyright (C) 1998, 1999, 2002 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 "gnu_java_awt_peer_gtk_GtkTextFieldPeer.h"
-
-/* the color used for highlighting when the foreground is black,
- since black highlights aren't a Good Idea. */
-#define BB_RED 16962
-#define BB_GREEN 26985
-#define BB_BLUE 31611
-
-static jmethodID postTextEventID;
-
-void
-cp_gtk_textcomponent_init_jni (void)
-{
- jclass gtkcomponentpeer;
-
- gtkcomponentpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkComponentPeer");
-
- postTextEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkcomponentpeer,
- "postTextEvent",
- "()V");
-}
-
-static void textcomponent_changed_cb (GtkEditable *editable, jobject peer);
-
-static jint get_border_width (GtkWidget *entry);
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create
- (JNIEnv *env, jobject obj, jint text_width)
-{
- GtkWidget *entry;
-
- gdk_threads_enter ();
-
- /* Create global reference and save it for future use */
- gtkpeer_set_global_ref (env, obj);
-
- entry = gtk_entry_new ();
- gtk_widget_set_size_request (entry,
- text_width + 2 * get_border_width (entry), -1);
-
- gtkpeer_set_widget (env, obj, entry);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jobject gref;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = gtkpeer_get_global_ref (env, obj);
-
- /* TextComponent signals */
- cp_gtk_textcomponent_connect_signals (G_OBJECT (ptr), gref);
-
- /* Component signals */
- cp_gtk_component_connect_signals (G_OBJECT (ptr), gref);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetBackground
- (JNIEnv *env, jobject obj, jint red, jint green, jint blue)
-{
- GdkColor color;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- color.red = (red / 255.0) * 65535;
- color.green = (green / 255.0) * 65535;
- color.blue = (blue / 255.0) * 65535;
-
- gtk_widget_modify_base (GTK_WIDGET (ptr), GTK_STATE_NORMAL, &color);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkWidgetSetForeground
- (JNIEnv *env, jobject obj, jint red, jint green, jint blue)
-{
- GdkColor color;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- color.red = (red / 255.0) * 65535;
- color.green = (green / 255.0) * 65535;
- color.blue = (blue / 255.0) * 65535;
-
- gtk_widget_modify_text (GTK_WIDGET (ptr), GTK_STATE_NORMAL, &color);
-
- if ( red == 0 && green == 0 && blue == 0)
- {
- color.red = BB_RED;
- color.green = BB_GREEN;
- color.blue = BB_BLUE;
- }
- gtk_widget_modify_base (GTK_WIDGET (ptr), GTK_STATE_SELECTED, &color);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetBorderWidth
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int border_width = 0;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- border_width = get_border_width (GTK_WIDGET (ptr));
-
- gdk_threads_leave ();
-
- return border_width;
-}
-
-/* GTK hard-codes this value. It is the space between a GtkEntry's
- frame and its text. */
-#define INNER_BORDER 2
-
-static jint
-get_border_width (GtkWidget *entry)
-{
- gint focus_width;
- gboolean interior_focus;
- int x_border_width = INNER_BORDER;
-
- gtk_widget_style_get (entry,
- "interior-focus", &interior_focus,
- "focus-line-width", &focus_width,
- NULL);
-
- if (GTK_ENTRY (entry)->has_frame)
- x_border_width += entry->style->xthickness;
-
- if (!interior_focus)
- x_border_width += focus_width;
-
- return x_border_width;
-}
-
-#undef INNER_BORDER
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEchoChar
- (JNIEnv *env, jobject obj, jchar c)
-{
- void *ptr;
- GtkEntry *entry;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- entry = GTK_ENTRY (ptr);
-
- if (c != 0)
- {
- /* FIXME: use gtk_entry_set_invisible_char (GtkEntry *entry,
- gunichar ch) here. That means we must convert from jchar
- (utf16) to gunichar (ucs4). */
- gtk_entry_set_visibility (entry, FALSE);
- }
- else
- gtk_entry_set_visibility (entry, TRUE);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getCaretPosition
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int pos = 0;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- pos = gtk_editable_get_position (GTK_EDITABLE (ptr));
-
- gdk_threads_leave ();
-
- return pos;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setCaretPosition
- (JNIEnv *env, jobject obj, jint pos)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_editable_set_position (GTK_EDITABLE (ptr), pos);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getSelectionStart
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int pos = 0;
- int starti, endi;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- if (gtk_editable_get_selection_bounds (GTK_EDITABLE (ptr), &starti, &endi))
- pos = starti;
- else
- pos = gtk_editable_get_position (GTK_EDITABLE (ptr));
-
- gdk_threads_leave ();
-
- return pos;
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getSelectionEnd
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- int pos = 0;
- int starti, endi;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- if (gtk_editable_get_selection_bounds (GTK_EDITABLE (ptr), &starti, &endi))
- pos = endi;
- else
- pos = gtk_editable_get_position (GTK_EDITABLE (ptr));
-
- gdk_threads_leave ();
-
- return pos;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_select
- (JNIEnv *env, jobject obj, jint start, jint end)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_editable_select_region (GTK_EDITABLE (ptr), start, end);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setEditable
- (JNIEnv *env, jobject obj, jboolean state)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_editable_set_editable (GTK_EDITABLE (ptr), state);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT jstring JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_getText
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- char *contents = NULL;
- jstring jcontents;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- contents = gtk_editable_get_chars (GTK_EDITABLE (ptr), 0, -1);
-
- jcontents = (*env)->NewStringUTF (env, contents);
-
- g_free (contents);
-
- gdk_threads_leave ();
-
- return jcontents;
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_setText
- (JNIEnv *env, jobject obj, jstring contents)
-{
- void *ptr;
- const char *str;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- str = (*env)->GetStringUTFChars (env, contents, NULL);
-
- gtk_entry_set_text (GTK_ENTRY (ptr), str);
-
- (*env)->ReleaseStringUTFChars (env, contents, str);
-
- gdk_threads_leave ();
-}
-
-void
-cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject gref)
-{
- g_signal_connect (G_OBJECT(ptr), "changed",
- G_CALLBACK (textcomponent_changed_cb), gref);
-}
-
-static void
-textcomponent_changed_cb (GtkEditable *editable __attribute__((unused)),
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer, postTextEventID);
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
deleted file mode 100644
index ad996641f..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkToolkit.c
+++ /dev/null
@@ -1,627 +0,0 @@
-
-/* gtktoolkit.c -- Native portion of GtkToolkit
- Copyright (C) 1998, 1999, 2005, 2007, 2010 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 "gnu_java_awt_peer_gtk_GtkToolkit.h"
-#include "jcl.h"
-
-#define RC_FILE ".classpath-gtkrc"
-
-/* From java.awt.SystemColor */
-#define AWT_DESKTOP 0
-#define AWT_ACTIVE_CAPTION 1
-#define AWT_ACTIVE_CAPTION_TEXT 2
-#define AWT_ACTIVE_CAPTION_BORDER 3
-#define AWT_INACTIVE_CAPTION 4
-#define AWT_INACTIVE_CAPTION_TEXT 5
-#define AWT_INACTIVE_CAPTION_BORDER 6
-#define AWT_WINDOW 7
-#define AWT_WINDOW_BORDER 8
-#define AWT_WINDOW_TEXT 9
-#define AWT_MENU 10
-#define AWT_MENU_TEXT 11
-#define AWT_TEXT 12
-#define AWT_TEXT_TEXT 13
-#define AWT_TEXT_HIGHLIGHT 14
-#define AWT_TEXT_HIGHLIGHT_TEXT 15
-#define AWT_TEXT_INACTIVE_TEXT 16
-#define AWT_CONTROL 17
-#define AWT_CONTROL_TEXT 18
-#define AWT_CONTROL_HIGHLIGHT 19
-#define AWT_CONTROL_LT_HIGHLIGHT 20
-#define AWT_CONTROL_SHADOW 21
-#define AWT_CONTROL_DK_SHADOW 22
-#define AWT_SCROLLBAR 23
-#define AWT_INFO 24
-#define AWT_INFO_TEXT 25
-#define AWT_NUM_COLORS 26
-
-#define VK_SHIFT 16
-#define VK_CONTROL 17
-#define VK_ALT 18
-#define VK_CAPS_LOCK 20
-#define VK_META 157
-
-static jclass gtkgenericpeer;
-static jclass gtktoolkit;
-static JavaVM *java_vm;
-static jmethodID printCurrentThreadID;
-static jmethodID setRunningID;
-
-/**
- * The global AWT lock object.
- */
-static jobject global_lock;
-
-union env_union
-{
- void *void_env;
- JNIEnv *jni_env;
-};
-
-JNIEnv *
-cp_gtk_gdk_env()
-{
- union env_union tmp;
- g_assert((*java_vm)->GetEnv(java_vm, &tmp.void_env, JNI_VERSION_1_2) == JNI_OK);
- return tmp.jni_env;
-}
-
-
-GtkWindowGroup *cp_gtk_global_window_group;
-double cp_gtk_dpi_conversion_factor;
-
-static void jni_lock_cb();
-static void jni_unlock_cb();
-static void init_glib_threads(JNIEnv*, jint, jobject);
-static gboolean post_set_running_flag (gpointer);
-static gboolean set_running_flag (gpointer);
-static gboolean clear_running_flag (gpointer);
-static void init_dpi_conversion_factor (void);
-static void dpi_changed_cb (GtkSettings *settings,
- GParamSpec *pspec);
-
-#if GTK_MINOR_VERSION > 4
-static GLogFunc old_glog_func;
-static void glog_func (const gchar *log_domain,
- GLogLevelFlags log_level,
- const gchar *message,
- gpointer user_data);
-#endif
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_initIDs
-(JNIEnv *env, jclass cls __attribute__((unused)))
-{
- gtkpeer_init_pointer_IDs(env);
-}
-
-/*
- * Call gtk_init. It is very important that this happen before any other
- * gtk calls.
- *
- * The portableNativeSync argument may have the values:
- * 1 if the Java property gnu.classpath.awt.gtk.portable.native.sync
- * is set to "true".
- * 0 if it is set to "false"
- * -1 if unset.
- */
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkInit (JNIEnv *env,
- jclass clazz __attribute__((unused)),
- jint portableNativeSync,
- jobject lock)
-{
- int argc = 1;
- char **argv;
- char *homedir, *rcpath = NULL;
-
- gtkgenericpeer = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkGenericPeer");
-
- gtkgenericpeer = (*env)->NewGlobalRef(env, gtkgenericpeer);
-
- printCurrentThreadID = (*env)->GetStaticMethodID (env, gtkgenericpeer,
- "printCurrentThread", "()V");
-
- g_assert((*env)->GetJavaVM(env, &java_vm) == 0);
-
- /* GTK requires a program's argc and argv variables, and requires that they
- be valid. Set it up. */
- argv = (char **) g_malloc (sizeof (char *) * 2);
- argv[0] = (char *) g_malloc(1);
- argv[0][0] = '\0';
- argv[1] = NULL;
-
- init_glib_threads(env, portableNativeSync, lock);
-
- /* From GDK 2.0 onwards we have to explicitly call gdk_threads_init */
- gdk_threads_init();
-
- gtk_init (&argc, &argv);
-
-#if SYNCHRONIZE_GDK
- XSynchronize (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), True);
-#endif
-
- gtk_widget_set_default_colormap (gdk_rgb_get_colormap ());
-
- if ((homedir = getenv ("HOME")))
- {
- rcpath = (char *) g_malloc (strlen (homedir) + strlen (RC_FILE) + 2);
- sprintf (rcpath, "%s/%s", homedir, RC_FILE);
- }
-
- gtk_rc_parse ((rcpath) ? rcpath : RC_FILE);
-
- g_free (rcpath);
- g_free (argv[0]);
- g_free (argv);
-
- /* On errors or warning print a whole stacktrace. */
-#if GTK_MINOR_VERSION > 4
- old_glog_func = g_log_set_default_handler (&glog_func, NULL);
-#endif
-
- cp_gtk_button_init_jni (env);
- cp_gtk_checkbox_init_jni ();
- cp_gtk_choice_init_jni ();
- cp_gtk_component_init_jni ();
- cp_gtk_filedialog_init_jni ();
- cp_gtk_list_init_jni ();
- cp_gtk_menuitem_init_jni ();
- cp_gtk_scrollbar_init_jni ();
- cp_gtk_textcomponent_init_jni ();
- cp_gtk_window_init_jni ();
-
- cp_gtk_global_window_group = gtk_window_group_new ();
-
- init_dpi_conversion_factor ();
-
- gtktoolkit = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkMainThread");
- gtktoolkit = (*env)->NewGlobalRef(env, gtktoolkit); /* bug fix #40889 */
- setRunningID = (*env)->GetStaticMethodID (env, gtktoolkit,
- "setRunning", "(Z)V");
-}
-
-/**
- * A callback function that implements gdk_threads_enter(). This is
- * implemented to wrap the JNI MonitorEnter() function.
- */
-static void jni_lock_cb()
-{
- JNIEnv * env = cp_gtk_gdk_env();
- if ((*env)->MonitorEnter(env, global_lock) != JNI_OK)
- {
- printf("failure while entering GTK monitor\n");
- }
-}
-
-/**
- * A callback function that implements gdk_threads_leave(). This is
- * implemented to wrap the JNI MonitorExit() function.
- */
-static void jni_unlock_cb()
-{
-
- JNIEnv * env = cp_gtk_gdk_env();
- if ((*env)->MonitorExit(env, global_lock))
- {
- printf("failure while exiting GTK monitor\n");
- }
-}
-
-/** Initialize GLIB's threads properly, based on the value of the
- gnu.classpath.awt.gtk.portable.native.sync Java system property. If
- that's unset, use the PORTABLE_NATIVE_SYNC config.h macro. (TODO:
- In some release following 0.10, that config.h macro will go away.)
- */
-static void
-init_glib_threads(JNIEnv *env, jint portableNativeSync, jobject lock)
-{
- if (portableNativeSync < 0)
- {
-#ifdef PORTABLE_NATIVE_SYNC /* Default value, if not set by the Java system
- property */
- portableNativeSync = 1;
-#else
- portableNativeSync = 0;
-#endif
- }
-
- if (!g_thread_supported ())
- {
- if (portableNativeSync)
- {
- global_lock = (*env)->NewGlobalRef(env, lock);
- gdk_threads_set_lock_functions(&jni_lock_cb, &jni_unlock_cb);
- }
- g_thread_init(NULL);
- }
- else
- {
- /* Warn if portable native sync is desired but the threading
- system is already initialized. In that case we can't
- override the threading implementation with our portable
- native sync functions. */
- if (portableNativeSync)
- g_printerr ("peer warning: portable native sync disabled.\n");
- }
-
- /* Debugging progress message; uncomment if needed: */
- /* printf("called gthread init\n"); */
-}
-
-void
-cp_gtk_print_current_thread (void)
-{
- (*cp_gtk_gdk_env())->CallStaticVoidMethod (cp_gtk_gdk_env(), gtkgenericpeer, printCurrentThreadID);
-}
-
-/* This is a big hack, needed until this pango bug is resolved:
- http://bugzilla.gnome.org/show_bug.cgi?id=119081.
- See: http://mail.gnome.org/archives/gtk-i18n-list/2003-August/msg00001.html
- for details. */
-static void
-init_dpi_conversion_factor ()
-{
- GtkSettings *settings = gtk_settings_get_default ();
- GObjectClass *klass;
-
- klass = G_OBJECT_CLASS (GTK_SETTINGS_GET_CLASS (settings));
- if (g_object_class_find_property (klass, "gtk-xft-dpi"))
- {
- int int_dpi;
- g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL);
- /* If int_dpi == -1 gtk-xft-dpi returns the default value. So we
- have to do approximate calculation here. */
- if (int_dpi < 0)
- cp_gtk_dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
- else
- cp_gtk_dpi_conversion_factor =
- PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE);
-
- g_signal_connect (settings, "notify::gtk-xft-dpi",
- G_CALLBACK (dpi_changed_cb), NULL);
- }
- else
- /* Approximate. */
- cp_gtk_dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
-}
-
-static void
-dpi_changed_cb (GtkSettings *settings,
- GParamSpec *pspec __attribute__((unused)))
-{
- int int_dpi;
- g_object_get (settings, "gtk-xft-dpi", &int_dpi, NULL);
- if (int_dpi < 0)
- cp_gtk_dpi_conversion_factor = PANGO_SCALE * 72.0 / 96.;
- else
- cp_gtk_dpi_conversion_factor =
- PANGO_SCALE * 72.0 / (int_dpi / PANGO_SCALE);
-}
-
-#if GTK_MINOR_VERSION > 4
-static void
-glog_func (const gchar *log_domain,
- GLogLevelFlags log_level,
- const gchar *message,
- gpointer user_data)
-{
- old_glog_func (log_domain, log_level, message, user_data);
- if (log_level & (G_LOG_LEVEL_ERROR
- | G_LOG_LEVEL_CRITICAL
- | G_LOG_LEVEL_WARNING))
- {
- JNIEnv *env = cp_gtk_gdk_env ();
- jthrowable *exc = (*env)->ExceptionOccurred(env);
- gchar *detail = g_strconcat (log_domain, ": ", message, NULL);
- JCL_ThrowException (env, "java/lang/InternalError", detail);
- g_free (detail);
- (*env)->ExceptionDescribe (env);
- if (exc != NULL)
- (*env)->Throw (env, exc);
- else
- (*env)->ExceptionClear (env);
- }
-}
-#endif
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMain
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
- gdk_threads_enter();
-
- gtk_init_add (post_set_running_flag, NULL);
- gtk_quit_add (gtk_main_level (), clear_running_flag, NULL);
-
- gtk_main ();
-
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkQuit
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
- gdk_threads_enter ();
-
- gtk_main_quit ();
-
- gdk_threads_leave ();
-}
-
-
-static jint gdk_color_to_java_color (GdkColor color);
-
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_beep
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
- gdk_threads_enter ();
-
- gdk_beep ();
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_sync
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
- gdk_threads_enter ();
-
- gdk_flush ();
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenSizeDimensions
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jintArray jdims)
-{
- jint *dims = (*env)->GetIntArrayElements (env, jdims, 0);
-
- gdk_threads_enter ();
-
- dims[0] = gdk_screen_width ();
- dims[1] = gdk_screen_height ();
-
- gdk_threads_leave ();
-
- (*env)->ReleaseIntArrayElements(env, jdims, dims, 0);
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_getScreenResolution
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)))
-{
- jint res;
-
- gdk_threads_enter ();
-
- res = gdk_screen_width () / (gdk_screen_width_mm () / 25.4);
-
- gdk_threads_leave ();
-
- 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])
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_loadSystemColors
- (JNIEnv *env, jobject obj __attribute__((unused)),
- jintArray jcolors)
-{
- jint *colors;
- GtkStyle *style;
-
- /* FIXME: this was deadlocking so assume it is thread-safe for now;
- we need to replace this call with a .properties file anyway. */
-#if 0
- gdk_threads_enter ();
-#endif
-
- colors = (*env)->GetIntArrayElements (env, jcolors, 0);
-
- style = gtk_widget_get_default_style ();
-
- colors[AWT_DESKTOP] = CONVERT (bg, SELECTED);
- colors[AWT_ACTIVE_CAPTION] = CONVERT (bg, SELECTED);
- colors[AWT_ACTIVE_CAPTION_TEXT] = CONVERT (text, SELECTED);
- colors[AWT_ACTIVE_CAPTION_BORDER] = CONVERT (fg, NORMAL);
- colors[AWT_INACTIVE_CAPTION] = CONVERT (base, INSENSITIVE);
- colors[AWT_INACTIVE_CAPTION_TEXT] = CONVERT (fg, INSENSITIVE);
- colors[AWT_INACTIVE_CAPTION_BORDER] = CONVERT (fg, INSENSITIVE);
- colors[AWT_WINDOW] = CONVERT (bg, NORMAL);
- colors[AWT_WINDOW_BORDER] = CONVERT (fg, NORMAL);
- colors[AWT_WINDOW_TEXT] = CONVERT (fg, NORMAL);
- colors[AWT_MENU] = CONVERT (bg, NORMAL);
- colors[AWT_MENU_TEXT] = CONVERT (fg, NORMAL);
- colors[AWT_TEXT] = CONVERT (bg, NORMAL);
- colors[AWT_TEXT_TEXT] = CONVERT (fg, NORMAL);
- colors[AWT_TEXT_HIGHLIGHT] = CONVERT (bg, SELECTED);
- colors[AWT_TEXT_HIGHLIGHT_TEXT] = CONVERT (fg, SELECTED);
- colors[AWT_TEXT_INACTIVE_TEXT] = CONVERT (bg, INSENSITIVE);
- colors[AWT_CONTROL] = CONVERT (bg, NORMAL);
- colors[AWT_CONTROL_TEXT] = CONVERT (fg, NORMAL);
- colors[AWT_CONTROL_HIGHLIGHT] = CONVERT (base, ACTIVE);
- colors[AWT_CONTROL_LT_HIGHLIGHT] = CONVERT (bg, PRELIGHT);
- colors[AWT_CONTROL_SHADOW] = CONVERT (bg, ACTIVE);
- colors[AWT_CONTROL_DK_SHADOW] = CONVERT (fg, INSENSITIVE);
- colors[AWT_SCROLLBAR] = CONVERT (base, INSENSITIVE);
- colors[AWT_INFO] = CONVERT (bg, NORMAL);
- colors[AWT_INFO_TEXT] = CONVERT (fg, NORMAL);
-
- (*env)->ReleaseIntArrayElements(env, jcolors, colors, 0);
-
-#if 0
- gdk_threads_leave ();
-#endif
-}
-
-#undef CONVERT
-
-static jint
-gdk_color_to_java_color (GdkColor gdk_color)
-{
- guchar red;
- guchar green;
- guchar blue;
- float factor;
-
- factor = 255.0 / 65535.0;
-
- red = (float) gdk_color.red * factor;
- green = (float) gdk_color.green * factor;
- blue = (float) gdk_color.blue * factor;
-
- return (jint) (0xff000000 | (red << 16) | (green << 8) | blue);
-}
-
-JNIEXPORT jint JNICALL
-Java_gnu_java_awt_peer_gtk_GtkToolkit_getLockState
- (JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jint key)
-{
- gint coord;
- GdkModifierType state, mask;
- GdkWindow *root_window;
-
- gdk_threads_enter ();
-
- root_window = gdk_get_default_root_window ();
- gdk_window_get_pointer (root_window, &coord, &coord, &state);
-
- switch (key)
- {
- case VK_SHIFT:
- mask = GDK_SHIFT_MASK;
- break;
- case VK_CONTROL:
- mask = GDK_CONTROL_MASK;
- break;
- case VK_ALT:
- /* This is dubious, since MOD1 could have been mapped to something
- other than ALT. */
- mask = GDK_MOD1_MASK;
- break;
-#if GTK_CHECK_VERSION(2, 10, 0)
- case VK_META:
- mask = GDK_META_MASK;
- break;
-#endif
- case VK_CAPS_LOCK:
- mask = GDK_LOCK_MASK;
- break;
- default:
- mask = 0;
- }
-
- gdk_threads_leave ();
-
- if (mask == 0)
- return -1;
-
- return state & mask ? 1 : 0;
-}
-
-static gboolean
-post_set_running_flag (gpointer data __attribute__((unused)))
-{
- g_idle_add (set_running_flag, NULL);
- return FALSE;
-}
-
-static gboolean
-set_running_flag (gpointer data __attribute__((unused)))
-{
- (*cp_gtk_gdk_env ())->CallStaticVoidMethod (cp_gtk_gdk_env (),
- gtktoolkit,
- setRunningID, TRUE);
- return FALSE;
-}
-
-static gboolean
-clear_running_flag (gpointer data __attribute__((unused)))
-{
- (*cp_gtk_gdk_env ())->CallStaticVoidMethod (cp_gtk_gdk_env (),
- gtktoolkit,
- setRunningID, FALSE);
- return FALSE;
-}
-
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
deleted file mode 100644
index af0868cc2..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkVolatileImage.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* gnu_java_awt_peer_gtk_VolatileImage.c
- 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 "jcl.h"
-#include "gtkpeer.h"
-#include <gdk/gdktypes.h>
-#include <gdk/gdkprivate.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <gdk-pixbuf/gdk-pixdata.h>
-
-#include "gnu_java_awt_peer_gtk_GtkVolatileImage.h"
-#include "cairographics2d.h"
-
-
-/**
- * Creates a cairo surface, ARGB32, native ordering, premultiplied alpha.
- */
-JNIEXPORT jlong JNICALL
-Java_gnu_java_awt_peer_gtk_GtkVolatileImage_init (JNIEnv *env,
- jobject obj __attribute__ ((__unused__)),
- jobject peer,
- jint width, jint height)
-{
- GtkWidget *widget = NULL;
- GdkPixmap* pixmap;
- void *ptr = NULL;
-
- gdk_threads_enter();
-
- if( peer != NULL )
- {
- ptr = gtkpeer_get_widget (env, peer);
- g_assert (ptr != NULL);
-
- widget = GTK_WIDGET (ptr);
- g_assert (widget != NULL);
- pixmap = gdk_pixmap_new( widget->window, width, height, -1 );
- }
- else
- pixmap = gdk_pixmap_new( NULL, width, height,
- gdk_rgb_get_visual()->depth );
-
- gdk_threads_leave();
-
- g_assert( pixmap != NULL );
-
- return PTR_TO_JLONG( pixmap );
-}
-
-/**
- * Destroy the surface
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkVolatileImage_destroy
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer)
-{
- GdkPixmap* pixmap = JLONG_TO_PTR(GdkPixmap, pointer);
- if( pixmap != NULL )
- {
- gdk_threads_enter();
- g_object_unref( pixmap );
- gdk_threads_leave();
- }
-}
-
-/**
- * Gets all pixels in an array
- */
-JNIEXPORT jintArray JNICALL
-Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeGetPixels
-(JNIEnv *env, jobject obj, jlong pointer)
-{
- /* jint *pixeldata, *jpixdata; */
- jint *jpixdata;
- GdkPixmap *pixmap;
- GdkPixbuf *pixbuf;
- jintArray jpixels;
- int width, height, size;
- jclass cls;
- jfieldID field;
- guchar *pixels;
-
- cls = (*env)->GetObjectClass (env, obj);
- field = (*env)->GetFieldID (env, cls, "width", "I");
- g_assert (field != 0);
- width = (*env)->GetIntField (env, obj, field);
-
- field = (*env)->GetFieldID (env, cls, "height", "I");
- g_assert (field != 0);
- height = (*env)->GetIntField (env, obj, field);
-
- pixmap = JLONG_TO_PTR(GdkPixmap, pointer);
- g_assert(pixmap != NULL);
-
- gdk_threads_enter();
-
- size = width * height;
- jpixels = (*env)->NewIntArray ( env, size );
- jpixdata = (*env)->GetIntArrayElements (env, jpixels, NULL);
-
- pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, TRUE, 8, width, height );
- gdk_pixbuf_get_from_drawable( pixbuf, pixmap, NULL, 0, 0, 0, 0, width, height );
-
- if (pixbuf != NULL)
- {
- pixels = gdk_pixbuf_get_pixels(pixbuf);
- memcpy (jpixdata, pixels, size * sizeof(jint));
- }
-
- (*env)->ReleaseIntArrayElements (env, jpixels, jpixdata, 0);
-
- gdk_threads_leave();
-
- return jpixels;
-}
-
-/**
- * Copy area
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeCopyArea
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jint x, jint y, jint w, jint h, jint dx, jint dy)
-{
- GdkPixbuf *pixbuf;
- GdkPixmap* pixmap = JLONG_TO_PTR(GdkPixmap, pointer);
-
- g_assert (pixmap != NULL);
-
- gdk_threads_enter();
-
- pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, TRUE, 8, w, h );
- gdk_pixbuf_get_from_drawable( pixbuf, pixmap, NULL, x, y, 0, 0, w, h );
- gdk_draw_pixbuf (pixmap, NULL, pixbuf,
- 0, 0, x + dx, y + dy,
- w, h,
- GDK_RGB_DITHER_NORMAL, 0, 0);
- gdk_threads_leave();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkVolatileImage_nativeDrawVolatile
-(JNIEnv *env __attribute__((unused)), jobject obj __attribute__((unused)),
- jlong pointer, jlong srcptr, jint x, jint y, jint w, jint h)
-{
- GdkPixmap *dst, *src;
- GdkGC *gc;
-
- src = JLONG_TO_PTR(GdkPixmap, srcptr);
- dst = JLONG_TO_PTR(GdkPixmap, pointer);
- g_assert (src != NULL);
- g_assert (dst != NULL);
-
- gdk_threads_enter();
-
- gc = gdk_gc_new( dst );
- gdk_draw_drawable(dst,
- gc,
- src,
- 0, 0,
- x, y,
- w, h);
- g_object_unref( gc );
-
- gdk_threads_leave();
-}
-
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
deleted file mode 100644
index 6ba8d4767..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
+++ /dev/null
@@ -1,2164 +0,0 @@
-/* gtkwindowpeer.c -- Native implementation of GtkWindowPeer
- Copyright (C) 1998, 1999, 2002, 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 "gtkpeer.h"
-#include "gnu_java_awt_peer_gtk_GtkWindowPeer.h"
-#include <gdk/gdkprivate.h>
-#include <gdk/gdkx.h>
-#include <X11/Xatom.h>
-#include <gdk/gdkkeysyms.h>
-
-#define AWT_WINDOW_CLOSING 201
-#define AWT_WINDOW_CLOSED 202
-#define AWT_WINDOW_ICONIFIED 203
-#define AWT_WINDOW_DEICONIFIED 204
-#define AWT_WINDOW_ACTIVATED 205
-#define AWT_WINDOW_DEACTIVATED 206
-#define AWT_WINDOW_GAINED_FOCUS 207
-#define AWT_WINDOW_LOST_FOCUS 208
-#define AWT_WINDOW_STATE_CHANGED 209
-
-#define AWT_FRAME_NORMAL 0
-#define AWT_FRAME_ICONIFIED 1
-#define AWT_FRAME_MAXIMIZED_BOTH 6
-
-/* Virtual Keys */
-/* This list should be kept in the same order as the VK_ field
- declarations in KeyEvent.java. */
-#define VK_ENTER '\n'
-#define VK_BACK_SPACE '\b'
-#define VK_TAB '\t'
-#define VK_CANCEL 3
-#define VK_CLEAR 12
-#define VK_SHIFT 16
-#define VK_CONTROL 17
-#define VK_ALT 18
-#define VK_PAUSE 19
-#define VK_CAPS_LOCK 20
-#define VK_ESCAPE 27
-#define VK_SPACE ' '
-#define VK_PAGE_UP 33
-#define VK_PAGE_DOWN 34
-#define VK_END 35
-#define VK_HOME 36
-#define VK_LEFT 37
-#define VK_UP 38
-#define VK_RIGHT 39
-#define VK_DOWN 40
-#define VK_COMMA ','
-#define VK_MINUS '-'
-#define VK_PERIOD '.'
-#define VK_SLASH '/'
-#define VK_0 '0'
-#define VK_1 '1'
-#define VK_2 '2'
-#define VK_3 '3'
-#define VK_4 '4'
-#define VK_5 '5'
-#define VK_6 '6'
-#define VK_7 '7'
-#define VK_8 '8'
-#define VK_9 '9'
-#define VK_SEMICOLON ';'
-#define VK_EQUALS '='
-#define VK_A 'A'
-#define VK_B 'B'
-#define VK_C 'C'
-#define VK_D 'D'
-#define VK_E 'E'
-#define VK_F 'F'
-#define VK_G 'G'
-#define VK_H 'H'
-#define VK_I 'I'
-#define VK_J 'J'
-#define VK_K 'K'
-#define VK_L 'L'
-#define VK_M 'M'
-#define VK_N 'N'
-#define VK_O 'O'
-#define VK_P 'P'
-#define VK_Q 'Q'
-#define VK_R 'R'
-#define VK_S 'S'
-#define VK_T 'T'
-#define VK_U 'U'
-#define VK_V 'V'
-#define VK_W 'W'
-#define VK_X 'X'
-#define VK_Y 'Y'
-#define VK_Z 'Z'
-#define VK_OPEN_BRACKET '['
-#define VK_BACK_SLASH '\\'
-#define VK_CLOSE_BRACKET ']'
-/* See gtkpeer.h */
-/* #define VK_NUMPAD0 96 */
-/* #define VK_NUMPAD1 97 */
-/* #define VK_NUMPAD2 98 */
-/* #define VK_NUMPAD3 99 */
-/* #define VK_NUMPAD4 100 */
-/* #define VK_NUMPAD5 101 */
-/* #define VK_NUMPAD6 102 */
-/* #define VK_NUMPAD7 103 */
-/* #define VK_NUMPAD8 104 */
-/* #define VK_NUMPAD9 105 */
-#define VK_MULTIPLY 106
-#define VK_ADD 107
-#define VK_SEPARATER 108
-#define VK_SEPARATOR 108
-#define VK_SUBTRACT 109
-/* See gtkpeer.h */
-/* #define VK_DECIMAL 110 */
-#define VK_DIVIDE 111
-#define VK_DELETE 127
-#define VK_NUM_LOCK 144
-#define VK_SCROLL_LOCK 145
-#define VK_F1 112
-#define VK_F2 113
-#define VK_F3 114
-#define VK_F4 115
-#define VK_F5 116
-#define VK_F6 117
-#define VK_F7 118
-#define VK_F8 119
-#define VK_F9 120
-#define VK_F10 121
-#define VK_F11 122
-#define VK_F12 123
-#define VK_F13 61440
-#define VK_F14 61441
-#define VK_F15 61442
-#define VK_F16 61443
-#define VK_F17 61444
-#define VK_F18 61445
-#define VK_F19 61446
-#define VK_F20 61447
-#define VK_F21 61448
-#define VK_F22 61449
-#define VK_F23 61450
-#define VK_F24 61451
-#define VK_PRINTSCREEN 154
-#define VK_INSERT 155
-#define VK_HELP 156
-#define VK_META 157
-#define VK_BACK_QUOTE 192
-#define VK_QUOTE 222
-#define VK_KP_UP 224
-#define VK_KP_DOWN 225
-#define VK_KP_LEFT 226
-#define VK_KP_RIGHT 227
-#define VK_DEAD_GRAVE 128
-#define VK_DEAD_ACUTE 129
-#define VK_DEAD_CIRCUMFLEX 130
-#define VK_DEAD_TILDE 131
-#define VK_DEAD_MACRON 132
-#define VK_DEAD_BREVE 133
-#define VK_DEAD_ABOVEDOT 134
-#define VK_DEAD_DIAERESIS 135
-#define VK_DEAD_ABOVERING 136
-#define VK_DEAD_DOUBLEACUTE 137
-#define VK_DEAD_CARON 138
-#define VK_DEAD_CEDILLA 139
-#define VK_DEAD_OGONEK 140
-#define VK_DEAD_IOTA 141
-#define VK_DEAD_VOICED_SOUND 142
-#define VK_DEAD_SEMIVOICED_SOUND 143
-#define VK_AMPERSAND 150
-#define VK_ASTERISK 151
-#define VK_QUOTEDBL 152
-#define VK_LESS 153
-#define VK_GREATER 160
-#define VK_BRACELEFT 161
-#define VK_BRACERIGHT 162
-#define VK_AT 512
-#define VK_COLON 513
-#define VK_CIRCUMFLEX 514
-#define VK_DOLLAR 515
-#define VK_EURO_SIGN 516
-#define VK_EXCLAMATION_MARK 517
-#define VK_INVERTED_EXCLAMATION_MARK 518
-#define VK_LEFT_PARENTHESIS 519
-#define VK_NUMBER_SIGN 520
-#define VK_PLUS 521
-#define VK_RIGHT_PARENTHESIS 522
-#define VK_UNDERSCORE 523
-#define VK_FINAL 24
-#define VK_CONVERT 28
-#define VK_NONCONVERT 29
-#define VK_ACCEPT 30
-#define VK_MODECHANGE 31
-#define VK_KANA 21
-#define VK_KANJI 25
-#define VK_ALPHANUMERIC 240
-#define VK_KATAKANA 241
-#define VK_HIRAGANA 242
-#define VK_FULL_WIDTH 243
-#define VK_HALF_WIDTH 244
-#define VK_ROMAN_CHARACTERS 245
-#define VK_ALL_CANDIDATES 256
-#define VK_PREVIOUS_CANDIDATE 257
-#define VK_CODE_INPUT 258
-#define VK_JAPANESE_KATAKANA 259
-#define VK_JAPANESE_HIRAGANA 260
-#define VK_JAPANESE_ROMAN 261
-#define VK_KANA_LOCK 262
-#define VK_INPUT_METHOD_ON_OFF 263
-#define VK_CUT 65489
-#define VK_COPY 65485
-#define VK_PASTE 65487
-#define VK_UNDO 65483
-#define VK_AGAIN 65481
-#define VK_FIND 65488
-#define VK_PROPS 65482
-#define VK_STOP 65480
-#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
-#define AWT_FRAME_STATE_ICONIFIED 1
-#define AWT_FRAME_STATE_MAXIMIZED_HORIZ 2
-#define AWT_FRAME_STATE_MAXIMIZED_VERT 4
-#define AWT_FRAME_STATE_MAXIMIZED_BOTH 6
-
-static jmethodID postKeyEventID;
-static jmethodID postWindowEventID;
-static jmethodID postConfigureEventID;
-static jmethodID postInsetsChangedEventID;
-static jmethodID windowGetWidthID;
-static jmethodID windowGetHeightID;
-
-void
-cp_gtk_window_init_jni (void)
-{
- jclass gtkwindowpeer;
-
- gtkwindowpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkWindowPeer");
-
- postKeyEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkwindowpeer,
- "postKeyEvent", "(IJIICI)V");
-
- postWindowEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkwindowpeer,
- "postWindowEvent",
- "(ILjava/awt/Window;I)V");
-
- postConfigureEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkwindowpeer,
- "postConfigureEvent", "(IIII)V");
-
- postInsetsChangedEventID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkwindowpeer,
- "postInsetsChangedEvent",
- "(IIII)V");
-
- windowGetWidthID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkwindowpeer,
- "getWidth", "()I");
-
- windowGetHeightID = (*cp_gtk_gdk_env())->GetMethodID (cp_gtk_gdk_env(), gtkwindowpeer,
- "getHeight", "()I");
-
- gtkwindowpeer = (*cp_gtk_gdk_env())->FindClass (cp_gtk_gdk_env(),
- "gnu/java/awt/peer/gtk/GtkWindowPeer");
-}
-
-/* Get the first keyval in the keymap for this event's keycode. The
- first keyval corresponds roughly to Java's notion of a virtual key.
- Returns the uppercase version of the first keyval or -1 if no
- keyval was found for the given hardware keycode. */
-static gint
-get_first_keyval_from_keymap (GdkEventKey *event)
-{
- guint keyval;
- guint *keyvals;
- gint n_entries;
-
- if (!gdk_keymap_get_entries_for_keycode (NULL,
- event->hardware_keycode,
- NULL,
- &keyvals,
- &n_entries))
- {
- /* No keyval found for hardware keycode */
- return -1;
- }
- keyval = keyvals[0];
- g_free (keyvals);
-
- return gdk_keyval_to_upper (keyval);
-}
-
-/* Return the AWT key code for the given keysym or -1 if no keyval was
- found for the given hardware keycode. */
-#ifdef __GNUC__
-__inline
-#endif
-static jint
-keysym_to_awt_keycode (GdkEventKey *event)
-{
- gint ukeyval;
- guint state;
-
- ukeyval = get_first_keyval_from_keymap (event);
-
- if (ukeyval < 0)
- return -1;
-
- state = event->state;
-
- /* VK_A through VK_Z */
- if (ukeyval >= GDK_A && ukeyval <= GDK_Z)
- return ukeyval;
-
- /* VK_0 through VK_9 */
- if (ukeyval >= GDK_0 && ukeyval <= GDK_9)
- return ukeyval;
-
- switch (ukeyval)
- {
- case GDK_Return:
- case GDK_KP_Enter:
- return VK_ENTER;
- case GDK_BackSpace:
- return VK_BACK_SPACE;
- case GDK_Tab:
- return VK_TAB;
- case GDK_Cancel:
- return VK_CANCEL;
- case GDK_Clear:
- return VK_CLEAR;
- case GDK_Shift_L:
- case GDK_Shift_R:
- return VK_SHIFT;
- case GDK_Control_L:
- case GDK_Control_R:
- return VK_CONTROL;
- case GDK_Alt_L:
- case GDK_Alt_R:
- return VK_ALT;
- case GDK_Pause:
- return VK_PAUSE;
- case GDK_Caps_Lock:
- return VK_CAPS_LOCK;
- case GDK_Escape:
- return VK_ESCAPE;
- case GDK_space:
- return VK_SPACE;
- case GDK_KP_Page_Up:
- /* For keys on the numeric keypad, the JVM produces one of two
- virtual keys, depending on the num lock state. */
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD9;
- else
- return VK_PAGE_UP;
- case GDK_Page_Up:
- return VK_PAGE_UP;
- case GDK_KP_Page_Down:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD3;
- else
- return VK_PAGE_DOWN;
- case GDK_Page_Down:
- return VK_PAGE_DOWN;
- case GDK_KP_End:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD1;
- else
- return VK_END;
- case GDK_End:
- return VK_END;
- case GDK_KP_Home:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD7;
- else
- return VK_HOME;
- case GDK_Home:
- return VK_HOME;
- case GDK_KP_Begin:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD5;
- else
- return VK_UNDEFINED;
- case GDK_Left:
- return VK_LEFT;
- case GDK_Up:
- return VK_UP;
- case GDK_Right:
- return VK_RIGHT;
- case GDK_Down:
- return VK_DOWN;
- case GDK_comma:
- return VK_COMMA;
- case GDK_minus:
- return VK_MINUS;
- case GDK_period:
- return VK_PERIOD;
- case GDK_slash:
- return VK_SLASH;
- /*
- return VK_0;
- return VK_1;
- return VK_2;
- return VK_3;
- return VK_4;
- return VK_5;
- return VK_6;
- return VK_7;
- return VK_8;
- return VK_9;
- */
- case GDK_semicolon:
- return VK_SEMICOLON;
- case GDK_equal:
- return VK_EQUALS;
- /*
- return VK_A;
- return VK_B;
- return VK_C;
- return VK_D;
- return VK_E;
- return VK_F;
- return VK_G;
- return VK_H;
- return VK_I;
- return VK_J;
- return VK_K;
- return VK_L;
- return VK_M;
- return VK_N;
- return VK_O;
- return VK_P;
- return VK_Q;
- return VK_R;
- return VK_S;
- return VK_T;
- return VK_U;
- return VK_V;
- return VK_W;
- return VK_X;
- return VK_Y;
- return VK_Z;
- */
- case GDK_bracketleft:
- return VK_OPEN_BRACKET;
- case GDK_backslash:
- return VK_BACK_SLASH;
- case GDK_bracketright:
- return VK_CLOSE_BRACKET;
- case GDK_KP_0:
- return VK_NUMPAD0;
- case GDK_KP_1:
- return VK_NUMPAD1;
- case GDK_KP_2:
- return VK_NUMPAD2;
- case GDK_KP_3:
- return VK_NUMPAD3;
- case GDK_KP_4:
- return VK_NUMPAD4;
- case GDK_KP_5:
- return VK_NUMPAD5;
- case GDK_KP_6:
- return VK_NUMPAD6;
- case GDK_KP_7:
- return VK_NUMPAD7;
- case GDK_KP_8:
- return VK_NUMPAD8;
- case GDK_KP_9:
- return VK_NUMPAD9;
- case GDK_KP_Multiply:
- return VK_MULTIPLY;
- case GDK_KP_Add:
- return VK_ADD;
- /*
- return VK_SEPARATER;
- */
- case GDK_KP_Separator:
- return VK_SEPARATOR;
- case GDK_KP_Subtract:
- return VK_SUBTRACT;
- case GDK_KP_Decimal:
- return VK_DECIMAL;
- case GDK_KP_Divide:
- return VK_DIVIDE;
- case GDK_KP_Delete:
- if (state & GDK_MOD2_MASK)
- return VK_DECIMAL;
- else
- return VK_DELETE;
- case GDK_Delete:
- return VK_DELETE;
- case GDK_Num_Lock:
- return VK_NUM_LOCK;
- case GDK_Scroll_Lock:
- return VK_SCROLL_LOCK;
- case GDK_F1:
- return VK_F1;
- case GDK_F2:
- return VK_F2;
- case GDK_F3:
- return VK_F3;
- case GDK_F4:
- return VK_F4;
- case GDK_F5:
- return VK_F5;
- case GDK_F6:
- return VK_F6;
- case GDK_F7:
- return VK_F7;
- case GDK_F8:
- return VK_F8;
- case GDK_F9:
- return VK_F9;
- case GDK_F10:
- return VK_F10;
- case GDK_F11:
- return VK_F11;
- case GDK_F12:
- return VK_F12;
- case GDK_F13:
- return VK_F13;
- case GDK_F14:
- return VK_F14;
- case GDK_F15:
- return VK_F15;
- case GDK_F16:
- return VK_F16;
- case GDK_F17:
- return VK_F17;
- case GDK_F18:
- return VK_F18;
- case GDK_F19:
- return VK_F19;
- case GDK_F20:
- return VK_F20;
- case GDK_F21:
- return VK_F21;
- case GDK_F22:
- return VK_F22;
- case GDK_F23:
- return VK_F23;
- case GDK_F24:
- return VK_F24;
- case GDK_Print:
- return VK_PRINTSCREEN;
- case GDK_KP_Insert:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD0;
- else
- return VK_INSERT;
- case GDK_Insert:
- return VK_INSERT;
- case GDK_Help:
- return VK_HELP;
- case GDK_Meta_L:
- case GDK_Meta_R:
- return VK_META;
- case GDK_grave:
- return VK_BACK_QUOTE;
- case GDK_apostrophe:
- return VK_QUOTE;
- case GDK_KP_Up:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD8;
- else
- return VK_KP_UP;
- case GDK_KP_Down:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD2;
- else
- return VK_KP_DOWN;
- case GDK_KP_Left:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD4;
- else
- return VK_KP_LEFT;
- case GDK_KP_Right:
- if (state & GDK_MOD2_MASK)
- return VK_NUMPAD6;
- else
- return VK_KP_RIGHT;
- case GDK_dead_grave:
- return VK_DEAD_GRAVE;
- case GDK_dead_acute:
- return VK_DEAD_ACUTE;
- case GDK_dead_circumflex:
- return VK_DEAD_CIRCUMFLEX;
- case GDK_dead_tilde:
- return VK_DEAD_TILDE;
- case GDK_dead_macron:
- return VK_DEAD_MACRON;
- case GDK_dead_breve:
- return VK_DEAD_BREVE;
- case GDK_dead_abovedot:
- return VK_DEAD_ABOVEDOT;
- case GDK_dead_diaeresis:
- return VK_DEAD_DIAERESIS;
- case GDK_dead_abovering:
- return VK_DEAD_ABOVERING;
- case GDK_dead_doubleacute:
- return VK_DEAD_DOUBLEACUTE;
- case GDK_dead_caron:
- return VK_DEAD_CARON;
- case GDK_dead_cedilla:
- return VK_DEAD_CEDILLA;
- case GDK_dead_ogonek:
- return VK_DEAD_OGONEK;
- case GDK_dead_iota:
- return VK_DEAD_IOTA;
- case GDK_dead_voiced_sound:
- return VK_DEAD_VOICED_SOUND;
- case GDK_dead_semivoiced_sound:
- return VK_DEAD_SEMIVOICED_SOUND;
- case GDK_ampersand:
- return VK_AMPERSAND;
- case GDK_asterisk:
- return VK_ASTERISK;
- case GDK_quotedbl:
- return VK_QUOTEDBL;
- case GDK_less:
- return VK_LESS;
- case GDK_greater:
- return VK_GREATER;
- case GDK_braceleft:
- return VK_BRACELEFT;
- case GDK_braceright:
- return VK_BRACERIGHT;
- case GDK_at:
- return VK_AT;
- case GDK_colon:
- return VK_COLON;
- case GDK_asciicircum:
- return VK_CIRCUMFLEX;
- case GDK_dollar:
- return VK_DOLLAR;
- case GDK_EuroSign:
- return VK_EURO_SIGN;
- case GDK_exclam:
- return VK_EXCLAMATION_MARK;
- case GDK_exclamdown:
- return VK_INVERTED_EXCLAMATION_MARK;
- case GDK_parenleft:
- return VK_LEFT_PARENTHESIS;
- case GDK_numbersign:
- return VK_NUMBER_SIGN;
- case GDK_plus:
- return VK_PLUS;
- case GDK_parenright:
- return VK_RIGHT_PARENTHESIS;
- case GDK_underscore:
- return VK_UNDERSCORE;
- /*
- return VK_FINAL;
- return VK_CONVERT;
- return VK_NONCONVERT;
- return VK_ACCEPT;
- */
- case GDK_Mode_switch:
- return VK_MODECHANGE;
- /*
- return VK_KANA;
- */
- case GDK_Kanji:
- return VK_KANJI;
- /*
- return VK_ALPHANUMERIC;
- */
- case GDK_Katakana:
- return VK_KATAKANA;
- case GDK_Hiragana:
- return VK_HIRAGANA;
- /*
- return VK_FULL_WIDTH;
- return VK_HALF_WIDTH;
- return VK_ROMAN_CHARACTERS;
- return VK_ALL_CANDIDATES;
- */
- case GDK_PreviousCandidate:
- return VK_PREVIOUS_CANDIDATE;
- case GDK_Codeinput:
- return VK_CODE_INPUT;
- /*
- return VK_JAPANESE_KATAKANA;
- return VK_JAPANESE_HIRAGANA;
- return VK_JAPANESE_ROMAN;
- */
- case GDK_Kana_Lock:
- return VK_KANA_LOCK;
- /*
- return VK_INPUT_METHOD_ON_OFF;
- 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;
- */
- 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;
- }
-}
-
-/* Return the AWT key location code for the given keysym or -1 if no
- keyval was found for the given hardware keycode. */
-static jint
-keysym_to_awt_keylocation (GdkEventKey *event)
-{
- gint ukeyval;
-
- ukeyval = get_first_keyval_from_keymap (event);
-
- if (ukeyval < 0)
- return -1;
-
- /* VK_A through VK_Z */
- if (ukeyval >= GDK_A && ukeyval <= GDK_Z)
- return AWT_KEY_LOCATION_STANDARD;
-
- /* VK_0 through VK_9 */
- if (ukeyval >= GDK_0 && ukeyval <= GDK_9)
- return AWT_KEY_LOCATION_STANDARD;
-
- switch (ukeyval)
- {
- case GDK_Shift_L:
- case GDK_Control_L:
- case GDK_Alt_L:
- case GDK_Meta_L:
- return AWT_KEY_LOCATION_LEFT;
-
- case GDK_Shift_R:
- case GDK_Control_R:
- case GDK_Alt_R:
- case GDK_Meta_R:
- return AWT_KEY_LOCATION_RIGHT;
-
- case GDK_Return:
- case GDK_BackSpace:
- case GDK_Tab:
- case GDK_Cancel:
- case GDK_Clear:
- case GDK_Pause:
- case GDK_Caps_Lock:
- case GDK_Escape:
- case GDK_space:
- case GDK_Page_Up:
- case GDK_Page_Down:
- case GDK_End:
- case GDK_Home:
- case GDK_Left:
- case GDK_Up:
- case GDK_Right:
- case GDK_Down:
- case GDK_comma:
- case GDK_minus:
- case GDK_period:
- case GDK_slash:
- case GDK_semicolon:
- case GDK_equal:
- case GDK_bracketleft:
- case GDK_backslash:
- case GDK_bracketright:
- case GDK_Delete:
- case GDK_Scroll_Lock:
- case GDK_F1:
- case GDK_F2:
- case GDK_F3:
- case GDK_F4:
- case GDK_F5:
- case GDK_F6:
- case GDK_F7:
- case GDK_F8:
- case GDK_F9:
- case GDK_F10:
- case GDK_F11:
- case GDK_F12:
- case GDK_F13:
- case GDK_F14:
- case GDK_F15:
- case GDK_F16:
- case GDK_F17:
- case GDK_F18:
- case GDK_F19:
- case GDK_F20:
- case GDK_F21:
- case GDK_F22:
- case GDK_F23:
- case GDK_F24:
- case GDK_Print:
- case GDK_Insert:
- case GDK_Help:
- case GDK_grave:
- case GDK_apostrophe:
- case GDK_dead_grave:
- case GDK_dead_acute:
- case GDK_dead_circumflex:
- case GDK_dead_tilde:
- case GDK_dead_macron:
- case GDK_dead_breve:
- case GDK_dead_abovedot:
- case GDK_dead_diaeresis:
- case GDK_dead_abovering:
- case GDK_dead_doubleacute:
- case GDK_dead_caron:
- case GDK_dead_cedilla:
- case GDK_dead_ogonek:
- case GDK_dead_iota:
- case GDK_dead_voiced_sound:
- case GDK_dead_semivoiced_sound:
- case GDK_ampersand:
- case GDK_asterisk:
- case GDK_quotedbl:
- case GDK_less:
- case GDK_greater:
- case GDK_braceleft:
- case GDK_braceright:
- case GDK_at:
- case GDK_colon:
- case GDK_asciicircum:
- case GDK_dollar:
- case GDK_EuroSign:
- case GDK_exclam:
- case GDK_exclamdown:
- case GDK_parenleft:
- case GDK_numbersign:
- case GDK_plus:
- case GDK_parenright:
- case GDK_underscore:
- case GDK_Mode_switch:
- case GDK_Kanji:
- case GDK_Katakana:
- case GDK_Hiragana:
- case GDK_PreviousCandidate:
- case GDK_Codeinput:
- case GDK_Kana_Lock:
- return AWT_KEY_LOCATION_STANDARD;
-
- case GDK_KP_Enter:
- case GDK_KP_Page_Up:
- case GDK_KP_Page_Down:
- case GDK_KP_End:
- case GDK_KP_Home:
- case GDK_KP_Begin:
- case GDK_KP_0:
- case GDK_KP_1:
- case GDK_KP_2:
- case GDK_KP_3:
- case GDK_KP_4:
- case GDK_KP_5:
- case GDK_KP_6:
- case GDK_KP_7:
- case GDK_KP_8:
- case GDK_KP_9:
- case GDK_KP_Multiply:
- case GDK_KP_Add:
- case GDK_KP_Separator:
- case GDK_KP_Subtract:
- case GDK_KP_Decimal:
- case GDK_KP_Divide:
- case GDK_KP_Delete:
- case GDK_Num_Lock:
- case GDK_KP_Insert:
- case GDK_KP_Up:
- case GDK_KP_Down:
- case GDK_KP_Left:
- case GDK_KP_Right:
- return AWT_KEY_LOCATION_NUMPAD;
-
- default:
- return AWT_KEY_LOCATION_UNKNOWN;
- }
-}
-
-static jchar
-keyevent_to_awt_keychar (GdkEventKey *event)
-{
- if (event->length > 0)
- {
- /* Translate GDK carriage return to Java linefeed. */
- if (event->string[0] == 13)
- return VK_ENTER;
- else
- return event->string[0];
- }
- else
- {
- switch (event->keyval)
- {
- case GDK_BackSpace:
- return VK_BACK_SPACE;
- case GDK_Tab:
- return VK_TAB;
- case GDK_Delete:
- case GDK_KP_Delete:
- return VK_DELETE;
- default:
- return AWT_KEY_CHAR_UNDEFINED;
- }
- }
-}
-
-/* Modifier key events need special treatment. In Sun's peer
- implementation, when a modifier key is pressed, the KEY_PRESSED
- event has that modifier in its modifiers list. The corresponding
- KEY_RELEASED event's modifier list does not contain the modifier.
- For example, pressing and releasing the shift key will produce a
- key press event with modifiers=Shift, and a key release event with
- no modifiers. GDK's key events behave in the exact opposite way,
- so this translation code is needed. */
-static jint
-keyevent_state_to_awt_mods (GdkEventKey *event)
-{
- jint result = 0;
- guint state;
-
- if (event->type == GDK_KEY_PRESS)
- {
- state = event->state;
-
- if (event->keyval == GDK_Shift_L
- || event->keyval == GDK_Shift_R)
- result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
- else
- {
- if (state & GDK_SHIFT_MASK)
- result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
- }
-
- if (event->keyval == GDK_Control_L
- || event->keyval == GDK_Control_R)
- result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
- else
- {
- if (state & GDK_CONTROL_MASK)
- result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
- }
-
- if (event->keyval == GDK_Alt_L
- || event->keyval == GDK_Alt_R)
- result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
- else
- {
- if (state & GDK_MOD1_MASK)
- result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
- }
- }
- else if (event->type == GDK_KEY_RELEASE)
- {
- state = event->state;
-
- if (event->keyval != GDK_Shift_L
- && event->keyval != GDK_Shift_R)
- {
- if (state & GDK_SHIFT_MASK)
- result |= AWT_SHIFT_DOWN_MASK | AWT_SHIFT_MASK;
- }
- if (event->keyval != GDK_Control_L
- && event->keyval != GDK_Control_R)
- {
- if (state & GDK_CONTROL_MASK)
- result |= AWT_CTRL_DOWN_MASK | AWT_CTRL_MASK;
- }
-
- if (event->keyval != GDK_Alt_L
- && event->keyval != GDK_Alt_R)
- {
- if (state & GDK_MOD1_MASK)
- result |= AWT_ALT_DOWN_MASK | AWT_ALT_MASK;
- }
- }
-
- return result;
-}
-
-static gboolean window_configure_cb (GtkWidget *widget,
- GdkEventConfigure *event,
- jobject peer);
-
-/* FIXME: we're currently seeing the double-activation that occurs
- with metacity and GTK. See
- http://bugzilla.gnome.org/show_bug.cgi?id=140977 for details. */
-
-static void window_get_frame_extents (GtkWidget *window,
- int *top, int *left,
- int *bottom, int *right);
-
-static void request_frame_extents (GtkWidget *window);
-
-static Bool property_notify_predicate (Display *display,
- XEvent *xevent,
- XPointer arg);
-
-static gboolean window_delete_cb (GtkWidget *widget, GdkEvent *event,
- jobject peer);
-static void window_destroy_cb (GtkWidget *widget, GdkEvent *event,
- jobject peer);
-static void window_focus_state_change_cb (GtkWidget *widget,
- GParamSpec *pspec,
- jobject peer);
-static gboolean window_focus_in_cb (GtkWidget * widget,
- GdkEventFocus *event,
- jobject peer);
-static gboolean window_focus_out_cb (GtkWidget * widget,
- GdkEventFocus *event,
- jobject peer);
-static gboolean window_window_state_cb (GtkWidget *widget,
- GdkEvent *event,
- jobject peer);
-static gboolean window_property_changed_cb (GtkWidget *widget,
- GdkEventProperty *event,
- jobject peer);
-static void realize_cb (GtkWidget *widget, jobject peer);
-
-static gboolean
-window_configure_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventConfigure *event,
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postConfigureEventID,
- (jint) event->x,
- (jint) event->y,
- (jint) event->width,
- (jint) event->height);
-
- return FALSE;
-}
-
-static gboolean
-key_press_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventKey *event,
- jobject peer)
-{
- jint keycode;
- jint keylocation;
-
- keycode = keysym_to_awt_keycode (event);
- keylocation = keysym_to_awt_keylocation (event);
-
- /* Return immediately if an error occurs translating a hardware
- keycode to a keyval. */
- if (keycode < 0 || keylocation < 0)
- return TRUE;
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postKeyEventID,
- (jint) AWT_KEY_PRESSED,
- (jlong) event->time,
- keyevent_state_to_awt_mods (event),
- keycode,
- keyevent_to_awt_keychar (event),
- keylocation);
-
- /* FIXME: generation of key typed events needs to be moved
- to GtkComponentPeer.postKeyEvent. If the key in a key
- press event is not an "action" key
- (KeyEvent.isActionKey) and is not a modifier key, then
- it should generate a key typed event. */
- return TRUE;
-}
-
-
-static gboolean
-key_release_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventKey *event,
- jobject peer)
-{
- jint keycode;
- jint keylocation;
-
- keycode = keysym_to_awt_keycode (event);
- keylocation = keysym_to_awt_keylocation (event);
-
- /* Return immediately if an error occurs translating a hardware
- keycode to a keyval. */
- if (keycode < 0 || keylocation < 0)
- return TRUE;
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postKeyEventID,
- (jint) AWT_KEY_RELEASED,
- (jlong) event->time,
- keyevent_state_to_awt_mods (event),
- keycode,
- keyevent_to_awt_keychar (event),
- keylocation);
-
- return TRUE;
-}
-
-/* Union used for type punning. */
-union extents_union
-{
- guchar **gu_extents;
- unsigned long **extents;
-};
-
-union atom_list_union
-{
- guchar **gu_extents;
- Atom **atom_list;
-};
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_create
- (JNIEnv *env, jobject obj, jint type, jboolean decorated, jobject parent)
-{
- GtkWidget *window_widget;
- GtkWindow *window;
- void *window_parent;
- GtkWidget *fixed;
-
- gdk_threads_enter ();
-
- gtkpeer_set_global_ref (env, obj);
-
- window_widget = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- window = GTK_WINDOW (window_widget);
-
- /* Keep this window in front of its parent, if it has one. */
- if (parent)
- {
- window_parent = gtkpeer_get_widget (env, parent);
- gtk_window_set_transient_for (window, GTK_WINDOW(window_parent));
- }
-
- gtk_window_set_decorated (window, decorated);
-
- gtk_window_set_type_hint (window, type);
-
- gtk_window_group_add_window (cp_gtk_global_window_group, window);
-
- fixed = gtk_fixed_new ();
-
- gtk_container_add (GTK_CONTAINER (window_widget), fixed);
-
- gtk_widget_show (fixed);
-
- gtkpeer_set_widget (env, obj, window_widget);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetTitle
- (JNIEnv *env, jobject obj, jstring title)
-{
- const char *c_title;
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- c_title = (*env)->GetStringUTFChars (env, title, NULL);
-
- gtk_window_set_title (GTK_WINDOW (ptr), c_title);
-
- (*env)->ReleaseStringUTFChars (env, title, c_title);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetResizable
- (JNIEnv *env, jobject obj, jboolean resizable)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gtk_window_set_resizable (GTK_WINDOW (ptr), resizable);
- g_object_set (G_OBJECT (ptr), "allow-shrink", resizable, NULL);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_gtkWindowSetModal
- (JNIEnv *env, jobject obj, jboolean modal)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_window_set_modal (GTK_WINDOW (ptr), modal);
-
- 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 = gtkpeer_get_widget (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 = gtkpeer_get_widget (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)
-{
- gdk_threads_enter ();
-
- Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNativeUnlocked
- (env, obj, visible);
-
- gdk_flush ();
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setVisibleNativeUnlocked
- (JNIEnv *env, jobject obj, jboolean visible)
-{
- void *ptr;
-
- ptr = gtkpeer_get_widget (env, obj);
-
- if (visible)
- gtk_widget_show (GTK_WIDGET (ptr));
- else
- gtk_widget_hide (GTK_WIDGET (ptr));
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectSignals
- (JNIEnv *env, jobject obj)
-{
- void *ptr;
- jobject gref;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
- gref = (jobject) gtkpeer_get_global_ref (env, obj);
-
- g_signal_connect (G_OBJECT (ptr), "delete-event",
- G_CALLBACK (window_delete_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "destroy-event",
- G_CALLBACK (window_destroy_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "notify::has-toplevel-focus",
- G_CALLBACK (window_focus_state_change_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "focus-in-event",
- G_CALLBACK (window_focus_in_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "focus-out-event",
- G_CALLBACK (window_focus_out_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "window-state-event",
- G_CALLBACK (window_window_state_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "property-notify-event",
- G_CALLBACK (window_property_changed_cb), gref);
-
- g_signal_connect_after (G_OBJECT (ptr), "realize",
- G_CALLBACK (realize_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "key-press-event",
- G_CALLBACK (key_press_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "key-release-event",
- G_CALLBACK (key_release_cb), gref);
-
- g_signal_connect_after (G_OBJECT (ptr), "window-state-event",
- G_CALLBACK (window_window_state_cb), gref);
-
- g_signal_connect (G_OBJECT (ptr), "configure-event",
- G_CALLBACK (window_configure_cb), gref);
-
- cp_gtk_component_connect_expose_signals (ptr, gref);
- cp_gtk_component_connect_mouse_signals (ptr, gref);
-
- /* FIXME: override focus signals here to prevent child fixed repaint? */
-
- gdk_threads_leave ();
-}
-
-/* Realize the window here so that its frame extents are known now.
- That way Window.pack can operate with the accurate insets returned
- by the window manager rather than the default estimates. */
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_realize (JNIEnv *env, jobject obj)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_widget_realize (GTK_WIDGET (ptr));
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toBack (JNIEnv *env,
- jobject obj)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gdk_window_lower (GTK_WIDGET (ptr)->window);
- gdk_flush ();
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toFront (JNIEnv *env,
- jobject obj)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gdk_window_raise (GTK_WIDGET (ptr)->window);
- gdk_flush ();
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_setSize
- (JNIEnv *env, jobject obj, jint width, jint height)
-{
- void *ptr;
-
- gdk_threads_enter ();
-
- ptr = gtkpeer_get_widget (env, obj);
-
- /* Avoid GTK runtime assertion failures. */
- width = (width < 1) ? 1 : width;
- height = (height < 1) ? 1 : height;
-
- gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBounds
- (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
-{
- gdk_threads_enter ();
-
- Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked
- (env, obj, x, y, width, height);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked
- (JNIEnv *env, jobject obj, jint x, jint y)
-{
- void *ptr;
-
- ptr = gtkpeer_get_widget (env, obj);
-
- gtk_window_move (GTK_WINDOW(ptr), x, y);
-
- if (GTK_WIDGET (ptr)->window != NULL)
- gdk_window_move (GTK_WIDGET (ptr)->window, x, y);
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocation
- (JNIEnv *env, jobject obj, jint x, jint y)
-{
- gdk_threads_enter ();
-
- Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetLocationUnlocked
- (env, obj, x, y);
-
- gdk_threads_leave ();
-}
-
-JNIEXPORT void JNICALL
-Java_gnu_java_awt_peer_gtk_GtkWindowPeer_nativeSetBoundsUnlocked
- (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)
-{
- void *ptr;
- gint current_width;
- gint current_height;
-
- ptr = gtkpeer_get_widget (env, obj);
-
- /* Avoid GTK runtime assertion failures. */
- width = (width < 1) ? 1 : width;
- height = (height < 1) ? 1 : height;
-
- gtk_window_move (GTK_WINDOW(ptr), x, y);
- /* The call to gdk_window_move is needed in addition to the call to
- gtk_window_move. If gdk_window_move isn't called, then the
- following set of operations doesn't give the expected results:
-
- 1. show a window
- 2. manually move it to another position on the screen
- 3. hide the window
- 4. reposition the window with Component.setLocation
- 5. show the window
-
- Instead of being at the position set by setLocation, the window
- is reshown at the position to which it was moved manually. */
- if (GTK_WIDGET (ptr)->window != NULL)
- gdk_window_move (GTK_WIDGET (ptr)->window, x, y);
-
- /* Only request resizing if the actual width or height change, otherwise
- * we get unnecessary flickers because resizing causes GTK to clear the
- * window content, even if the actual size doesn't change. */
- gtk_window_get_size(GTK_WINDOW(ptr), &current_width, &current_height);
- if (current_width != width || current_height != height)
- {
- /* Need to change the widget's request size. */
- gtk_widget_set_size_request (GTK_WIDGET(ptr), width, height);
- /* Also need to call gtk_window_resize. If the resize is requested
- by the program and the window's "resizable" property is true then
- the size request will not be honoured. */
- gtk_window_resize (GTK_WINDOW (ptr), width, height);
- }
-}
-
-static void
-window_get_frame_extents (GtkWidget *window,
- int *top, int *left, int *bottom, int *right)
-{
- unsigned long *extents = NULL;
- union extents_union gu_ex;
-
- /* Guess frame extents in case _NET_FRAME_EXTENTS is not
- supported. */
- if (!gtk_window_get_decorated (GTK_WINDOW (window)))
- {
- *top = 0;
- *left = 0;
- *bottom = 0;
- *right = 0;
-
- return;
- }
-
- *top = 23;
- *left = 6;
- *bottom = 6;
- *right = 6;
-
- /* Request that the window manager set window's
- _NET_FRAME_EXTENTS property. */
- request_frame_extents (window);
-
- /* Attempt to retrieve window's frame extents. */
- gu_ex.extents = &extents;
- if (gdk_property_get (window->window,
- gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE),
- gdk_atom_intern ("CARDINAL", FALSE),
- 0,
- sizeof (unsigned long) * 4,
- FALSE,
- NULL,
- NULL,
- NULL,
- gu_ex.gu_extents))
- {
- *left = extents [0];
- *right = extents [1];
- *top = extents [2];
- *bottom = extents [3];
- }
-}
-
-static Atom extents_atom = 0;
-
-/* Requests that the window manager set window's
- _NET_FRAME_EXTENTS property. */
-static void
-request_frame_extents (GtkWidget *window)
-{
- const char *request_str = "_NET_REQUEST_FRAME_EXTENTS";
- GdkAtom request_extents = gdk_atom_intern (request_str, FALSE);
-
- /* Check if the current window manager supports
- _NET_REQUEST_FRAME_EXTENTS. */
- if (gdk_net_wm_supports (request_extents))
- {
- GdkDisplay *display = gtk_widget_get_display (window);
- Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- GdkWindow *root_window = gdk_get_default_root_window ();
- Window xroot_window = GDK_WINDOW_XID (root_window);
-
- Atom extents_request_atom =
- gdk_x11_get_xatom_by_name_for_display (display, request_str);
-
- XEvent xevent;
- XEvent notify_xevent;
-
- unsigned long window_id = GDK_WINDOW_XID (GDK_DRAWABLE(window->window));
-
- if (!extents_atom)
- {
- const char *extents_str = "_NET_FRAME_EXTENTS";
- extents_atom =
- gdk_x11_get_xatom_by_name_for_display (display, extents_str);
- }
-
- xevent.xclient.type = ClientMessage;
- xevent.xclient.message_type = extents_request_atom;
- xevent.xclient.display = xdisplay;
- xevent.xclient.window = window_id;
- xevent.xclient.format = 32;
- xevent.xclient.data.l[0] = 0;
- xevent.xclient.data.l[1] = 0;
- xevent.xclient.data.l[2] = 0;
- xevent.xclient.data.l[3] = 0;
- xevent.xclient.data.l[4] = 0;
-
- XSendEvent (xdisplay, xroot_window, False,
- (SubstructureRedirectMask | SubstructureNotifyMask),
- &xevent);
-
- XIfEvent(xdisplay, &notify_xevent,
- property_notify_predicate, (XPointer) &window_id);
- }
-}
-
-static Bool
-property_notify_predicate (Display *xdisplay __attribute__((unused)),
- XEvent *event,
- XPointer window_id)
-{
- unsigned long *window = (unsigned long *) window_id;
-
- if (event->xany.type == PropertyNotify
- && event->xany.window == *window
- && event->xproperty.atom == extents_atom)
- return True;
- else
- return False;
-}
-
-static gboolean
-window_delete_cb (GtkWidget *widget __attribute__((unused)),
- GdkEvent *event __attribute__((unused)),
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postWindowEventID,
- (jint) AWT_WINDOW_CLOSING,
- (jobject) NULL, (jint) 0);
-
- /* Prevents that the Window dissappears ("destroy"
- not being signalled). This is necessary because it
- should be up to a WindowListener implementation
- how the AWT Frame responds to close requests. */
- return TRUE;
-}
-
-static void
-window_destroy_cb (GtkWidget *widget __attribute__((unused)),
- GdkEvent *event __attribute__((unused)),
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postWindowEventID,
- (jint) AWT_WINDOW_CLOSED,
- (jobject) NULL, (jint) 0);
-}
-
-static void
-window_focus_state_change_cb (GtkWidget *widget,
- GParamSpec *pspec __attribute__((unused)),
- jobject peer)
-{
- if (GTK_WINDOW (widget)->has_toplevel_focus)
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postWindowEventID,
- (jint) AWT_WINDOW_ACTIVATED,
- (jobject) NULL, (jint) 0);
- else
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postWindowEventID,
- (jint) AWT_WINDOW_DEACTIVATED,
- (jobject) NULL, (jint) 0);
-}
-
-static gboolean
-window_focus_in_cb (GtkWidget * widget __attribute__((unused)),
- GdkEventFocus *event __attribute__((unused)),
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postWindowEventID,
- (jint) AWT_WINDOW_GAINED_FOCUS,
- (jobject) NULL, (jint) 0);
-
- return FALSE;
-}
-
-static gboolean
-window_focus_out_cb (GtkWidget * widget __attribute__((unused)),
- GdkEventFocus *event __attribute__((unused)),
- jobject peer)
-{
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postWindowEventID,
- (jint) AWT_WINDOW_LOST_FOCUS,
- (jobject) NULL, (jint) 0);
-
- return FALSE;
-}
-
-static gboolean
-window_window_state_cb (GtkWidget *widget __attribute__((unused)),
- GdkEvent *event,
- jobject peer)
-{
- jint new_java_state = 0;
- /* Put together the new state and let the java side figure out what
- * to post */
- GdkWindowState new_state = event->window_state.new_window_state;
- /* The window can be either iconfified, maximized, iconified + maximized
- * or normal. */
- if ((new_state & GDK_WINDOW_STATE_ICONIFIED) != 0)
- new_java_state |= AWT_FRAME_ICONIFIED;
- if ((new_state & GDK_WINDOW_STATE_MAXIMIZED) != 0)
- new_java_state |= AWT_FRAME_MAXIMIZED_BOTH;
- if ((new_state & (GDK_WINDOW_STATE_MAXIMIZED | GDK_WINDOW_STATE_ICONIFIED))
- == 0)
- new_java_state = AWT_FRAME_NORMAL;
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postWindowEventID,
- (jint) AWT_WINDOW_STATE_CHANGED,
- (jobject) NULL, new_java_state);
-
- return TRUE;
-}
-
-static gboolean
-window_property_changed_cb (GtkWidget *widget __attribute__((unused)),
- GdkEventProperty *event,
- jobject peer)
-{
- unsigned long *extents;
- union extents_union gu_ex;
-
- gu_ex.extents = &extents;
- if (gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE) == event->atom
- && gdk_property_get (event->window,
- gdk_atom_intern ("_NET_FRAME_EXTENTS", FALSE),
- gdk_atom_intern ("CARDINAL", FALSE),
- 0,
- sizeof (unsigned long) * 4,
- FALSE,
- NULL,
- NULL,
- NULL,
- gu_ex.gu_extents))
- {
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postInsetsChangedEventID,
- (jint) extents[2], /* top */
- (jint) extents[0], /* left */
- (jint) extents[3], /* bottom */
- (jint) extents[1]); /* right */
- }
-
-
- return FALSE;
-}
-
-static void
-realize_cb (GtkWidget *widget, jobject peer)
-{
- jint top = 0;
- jint left = 0;
- jint bottom = 0;
- jint right = 0;
- jint width = 0;
- jint height = 0;
-
- width = (*cp_gtk_gdk_env())->CallIntMethod (cp_gtk_gdk_env(), peer, windowGetWidthID);
- height = (*cp_gtk_gdk_env())->CallIntMethod (cp_gtk_gdk_env(), peer, windowGetHeightID);
-
- window_get_frame_extents (widget, &top, &left, &bottom, &right);
-
- (*cp_gtk_gdk_env())->CallVoidMethod (cp_gtk_gdk_env(), peer,
- postInsetsChangedEventID,
- top, left, bottom, right);
-
- gtk_window_set_default_size (GTK_WINDOW (widget),
- MAX (1, width - left - right),
- MAX (1, height - top - bottom));
-
- /* set the size like we do in nativeSetBounds */
- gtk_widget_set_size_request (widget,
- MAX (1, width - left - right),
- MAX (1, height - top - bottom));
-
- gtk_window_resize (GTK_WINDOW (widget),
- MAX (1, width - left - right),
- MAX (1, height - top - bottom));
-}
-
-/*
- * This method returns a GDK keyval that corresponds to one of the
- * keysyms in the X keymap table. The return value is only used to
- * determine the keyval's corresponding hardware keycode, and doesn't
- * reflect an accurate translation of a Java virtual key value to a
- * GDK keyval.
- */
-#ifdef __GNUC__
-__inline
-#endif
-guint
-cp_gtk_awt_keycode_to_keysym (jint keyCode, jint keyLocation)
-{
- /* GDK_A through GDK_Z */
- if (keyCode >= VK_A && keyCode <= VK_Z)
- return gdk_keyval_to_lower (keyCode);
-
- /* GDK_0 through GDK_9 */
- if (keyCode >= VK_0 && keyCode <= VK_9)
- return keyCode;
-
- switch (keyCode)
- {
- case VK_ENTER:
- return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Enter : GDK_Return;
- case VK_BACK_SPACE:
- return GDK_BackSpace;
- case VK_TAB:
- return GDK_Tab;
- case VK_CANCEL:
- return GDK_Cancel;
- case VK_CLEAR:
- return GDK_Clear;
- case VK_SHIFT:
- return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Shift_L : GDK_Shift_R;
- case VK_CONTROL:
- return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Control_L : GDK_Control_R;
- case VK_ALT:
- return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Alt_L : GDK_Alt_R;
- case VK_PAUSE:
- return GDK_Pause;
- case VK_CAPS_LOCK:
- return GDK_Caps_Lock;
- case VK_ESCAPE:
- return GDK_Escape;
- case VK_SPACE:
- return GDK_space;
- case VK_PAGE_UP:
- return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Page_Up : GDK_Page_Up;
- case VK_PAGE_DOWN:
- return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Page_Down : GDK_Page_Down;
- case VK_END:
- return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_End : GDK_End;
- case VK_HOME:
- return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Home : GDK_Home;
- case VK_LEFT:
- return GDK_Left;
- case VK_UP:
- return GDK_Up;
- case VK_RIGHT:
- return GDK_Right;
- case VK_DOWN:
- return GDK_Down;
- case VK_COMMA:
- return GDK_comma;
- case VK_MINUS:
- return GDK_minus;
- case VK_PERIOD:
- return GDK_period;
- case VK_SLASH:
- return GDK_slash;
- /*
- case VK_0:
- case VK_1:
- case VK_2:
- case VK_3:
- case VK_4:
- case VK_5:
- case VK_6:
- case VK_7:
- case VK_8:
- case VK_9:
- */
- case VK_SEMICOLON:
- return GDK_semicolon;
- case VK_EQUALS:
- return GDK_equal;
- /*
- case VK_A:
- case VK_B:
- case VK_C:
- case VK_D:
- case VK_E:
- case VK_F:
- case VK_G:
- case VK_H:
- case VK_I:
- case VK_J:
- case VK_K:
- case VK_L:
- case VK_M:
- case VK_N:
- case VK_O:
- case VK_P:
- case VK_Q:
- case VK_R:
- case VK_S:
- case VK_T:
- case VK_U:
- case VK_V:
- case VK_W:
- case VK_X:
- case VK_Y:
- case VK_Z:
- */
- case VK_OPEN_BRACKET:
- return GDK_bracketleft;
- case VK_BACK_SLASH:
- return GDK_backslash;
- case VK_CLOSE_BRACKET:
- return GDK_bracketright;
- case VK_NUMPAD0:
- return GDK_KP_0;
- case VK_NUMPAD1:
- return GDK_KP_1;
- case VK_NUMPAD2:
- return GDK_KP_2;
- case VK_NUMPAD3:
- return GDK_KP_3;
- case VK_NUMPAD4:
- return GDK_KP_4;
- case VK_NUMPAD5:
- return GDK_KP_5;
- case VK_NUMPAD6:
- return GDK_KP_6;
- case VK_NUMPAD7:
- return GDK_KP_7;
- case VK_NUMPAD8:
- return GDK_KP_8;
- case VK_NUMPAD9:
- return GDK_KP_9;
- case VK_MULTIPLY:
- return GDK_KP_Multiply;
- case VK_ADD:
- return GDK_KP_Add;
- /*
- case VK_SEPARATER:
- */
- case VK_SEPARATOR:
- return GDK_KP_Separator;
- case VK_SUBTRACT:
- return GDK_KP_Subtract;
- case VK_DECIMAL:
- return GDK_KP_Decimal;
- case VK_DIVIDE:
- return GDK_KP_Divide;
- case VK_DELETE:
- return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Delete : GDK_Delete;
- case VK_NUM_LOCK:
- return GDK_Num_Lock;
- case VK_SCROLL_LOCK:
- return GDK_Scroll_Lock;
- case VK_F1:
- return GDK_F1;
- case VK_F2:
- return GDK_F2;
- case VK_F3:
- return GDK_F3;
- case VK_F4:
- return GDK_F4;
- case VK_F5:
- return GDK_F5;
- case VK_F6:
- return GDK_F6;
- case VK_F7:
- return GDK_F7;
- case VK_F8:
- return GDK_F8;
- case VK_F9:
- return GDK_F9;
- case VK_F10:
- return GDK_F10;
- case VK_F11:
- return GDK_F11;
- case VK_F12:
- return GDK_F12;
- case VK_F13:
- return GDK_F13;
- case VK_F14:
- return GDK_F14;
- case VK_F15:
- return GDK_F15;
- case VK_F16:
- return GDK_F16;
- case VK_F17:
- return GDK_F17;
- case VK_F18:
- return GDK_F18;
- case VK_F19:
- return GDK_F19;
- case VK_F20:
- return GDK_F20;
- case VK_F21:
- return GDK_F21;
- case VK_F22:
- return GDK_F22;
- case VK_F23:
- return GDK_F23;
- case VK_F24:
- return GDK_F24;
- case VK_PRINTSCREEN:
- return GDK_Print;
- case VK_INSERT:
- return keyLocation == AWT_KEY_LOCATION_NUMPAD ? GDK_KP_Insert : GDK_Insert;
- case VK_HELP:
- return GDK_Help;
- case VK_META:
- return keyLocation == AWT_KEY_LOCATION_LEFT ? GDK_Meta_L : GDK_Meta_R;
- case VK_BACK_QUOTE:
- return GDK_grave;
- case VK_QUOTE:
- return GDK_apostrophe;
- case VK_KP_UP:
- return GDK_KP_Up;
- case VK_KP_DOWN:
- return GDK_KP_Down;
- case VK_KP_LEFT:
- return GDK_KP_Left;
- case VK_KP_RIGHT:
- return GDK_KP_Right;
- case VK_DEAD_GRAVE:
- return GDK_dead_grave;
- case VK_DEAD_ACUTE:
- return GDK_dead_acute;
- case VK_DEAD_CIRCUMFLEX:
- return GDK_dead_circumflex;
- case VK_DEAD_TILDE:
- return GDK_dead_tilde;
- case VK_DEAD_MACRON:
- return GDK_dead_macron;
- case VK_DEAD_BREVE:
- return GDK_dead_breve;
- case VK_DEAD_ABOVEDOT:
- return GDK_dead_abovedot;
- case VK_DEAD_DIAERESIS:
- return GDK_dead_diaeresis;
- case VK_DEAD_ABOVERING:
- return GDK_dead_abovering;
- case VK_DEAD_DOUBLEACUTE:
- return GDK_dead_doubleacute;
- case VK_DEAD_CARON:
- return GDK_dead_caron;
- case VK_DEAD_CEDILLA:
- return GDK_dead_cedilla;
- case VK_DEAD_OGONEK:
- return GDK_dead_ogonek;
- case VK_DEAD_IOTA:
- return GDK_dead_iota;
- case VK_DEAD_VOICED_SOUND:
- return GDK_dead_voiced_sound;
- case VK_DEAD_SEMIVOICED_SOUND:
- return GDK_dead_semivoiced_sound;
- case VK_AMPERSAND:
- return GDK_ampersand;
- case VK_ASTERISK:
- return GDK_asterisk;
- case VK_QUOTEDBL:
- return GDK_quotedbl;
- case VK_LESS:
- return GDK_less;
- case VK_GREATER:
- return GDK_greater;
- case VK_BRACELEFT:
- return GDK_braceleft;
- case VK_BRACERIGHT:
- return GDK_braceright;
- case VK_AT:
- return GDK_at;
- case VK_COLON:
- return GDK_colon;
- case VK_CIRCUMFLEX:
- return GDK_asciicircum;
- case VK_DOLLAR:
- return GDK_dollar;
- case VK_EURO_SIGN:
- return GDK_EuroSign;
- case VK_EXCLAMATION_MARK:
- return GDK_exclam;
- case VK_INVERTED_EXCLAMATION_MARK:
- return GDK_exclamdown;
- case VK_LEFT_PARENTHESIS:
- return GDK_parenleft;
- case VK_NUMBER_SIGN:
- return GDK_numbersign;
- case VK_PLUS:
- return GDK_plus;
- case VK_RIGHT_PARENTHESIS:
- return GDK_parenright;
- case VK_UNDERSCORE:
- return GDK_underscore;
- /*
- case VK_FINAL:
- case VK_CONVERT:
- case VK_NONCONVERT:
- case VK_ACCEPT:
- */
- case VK_MODECHANGE:
- return GDK_Mode_switch;
- /*
- case VK_KANA:
- */
- case VK_KANJI:
- return GDK_Kanji;
- /*
- case VK_ALPHANUMERIC:
- */
- case VK_KATAKANA:
- return GDK_Katakana;
- case VK_HIRAGANA:
- return GDK_Hiragana;
- /*
- case VK_FULL_WIDTH:
- case VK_HALF_WIDTH:
- case VK_ROMAN_CHARACTERS:
- case VK_ALL_CANDIDATES:
- */
- case VK_PREVIOUS_CANDIDATE:
- return GDK_PreviousCandidate;
- case VK_CODE_INPUT:
- return GDK_Codeinput;
- /*
- case VK_JAPANESE_KATAKANA:
- case VK_JAPANESE_HIRAGANA:
- case VK_JAPANESE_ROMAN:
- */
- case VK_KANA_LOCK:
- return GDK_Kana_Lock;
- /*
- case VK_INPUT_METHOD_ON_OFF:
- 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:
- 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;
- }
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c
deleted file mode 100644
index 72130376f..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtk_jawt.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* gtk_jawt.c -- GTK implementation of classpath_jawt.h
- Copyright (C) 2005 Free Software Foundation, Inc.
-
- This file is part of GNU Classpath.
-
- GNU Classpath is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- GNU Classpath is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with GNU Classpath; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 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 <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include "classpath_jawt.h"
-
-jint
-classpath_jawt_get_awt_version ()
-{
- return CLASSPATH_JAWT_VERSION;
-}
-
-/* Does not require locking: meant to be called after the drawing
- surface is locked. */
-Display*
-classpath_jawt_get_default_display (JNIEnv* env, jobject canvas)
-{
- GdkDisplay *display;
- Display *xdisplay;
- GtkWidget *widget;
- void *ptr;
- jobject peer;
- jclass class_id;
- jmethodID method_id;
-
- /* retrieve peer object */
- class_id = (*env)->GetObjectClass (env, canvas);
-
- method_id = (*env)->GetMethodID (env, class_id,
- "getPeer",
- "()Ljava/awt/peer/ComponentPeer;");
-
- peer = (*env)->CallObjectMethod (env, canvas, method_id);
-
- ptr = gtkpeer_get_widget (env, peer);
-
- widget = GTK_WIDGET (ptr);
-
- if (GTK_WIDGET_REALIZED (widget))
- {
- display = gtk_widget_get_display (widget);
-
- xdisplay = GDK_DISPLAY_XDISPLAY (display);
-
- return xdisplay;
- }
- else
- return NULL;
-}
-
-/* Does not require locking: meant to be called after the drawing
- surface is locked. */
-VisualID
-classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)
-{
- GtkWidget *widget;
- Visual *visual;
- void *ptr;
- jobject peer;
- jclass class_id;
- jmethodID method_id;
-
- class_id = (*env)->GetObjectClass (env, canvas);
-
- method_id = (*env)->GetMethodID (env, class_id,
- "getPeer",
- "()Ljava/awt/peer/ComponentPeer;");
-
- peer = (*env)->CallObjectMethod (env, canvas, method_id);
-
- ptr = gtkpeer_get_widget (env, peer);
-
- widget = GTK_WIDGET (ptr);
-
- if (GTK_WIDGET_REALIZED (widget))
- {
- visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget));
- g_assert (visual != NULL);
-
- return visual->visualid;
- }
- else
- return (VisualID) NULL;
-}
-
-/* Does not require locking: meant to be called after the drawing
- surface is locked. */
-int
-classpath_jawt_get_depth (JNIEnv* env, jobject canvas)
-{
- GtkWidget *widget;
- GdkVisual *visual;
- void *ptr;
- jobject peer;
- jclass class_id;
- jmethodID method_id;
-
- class_id = (*env)->GetObjectClass (env, canvas);
-
- method_id = (*env)->GetMethodID (env, class_id,
- "getPeer",
- "()Ljava/awt/peer/ComponentPeer;");
-
- peer = (*env)->CallObjectMethod (env, canvas, method_id);
-
- ptr = gtkpeer_get_widget (env, peer);
-
- widget = GTK_WIDGET (ptr);
-
- if (GTK_WIDGET_REALIZED (widget))
- {
- visual = gtk_widget_get_visual (widget);
- g_assert (visual != NULL);
-
- return visual->depth;
- }
- else
- return (VisualID) NULL;
-}
-
-/* Does not require locking: meant to be called after the drawing
- surface is locked. */
-Drawable
-classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
-{
- GtkWidget *widget;
- int drawable;
- void *ptr;
- jobject peer;
- jclass class_id;
- jmethodID method_id;
-
- class_id = (*env)->GetObjectClass (env, canvas);
-
- method_id = (*env)->GetMethodID (env, class_id,
- "getPeer",
- "()Ljava/awt/peer/ComponentPeer;");
-
- peer = (*env)->CallObjectMethod (env, canvas, method_id);
-
- ptr = gtkpeer_get_widget (env, peer);
-
- widget = GTK_WIDGET (ptr);
-
- if (GTK_WIDGET_REALIZED (widget))
- {
- drawable = GDK_DRAWABLE_XID (widget->window);
-
- return drawable;
- }
- else
- return (Drawable) NULL;
-}
-
-jint
-classpath_jawt_lock ()
-{
- gdk_threads_enter ();
- return 0;
-}
-
-void
-classpath_jawt_unlock ()
-{
- gdk_threads_leave ();
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.c b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
deleted file mode 100644
index b57626e94..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.c
+++ /dev/null
@@ -1,586 +0,0 @@
-/* gtkpeer.c -- Some GTK peer specific helper functions
- Copyright (C) 2007 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 "jni.h"
-
-/**
- * The Pointer class.
- */
-static jclass pointerClass;
-
-/**
- * The Pointer constructor.
- */
-static jmethodID pointerConstructorMID;
-
-/**
- * The field ID of the data field in the Pointer class.
- */
-static jfieldID pointerDataFID;
-
-/**
- * The field ID of the widget field in the GtkGenericPeer class.
- */
-static jfieldID widgetFID;
-
-/**
- * The field ID of the globalRef field in the GtkGenericPeer class.
- */
-static jfieldID globalRefFID;
-
-/**
- * The field ID of the display field in the GdkGraphicsEnvironment class.
- */
-static jfieldID displayFID;
-
-/**
- * The field ID of the screen field in the GdkScreenGraphicsDevice class.
- */
-static jfieldID screenFID;
-
-/**
- * The field ID of the nativeFont field in GdkFontPeer.
- */
-static jfieldID fontFID;
-
-/**
- * The field ID of the nativeDecoder field in GdkPixbufDecoder.
- */
-static jfieldID pixbufLoaderFID;
-
-/**
- * Initializes the IDs of the Pointer* classes.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_pointer_IDs(JNIEnv* env)
-{
-#if SIZEOF_VOID_P == 8
- pointerClass = (*env)->FindClass (env, "gnu/classpath/Pointer64");
- if (pointerClass != NULL)
- {
- pointerClass = (*env)->NewGlobalRef (env, pointerClass);
- pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "J");
- pointerConstructorMID = (*env)->GetMethodID (env, pointerClass, "<init>",
- "(J)V");
- }
-#else
-#if SIZEOF_VOID_P == 4
- pointerClass = (*env)->FindClass(env, "gnu/classpath/Pointer32");
- if (pointerClass != NULL)
- {
- pointerClass = (*env)->NewGlobalRef (env, pointerClass);
- pointerDataFID = (*env)->GetFieldID (env, pointerClass, "data", "I");
- pointerConstructorMID = (*env)->GetMethodID (env, pointerClass, "<init>",
- "(I)V");
- }
-#else
-#error "Pointer size is not supported."
-#endif /* SIZEOF_VOID_P == 4 */
-#endif /* SIZEOF_VOID_P == 8 */
-}
-
-/**
- * Initializes the field IDs for the widget reference.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_widget_IDs(JNIEnv *env)
-{
- jclass cls;
-
- /* Find the widget field ID in GtkGenericPeer. */
- cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GtkGenericPeer");
- widgetFID = (*env)->GetFieldID(env, cls, "widget",
- "Lgnu/classpath/Pointer;");
-
- /* Find the globalRef field in GtkGenericPeer. */
- globalRefFID = (*env)->GetFieldID(env, cls, "globalRef",
- "Lgnu/classpath/Pointer;");
-}
-
-/**
- * Stores the GTK widget reference in the GtkGenericPeer object.
- *
- * @param env the JNI environment
- * @param peer the actual peer object
- * @param widget the widget reference to store
- */
-void gtkpeer_set_widget(JNIEnv *env, jobject peer, void *widget)
-{
- jobject obj;
-
- /* Fetch the widget field object. */
- obj = (*env)->GetObjectField(env, peer, widgetFID);
- if (obj == NULL)
- {
- /* Create if necessary. */
-#if SIZEOF_VOID_P == 8
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jlong) widget);
-#else
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jint) widget);
-#endif
- (*env)->SetObjectField(env, peer, widgetFID, obj);
- }
- else
- {
-#if SIZEOF_VOID_P == 8
- (*env)->SetLongField(env, obj, pointerDataFID, (jlong) widget);
-#else
- (*env)->SetIntField(env, obj, pointerDataFID, (jint) widget);
-#endif
- }
-}
-
-/**
- * Retrieves the GTK widget reference from a GtkGenericPeer object.
- *
- * @param env the JNI environment
- * @param peer the actual peer object
- *
- * @return the widget reference
- */
-void* gtkpeer_get_widget(JNIEnv *env, jobject peer)
-{
- jobject obj;
- void *widget;
-
- /* Fetch the widget field from the peer object. */
- obj = (*env)->GetObjectField(env, peer, widgetFID);
-
- /* Fetch actual widget pointer. */
-#if SIZEOF_VOID_P == 8
- widget = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
-#else
- widget = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
-#endif
- return widget;
-}
-
-
-/**
- * Stores the global JNI reference of a peer inside the peer.
- *
- * @param env the JNI environment
- * @param peer the peer object
- */
-void gtkpeer_set_global_ref(JNIEnv *env, jobject peer)
-{
- jobject obj;
- void* globalRef;
-
- /* Create global reference. */
- globalRef = (*env)->NewGlobalRef(env, peer);
-
- /* Fetch the globalRef field object. */
- obj = (*env)->GetObjectField(env, peer, globalRefFID);
- if (obj == NULL)
- {
- /* Create if necessary. */
-#if SIZEOF_VOID_P == 8
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jlong) globalRef);
-#else
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jint) globalRef);
-#endif
- (*env)->SetObjectField(env, peer, globalRefFID, obj);
- }
- else
- {
-#if SIZEOF_VOID_P == 8
- (*env)->SetLongField(env, obj, pointerDataFID, (jlong) globalRef);
-#else
- (*env)->SetIntField(env, obj, pointerDataFID, (jint) globalRef);
-#endif
- }
-}
-
-/**
- * Retrieves the global reference from a peer.
- *
- * @param env the JNI environment
- * @param peer the peer object
- *
- * @return the global reference
- */
-void* gtkpeer_get_global_ref(JNIEnv *env, jobject peer)
-{
- jobject obj;
- void *globalRef;
-
- /* Fetch the globalRef field from the peer object. */
- obj = (*env)->GetObjectField(env, peer, globalRefFID);
-
- /* Fetch actual globalRef pointer. */
-#if SIZEOF_VOID_P == 8
- globalRef = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
-#else
- globalRef = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
-#endif
- return globalRef;
-}
-
-/**
- * Deletes the global reference of a peer. This is necessary in order to
- * allow the peer to be garbage collected.
- *
- * @param env the JNI environment
- * @param peer the peer object.
- */
-void gtkpeer_del_global_ref(JNIEnv* env, jobject peer)
-{
- jobject obj;
- void *globalRef;
-
- /* Fetch the globalRef field from the peer object. */
- obj = (*env)->GetObjectField(env, peer, globalRefFID);
-
- /* Fetch actual globalRef pointer. */
-#if SIZEOF_VOID_P == 8
- globalRef = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
-#else
- globalRef = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
-#endif
- (*env)->DeleteGlobalRef(env, globalRef);
-}
-
-/**
- * Initializes the fieldIDs for the display and screen fields.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_display_IDs(JNIEnv* env)
-{
- jclass cls;
-
- /* Find the display field ID in GdkGraphicsEnvironment. */
- cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkGraphicsEnvironment");
- displayFID = (*env)->GetFieldID(env, cls, "display",
- "Lgnu/classpath/Pointer;");
-}
-
-/**
- * Sets the native display pointer in the GdkGraphicsEnvironment object.
- *
- * @param env the JNI environment
- * @param graphicsenv the GdkGraphicsEnvironment object
- * @param display the native display pointer
- */
-void gtkpeer_set_display(JNIEnv* env, jobject graphicsenv, void* display)
-{
- jobject obj;
-
- /* Fetch the display field object. */
- obj = (*env)->GetObjectField(env, graphicsenv, displayFID);
- if (obj == NULL)
- {
- /* Create if necessary. */
-#if SIZEOF_VOID_P == 8
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jlong) display);
-#else
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jint) display);
-#endif
- (*env)->SetObjectField(env, graphicsenv, displayFID, obj);
- }
- else
- {
-#if SIZEOF_VOID_P == 8
- (*env)->SetLongField(env, obj, pointerDataFID, (jlong) display);
-#else
- (*env)->SetIntField(env, obj, pointerDataFID, (jint) display);
-#endif
- }
-}
-
-/**
- * Fetches the native display pointer from the GdkGraphicsEnvironment object.
- *
- * @param env the JNI environment
- * @param graphicsenv the GdkGraphicsEnvironment object
- *
- * @return the native display pointer
- */
-void* gtkpeer_get_display(JNIEnv* env, jobject graphicsenv)
-{
- jobject obj;
- void *display;
-
- /* Fetch the display field from the peer object. */
- obj = (*env)->GetObjectField(env, graphicsenv, displayFID);
-
- /* Fetch actual display pointer. */
-#if SIZEOF_VOID_P == 8
- display = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
-#else
- display = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
-#endif
- return display;
-}
-
-/**
- * Initializes the fieldIDs for the screen field.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_screen_IDs(JNIEnv* env)
-{
- jclass cls;
-
- /* Find the display field ID in GdkScreenGraphicsDevice. */
- cls = (*env)->FindClass(env,
- "gnu/java/awt/peer/gtk/GdkScreenGraphicsDevice");
- screenFID = (*env)->GetFieldID(env, cls, "screen",
- "Lgnu/classpath/Pointer;");
-}
-
-/**
- * Sets the native screen in the GdkScreenGraphicsDevice object.
- *
- * @param env the JNI environment
- * @param screen_graphics_device the GdkScreenGraphicsDevice object
- * @param ptr the native screen pointer
- */
-void gtkpeer_set_screen(JNIEnv* env, jobject screen_graphics_device,
- void* ptr)
-{
- jobject obj;
-
- /* Fetch the screen field object. */
- obj = (*env)->GetObjectField(env, screen_graphics_device, screenFID);
- if (obj == NULL)
- {
- /* Create if necessary. */
-#if SIZEOF_VOID_P == 8
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jlong) ptr);
-#else
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jint) ptr);
-#endif
- (*env)->SetObjectField(env, screen_graphics_device, screenFID, obj);
- }
- else
- {
-#if SIZEOF_VOID_P == 8
- (*env)->SetLongField(env, obj, pointerDataFID, (jlong) ptr);
-#else
- (*env)->SetIntField(env, obj, pointerDataFID, (jint) ptr);
-#endif
- }
-}
-
-/**
- * Fetches the native screen pointer from the GdkScreenGraphicsDevice object.
- *
- * @param env the JNI environment
- * @param screen_graphics_device the GdkScreenGraphicsDevice object
- *
- * @return the native screen pointer
- */
-void* gtkpeer_get_screen(JNIEnv* env, jobject screen_graphics_device)
-{
- jobject obj;
- void *screen;
-
- /* Fetch the display field from the peer object. */
- obj = (*env)->GetObjectField(env, screen_graphics_device, screenFID);
-
- /* Fetch actual display pointer. */
-#if SIZEOF_VOID_P == 8
- screen = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
-#else
- screen = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
-#endif
- return screen;
-}
-
-/**
- * Initializes the field IDs for fonts.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_font_IDs(JNIEnv* env)
-{
- jclass cls;
-
- /* Find the nativeFont field ID in GdkFontPeer. */
- cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkFontPeer");
- fontFID = (*env)->GetFieldID(env, cls, "nativeFont",
- "Lgnu/classpath/Pointer;");
-}
-
-/**
- * Sets the native font in the nativeFont field in GdkFontPeer.
- *
- * @param env the JNI environment
- * @param font_peer the font peer object
- * @param font the actual native font reference
- */
-void gtkpeer_set_font(JNIEnv* env, jobject font_peer, void* font)
-{
- jobject obj;
-
- /* Fetch the nativeFont field object. */
- obj = (*env)->GetObjectField(env, font_peer, fontFID);
- if (obj == NULL)
- {
- /* Create if necessary. */
-#if SIZEOF_VOID_P == 8
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jlong) font);
-#else
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jint) font);
-#endif
- (*env)->SetObjectField(env, font_peer, fontFID, obj);
- }
- else
- {
-#if SIZEOF_VOID_P == 8
- (*env)->SetLongField(env, obj, pointerDataFID, (jlong) font);
-#else
- (*env)->SetIntField(env, obj, pointerDataFID, (jint) font);
-#endif
- }
-}
-
-/**
- * Fetches the native font reference from the GdkFontPeer object.
- *
- * @param env the JNI environment
- * @param font_peer the font peer object
- *
- * @return the native font structure
- */
-void* gtkpeer_get_font(JNIEnv* env, jobject font_peer)
-{
- jobject obj;
- void *font;
-
- /* Fetch the nativeFont field from the peer object. */
- obj = (*env)->GetObjectField(env, font_peer, fontFID);
-
- /* Fetch actual font pointer. */
-#if SIZEOF_VOID_P == 8
- font = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
-#else
- font = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
-#endif
- return font;
-}
-
-/**
- * Initializes the field IDs for pixbuf decoder.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_pixbuf_IDs(JNIEnv* env)
-{
- jclass cls;
-
- /* Find the nativeFont field ID in GdkFontPeer. */
- cls = (*env)->FindClass(env, "gnu/java/awt/peer/gtk/GdkPixbufDecoder");
- pixbufLoaderFID = (*env)->GetFieldID(env, cls, "nativeDecoder",
- "Lgnu/classpath/Pointer;");
-}
-
-/**
- * Sets the native font in the nativeFont field in GdkFontPeer.
- *
- * @param env the JNI environment
- * @param pixbuf_dec the pixbuf decoder object
- * @param pixbuf_loader the native pixbuf loader
- */
-void gtkpeer_set_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec,
- void* pixbuf_loader)
-{
- jobject obj;
-
- /* Fetch the nativeDecoder field object. */
- obj = (*env)->GetObjectField(env, pixbuf_dec, pixbufLoaderFID);
- if (obj == NULL)
- {
- /* Create if necessary. */
-#if SIZEOF_VOID_P == 8
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jlong) pixbuf_loader);
-#else
- obj = (*env)->NewObject(env, pointerClass, pointerConstructorMID,
- (jint) pixbuf_loader);
-#endif
- (*env)->SetObjectField(env, pixbuf_dec, pixbufLoaderFID, obj);
- }
- else
- {
-#if SIZEOF_VOID_P == 8
- (*env)->SetLongField(env, obj, pointerDataFID, (jlong) pixbuf_loader);
-#else
- (*env)->SetIntField(env, obj, pointerDataFID, (jint) pixbuf_loader);
-#endif
- }
-}
-
-/**
- * Fetches the native pixbuf loader reference from the GdkPixbufDecoder object.
- *
- * @param env the JNI environment
- * @param pixbuf_dec the pixbuf decoder object
- *
- * @return the native pixbuf loader
- */
-void* gtkpeer_get_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec)
-{
- jobject obj;
- void *loader;
-
- /* Fetch the nativeFont field from the peer object. */
- obj = (*env)->GetObjectField(env, pixbuf_dec, pixbufLoaderFID);
-
- /* Fetch actual font pointer. */
-#if SIZEOF_VOID_P == 8
- loader = (void*) (*env)->GetLongField(env, obj, pointerDataFID);
-#else
- loader = (void*) (*env)->GetIntField(env, obj, pointerDataFID);
-#endif
- return loader;
-}
diff --git a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.h b/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.h
deleted file mode 100644
index 8b677aff7..000000000
--- a/gcc-4.8.1/libjava/classpath/native/jni/gtk-peer/gtkpeer.h
+++ /dev/null
@@ -1,360 +0,0 @@
-/* gtkpeer.h -- Some global variables and #defines
- Copyright (C) 1998, 1999, 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 <cairo.h>
-#include <gtk/gtk.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <config.h>
-#include <gdk-pixbuf/gdk-pixbuf.h>
-
-#include <jni.h>
-
-#ifndef __GTKPEER_H__
-#define __GTKPEER_H__
-
-#ifndef __GNUC__
-#define __attribute__(x) /* nothing */
-#endif
-
-/**
- * Initializes the IDs of the Pointer* classes.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_pointer_IDs(JNIEnv* env);
-
-/**
- * Initializes the field IDs for the widget reference.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_widget_IDs(JNIEnv *env);
-
-/**
- * Stores the GTK widget reference in the GtkComponentPeer object.
- *
- * @param env the JNI environment
- * @param peer the actual peer object
- * @param widget the widget reference to store
- */
-void gtkpeer_set_widget(JNIEnv *env, jobject peer, void *widget);
-
-/**
- * Retrieves the GTK widget reference from a GtkComponentPeer object.
- *
- * @param env the JNI environment
- * @param peer the actual peer object
- *
- * @return the widget reference
- */
-void* gtkpeer_get_widget(JNIEnv *env, jobject peer);
-
-/**
- * Stores the global JNI reference of a peer inside the peer.
- *
- * @param env the JNI environment
- * @param peer the peer object
- */
-void gtkpeer_set_global_ref(JNIEnv *env, jobject peer);
-
-/**
- * Retrieves the global reference from a peer.
- *
- * @param env the JNI environment
- * @param peer the peer object
- *
- * @return the global reference
- */
-void* gtkpeer_get_global_ref(JNIEnv *env, jobject peer);
-
-/**
- * Deletes the global reference of a peer. This is necessary in order to
- * allow the peer to be garbage collected.
- *
- * @param env the JNI environment
- * @param peer the peer object.
- */
-void gtkpeer_del_global_ref(JNIEnv* env, jobject peer);
-
-
-/**
- * Initializes the fieldIDs for the display and screen fields.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_display_IDs(JNIEnv* env);
-
-/**
- * Sets the native display pointer in the GdkGraphicsEnvironment object.
- *
- * @param env the JNI environment
- * @param graphicsenv the GdkGraphicsEnvironment object
- * @param display the native display pointer
- */
-void gtkpeer_set_display(JNIEnv* env, jobject graphicsenv, void* display);
-
-/**
- * Fetches the native display pointer from the GdkGraphicsEnvironment object.
- *
- * @param env the JNI environment
- * @param graphicsenv the GdkGraphicsEnvironment object
- *
- * @return the native display pointer
- */
-void* gtkpeer_get_display(JNIEnv* env, jobject graphicsenv);
-
-/**
- * Initializes the fieldIDs for the screen field.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_screen_IDs(JNIEnv* env);
-
-/**
- * Sets the native screen in the GdkScreenGraphicsDevice object.
- *
- * @param env the JNI environment
- * @param screen_graphics_device the GdkScreenGraphicsDevice object
- * @param ptr the native screen pointer
- */
-void gtkpeer_set_screen(JNIEnv* env, jobject screen_graphics_device,
- void* ptr);
-
-/**
- * Fetches the native screen pointer from the GdkScreenGraphicsDevice object.
- *
- * @param env the JNI environment
- * @param screen_graphics_device the GdkScreenGraphicsDevice object
- *
- * @return the native screen pointer
- */
-void* gtkpeer_get_screen(JNIEnv* env, jobject screen_graphics_device);
-
-/**
- * Initializes the field IDs for fonts.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_font_IDs(JNIEnv* env);
-
-/**
- * Sets the native font in the nativeFont field in GdkFontPeer.
- *
- * @param env the JNI environment
- * @param font_peer the font peer object
- * @param font the actual native font reference
- */
-void gtkpeer_set_font(JNIEnv* env, jobject font_peer, void* font);
-
-/**
- * Fetches the native font reference from the GdkFontPeer object.
- *
- * @param env the JNI environment
- * @param font_peer the font peer object
- *
- * @return the native font structure
- */
-void* gtkpeer_get_font(JNIEnv* env, jobject font_peer);
-
-/**
- * Initializes the field IDs for pixbuf decoder.
- *
- * @param env the JNI environment
- */
-void gtkpeer_init_pixbuf_IDs(JNIEnv* env);
-
-/**
- * Sets the native font in the nativeFont field in GdkFontPeer.
- *
- * @param env the JNI environment
- * @param pixbuf_dec the pixbuf decoder object
- * @param pixbuf_loader the native pixbuf loader
- */
-void gtkpeer_set_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec,
- void* pixbuf_loader);
-
-/**
- * Fetches the native pixbuf loader reference from the GdkPixbufDecoder object.
- *
- * @param env the JNI environment
- * @param pixbuf_dec the pixbuf decoder object
- *
- * @return the native pixbuf loader
- */
-void* gtkpeer_get_pixbuf_loader(JNIEnv* env, jobject pixbuf_dec);
-
-
-#define SWAPU32(w) \
- (((w) << 24) | (((w) & 0xff00) << 8) | (((w) >> 8) & 0xff00) | ((w) >> 24))
-
-/* New-style event masks. */
-#define AWT_BUTTON1_DOWN_MASK (1 << 10)
-#define AWT_BUTTON2_DOWN_MASK (1 << 11)
-#define AWT_BUTTON3_DOWN_MASK (1 << 12)
-
-#define AWT_SHIFT_DOWN_MASK (1 << 6)
-#define AWT_CTRL_DOWN_MASK (1 << 7)
-#define AWT_META_DOWN_MASK (1 << 8)
-#define AWT_ALT_DOWN_MASK (1 << 9)
-
-/* Old-style event masks. */
-#define AWT_BUTTON1_MASK (1 << 4)
-#define AWT_BUTTON2_MASK (1 << 3)
-#define AWT_BUTTON3_MASK (1 << 2)
-
-#define AWT_SHIFT_MASK (1 << 0)
-#define AWT_CTRL_MASK (1 << 1)
-#define AWT_META_MASK (1 << 2)
-#define AWT_ALT_MASK (1 << 3)
-
-#define AWT_ITEM_SELECTED 1
-#define AWT_ITEM_DESELECTED 2
-
-#define AWT_KEY_TYPED 400
-#define AWT_KEY_PRESSED 401
-#define AWT_KEY_RELEASED 402
-
-#define AWT_KEY_LOCATION_UNKNOWN 0
-#define AWT_KEY_LOCATION_STANDARD 1
-#define AWT_KEY_LOCATION_LEFT 2
-#define AWT_KEY_LOCATION_RIGHT 3
-#define AWT_KEY_LOCATION_NUMPAD 4
-
-#define AWT_STYLE_PLAIN 0
-#define AWT_STYLE_BOLD 1
-#define AWT_STYLE_ITALIC 2
-
-/* Used in GtkComponentPeer and GtkWindowPeer */
-#define VK_NUMPAD0 96
-#define VK_NUMPAD1 97
-#define VK_NUMPAD2 98
-#define VK_NUMPAD3 99
-#define VK_NUMPAD4 100
-#define VK_NUMPAD5 101
-#define VK_NUMPAD6 102
-#define VK_NUMPAD7 103
-#define VK_NUMPAD8 104
-#define VK_NUMPAD9 105
-#define VK_DECIMAL 110
-
-JNIEnv *cp_gtk_gdk_env(void);
-
-/* Global variables */
-extern double cp_gtk_dpi_conversion_factor;
-extern GtkWindowGroup *cp_gtk_global_window_group;
-
-/* Shared global clipboard and selection for GtkClipboard and GtkSelection. */
-extern GtkClipboard *cp_gtk_clipboard;
-extern GtkClipboard *cp_gtk_selection;
-
-extern jobject cp_gtk_clipboard_instance;
-extern jobject cp_gtk_selection_instance;
-
-/* Standard target (strings) for GtkClipboard and GtkSelection. */
-extern jstring cp_gtk_stringTarget;
-extern jstring cp_gtk_imageTarget;
-extern jstring cp_gtk_filesTarget;
-
-/* Union used for type punning. */
-union widget_union
-{
- void **void_widget;
- GtkWidget **widget;
-};
-
-/* Constant conversion helpers */
-guint cp_gtk_awt_keycode_to_keysym (jint keyCode, jint keyLocation);
-jint cp_gtk_state_to_awt_mods (guint state);
-
-/* Image helpers */
-GdkPixbuf *cp_gtk_image_get_pixbuf (JNIEnv *env, jobject obj);
-
-/* Component Graphics helpers */
-void cp_gtk_grab_current_drawable(GtkWidget *widget, GdkDrawable **draw,
- GdkWindow **win);
-
-/* JNI initialization functions */
-void cp_gtk_button_init_jni (JNIEnv*);
-void cp_gtk_checkbox_init_jni (void);
-void cp_gtk_choice_init_jni (void);
-void cp_gtk_component_init_jni (void);
-void cp_gtk_filedialog_init_jni (void);
-void cp_gtk_list_init_jni (void);
-void cp_gtk_menuitem_init_jni (void);
-void cp_gtk_scrollbar_init_jni (void);
-void cp_gtk_textcomponent_init_jni (void);
-void cp_gtk_window_init_jni (void);
-
-/* Signal connection convience functions */
-void cp_gtk_component_connect_expose_signals (GObject *ptr, jobject gref);
-void cp_gtk_component_connect_focus_signals (GObject *ptr, jobject gref);
-void cp_gtk_component_connect_mouse_signals (GObject *ptr, jobject gref);
-void cp_gtk_component_connect_signals (GObject *ptr, jobject gref);
-void cp_gtk_textcomponent_connect_signals (GObject *ptr, jobject gref);
-
-/* Debugging */
-void cp_gtk_print_current_thread (void);
-
-GdkPixmap *cp_gtk_get_pixmap( JNIEnv *env, jobject obj);
-
-#define SYNCHRONIZE_GDK 0
-
-#define DEBUG_LOCKING 0
-
-#if DEBUG_LOCKING
-#define gdk_threads_enter() \
-{ \
- g_print ("locking: %s, %d\n", __FILE__, __LINE__); \
- cp_gtk_print_current_thread (); \
- gdk_threads_enter (); \
- g_print ("locked: %s, %d\n", __FILE__, __LINE__); \
- cp_gtk_print_current_thread (); \
-}
-#define gdk_threads_leave() \
-{ \
- g_print ("unlocking: %s, %d\n", __FILE__, __LINE__); \
- cp_gtk_print_current_thread (); \
- gdk_threads_leave (); \
- g_print ("unlocked: %s, %d\n", __FILE__, __LINE__); \
- cp_gtk_print_current_thread (); \
-}
-#endif
-
-#endif /* __GTKPEER_H */