Mark Wielaard wrote:
Hi,
On Tue, 2006-05-30 at 22:43 +0200, Andreas Tobler wrote:
This really is a static function. Please keep it that way.
ld: Undefined symbols:
_cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable
?
Yeah, that is strange. When do you get that?
Well, we use it in gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
and in gnu_java_awt_peer_gtk_ComponentGraphics.c.
So for me it's only usable in gnu_java_awt_peer_gtk_ComponentGraphics.c
I may don't understand it...
OK, we figured it out. This patch and a patch from Sven to implement
ComponentGraphicsCopy crossed meaning that the
cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable function is
now indeed non-static. Which does mean that if we mark it as non-static
it has to have a common function prototype in gtkpeer.h.
Would this be something usable?
Andreas
2006-05-31 Andreas Tobler <[EMAIL PROTECTED]>
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
(cp_gtk_grab_current_drawable): Rename
cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable to
cp_gtk_grab_current_drawable, remove static declaration.
(Java_gnu_java_awt_peer_gtk_ComponentGraphics_initState): Renamed above
function.
(Java_gnu_java_awt_peer_gtk_ComponentGraphics_copyAreaNative):
Likewise.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c:
Remove prototype of
cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable.
(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf): Rename
function.
(Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_copyPixbuf):
Likewise.
* native/jni/gtk-peer/gtkpeer.h: Add prototype for
cp_gtk_grab_current_drawable here.
------------------------------------------------------------------------
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c,v
retrieving revision 1.7
diff -u -r1.7 gnu_java_awt_peer_gtk_ComponentGraphics.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c 31 May
2006 20:29:41 -0000 1.7
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphics.c 31 May
2006 20:36:20 -0000
@@ -55,10 +55,9 @@
#include "gnu_java_awt_peer_gtk_ComponentGraphics.h"
-static void
-cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable(GtkWidget *widget,
- GdkDrawable **draw, GdkWindow **win)
-{
+void cp_gtk_grab_current_drawable(GtkWidget *widget, GdkDrawable **draw,
+ GdkWindow **win)
+{
g_assert (widget != NULL);
g_assert (draw != NULL);
g_assert (win != NULL);
@@ -110,7 +109,7 @@
widget = GTK_WIDGET (ptr);
g_assert (widget != NULL);
- cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable (widget, &drawable, &win);
+ cp_gtk_grab_current_drawable (widget, &drawable, &win);
g_assert (drawable != NULL);
width = widget->allocation.width;
@@ -171,7 +170,7 @@
widget = GTK_WIDGET (ptr);
g_assert (widget != NULL);
- cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable (widget, &drawable, &win);
+ cp_gtk_grab_current_drawable (widget, &drawable, &win);
g_assert (drawable != NULL);
pixbuf = gdk_pixbuf_new( GDK_COLORSPACE_RGB, TRUE, 8, w, h );
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
===================================================================
RCS file:
/cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c,v
retrieving revision 1.2
diff -u -r1.2 gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c 30 May
2006 11:30:02 -0000 1.2
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_ComponentGraphicsCopy.c 31 May
2006 20:36:20 -0000
@@ -53,8 +53,6 @@
#include "gnu_java_awt_peer_gtk_ComponentGraphicsCopy.h"
-void cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable(GtkWidget *widget, GdkDrawable **draw, GdkWindow **win);
-
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_ComponentGraphicsCopy_getPixbuf
(JNIEnv *env, jobject obj __attribute__((unused)),
@@ -75,7 +73,7 @@
widget = GTK_WIDGET (ptr);
g_assert (widget != NULL);
- cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable (widget, &drawable, &win);
+ cp_gtk_grab_current_drawable (widget, &drawable, &win);
g_assert (drawable != NULL);
pixbuf = cp_gtk_image_get_pixbuf( env, image );
@@ -115,7 +113,7 @@
widget = GTK_WIDGET (ptr);
g_assert (widget != NULL);
- cp_java_awt_peer_gtk_ComponentGraphics_grab_current_drawable (widget, &drawable, &win);
+ cp_gtk_grab_current_drawable (widget, &drawable, &win);
g_assert (drawable != NULL);
pixbuf = cp_gtk_image_get_pixbuf( env, image );
Index: native/jni/gtk-peer/gtkpeer.h
===================================================================
RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gtkpeer.h,v
retrieving revision 1.45
diff -u -r1.45 gtkpeer.h
--- native/jni/gtk-peer/gtkpeer.h 30 May 2006 04:21:53 -0000 1.45
+++ native/jni/gtk-peer/gtkpeer.h 31 May 2006 20:36:21 -0000
@@ -183,6 +183,10 @@
/* 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 (void);
void cp_gtk_checkbox_init_jni (void);