home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 December / PCWorld_2002-12_cd.bin / Software / Komercni / Baltik / katB.exe / katB / DESIGN / DESIGN_C.MEM < prev    next >
Text File  |  2002-09-16  |  4KB  |  117 lines

  1. ////////////////////////////////////////////////////////////////////////////////
  2. //----------------------------------------------------------------------------//
  3. //-----project DESINGER, copyright 2002 Libor Bareτ-------------------------//
  4. //----------------------------------------------------------------------------//
  5. ////////////////////////////////////////////////////////////////////////////////
  6.  
  7.  
  8. void InitCell(DIAGRAMCELL * pCell){
  9.   memset(pCell,0,sizeof(DIAGRAMCELL));
  10.   StrVytvo²(pCell->ClassName);
  11.   StrVytvo²(pCell->strExStereotypes);
  12.   StrVytvo²(pCell->strExProperties);
  13.  
  14. }
  15. int* DependentItemDelete(int* SrcPointer, int &nSize, int nID){
  16.   if((nID < nSize-1)){
  17.        memmove(&SrcPointer[nID],&SrcPointer[nID+1],sizeof(int)*(nSize-nID-1));
  18.  
  19.    }
  20.    SrcPointer = (int*)realloc(SrcPointer,sizeof(int)*(nSize-1));
  21.    nSize--;
  22.    if( nSize != 0 && SrcPointer==0)KERNELSTOP(0);
  23.    return SrcPointer;
  24.  
  25.  
  26. }
  27. void* ClassItemInit(void* SrcPointer, int &nSize, int nNewSize){
  28.     if(nSize == nNewSize)return SrcPointer; // do nothing ...
  29.             //            Wait();
  30.  
  31.     int it;
  32.     if(nSize > nNewSize){
  33.         for(it = nSize-1; it > nNewSize-1; it--){
  34.             StrZruτ(((CLASSITEM*)SrcPointer)[it].strText);
  35.         }
  36.         SrcPointer = realloc(SrcPointer,sizeof(CLASSITEM)*nNewSize);
  37.     }
  38.     if(nSize < nNewSize){
  39.         if(nSize == 0)SrcPointer=malloc(sizeof(CLASSITEM)*nNewSize);
  40.         else SrcPointer = realloc(SrcPointer,sizeof(CLASSITEM)*nNewSize);
  41.         if(SrcPointer==0)KERNELSTOP(0);
  42.  
  43.         for(it = nSize; it < nNewSize; it++){
  44.            StrVytvo²(((CLASSITEM*)SrcPointer)[it].strText);
  45.                    ((CLASSITEM*)SrcPointer)[it].nType = 0;
  46.         }
  47.  
  48.     }
  49.     nSize = nNewSize;
  50.     return SrcPointer;
  51.  
  52.  
  53.  
  54.  
  55.  
  56. }
  57.  
  58. void* tagClassItemDelete(CLASSITEM * pData,int &nSize,int nID){
  59.    if((nID < nSize-1)){
  60.      int id=nSize-2;
  61.      for(nID++;id >= nID-1;nID++){
  62.        pData[nID-1].strText = pData[nID].strText;
  63.        pData[nID-1].nType = pData[nID].nType;
  64.      }
  65.    }
  66.    pData = (CLASSITEM*)ClassItemInit(pData,nSize,nSize-1);
  67.    if(pData==0 && nSize != 0)KERNELSTOP(0);
  68.    return pData;
  69. }
  70.  
  71. WND* GetWindow(unsigned hWnd);
  72. void ListBox__DeleteItem(unsigned hWnd, int nID){
  73.  
  74.      // destroy memory space for string
  75.      // move memory
  76.      WND* pWnd=GetWindow(hWnd);
  77.      pWnd->pData=(void*)tagClassItemDelete((CLASSITEM*)pWnd->pData,GetWindow(hWnd)->lParam,nID);
  78.      pWnd->misc=0;
  79.      pWnd->misc2=-1;
  80.      SendMessage(0 /* DESKTOP */,9 /*WM_COMMAND*/,200/*LV_SELCHANGE*/,hWnd);
  81. }
  82. void * ArrayInit(void * SrcPointer, int& nSize, int nNewSize, unsigned size_of){
  83.     if(nSize == nNewSize)return SrcPointer; // do nothing ...
  84.  
  85.     int it;
  86.     if(nSize > nNewSize){
  87.         nSize = nNewSize;
  88.         SrcPointer = realloc(SrcPointer,sizeof(size_of)*nNewSize);
  89.     }
  90.     if(nSize < nNewSize){
  91.         if(nSize == 0)SrcPointer=malloc(sizeof(size_of)*nNewSize);
  92.         else SrcPointer = realloc(SrcPointer,sizeof(size_of)*nNewSize);
  93.         if(nNewSize != 0 && SrcPointer==0)KERNELSTOP(0);
  94.         nSize = nNewSize;
  95.          
  96.     }
  97.     return SrcPointer;
  98.  
  99.  
  100. }
  101. WND** AddChildWindow(WND**SrcPointer, int &nSize, int nNewSize){
  102.     return ArrayInit(SrcPointer,nSize, nNewSize, sizeof(WND*));
  103. }
  104. int* DependentItemInit(int*SrcPointer, int &nSize, int nNewSize){
  105.     return (int*)ArrayInit(SrcPointer, nSize, nNewSize, sizeof(int));
  106. }
  107. ///////////////////////////////////////////////////////////////////////////
  108. ///////////////////////////////////////////////////////////////////////////
  109. ///////////////////////////////////////////////////////////////////////////
  110. ///////////////////////////////////////////////////////////////////////////
  111. ///////////////////////////////////////////////////////////////////////////
  112.  
  113.  
  114.  
  115.  
  116.  
  117.