Changeset 624 in dev for trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp
- Timestamp:
- May 23, 2008, 10:35:36 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/Rad_UndoRedo.cpp
r618 r624 20 20 pUndoState->NowPos=i; 21 21 22 WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);22 ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path); 23 23 int WndInfoNum = GetWndInfoNum(MdiInfo[WndNum].path); 24 24 switch(pUndoState->Command[pUndoState->NowPos]){ … … 28 28 break; 29 29 case RAD_UNDO_DELETEITEM: 30 CHILDINFO*pChildInfo;30 ActiveBasic::PM::ChildWindowInfo *pChildInfo; 31 31 RECT rect; 32 pChildInfo=( CHILDINFO*)pUndoState->lpdwData[pUndoState->NowPos];32 pChildInfo=(ActiveBasic::PM::ChildWindowInfo *)pUndoState->lpdwData[pUndoState->NowPos]; 33 33 rect.left=pChildInfo->pos.x; 34 34 rect.top=pChildInfo->pos.y; … … 37 37 InsertDlgItem(WndNum,WndInfoNum,pUndoState->SelectItemNum[pUndoState->NowPos], 38 38 &pChildInfo->pos,&pChildInfo->size, 39 pChildInfo-> IdName,pChildInfo->caption,pChildInfo->style,pChildInfo->ExStyle,pChildInfo->Control,pChildInfo->ImageCtrlInfo.type,pChildInfo->ImageCtrlInfo.path,0);39 pChildInfo->GetName().c_str(),pChildInfo->GetCaption().c_str(),pChildInfo->GetStyle(),pChildInfo->GetExStyle(),pChildInfo->Control,pChildInfo->image.type,pChildInfo->image.path.c_str(),0); 40 40 break; 41 41 case RAD_UNDO_NAME: … … 60 60 } 61 61 else{ 62 temporary=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->IdName; 63 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->IdName=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 64 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 62 std::string tempStr = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetName(); 63 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetName( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 64 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 65 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 65 66 } 66 67 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) … … 69 70 case RAD_UNDO_CAPTION: 70 71 if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){ 71 temporary=pWindowInfo->caption; 72 pWindowInfo->caption=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 73 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 74 } 75 else{ 76 temporary=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->caption; 77 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->caption=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 78 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 72 std::string tempStr = pWindowInfo->GetCaption(); 73 pWindowInfo->SetCaption( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 74 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 75 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 76 } 77 else{ 78 std::string tempStr = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetCaption(); 79 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetCaption( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 80 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 81 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 79 82 } 80 83 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) … … 93 96 break; 94 97 case RAD_UNDO_BGCOLOR: 95 dw=pWindowInfo->bgColor; 96 pWindowInfo->bgColor=pUndoState->lpdwData[pUndoState->NowPos]; 97 pUndoState->lpdwData[pUndoState->NowPos]=dw; 98 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 99 ChangePropertyWindow(WndNum,WndInfoNum); 100 DrawRadWindow(WndNum,pWindowInfo); 101 break; 98 { 99 int tempBgColor = pWindowInfo->GetBackgroundColor(); 100 pWindowInfo->SetBackgroundColor( static_cast<int>(pUndoState->lpdwData[pUndoState->NowPos]) ); 101 pUndoState->lpdwData[pUndoState->NowPos] = static_cast<DWORD>(tempBgColor); 102 103 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 104 ChangePropertyWindow(WndNum,WndInfoNum); 105 DrawRadWindow(WndNum,pWindowInfo); 106 break; 107 } 102 108 case RAD_UNDO_WINDOWMENU: 103 temporary=pWindowInfo->MenuID; 104 pWindowInfo->MenuID=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 105 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 106 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 107 ChangePropertyWindow(WndNum,WndInfoNum); 108 break; 109 { 110 std::string tempMenuIdName = pWindowInfo->GetMenuIdName(); 111 pWindowInfo->SetMenuIdName( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 112 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 113 pUndoState->lpdwData[pUndoState->NowPos] = (DWORD)( new std::string( tempMenuIdName ) ); 114 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 115 { 116 ChangePropertyWindow(WndNum,WndInfoNum); 117 } 118 DrawRadWindow(WndNum,pWindowInfo); 119 break; 120 } 109 121 case RAD_UNDO_ICONRES: 110 temporary=pWindowInfo->IconResName; 111 pWindowInfo->IconResName=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 112 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 122 { 123 std::string tempStr = pWindowInfo->GetIconResourceName(); 124 pWindowInfo->SetIconResourceName( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 125 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 126 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 127 } 113 128 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 114 129 ChangePropertyWindow(WndNum,WndInfoNum); … … 116 131 case RAD_UNDO_STYLE: 117 132 if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){ 118 dw=pWindowInfo-> style;119 pWindowInfo-> style=pUndoState->lpdwData[pUndoState->NowPos];120 pUndoState->lpdwData[pUndoState->NowPos]=dw; 121 } 122 else{ 123 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> style;124 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> style=pUndoState->lpdwData[pUndoState->NowPos];133 dw=pWindowInfo->GetStyle(); 134 pWindowInfo->SetStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 135 pUndoState->lpdwData[pUndoState->NowPos]=dw; 136 } 137 else{ 138 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetStyle(); 139 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 125 140 pUndoState->lpdwData[pUndoState->NowPos]=dw; 126 141 } … … 131 146 case RAD_UNDO_EXSTYLE: 132 147 if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){ 133 dw=pWindowInfo-> ExStyle;134 pWindowInfo-> ExStyle=pUndoState->lpdwData[pUndoState->NowPos];135 pUndoState->lpdwData[pUndoState->NowPos]=dw; 136 } 137 else{ 138 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> ExStyle;139 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> ExStyle=pUndoState->lpdwData[pUndoState->NowPos];148 dw=pWindowInfo->GetExStyle(); 149 pWindowInfo->SetExStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 150 pUndoState->lpdwData[pUndoState->NowPos]=dw; 151 } 152 else{ 153 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetExStyle(); 154 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetExStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 140 155 pUndoState->lpdwData[pUndoState->NowPos]=dw; 141 156 } … … 163 178 break; 164 179 case RAD_UNDO_IMAGESTATE: 165 IMAGECTRLINFO *pImageCtrlInfo; 166 pImageCtrlInfo=(IMAGECTRLINFO *)pUndoState->lpdwData[pUndoState->NowPos]; 167 168 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.type; 169 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.type=pImageCtrlInfo->type; 170 pImageCtrlInfo->type=dw; 171 172 dw=(DWORD)pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.path; 173 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.path=pImageCtrlInfo->path; 174 pImageCtrlInfo->path=(char *)dw; 175 176 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 177 ChangePropertyWindow(WndNum,WndInfoNum); 178 DrawRadWindow(WndNum,pWindowInfo); 180 { 181 ActiveBasic::PM::ImageControlInfo *pImageCtrlInfo = (ActiveBasic::PM::ImageControlInfo *)pUndoState->lpdwData[pUndoState->NowPos]; 182 183 ActiveBasic::PM::ImageReferenceType::EnumType tempType = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.type; 184 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.type = pImageCtrlInfo->type; 185 pImageCtrlInfo->type = tempType; 186 187 std::string tempPath = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.path; 188 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.path = pImageCtrlInfo->path; 189 pImageCtrlInfo->path = tempPath; 190 191 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 192 ChangePropertyWindow(WndNum,WndInfoNum); 193 DrawRadWindow(WndNum,pWindowInfo); 194 } 179 195 break; 180 196 case RAD_UNDO_TYPE: … … 197 213 char *temporary; 198 214 RAD_UNDOSTATE *pUndoState; 199 CHILDINFO*pChildInfo;215 ActiveBasic::PM::ChildWindowInfo *pChildInfo; 200 216 RECT rect; 201 217 … … 206 222 } 207 223 208 WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path);224 ActiveBasic::PM::WindowInfo *pWindowInfo = GetWndInfo(MdiInfo[WndNum].path); 209 225 int WndInfoNum = GetWndInfoNum(MdiInfo[WndNum].path); 210 226 switch(pUndoState->Command[pUndoState->NowPos]){ 211 227 case RAD_UNDO_INSERTITEM: 212 pChildInfo=( CHILDINFO*)pUndoState->lpdwData[pUndoState->NowPos];228 pChildInfo=(ActiveBasic::PM::ChildWindowInfo *)pUndoState->lpdwData[pUndoState->NowPos]; 213 229 rect.left=pChildInfo->pos.x; 214 230 rect.top=pChildInfo->pos.y; … … 217 233 InsertDlgItem(WndNum,WndInfoNum,pUndoState->SelectItemNum[pUndoState->NowPos], 218 234 &pChildInfo->pos,&pChildInfo->size, 219 pChildInfo-> IdName,pChildInfo->caption,pChildInfo->style,pChildInfo->ExStyle,pChildInfo->Control,pChildInfo->ImageCtrlInfo.type,pChildInfo->ImageCtrlInfo.path,0);235 pChildInfo->GetName().c_str(),pChildInfo->GetCaption().c_str(),pChildInfo->GetStyle(),pChildInfo->GetExStyle(),pChildInfo->Control,pChildInfo->image.type,pChildInfo->image.path.c_str(),0); 220 236 break; 221 237 case RAD_UNDO_DELETEITEM: … … 244 260 } 245 261 else{ 246 temporary=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->IdName; 247 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->IdName=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 248 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 262 std::string tempStr = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetName(); 263 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetName( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 264 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 265 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 249 266 } 250 267 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) … … 253 270 case RAD_UNDO_CAPTION: 254 271 if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){ 255 temporary=pWindowInfo->caption; 256 pWindowInfo->caption=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 257 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 258 } 259 else{ 260 temporary=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->caption; 261 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->caption=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 262 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 272 std::string tempStr = pWindowInfo->GetCaption(); 273 pWindowInfo->SetCaption( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 274 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 275 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 276 } 277 else{ 278 std::string tempStr = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetCaption(); 279 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetCaption( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 280 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 281 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 263 282 } 264 283 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) … … 277 296 break; 278 297 case RAD_UNDO_BGCOLOR: 279 dw=pWindowInfo->bgColor; 280 pWindowInfo->bgColor=pUndoState->lpdwData[pUndoState->NowPos]; 281 pUndoState->lpdwData[pUndoState->NowPos]=dw; 298 { 299 int tempBgColor = pWindowInfo->GetBackgroundColor(); 300 pWindowInfo->SetBackgroundColor( static_cast<int>(pUndoState->lpdwData[pUndoState->NowPos]) ); 301 pUndoState->lpdwData[pUndoState->NowPos] = static_cast<DWORD>(tempBgColor); 302 } 282 303 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 283 304 ChangePropertyWindow(WndNum,WndInfoNum); … … 285 306 break; 286 307 case RAD_UNDO_WINDOWMENU: 287 temporary=pWindowInfo->MenuID; 288 pWindowInfo->MenuID=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 289 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 290 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 291 ChangePropertyWindow(WndNum,WndInfoNum); 292 break; 308 { 309 std::string tempMenuIdName = pWindowInfo->GetMenuIdName(); 310 pWindowInfo->SetMenuIdName( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 311 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 312 pUndoState->lpdwData[pUndoState->NowPos] = (DWORD)( new std::string( tempMenuIdName ) ); 313 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 314 { 315 ChangePropertyWindow(WndNum,WndInfoNum); 316 } 317 DrawRadWindow(WndNum,pWindowInfo); 318 break; 319 } 293 320 case RAD_UNDO_ICONRES: 294 temporary=pWindowInfo->IconResName; 295 pWindowInfo->IconResName=(char *)pUndoState->lpdwData[pUndoState->NowPos]; 296 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temporary; 321 { 322 std::string tempStr = pWindowInfo->GetIconResourceName(); 323 pWindowInfo->SetIconResourceName( *(std::string *)pUndoState->lpdwData[pUndoState->NowPos] ); 324 delete (std::string *)pUndoState->lpdwData[pUndoState->NowPos]; 325 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)( new std::string( tempStr ) ); 326 } 297 327 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 298 328 ChangePropertyWindow(WndNum,WndInfoNum); … … 300 330 case RAD_UNDO_STYLE: 301 331 if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){ 302 dw=pWindowInfo-> style;303 pWindowInfo-> style=pUndoState->lpdwData[pUndoState->NowPos];304 pUndoState->lpdwData[pUndoState->NowPos]=dw; 305 } 306 else{ 307 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> style;308 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> style=pUndoState->lpdwData[pUndoState->NowPos];332 dw=pWindowInfo->GetStyle(); 333 pWindowInfo->SetStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 334 pUndoState->lpdwData[pUndoState->NowPos]=dw; 335 } 336 else{ 337 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetStyle(); 338 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 309 339 pUndoState->lpdwData[pUndoState->NowPos]=dw; 310 340 } … … 315 345 case RAD_UNDO_EXSTYLE: 316 346 if(pUndoState->SelectItemNum[pUndoState->NowPos]==SELECT_WINDOW){ 317 dw=pWindowInfo-> ExStyle;318 pWindowInfo-> ExStyle=pUndoState->lpdwData[pUndoState->NowPos];319 pUndoState->lpdwData[pUndoState->NowPos]=dw; 320 } 321 else{ 322 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> ExStyle;323 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]-> ExStyle=pUndoState->lpdwData[pUndoState->NowPos];347 dw=pWindowInfo->GetExStyle(); 348 pWindowInfo->SetExStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 349 pUndoState->lpdwData[pUndoState->NowPos]=dw; 350 } 351 else{ 352 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->GetExStyle(); 353 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->SetExStyle( pUndoState->lpdwData[pUndoState->NowPos] ); 324 354 pUndoState->lpdwData[pUndoState->NowPos]=dw; 325 355 } … … 347 377 break; 348 378 case RAD_UNDO_IMAGESTATE: 349 IMAGECTRLINFO *pImageCtrlInfo; 350 pImageCtrlInfo=(IMAGECTRLINFO *)pUndoState->lpdwData[pUndoState->NowPos]; 351 352 dw=pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.type; 353 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.type=pImageCtrlInfo->type; 354 pImageCtrlInfo->type=dw; 355 356 dw=(DWORD)pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.path; 357 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->ImageCtrlInfo.path=pImageCtrlInfo->path; 358 pImageCtrlInfo->path=(char *)dw; 359 360 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 361 ChangePropertyWindow(WndNum,WndInfoNum); 362 DrawRadWindow(WndNum,pWindowInfo); 363 break; 379 { 380 ActiveBasic::PM::ImageControlInfo *pImageCtrlInfo = (ActiveBasic::PM::ImageControlInfo *)pUndoState->lpdwData[pUndoState->NowPos]; 381 382 ActiveBasic::PM::ImageReferenceType::EnumType tempType = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.type; 383 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.type = pImageCtrlInfo->type; 384 pImageCtrlInfo->type = tempType; 385 386 std::string tempPath = pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.path; 387 pWindowInfo->childWindowInfos[pUndoState->SelectItemNum[pUndoState->NowPos]]->image.path = pImageCtrlInfo->path; 388 pImageCtrlInfo->path = tempPath; 389 390 if(pUndoState->SelectItemNum[pUndoState->NowPos]==MdiInfo[WndNum].MdiRadInfo->SelectingItem[0]) 391 ChangePropertyWindow(WndNum,WndInfoNum); 392 DrawRadWindow(WndNum,pWindowInfo); 393 break; 394 } 364 395 case RAD_UNDO_TYPE: 365 396 dw=pWindowInfo->type; … … 387 418 case RAD_UNDO_INSERTITEM: 388 419 case RAD_UNDO_DELETEITEM: 389 CHILDINFO *pChildInfo; 390 pChildInfo=(CHILDINFO *)pUndoState->lpdwData[pos]; 391 HeapDefaultFree(pChildInfo->IdName); 392 HeapDefaultFree(pChildInfo->caption); 393 if(pChildInfo->Control==CT_IMAGEBOX){ 394 //イメージ ボックスの場合 395 HeapDefaultFree(pChildInfo->ImageCtrlInfo.path); 396 } 397 HeapDefaultFree(pChildInfo); 420 ActiveBasic::PM::ChildWindowInfo *pChildInfo; 421 pChildInfo=(ActiveBasic::PM::ChildWindowInfo *)pUndoState->lpdwData[pos]; 422 delete pChildInfo; 398 423 break; 399 424 case RAD_UNDO_NAME: … … 403 428 delete names; 404 429 } 405 else HeapDefaultFree((void *)pUndoState->lpdwData[pos]); 430 else 431 { 432 std::string *pTempStr = (std::string *)pUndoState->lpdwData[pos]; 433 delete pTempStr; 434 } 406 435 break; 407 436 case RAD_UNDO_CAPTION: 408 HeapDefaultFree((void *)pUndoState->lpdwData[pos]); 437 { 438 std::string *pTempStr = (std::string *)pUndoState->lpdwData[pos]; 439 delete pTempStr; 440 } 409 441 break; 410 442 case RAD_UNDO_FONT: … … 412 444 break; 413 445 case RAD_UNDO_WINDOWMENU: 414 if(pUndoState->lpdwData[pos]) 415 HeapDefaultFree((void *)pUndoState->lpdwData[pos]); 446 { 447 std::string *pTempMenuId = (std::string *)pUndoState->lpdwData[pos]; 448 delete pTempMenuId; 449 } 416 450 break; 417 451 case RAD_UNDO_ICONRES: 418 if(pUndoState->lpdwData[pos]) 419 HeapDefaultFree((void *)pUndoState->lpdwData[pos]); 452 { 453 std::string *pTempStr = (std::string *)pUndoState->lpdwData[pos]; 454 delete pTempStr; 455 } 420 456 break; 421 457 case RAD_UNDO_POSITION: … … 423 459 break; 424 460 case RAD_UNDO_IMAGESTATE: 425 IMAGECTRLINFO *pImageCtrlInfo; 426 pImageCtrlInfo=(IMAGECTRLINFO *)pUndoState->lpdwData[pos]; 427 HeapDefaultFree(pImageCtrlInfo->path); 428 HeapDefaultFree(pImageCtrlInfo); 429 break; 461 { 462 ActiveBasic::PM::ImageControlInfo *pImageCtrlInfo = (ActiveBasic::PM::ImageControlInfo *)pUndoState->lpdwData[pUndoState->NowPos]; 463 464 delete pImageCtrlInfo; 465 466 break; 467 } 430 468 } 431 469 pUndoState->Command[pos]=0; … … 435 473 extern MDIINFO MdiInfo[MAX_WNDNUM]; 436 474 int i; 437 char *temporary,*temp2;438 475 RAD_UNDOSTATE *pUndoState; 439 476 … … 452 489 case RAD_UNDO_INSERTITEM: 453 490 case RAD_UNDO_DELETEITEM: 454 CHILDINFO *pChildInfo,*pSaveChildInfo; 455 pChildInfo=(CHILDINFO *)dwData; 456 pSaveChildInfo=(CHILDINFO *)HeapAlloc(hHeap,0,sizeof(CHILDINFO)); 457 pSaveChildInfo->IdName=(char *)HeapAlloc(hHeap,0,lstrlen(pChildInfo->IdName)+1); 458 lstrcpy(pSaveChildInfo->IdName,pChildInfo->IdName); 491 ActiveBasic::PM::ChildWindowInfo *pChildInfo,*pSaveChildInfo; 492 pChildInfo=(ActiveBasic::PM::ChildWindowInfo *)dwData; 493 pSaveChildInfo = new ActiveBasic::PM::ChildWindowInfo(); 494 pSaveChildInfo->SetName( pChildInfo->GetName() ); 459 495 pSaveChildInfo->pos=pChildInfo->pos; 460 496 pSaveChildInfo->size=pChildInfo->size; 461 pSaveChildInfo->caption=(char *)HeapAlloc(hHeap,0,lstrlen(pChildInfo->caption)+1); 462 lstrcpy(pSaveChildInfo->caption,pChildInfo->caption); 463 pSaveChildInfo->style=pChildInfo->style; 464 pSaveChildInfo->ExStyle=pChildInfo->ExStyle; 497 pSaveChildInfo->SetCaption( pChildInfo->GetCaption() ); 498 pSaveChildInfo->SetStyle( pChildInfo->GetStyle() ); 499 pSaveChildInfo->SetExStyle( pChildInfo->GetExStyle() ); 465 500 pSaveChildInfo->Control=pChildInfo->Control; 466 501 if(pChildInfo->Control==CT_IMAGEBOX){ 467 502 //イメージ ボックスの場合 468 pSaveChildInfo->ImageCtrlInfo.type=pChildInfo->ImageCtrlInfo.type; 469 pSaveChildInfo->ImageCtrlInfo.path=(char *)HeapAlloc(hHeap,0,lstrlen(pChildInfo->ImageCtrlInfo.path)+1); 470 lstrcpy(pSaveChildInfo->ImageCtrlInfo.path,pChildInfo->ImageCtrlInfo.path); 503 pSaveChildInfo->image = pChildInfo->image; 471 504 } 472 505 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)pSaveChildInfo; … … 483 516 } 484 517 else{ 485 temporary=(char *)dwData; 486 temp2=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 487 lstrcpy(temp2,temporary); 488 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temp2; 518 std::string *pTempStr = new std::string( *(std::string *)dwData ); 519 pUndoState->lpdwData[pUndoState->NowPos] = (DWORD)pTempStr; 489 520 } 490 521 break; 491 522 case RAD_UNDO_CAPTION: 492 temporary=(char *)dwData;493 temp2=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);494 lstrcpy(temp2,temporary);495 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temp2;523 { 524 std::string *pTempStr = new std::string( *(std::string *)dwData ); 525 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)pTempStr; 526 } 496 527 break; 497 528 case RAD_UNDO_FONT: … … 506 537 break; 507 538 case RAD_UNDO_WINDOWMENU: 539 { 540 std::string *pTempStr = new std::string( *(std::string *)dwData ); 541 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)pTempStr; 542 } 543 break; 508 544 case RAD_UNDO_ICONRES: 509 if(!dwData) pUndoState->lpdwData[pUndoState->NowPos]=0; 510 else{ 511 temporary=(char *)dwData; 512 temp2=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 513 lstrcpy(temp2,temporary); 514 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)temp2; 545 { 546 std::string *pTempStr = new std::string( *(std::string *)dwData ); 547 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)pTempStr; 515 548 } 516 549 break; … … 528 561 break; 529 562 case RAD_UNDO_IMAGESTATE: 530 IMAGECTRLINFO *pImageCtrlInfo,*pSaveImageCtrlInfo; 531 pImageCtrlInfo=(IMAGECTRLINFO *)dwData; 532 pSaveImageCtrlInfo=(IMAGECTRLINFO *)HeapAlloc(hHeap,0,sizeof(IMAGECTRLINFO)); 533 pSaveImageCtrlInfo->type=pImageCtrlInfo->type; 534 pSaveImageCtrlInfo->path=(char *)HeapAlloc(hHeap,0,lstrlen(pImageCtrlInfo->path)+1); 535 lstrcpy(pSaveImageCtrlInfo->path,pImageCtrlInfo->path); 536 pUndoState->lpdwData[pUndoState->NowPos]=(DWORD)pSaveImageCtrlInfo; 537 break; 563 { 564 ActiveBasic::PM::ImageControlInfo *pImageCtrlInfo = (ActiveBasic::PM::ImageControlInfo *)dwData; 565 ActiveBasic::PM::ImageControlInfo *pSaveImageCtrlInfo = new ActiveBasic::PM::ImageControlInfo( *pImageCtrlInfo ); 566 pUndoState->lpdwData[pUndoState->NowPos] = (DWORD)( new ActiveBasic::PM::ImageControlInfo( *pImageCtrlInfo ) ); 567 break; 568 } 538 569 case RAD_UNDO_TYPE: 539 570 pUndoState->lpdwData[pUndoState->NowPos]=dwData;
Note:
See TracChangeset
for help on using the changeset viewer.