/* * Copyright (c) 1995, 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. */ /* * Motif-specific data structures for AWT Java objects. * */ #ifndef _AWT_P_H_ #define _AWT_P_H_ /* turn on to do event filtering */ #define NEW_EVENT_MODEL /* turn on to only filter keyboard events */ #define KEYBOARD_ONLY_EVENTS #include #include #include #include #include #ifndef HEADLESS #include #endif /* !HEADLESS */ #include "awt.h" #include "awt_util.h" #include "color.h" #include "colordata.h" #include "gdefs.h" #ifndef HEADLESS #ifndef min #define min(a,b) ((a) <= (b)? (a):(b)) #endif #ifndef max #define max(a,b) ((a) >= (b)? (a):(b)) #endif #endif /* !HEADLESS */ #define RepaintPending_NONE 0 #define RepaintPending_REPAINT (1 << 0) #define RepaintPending_EXPOSE (1 << 1) #define LOOKUPSIZE 32 #ifndef HEADLESS typedef XRenderPictFormat * XRenderFindVisualFormatFunc (Display *dpy, _Xconst Visual *visual); typedef struct _AwtGraphicsConfigData { int awt_depth; Colormap awt_cmap; XVisualInfo awt_visInfo; int awt_num_colors; awtImageData *awtImage; int (*AwtColorMatch)(int, int, int, struct _AwtGraphicsConfigData *); XImage *monoImage; Pixmap monoPixmap; /* Used in X11TextRenderer_md.c */ int monoPixmapWidth; /* Used in X11TextRenderer_md.c */ int monoPixmapHeight;/* Used in X11TextRenderer_md.c */ GC monoPixmapGC; /* Used in X11TextRenderer_md.c */ int pixelStride; /* Used in X11SurfaceData.c */ ColorData *color_data; struct _GLXGraphicsConfigInfo *glxInfo; int isTranslucencySupported; /* Uses Xrender to find this out. */ XRenderPictFormat renderPictFormat; /*Used only if translucency supported*/ } AwtGraphicsConfigData; typedef AwtGraphicsConfigData* AwtGraphicsConfigDataPtr; typedef struct _AwtScreenData { int numConfigs; Window root; unsigned long whitepixel; unsigned long blackpixel; AwtGraphicsConfigDataPtr defaultConfig; AwtGraphicsConfigDataPtr *configs; } AwtScreenData; typedef AwtScreenData* AwtScreenDataPtr; #define W_GRAVITY_INITIALIZED 1 #define W_IS_EMBEDDED 2 typedef struct awtFontList { char *xlfd; int index_length; int load; char *charset_name; XFontStruct *xfont; } awtFontList; struct FontData { int charset_num; awtFontList *flist; XFontSet xfs; /* for TextField & TextArea */ XFontStruct *xfont; /* Latin1 font */ }; extern struct FontData *awtJNI_GetFontData(JNIEnv *env,jobject font, char **errmsg); extern AwtGraphicsConfigDataPtr getDefaultConfig(int screen); extern AwtScreenDataPtr getScreenData(int screen); #endif /* !HEADLESS */ /* allocated and initialize a structure */ #define ZALLOC(T) ((struct T *)calloc(1, sizeof(struct T))) #ifndef HEADLESS #define XDISPLAY awt_display; extern int awt_allocate_colors(AwtGraphicsConfigDataPtr); extern void awt_allocate_systemcolors(XColor *, int, AwtGraphicsConfigDataPtr); extern void awt_allocate_systemrgbcolors(jint *, int, AwtGraphicsConfigDataPtr); extern int awtJNI_GetColor(JNIEnv *, jobject); extern int awtJNI_GetColorForVis (JNIEnv *, jobject, AwtGraphicsConfigDataPtr); extern jobject awtJNI_GetColorModel(JNIEnv *, AwtGraphicsConfigDataPtr); extern void awtJNI_CreateColorData (JNIEnv *, AwtGraphicsConfigDataPtr, int lock); #endif /* !HEADLESS */ #endif /* _AWT_P_H_ */