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

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp

    r624 r625  
    55void Rad_UndoCommand(int WndNum){
    66    extern HINSTANCE hInst;
    7     extern MDIINFO MdiInfo[MAX_WNDNUM];
    87    int i;
    98    DWORD dw;
    10     char *temporary;
    119    RAD_UNDOSTATE *pUndoState;
    1210
     
    4745                names->name = tempStr;
    4846
    49                 GlobalFree(MdiInfo[WndNum].path);
    50                 MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,pWindowInfo->GetName().size()+1);
    51                 lstrcpy(MdiInfo[WndNum].path,pWindowInfo->GetName().c_str());
    52 
    53                 tempStr = pWindowInfo->GetHandleName();
    54                 pWindowInfo->SetHandleName( names->HandleName );
    55                 names->HandleName = tempStr;
    56 
    57                 temporary=pWindowInfo->CallBackName;
    58                 pWindowInfo->CallBackName=names->CallBackName;
    59                 names->CallBackName=temporary;
     47                MdiInfo[WndNum].path = pWindowInfo->GetName();
    6048            }
    6149            else{
     
    195183            break;
    196184        case RAD_UNDO_TYPE:
    197             dw=pWindowInfo->type;
    198             pWindowInfo->type=pUndoState->lpdwData[pUndoState->NowPos];
     185            dw=(DWORD)pWindowInfo->GetType();
     186            pWindowInfo->SetType( (ActiveBasic::PM::WindowType::EnumType)pUndoState->lpdwData[pUndoState->NowPos] );
    199187            pUndoState->lpdwData[pUndoState->NowPos]=dw;
     188
    200189            if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
    201190                ChangePropertyWindow(WndNum,WndInfoNum);
     
    209198void Rad_RedoCommand(int WndNum){
    210199    extern HINSTANCE hInst;
    211     extern MDIINFO MdiInfo[MAX_WNDNUM];
    212200    DWORD dw;
    213     char *temporary;
    214201    RAD_UNDOSTATE *pUndoState;
    215202    ActiveBasic::PM::ChildWindowInfo *pChildInfo;
     
    247234                names->name = tempStr;
    248235
    249                 GlobalFree(MdiInfo[WndNum].path);
    250                 MdiInfo[WndNum].path=(char *)GlobalAlloc(GMEM_FIXED,pWindowInfo->GetName().size()+1);
    251                 lstrcpy(MdiInfo[WndNum].path,pWindowInfo->GetName().c_str());
    252 
    253                 tempStr = pWindowInfo->GetHandleName();
    254                 pWindowInfo->SetHandleName( names->HandleName );
    255                 names->HandleName = tempStr;
    256 
    257                 temporary=pWindowInfo->CallBackName;
    258                 pWindowInfo->CallBackName=names->CallBackName;
    259                 names->CallBackName=temporary;
     236                MdiInfo[WndNum].path = pWindowInfo->GetName();
    260237            }
    261238            else{
     
    394371            }
    395372        case RAD_UNDO_TYPE:
    396             dw=pWindowInfo->type;
    397             pWindowInfo->type=pUndoState->lpdwData[pUndoState->NowPos];
     373            dw=(DWORD)pWindowInfo->GetType();
     374            pWindowInfo->SetType( (ActiveBasic::PM::WindowType::EnumType)pUndoState->lpdwData[pUndoState->NowPos] );
    398375            pUndoState->lpdwData[pUndoState->NowPos]=dw;
     376
    399377            if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0])
    400378                ChangePropertyWindow(WndNum,WndInfoNum);
     
    411389void Rad_DeleteUndoData(int WndNum,int pos){
    412390    extern HANDLE hHeap;
    413     extern MDIINFO MdiInfo[MAX_WNDNUM];
    414391    RAD_UNDOSTATE *pUndoState;
    415392
     
    425402            if(pUndoState->SelectItemNum[pos]==SELECT_WINDOW){
    426403                RAD_UNDOSTATE_NAME *names = (RAD_UNDOSTATE_NAME *)pUndoState->lpdwData[pos];
    427                 HeapDefaultFree(names->CallBackName);
    428404                delete names;
    429405            }
     
    471447void Rad_NoticeChanging(int WndNum,int Command,int SelectItemNum,DWORD dwData){
    472448    extern HANDLE hHeap;
    473     extern MDIINFO MdiInfo[MAX_WNDNUM];
    474449    int i;
    475450    RAD_UNDOSTATE *pUndoState;
     
    510485                RAD_UNDOSTATE_NAME *SaveNames = new RAD_UNDOSTATE_NAME();
    511486                SaveNames->name = names->name;
    512                 SaveNames->HandleName = names->HandleName;
    513                 SaveNames->CallBackName=(char *)HeapAlloc(hHeap,0,lstrlen(names->CallBackName)+1);
    514                 lstrcpy(SaveNames->CallBackName,names->CallBackName);
    515487                pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)SaveNames;
    516488            }
Note: See TracChangeset for help on using the changeset viewer.