|
Java example source code file (awt_Object.h)
The awt_Object.h Java example source code/* * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this * particular file as subject to the "Classpath" exception as provided * by Oracle in the LICENSE file that accompanied this code. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ #ifndef AWT_OBJECT_H #define AWT_OBJECT_H #include "awt.h" #include "awt_Toolkit.h" #include "java_awt_Event.h" #include "java_awt_AWTEvent.h" #include "sun_awt_windows_WObjectPeer.h" /************************************************************************ * AwtObject class */ class AwtObject { public: class ExecuteArgs { public: UINT cmdId; LPARAM param1; LPARAM param2; LPARAM param3; LPARAM param4; }; /* sun.awt.windows.WObjectPeer field and method ids */ static jfieldID pDataID; static jfieldID destroyedID; static jfieldID targetID; static jmethodID getPeerForTargetMID; static jclass wObjectPeerClass; static jfieldID createErrorID; AwtObject(); virtual ~AwtObject(); // Frees all the resources used by this object and then sends a message to TT to delete it. // After this method has been called, this object must not be used in any way. virtual void Dispose(); // Static method to be called from JNI methods to dispose AwtObject // specified by jobject static void _Dispose(jobject self); // Static method to be called from JNI methods to dispose AwtObject // specified by pData static void _Dispose(PDATA pData); INLINE CriticalSection& GetLock() { return m_Lock; } // Return the associated AWT peer or target object. INLINE jobject GetPeer(JNIEnv *env) { return m_peerObject; } INLINE jobject GetTarget(JNIEnv *env) { jobject peer = GetPeer(env); if (peer != NULL) { return env->GetObjectField(peer, AwtObject::targetID); } else { return NULL; } } INLINE jobject GetTargetAsGlobalRef(JNIEnv *env) { jobject localRef = GetTarget(env); if (localRef == NULL) { return NULL; } jobject globalRef = env->NewGlobalRef(localRef); env->DeleteLocalRef(localRef); return globalRef; } // Return the peer associated with some target static jobject GetPeerForTarget(JNIEnv *env, jobject target); // Java callback routines // Invoke a callback on the java peer object asynchronously void DoCallback(const char* methodName, const char* methodSig, ...); // Allocate and initialize a new event, and post it to the peer's // target object. No response is expected from the target. void SendEvent(jobject event); INLINE void EnableCallbacks(BOOL e) { m_callbacksEnabled = e; } // Execute any code associated with a command ID -- only classes with // DoCommand() defined should associate their instances with cmdIDs. virtual void DoCommand(void) { DASSERT(FALSE); } // execute given code on Windows message-pump thread static LRESULT WinThreadExec(jobject peerObject, UINT cmdId, LPARAM param1 = 0L, LPARAM param2 = 0L, LPARAM param3 = 0L, LPARAM param4 = 0L); // callback function to execute code on Windows message-pump thread virtual LRESULT WinThreadExecProc(AwtObject::ExecuteArgs * args); // overridden in AwtComponent to return FALSE if any messages // are being processed by this component virtual BOOL CanBeDeleted() { return TRUE; } protected: jobject m_peerObject; BOOL m_callbacksEnabled; private: CriticalSection m_Lock; }; #endif // AWT_OBJECT_H Other Java examples (source code examples)Here is a short list of links related to this Java awt_Object.h source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.