- Timestamp:
- Feb 16, 2010, 1:18:05 PM (16 years ago)
- Location:
- trunk/src/plugins
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/plugins/org.eclipse.swt.pm/classes.inc
r244 r250 210 210 org\eclipse\swt\internal\pm\SIZEL.java 211 211 org\eclipse\swt\internal\pm\CNRINFO.java 212 org\eclipse\swt\internal\pm\TREERECORD.java 212 213 213 214 # SWT PI (+) -
trunk/src/plugins/org.eclipse.swt/Eclipse SWT PI/pm/library/structs.c
r246 r250 182 182 SIZEL_FID_CACHE SIZELFc; 183 183 CNRINFO_FID_CACHE CNRINFOFc; 184 TREERECORD_FID_CACHE TREERECORDFc; 184 185 185 186 /*@@TODO (dmik): remove … … 2029 2030 } 2030 2031 2032 /* TREERECORD struct */ 2033 void cacheTREERECORDFids(JNIEnv *env, jobject lpObject, PTREERECORD_FID_CACHE lpCache) 2034 { 2035 if (lpCache->cached) return; 2036 lpCache->clazz = (*env)->GetObjectClass(env, lpObject); 2037 lpCache->item = (*env)->GetFieldID(env, lpCache->clazz, "item", "Lorg/eclipse/swt/internal/pm/TREERECORD;"); 2038 lpCache->lParam = (*env)->GetFieldID(env, lpCache->clazz, "usWeightClass", "I"); 2039 lpCache->cached = 1; 2040 } 2041 2042 PTREERECORD getTREERECORDFields(JNIEnv *env, jobject lpObject, PTREERECORD lpStruct, PTREERECORD_FID_CACHE lpCache) 2043 { 2044 if (!lpCache->cached) cacheTREERECORDFids(env, lpObject, lpCache); 2045 { 2046 jobject hItem = (*env)->GetObjectField(env, lpObject, lpCache->item); 2047 if (hItem && &(lpStruct->item)) getRECORDCOREFields(env, hItem, &(lpStruct->item), &PGLOB(RECORDCOREFc)); 2048 } 2049 lpStruct->lParam = (*env)->GetIntField(env, lpObject, lpCache->lParam); 2050 return lpStruct; 2051 } 2052 2053 void setTREERECORDFields(JNIEnv *env, jobject lpObject, PTREERECORD lpStruct, PTREERECORD_FID_CACHE lpCache) 2054 { 2055 if (!lpCache->cached) cacheTREERECORDFids(env, lpObject, lpCache); 2056 { 2057 jobject hItem = (*env)->GetObjectField(env, lpObject, lpCache->item); 2058 if (hItem && &(lpStruct->item)) setRECORDCOREFields(env, hItem, &(lpStruct->item), &PGLOB(RECORDCOREFc)); 2059 } 2060 (*env)->SetIntField(env, lpObject, lpCache->lParam, lpStruct->lParam); 2061 2062 } 2063 2031 2064 /*@@TODO (dmik): don't need, remove! 2032 2065 void cacheFACENAMEDESCFids(JNIEnv *env, jobject lpObject, PFACENAMEDESC_FID_CACHE lpCache) -
trunk/src/plugins/org.eclipse.swt/Eclipse SWT PI/pm/library/structs.h
r244 r250 48 48 PAPSZ getPAPSZArray(JNIEnv *env, jobjectArray j_papsz); 49 49 void releasePAPSZArray(JNIEnv *env, jobjectArray j_papsz, PAPSZ papsz); 50 51 /* Tree record struct */ 52 typedef struct TREERECORD{ 53 RECORDCORE item; 54 ULONG lParam; 55 } TREERECORD; 56 typedef TREERECORD *PTREERECORD; 57 58 /* TREERECORD struct */ 59 typedef struct TREERECORD_FID_CACHE { 60 int cached; 61 jclass clazz; 62 jfieldID 63 item, 64 lParam; 65 } TREERECORD_FID_CACHE; 66 typedef TREERECORD_FID_CACHE *PTREERECORD_FID_CACHE; 67 68 void cacheTREERECORDFids(JNIEnv *env, jobject lpObject, PTREERECORD_FID_CACHE lpCache); 69 PTREERECORD getTREERECORDFields(JNIEnv *env, jobject lpObject, PTREERECORD lpStruct, PTREERECORD_FID_CACHE lpCache); 70 void setTREERECORDFields(JNIEnv *env, jobject lpObject, PTREERECORD lpStruct, PTREERECORD_FID_CACHE lpCache); 50 71 51 72 /* QMSG struct */ … … 773 794 extern SIZEL_FID_CACHE SIZELFc; 774 795 extern CNRINFO_FID_CACHE CNRINFOFc; 796 extern TREERECORD_FID_CACHE TREERECORDFc; 775 797 /*@@TODO (dmik): remove! 776 798 extern FACENAMEDESC_FID_CACHE FACENAMEDESCFc; -
trunk/src/plugins/org.eclipse.swt/Eclipse SWT PI/pm/library/swt.c
r247 r250 731 731 732 732 rc = (jboolean)WinSendMsg((HWND)hwnd, ulMsgid, (PCNRINFO)c_pmpParam1, (MPARAM)mpParam2); 733 734 if (mpParam1) setCNRINFOFields(env, mpParam1, c_pmpParam1, &PGLOB(CNRINFOFc)); 735 736 return rc; 737 } 738 739 JNIEXPORT jint JNICALL Java_org_eclipse_swt_internal_pm_OS_WinSendMsg__IILorg_eclipse_swt_internal_pm_CNRINFO_2S 740 (JNIEnv *env, jclass that, jint hwnd, jint ulMsgid, jobject mpParam1, jshort mpParam2) 741 { 742 DECL_GLOB(pGlob) 743 CNRINFO c_mpParam1, *c_pmpParam1 = NULL; 744 jint rc; 745 746 DEBUG_CALL("WinSendMsg\n") 747 748 if (mpParam1) c_pmpParam1 = getCNRINFOFields(env, mpParam1, &c_mpParam1, &PGLOB(CNRINFOFc)); 749 750 rc = (jint)WinSendMsg((HWND)hwnd, ulMsgid, (PCNRINFO)c_pmpParam1, (MPARAM)mpParam2); 733 751 734 752 if (mpParam1) setCNRINFOFields(env, mpParam1, c_pmpParam1, &PGLOB(CNRINFOFc));
Note:
See TracChangeset
for help on using the changeset viewer.