Commit 29e531ff by Thomas Fitzsimmons Committed by Thomas Fitzsimmons

glib-2.0.m4: New file.

	* glib-2.0.m4: New file.
	* gtk-2.0.m4: New file.
	* glib.m4: Remove.
	* gtk.m4: Remove.
	* configure.in: Update AM_PATH_GTK macro call to
	AM_PATH_GTK_2_0.  Likewise for AM_PATH_GLIB.
	* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c,
	jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,
	jni/gtk-peer/gthread-jni.c,
	jni/gtk-peer/gthread-jni.h:
	New versions from classpath.
	* aclocal.m4: Regenerate.
	* configure: Regenerate.
	* Makefile.in: Regenerate.
	* gcj/Makefile.in: Regenerate.
	* include/Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.

From-SVN: r68746
parent 884a757a
2003-06-30 Thomas Fitzsimmons <fitzsim@redhat.com>
* glib-2.0.m4: New file.
* gtk-2.0.m4: New file.
* glib.m4: Remove.
* gtk.m4: Remove.
* configure.in: Update AM_PATH_GTK macro call to
AM_PATH_GTK_2_0. Likewise for AM_PATH_GLIB.
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkComponentPeer.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkEvents.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMainThread.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkScrollBarPeer.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextAreaPeer.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextComponentPeer.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkTextFieldPeer.c,
jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c,
jni/gtk-peer/gthread-jni.c,
jni/gtk-peer/gthread-jni.h:
New versions from classpath.
* aclocal.m4: Regenerate.
* configure: Regenerate.
* Makefile.in: Regenerate.
* gcj/Makefile.in: Regenerate.
* include/Makefile.in: Regenerate.
* testsuite/Makefile.in: Regenerate.
2003-06-30 Gary Benson <gbenson@redhat.com>
For PR libgcj/11349:
......
......@@ -86,10 +86,11 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_CONFIG = @GLIB_CONFIG@
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MKENUMS = @GLIB_MKENUMS@
GOBJECT_QUERY = @GOBJECT_QUERY@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_CONFIG = @GTK_CONFIG@
GTK_LIBS = @GTK_LIBS@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
......@@ -115,6 +116,7 @@ OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@
RANLIB = @RANLIB@
STRIP = @STRIP@
......@@ -4284,7 +4286,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status $(BUILT_SOURCES)
&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.in acinclude.m4 \
./acinclude.m4 ./aclocal.m4 ./glib.m4 ./gtk.m4 \
./acinclude.m4 ./aclocal.m4 ./glib-2.0.m4 ./gtk-2.0.m4 \
./libart.m4
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -785,8 +785,8 @@ else
# Test for Gtk stuff, if asked for.
if test "$use_gtk_awt" = yes; then
AM_PATH_GTK(1.2.4,,exit 1)
AM_PATH_GLIB(1.2.4,,exit 1,gthread)
AM_PATH_GTK_2_0(2.0.0,,exit 1)
AM_PATH_GLIB_2_0(2.0.0,,exit 1,gthread)
dnl XXX Fix me when libart.m4 has the compile test fixed!
enable_libarttest=no
AM_PATH_LIBART(2.1.0,,exit 1)
......
......@@ -87,10 +87,11 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_CONFIG = @GLIB_CONFIG@
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MKENUMS = @GLIB_MKENUMS@
GOBJECT_QUERY = @GOBJECT_QUERY@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_CONFIG = @GTK_CONFIG@
GTK_LIBS = @GTK_LIBS@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
......@@ -117,6 +118,7 @@ OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@
RANLIB = @RANLIB@
STRIP = @STRIP@
......
......@@ -87,10 +87,11 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_CONFIG = @GLIB_CONFIG@
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MKENUMS = @GLIB_MKENUMS@
GOBJECT_QUERY = @GOBJECT_QUERY@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_CONFIG = @GTK_CONFIG@
GTK_LIBS = @GTK_LIBS@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
......@@ -117,6 +118,7 @@ OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@
RANLIB = @RANLIB@
STRIP = @STRIP@
......
/* gdkgraphics.c
Copyright (C) 1999, 2003 Free Software Foundation, Inc.
Copyright (C) 1999 Free Software Foundation, Inc.
This file is part of GNU Classpath.
......@@ -40,7 +40,7 @@ exception statement from your version. */
#include <gdk/gdkprivate.h>
#include <gdk/gdkx.h>
#define GDK_STABLE_IS_PIXMAP(d) (((GdkWindowPrivate *)d)->window_type == GDK_WINDOW_PIXMAP)
#define GDK_STABLE_IS_PIXMAP(d) (GDK_IS_PIXMAP(d))
GdkPoint *
translate_points (JNIEnv *env, jintArray xpoints, jintArray ypoints,
......
......@@ -42,47 +42,43 @@ exception statement from your version. */
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_create
(JNIEnv *env, jobject obj)
{
gpointer widget;
GtkButton *button;
gdk_threads_enter ();
widget = gtk_type_new (gtk_button_get_type ());
button = gtk_button_new();
gtk_widget_show (GTK_WIDGET(button));
gdk_threads_leave ();
NSA_SET_PTR (env, obj, widget);
NSA_SET_PTR (env, obj, button);
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkSetFont
(JNIEnv *env, jobject obj, jstring jname, jint size)
{
const char *xlfd;
# define FBUFSZ 200
char buf[FBUFSZ];
const char *font_name;
void *ptr;
GdkFont * new_font;
GtkStyle * style;
GtkWidget * button;
GtkWidget * label;
GtkWidget *button;
GtkWidget *label;
PangoFontDescription *font_desc;
ptr = NSA_GET_PTR (env, obj);
button = GTK_WIDGET (ptr);
label = GTK_BIN(button)->child;
label = gtk_bin_get_child (GTK_BIN(button));
if (label == NULL) return;
xlfd = (*env)->GetStringUTFChars (env, jname, NULL);
snprintf(buf, FBUFSZ, xlfd, size);
(*env)->ReleaseStringUTFChars (env, jname, xlfd);
gdk_threads_enter();
new_font = gdk_font_load (buf); /* FIXME: deprecated. Replacement? */
if (new_font == NULL)
{
/* Fail quietly for now. */
gdk_threads_leave();
if (!label)
return;
}
style = gtk_style_copy (gtk_widget_get_style (label));
style -> font = new_font;
gtk_widget_set_style (label, style);
/* FIXME: Documentation varies as to whether we should unref style. */
font_name = (*env)->GetStringUTFChars (env, jname, NULL);
gdk_threads_enter();
font_desc = pango_font_description_from_string (font_name);
pango_font_description_set_size (font_desc, size);
gtk_widget_modify_font (GTK_WIDGET(label), font_desc);
pango_font_description_free (font_desc);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, font_name);
}
......@@ -40,22 +40,6 @@ exception statement from your version. */
#include "gnu_java_awt_peer_gtk_GtkComponentPeer.h"
#include <gtk/gtkprivate.h>
#define GTK_OBJECT_SETV(ptr, arg) \
gdk_threads_enter (); \
{ \
GtkArgInfo *info = NULL; \
char *error; \
\
error = gtk_object_arg_get_info (GTK_OBJECT_TYPE (ptr), arg.name, &info); \
if (error) \
{ \
/* assume the argument is destined for the container's only child */ \
ptr = gtk_container_children (GTK_CONTAINER (ptr))->data; \
} \
gtk_object_setv (GTK_OBJECT (ptr), 1, &arg); \
} \
gdk_threads_leave (); \
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
(JNIEnv *env, jobject obj)
{
......@@ -519,8 +503,9 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_S
arg.type = GTK_TYPE_STRING;
arg.name = (char *) name;
GTK_VALUE_STRING (arg) = (char *) value;
GTK_OBJECT_SETV (ptr, arg);
gdk_threads_enter();
g_object_set(ptr, name, value, NULL);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, name);
(*env)->ReleaseStringUTFChars (env, jvalue, value);
......@@ -540,7 +525,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_la
arg.name = (char *) name;
GTK_VALUE_BOOL (arg) = value;
GTK_OBJECT_SETV (ptr, arg);
gdk_threads_enter();
g_object_set(ptr, name, value, NULL);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, name);
}
......@@ -559,7 +546,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_la
arg.name = (char *) name;
GTK_VALUE_INT (arg) = value;
GTK_OBJECT_SETV (ptr, arg);
gdk_threads_enter();
g_object_set(ptr, name, value, NULL);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, name);
}
......@@ -578,7 +567,9 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_la
arg.name = (char *) name;
GTK_VALUE_FLOAT (arg) = value;
GTK_OBJECT_SETV (ptr, arg);
gdk_threads_enter();
g_object_set(ptr, name, value, NULL);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, name);
}
......@@ -611,7 +602,9 @@ Java_gnu_java_awt_peer_gtk_GtkComponentPeer_set__Ljava_lang_String_2Ljava_lang_O
arg.name = (char *) name;
GTK_VALUE_OBJECT (arg) = GTK_OBJECT (ptr2);
GTK_OBJECT_SETV (ptr1, arg);
gdk_threads_enter();
g_object_set(ptr1, name, ptr2, NULL);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, name);
}
......@@ -644,6 +637,15 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectHooks
gdk_threads_enter ();
gtk_widget_realize (GTK_WIDGET (ptr));
if(GTK_IS_BUTTON(ptr))
{
g_print("-- connecting a button --\n");
connect_awt_hook (env, obj, 1, GTK_BUTTON(ptr)->event_window);
}
else
{
connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window);
g_print("Connection object %p with window %p (but ptr is %p)\n", obj, GTK_WIDGET(ptr)->window, ptr);
}
gdk_threads_leave ();
}
......@@ -526,6 +526,7 @@ attach_jobject (GdkWindow *window, jobject *obj)
| GDK_KEY_PRESS_MASK
| GDK_FOCUS_CHANGE_MASK);
// g_print("storing obj %p property on window %p\n", obj, window);
gdk_property_change (window,
addr_atom,
type_atom,
......@@ -538,15 +539,22 @@ attach_jobject (GdkWindow *window, jobject *obj)
void
connect_awt_hook (JNIEnv *env, jobject peer_obj, int nwindows, ...)
{
int i;
va_list ap;
jobject *obj;
obj = (jobject *) malloc (sizeof (jobject));
*obj = (*env)->NewGlobalRef (env, peer_obj);
//g_print("Connection obj %p\n", peer_obj);
va_start (ap, nwindows);
{
int i;
for (i = 0; i < nwindows; i++)
attach_jobject (va_arg (ap, GdkWindow *), obj);
{
GdkWindow* attach = (va_arg (ap, GdkWindow *));
//g_print("attach peer obj %p and %p\n", peer_obj, attach);
attach_jobject(attach, obj);
}
}
va_end (ap);
}
......@@ -251,33 +251,9 @@ Java_gnu_java_awt_peer_gtk_GtkListPeer_getSize
list = GTK_WIDGET (CLIST_FROM_SW (ptr));
sw = GTK_SCROLLED_WINDOW (ptr);
/*
gtk_widget_size_request(GTK_WIDGET (GTK_SCROLLED_WINDOW(sw)->hscrollbar),
&myreq);
dims[1]=myreq.height+GTK_SCROLLED_WINDOW_CLASS
(GTK_OBJECT (sw)->klass)->scrollbar_spacing;
*/
gtk_signal_emit_by_name (GTK_OBJECT (GTK_SCROLLED_WINDOW(sw)->vscrollbar),
"size_request", &myreq);
/*
gtk_widget_size_request(GTK_WIDGET (GTK_SCROLLED_WINDOW(sw)->vscrollbar),
&myreq);
*/
dims[0]=myreq.width+GTK_SCROLLED_WINDOW_CLASS
(GTK_OBJECT (sw)->klass)->scrollbar_spacing;
gtk_signal_emit_by_name (GTK_OBJECT (list), "size_request", &myreq);
// gtk_widget_size_request(GTK_WIDGET (list), &myreq);
dims[0] += myreq.width + gdk_char_width (list->style->font, 'W');
dims[1] += ((rows * (gdk_char_height (list->style->font, 'W')+7))
+ (2 * (list->style->klass->ythickness)));
gtk_widget_size_request(list, &myreq);
dims[1]=myreq.height;
dims[0]=myreq.width;
gdk_threads_leave ();
......
......@@ -56,6 +56,10 @@ jmethodID postItemEventID;
jmethodID postListItemEventID;
JNIEnv *gdk_env;
#ifdef PORTABLE_NATIVE_SYNC
JavaVM *gdk_vm;
#endif
/*
* Call gtk_init. It is very important that this happen before any other
* gtk calls.
......@@ -81,7 +85,16 @@ Java_gnu_java_awt_peer_gtk_GtkMainThread_gtkInit (JNIEnv *env, jclass clazz)
/* until we have JDK 1.2 JNI, assume we have a VM with threads that
match what GLIB was compiled for */
g_thread_init (NULL);
#ifdef PORTABLE_NATIVE_SYNC
(*env)->GetJavaVM( env, &gdk_vm );
g_thread_init ( &g_thread_jni_functions );
printf("called gthread init\n");
#else
g_thread_init ( NULL );
#endif
/* From GDK 2.0 onwards we have to explicitly call gdk_threads_init */
gdk_threads_init();
gtk_init (&argc, &argv);
......
......@@ -46,11 +46,15 @@ struct range_scrollbar
};
static void
post_adjustment_event (GtkAdjustment *adj, struct range_scrollbar *rs)
post_adjustment_event (GtkRange *range, GtkScrollType scroll,
struct range_scrollbar *rs)
{
jint type;
GtkAdjustment *adj;
adj = gtk_range_get_adjustment (range);
switch (rs->range->scroll_type)
switch (scroll)
{
case GTK_SCROLL_STEP_FORWARD:
type = AWT_ADJUSTMENT_UNIT_INCREMENT;
......@@ -113,15 +117,11 @@ Java_gnu_java_awt_peer_gtk_GtkScrollbarPeer_connectHooks
rs->range = GTK_RANGE (ptr);
rs->scrollbar = (jobject *) malloc (sizeof (jobject));
*(rs->scrollbar) = (*env)->NewGlobalRef (env, obj);
gtk_signal_connect (GTK_OBJECT (GTK_RANGE (ptr)->adjustment),
"value_changed",
gtk_signal_connect (GTK_OBJECT (GTK_RANGE (ptr)),
"move_slider",
GTK_SIGNAL_FUNC (post_adjustment_event), rs);
connect_awt_hook (env, obj, 4,
GTK_RANGE (ptr)->trough,
GTK_RANGE (ptr)->slider,
GTK_RANGE (ptr)->step_forw,
GTK_RANGE (ptr)->step_back);
connect_awt_hook (env, obj, 1, GTK_SCROLLBAR (ptr)->range);
gdk_threads_leave ();
}
......
......@@ -39,7 +39,7 @@ exception statement from your version. */
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkTextAreaPeer.h"
#define TEXT_FROM_SW(obj) (GTK_TEXT(GTK_SCROLLED_WINDOW (obj)->container.child))
#define TEXT_FROM_SW(obj) (GTK_TEXT_VIEW(GTK_SCROLLED_WINDOW (obj)->container.child))
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
(JNIEnv *env, jobject obj, jint scroll)
......@@ -47,7 +47,7 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
GtkWidget *text, *sw;
gdk_threads_enter ();
text = gtk_text_new (NULL, NULL);
text = gtk_text_view_new ();
gtk_widget_show (text);
sw = gtk_scrolled_window_new (NULL, NULL);
......@@ -64,54 +64,9 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_create
(scroll == AWT_TEXTAREA_SCROLLBARS_BOTH
|| scroll == AWT_TEXTAREA_SCROLLBARS_VERTICAL_ONLY) ?
GTK_POLICY_ALWAYS : GTK_POLICY_NEVER);
gdk_threads_leave ();
NSA_SET_PTR (env, obj, sw);
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_old_create
(JNIEnv *env, jobject obj, jobject parent_obj,
jstring contents, jint scroll)
{
GtkWidget *text, *sw;
const char *str;
int pos=0;
void *parent;
parent = NSA_GET_PTR (env, parent_obj);
str = (*env)->GetStringUTFChars (env, contents, NULL);
gdk_threads_enter ();
text = gtk_text_new (NULL, NULL);
gtk_text_set_editable (GTK_TEXT (text), TRUE);
gtk_editable_insert_text (GTK_EDITABLE (text), str,
strlen (str), &pos);
sw = gtk_scrolled_window_new (NULL, NULL);
gtk_container_add (GTK_CONTAINER (sw), text);
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);
set_visible (text, TRUE);
set_parent (sw, GTK_CONTAINER (parent));
gdk_threads_leave ();
(*env)->ReleaseStringUTFChars (env, contents, str);
NSA_SET_PTR (env, obj, sw);
}
......@@ -122,8 +77,8 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize
void *ptr;
jint *dims;
GtkWidget *text;
GtkScrolledWindow *sw;
GtkRequisition myreq;
/* GtkScrolledWindow *sw; */
GtkRequisition requisition;
ptr = NSA_GET_PTR (env, obj);
......@@ -133,35 +88,11 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkTextGetSize
gdk_threads_enter ();
text = GTK_WIDGET (TEXT_FROM_SW (ptr));
sw = GTK_SCROLLED_WINDOW (ptr);
gtk_signal_emit_by_name (GTK_OBJECT (GTK_SCROLLED_WINDOW(sw)->vscrollbar),
"size_request", &myreq);
//gtk_widget_size_request(GTK_WIDGET (GTK_SCROLLED_WINDOW(sw)->hscrollbar),
// &myreq);
dims[0]=myreq.width+GTK_SCROLLED_WINDOW_CLASS
(GTK_OBJECT (sw)->klass)->scrollbar_spacing;
gtk_signal_emit_by_name (GTK_OBJECT (GTK_SCROLLED_WINDOW(sw)->hscrollbar),
"size_request", &myreq);
//gtk_widget_size_request(GTK_WIDGET (GTK_SCROLLED_WINDOW(sw)->vscrollbar),
// &myreq);
dims[1]=myreq.height+GTK_SCROLLED_WINDOW_CLASS
(GTK_OBJECT (sw)->klass)->scrollbar_spacing;
/* The '1' in the following assignments is from
#define TEXT_BORDER_ROOM 1
in gtktext.c */
/* Gtk text seems to wrap slightly prematurely. Compensate. */
++cols;
++dims[0];
dims[0] += ((cols * gdk_char_width (text->style->font, 'W'))
+ (2 * (text->style->klass->xthickness + 1)));
/* Guess at the height. Is there a better way? */
dims[1] += ((rows * gdk_string_height (text->style->font, "Wg"))
+ (2 * (text->style->klass->ythickness + 1)));
/* sw = GTK_SCROLLED_WINDOW (ptr); */
gtk_widget_size_request(GTK_WIDGET (text), &requisition);
dims[0] = requisition.width;
dims[1] = requisition.height;
gdk_threads_leave ();
......@@ -173,6 +104,9 @@ 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;
int pos=position;
......@@ -181,8 +115,13 @@ Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_insert
str = (*env)->GetStringUTFChars (env, contents, NULL);
gdk_threads_enter ();
gtk_editable_insert_text (GTK_EDITABLE (TEXT_FROM_SW (ptr)),
str, strlen (str), &pos);
text = GTK_WIDGET (TEXT_FROM_SW (ptr));
buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
gtk_text_buffer_get_iter_at_offset (buf, &iter, pos);
gtk_text_buffer_insert (buf, &iter, str, strlen (str));
gdk_threads_leave ();
(*env)->ReleaseStringUTFChars (env, contents, str);
......@@ -192,21 +131,29 @@ 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;
GtkEditable *text;
const char *str;
int pos = start;
int mystart = start;
int myend = end;
ptr = NSA_GET_PTR (env, obj);
str = (*env)->GetStringUTFChars (env, contents, NULL);
gdk_threads_enter ();
text = GTK_EDITABLE (TEXT_FROM_SW (ptr));
gtk_text_freeze (GTK_TEXT (text));
gtk_editable_delete_text (text, start, end);
gtk_editable_insert_text (text, str, strlen (str), &pos);
gtk_text_thaw (GTK_TEXT (text));
text = GTK_WIDGET (TEXT_FROM_SW (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));
gdk_threads_leave ();
(*env)->ReleaseStringUTFChars (env, contents, str);
......@@ -216,31 +163,25 @@ JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextAreaPeer_gtkSetFont
(JNIEnv *env, jobject obj, jstring jname, jint size)
{
const char *xlfd;
# define FBUFSZ 200
char buf[FBUFSZ];
const char *font_name;
void *ptr;
GdkFont * new_font;
GtkStyle * style;
GtkWidget * text;
GtkWidget *text;
PangoFontDescription *font_desc;
ptr = NSA_GET_PTR (env, obj);
text = GTK_WIDGET (TEXT_FROM_SW (ptr));
xlfd = (*env)->GetStringUTFChars (env, jname, NULL);
snprintf(buf, FBUFSZ, xlfd, size);
(*env)->ReleaseStringUTFChars (env, jname, xlfd);
font_name = (*env)->GetStringUTFChars (env, jname, NULL);
gdk_threads_enter();
new_font = gdk_font_load (buf); /* FIXME: deprecated. Replacement? */
if (new_font == NULL)
{
/* Fail quietly for now. */
gdk_threads_leave();
return;
}
style = gtk_style_copy (gtk_widget_get_style (text));
style -> font = new_font;
gtk_widget_set_style (text , style);
/* FIXME: Documentation varies as to whether we should unref style. */
font_desc = pango_font_description_from_string (font_name);
pango_font_description_set_size (font_desc, size);
gtk_widget_modify_font (GTK_WIDGET(text), font_desc);
pango_font_description_free (font_desc);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, font_name);
}
......@@ -39,20 +39,47 @@ exception statement from your version. */
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkTextComponentPeer.h"
#define GET_EDITABLE(obj) (GTK_IS_EDITABLE (obj) ? GTK_EDITABLE (obj) : \
GTK_EDITABLE (GTK_SCROLLED_WINDOW (obj)->container.child))
JNIEXPORT jint JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getCaretPosition
(JNIEnv *env, jobject obj)
{
void *ptr;
int pos;
GtkEditable *editable; // type of GtkEntry (TextField)
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
GtkTextBuffer *buf;
GtkTextMark *mark;
GtkTextIter iter;
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
pos = gtk_editable_get_position (GET_EDITABLE (ptr));
if (GTK_IS_EDITABLE (ptr))
{
editable = GTK_EDITABLE (ptr);
pos = gtk_editable_get_position (editable);
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
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;
......@@ -63,11 +90,40 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setCaretPosition
(JNIEnv *env, jobject obj, jint pos)
{
void *ptr;
GtkEditable *editable; // type of GtkEntry (TextField)
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
GtkTextBuffer *buf;
GtkTextMark *mark;
GtkTextIter iter;
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
gtk_editable_set_position (GET_EDITABLE (ptr), pos);
if (GTK_IS_EDITABLE (ptr))
{
editable = GTK_EDITABLE (ptr);
gtk_editable_set_position (editable, pos);
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
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);
gtk_text_iter_set_offset (&iter, pos);
}
}
gdk_threads_leave ();
}
......@@ -77,11 +133,42 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionStart
{
void *ptr;
int pos;
GtkEditable *editable; // type of GtkEntry (TextField)
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
GtkTextBuffer *buf;
GtkTextIter start;
GtkTextIter end;
int starti, endi;
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
pos = GET_EDITABLE (ptr)->selection_start_pos;
if (GTK_IS_EDITABLE (ptr))
{
editable = GTK_EDITABLE (ptr);
if (gtk_editable_get_selection_bounds (editable, &starti, &endi))
pos = starti;
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
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);
}
}
gdk_threads_leave ();
return pos;
......@@ -93,11 +180,42 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getSelectionEnd
{
void *ptr;
int pos;
GtkEditable *editable; // type of GtkEntry (TextField)
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
GtkTextBuffer *buf;
GtkTextIter start;
GtkTextIter end;
int starti, endi;
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
pos = GET_EDITABLE (ptr)->selection_end_pos;
if (GTK_IS_EDITABLE (ptr))
{
editable = GTK_EDITABLE (ptr);
if (gtk_editable_get_selection_bounds (editable, &starti, &endi))
pos = endi;
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
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);
}
}
gdk_threads_leave ();
return pos;
......@@ -108,11 +226,44 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_select
(JNIEnv *env, jobject obj, jint start, jint end)
{
void *ptr;
GtkEditable *editable; // type of GtkEntry (TextField)
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
GtkTextBuffer *buf;
GtkTextIter iter;
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
gtk_editable_select_region (GET_EDITABLE (ptr), start, end);
if (GTK_IS_EDITABLE (ptr))
{
editable = GTK_EDITABLE (ptr);
gtk_editable_select_region (editable, start, end);
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
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 ();
}
......@@ -121,11 +272,35 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setEditable
(JNIEnv *env, jobject obj, jboolean state)
{
void *ptr;
GtkEditable *editable; // type of GtkEntry (TextField)
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
gtk_editable_set_editable (GET_EDITABLE (ptr), state);
if (GTK_IS_EDITABLE (ptr))
{
editable = GTK_EDITABLE (ptr);
gtk_editable_set_editable (editable, state);
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
gtk_text_view_set_editable (GTK_TEXT_VIEW (text), state);
}
}
gdk_threads_leave ();
}
......@@ -136,11 +311,40 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_getText
void *ptr;
char *contents;
jstring jcontents;
GtkEditable *editable; // type of GtkEntry (TextField)
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
GtkTextBuffer *buf;
GtkTextIter start, end;
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
contents = gtk_editable_get_chars (GET_EDITABLE (ptr), 0, -1);
if (GTK_IS_EDITABLE (ptr))
{
editable = GTK_EDITABLE (ptr);
contents = gtk_editable_get_chars (editable, 0, -1);
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
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);
}
}
gdk_threads_leave ();
jcontents = (*env)->NewStringUTF (env, contents);
......@@ -154,25 +358,36 @@ Java_gnu_java_awt_peer_gtk_GtkTextComponentPeer_setText
(JNIEnv *env, jobject obj, jstring contents)
{
void *ptr;
GtkEditable *text;
const char *str;
int pos = 0;
GtkWidget *text = NULL; // type of GtkTextView (TextArea)
GtkTextBuffer *buf;
ptr = NSA_GET_PTR (env, obj);
str = (*env)->GetStringUTFChars (env, contents, NULL);
gdk_threads_enter ();
text = GET_EDITABLE (ptr);
if (GTK_IS_TEXT (text))
gtk_text_freeze (GTK_TEXT (text));
gtk_editable_delete_text (text, 0, -1);
gtk_editable_insert_text (text, str, strlen (str), &pos);
if (GTK_IS_TEXT (text))
gtk_text_thaw (GTK_TEXT (text));
if (GTK_IS_EDITABLE (ptr))
{
gtk_entry_set_text (GTK_ENTRY (ptr), str);
}
else
{
if (GTK_IS_SCROLLED_WINDOW (ptr))
{
text = GTK_WIDGET (GTK_TEXT_VIEW (GTK_SCROLLED_WINDOW (ptr)->container.child));
}
else if (GTK_IS_TEXT_VIEW (ptr))
{
text = GTK_WIDGET (ptr);
}
if (text)
{
buf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (text));
gtk_text_buffer_set_text (buf, str, strlen (str));
}
}
gdk_threads_leave ();
......
......@@ -43,10 +43,10 @@ JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_create
(JNIEnv *env, jobject obj)
{
gpointer widget;
GtkWidget *widget;
gdk_threads_enter ();
widget = gtk_type_new (gtk_entry_get_type ());
widget = gtk_entry_new ();
gdk_threads_leave ();
NSA_SET_PTR (env, obj, widget);
......@@ -68,36 +68,6 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_connectHooks
gdk_threads_leave ();
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_old_create
(JNIEnv *env, jobject obj, jobject parent_obj, jstring text)
{
GtkWidget *entry;
const char *str;
void *parent;
parent = NSA_GET_PTR (env, parent_obj);
str = (*env)->GetStringUTFChars (env, text, NULL);
gdk_threads_enter ();
entry = gtk_entry_new ();
gtk_entry_set_text (GTK_ENTRY (entry), str);
set_parent (entry, GTK_CONTAINER (parent));
gtk_widget_realize (entry);
connect_awt_hook (env, obj, 2,
entry->window, GTK_ENTRY (entry)->text_area);
NSA_SET_PTR (env, obj, entry);
gdk_threads_leave ();
(*env)->ReleaseStringUTFChars (env, text, str);
}
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize
(JNIEnv *env, jobject obj, jint cols, jintArray jdims)
......@@ -105,19 +75,16 @@ Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkEntryGetSize
void *ptr;
jint *dims;
GtkRequisition myreq;
GtkEntry *entry;
GtkWidget *entry;
ptr = NSA_GET_PTR (env, obj);
dims = (*env)->GetIntArrayElements (env, jdims, 0);
gdk_threads_enter ();
entry = GTK_ENTRY (ptr);
gtk_signal_emit_by_name (GTK_OBJECT (entry), "size_request", &myreq);
dims[0]=myreq.width-150 + (cols *
gdk_char_width (GTK_WIDGET (entry)->style->font,
'W'));
entry = GTK_WIDGET (ptr);
gtk_widget_size_request(entry, &myreq);
dims[0]=myreq.width;
dims[1]=myreq.height;
gdk_threads_leave ();
......@@ -153,31 +120,24 @@ JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkTextFieldPeer_gtkSetFont
(JNIEnv *env, jobject obj, jstring jname, jint size)
{
const char *xlfd;
# define FBUFSZ 200
char buf[FBUFSZ];
const char *font_name;
void *ptr;
GdkFont * new_font;
GtkStyle * style;
GtkWidget * text;
GtkWidget *entry;
PangoFontDescription *font_desc;
ptr = NSA_GET_PTR (env, obj);
text = GTK_WIDGET (ptr);
xlfd = (*env)->GetStringUTFChars (env, jname, NULL);
snprintf(buf, FBUFSZ, xlfd, size);
(*env)->ReleaseStringUTFChars (env, jname, xlfd);
entry = GTK_WIDGET (ptr);
font_name = (*env)->GetStringUTFChars (env, jname, NULL);
gdk_threads_enter();
new_font = gdk_font_load(buf); /* FIXME: deprecated. Replacement? */
if (new_font == NULL)
{
/* Fail quietly for now. */
gdk_threads_leave();
return;
}
style = gtk_style_copy (gtk_widget_get_style (text));
style -> font = new_font;
gtk_widget_set_style (text , style);
/* FIXME: Documentation varies as to whether we should unref style. */
font_desc = pango_font_description_from_string (font_name);
pango_font_description_set_size (font_desc, size);
gtk_widget_modify_font (GTK_WIDGET(entry), font_desc);
pango_font_description_free (font_desc);
gdk_threads_leave();
(*env)->ReleaseStringUTFChars (env, jname, font_name);
}
......@@ -93,17 +93,37 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkWindowPeer_connectHooks
(JNIEnv *env, jobject obj)
{
void *ptr;
GtkVBox* vbox;
GtkWidget *layout;
GList* children;
char* name;
ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
layout = GTK_WIDGET (gtk_container_children (GTK_CONTAINER (GTK_BIN (ptr)->child))->data);
children = gtk_container_get_children(GTK_CONTAINER(ptr));
vbox = children->data;
name = GTK_OBJECT_TYPE_NAME(vbox);
if(!GTK_IS_VBOX(vbox))
{
printf("*** this is not a vbox\n");
}
children = gtk_container_get_children(GTK_CONTAINER(vbox));
layout = children->data;
name = GTK_OBJECT_TYPE_NAME(layout);
if(!GTK_IS_LAYOUT(layout))
{
printf("*** widget is not a layout ***");
}
gtk_widget_realize (layout);
connect_awt_hook (env, obj, 1, GTK_LAYOUT (layout)->bin_window);
gtk_widget_realize (GTK_WIDGET (ptr));
gtk_widget_realize (ptr);
connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window);
gdk_threads_leave ();
}
......@@ -112,8 +132,8 @@ setup_window (JNIEnv *env, jobject obj, GtkWidget *window, jint width,
jint height, jboolean visible)
{
GtkWidget *layout, *vbox;
gint x, y;
gdk_threads_enter();
gtk_window_set_policy (GTK_WINDOW (window), 1, 1, 0);
gtk_widget_set_usize (window, width, height);
......@@ -131,6 +151,7 @@ setup_window (JNIEnv *env, jobject obj, GtkWidget *window, jint width,
connect_awt_hook (env, obj, 1, window->window);
set_visible (window, visible);
gdk_threads_leave ();
}
/*
......@@ -212,9 +233,6 @@ Java_gnu_java_awt_peer_gtk_GtkWindowPeer_toFront (JNIEnv *env,
static void
setBounds (GtkWidget *widget, jint x, jint y, jint width, jint height)
{
gint current_x, current_y;
gint origin_x, origin_y;
/* gdk_window_get_root_origin (widget->window, &current_x, &current_y); */
/* if (current_x != x || current_y != y) */
......@@ -295,16 +313,12 @@ gdk_window_get_root_geometry (GdkWindow *window,
gint *border,
gint *depth)
{
GdkWindowPrivate *private;
Window xwindow;
Window xparent;
Window root;
Window *children;
GdkWindow *private;
unsigned int nchildren;
g_return_if_fail (window != NULL);
private = (GdkWindowPrivate*) window;
private = (GdkWindow*) window;
if (x)
*x = 0;
if (y)
......@@ -318,48 +332,14 @@ gdk_window_get_root_geometry (GdkWindow *window,
if (depth)
*depth = 0;
if (private->destroyed)
if (GDK_WINDOW_DESTROYED (private))
return;
while (private->parent && ((GdkWindowPrivate*) private->parent)->parent)
private = (GdkWindowPrivate*) private->parent;
if (private->destroyed)
private = gdk_window_get_toplevel (private);
if (GDK_WINDOW_DESTROYED(private))
return;
xparent = private->xwindow;
do
{
xwindow = xparent;
if (!XQueryTree (private->xdisplay, xwindow,
&root, &xparent,
&children, &nchildren))
return;
gdk_window_get_geometry (private, x, y, width, height, depth);
if (children)
XFree (children);
}
while (xparent != root);
if (xparent == root)
{
unsigned int ww, wh, wb, wd;
int wx, wy;
if (XGetGeometry (private->xdisplay, xwindow, &root, &wx, &wy, &ww, &wh, &wb, &wd))
{
if (x)
*x = wx;
if (y)
*y = wy;
if (width)
*width = ww;
if (height)
*height = wh;
if (border)
*border = wb;
if (depth)
*depth = wd;
}
}
}
......@@ -43,5 +43,6 @@ exception statement from your version. */
#include "gtkpeer.h"
extern GThreadFunctions g_thread_jni_functions;
extern JavaVM *gdk_vm;
#endif /* __GTHREADJNI_H__ */
......@@ -87,10 +87,11 @@ GCOBJS = @GCOBJS@
GCSPEC = @GCSPEC@
GCTESTSPEC = @GCTESTSPEC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_CONFIG = @GLIB_CONFIG@
GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
GLIB_LIBS = @GLIB_LIBS@
GLIB_MKENUMS = @GLIB_MKENUMS@
GOBJECT_QUERY = @GOBJECT_QUERY@
GTK_CFLAGS = @GTK_CFLAGS@
GTK_CONFIG = @GTK_CONFIG@
GTK_LIBS = @GTK_LIBS@
HASH_SYNC_SPEC = @HASH_SYNC_SPEC@
IEEESPEC = @IEEESPEC@
......@@ -117,6 +118,7 @@ OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PERL = @PERL@
PKG_CONFIG = @PKG_CONFIG@
PLATFORMOBJS = @PLATFORMOBJS@
RANLIB = @RANLIB@
STRIP = @STRIP@
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment