8228676: Cleanup the native code related to fonts on Unix
Reviewed-by: jdv
This commit is contained in:
parent
876251f840
commit
1d4f4016ee
src/java.desktop/unix/native
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2019, 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
|
||||
@ -336,19 +336,6 @@ alloc_col(Display *dpy, Colormap cm, int r, int g, int b, int pixel,
|
||||
|
||||
return awt_color_match(r, g, b, awt_data);
|
||||
}
|
||||
|
||||
void
|
||||
awt_allocate_systemcolors(XColor *colorsPtr, int num_pixels, AwtGraphicsConfigDataPtr awtData) {
|
||||
int i;
|
||||
int r, g, b, pixel;
|
||||
|
||||
for (i=0; i < num_pixels; i++) {
|
||||
r = colorsPtr[i].red >> 8;
|
||||
g = colorsPtr[i].green >> 8;
|
||||
b = colorsPtr[i].blue >> 8;
|
||||
pixel = alloc_col(awt_display, awtData->awt_cmap, r, g, b, -1, awtData);
|
||||
}
|
||||
}
|
||||
#endif /* !HEADLESS */
|
||||
|
||||
void
|
||||
@ -1276,12 +1263,6 @@ jobject awtJNI_GetColorModel(JNIEnv *env, AwtGraphicsConfigDataPtr aData)
|
||||
extern jfieldID colorValueID;
|
||||
|
||||
#ifndef HEADLESS
|
||||
int awtJNI_GetColor(JNIEnv *env,jobject this)
|
||||
{
|
||||
/* REMIND: should not be defaultConfig. */
|
||||
return awtJNI_GetColorForVis (env, this, getDefaultConfig(DefaultScreen(awt_display)));
|
||||
}
|
||||
|
||||
int awtJNI_GetColorForVis (JNIEnv *env,jobject this, AwtGraphicsConfigDataPtr awt_data)
|
||||
{
|
||||
int col;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2019, 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
|
||||
@ -23,51 +23,10 @@
|
||||
* questions.
|
||||
*/
|
||||
|
||||
#ifndef HEADLESS
|
||||
|
||||
#include "awt_p.h"
|
||||
#include <string.h>
|
||||
#include "java_awt_Component.h"
|
||||
#include "java_awt_Font.h"
|
||||
#include "java_awt_FontMetrics.h"
|
||||
#include "sun_awt_X11GraphicsEnvironment.h"
|
||||
#include "sun_awt_FontDescriptor.h"
|
||||
#include "sun_awt_PlatformFont.h"
|
||||
|
||||
#include "awt_Font.h"
|
||||
|
||||
#include "java_awt_Dimension.h"
|
||||
#include "Disposer.h"
|
||||
#endif /* !HEADLESS */
|
||||
#include <jni.h>
|
||||
#ifndef HEADLESS
|
||||
#include <jni_util.h>
|
||||
|
||||
#define defaultXLFD "-*-helvetica-*-*-*-*-12-*-*-*-*-*-iso8859-1"
|
||||
|
||||
struct FontIDs fontIDs;
|
||||
struct PlatformFontIDs platformFontIDs;
|
||||
|
||||
static void pDataDisposeMethod(JNIEnv *env, jlong pData);
|
||||
|
||||
/* #define FONT_DEBUG 2 */
|
||||
/* 1- print failures, 2- print all, 3- terminate on failure */
|
||||
#if FONT_DEBUG
|
||||
static XFontStruct *XLoadQueryFontX(Display *display, char *name)
|
||||
{
|
||||
XFontStruct *result = NULL;
|
||||
result = XLoadQueryFont(display, name);
|
||||
#if FONT_DEBUG < 2
|
||||
if (result == NULL)
|
||||
#endif
|
||||
fprintf(stderr, "XLoadQueryFont(\"%s\") -> 0x%x.\n", name, result);
|
||||
#if FONT_DEBUG >= 3
|
||||
if (result == NULL)
|
||||
exit(-1);
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
#define XLoadQueryFont XLoadQueryFontX
|
||||
#endif
|
||||
#endif /* !HEADLESS */
|
||||
|
||||
/*
|
||||
* Class: java_awt_Font
|
||||
@ -79,28 +38,9 @@ static XFontStruct *XLoadQueryFontX(Display *display, char *name)
|
||||
to initialize the fieldIDs for fields that may be accessed from C */
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_java_awt_Font_initIDs
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
#ifndef HEADLESS
|
||||
CHECK_NULL(fontIDs.pData = (*env)->GetFieldID(env, cls, "pData", "J"));
|
||||
CHECK_NULL(fontIDs.style = (*env)->GetFieldID(env, cls, "style", "I"));
|
||||
CHECK_NULL(fontIDs.size = (*env)->GetFieldID(env, cls, "size", "I"));
|
||||
CHECK_NULL(fontIDs.getPeer = (*env)->GetMethodID(env, cls, "getFontPeer",
|
||||
"()Ljava/awt/peer/FontPeer;"));
|
||||
CHECK_NULL(fontIDs.getFamily = (*env)->GetMethodID(env, cls, "getFamily_NoClientCode",
|
||||
"()Ljava/lang/String;"));
|
||||
#endif /* !HEADLESS */
|
||||
Java_java_awt_Font_initIDs(JNIEnv *env, jclass cls) {
|
||||
}
|
||||
|
||||
#ifndef HEADLESS
|
||||
/* fieldIDs for FontDescriptor fields that may be accessed from C */
|
||||
static struct FontDescriptorIDs {
|
||||
jfieldID nativeName;
|
||||
jfieldID charsetName;
|
||||
} fontDescriptorIDs;
|
||||
#endif /* !HEADLESS */
|
||||
|
||||
/*
|
||||
* Class: sun_awt_FontDescriptor
|
||||
* Method: initIDs
|
||||
@ -112,15 +52,7 @@ static struct FontDescriptorIDs {
|
||||
that may be accessed from C */
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_FontDescriptor_initIDs
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
#ifndef HEADLESS
|
||||
CHECK_NULL(fontDescriptorIDs.nativeName =
|
||||
(*env)->GetFieldID(env, cls, "nativeName", "Ljava/lang/String;"));
|
||||
CHECK_NULL(fontDescriptorIDs.charsetName =
|
||||
(*env)->GetFieldID(env, cls, "charsetName", "Ljava/lang/String;"));
|
||||
#endif /* !HEADLESS */
|
||||
Java_sun_awt_FontDescriptor_initIDs(JNIEnv *env, jclass cls) {
|
||||
}
|
||||
|
||||
/*
|
||||
@ -134,354 +66,5 @@ Java_sun_awt_FontDescriptor_initIDs
|
||||
that may be accessed from C */
|
||||
|
||||
JNIEXPORT void JNICALL
|
||||
Java_sun_awt_PlatformFont_initIDs
|
||||
(JNIEnv *env, jclass cls)
|
||||
{
|
||||
#ifndef HEADLESS
|
||||
CHECK_NULL(platformFontIDs.componentFonts =
|
||||
(*env)->GetFieldID(env, cls, "componentFonts",
|
||||
"[Lsun/awt/FontDescriptor;"));
|
||||
CHECK_NULL(platformFontIDs.fontConfig =
|
||||
(*env)->GetFieldID(env,cls, "fontConfig",
|
||||
"Lsun/awt/FontConfiguration;"));
|
||||
CHECK_NULL(platformFontIDs.makeConvertedMultiFontString =
|
||||
(*env)->GetMethodID(env, cls, "makeConvertedMultiFontString",
|
||||
"(Ljava/lang/String;)[Ljava/lang/Object;"));
|
||||
CHECK_NULL(platformFontIDs.makeConvertedMultiFontChars =
|
||||
(*env)->GetMethodID(env, cls, "makeConvertedMultiFontChars",
|
||||
"([CII)[Ljava/lang/Object;"));
|
||||
#endif /* !HEADLESS */
|
||||
Java_sun_awt_PlatformFont_initIDs(JNIEnv *env, jclass cls) {
|
||||
}
|
||||
|
||||
#ifndef HEADLESS
|
||||
XFontStruct *
|
||||
loadFont(Display * display, char *name, int32_t pointSize)
|
||||
{
|
||||
XFontStruct *f = NULL;
|
||||
|
||||
/* try the exact xlfd name in font configuration file */
|
||||
f = XLoadQueryFont(display, name);
|
||||
if (f != NULL) {
|
||||
return f;
|
||||
}
|
||||
|
||||
/*
|
||||
* try nearly font
|
||||
*
|
||||
* 1. specify FAMILY_NAME, WEIGHT_NAME, SLANT, POINT_SIZE,
|
||||
* CHARSET_REGISTRY and CHARSET_ENCODING.
|
||||
* 2. change POINT_SIZE to PIXEL_SIZE
|
||||
* 3. change FAMILY_NAME to *
|
||||
* 4. specify only PIXEL_SIZE and CHARSET_REGISTRY/ENCODING
|
||||
* 5. change PIXEL_SIZE +1/-1/+2/-2...+4/-4
|
||||
* 6. default font pattern
|
||||
*/
|
||||
{
|
||||
/*
|
||||
* This code assumes the name contains exactly 14 '-' delimiter.
|
||||
* If not use default pattern.
|
||||
*/
|
||||
int32_t i, length, pixelSize;
|
||||
Boolean useDefault = FALSE;
|
||||
|
||||
char buffer[BUFSIZ], buffer2[BUFSIZ];
|
||||
char *family = NULL, *style = NULL, *slant = NULL, *encoding = NULL;
|
||||
char *start = NULL, *end = NULL;
|
||||
|
||||
if (strlen(name) > BUFSIZ - 1) {
|
||||
useDefault = TRUE;
|
||||
} else {
|
||||
strcpy(buffer, name);
|
||||
}
|
||||
|
||||
#define NEXT_HYPHEN\
|
||||
start = end + 1;\
|
||||
end = strchr(start, '-');\
|
||||
if (end == NULL) {\
|
||||
useDefault = TRUE;\
|
||||
break;\
|
||||
}\
|
||||
*end = '\0'
|
||||
|
||||
do {
|
||||
end = buffer;
|
||||
|
||||
/* skip FOUNDRY */
|
||||
NEXT_HYPHEN;
|
||||
|
||||
/* set FAMILY_NAME */
|
||||
NEXT_HYPHEN;
|
||||
family = start;
|
||||
|
||||
/* set STYLE_NAME */
|
||||
NEXT_HYPHEN;
|
||||
style = start;
|
||||
|
||||
/* set SLANT */
|
||||
NEXT_HYPHEN;
|
||||
slant = start;
|
||||
|
||||
/* skip SETWIDTH_NAME, ADD_STYLE_NAME, PIXEL_SIZE
|
||||
POINT_SIZE, RESOLUTION_X, RESOLUTION_Y, SPACING
|
||||
and AVERAGE_WIDTH */
|
||||
NEXT_HYPHEN;
|
||||
NEXT_HYPHEN;
|
||||
NEXT_HYPHEN;
|
||||
NEXT_HYPHEN;
|
||||
NEXT_HYPHEN;
|
||||
NEXT_HYPHEN;
|
||||
NEXT_HYPHEN;
|
||||
NEXT_HYPHEN;
|
||||
|
||||
/* set CHARSET_REGISTRY and CHARSET_ENCODING */
|
||||
encoding = end + 1;
|
||||
}
|
||||
while (0);
|
||||
|
||||
#define TRY_LOAD\
|
||||
f = XLoadQueryFont(display, buffer2);\
|
||||
if (f != NULL) {\
|
||||
strcpy(name, buffer2);\
|
||||
return f;\
|
||||
}
|
||||
|
||||
if (!useDefault) {
|
||||
char *altstyle = NULL;
|
||||
|
||||
/* Regular is the style for TrueType fonts -- Type1, F3 use roman */
|
||||
if (strcmp(style, "regular") == 0) {
|
||||
altstyle = "roman";
|
||||
}
|
||||
#if defined(__linux__) || defined(MACOSX)
|
||||
if (!strcmp(family, "lucidasans")) {
|
||||
family = "lucida";
|
||||
}
|
||||
#endif
|
||||
/* try 1. */
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-%s-%s-%s-*-*-*-%d-*-*-*-*-%s",
|
||||
family, style, slant, pointSize, encoding);
|
||||
TRY_LOAD;
|
||||
|
||||
if (altstyle != NULL) {
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-%s-%s-%s-*-*-*-%d-*-*-*-*-%s",
|
||||
family, altstyle, slant, pointSize, encoding);
|
||||
TRY_LOAD;
|
||||
}
|
||||
|
||||
/* search bitmap font */
|
||||
pixelSize = pointSize / 10;
|
||||
|
||||
/* try 2. */
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
|
||||
family, style, slant, pixelSize, encoding);
|
||||
TRY_LOAD;
|
||||
|
||||
if (altstyle != NULL) {
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
|
||||
family, altstyle, slant, pixelSize, encoding);
|
||||
TRY_LOAD;
|
||||
}
|
||||
|
||||
/* try 3 */
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-*-%s-%s-*-*-%d-*-*-*-*-*-%s",
|
||||
style, slant, pixelSize, encoding);
|
||||
TRY_LOAD;
|
||||
if (altstyle != NULL) {
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-*-%s-%s-*-*-%d-*-*-*-*-*-%s",
|
||||
altstyle, slant, pixelSize, encoding);
|
||||
TRY_LOAD;
|
||||
}
|
||||
|
||||
/* try 4 */
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-*-*-%s-*-*-%d-*-*-*-*-*-%s",
|
||||
slant, pixelSize, encoding);
|
||||
|
||||
TRY_LOAD;
|
||||
|
||||
/* try 5. */
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-*-*-*-*-*-%d-*-*-*-*-*-%s",
|
||||
pixelSize, encoding);
|
||||
TRY_LOAD;
|
||||
|
||||
/* try 6. */
|
||||
for (i = 1; i < 4; i++) {
|
||||
if (pixelSize < i)
|
||||
break;
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
|
||||
family, style, slant, pixelSize + i, encoding);
|
||||
TRY_LOAD;
|
||||
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-%s-%s-%s-*-*-%d-*-*-*-*-*-%s",
|
||||
family, style, slant, pixelSize - i, encoding);
|
||||
TRY_LOAD;
|
||||
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-*-*-*-*-*-%d-*-*-*-*-*-%s",
|
||||
pixelSize + i, encoding);
|
||||
TRY_LOAD;
|
||||
|
||||
jio_snprintf(buffer2, sizeof(buffer2),
|
||||
"-*-*-*-*-*-*-%d-*-*-*-*-*-%s",
|
||||
pixelSize - i, encoding);
|
||||
TRY_LOAD;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
strcpy(name, defaultXLFD);
|
||||
return XLoadQueryFont(display, defaultXLFD);
|
||||
}
|
||||
|
||||
/*
|
||||
* Hardwired list of mappings for generic font names "Helvetica",
|
||||
* "TimesRoman", "Courier", "Dialog", and "DialogInput".
|
||||
*/
|
||||
static char *defaultfontname = "fixed";
|
||||
static char *defaultfoundry = "misc";
|
||||
static char *anyfoundry = "*";
|
||||
static char *anystyle = "*-*";
|
||||
static char *isolatin1 = "iso8859-1";
|
||||
|
||||
static char *
|
||||
Style(int32_t s)
|
||||
{
|
||||
switch (s) {
|
||||
case java_awt_Font_ITALIC:
|
||||
return "medium-i";
|
||||
case java_awt_Font_BOLD:
|
||||
return "bold-r";
|
||||
case java_awt_Font_BOLD + java_awt_Font_ITALIC:
|
||||
return "bold-i";
|
||||
case java_awt_Font_PLAIN:
|
||||
default:
|
||||
return "medium-r";
|
||||
}
|
||||
}
|
||||
|
||||
static int32_t
|
||||
awtJNI_FontName(JNIEnv * env, jstring name, char **foundry, char **facename, char **encoding)
|
||||
{
|
||||
char *cname = NULL;
|
||||
|
||||
if (JNU_IsNull(env, name)) {
|
||||
return 0;
|
||||
}
|
||||
cname = (char *) JNU_GetStringPlatformChars(env, name, NULL);
|
||||
if (cname == NULL) {
|
||||
(*env)->ExceptionClear(env);
|
||||
JNU_ThrowOutOfMemoryError(env, "Could not create font name");
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* additional default font names */
|
||||
if (strcmp(cname, "serif") == 0) {
|
||||
*foundry = "adobe";
|
||||
*facename = "times";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "sansserif") == 0) {
|
||||
*foundry = "adobe";
|
||||
*facename = "helvetica";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "monospaced") == 0) {
|
||||
*foundry = "adobe";
|
||||
*facename = "courier";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "helvetica") == 0) {
|
||||
*foundry = "adobe";
|
||||
*facename = "helvetica";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "timesroman") == 0) {
|
||||
*foundry = "adobe";
|
||||
*facename = "times";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "courier") == 0) {
|
||||
*foundry = "adobe";
|
||||
*facename = "courier";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "dialog") == 0) {
|
||||
*foundry = "b&h";
|
||||
*facename = "lucida";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "dialoginput") == 0) {
|
||||
*foundry = "b&h";
|
||||
*facename = "lucidatypewriter";
|
||||
*encoding = isolatin1;
|
||||
} else if (strcmp(cname, "zapfdingbats") == 0) {
|
||||
*foundry = "itc";
|
||||
*facename = "zapfdingbats";
|
||||
*encoding = "*-*";
|
||||
} else {
|
||||
#ifdef DEBUG
|
||||
jio_fprintf(stderr, "Unknown font: %s\n", cname);
|
||||
#endif
|
||||
*foundry = defaultfoundry;
|
||||
*facename = defaultfontname;
|
||||
*encoding = isolatin1;
|
||||
}
|
||||
|
||||
if (cname != NULL)
|
||||
JNU_ReleaseStringPlatformChars(env, name, (const char *) cname);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Registered with the 2D disposer to be called after the Font is GC'd.
|
||||
*/
|
||||
static void pDataDisposeMethod(JNIEnv *env, jlong pData)
|
||||
{
|
||||
struct FontData *fdata = NULL;
|
||||
int32_t i = 0;
|
||||
Display *display = XDISPLAY;
|
||||
|
||||
AWT_LOCK();
|
||||
fdata = (struct FontData *)pData;
|
||||
|
||||
if (fdata == NULL) {
|
||||
AWT_UNLOCK();
|
||||
return;
|
||||
}
|
||||
|
||||
if (fdata->xfs != NULL) {
|
||||
XFreeFontSet(display, fdata->xfs);
|
||||
}
|
||||
|
||||
/* AWT fonts are always "multifonts" and probably have been in
|
||||
* all post 1.0 releases, so this test for multi fonts is
|
||||
* probably not needed, and the singleton xfont is probably never used.
|
||||
*/
|
||||
if (fdata->charset_num > 0) {
|
||||
for (i = 0; i < fdata->charset_num; i++) {
|
||||
free((void *)fdata->flist[i].xlfd);
|
||||
JNU_ReleaseStringPlatformChars(env, NULL,
|
||||
fdata->flist[i].charset_name);
|
||||
if (fdata->flist[i].load) {
|
||||
XFreeFont(display, fdata->flist[i].xfont);
|
||||
}
|
||||
}
|
||||
|
||||
free((void *)fdata->flist);
|
||||
|
||||
/* Don't free fdata->xfont because it is equal to fdata->flist[i].xfont
|
||||
for some 'i' */
|
||||
} else {
|
||||
if (fdata->xfont != NULL) {
|
||||
XFreeFont(display, fdata->xfont);
|
||||
}
|
||||
}
|
||||
|
||||
free((void *)fdata);
|
||||
|
||||
AWT_UNLOCK();
|
||||
}
|
||||
#endif /* !HEADLESS */
|
||||
|
@ -1,43 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2019, 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.
|
||||
*/
|
||||
|
||||
#include <jni_util.h>
|
||||
|
||||
/* fieldIDs for Font fields that may be accessed from C */
|
||||
struct FontIDs {
|
||||
jfieldID pData;
|
||||
jfieldID style;
|
||||
jfieldID size;
|
||||
jmethodID getPeer;
|
||||
jmethodID getFamily;
|
||||
};
|
||||
|
||||
/* fieldIDs for PlatformFont fields that may be accessed from C */
|
||||
struct PlatformFontIDs {
|
||||
jfieldID componentFonts;
|
||||
jfieldID fontConfig;
|
||||
jmethodID makeConvertedMultiFontString;
|
||||
jmethodID makeConvertedMultiFontChars;
|
||||
};
|
@ -30,11 +30,6 @@
|
||||
#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 <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -58,9 +53,6 @@
|
||||
#endif
|
||||
#endif /* !HEADLESS */
|
||||
|
||||
#define RepaintPending_NONE 0
|
||||
#define RepaintPending_REPAINT (1 << 0)
|
||||
#define RepaintPending_EXPOSE (1 << 1)
|
||||
#define LOOKUPSIZE 32
|
||||
|
||||
#ifndef HEADLESS
|
||||
@ -101,24 +93,6 @@ typedef struct _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 AwtGraphicsConfigDataPtr getDefaultConfig(int screen);
|
||||
extern AwtScreenDataPtr getScreenData(int screen);
|
||||
#endif /* !HEADLESS */
|
||||
@ -127,13 +101,10 @@ extern AwtScreenDataPtr getScreenData(int screen);
|
||||
#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);
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2002, 2019, 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
|
||||
@ -39,7 +39,6 @@
|
||||
#include "awt_p.h"
|
||||
#include "awt_Component.h"
|
||||
#include "awt_MenuComponent.h"
|
||||
#include "awt_Font.h"
|
||||
#include "awt_util.h"
|
||||
|
||||
#include "sun_awt_X11_XToolkit.h"
|
||||
|
Loading…
x
Reference in New Issue
Block a user