JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_copyState (JNIEnv *env, jobject obj, jobject old) { struct graphics *g, *g_old; g = (struct graphics *) malloc (sizeof (struct graphics)); g_old = (struct graphics *) NSA_GET_PTR (env, old); *g = *g_old; gdk_threads_enter (); g->gc = gdk_gc_new (g->drawable); gdk_gc_copy (g->gc, g_old->gc); if (GDK_STABLE_IS_PIXMAP (g->drawable)) gdk_pixmap_ref (g->drawable); else /* GDK_IS_WINDOW (g->drawable) */ gdk_window_ref (g->drawable); gdk_colormap_ref (g->cm); gdk_threads_leave (); NSA_SET_PTR (env, obj, g); }
/* copy the native state of the peer (GtkWidget *) to the native state of the graphics object */ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__Lgnu_java_awt_peer_gtk_GtkComponentPeer_2 (JNIEnv *env, jobject obj, jobject peer) { struct graphics *g = (struct graphics *) malloc (sizeof (struct graphics)); void *ptr; GtkWidget *widget; GdkColor color; ptr = NSA_GET_PTR (env, peer); g->x_offset = g->y_offset = 0; gdk_threads_enter (); widget = GTK_WIDGET (ptr); g->drawable = (GdkDrawable *) widget->window; gdk_window_ref (g->drawable); g->cm = gtk_widget_get_colormap (widget); gdk_colormap_ref (g->cm); g->gc = gdk_gc_new (g->drawable); gdk_gc_copy (g->gc, widget->style->fg_gc[GTK_STATE_NORMAL]); color = widget->style->fg[GTK_STATE_NORMAL]; gdk_threads_leave (); NSA_SET_PTR (env, obj, g); }
JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GdkGraphics_initState__II (JNIEnv *env, jobject obj, jint width, jint height) { struct graphics *g; g = (struct graphics *) malloc (sizeof (struct graphics)); g->x_offset = g->y_offset = 0; gdk_threads_enter (); g->drawable = (GdkDrawable *) gdk_pixmap_new (NULL, width, height, gdk_rgb_get_visual ()->depth); g->cm = gdk_rgb_get_cmap (); gdk_colormap_ref (g->cm); g->gc = gdk_gc_new (g->drawable); gdk_threads_leave (); NSA_SET_PTR (env, obj, g); }
void Colormap::incref() const { if ( m_obj ) gdk_colormap_ref( (GdkColormap*) m_obj ); }