📄 toolkit.h
字号:
/** * toolkit.h - * * Copyright (c) 1998 * Transvirtual Technologies, Inc. All rights reserved. * * See the file "license.terms" for information on usage and redistribution * of this file. */#ifndef __toolkit_h#define __toolkit_h#ifdef __cplusplus#define HAVE_BOOL#endif#include "defs.h"BEGIN_C_DECLS#include "config.h"#include "config-std.h"#include "config-mem.h"#include "config-setjmp.h"//#include <X11/Xlib.h>//#include <X11/Xutil.h>#undef USE_XSHM_EXTENSION#define XShmGetImage(A,B,C,D,E,F) 0#define XShmPutImage(A,B,C,D,E,F,G,H,I,J,K) 0#define XShmSegmentInfo void#include <jni.h>#include <native.h>#include "../../../../kaffe/kaffevm/gtypes.h"#include "../../../../kaffe/kaffevm/gc.h"#include "../../../../kaffe/kaffevm/debug.h"#include "../../../../kaffe/kaffevm/thread.h"#define DBG_ACTION(A,B)#define AWT_DBG(X) printf("Native AWT ---->"); X#include <fcntl.h>/******************************************************************************* * image handling structures *///struct QImage;//struct QPixmap;typedef struct _AlphaImage { /* storage for full alpha channel images */ unsigned char *buf; int width, height;} AlphaImage;#define NO_SHM 0 /* we don't have MIT-Shm support in the X server */#define USE_SHM 1 /* we have support, use it */#define SUSPEND_SHM 2 /* we have support, but it ran out of space */typedef struct _Image { QPixmap *qpm; QPixmap *qpmScaled; QImage *qImg; QImage *qImg_AlphaMask; //Pixmap pix; /* pixmap for screen images */ //XImage *xImg; /* "real" image */ //XShmSegmentInfo *shmiImg; /* Shm info for shared mem real image */ //XImage *xMask; /* mask image for reduced alpha (on/off) images */ //XShmSegmentInfo *shmiMask; /* Shm info for shared mem mask image */ AlphaImage *alpha; /* full alpha channel (for alpha != 0x00 or 0xff) */ int trans; /* transparent index */ int left, top; /* some GIF movies require drawing offsets */ int width, height; /* we need this in case we are a pixmap */ short latency; /* between image flips, for "gif-movies" */ short frame; /* frame number for animations */ struct _Image *next; /* next movie-frame */} Image;/******************************************************************************* * structure to store guessed and computed Frame/Dialog insets (titlebar, borders) */typedef struct _DecoInset { int left; int top; int right; int bottom; char guess;} DecoInset; /******************************************************************************* * We use our own structure instead of directly storing X window handles, to * enable us to attach and query attributes (owners, states, flags..) to particular * X window instances. We could do this by means of X properties, but this might * end up in costly round-trips and even more memory (than we trade for speed here). * It's a must have for our popup key/focus event forwarding (see wnd.c) */typedef struct _WindowRec { void* w; unsigned flags; void* owner;} WindowRec;/******************************************************************************* * this is the master AWT structure (singleton object), glueing it al together */typedef struct _Toolkit {// Display *dsp;// Window root; char *buf; unsigned int nBuf; int colorMode; /* refers to CM_xx constants, not X visuals */ int shm; int shmThreshold; int cursors[14]; DecoInset frameInsets; DecoInset dialogInsets; //XEvent event; char preFetched; char blocking; int pending; int evtId; fd_set rfds; /* used to select-check availability of X input (pthreads) */ void* lastWindow; int srcIdx; WindowRec *windows; int nWindows; void* cbdOwner; void* wakeUp; void* focus; /* this is the real focus, if it is in our process */ void* focusFwd; /* this might be a (owned) window we forward the focus to */ int fwdIdx; /* cached index of the focus forward window */} Toolkit;/********************************************************************* Exported JNI Functions *********************************************************************//* Clipboard */typedef void ClipBoard;jobject Java_java_awt_Toolkit_cbdInitClipboard ( JNIEnv* env, jclass clazz );void Java_java_awt_Toolkit_cbdFreeClipboard ( JNIEnv* env, jclass clazz, ClipBoard* cbd);jboolean Java_java_awt_Toolkit_cbdSetOwner ( JNIEnv* env, jclass clazz, ClipBoard* cbd);jobject Java_java_awt_Toolkit_cbdGetContents ( JNIEnv* env, jclass clazz, ClipBoard* cbd);/* Color */jint Java_java_awt_Toolkit_clrGetPixelValue ( JNIEnv* env, jclass clazz, jint rgb);void Java_java_awt_Toolkit_clrSetSystemColors ( JNIEnv* env, jclass clazz, jintArray sysClrs);jlong Java_java_awt_Toolkit_clrBright ( JNIEnv* env, jclass clazz, jint rgb);jlong Java_java_awt_Toolkit_clrDark ( JNIEnv* env, jclass clazz, jint rgb);jobject Java_java_awt_Toolkit_clrGetColorModel ( JNIEnv* env, jclass clazz);/* Event */jobject Java_java_awt_Toolkit_evtInit ( JNIEnv* env, jclass clazz);jobject Java_java_awt_Toolkit_evtGetNextEvent ( JNIEnv* env, jclass clazz);jobject Java_java_awt_Toolkit_evtPeekEvent ( JNIEnv* env, jclass clazz);jobject Java_java_awt_Toolkit_evtPeekEventId ( JNIEnv* env, jclass clazz, jint id);void Java_java_awt_Toolkit_evtWakeup ( JNIEnv* env, jclass clazz);void Java_java_awt_Toolkit_evtSendWMEvent ( JNIEnv* env, jclass clazz, jobject wmEvt);jint Java_java_awt_Toolkit_evtRegisterSource ( JNIEnv* env, jclass clazz, void* wnd);jint Java_java_awt_Toolkit_evtUnregisterSource ( JNIEnv* env, jclass clazz, void* wnd);/* Font */class QFont;void* Java_java_awt_Toolkit_fntInitFont ( JNIEnv* env, jclass clazz, jstring jSpec, jint style, jint size);void Java_java_awt_Toolkit_fntFreeFont ( JNIEnv* env, jclass clazz, QFont* fs);void* Java_java_awt_Toolkit_fntInitFontMetrics ( JNIEnv* env, jclass clazz, void* fs);void Java_java_awt_Toolkit_fntFreeFontMetrics ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetAscent ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetDescent ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetFixedWidth ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetHeight ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetLeading ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetMaxAdvance ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetMaxAscent ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntGetMaxDescent ( JNIEnv* env, jclass clazz, QFont* fs);jboolean Java_java_awt_Toolkit_fntIsWideFont ( JNIEnv* env, jclass clazz, QFont* fs);jobject Java_java_awt_Toolkit_fntGetWidths ( JNIEnv* env, jclass clazz, QFont* fs);jint Java_java_awt_Toolkit_fntBytesWidth ( JNIEnv* env, jclass clazz, QFont* fs, jbyteArray jBytes, jint off, jint len);jint Java_java_awt_Toolkit_fntCharWidth ( JNIEnv* env, jclass clazz, QFont* fs, jchar jChar);jint Java_java_awt_Toolkit_fntCharsWidth ( JNIEnv* env, jclass clazz, QFont* fs, jcharArray jChars, jint off, jint len);jint Java_java_awt_Toolkit_fntStringWidth ( JNIEnv* env, jclass clazz, QFont* fs, jstring jStr);/* Graphics *///struct QPainter;//struct QWidget;//class QPaintDevice;typedef struct { //GC gc; //Drawable drw; QPaintDevice *drw; QPainter *painter; int fg; int bg; char xor_mode; int xclr; int x0; int y0;} Graphics;void* Java_java_awt_Toolkit_graInitGraphics ( JNIEnv* env, jclass clazz, Graphics* gr, jobject tgt, jint tgtType, jint xOff, jint yOff, jint xClip, jint yClip, jint wClip, jint hClip, jobject fnt, jint fg, jint bg, jboolean blank);void Java_java_awt_Toolkit_graFreeGraphics ( JNIEnv* env, jclass clazz, Graphics* gr);void Java_java_awt_Toolkit_graCopyArea ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height, jint xDelta, jint yDelta);void Java_java_awt_Toolkit_graClearRect ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height);void Java_java_awt_Toolkit_graDrawBytes ( JNIEnv* env, jclass clazz, Graphics* gr, jbyteArray jBytes, jint offset, jint len, jint x, jint y);void Java_java_awt_Toolkit_graDrawChars ( JNIEnv* env, jclass clazz, Graphics* gr, jcharArray jChars, jint offset, jint len, jint x, jint y);void Java_java_awt_Toolkit_graDrawString ( JNIEnv* env, jclass clazz, Graphics* gr, jstring str, jint x, jint y);void Java_java_awt_Toolkit_graDrawLine ( JNIEnv* env, jclass clazz, Graphics* gr, jint x1, jint y1, jint x2, jint y2);void Java_java_awt_Toolkit_graDrawArc ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height, jint startAngle, jint arcAngle);void Java_java_awt_Toolkit_graFillArc ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height, jint startAngle, jint arcAngle);void Java_java_awt_Toolkit_graDrawOval ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height);void Java_java_awt_Toolkit_graFillOval ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height);void Java_java_awt_Toolkit_graDrawPolygon ( JNIEnv* env, jclass clazz, Graphics* gr, jintArray xPoints, jintArray yPoints, jint nPoints);void Java_java_awt_Toolkit_graDrawPolyline ( JNIEnv* env, jclass clazz, Graphics* gr, jintArray xPoints, jintArray yPoints, jint nPoints);void Java_java_awt_Toolkit_graFillPolygon ( JNIEnv* env, jclass clazz, Graphics* gr, jintArray xPoints, jintArray yPoints, jint nPoints);void Java_java_awt_Toolkit_graDrawRect ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height);void Java_java_awt_Toolkit_graFillRect ( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height);void Java_java_awt_Toolkit_graDrawRoundRect( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height, jint wArc, jint hArc);void Java_java_awt_Toolkit_graFillRoundRect( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height, jint wArc, jint hArc);void Java_java_awt_Toolkit_graDraw3DRect( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height, jboolean raised, jint rgb);void Java_java_awt_Toolkit_graFill3DRect( JNIEnv* env, jclass clazz, Graphics* gr, jint x, jint y, jint width, jint height, jboolean raised, jint rgb);void Java_java_awt_Toolkit_graAddClip ( JNIEnv* env, jclass clazz, Graphics* gr, jint xClip, jint yClip, jint wClip, jint hClip);void Java_java_awt_Toolkit_graSetClip ( JNIEnv* env, jclass clazz, Graphics* gr, jint xClip, jint yClip, jint wClip, jint hClip);void Java_java_awt_Toolkit_graSetColor ( JNIEnv* env, jclass clazz, Graphics* gr, jint clr);void Java_java_awt_Toolkit_graSetBackColor ( JNIEnv* env, jclass clazz, Graphics* gr, jint clr);void Java_java_awt_Toolkit_graSetFont ( JNIEnv* env, jclass clazz, Graphics* gr, jobject fnt);void Java_java_awt_Toolkit_graSetOffset ( JNIEnv* env, jclass clazz, Graphics* gr, jint xOff, jint yOff);void Java_java_awt_Toolkit_graSetPaintMode ( JNIEnv* env, jclass clazz, Graphics* gr);void Java_java_awt_Toolkit_graSetXORMode ( JNIEnv* env, jclass clazz, Graphics* gr, jint xorClr);void Java_java_awt_Toolkit_graSetVisible ( JNIEnv* env, jclass clazz, Graphics* gr, jint isVisible);void Java_java_awt_Toolkit_graDrawImage ( JNIEnv* env, jclass clazz, Graphics* gr, Image* img, jint srcX, jint srcY, jint dstX, jint dstY, jint width, jint height, jint bgval);void Java_java_awt_Toolkit_graDrawImageScaled ( JNIEnv* env, jclass clazz, Graphics* gr, Image* img, jint dx0, jint dy0, jint dx1, jint dy1, jint sx0, jint sy0, jint sx1, jint sy1, jint bgval); /* Image */void* Java_java_awt_Toolkit_imgCreateImage ( JNIEnv* env, jclass clazz, jint width, jint height);void* Java_java_awt_Toolkit_imgCreateScreenImage ( JNIEnv* env, jclass clazz, jint width, jint height);void Java_java_awt_Toolkit_imgSetIdxPels ( JNIEnv* env, jclass clazz, Image * img, jint x, jint y, jint w, jint h, jintArray clrMap, jbyteArray idxPels, jint trans, jint off, jint scan);void Java_java_awt_Toolkit_imgSetRGBPels ( JNIEnv* env, jclass clazz, Image * img, jint x, jint y, jint w, jint h, jintArray rgbPels, jint off, jint scan);void Java_java_awt_Toolkit_imgComplete( JNIEnv* env, jclass clazz, Image * img, jint status);void Java_java_awt_Toolkit_imgFreeImage( JNIEnv* env, jclass clazz, Image * img);void *Java_java_awt_Toolkit_imgCreateScaledImage ( JNIEnv* env, jclass clazz, Image* img, int width, int height);void Java_java_awt_Toolkit_imgProduceImage ( JNIEnv* env, jclass clazz, jobject producer, Image* img);void* Java_java_awt_Toolkit_imgCreateFromFile ( JNIEnv* env, jclass clazz, jstring fileName);void* Java_java_awt_Toolkit_imgCreateFromData ( JNIEnv* env, jclass clazz, jbyteArray jbuffer, jint off, jint len);void* Java_java_awt_Toolkit_imgSetFrame ( JNIEnv* env, jclass clazz,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -