Changeset 81 in dev for ProjectEditor/ClassTree.cpp


Ignore:
Timestamp:
Mar 26, 2007, 7:33:18 AM (17 years ago)
Author:
dai_9181
Message:

プロジェクトを開いていないときでもクラスビューの機能を有効にした。

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ProjectEditor/ClassTree.cpp

    r24 r81  
    315315
    316316
    317 
    318 void SetClassTreeFromOneFile(char *lpszFilePath,int iFileNum){
    319     extern PROJECTINFO ProjectInfo;
    320     extern MDIINFO MdiInfo[MAX_WNDNUM];
    321     int i2,i3,i4,WndNum;
    322     char *pBuf;
    323     HWND hChild;
     317void SetClassTreeFromOneFile_Buf( char *pBuf, int iFileNum ){
     318    int i2,i3,i4;
    324319    char temporary[GENERAL_SIZE];
    325320
    326     hChild=GetWindow(hClient,GW_CHILD);
    327     while(hChild){
    328         WndNum=GetWndNum(hChild);
    329         if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    330             if(lstrcmpi(MdiInfo[WndNum].path,lpszFilePath)==0) break;
    331         }
    332         hChild=GetNextWindow(hChild,GW_HWNDNEXT);
    333     }
    334 
    335     if(hChild){
    336         //すでに指定されたファイルが開かれている場合
    337         pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
    338     }
    339     else{
    340         //開かれていない場合
    341         pBuf=ReadBuffer(lpszFilePath);
    342         if(!pBuf) pBuf=(char *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
    343     }
    344321    for(i2=0;;i2++){
    345322        if(pBuf[i2]=='\0') break;
     
    464441        }
    465442    }
     443}
     444void SetClassTreeFromOneFile(char *lpszFilePath,int iFileNum){
     445    extern MDIINFO MdiInfo[MAX_WNDNUM];
     446    int WndNum;
     447    HWND hChild=GetWindow(hClient,GW_CHILD);
     448    while(hChild){
     449        WndNum=GetWndNum(hChild);
     450        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
     451            if(lstrcmpi(MdiInfo[WndNum].path,lpszFilePath)==0) break;
     452        }
     453        hChild=GetNextWindow(hChild,GW_HWNDNEXT);
     454    }
     455
     456    char *pBuf;
     457    if(hChild){
     458        //すでに指定されたファイルが開かれている場合
     459        pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     460    }
     461    else{
     462        //開かれていない場合
     463        pBuf=ReadBuffer(lpszFilePath);
     464        if(!pBuf) pBuf=(char *)HeapAlloc(hHeap,HEAP_ZERO_MEMORY,1);
     465    }
     466
     467    SetClassTreeFromOneFile_Buf( pBuf, iFileNum );
    466468
    467469    if(!hChild) HeapDefaultFree(pBuf);
     
    469471
    470472void SetProcedureTreeData(void *temp_iFileNum){
    471     extern PROJECTINFO ProjectInfo;
    472473    int i;
    473474    char temporary[MAX_PATH];
     
    547548    LockWindowUpdate(hProcedureTreeView);
    548549
    549     if(iFileNum==-1){
    550         //プロジェクトのすべてのファイルを解析
    551         for(i=0;i<ProjectInfo.pobj_DBFileInfo->iNum;i++){
    552             ProjectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    553 
    554             SetClassTreeFromOneFile(temporary,i);
    555         }
    556 
    557         //不要になったアイテムを除去
    558         pobj_ClassTreeView->finish();
     550    extern PROJECTINFO ProjectInfo;
     551    if(ProjectInfo.name[0]){
     552        // プロジェクトが開かれているとき
     553        if(iFileNum==-1){
     554            //プロジェクトのすべてのファイルを解析
     555            for(i=0;i<ProjectInfo.pobj_DBFileInfo->iNum;i++){
     556                ProjectInfo.pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
     557
     558                SetClassTreeFromOneFile(temporary,i);
     559            }
     560
     561            //不要になったアイテムを除去
     562            //pobj_ClassTreeView->finish();
     563        }
     564        else{
     565            /////////////////////////////////
     566            // 編集中のファイルのみを解析
     567            /////////////////////////////////
     568
     569            ProjectInfo.pobj_DBFileInfo->ppobj_FileInfo[iFileNum]->GetFullPath(temporary);
     570
     571            SetClassTreeFromOneFile(temporary,iFileNum);
     572        }
    559573    }
    560574    else{
    561         /////////////////////////////////
    562         // 編集中のファイルのみを解析
    563         /////////////////////////////////
    564 
    565         ProjectInfo.pobj_DBFileInfo->ppobj_FileInfo[iFileNum]->GetFullPath(temporary);
    566 
    567         SetClassTreeFromOneFile(temporary,iFileNum);
     575        // 編集中の単体ファイルを解析
     576
     577        HWND hChild=GetWindow(hClient,GW_CHILD);
     578        int WndNum=GetWndNum(hChild);
     579        char *pBuf=MdiInfo[WndNum].pMdiTextEdit->buffer;
     580        SetClassTreeFromOneFile_Buf( pBuf, -1 );
     581
    568582    }
    569583
Note: See TracChangeset for help on using the changeset viewer.