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

📄 toolkit.h

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 H
字号:
/** * nano-X AWT backend for Kaffe. * * Copyright (c) 2001 *	Exor International Inc. All rights reserved. * * Copyright (c) 2001 *	Sinby Corporatin, All rights reserved. * * Copyright (c) 2005 *	Kaffe.org contributors, see ChangeLog for details.  All rights reserved. * * See the file "license.terms" for information on usage and redistribution * of this file. */#ifndef __toolkit_h#define __toolkit_h#define MWINCLUDECOLORS#include <nano-X.h>#include "awt_const.h"#include "gtypes.h"#include "gc.h"#include "thread.h"#include "debug.h"typedef struct _TLKWindow {	GR_WINDOW_ID wid;	GR_WINDOW_ID owner;	unsigned int flags;} TLKWindow;typedef unsigned long TLK_GRAPHICS_ID;#define TLK_GR_EVENT_MASK_ALL (GR_EVENT_MASK_ALL & ~( GR_EVENT_MASK_MOUSE_MOTION | GR_EVENT_MASK_CHLD_UPDATE | GR_EVENT_MASK_TIMEOUT | GR_EVENT_MASK_SCREENSAVER| GR_EVENT_TYPE_CLIENT_DATA | GR_EVENT_TYPE_SELECTION_CHANGED))typedef struct _TLKGraphics {	int flags;	GR_ID target;	int targetType;	GR_GC_ID gc;	GR_REGION_ID region;	unsigned int off_x;	unsigned int off_y;	GR_COLOR fg_color;	GR_COLOR bg_color;	GR_COLOR xor_color;	TLK_GRAPHICS_ID gid;	unsigned int magicNo;} TLKGraphics;#define TLK_GRAPHICS_FLAG_XOR_MODE	0x0001#define TLK_GRAPHICS_MAGIC_NO	0x47524150 // GRAP#define TLK_TARGET_TYPE_WINDOW		0#define TLK_TARGET_TYPE_IMAGE		1#define TLK_TARGET_TYPE_GRAPHICS	2#define TLK_GET_GRAPHICS(gid)static inline TLKGraphics *tlk_get_graphics(TLK_GRAPHICS_ID gid){	TLKGraphics *gp;	gp = (TLKGraphics *)gid;	if ( gp == NULL ) {		return NULL;	}	if ( gid != gp->gid ) {		return NULL;	}	if ( gp->magicNo != TLK_GRAPHICS_MAGIC_NO ) {		return NULL;	}	return gp;}typedef struct _DecoInset {	int left;	int top;	int right;	int bottom;	int guess;} DecoInset;           typedef struct _Toolkit {	int         maxWindowN;	int         windowN;	TLKWindow	*windowsP;	DecoInset	frameInsets;	DecoInset	dialogInsets;} Toolkit;#define MAX_WINDOW_N 32extern Toolkit nanoX;/** * heap wrapper macros */static inline void* _awt_malloc_wrapper ( size_t size ){  void *adr;  enterUnsafeRegion();  adr = malloc( size);  leaveUnsafeRegion();  DBG( AWT_MEM, printf("malloc: %zi -> %p\n", size, adr));  return adr;}static inline void* _awt_calloc_wrapper ( size_t n, size_t size ){  void *adr;  enterUnsafeRegion();  adr = calloc( n, size);  leaveUnsafeRegion();  DBG( AWT_MEM, printf("calloc: %zi,%zi -> %p\n", n, size, adr));  return adr;}static inline void _awt_free_wrapper ( void* adr ){  DBG( AWT_MEM, printf("free: %p\n", adr));  enterUnsafeRegion();  free( adr);  leaveUnsafeRegion();}#define TLK_MALLOC(_n) \	_awt_malloc_wrapper(_n)#define TLK_CALLOC(_n,_sz) \	_awt_calloc_wrapper(_n, _sz)#define TLK_FREE(_adr) \	_awt_free_wrapper(_adr);#define TLK_SignalError SignalErrorextern void SignalError(const char *, const char *);#define TLK_IS_BLOCKING				1#define TLK_IS_DISPATCH_EXCLUSIVE	2#define TLK_NEEDS_FLUSH				4#define TLK_NATIVE_DISPATCHER_LOOP	8#define TLK_EXTERNAL_DECO			16#define TLK_FONT_PLAIN	0#define TLK_FONT_BOLD	1#define TLK_FONT_ITAILC	2#define TLK_CURSOR_DEFAULT		0#define TLK_CURSOR_CROSSHAIR	1#define TLK_CURSOR_TEXT			2#define TLK_CURSOR_WAIT			3#define TLK_CURSOR_SW_RESIZE	4#define TLK_CURSOR_SE_RESIZE	5#define TLK_CURSOR_NW_RESIZE	6#define TLK_CURSOR_NE_RESIZE	7#define TLK_CURSOR_N_RESIZE		8#define TLK_CURSOR_S_RESIZE		9#define TLK_CURSOR_W_RESIZE		10#define TLK_CURSOR_E_RESIZE		11#define TLK_CURSOR_HAND			12#define TLK_CURSOR_MOVE			13#define TLK_SOURCE_NONE       0x00#define TLK_SOURCE_FRAME      0x01#define TLK_SOURCE_WINDOW     0x02#define TLK_SOURCE_DIALOG     0x04#define TLK_SOURCE_MAPPED     0x08#define TLK_SOURCE_DESTROYED  0x10#define TLK_WINDOW_REGISTER 0x8000#define getCachedSourceIndex getSourceIndexstatic inline int getSourceIndex(GR_WINDOW_ID wid){	int i;	for ( i = 0; i < nanoX.maxWindowN; i++ ) {		if (( nanoX.windowsP[i].flags != TLK_SOURCE_NONE ) &&			( nanoX.windowsP[i].wid == wid )) {			return i;		}	}	return -1;}static inline int getFreeSourceIndex(void) {	int i;	for ( i = nanoX.windowN; i < nanoX.maxWindowN; i++ ) {		if ( nanoX.windowsP[i].flags == TLK_SOURCE_NONE ) {			return i;		}	}	return -1;}static inline intregisterSource(GR_WINDOW_ID wid, GR_WINDOW_ID owner, int flags){	int i;	i = getFreeSourceIndex();	if ( i >= 0 ) {		nanoX.windowsP[i].wid = wid;		nanoX.windowsP[i].owner = owner;		nanoX.windowsP[i].flags = flags;		nanoX.windowN++;		return i;	} else {		return -1;	}}#define JAVA_RGB(_r,_g,_b)  (_r<<16 | _g<<8 | _b)#define JAVA_RED(_rgb)      ((_rgb & 0xff0000) >> 16)#define JAVA_GREEN(_rgb)    ((_rgb & 0x00ff00) >> 8)#define JAVA_BLUE(_rgb)      (_rgb & 0x0000ff)#endif /* __toolkit_h */

⌨️ 快捷键说明

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