src/solaris/native/sun/awt/swing_GTKEngine.c

Print this page




  21  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  22  * CA 95054 USA or visit www.sun.com if you need additional information or
  23  * have any questions.
  24  */
  25 
  26 #include <stdlib.h>
  27 #include "gtk2_interface.h"
  28 #include "com_sun_java_swing_plaf_gtk_GTKEngine.h"
  29 
  30 /*
  31  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  32  * Method:    native_paint_arrow
  33  * Signature: (IIILjava/lang/String;IIIII)V
  34  */
  35 JNIEXPORT void JNICALL
  36 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow(
  37         JNIEnv *env, jobject this,
  38         jint widget_type, jint state, jint shadow_type, jstring detail,
  39         jint x, jint y, jint w, jint h, jint arrow_type)
  40 {

  41     gtk2_paint_arrow(widget_type, state, shadow_type, getStrFor(env, detail),
  42             x, y, w, h, arrow_type, TRUE);

  43 }
  44 
  45 /*
  46  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  47  * Method:    native_paint_box
  48  * Signature: (IIILjava/lang/String;IIIIII)V
  49  */
  50 JNIEXPORT void JNICALL
  51 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box(
  52         JNIEnv *env, jobject this,
  53         jint widget_type, jint state, jint shadow_type, jstring detail,
  54         jint x, jint y, jint w, jint h,
  55         jint synth_state, jint dir)
  56 {

  57     gtk2_paint_box(widget_type, state, shadow_type, getStrFor(env, detail),
  58                    x, y, w, h, synth_state, dir);

  59 }
  60 
  61 /*
  62  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  63  * Method:    native_paint_box_gap
  64  * Signature: (IIILjava/lang/String;IIIIIII)V
  65  */
  66 JNIEXPORT void JNICALL
  67 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box_1gap(
  68         JNIEnv *env, jobject this,
  69         jint widget_type, jint state, jint shadow_type, jstring detail,
  70         jint x, jint y, jint w, jint h,
  71         jint gap_side, jint gap_x, jint gap_w)
  72 {

  73     gtk2_paint_box_gap(widget_type, state, shadow_type, getStrFor(env, detail),
  74             x, y, w, h, gap_side, gap_x, gap_w);

  75 }
  76 
  77 /*
  78  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  79  * Method:    native_paint_check
  80  * Signature: (IILjava/lang/String;IIII)V
  81  */
  82 JNIEXPORT void JNICALL
  83 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1check(
  84         JNIEnv *env, jobject this,
  85         jint widget_type, jint synth_state, jstring detail,
  86         jint x, jint y, jint w, jint h)
  87 {

  88     gtk2_paint_check(widget_type, synth_state, getStrFor(env, detail),
  89                      x, y, w, h);

  90 }
  91 
  92 /*
  93  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  94  * Method:    native_paint_expander
  95  * Signature: (IILjava/lang/String;IIIII)V
  96  */
  97 JNIEXPORT void JNICALL
  98 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1expander(
  99         JNIEnv *env, jobject this,
 100         jint widget_type, jint state, jstring detail,
 101         jint x, jint y, jint w, jint h, jint expander_style)
 102 {

 103     gtk2_paint_expander(widget_type, state, getStrFor(env, detail),
 104             x, y, w, h, expander_style);

 105 }
 106 
 107 /*
 108  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 109  * Method:    native_paint_extension
 110  * Signature: (IIILjava/lang/String;IIIII)V
 111  */
 112 JNIEXPORT void JNICALL
 113 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1extension(
 114         JNIEnv *env, jobject this,
 115         jint widget_type, jint state, jint shadow_type, jstring detail,
 116         jint x, jint y, jint w, jint h, jint placement)
 117 {

 118     gtk2_paint_extension(widget_type, state, shadow_type,
 119             getStrFor(env, detail), x, y, w, h, placement);

 120 }
 121 
 122 /*
 123  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 124  * Method:    native_paint_flat_box
 125  * Signature: (IIILjava/lang/String;IIII)V
 126  */
 127 JNIEXPORT void JNICALL
 128 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1flat_1box(
 129         JNIEnv *env, jobject this,
 130         jint widget_type, jint state, jint shadow_type, jstring detail,
 131         jint x, jint y, jint w, jint h, jboolean has_focus)
 132 {

 133     gtk2_paint_flat_box(widget_type, state, shadow_type,
 134             getStrFor(env, detail), x, y, w, h, has_focus);

 135 }
 136 
 137 /*
 138  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 139  * Method:    native_paint_focus
 140  * Signature: (IILjava/lang/String;IIII)V
 141  */
 142 JNIEXPORT void JNICALL
 143 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1focus(
 144         JNIEnv *env, jobject this,
 145         jint widget_type, jint state, jstring detail,
 146         jint x, jint y, jint w, jint h)
 147 {

 148     gtk2_paint_focus(widget_type, state, getStrFor(env, detail),
 149             x, y, w, h);

 150 }
 151 
 152 /*
 153  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 154  * Method:    native_paint_handle
 155  * Signature: (IIILjava/lang/String;IIIII)V
 156  */
 157 JNIEXPORT void JNICALL
 158 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1handle(
 159         JNIEnv *env, jobject this,
 160         jint widget_type, jint state, jint shadow_type, jstring detail,
 161         jint x, jint y, jint w, jint h, jint orientation)
 162 {

 163     gtk2_paint_handle(widget_type, state, shadow_type, getStrFor(env, detail),
 164             x, y, w, h, orientation);

 165 }
 166 
 167 /*
 168  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 169  * Method:    native_paint_hline
 170  * Signature: (IILjava/lang/String;IIII)V
 171  */
 172 JNIEXPORT void JNICALL
 173 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1hline(
 174         JNIEnv *env, jobject this,
 175         jint widget_type, jint state, jstring detail,
 176         jint x, jint y, jint w, jint h)
 177 {

 178     gtk2_paint_hline(widget_type, state, getStrFor(env, detail),
 179             x, y, w, h);

 180 }
 181 
 182 /*
 183  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 184  * Method:    native_paint_option
 185  * Signature: (IILjava/lang/String;IIII)V
 186  */
 187 JNIEXPORT void JNICALL
 188 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1option(
 189         JNIEnv *env, jobject this,
 190         jint widget_type, jint synth_state, jstring detail,
 191         jint x, jint y, jint w, jint h)
 192 {

 193     gtk2_paint_option(widget_type, synth_state, getStrFor(env, detail),
 194                       x, y, w, h);

 195 }
 196 
 197 /*
 198  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 199  * Method:    native_paint_shadow
 200  * Signature: (IIILjava/lang/String;IIIIII)V
 201  */
 202 JNIEXPORT void JNICALL
 203 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1shadow(
 204         JNIEnv *env, jobject this,
 205         jint widget_type, jint state, jint shadow_type, jstring detail,
 206         jint x, jint y, jint w, jint h,
 207         jint synth_state, jint dir)
 208 {

 209     gtk2_paint_shadow(widget_type, state, shadow_type, getStrFor(env, detail),
 210                       x, y, w, h, synth_state, dir);

 211 }
 212 
 213 /*
 214  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 215  * Method:    native_paint_slider
 216  * Signature: (IIILjava/lang/String;IIIII)V
 217  */
 218 JNIEXPORT void JNICALL
 219 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1slider(
 220         JNIEnv *env, jobject this,
 221         jint widget_type, jint state, jint shadow_type, jstring detail,
 222         jint x, jint y, jint w, jint h, jint orientation)
 223 {

 224     gtk2_paint_slider(widget_type, state, shadow_type, getStrFor(env, detail),
 225             x, y, w, h, orientation);

 226 }
 227 
 228 /*
 229  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 230  * Method:    native_paint_vline
 231  * Signature: (IILjava/lang/String;IIII)V
 232  */
 233 JNIEXPORT void JNICALL
 234 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1vline(
 235         JNIEnv *env, jobject this,
 236         jint widget_type, jint state, jstring detail,
 237         jint x, jint y, jint w, jint h)
 238 {

 239     gtk2_paint_vline(widget_type, state, getStrFor(env, detail),
 240             x, y, w, h);

 241 }
 242 
 243 /*
 244  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 245  * Method:    native_paint_background
 246  * Signature: (IIIIII)V
 247  */
 248 JNIEXPORT void JNICALL
 249 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1background(
 250         JNIEnv *env, jobject this, jint widget_type, jint state,
 251         jint x, jint y, jint w, jint h)
 252 {

 253     gtk_paint_background(widget_type, state, x, y, w, h);

 254 }
 255 
 256 /*
 257  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 258  * Method:    nativeStartPainting
 259  * Signature: (II)V
 260  */
 261 JNIEXPORT void JNICALL
 262 Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeStartPainting(
 263         JNIEnv *env, jobject this, jint w, jint h)
 264 {

 265     gtk2_init_painting(w, h);

 266 }
 267 
 268 /*
 269  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 270  * Method:    nativeFinishPainting
 271  * Signature: ([III)I
 272  */
 273 JNIEXPORT jint JNICALL
 274 Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting(
 275         JNIEnv *env, jobject this, jintArray dest, jint width, jint height)
 276 {
 277     jint transparency;
 278     gint *buffer = (gint*) (*env)->GetPrimitiveArrayCritical(env, dest, 0);

 279     transparency = gtk2_copy_image(buffer, width, height);

 280     (*env)->ReleasePrimitiveArrayCritical(env, dest, buffer, 0);
 281     return transparency;
 282 }
 283 
 284 /*
 285  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 286  * Method:    native_switch_theme
 287  * Signature: ()V
 288  */
 289 JNIEXPORT void JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1switch_1theme(
 290         JNIEnv *env, jobject this)
 291 {

 292     flush_gtk_event_loop();

 293 }
 294 
 295 /*
 296  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 297  * Method:    native_get_gtk_setting
 298  * Signature: (I)Ljava/lang/Object;
 299  */
 300 JNIEXPORT jobject JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1get_1gtk_1setting(
 301         JNIEnv *env, jobject this, jint property)
 302 {
 303     return gtk2_get_setting(env, property);




 304 }
 305 
 306 /*
 307  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 308  * Method:    nativeSetRangeValue
 309  * Signature: (IDDDD)V
 310  */
 311 JNIEXPORT void JNICALL
 312 Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeSetRangeValue(
 313         JNIEnv *env, jobject this, jint widget_type,
 314         jdouble value, jdouble min, jdouble max, jdouble visible)
 315 {

 316     gtk2_set_range_value(widget_type, value, min, max, visible);

 317 }


  21  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
  22  * CA 95054 USA or visit www.sun.com if you need additional information or
  23  * have any questions.
  24  */
  25 
  26 #include <stdlib.h>
  27 #include "gtk2_interface.h"
  28 #include "com_sun_java_swing_plaf_gtk_GTKEngine.h"
  29 
  30 /*
  31  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  32  * Method:    native_paint_arrow
  33  * Signature: (IIILjava/lang/String;IIIII)V
  34  */
  35 JNIEXPORT void JNICALL
  36 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow(
  37         JNIEnv *env, jobject this,
  38         jint widget_type, jint state, jint shadow_type, jstring detail,
  39         jint x, jint y, jint w, jint h, jint arrow_type)
  40 {
  41     fp_gdk_threads_enter();
  42     gtk2_paint_arrow(widget_type, state, shadow_type, getStrFor(env, detail),
  43             x, y, w, h, arrow_type, TRUE);
  44     fp_gdk_threads_leave();
  45 }
  46 
  47 /*
  48  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  49  * Method:    native_paint_box
  50  * Signature: (IIILjava/lang/String;IIIIII)V
  51  */
  52 JNIEXPORT void JNICALL
  53 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box(
  54         JNIEnv *env, jobject this,
  55         jint widget_type, jint state, jint shadow_type, jstring detail,
  56         jint x, jint y, jint w, jint h,
  57         jint synth_state, jint dir)
  58 {
  59     fp_gdk_threads_enter();
  60     gtk2_paint_box(widget_type, state, shadow_type, getStrFor(env, detail),
  61                    x, y, w, h, synth_state, dir);
  62     fp_gdk_threads_leave();
  63 }
  64 
  65 /*
  66  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  67  * Method:    native_paint_box_gap
  68  * Signature: (IIILjava/lang/String;IIIIIII)V
  69  */
  70 JNIEXPORT void JNICALL
  71 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box_1gap(
  72         JNIEnv *env, jobject this,
  73         jint widget_type, jint state, jint shadow_type, jstring detail,
  74         jint x, jint y, jint w, jint h,
  75         jint gap_side, jint gap_x, jint gap_w)
  76 {
  77     fp_gdk_threads_enter();
  78     gtk2_paint_box_gap(widget_type, state, shadow_type, getStrFor(env, detail),
  79             x, y, w, h, gap_side, gap_x, gap_w);
  80     fp_gdk_threads_leave();
  81 }
  82 
  83 /*
  84  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
  85  * Method:    native_paint_check
  86  * Signature: (IILjava/lang/String;IIII)V
  87  */
  88 JNIEXPORT void JNICALL
  89 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1check(
  90         JNIEnv *env, jobject this,
  91         jint widget_type, jint synth_state, jstring detail,
  92         jint x, jint y, jint w, jint h)
  93 {
  94     fp_gdk_threads_enter();
  95     gtk2_paint_check(widget_type, synth_state, getStrFor(env, detail),
  96                      x, y, w, h);
  97     fp_gdk_threads_leave();
  98 }
  99 
 100 /*
 101  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 102  * Method:    native_paint_expander
 103  * Signature: (IILjava/lang/String;IIIII)V
 104  */
 105 JNIEXPORT void JNICALL
 106 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1expander(
 107         JNIEnv *env, jobject this,
 108         jint widget_type, jint state, jstring detail,
 109         jint x, jint y, jint w, jint h, jint expander_style)
 110 {
 111     fp_gdk_threads_enter();
 112     gtk2_paint_expander(widget_type, state, getStrFor(env, detail),
 113             x, y, w, h, expander_style);
 114     fp_gdk_threads_leave();
 115 }
 116 
 117 /*
 118  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 119  * Method:    native_paint_extension
 120  * Signature: (IIILjava/lang/String;IIIII)V
 121  */
 122 JNIEXPORT void JNICALL
 123 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1extension(
 124         JNIEnv *env, jobject this,
 125         jint widget_type, jint state, jint shadow_type, jstring detail,
 126         jint x, jint y, jint w, jint h, jint placement)
 127 {
 128     fp_gdk_threads_enter();
 129     gtk2_paint_extension(widget_type, state, shadow_type,
 130             getStrFor(env, detail), x, y, w, h, placement);
 131     fp_gdk_threads_leave();
 132 }
 133 
 134 /*
 135  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 136  * Method:    native_paint_flat_box
 137  * Signature: (IIILjava/lang/String;IIII)V
 138  */
 139 JNIEXPORT void JNICALL
 140 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1flat_1box(
 141         JNIEnv *env, jobject this,
 142         jint widget_type, jint state, jint shadow_type, jstring detail,
 143         jint x, jint y, jint w, jint h, jboolean has_focus)
 144 {
 145     fp_gdk_threads_enter();
 146     gtk2_paint_flat_box(widget_type, state, shadow_type,
 147             getStrFor(env, detail), x, y, w, h, has_focus);
 148     fp_gdk_threads_leave();
 149 }
 150 
 151 /*
 152  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 153  * Method:    native_paint_focus
 154  * Signature: (IILjava/lang/String;IIII)V
 155  */
 156 JNIEXPORT void JNICALL
 157 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1focus(
 158         JNIEnv *env, jobject this,
 159         jint widget_type, jint state, jstring detail,
 160         jint x, jint y, jint w, jint h)
 161 {
 162     fp_gdk_threads_enter();
 163     gtk2_paint_focus(widget_type, state, getStrFor(env, detail),
 164             x, y, w, h);
 165     fp_gdk_threads_leave();
 166 }
 167 
 168 /*
 169  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 170  * Method:    native_paint_handle
 171  * Signature: (IIILjava/lang/String;IIIII)V
 172  */
 173 JNIEXPORT void JNICALL
 174 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1handle(
 175         JNIEnv *env, jobject this,
 176         jint widget_type, jint state, jint shadow_type, jstring detail,
 177         jint x, jint y, jint w, jint h, jint orientation)
 178 {
 179     fp_gdk_threads_enter();
 180     gtk2_paint_handle(widget_type, state, shadow_type, getStrFor(env, detail),
 181             x, y, w, h, orientation);
 182     fp_gdk_threads_leave();
 183 }
 184 
 185 /*
 186  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 187  * Method:    native_paint_hline
 188  * Signature: (IILjava/lang/String;IIII)V
 189  */
 190 JNIEXPORT void JNICALL
 191 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1hline(
 192         JNIEnv *env, jobject this,
 193         jint widget_type, jint state, jstring detail,
 194         jint x, jint y, jint w, jint h)
 195 {
 196     fp_gdk_threads_enter();
 197     gtk2_paint_hline(widget_type, state, getStrFor(env, detail),
 198             x, y, w, h);
 199     fp_gdk_threads_leave();
 200 }
 201 
 202 /*
 203  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 204  * Method:    native_paint_option
 205  * Signature: (IILjava/lang/String;IIII)V
 206  */
 207 JNIEXPORT void JNICALL
 208 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1option(
 209         JNIEnv *env, jobject this,
 210         jint widget_type, jint synth_state, jstring detail,
 211         jint x, jint y, jint w, jint h)
 212 {
 213     fp_gdk_threads_enter();
 214     gtk2_paint_option(widget_type, synth_state, getStrFor(env, detail),
 215                       x, y, w, h);
 216     fp_gdk_threads_leave();
 217 }
 218 
 219 /*
 220  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 221  * Method:    native_paint_shadow
 222  * Signature: (IIILjava/lang/String;IIIIII)V
 223  */
 224 JNIEXPORT void JNICALL
 225 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1shadow(
 226         JNIEnv *env, jobject this,
 227         jint widget_type, jint state, jint shadow_type, jstring detail,
 228         jint x, jint y, jint w, jint h,
 229         jint synth_state, jint dir)
 230 {
 231     fp_gdk_threads_enter();
 232     gtk2_paint_shadow(widget_type, state, shadow_type, getStrFor(env, detail),
 233                       x, y, w, h, synth_state, dir);
 234     fp_gdk_threads_leave();
 235 }
 236 
 237 /*
 238  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 239  * Method:    native_paint_slider
 240  * Signature: (IIILjava/lang/String;IIIII)V
 241  */
 242 JNIEXPORT void JNICALL
 243 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1slider(
 244         JNIEnv *env, jobject this,
 245         jint widget_type, jint state, jint shadow_type, jstring detail,
 246         jint x, jint y, jint w, jint h, jint orientation)
 247 {
 248     fp_gdk_threads_enter();
 249     gtk2_paint_slider(widget_type, state, shadow_type, getStrFor(env, detail),
 250             x, y, w, h, orientation);
 251     fp_gdk_threads_leave();
 252 }
 253 
 254 /*
 255  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 256  * Method:    native_paint_vline
 257  * Signature: (IILjava/lang/String;IIII)V
 258  */
 259 JNIEXPORT void JNICALL
 260 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1vline(
 261         JNIEnv *env, jobject this,
 262         jint widget_type, jint state, jstring detail,
 263         jint x, jint y, jint w, jint h)
 264 {
 265     fp_gdk_threads_enter();
 266     gtk2_paint_vline(widget_type, state, getStrFor(env, detail),
 267             x, y, w, h);
 268     fp_gdk_threads_leave();
 269 }
 270 
 271 /*
 272  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 273  * Method:    native_paint_background
 274  * Signature: (IIIIII)V
 275  */
 276 JNIEXPORT void JNICALL
 277 Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1background(
 278         JNIEnv *env, jobject this, jint widget_type, jint state,
 279         jint x, jint y, jint w, jint h)
 280 {
 281     fp_gdk_threads_enter();
 282     gtk_paint_background(widget_type, state, x, y, w, h);
 283     fp_gdk_threads_leave();
 284 }
 285 
 286 /*
 287  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 288  * Method:    nativeStartPainting
 289  * Signature: (II)V
 290  */
 291 JNIEXPORT void JNICALL
 292 Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeStartPainting(
 293         JNIEnv *env, jobject this, jint w, jint h)
 294 {
 295     fp_gdk_threads_enter();
 296     gtk2_init_painting(w, h);
 297     fp_gdk_threads_leave();
 298 }
 299 
 300 /*
 301  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 302  * Method:    nativeFinishPainting
 303  * Signature: ([III)I
 304  */
 305 JNIEXPORT jint JNICALL
 306 Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting(
 307         JNIEnv *env, jobject this, jintArray dest, jint width, jint height)
 308 {
 309     jint transparency;
 310     gint *buffer = (gint*) (*env)->GetPrimitiveArrayCritical(env, dest, 0);
 311     fp_gdk_threads_enter();
 312     transparency = gtk2_copy_image(buffer, width, height);
 313     fp_gdk_threads_leave();
 314     (*env)->ReleasePrimitiveArrayCritical(env, dest, buffer, 0);
 315     return transparency;
 316 }
 317 
 318 /*
 319  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 320  * Method:    native_switch_theme
 321  * Signature: ()V
 322  */
 323 JNIEXPORT void JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1switch_1theme(
 324         JNIEnv *env, jobject this)
 325 {
 326     fp_gdk_threads_enter();
 327     flush_gtk_event_loop();
 328     fp_gdk_threads_leave();
 329 }
 330 
 331 /*
 332  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 333  * Method:    native_get_gtk_setting
 334  * Signature: (I)Ljava/lang/Object;
 335  */
 336 JNIEXPORT jobject JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1get_1gtk_1setting(
 337         JNIEnv *env, jobject this, jint property)
 338 {
 339     jobject obj;
 340     fp_gdk_threads_enter();
 341     obj = gtk2_get_setting(env, property);
 342     fp_gdk_threads_leave();
 343     return obj;
 344 }
 345 
 346 /*
 347  * Class:     com_sun_java_swing_plaf_gtk_GTKEngine
 348  * Method:    nativeSetRangeValue
 349  * Signature: (IDDDD)V
 350  */
 351 JNIEXPORT void JNICALL
 352 Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeSetRangeValue(
 353         JNIEnv *env, jobject this, jint widget_type,
 354         jdouble value, jdouble min, jdouble max, jdouble visible)
 355 {
 356     fp_gdk_threads_enter();
 357     gtk2_set_range_value(widget_type, value, min, max, visible);
 358     fp_gdk_threads_leave();
 359 }