Changeset 625 in dev for trunk/ab5.0/abdev/abdev/src


Ignore:
Timestamp:
May 27, 2008, 9:17:34 PM (16 years ago)
Author:
dai_9181
Message:

・WindowInfoクラスをリファクタリング
・MdiInfoを単純配列からvectorに変更した。

Location:
trunk/ab5.0/abdev/abdev/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/src/MainFrame.cpp

    r624 r625  
    316316                mii.dwTypeData=temporary;
    317317                mii.fType=MFT_STRING;
    318                 if(MdiInfo[WndNum].path[0]){
    319                     _splitpath(MdiInfo[WndNum].path,NULL,NULL,temporary,temp2);
     318                if(!MdiInfo[WndNum].path.empty()){
     319                    _splitpath(MdiInfo[WndNum].path.c_str(),NULL,NULL,temporary,temp2);
    320320                    lstrcat(temporary,temp2);
    321321                    lstrcat(temporary," を保存(&S)");
     
    329329                /*「絶対パスをコピー」「フォルダを開く」「ファイルを削除」
    330330                                                コマンドを場合によって無効化にする */
    331                 if(MdiInfo[WndNum].path[0]){
     331                if(!MdiInfo[WndNum].path.empty()){
    332332                    EnableMenuItem(hTabMenu,IDM_PATH_COPY,MF_BYCOMMAND|MF_ENABLED);
    333333                    EnableMenuItem(hTabMenu,IDM_FOLDER_OPEN,MF_BYCOMMAND|MF_ENABLED);
     
    383383        WndNum=GetWndNum(hChild);
    384384        if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){
    385             if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0) break;
     385            if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0) break;
    386386        }
    387387        hChild=::GetNextWindow(hChild,GW_HWNDNEXT);
     
    548548void MainFrame::OnCmdAllSave( UINT uNotifyCode, int nID, CWindow wndCtl )
    549549{
    550     for( int i=0;i<MAX_WNDNUM;i++){
     550    for( int i=0;i<MdiInfo.size();i++){
    551551        if(MdiInfo[i].hwnd) SaveDocument(MdiInfo[i].hwnd,NULL);
    552552    }
     
    585585    if(!hChild) return;
    586586    int WndNum=GetWndNum(hChild);
    587     if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType))
     587    if( IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType) )
     588    {
    588589        TextEdit_UndoCommand(WndNum);
    589     else if(MdiInfo[WndNum].DocType==WNDTYPE_RAD)
     590    }
     591    else if( MdiInfo[WndNum].DocType == WNDTYPE_RAD )
     592    {
    590593        Rad_UndoCommand(WndNum);
    591     else if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT)
     594    }
     595    else if( MdiInfo[WndNum].DocType == WNDTYPE_ICONEDIT )
     596    {
    592597        IconEdit_UndoCommand(WndNum);
     598    }
    593599}
    594600
     
    986992        if(!SetRunning(hChild)) return;
    987993        if(IsNeedCompile(MdiInfo[GetWndNum(hChild)].path,1))
    988             sprintf(temporary,"\"%s\" /debug /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     994            sprintf(temporary,"\"%s\" /debug /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    989995        else
    990             sprintf(temporary,"\"%s\" /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     996            sprintf(temporary,"\"%s\" /run /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    991997
    992998        //ブレークポイントをセーブ
     
    10511057        //単独ソースコード
    10521058        if(!SetRunning(hChild)) return;
    1053         sprintf(temporary,"\"%s\" /debug /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     1059        sprintf(temporary,"\"%s\" /debug /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    10541060    }
    10551061
     
    11651171        //単独ソースコード
    11661172        if(!SetRunning(hChild)) return;
    1167         sprintf(temporary,"\"%s\" /wnd:%08x",MdiInfo[GetWndNum(hChild)].path,m_hWnd);
     1173        sprintf(temporary,"\"%s\" /wnd:%08x",MdiInfo[GetWndNum(hChild)].path.c_str(),m_hWnd);
    11681174    }
    11691175
     
    12241230
    12251231        //単独ソースコード
    1226         _splitpath(MdiInfo[GetWndNum(hChild)].path,temporary,temp2,temp3,NULL);
     1232        _splitpath(MdiInfo[GetWndNum(hChild)].path.c_str(),temporary,temp2,temp3,NULL);
    12271233        lstrcat(temporary,temp2);
    12281234        lstrcat(temporary,temp3);
     
    14031409    HWND hChild=::GetWindow(hClient,GW_CHILD);
    14041410    int WndNum=GetWndNum(hChild);
    1405     for(int i=0;i<MAX_WNDNUM;i++){
     1411    for(int i=0;i<MdiInfo.size();i++){
    14061412        if(i==WndNum) continue;
    14071413        if(MdiInfo[i].hwnd) SendMessage(MdiInfo[i].hwnd,WM_CLOSE,0,0);
     
    14151421
    14161422    //絶対パスをコピー
    1417     HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,lstrlen(MdiInfo[WndNum].path)+1);
     1423    HGLOBAL hGlobal=(char *)GlobalAlloc(GMEM_MOVEABLE,MdiInfo[WndNum].path.size()+1);
    14181424    char *pTemp=(char *)GlobalLock(hGlobal);
    1419     lstrcpy(pTemp,MdiInfo[WndNum].path);
     1425    lstrcpy(pTemp,MdiInfo[WndNum].path.c_str());
    14201426    GlobalUnlock(hGlobal);
    14211427
     
    14331439
    14341440    char temporary[1024], temp2[1024];
    1435     _splitpath(MdiInfo[WndNum].path,temporary,temp2,NULL,NULL);
     1441    _splitpath(MdiInfo[WndNum].path.c_str(),temporary,temp2,NULL,NULL);
    14361442    lstrcat(temporary,temp2);
    14371443
     
    14451451
    14461452    char temporary[1024], temp2[1024];
    1447     _splitpath(MdiInfo[WndNum].path,NULL,NULL,temporary,temp2);
     1453    _splitpath(MdiInfo[WndNum].path.c_str(),NULL,NULL,temporary,temp2);
    14481454    lstrcat(temporary,temp2);
    14491455
     
    14551461    fo.hwnd=m_hWnd;
    14561462    fo.wFunc=FO_DELETE;
    1457     fo.pFrom =MdiInfo[WndNum].path;
     1463    fo.pFrom =MdiInfo[WndNum].path.c_str();
    14581464    fo.pTo="\0";
    14591465    fo.fFlags =FOF_ALLOWUNDO|FOF_NOCONFIRMATION;
  • trunk/ab5.0/abdev/abdev/src/ProjectManager/ProjectManager.cpp

    r624 r625  
    267267void Project::Save()
    268268{
    269     extern MDIINFO MdiInfo[MAX_WNDNUM];
    270269    int i,i2,i3,WndNum;
    271270    char temporary[MAX_PATH],buffer[32767];
     
    284283                for(i=0;i<this->pobj_DBFileInfo->iNum;i++){
    285284                    this->pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    286                     if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     285                    if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    287286                        SaveDocument(hChild,NULL);
    288287                        break;
     
    297296                    lstrcpy(temporary,resourceItem.filepath.c_str());
    298297                    lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() );
    299                     if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     298                    if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    300299                        SaveDocument(hChild,NULL);
    301300                        break;
     
    533532{
    534533    extern HANDLE hHeap;
    535     extern MDIINFO MdiInfo[MAX_WNDNUM];
    536534    int i,WndNum;
    537535    HWND hChild,hCloseChild;
     
    553551            for(i=0;i<this->pobj_DBFileInfo->iNum;i++){
    554552                this->pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary);
    555                 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     553                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    556554
    557555                    //変更フラグをオフにする
     
    575573        else if(MdiInfo[WndNum].DocType==WNDTYPE_MENU){
    576574            for(i=0;i<this->NumberOfMenu;i++){
    577                 if(lstrcmp(MdiInfo[WndNum].path,this->pMenuInfo[i].IdName)==0){
     575                if( MdiInfo[WndNum].path == this->pMenuInfo[i].IdName )
     576                {
    578577                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    579578                    break;
     
    585584                lstrcpy(temporary,this->resourceManager.iconResources[i].filepath.c_str());
    586585                lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() );
    587                 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
     586                if(lstrcmpi(MdiInfo[WndNum].path.c_str(),temporary)==0){
    588587                    SendMessage(hCloseChild,WM_CLOSE,0,0);
    589588                    break;
     
    602601    BOOST_FOREACH( ActiveBasic::PM::WindowInfo *pWindowInfo, windowInfos )
    603602    {
    604         HeapDefaultFree(pWindowInfo->CallBackName);
    605         HeapDefaultFree(pWindowInfo->filepath);
    606 
    607603        //子ウィンドウのメモリを解放
    608604        BOOST_FOREACH( ActiveBasic::PM::ChildWindowInfo *pChildWindowInfo, pWindowInfo->childWindowInfos )
Note: See TracChangeset for help on using the changeset viewer.