4632N/A/*
6323N/A * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
4632N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4632N/A *
4632N/A * This code is free software; you can redistribute it and/or modify it
4632N/A * under the terms of the GNU General Public License version 2 only, as
4632N/A * published by the Free Software Foundation. Oracle designates this
4632N/A * particular file as subject to the "Classpath" exception as provided
4632N/A * by Oracle in the LICENSE file that accompanied this code.
4632N/A *
4632N/A * This code is distributed in the hope that it will be useful, but WITHOUT
4632N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
4632N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
4632N/A * version 2 for more details (a copy is included in the LICENSE file that
4632N/A * accompanied this code).
4632N/A *
4632N/A * You should have received a copy of the GNU General Public License version
4632N/A * 2 along with this work; if not, write to the Free Software Foundation,
4632N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
4632N/A *
4632N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
4632N/A * or visit www.oracle.com if you need additional information or have any
4632N/A * questions.
4632N/A */
4632N/A
4632N/A#import "CWrapper.h"
4632N/A
4632N/A#import <JavaNativeFoundation/JavaNativeFoundation.h>
4632N/A
4632N/A#import "AWTWindow.h"
4632N/A#import "LWCToolkit.h"
4632N/A#import "GeomUtilities.h"
4632N/A#import "ThreadUtilities.h"
4632N/A
4698N/A#import "sun_lwawt_macosx_CWrapper_NSWindow.h"
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSObject
4632N/A * Method: release
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSObject_release
4632N/A(JNIEnv *env, jclass cls, jlong objectPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A id obj = (id)jlong_to_ptr(objectPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A CFRelease(obj);
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: makeKeyAndOrderFront
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_makeKeyAndOrderFront
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(makeKeyAndOrderFront:)
6055N/A on:window
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4863N/A * Method: makeKeyWindow
4863N/A * Signature: (J)V
4863N/A */
4863N/AJNIEXPORT void JNICALL
4863N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_makeKeyWindow
4863N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4863N/A{
4863N/AJNF_COCOA_ENTER(env);
4863N/A
4863N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(makeKeyWindow)
6055N/A on:window
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4863N/A
4863N/AJNF_COCOA_EXIT(env);
4863N/A}
4863N/A
4863N/A/*
4863N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: makeMainWindow
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_makeMainWindow
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(makeMainWindow)
6055N/A on:window
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4639N/A * Method: canBecomeMainWindow
4639N/A * Signature: (J)V
4639N/A */
4639N/AJNIEXPORT jboolean JNICALL
4639N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_canBecomeMainWindow
4639N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4639N/A{
4639N/A __block jboolean canBecomeMainWindow = JNI_FALSE;
4639N/A
4639N/AJNF_COCOA_ENTER(env);
4698N/A
4639N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4717N/A canBecomeMainWindow = [window canBecomeMainWindow];
4639N/A }];
4639N/A
4639N/AJNF_COCOA_EXIT(env);
4639N/A
4639N/A return canBecomeMainWindow;
4639N/A}
4639N/A
4639N/A/*
4639N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: isKeyWindow
4632N/A * Signature: (J)Z
4632N/A */
4632N/AJNIEXPORT jboolean JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_isKeyWindow
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/A __block jboolean isKeyWindow = JNI_FALSE;
4632N/A
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A isKeyWindow = [window isKeyWindow];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A
4632N/A return isKeyWindow;
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: orderFront
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_orderFront
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(orderFront:)
6055N/A on:window
6055N/A withObject:window
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: orderOut
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_orderOut
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(orderOut:)
6055N/A on:window
6055N/A withObject:window
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: orderFrontRegardless
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_orderFrontRegardless
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(orderFrontRegardless)
6055N/A on:window
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: orderWindow
4632N/A * Signature: (JIJ)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_orderWindow
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr, jint order, jlong relativeToPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
4632N/A NSWindow *relativeTo = (NSWindow *)jlong_to_ptr(relativeToPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A [window orderWindow:(NSWindowOrderingMode)order relativeTo:[relativeTo windowNumber]];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4698N/A// Used for CWrapper.NSWindow.setLevel() (and level() which isn't implemented yet)
4698N/Astatic NSInteger LEVELS[sun_lwawt_macosx_CWrapper_NSWindow_MAX_WINDOW_LEVELS];
4698N/Astatic void initLevels()
4698N/A{
4698N/A static dispatch_once_t pred;
4698N/A
4698N/A dispatch_once(&pred, ^{
4698N/A LEVELS[sun_lwawt_macosx_CWrapper_NSWindow_NSNormalWindowLevel] = NSNormalWindowLevel;
4698N/A LEVELS[sun_lwawt_macosx_CWrapper_NSWindow_NSFloatingWindowLevel] = NSFloatingWindowLevel;
4698N/A });
4698N/A}
4698N/A
4698N/A/*
4698N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4698N/A * Method: setLevel
4698N/A * Signature: (JI)V
4698N/A */
4698N/AJNIEXPORT void JNICALL
4698N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_setLevel
4698N/A(JNIEnv *env, jclass cls, jlong windowPtr, jint level)
4698N/A{
4698N/AJNF_COCOA_ENTER(env);
4698N/A
4698N/A if (level >= 0 && level < sun_lwawt_macosx_CWrapper_NSWindow_MAX_WINDOW_LEVELS) {
4698N/A initLevels();
4698N/A
4698N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4698N/A [window setLevel: LEVELS[level]];
4698N/A }];
4698N/A } else {
4698N/A [JNFException raise:env as:kIllegalArgumentException reason:"unknown level"];
4698N/A }
4698N/A
4698N/AJNF_COCOA_EXIT(env);
4698N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: addChildWindow
4632N/A * Signature: (JJI)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_addChildWindow
4632N/A(JNIEnv *env, jclass cls, jlong parentPtr, jlong childPtr, jint order)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *parent = (NSWindow *)jlong_to_ptr(parentPtr);
4632N/A NSWindow *child = (NSWindow *)jlong_to_ptr(childPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A [parent addChildWindow:child ordered:order];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: removeChildWindow
4632N/A * Signature: (JJ)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_removeChildWindow
4632N/A(JNIEnv *env, jclass cls, jlong parentPtr, jlong childPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A AWTWindow *parent = (AWTWindow *)jlong_to_ptr(parentPtr);
4632N/A AWTWindow *child = (AWTWindow *)jlong_to_ptr(childPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(removeChildWindow:)
6055N/A on:parent
6055N/A withObject:child
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: setFrame
4632N/A * Signature: (JIIIIZ)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_setFrame
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr, jint x, jint y, jint w, jint h, jboolean display)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr);
4632N/A NSRect frame = NSMakeRect(x, y, w, h);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A [window setFrame:frame display:display];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: setAlphaValue
4632N/A * Signature: (JF)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_setAlphaValue
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr, jfloat alpha)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A [window setAlphaValue:(CGFloat)alpha];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4639N/A * Method: setOpaque
4639N/A * Signature: (Z)V
4639N/A */
4639N/AJNIEXPORT void JNICALL
4639N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_setOpaque
4639N/A(JNIEnv *env, jclass cls, jlong windowPtr, jboolean opaque)
4639N/A{
4639N/AJNF_COCOA_ENTER(env);
4698N/A
4639N/A AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4639N/A [window setOpaque:(BOOL)opaque];
4639N/A }];
4639N/A
4639N/AJNF_COCOA_EXIT(env);
4639N/A}
4639N/A
4639N/A/*
4639N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4639N/A * Method: setBackgroundColor
4639N/A * Signature: (J)V
4639N/A */
4639N/AJNIEXPORT void JNICALL
4639N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_setBackgroundColor
4639N/A(JNIEnv *env, jclass cls, jlong windowPtr, jlong colorPtr)
4639N/A{
4639N/AJNF_COCOA_ENTER(env);
4698N/A
4639N/A AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr);
4639N/A NSColor *color = (NSColor *)jlong_to_ptr(colorPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4639N/A [window setBackgroundColor:color];
4639N/A }];
4698N/A
4639N/AJNF_COCOA_EXIT(env);
4639N/A}
4639N/A
4639N/A/*
4639N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: screen
4632N/A * Signature: (J)J
4632N/A */
4632N/AJNIEXPORT jlong JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_screen
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/A __block jlong screenPtr = 0L;
4632N/A
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A AWTWindow *window = (AWTWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A const NSScreen *screen = [window screen];
4632N/A CFRetain(screen); // GC
4632N/A screenPtr = ptr_to_jlong(screen);
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A
4632N/A return screenPtr;
4632N/A}
4632N/A
4632N/A/*
4632N/A * Method: miniaturize
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_miniaturize
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(miniaturize:)
6055N/A on:window
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: deminiaturize
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_deminiaturize
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(deminiaturize:)
6055N/A on:window
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: zoom
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_zoom
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(zoom:)
6055N/A on:window
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSWindow
4632N/A * Method: makeFirstResponder
4632N/A * Signature: (JJ)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSWindow_makeFirstResponder
4632N/A(JNIEnv *env, jclass cls, jlong windowPtr, jlong responderPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSWindow *window = (NSWindow *)jlong_to_ptr(windowPtr);
4632N/A NSResponder *responder = (NSResponder *)jlong_to_ptr(responderPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(makeFirstResponder:)
6055N/A on:window
6055N/A withObject:responder
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSView
4632N/A * Method: addSubview
4632N/A * Signature: (JJ)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_addSubview
4632N/A(JNIEnv *env, jclass cls, jlong viewPtr, jlong subviewPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
4632N/A NSView *subview = (NSView *)jlong_to_ptr(subviewPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A [view addSubview:subview];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSView
4632N/A * Method: removeFromSuperview
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_removeFromSuperview
4632N/A(JNIEnv *env, jclass cls, jlong viewPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6055N/A [ThreadUtilities performOnMainThread:@selector(removeFromSuperview)
6055N/A on:view
6055N/A withObject:nil
6055N/A waitUntilDone:NO];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSView
4632N/A * Method: setFrame
4632N/A * Signature: (JIIII)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_setFrame
4632N/A(JNIEnv *env, jclass cls, jlong viewPtr, jint x, jint y, jint w, jint h)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A [view setFrame:NSMakeRect(x, y, w, h)];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSView
4632N/A * Method: frame
4632N/A * Signature: (J)Ljava/awt/Rectangle;
4632N/A */
4632N/AJNIEXPORT jobject JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_frame
4632N/A(JNIEnv *env, jclass cls, jlong viewPtr)
4632N/A{
4632N/A jobject jRect = NULL;
4632N/A
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A __block NSRect rect = NSZeroRect;
4632N/A
4632N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A rect = [view frame];
4632N/A }];
4632N/A
4632N/A jRect = NSToJavaRect(env, rect);
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A
4632N/A return jRect;
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSView
4632N/A * Method: enterFullScreenMode
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_enterFullScreenMode
4632N/A(JNIEnv *env, jclass cls, jlong viewPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A NSScreen *screen = [[view window] screen];
4632N/A NSDictionary *opts = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], NSFullScreenModeAllScreens, nil];
4632N/A [view enterFullScreenMode:screen withOptions:opts];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSView
4632N/A * Method: exitFullScreenMode
4632N/A * Signature: (J)V
4632N/A */
4632N/AJNIEXPORT void JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_exitFullScreenMode
4632N/A(JNIEnv *env, jclass cls, jlong viewPtr)
4632N/A{
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
4632N/A [view exitFullScreenModeWithOptions:nil];
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSView
4632N/A * Method: window
4632N/A * Signature: (J)J
4632N/A */
4632N/AJNIEXPORT jlong JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_window
4632N/A(JNIEnv *env, jclass cls, jlong viewPtr)
4632N/A{
4632N/A __block jlong windowPtr = 0L;
4632N/A
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A windowPtr = ptr_to_jlong([view window]);
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A
4632N/A return windowPtr;
4632N/A}
4632N/A
4632N/A/*
6323N/A * Class: sun_lwawt_macosx_CWrapper$NSView
6323N/A * Method: setToolTip
6323N/A * Signature: (JLjava/lang/String;)V
6323N/A */
6323N/AJNIEXPORT void JNICALL
6323N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_setToolTip
6323N/A(JNIEnv *env, jclass cls, jlong viewPtr, jstring msg)
6323N/A{
6323N/A
6323N/AJNF_COCOA_ENTER(env);
6323N/A
6323N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6323N/A NSString* s = JNFJavaToNSString(env, msg);
6323N/A [JNFRunLoop performOnMainThreadWaiting:NO withBlock:^(){
6323N/A [view setToolTip: s];
6323N/A }];
6323N/A
6323N/AJNF_COCOA_EXIT(env);
6323N/A}
6323N/A
6323N/A/*
6407N/A * Class: sun_lwawt_macosx_CWrapper$NSView
5555N/A * Method: setHidden
5555N/A * Signature: (JZ)V
5555N/A */
6055N/AJNIEXPORT void JNICALL
5555N/AJava_sun_lwawt_macosx_CWrapper_00024NSView_setHidden
5555N/A(JNIEnv *env, jclass cls, jlong viewPtr, jboolean toHide)
5555N/A{
5555N/A JNF_COCOA_ENTER(env);
5555N/A
5555N/A NSView *view = (NSView *)jlong_to_ptr(viewPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:NO block:^(){
5555N/A [view setHidden:(BOOL)toHide];
5555N/A }];
5555N/A
5555N/A JNF_COCOA_EXIT(env);
5555N/A}
5555N/A
5555N/A
5555N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper$NSScreen
4632N/A * Method: frame
4632N/A * Signature: (J)Ljava/awt/Rectangle;
4632N/A */
4632N/AJNIEXPORT jobject JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSScreen_frame
4632N/A(JNIEnv *env, jclass cls, jlong screenPtr)
4632N/A{
4632N/A jobject jRect = NULL;
4632N/A
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A __block NSRect rect = NSZeroRect;
4632N/A
4632N/A NSScreen *screen = (NSScreen *)jlong_to_ptr(screenPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A rect = [screen frame];
4632N/A }];
4632N/A
4632N/A jRect = NSToJavaRect(env, rect);
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A
4632N/A return jRect;
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper_NSScreen
4632N/A * Method: visibleFrame
4632N/A * Signature: (J)Ljava/awt/geom/Rectangle2D;
4632N/A */
4632N/AJNIEXPORT jobject JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSScreen_visibleFrame
4632N/A(JNIEnv *env, jclass cls, jlong screenPtr)
4632N/A{
4632N/A jobject jRect = NULL;
4632N/A
4632N/AJNF_COCOA_ENTER(env);
4632N/A
4632N/A __block NSRect rect = NSZeroRect;
4632N/A
4632N/A NSScreen *screen = (NSScreen *)jlong_to_ptr(screenPtr);
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A rect = [screen visibleFrame];
4632N/A }];
4632N/A
4632N/A jRect = NSToJavaRect(env, rect);
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A
4632N/A return jRect;
4632N/A}
4632N/A
4632N/A/*
4632N/A * Class: sun_lwawt_macosx_CWrapper_NSScreen
4632N/A * Method: screenByDisplayId
4632N/A * Signature: (J)J
4632N/A */
4632N/AJNIEXPORT jlong JNICALL
4632N/AJava_sun_lwawt_macosx_CWrapper_00024NSScreen_screenByDisplayId
4632N/A(JNIEnv *env, jclass cls, jint displayID)
4632N/A{
4632N/A __block jlong screenPtr = 0L;
4632N/A
4632N/AJNF_COCOA_ENTER(env);
4632N/A
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4632N/A NSArray *screens = [NSScreen screens];
4632N/A for (NSScreen *screen in screens) {
4632N/A NSDictionary *screenInfo = [screen deviceDescription];
4632N/A NSNumber *screenID = [screenInfo objectForKey:@"NSScreenNumber"];
4632N/A if ([screenID intValue] == displayID){
4632N/A CFRetain(screen); // GC
4632N/A screenPtr = ptr_to_jlong(screen);
4632N/A break;
4632N/A }
4632N/A }
4632N/A }];
4632N/A
4632N/AJNF_COCOA_EXIT(env);
4632N/A
4632N/A return screenPtr;
4632N/A}
4639N/A
4639N/A/*
4639N/A * Class: sun_lwawt_macosx_CWrapper$NSColor
4639N/A * Method: clearColor
4639N/A * Signature: ()J
4639N/A */
4639N/AJNIEXPORT jlong JNICALL
4639N/AJava_sun_lwawt_macosx_CWrapper_00024NSColor_clearColor
4639N/A(JNIEnv *env, jclass cls)
4639N/A{
4639N/A __block jlong clearColorPtr = 0L;
4698N/A
4639N/AJNF_COCOA_ENTER(env);
4698N/A
6055N/A [ThreadUtilities performOnMainThreadWaiting:YES block:^(){
4639N/A clearColorPtr = ptr_to_jlong([NSColor clearColor]);
4639N/A }];
4698N/A
4639N/AJNF_COCOA_EXIT(env);
4698N/A
4639N/A return clearColorPtr;
4639N/A}
4639N/A