Changeset 243 for trunk/src


Ignore:
Timestamp:
Dec 23, 2009, 9:43:02 PM (16 years ago)
Author:
lpino
Message:
  • More structs needed are implemented in the JNI code
Location:
trunk/src/plugins/org.eclipse.swt/Eclipse SWT PI/pm/library
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/plugins/org.eclipse.swt/Eclipse SWT PI/pm/library/structs.c

    r241 r243  
    178178MINIRECORDCORE_FID_CACHE MINIRECORDCOREFc;
    179179TREEITEMDESC_FID_CACHE TREEITEMDESCFc;
     180RECORDINSERT_FID_CACHE RECORDINSERTFc;
    180181
    181182/*@@TODO (dmik): remove
     
    17521753}
    17531754
     1755/***************************************** RECORDINSERT struct ********************************************/
     1756
     1757void cacheRECORDINSERTFids(JNIEnv *env, jobject lpObject, PRECORDINSERT_FID_CACHE lpCache)
     1758{
     1759    if (lpCache->cached) return;
     1760    lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
     1761    lpCache->cb = (*env)->GetFieldID(env, lpCache->clazz, "cb", "I");
     1762    lpCache->pRecordOrder = (*env)->GetFieldID(env, lpCache->clazz, "pRecordOrder", "I");
     1763    lpCache->pRecordParent = (*env)->GetFieldID(env, lpCache->clazz, "pRecordParent", "I");
     1764    lpCache->fInvalidateRecord = (*env)->GetFieldID(env, lpCache->clazz, "fInvalidateRecord", "I");
     1765    lpCache->zOrder = (*env)->GetFieldID(env, lpCache->clazz, "zOrder", "I");
     1766    lpCache->cRecordsInsert = (*env)->GetFieldID(env, lpCache->clazz, "cRecordsInsert", "I");
     1767    lpCache->cached = 1;
     1768}
     1769
     1770PRECORDINSERT getRECORDINSERTFields(JNIEnv *env, jobject lpObject, PRECORDINSERT lpStruct, PRECORDINSERT_FID_CACHE lpCache)
     1771{
     1772    if (!lpCache->cached) cacheRECORDINSERTFids(env, lpObject, lpCache);
     1773    lpStruct->cb = (*env)->GetIntField(env, lpObject, lpCache->cb);
     1774    lpStruct->pRecordOrder = (PRECORDCORE)(*env)->GetIntField(env, lpObject, lpCache->pRecordOrder);
     1775    lpStruct->pRecordParent= (PRECORDCORE)(*env)->GetIntField(env, lpObject, lpCache->pRecordParent);
     1776    lpStruct->fInvalidateRecord= (*env)->GetIntField(env, lpObject, lpCache->fInvalidateRecord);
     1777    lpStruct->zOrder= (*env)->GetIntField(env, lpObject, lpCache->zOrder);
     1778    lpStruct->cRecordsInsert= (*env)->GetIntField(env, lpObject, lpCache->cRecordsInsert);
     1779    return lpStruct;
     1780}
     1781
     1782void setRECORDINSERTFields(JNIEnv *env, jobject lpObject, PRECORDINSERT lpStruct, PRECORDINSERT_FID_CACHE lpCache)
     1783{
     1784    if (!lpCache->cached) cacheRECORDINSERTFids(env, lpObject, lpCache);
     1785    (*env)->SetIntField(env, lpObject, lpCache->cb, lpStruct->cb);
     1786    (*env)->SetIntField(env, lpObject, lpCache->pRecordOrder, (ULONG)lpStruct->pRecordOrder);
     1787    (*env)->SetIntField(env, lpObject, lpCache->pRecordParent, (ULONG)lpStruct->pRecordParent);
     1788    (*env)->SetIntField(env, lpObject, lpCache->fInvalidateRecord, lpStruct->fInvalidateRecord);
     1789    (*env)->SetIntField(env, lpObject, lpCache->zOrder, lpStruct->zOrder);
     1790    (*env)->SetIntField(env, lpObject, lpCache->cRecordsInsert, lpStruct->cRecordsInsert);
     1791}
     1792
     1793/***************************************** RECORDCORE struct ********************************************/
     1794
     1795void cacheRECORDCOREFids(JNIEnv *env, jobject lpObject, PRECORDCORE_FID_CACHE lpCache)
     1796{
     1797    if (lpCache->cached) return;
     1798    lpCache->clazz = (*env)->GetObjectClass(env, lpObject);
     1799    lpCache->cb = (*env)->GetFieldID(env, lpCache->clazz, "cb", "I");
     1800    lpCache->flRecordAttr = (*env)->GetFieldID(env, lpCache->clazz, "flRecordAttr", "I");
     1801    lpCache->ptlIcon = (*env)->GetFieldID(env, lpCache->clazz, "ptlIcon", "Lorg/eclipse/swt/internal/pm/POINTL;");
     1802    lpCache->preccNextRecord = (*env)->GetFieldID(env, lpCache->clazz, "preccNextRecord", "I");
     1803    lpCache->pszIcon = (*env)->GetFieldID(env, lpCache->clazz, "pszIcon", "Lorg/eclipse/swt/internal/pm/PSZ;");
     1804    lpCache->hptrIcon = (*env)->GetFieldID(env, lpCache->clazz, "hptrIcon", "I");
     1805    lpCache->hptrMiniIcon = (*env)->GetFieldID(env, lpCache->clazz, "hptrMiniIcon", "I");
     1806    lpCache->hbmBitmap = (*env)->GetFieldID(env, lpCache->clazz, "hbmBitmap", "I");
     1807    lpCache->hbmMiniBitmap = (*env)->GetFieldID(env, lpCache->clazz, "hbmMiniBitmap", "I");
     1808    lpCache->pTreeItemDesc = (*env)->GetFieldID(env, lpCache->clazz, "pTreeItemDesc", "Lorg/eclipse/swt/internal/pm/TREEITEMDESC;");
     1809    lpCache->pszText = (*env)->GetFieldID(env, lpCache->clazz, "pszText", "Lorg/eclipse/swt/internal/pm/PSZ;");
     1810    lpCache->pszName = (*env)->GetFieldID(env, lpCache->clazz, "pszName", "Lorg/eclipse/swt/internal/pm/PSZ;");
     1811    lpCache->pszTree = (*env)->GetFieldID(env, lpCache->clazz, "pszTree", "Lorg/eclipse/swt/internal/pm/PSZ;");
     1812    lpCache->cached = 1;
     1813}
     1814
     1815PRECORDCORE getRECORDCOREFields(JNIEnv *env, jobject lpObject, PRECORDCORE lpStruct, PRECORDCORE_FID_CACHE lpCache)
     1816{
     1817    if (!lpCache->cached) cacheRECORDCOREFids(env, lpObject, lpCache);
     1818    lpStruct->cb = (*env)->GetIntField(env, lpObject, lpCache->cb);
     1819    lpStruct->flRecordAttr = (*env)->GetIntField(env, lpObject, lpCache->flRecordAttr);
     1820    {
     1821        jobject pptlIcon = (*env)->GetObjectField(env, lpObject, lpCache->ptlIcon);
     1822        if (pptlIcon && &(lpStruct->ptlIcon)) getPOINTLFields(env, pptlIcon, &(lpStruct->ptlIcon), &PGLOB(POINTLFc));
     1823    }
     1824    lpStruct->preccNextRecord= (PRECORDCORE)(*env)->GetIntField(env, lpObject, lpCache->preccNextRecord);
     1825   {
     1826        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszIcon);
     1827        if(psz)
     1828            lpStruct->pszIcon = getPSZBytes(env,psz);
     1829    }
     1830    lpStruct->hptrIcon= (*env)->GetIntField(env, lpObject, lpCache->hptrIcon);
     1831    lpStruct->hptrMiniIcon= (*env)->GetIntField(env, lpObject, lpCache->hptrMiniIcon);
     1832    lpStruct->hbmBitmap= (*env)->GetIntField(env, lpObject, lpCache->hbmBitmap);
     1833    lpStruct->hbmMiniBitmap= (*env)->GetIntField(env, lpObject, lpCache->hbmMiniBitmap);
     1834    {
     1835        jobject itemDesc = (*env)->GetObjectField(env, lpObject, lpCache->pTreeItemDesc);
     1836        if (itemDesc && lpStruct->pTreeItemDesc) getTREEITEMDESCFields(env, itemDesc, lpStruct->pTreeItemDesc, &PGLOB(TREEITEMDESCFc));
     1837    }
     1838   {
     1839        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszText);
     1840        if(psz)
     1841            lpStruct->pszText = getPSZBytes(env,psz);
     1842    }
     1843   {
     1844        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszName);
     1845        if(psz)
     1846            lpStruct->pszName = getPSZBytes(env,psz);
     1847    }
     1848   {
     1849        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszTree);
     1850        if(psz)
     1851            lpStruct->pszTree = getPSZBytes(env,psz);
     1852    }
     1853    return lpStruct;
     1854}
     1855
     1856void setRECORDCOREFields(JNIEnv *env, jobject lpObject, PRECORDCORE lpStruct, PRECORDCORE_FID_CACHE lpCache)
     1857{
     1858    if (!lpCache->cached) cacheRECORDCOREFids(env, lpObject, lpCache);
     1859    (*env)->SetIntField(env, lpObject, lpCache->cb, lpStruct->cb);
     1860    (*env)->SetIntField(env, lpObject, lpCache->flRecordAttr, (ULONG)lpStruct->flRecordAttr);
     1861    {
     1862        jobject pptlIcon = (*env)->GetObjectField(env, lpObject, lpCache->ptlIcon);
     1863        if (pptlIcon && &(lpStruct->ptlIcon)) setPOINTLFields(env, pptlIcon, &(lpStruct->ptlIcon), &PGLOB(POINTLFc));
     1864    }
     1865    (*env)->SetIntField(env, lpObject, lpCache->preccNextRecord, (ULONG)lpStruct->preccNextRecord);
     1866    {
     1867        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszIcon);
     1868        if (psz)
     1869            releasePSZBytes(env, psz, lpStruct->pszIcon);
     1870    }
     1871    (*env)->SetIntField(env, lpObject, lpCache->hptrIcon, lpStruct->hptrIcon);
     1872    (*env)->SetIntField(env, lpObject, lpCache->hptrMiniIcon, lpStruct->hptrMiniIcon);
     1873    (*env)->SetIntField(env, lpObject, lpCache->hbmBitmap, lpStruct->hbmBitmap);
     1874    (*env)->SetIntField(env, lpObject, lpCache->hbmMiniBitmap, lpStruct->hbmMiniBitmap);
     1875    {
     1876        jobject itemDesc = (*env)->GetObjectField(env, lpObject, lpCache->pTreeItemDesc);
     1877        if (itemDesc && lpStruct->pTreeItemDesc) setTREEITEMDESCFields(env, itemDesc, lpStruct->pTreeItemDesc, &PGLOB(TREEITEMDESCFc));
     1878    }
     1879    {
     1880        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszText);
     1881        if (psz)
     1882            releasePSZBytes(env, psz, lpStruct->pszText);
     1883    }
     1884    {
     1885        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszName);
     1886        if (psz)
     1887            releasePSZBytes(env, psz, lpStruct->pszName);
     1888    }
     1889    {
     1890        jobject psz = (*env)->GetObjectField(env, lpObject, lpCache->pszTree);
     1891        if (psz)
     1892            releasePSZBytes(env, psz, lpStruct->pszTree);
     1893    }
     1894}
     1895
    17541896/*@@TODO (dmik): don't need, remove!
    17551897void cacheFACENAMEDESCFids(JNIEnv *env, jobject lpObject, PFACENAMEDESC_FID_CACHE lpCache)
  • trunk/src/plugins/org.eclipse.swt/Eclipse SWT PI/pm/library/structs.h

    r241 r243  
    623623        hbmCollapsed,
    624624        hptrExpanded,
    625         hptrCollapsed;
    626        
     625        hptrCollapsed;       
    627626} TREEITEMDESC_FID_CACHE;
    628627typedef TREEITEMDESC_FID_CACHE *PTREEITEMDESC_FID_CACHE;
     
    631630PTREEITEMDESC getTREEITEMDESCFields(JNIEnv *env, jobject lpObject, PTREEITEMDESC lpStruct, PTREEITEMDESC_FID_CACHE lpCache);
    632631void setTREEITEMDESCFields(JNIEnv *env, jobject lpObject, PTREEITEMDESC lpStruct, PTREEITEMDESC_FID_CACHE lpCache);
     632
     633/* RECORDINSERT struct */
     634typedef struct RECORDINSERT_FID_CACHE {
     635    int cached;
     636    jclass clazz;
     637    jfieldID
     638        cb,       
     639        pRecordOrder,
     640        pRecordParent,
     641        fInvalidateRecord,
     642        zOrder,
     643        cRecordsInsert;       
     644} RECORDINSERT_FID_CACHE;
     645typedef RECORDINSERT_FID_CACHE *PRECORDINSERT_FID_CACHE;
     646
     647void cacheRECORDINSERTFids(JNIEnv *env, jobject lpObject, PRECORDINSERT_FID_CACHE lpCache);
     648PRECORDINSERT getRECORDINSERTFields(JNIEnv *env, jobject lpObject, PRECORDINSERT lpStruct, PRECORDINSERT_FID_CACHE lpCache);
     649void setRECORDINSERTFields(JNIEnv *env, jobject lpObject, PRECORDINSERT lpStruct, PRECORDINSERT_FID_CACHE lpCache);
     650
     651/* RECORDCORE struct */
     652typedef struct RECORDCORE_FID_CACHE {
     653    int cached;
     654    jclass clazz;
     655    jfieldID
     656        cb,       
     657        flRecordAttr,
     658        ptlIcon,
     659        preccNextRecord,
     660        pszIcon,
     661        hptrIcon,
     662        hptrMiniIcon,
     663        hbmBitmap,
     664        hbmMiniBitmap,
     665        pTreeItemDesc,
     666        pszText,
     667        pszName,
     668        pszTree;       
     669} RECORDCORE_FID_CACHE;
     670typedef RECORDCORE_FID_CACHE *PRECORDCORE_FID_CACHE;
     671
     672void cacheRECORDCOREFids(JNIEnv *env, jobject lpObject, PRECORDCORE_FID_CACHE lpCache);
     673PRECORDCORE getRECORDCOREFields(JNIEnv *env, jobject lpObject, PRECORDCORE lpStruct, PRECORDCORE_FID_CACHE lpCache);
     674void setRECORDCOREFields(JNIEnv *env, jobject lpObject, PRECORDCORE lpStruct, PRECORDCORE_FID_CACHE lpCache);
    633675
    634676/* FACENAMEDESC struct */
     
    681723extern MINIRECORDCORE_FID_CACHE MINIRECORDCOREFc;
    682724extern TREEITEMDESC_FID_CACHE TREEITEMDESCFc;
     725extern RECORDINSERT_FID_CACHE RECORDINSERTFc;
     726extern RECORDCORE_FID_CACHE RECORDCOREFc;
    683727/*@@TODO (dmik): remove!
    684728extern FACENAMEDESC_FID_CACHE FACENAMEDESCFc;
Note: See TracChangeset for help on using the changeset viewer.