⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlk.cpp

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 CPP
字号:
/*** tlk.cpp - ** Copyright (c) 1999*      Transvirtual Technologies, Inc.  All rights reserved.** See the file "license.terms" for information on usage and redistribution * of this file. */#define MAIN#include "toolkit.hpp"#include "tlkprops.hpp"voidregisterClasses(){	WNDCLASS	wc;		// generic toplevel class	wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;	wc.lpfnWndProc = WndProc;	wc.cbClsExtra = 0;	wc.cbWndExtra = 0;	wc.hInstance = 0;	wc.hIcon = APPICON;	wc.lpszMenuName = 0;	wc.hCursor = (HCURSOR)0;	wc.hbrBackground = (HBRUSH)0;	wc.lpszClassName = TEXT("window");		RegisterClass ( &wc);		//generic widget class ( used for canvas and panel)	wc.style = CS_OWNDC;	wc.hIcon = (HICON)0;	wc.lpszClassName = TEXT("widget");		RegisterClass ( &wc);}void enterDispatcherLoop() {#if defined(D_LOOP_MODE)	jmethodID initToolkit;	MSG msg;		X->dspTid = GetCurrentThreadId();    initToolkit = JniEnv->GetStaticMethodID( Tlk, "initToolkit", "()V");    JniEnv->CallStaticVoidMethod( Tlk, initToolkit);	    while ( GetMessage( &msg, NULL, 0, 0) == TRUE) {		TranslateMessage( &msg);		DispatchMessage( &msg);	}#endif}/********************************************************************************* exported functions*/extern "C" {		jint __cdecl		Java_java_awt_Toolkit_tlkProperties ( JNIEnv* env, jclass clazz )	{		#ifdef D_LOOP_MODE		return (TLK_NATIVE_DISPATCHER_LOOP | TLK_IS_DISPATCH_EXCLUSIVE );#else		return (TLK_IS_BLOCKING | TLK_IS_DISPATCH_EXCLUSIVE );#endif	}		jboolean __cdecl		Java_java_awt_Toolkit_tlkInit ( JNIEnv* env, jclass clazz, jstring name )	{		X->nBuf = 128;		X->buf = (TCHAR*)AWT_MALLOC( X->nBuf * sizeof(TCHAR));		X->lastHwnd = (HWND)-1;				Tlk = clazz;		JniEnv = env;				registerClasses();		X->wakeUp = CreateWindow( TEXT("window"), TEXT(""), WS_OVERLAPPEDWINDOW, 0, 0, 0, 0,			NULL, NULL, NULL, NULL);		X->display = GetDC( X->wakeUp);		enterDispatcherLoop();				return JNI_TRUE;	}		void __cdecl		Java_java_awt_Toolkit_tlkTerminate ( JNIEnv* env, jclass clazz )	{		DeleteDC( X->display);		if ( X->wakeUp ) {			DestroyWindow( X->wakeUp);			X->wakeUp = 0;		}	}			jstring __cdecl		Java_java_awt_Toolkit_tlkVersion ( JNIEnv* env, jclass clazz )	{#if !defined(UNDER_CE)		return env->NewStringUTF( "Win32");#else		return env->NewStringUTF( "WinCE");#endif	}		jint __cdecl		Java_java_awt_Toolkit_tlkGetResolution ( JNIEnv* env, jclass clazz )	{		return GetDeviceCaps( X->display, LOGPIXELSX );	}		jint __cdecl		Java_java_awt_Toolkit_tlkGetScreenHeight ( JNIEnv* env, jclass clazz )	{		return GetSystemMetrics( SM_CYSCREEN);	}		jint __cdecl		Java_java_awt_Toolkit_tlkGetScreenWidth ( JNIEnv* env, jclass clazz )	{		return GetSystemMetrics( SM_CYSCREEN);	}		jint __cdecl		Java_java_awt_Toolkit_tlkGetMenubarHeight ( JNIEnv* env, jclass clazz )	{		return GetSystemMetrics( SM_CYMENU);	}		jint __cdecl		Java_java_awt_Toolkit_tlkGetScrollbarWidth ( JNIEnv* env, jclass clazz )	{		return GetSystemMetrics( SM_CXVSCROLL);	}		void __cdecl		Java_java_awt_Toolkit_tlkSync ( JNIEnv* env, jclass clazz )	{	}		void __cdecl		Java_java_awt_Toolkit_tlkFlush ( JNIEnv* env, jclass clazz )	{		GFLUSH();	}			void __cdecl		Java_java_awt_Toolkit_tlkBeep ( JNIEnv* env, jclass clazz )	{		BEEP();	}		void __cdecl		Java_java_awt_Toolkit_tlkDisplayBanner ( JNIEnv* env, jclass clazz, jstring banner )	{	}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -