0N/A/*
2724N/A * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
0N/A *
0N/A * This code is free software; you can redistribute it and/or modify it
0N/A * under the terms of the GNU General Public License version 2 only, as
2362N/A * published by the Free Software Foundation. Oracle designates this
0N/A * particular file as subject to the "Classpath" exception as provided
2362N/A * by Oracle in the LICENSE file that accompanied this code.
0N/A *
0N/A * This code is distributed in the hope that it will be useful, but WITHOUT
0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
0N/A * version 2 for more details (a copy is included in the LICENSE file that
0N/A * accompanied this code).
0N/A *
0N/A * You should have received a copy of the GNU General Public License version
0N/A * 2 along with this work; if not, write to the Free Software Foundation,
0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
0N/A *
2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
2362N/A * or visit www.oracle.com if you need additional information or have any
2362N/A * questions.
0N/A */
0N/A
0N/A#include <stdlib.h>
0N/A#include "gtk2_interface.h"
0N/A#include "com_sun_java_swing_plaf_gtk_GTKEngine.h"
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_arrow
0N/A * Signature: (IIILjava/lang/String;IIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h, jint arrow_type)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_arrow(widget_type, state, shadow_type, getStrFor(env, detail),
0N/A x, y, w, h, arrow_type, TRUE);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_box
0N/A * Signature: (IIILjava/lang/String;IIIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h,
0N/A jint synth_state, jint dir)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_box(widget_type, state, shadow_type, getStrFor(env, detail),
0N/A x, y, w, h, synth_state, dir);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_box_gap
0N/A * Signature: (IIILjava/lang/String;IIIIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box_1gap(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h,
0N/A jint gap_side, jint gap_x, jint gap_w)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_box_gap(widget_type, state, shadow_type, getStrFor(env, detail),
0N/A x, y, w, h, gap_side, gap_x, gap_w);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_check
0N/A * Signature: (IILjava/lang/String;IIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1check(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint synth_state, jstring detail,
0N/A jint x, jint y, jint w, jint h)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_check(widget_type, synth_state, getStrFor(env, detail),
0N/A x, y, w, h);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_expander
0N/A * Signature: (IILjava/lang/String;IIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1expander(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jstring detail,
0N/A jint x, jint y, jint w, jint h, jint expander_style)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_expander(widget_type, state, getStrFor(env, detail),
0N/A x, y, w, h, expander_style);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_extension
0N/A * Signature: (IIILjava/lang/String;IIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1extension(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h, jint placement)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_extension(widget_type, state, shadow_type,
0N/A getStrFor(env, detail), x, y, w, h, placement);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_flat_box
0N/A * Signature: (IIILjava/lang/String;IIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1flat_1box(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h, jboolean has_focus)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_flat_box(widget_type, state, shadow_type,
0N/A getStrFor(env, detail), x, y, w, h, has_focus);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_focus
0N/A * Signature: (IILjava/lang/String;IIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1focus(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jstring detail,
0N/A jint x, jint y, jint w, jint h)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_focus(widget_type, state, getStrFor(env, detail),
0N/A x, y, w, h);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_handle
0N/A * Signature: (IIILjava/lang/String;IIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1handle(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h, jint orientation)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_handle(widget_type, state, shadow_type, getStrFor(env, detail),
0N/A x, y, w, h, orientation);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_hline
0N/A * Signature: (IILjava/lang/String;IIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1hline(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jstring detail,
0N/A jint x, jint y, jint w, jint h)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_hline(widget_type, state, getStrFor(env, detail),
0N/A x, y, w, h);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_option
0N/A * Signature: (IILjava/lang/String;IIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1option(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint synth_state, jstring detail,
0N/A jint x, jint y, jint w, jint h)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_option(widget_type, synth_state, getStrFor(env, detail),
0N/A x, y, w, h);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_shadow
0N/A * Signature: (IIILjava/lang/String;IIIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1shadow(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h,
0N/A jint synth_state, jint dir)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_shadow(widget_type, state, shadow_type, getStrFor(env, detail),
0N/A x, y, w, h, synth_state, dir);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_slider
0N/A * Signature: (IIILjava/lang/String;IIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1slider(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jint shadow_type, jstring detail,
0N/A jint x, jint y, jint w, jint h, jint orientation)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_slider(widget_type, state, shadow_type, getStrFor(env, detail),
0N/A x, y, w, h, orientation);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_vline
0N/A * Signature: (IILjava/lang/String;IIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1vline(
0N/A JNIEnv *env, jobject this,
0N/A jint widget_type, jint state, jstring detail,
0N/A jint x, jint y, jint w, jint h)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_paint_vline(widget_type, state, getStrFor(env, detail),
0N/A x, y, w, h);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_paint_background
0N/A * Signature: (IIIIII)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1background(
0N/A JNIEnv *env, jobject this, jint widget_type, jint state,
0N/A jint x, jint y, jint w, jint h)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk_paint_background(widget_type, state, x, y, w, h);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: nativeStartPainting
0N/A * Signature: (II)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_nativeStartPainting(
0N/A JNIEnv *env, jobject this, jint w, jint h)
0N/A{
2328N/A fp_gdk_threads_enter();
2724N/A gtk2_init_painting(env, w, h);
2328N/A fp_gdk_threads_leave();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: nativeFinishPainting
0N/A * Signature: ([III)I
0N/A */
0N/AJNIEXPORT jint JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting(
0N/A JNIEnv *env, jobject this, jintArray dest, jint width, jint height)
0N/A{
0N/A jint transparency;
0N/A gint *buffer = (gint*) (*env)->GetPrimitiveArrayCritical(env, dest, 0);
2328N/A fp_gdk_threads_enter();
0N/A transparency = gtk2_copy_image(buffer, width, height);
2328N/A fp_gdk_threads_leave();
0N/A (*env)->ReleasePrimitiveArrayCritical(env, dest, buffer, 0);
0N/A return transparency;
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_switch_theme
0N/A * Signature: ()V
0N/A */
0N/AJNIEXPORT void JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1switch_1theme(
0N/A JNIEnv *env, jobject this)
0N/A{
5130N/A // Note that flush_gtk_event_loop takes care of locks (7053002)
0N/A flush_gtk_event_loop();
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: native_get_gtk_setting
0N/A * Signature: (I)Ljava/lang/Object;
0N/A */
0N/AJNIEXPORT jobject JNICALL Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1get_1gtk_1setting(
0N/A JNIEnv *env, jobject this, jint property)
0N/A{
2328N/A jobject obj;
2328N/A fp_gdk_threads_enter();
2328N/A obj = gtk2_get_setting(env, property);
2328N/A fp_gdk_threads_leave();
2328N/A return obj;
0N/A}
0N/A
0N/A/*
0N/A * Class: com_sun_java_swing_plaf_gtk_GTKEngine
0N/A * Method: nativeSetRangeValue
0N/A * Signature: (IDDDD)V
0N/A */
0N/AJNIEXPORT void JNICALL
0N/AJava_com_sun_java_swing_plaf_gtk_GTKEngine_nativeSetRangeValue(
0N/A JNIEnv *env, jobject this, jint widget_type,
0N/A jdouble value, jdouble min, jdouble max, jdouble visible)
0N/A{
2328N/A fp_gdk_threads_enter();
0N/A gtk2_set_range_value(widget_type, value, min, max, visible);
2328N/A fp_gdk_threads_leave();
0N/A}