summaryrefslogtreecommitdiffstats
path: root/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.swt/Eclipse SWT PI/win32/library')
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c99
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.h41
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_custom.h3
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.c8
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.h4
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.c79
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.h12
7 files changed, 242 insertions, 4 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c
index c31a1c7739..8f5cc01865 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.c
@@ -2044,6 +2044,18 @@ JNIEXPORT jint JNICALL OS_NATIVE(DROPFILES_1sizeof)
}
#endif
+#ifndef NO_DTTOPTS_1sizeof
+JNIEXPORT jint JNICALL OS_NATIVE(DTTOPTS_1sizeof)
+ (JNIEnv *env, jclass that)
+{
+ jint rc = 0;
+ OS_NATIVE_ENTER(env, that, DTTOPTS_1sizeof_FUNC);
+ rc = (jint)DTTOPTS_sizeof();
+ OS_NATIVE_EXIT(env, that, DTTOPTS_1sizeof_FUNC);
+ return rc;
+}
+#endif
+
#ifndef NO_DWM_1BLURBEHIND_1sizeof
JNIEXPORT jint JNICALL OS_NATIVE(DWM_1BLURBEHIND_1sizeof)
(JNIEnv *env, jclass that)
@@ -2692,6 +2704,36 @@ fail:
}
#endif
+#ifndef NO_DrawThemeTextEx
+JNIEXPORT jint JNICALL OS_NATIVE(DrawThemeTextEx)
+ (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jint arg2, jint arg3, jcharArray arg4, jint arg5, jint arg6, jobject arg7, jobject arg8)
+{
+ jchar *lparg4=NULL;
+ RECT _arg7, *lparg7=NULL;
+ DTTOPTS _arg8, *lparg8=NULL;
+ jint rc = 0;
+ OS_NATIVE_ENTER(env, that, DrawThemeTextEx_FUNC);
+ if (arg4) if ((lparg4 = (*env)->GetCharArrayElements(env, arg4, NULL)) == NULL) goto fail;
+ if (arg7) if ((lparg7 = getRECTFields(env, arg7, &_arg7)) == NULL) goto fail;
+ if (arg8) if ((lparg8 = getDTTOPTSFields(env, arg8, &_arg8)) == NULL) goto fail;
+/*
+ rc = (jint)DrawThemeTextEx(arg0, arg1, arg2, arg3, lparg4, arg5, arg6, lparg7, lparg8);
+*/
+ {
+ OS_LOAD_FUNCTION(fp, DrawThemeTextEx)
+ if (fp) {
+ rc = (jint)((jint (CALLING_CONVENTION*)(jintLong, jintLong, jint, jint, jchar *, jint, jint, RECT *, DTTOPTS *))fp)(arg0, arg1, arg2, arg3, lparg4, arg5, arg6, lparg7, lparg8);
+ }
+ }
+fail:
+ if (arg8 && lparg8) setDTTOPTSFields(env, arg8, lparg8);
+ if (arg7 && lparg7) setRECTFields(env, arg7, lparg7);
+ if (arg4 && lparg4) (*env)->ReleaseCharArrayElements(env, arg4, lparg4, 0);
+ OS_NATIVE_EXIT(env, that, DrawThemeTextEx_FUNC);
+ return rc;
+}
+#endif
+
#ifndef NO_DuplicateHandle
JNIEXPORT jboolean JNICALL OS_NATIVE(DuplicateHandle)
(JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jintLong arg2, jintLongArray arg3, jint arg4, jboolean arg5, jint arg6)
@@ -2756,6 +2798,30 @@ fail:
}
#endif
+#ifndef NO_DwmIsCompositionEnabled
+JNIEXPORT jint JNICALL OS_NATIVE(DwmIsCompositionEnabled)
+ (JNIEnv *env, jclass that, jbooleanArray arg0)
+{
+ jboolean *lparg0=NULL;
+ jint rc = 0;
+ OS_NATIVE_ENTER(env, that, DwmIsCompositionEnabled_FUNC);
+ if (arg0) if ((lparg0 = (*env)->GetBooleanArrayElements(env, arg0, NULL)) == NULL) goto fail;
+/*
+ rc = (jint)DwmIsCompositionEnabled(lparg0);
+*/
+ {
+ OS_LOAD_FUNCTION(fp, DwmIsCompositionEnabled)
+ if (fp) {
+ rc = (jint)((jint (CALLING_CONVENTION*)(jboolean *))fp)(lparg0);
+ }
+ }
+fail:
+ if (arg0 && lparg0) (*env)->ReleaseBooleanArrayElements(env, arg0, lparg0, 0);
+ OS_NATIVE_EXIT(env, that, DwmIsCompositionEnabled_FUNC);
+ return rc;
+}
+#endif
+
#ifndef NO_EMREXTCREATEFONTINDIRECTW_1sizeof
JNIEXPORT jint JNICALL OS_NATIVE(EMREXTCREATEFONTINDIRECTW_1sizeof)
(JNIEnv *env, jclass that)
@@ -4199,28 +4265,33 @@ fail:
#ifndef NO_GetDIBits
JNIEXPORT jint JNICALL OS_NATIVE(GetDIBits)
- (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jint arg2, jint arg3, jintLong arg4, jbyteArray arg5, jint arg6)
+ (JNIEnv *env, jclass that, jintLong arg0, jintLong arg1, jint arg2, jint arg3, jbyteArray arg4, jbyteArray arg5, jint arg6)
{
+ jbyte *lparg4=NULL;
jbyte *lparg5=NULL;
jint rc = 0;
OS_NATIVE_ENTER(env, that, GetDIBits_FUNC);
#ifdef JNI_VERSION_1_2
if (IS_JNI_1_2) {
+ if (arg4) if ((lparg4 = (*env)->GetPrimitiveArrayCritical(env, arg4, NULL)) == NULL) goto fail;
if (arg5) if ((lparg5 = (*env)->GetPrimitiveArrayCritical(env, arg5, NULL)) == NULL) goto fail;
} else
#endif
{
+ if (arg4) if ((lparg4 = (*env)->GetByteArrayElements(env, arg4, NULL)) == NULL) goto fail;
if (arg5) if ((lparg5 = (*env)->GetByteArrayElements(env, arg5, NULL)) == NULL) goto fail;
}
- rc = (jint)GetDIBits((HDC)arg0, (HBITMAP)arg1, arg2, arg3, (LPVOID)arg4, (LPBITMAPINFO)lparg5, arg6);
+ rc = (jint)GetDIBits((HDC)arg0, (HBITMAP)arg1, arg2, arg3, (LPVOID)lparg4, (LPBITMAPINFO)lparg5, arg6);
fail:
#ifdef JNI_VERSION_1_2
if (IS_JNI_1_2) {
if (arg5 && lparg5) (*env)->ReleasePrimitiveArrayCritical(env, arg5, lparg5, 0);
+ if (arg4 && lparg4) (*env)->ReleasePrimitiveArrayCritical(env, arg4, lparg4, 0);
} else
#endif
{
if (arg5 && lparg5) (*env)->ReleaseByteArrayElements(env, arg5, lparg5, 0);
+ if (arg4 && lparg4) (*env)->ReleaseByteArrayElements(env, arg4, lparg4, 0);
}
OS_NATIVE_EXIT(env, that, GetDIBits_FUNC);
return rc;
@@ -6068,6 +6139,30 @@ fail:
}
#endif
+#ifndef NO_GetThemeBitmap
+JNIEXPORT jint JNICALL OS_NATIVE(GetThemeBitmap)
+ (JNIEnv *env, jclass that, jintLong arg0, jint arg1, jint arg2, jint arg3, jint arg4, jintLongArray arg5)
+{
+ jintLong *lparg5=NULL;
+ jint rc = 0;
+ OS_NATIVE_ENTER(env, that, GetThemeBitmap_FUNC);
+ if (arg5) if ((lparg5 = (*env)->GetIntLongArrayElements(env, arg5, NULL)) == NULL) goto fail;
+/*
+ rc = (jint)GetThemeBitmap(arg0, arg1, arg2, arg3, arg4, lparg5);
+*/
+ {
+ OS_LOAD_FUNCTION(fp, GetThemeBitmap)
+ if (fp) {
+ rc = (jint)((jint (CALLING_CONVENTION*)(jintLong, jint, jint, jint, jint, jintLong *))fp)(arg0, arg1, arg2, arg3, arg4, lparg5);
+ }
+ }
+fail:
+ if (arg5 && lparg5) (*env)->ReleaseIntLongArrayElements(env, arg5, lparg5, 0);
+ OS_NATIVE_EXIT(env, that, GetThemeBitmap_FUNC);
+ return rc;
+}
+#endif
+
#ifndef NO_GetThemeColor
JNIEXPORT jint JNICALL OS_NATIVE(GetThemeColor)
(JNIEnv *env, jclass that, jintLong arg0, jint arg1, jint arg2, jint arg3, jintArray arg4)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.h b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.h
index 0f44973263..966233be16 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os.h
@@ -74,6 +74,7 @@
#define NO_DEVMODEW
#define NO_DOCINFO
#define NO_DWM_BLURBEHIND
+#define NO_DTTOPTS
#define NO_EMR
#define NO_EMREXTCREATEFONTINDIRECTW
#define NO_EXTLOGFONTW
@@ -244,9 +245,11 @@
#define NO_DrawThemeIcon
#define NO_DrawThemeParentBackground
#define NO_DrawThemeText
+#define NO_DrawThemeTextEx
#define NO_DuplicateHandle
#define NO_DwmEnableBlurBehindWindow
#define NO_DwmExtendFrameIntoClientArea
+#define NO_DTTOPTS_1sizeof
#define NO_EnableScrollBar
#define NO_EndBufferedPaint
#define NO_EndDoc
@@ -346,6 +349,7 @@
#define NO_GetTextCharset
#define NO_GetTextExtentPoint32A
#define NO_GetTextMetricsA
+#define NO_GetThemeBitmap
#define NO_GetThemeColor
#define NO_GetThemeTextExtent
#define NO_GetThemeInt
@@ -712,6 +716,43 @@ typedef struct _DWM_BLURBEHIND {
} DWM_BLURBEHIND, *PDWM_BLURBEHIND;
#endif
+#ifndef _WIN32_WCE
+#ifndef DTT_CALLBACK_PROC
+typedef
+int
+(WINAPI *DTT_CALLBACK_PROC)
+(
+ __in HDC hdc,
+ __inout_ecount(cchText) LPWSTR pszText,
+ __in int cchText,
+ __inout LPRECT prc,
+ __in UINT dwFlags,
+ __in LPARAM lParam);
+#endif
+
+#ifndef _DTTOPTS
+typedef struct _DTTOPTS
+{
+ DWORD dwSize;
+ DWORD dwFlags;
+ COLORREF crText;
+ COLORREF crBorder;
+ COLORREF crShadow;
+ int iTextShadowType;
+ POINT ptShadowOffset;
+ int iBorderSize;
+ int iFontPropId;
+ int iColorPropId;
+ int iStateId;
+ BOOL fApplyOverlay;
+ int iGlowSize;
+ DTT_CALLBACK_PROC pfnDrawTextCallback;
+ LPARAM lParam;
+} DTTOPTS, *PDTTOPTS;
+#endif
+#endif /* _WIN32_WCE */
+
+
#if (_WIN32_IE <= 0x0600)
typedef struct tagTVITEMCHANGE {
NMHDR hdr;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_custom.h b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_custom.h
index a57a384fdc..8a995a3efc 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_custom.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_custom.h
@@ -38,13 +38,16 @@
#define DrawThemeIcon_LIB "uxtheme.dll"
#define DrawThemeParentBackground_LIB "uxtheme.dll"
#define DrawThemeText_LIB "uxtheme.dll"
+#define DrawThemeTextEx_LIB "uxtheme.dll"
#define DwmEnableBlurBehindWindow_LIB "dwmapi.dll"
#define DwmExtendFrameIntoClientArea_LIB "dwmapi.dll"
+#define DwmIsCompositionEnabled_LIB "dwmapi.dll"
#define GetGestureInfo_LIB "user32.dll"
#define GetThemeInt_LIB "uxtheme.dll"
#define GetThemeMargins_LIB "uxtheme.dll"
#define GetThemeBackgroundContentRect_LIB "uxtheme.dll"
#define GetThemeBackgroundExtent_LIB "uxtheme.dll"
+#define GetThemeBitmap_LIB "uxtheme.dll"
#define GetThemeColor_LIB "uxtheme.dll"
#define GetThemePartSize_LIB "uxtheme.dll"
#define GetThemeMetric_LIB "uxtheme.dll"
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.c
index 0accdd13d2..b788be6c62 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.c
@@ -14,8 +14,8 @@
#ifdef NATIVE_STATS
-int OS_nativeFunctionCount = 1064;
-int OS_nativeFunctionCallCount[1064];
+int OS_nativeFunctionCount = 1068;
+int OS_nativeFunctionCallCount[1068];
char * OS_nativeFunctionNames[] = {
"ACCEL_1sizeof",
"ACTCTX_1sizeof",
@@ -166,6 +166,7 @@ char * OS_nativeFunctionNames[] = {
"DPtoLP",
"DRAWITEMSTRUCT_1sizeof",
"DROPFILES_1sizeof",
+ "DTTOPTS_1sizeof",
"DWM_1BLURBEHIND_1sizeof",
"DefFrameProcA",
"DefFrameProcW",
@@ -207,9 +208,11 @@ char * OS_nativeFunctionNames[] = {
"DrawThemeIcon",
"DrawThemeParentBackground",
"DrawThemeText",
+ "DrawThemeTextEx",
"DuplicateHandle",
"DwmEnableBlurBehindWindow",
"DwmExtendFrameIntoClientArea",
+ "DwmIsCompositionEnabled",
"EMREXTCREATEFONTINDIRECTW_1sizeof",
"EMR_1sizeof",
"EXTLOGFONTW_1sizeof",
@@ -459,6 +462,7 @@ char * OS_nativeFunctionNames[] = {
"GetTextMetricsW",
"GetThemeBackgroundContentRect",
"GetThemeBackgroundExtent",
+ "GetThemeBitmap",
"GetThemeColor",
"GetThemeInt",
"GetThemeMargins",
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.h
index 158eee7e48..55d743839b 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_stats.h
@@ -174,6 +174,7 @@ typedef enum {
DPtoLP_FUNC,
DRAWITEMSTRUCT_1sizeof_FUNC,
DROPFILES_1sizeof_FUNC,
+ DTTOPTS_1sizeof_FUNC,
DWM_1BLURBEHIND_1sizeof_FUNC,
DefFrameProcA_FUNC,
DefFrameProcW_FUNC,
@@ -215,9 +216,11 @@ typedef enum {
DrawThemeIcon_FUNC,
DrawThemeParentBackground_FUNC,
DrawThemeText_FUNC,
+ DrawThemeTextEx_FUNC,
DuplicateHandle_FUNC,
DwmEnableBlurBehindWindow_FUNC,
DwmExtendFrameIntoClientArea_FUNC,
+ DwmIsCompositionEnabled_FUNC,
EMREXTCREATEFONTINDIRECTW_1sizeof_FUNC,
EMR_1sizeof_FUNC,
EXTLOGFONTW_1sizeof_FUNC,
@@ -467,6 +470,7 @@ typedef enum {
GetTextMetricsW_FUNC,
GetThemeBackgroundContentRect_FUNC,
GetThemeBackgroundExtent_FUNC,
+ GetThemeBitmap_FUNC,
GetThemeColor_FUNC,
GetThemeInt_FUNC,
GetThemeMargins_FUNC,
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.c b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.c
index 3e2d07c17b..d97d093d86 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.c
@@ -1807,6 +1807,85 @@ void setDROPFILESFields(JNIEnv *env, jobject lpObject, DROPFILES *lpStruct)
}
#endif
+#ifndef NO_DTTOPTS
+typedef struct DTTOPTS_FID_CACHE {
+ int cached;
+ jclass clazz;
+ jfieldID dwSize, dwFlags, crText, crBorder, crShadow, iTextShadowType, ptShadowOffset, iBorderSize, iFontPropId, iColorPropId, iStateId, fApplyOverlay, iGlowSize, pfnDrawTextCallback, lParam;
+} DTTOPTS_FID_CACHE;
+
+DTTOPTS_FID_CACHE DTTOPTSFc;
+
+void cacheDTTOPTSFields(JNIEnv *env, jobject lpObject)
+{
+ if (DTTOPTSFc.cached) return;
+ DTTOPTSFc.clazz = (*env)->GetObjectClass(env, lpObject);
+ DTTOPTSFc.dwSize = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "dwSize", "I");
+ DTTOPTSFc.dwFlags = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "dwFlags", "I");
+ DTTOPTSFc.crText = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "crText", I_J);
+ DTTOPTSFc.crBorder = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "crBorder", I_J);
+ DTTOPTSFc.crShadow = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "crShadow", I_J);
+ DTTOPTSFc.iTextShadowType = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iTextShadowType", "I");
+ DTTOPTSFc.ptShadowOffset = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "ptShadowOffset", "Lorg/eclipse/swt/internal/win32/POINT;");
+ DTTOPTSFc.iBorderSize = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iBorderSize", "I");
+ DTTOPTSFc.iFontPropId = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iFontPropId", "I");
+ DTTOPTSFc.iColorPropId = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iColorPropId", "I");
+ DTTOPTSFc.iStateId = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iStateId", "I");
+ DTTOPTSFc.fApplyOverlay = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "fApplyOverlay", "Z");
+ DTTOPTSFc.iGlowSize = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "iGlowSize", "I");
+ DTTOPTSFc.pfnDrawTextCallback = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "pfnDrawTextCallback", I_J);
+ DTTOPTSFc.lParam = (*env)->GetFieldID(env, DTTOPTSFc.clazz, "lParam", I_J);
+ DTTOPTSFc.cached = 1;
+}
+
+DTTOPTS *getDTTOPTSFields(JNIEnv *env, jobject lpObject, DTTOPTS *lpStruct)
+{
+ if (!DTTOPTSFc.cached) cacheDTTOPTSFields(env, lpObject);
+ lpStruct->dwSize = (*env)->GetIntField(env, lpObject, DTTOPTSFc.dwSize);
+ lpStruct->dwFlags = (*env)->GetIntField(env, lpObject, DTTOPTSFc.dwFlags);
+ lpStruct->crText = (*env)->GetIntLongField(env, lpObject, DTTOPTSFc.crText);
+ lpStruct->crBorder = (*env)->GetIntLongField(env, lpObject, DTTOPTSFc.crBorder);
+ lpStruct->crShadow = (*env)->GetIntLongField(env, lpObject, DTTOPTSFc.crShadow);
+ lpStruct->iTextShadowType = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iTextShadowType);
+ {
+ jobject lpObject1 = (*env)->GetObjectField(env, lpObject, DTTOPTSFc.ptShadowOffset);
+ if (lpObject1 != NULL) getPOINTFields(env, lpObject1, &lpStruct->ptShadowOffset);
+ }
+ lpStruct->iBorderSize = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iBorderSize);
+ lpStruct->iFontPropId = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iFontPropId);
+ lpStruct->iColorPropId = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iColorPropId);
+ lpStruct->iStateId = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iStateId);
+ lpStruct->fApplyOverlay = (*env)->GetBooleanField(env, lpObject, DTTOPTSFc.fApplyOverlay);
+ lpStruct->iGlowSize = (*env)->GetIntField(env, lpObject, DTTOPTSFc.iGlowSize);
+ lpStruct->pfnDrawTextCallback = (DTT_CALLBACK_PROC)(*env)->GetIntLongField(env, lpObject, DTTOPTSFc.pfnDrawTextCallback);
+ lpStruct->lParam = (*env)->GetIntLongField(env, lpObject, DTTOPTSFc.lParam);
+ return lpStruct;
+}
+
+void setDTTOPTSFields(JNIEnv *env, jobject lpObject, DTTOPTS *lpStruct)
+{
+ if (!DTTOPTSFc.cached) cacheDTTOPTSFields(env, lpObject);
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.dwSize, (jint)lpStruct->dwSize);
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.dwFlags, (jint)lpStruct->dwFlags);
+ (*env)->SetIntLongField(env, lpObject, DTTOPTSFc.crText, (jintLong)lpStruct->crText);
+ (*env)->SetIntLongField(env, lpObject, DTTOPTSFc.crBorder, (jintLong)lpStruct->crBorder);
+ (*env)->SetIntLongField(env, lpObject, DTTOPTSFc.crShadow, (jintLong)lpStruct->crShadow);
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.iTextShadowType, (jint)lpStruct->iTextShadowType);
+ {
+ jobject lpObject1 = (*env)->GetObjectField(env, lpObject, DTTOPTSFc.ptShadowOffset);
+ if (lpObject1 != NULL) setPOINTFields(env, lpObject1, &lpStruct->ptShadowOffset);
+ }
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.iBorderSize, (jint)lpStruct->iBorderSize);
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.iFontPropId, (jint)lpStruct->iFontPropId);
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.iColorPropId, (jint)lpStruct->iColorPropId);
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.iStateId, (jint)lpStruct->iStateId);
+ (*env)->SetBooleanField(env, lpObject, DTTOPTSFc.fApplyOverlay, (jboolean)lpStruct->fApplyOverlay);
+ (*env)->SetIntField(env, lpObject, DTTOPTSFc.iGlowSize, (jint)lpStruct->iGlowSize);
+ (*env)->SetIntLongField(env, lpObject, DTTOPTSFc.pfnDrawTextCallback, (jintLong)lpStruct->pfnDrawTextCallback);
+ (*env)->SetIntLongField(env, lpObject, DTTOPTSFc.lParam, (jintLong)lpStruct->lParam);
+}
+#endif
+
#ifndef NO_DWM_BLURBEHIND
typedef struct DWM_BLURBEHIND_FID_CACHE {
int cached;
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.h b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.h
index aa120cbb01..2028c725ea 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/win32/library/os_structs.h
@@ -383,6 +383,18 @@ void setDROPFILESFields(JNIEnv *env, jobject lpObject, DROPFILES *lpStruct);
#define DROPFILES_sizeof() 0
#endif
+#ifndef NO_DTTOPTS
+void cacheDTTOPTSFields(JNIEnv *env, jobject lpObject);
+DTTOPTS *getDTTOPTSFields(JNIEnv *env, jobject lpObject, DTTOPTS *lpStruct);
+void setDTTOPTSFields(JNIEnv *env, jobject lpObject, DTTOPTS *lpStruct);
+#define DTTOPTS_sizeof() sizeof(DTTOPTS)
+#else
+#define cacheDTTOPTSFields(a,b)
+#define getDTTOPTSFields(a,b,c) NULL
+#define setDTTOPTSFields(a,b,c)
+#define DTTOPTS_sizeof() 0
+#endif
+
#ifndef NO_DWM_BLURBEHIND
void cacheDWM_BLURBEHINDFields(JNIEnv *env, jobject lpObject);
DWM_BLURBEHIND *getDWM_BLURBEHINDFields(JNIEnv *env, jobject lpObject, DWM_BLURBEHIND *lpStruct);