Changeset 623 in dev for trunk/ab5.0/abdev/abdev/Resource.cpp
- Timestamp:
- May 21, 2008, 11:02:07 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/Resource.cpp
r622 r623 11 11 #endif 12 12 13 void GetResourceData(void){ 14 extern HANDLE hHeap; 15 int i2,i3; 16 char *buffer,temporary[MAX_PATH],temp2[MAX_PATH],temp3[MAX_PATH]; 17 HANDLE hFile; 18 19 hFile=CreateFile( projectInfo.GetResourceFileFullPath().c_str(),GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); 20 if(hFile==INVALID_HANDLE_VALUE) return; 21 i2=GetFileSize(hFile,NULL); 22 buffer=(char *)HeapAlloc(hHeap,0,i2+i2+1); 23 ReadFile(hFile,buffer,i2,(DWORD *)&i3,NULL); 24 CloseHandle(hFile); 25 buffer[i3]=0; 26 ChangeReturnCode(buffer); 27 28 i2=0; 29 while(1){ 30 //ID 31 while(buffer[i2]==' '||buffer[i2]=='\t') i2++; 32 for(i3=0;;i2++,i3++){ 33 if(!IsVariableChar(buffer[i2])){ 34 temp3[i3]=0; 13 14 void Project_CursorResInsert(void){ 15 extern HANDLE hHeap; 16 extern LPSTR CursorFileFilter; 17 int i3; 18 char temporary[MAX_PATH]; 19 20 //"カーソル ファイルを指定してください" 21 if(!GetFilePathDialog(hOwner,temporary,CursorFileFilter,STRING_FILEOPENTITLE_CURSOR,TRUE)) return; 22 23 ActiveBasic::Common::ResourceItem item; 24 item.filepath = projectInfo.GetWorkDir().GetRelationalPath( temporary ); 25 26 for(i3=1;;i3++){ 27 sprintf(temporary,"IDC_CURSOR%d",i3); 28 bool isDuplicate = false; 29 BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.cursorResources ) 30 { 31 if( resourceItem.idName == temporary ) 32 { 33 isDuplicate = true; 35 34 break; 36 35 } 37 temp3[i3]=buffer[i2]; 38 } 39 if(temp3[0]=='\0') break; 40 41 //Type 42 while(buffer[i2]==' '||buffer[i2]=='\t') i2++; 43 for(i3=0;;i2++,i3++){ 44 if(!IsVariableChar(buffer[i2])){ 45 temporary[i3]=0; 46 break; 47 } 48 temporary[i3]=buffer[i2]; 49 } 50 51 //FileName 52 while(buffer[i2]==' '||buffer[i2]=='\t') i2++; 53 if(buffer[i2]!='\"'){ 54 //エラー 55 return; 56 } 57 for(i2++,i3=0;;i2++,i3++){ 58 if(buffer[i2]=='\"'){ 59 temp2[i3]=0; 60 break; 61 } 62 temp2[i3]=buffer[i2]; 63 } 64 65 if(lstrcmpi(temporary,"CURSOR")==0){ 66 projectInfo.res.pCursorResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pCursorResInfo,(projectInfo.res.NumberOfCursorRes+1)*sizeof(RESITEMINFO)); 67 68 projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].IdName= 69 (char *)HeapAlloc(hHeap,0,lstrlen(temp3)+1); 70 lstrcpy(projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].IdName,temp3); 71 72 projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].path= 73 (char *)HeapAlloc(hHeap,0,lstrlen(temp2)+1); 74 lstrcpy(projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].path,temp2); 75 76 projectInfo.res.NumberOfCursorRes++; 77 } 78 else if(lstrcmpi(temporary,"BITMAP")==0){ 79 projectInfo.res.pBitmapResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pBitmapResInfo,(projectInfo.res.NumberOfBitmapRes+1)*sizeof(RESITEMINFO)); 80 81 projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].IdName= 82 (char *)HeapAlloc(hHeap,0,lstrlen(temp3)+1); 83 lstrcpy(projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].IdName,temp3); 84 85 projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].path= 86 (char *)HeapAlloc(hHeap,0,lstrlen(temp2)+1); 87 lstrcpy(projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].path,temp2); 88 89 projectInfo.res.NumberOfBitmapRes++; 90 } 91 else if(lstrcmpi(temporary,"ICON")==0){ 92 projectInfo.res.pIconResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pIconResInfo,(projectInfo.res.NumberOfIconRes+1)*sizeof(RESITEMINFO)); 93 94 projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].IdName= 95 (char *)HeapAlloc(hHeap,0,lstrlen(temp3)+1); 96 lstrcpy(projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].IdName,temp3); 97 98 projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].path= 99 (char *)HeapAlloc(hHeap,0,lstrlen(temp2)+1); 100 lstrcpy(projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].path,temp2); 101 102 projectInfo.res.NumberOfIconRes++; 103 } 104 else if(lstrcmpi(temporary,"RT_MANIFEST")==0){ 105 //無視 106 } 107 else{ 108 //エラー 109 return; 110 } 111 112 i2++; 113 while(buffer[i2]==' '||buffer[i2]=='\t') i2++; 114 if(buffer[i2]=='\0') break; 115 else if(buffer[i2]!='\n'){ 116 //エラー 117 return; 118 } 119 i2++; 120 } 121 122 HeapDefaultFree(buffer); 123 } 124 125 void Project_CursorResInsert(void){ 126 extern HANDLE hHeap; 127 extern LPSTR CursorFileFilter; 128 int i2,i3; 129 char temporary[MAX_PATH]; 130 131 //"カーソル ファイルを指定してください" 132 if(!GetFilePathDialog(hOwner,temporary,CursorFileFilter,STRING_FILEOPENTITLE_CURSOR,TRUE)) return; 133 134 lstrcpy( temporary, projectInfo.GetWorkDir().GetRelationalPath( temporary ).c_str() ); 135 136 projectInfo.res.pCursorResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pCursorResInfo,(projectInfo.res.NumberOfCursorRes+1)*sizeof(RESITEMINFO)); 137 138 projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].path= 139 (char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 140 lstrcpy(projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].path,temporary); 141 142 for(i3=1;;i3++){ 143 sprintf(temporary,"IDC_CURSOR%d",i3); 144 for(i2=0;i2<projectInfo.res.NumberOfCursorRes;i2++){ 145 if(lstrcmp(temporary,projectInfo.res.pCursorResInfo[i2].IdName)==0) break; 146 } 147 if(i2==projectInfo.res.NumberOfCursorRes) break; 148 } 149 150 projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].IdName= 151 (char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 152 lstrcpy(projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].IdName,temporary); 36 } 37 38 if( !isDuplicate ) 39 { 40 break; 41 } 42 } 43 item.idName = temporary; 153 44 154 45 //ツリービューに追加 … … 159 50 tv.item.iImage=6; 160 51 tv.item.iSelectedImage=6; 161 tv.hParent =projectInfo.res.hCursorTreeItem;52 tv.hParent = hCursorTreeItemForProjectView; 162 53 tv.item.pszText=temporary; 163 54 164 projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].hTreeItem=165 TreeView_InsertItem(hMaterialTreeView,&tv); 166 167 TreeView_SelectItem(hMaterialTreeView,projectInfo.res.pCursorResInfo[projectInfo.res.NumberOfCursorRes].hTreeItem); 168 169 projectInfo.res.NumberOfCursorRes++; 55 item.hTreeItem = TreeView_InsertItem(hMaterialTreeView,&tv); 56 57 TreeView_SelectItem( hMaterialTreeView, item.hTreeItem ); 58 59 projectInfo.resourceManager.cursorResources.push_back( item ); 60 170 61 projectInfo.ModifuOfResource=1; 171 62 } 172 63 void Project_Cursor_Delete(int CursorInfoNum){ 173 int i;174 175 64 //ツリービューから削除 176 65 extern HWND hMaterialTreeView; 177 TreeView_DeleteItem(hMaterialTreeView,projectInfo.res .pCursorResInfo[CursorInfoNum].hTreeItem);66 TreeView_DeleteItem(hMaterialTreeView,projectInfo.resourceManager.cursorResources[CursorInfoNum].hTreeItem); 178 67 179 68 //projectInfo.pCursorInfo構造体から削除 180 HeapDefaultFree(projectInfo.res.pCursorResInfo[CursorInfoNum].IdName); 181 HeapDefaultFree(projectInfo.res.pCursorResInfo[CursorInfoNum].path); 182 projectInfo.res.NumberOfCursorRes--; 183 for(i=CursorInfoNum;i<projectInfo.res.NumberOfCursorRes;i++) 184 projectInfo.res.pCursorResInfo[i]=projectInfo.res.pCursorResInfo[i+1]; 69 Jenga::Common::EraseVectorItem<ActiveBasic::Common::ResourceItems>( projectInfo.resourceManager.cursorResources, CursorInfoNum ); 185 70 186 71 projectInfo.ModifuOfResource=1; … … 194 79 TVITEM tvItem; 195 80 196 if(!DialogBoxParam(hResInst,MAKEINTRESOURCE(IDD_INPUTID),hOwner,(DLGPROC)DlgProject_ResourceID_Input,(long)projectInfo.res .pCursorResInfo[CursorInfoNum].IdName)) return;81 if(!DialogBoxParam(hResInst,MAKEINTRESOURCE(IDD_INPUTID),hOwner,(DLGPROC)DlgProject_ResourceID_Input,(long)projectInfo.resourceManager.cursorResources[CursorInfoNum].idName.c_str())) return; 197 82 198 83 //重複チェック 199 for(i2=0;i2<projectInfo.res .NumberOfCursorRes;i2++){84 for(i2=0;i2<projectInfo.resourceManager.cursorResources.size();i2++){ 200 85 if(i2==CursorInfoNum) continue; 201 if(lstrcmp(NewIdName,projectInfo.res.pCursorResInfo[i2].IdName)==0){ 86 if( projectInfo.resourceManager.cursorResources[i2].idName == NewIdName ) 87 { 202 88 //"ID \"%s\" は既にプロジェクト内に存在します。" 203 89 sprintf(temporary,STRING_DUPLICATIONERROR_ID_IN_PROJECT,NewIdName); … … 207 93 } 208 94 209 HeapDefaultFree(projectInfo.res.pCursorResInfo[CursorInfoNum].IdName); 210 projectInfo.res.pCursorResInfo[CursorInfoNum].IdName=(char *)HeapAlloc(hHeap,0,lstrlen(NewIdName)+1); 211 lstrcpy(projectInfo.res.pCursorResInfo[CursorInfoNum].IdName,NewIdName); 212 213 tvItem.hItem=projectInfo.res.pCursorResInfo[CursorInfoNum].hTreeItem; 95 projectInfo.resourceManager.cursorResources[CursorInfoNum].idName = NewIdName; 96 97 tvItem.hItem=projectInfo.resourceManager.cursorResources[CursorInfoNum].hTreeItem; 214 98 tvItem.mask=TVIF_TEXT; 215 tvItem.pszText=projectInfo.res.pCursorResInfo[CursorInfoNum].IdName; 216 tvItem.cchTextMax=lstrlen(projectInfo.res.pCursorResInfo[CursorInfoNum].IdName)+1; 99 lstrcpy( temporary, projectInfo.resourceManager.cursorResources[CursorInfoNum].idName.c_str() ); 100 tvItem.pszText=temporary; 101 tvItem.cchTextMax=lstrlen(temporary)+1; 217 102 TreeView_SetItem(hMaterialTreeView,&tvItem); 218 103 … … 220 105 221 106 TreeView_SortChildren(hMaterialTreeView, 222 TreeView_GetParent(hMaterialTreeView,projectInfo.res .pCursorResInfo[CursorInfoNum].hTreeItem),107 TreeView_GetParent(hMaterialTreeView,projectInfo.resourceManager.cursorResources[CursorInfoNum].hTreeItem), 223 108 0); 224 109 } … … 233 118 if(!GetFilePathDialog(hOwner,temporary,BitmapFileFilter,STRING_FILEOPENTITLE_BITMAP,TRUE)) return; 234 119 235 lstrcpy( temporary, projectInfo.GetWorkDir().GetRelationalPath( temporary ).c_str() ); 236 237 projectInfo.res.pBitmapResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pBitmapResInfo,(projectInfo.res.NumberOfBitmapRes+1)*sizeof(RESITEMINFO)); 238 239 projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].path= 240 (char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 241 lstrcpy(projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].path,temporary); 120 ActiveBasic::Common::ResourceItem item; 121 item.filepath = projectInfo.GetWorkDir().GetRelationalPath( temporary ); 242 122 243 123 for(i3=1;;i3++){ 244 124 sprintf(temporary,"IDB_BITMAP%d",i3); 245 for(i2=0;i2<projectInfo.res.NumberOfBitmapRes;i2++){ 246 if(lstrcmp(temporary,projectInfo.res.pBitmapResInfo[i2].IdName)==0) break; 247 } 248 if(i2==projectInfo.res.NumberOfBitmapRes) break; 249 } 250 251 projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].IdName= 252 (char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 253 lstrcpy(projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].IdName,temporary); 125 bool isDuplicate = false; 126 BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.bitmapResources ) 127 { 128 if( resourceItem.idName == temporary ) 129 { 130 isDuplicate = true; 131 break; 132 } 133 } 134 135 if( !isDuplicate ) 136 { 137 break; 138 } 139 } 140 item.idName = temporary; 254 141 255 142 //ツリービューに追加 … … 260 147 tv.item.iImage=5; 261 148 tv.item.iSelectedImage=5; 262 tv.hParent =projectInfo.res.hBitmapTreeItem;149 tv.hParent = hBitmapTreeItemForProjectView; 263 150 tv.item.pszText=temporary; 264 151 265 projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].hTreeItem=266 TreeView_InsertItem(hMaterialTreeView,&tv); 267 268 TreeView_SelectItem(hMaterialTreeView,projectInfo.res.pBitmapResInfo[projectInfo.res.NumberOfBitmapRes].hTreeItem); 269 270 projectInfo.res.NumberOfBitmapRes++; 152 item.hTreeItem = TreeView_InsertItem(hMaterialTreeView,&tv); 153 154 TreeView_SelectItem(hMaterialTreeView,item.hTreeItem); 155 156 projectInfo.resourceManager.bitmapResources.push_back( item ); 157 271 158 projectInfo.ModifuOfResource=1; 272 159 … … 283 170 } 284 171 void Project_Bitmap_Delete(int BitmapInfoNum){ 285 int i;286 287 172 //ツリービューから削除 288 173 extern HWND hMaterialTreeView; 289 TreeView_DeleteItem(hMaterialTreeView,projectInfo.res .pBitmapResInfo[BitmapInfoNum].hTreeItem);174 TreeView_DeleteItem(hMaterialTreeView,projectInfo.resourceManager.bitmapResources[BitmapInfoNum].hTreeItem); 290 175 291 176 //projectInfo.pBitmapInfo構造体から削除 292 HeapDefaultFree(projectInfo.res.pBitmapResInfo[BitmapInfoNum].IdName); 293 HeapDefaultFree(projectInfo.res.pBitmapResInfo[BitmapInfoNum].path); 294 projectInfo.res.NumberOfBitmapRes--; 295 for(i=BitmapInfoNum;i<projectInfo.res.NumberOfBitmapRes;i++) 296 projectInfo.res.pBitmapResInfo[i]=projectInfo.res.pBitmapResInfo[i+1]; 177 Jenga::Common::EraseVectorItem<ActiveBasic::Common::ResourceItems>( projectInfo.resourceManager.bitmapResources, BitmapInfoNum ); 297 178 298 179 projectInfo.ModifuOfResource=1; … … 306 187 TVITEM tvItem; 307 188 308 if(!DialogBoxParam(hResInst,MAKEINTRESOURCE(IDD_INPUTID),hOwner,(DLGPROC)DlgProject_ResourceID_Input,(long)projectInfo.res .pBitmapResInfo[BitmapInfoNum].IdName)) return;189 if(!DialogBoxParam(hResInst,MAKEINTRESOURCE(IDD_INPUTID),hOwner,(DLGPROC)DlgProject_ResourceID_Input,(long)projectInfo.resourceManager.bitmapResources[BitmapInfoNum].idName.c_str())) return; 309 190 310 191 //重複チェック 311 for(i2=0;i2<projectInfo.res .NumberOfBitmapRes;i2++){192 for(i2=0;i2<projectInfo.resourceManager.bitmapResources.size();i2++){ 312 193 if(i2==BitmapInfoNum) continue; 313 if(lstrcmp(NewIdName,projectInfo.res.pBitmapResInfo[i2].IdName)==0){ 194 if( projectInfo.resourceManager.bitmapResources[i2].idName == NewIdName ) 195 { 314 196 //"ID \"%s\" は既にプロジェクト内に存在します。" 315 197 sprintf(temporary,STRING_DUPLICATIONERROR_ID_IN_PROJECT,NewIdName); … … 319 201 } 320 202 321 HeapDefaultFree(projectInfo.res.pBitmapResInfo[BitmapInfoNum].IdName); 322 projectInfo.res.pBitmapResInfo[BitmapInfoNum].IdName=(char *)HeapAlloc(hHeap,0,lstrlen(NewIdName)+1); 323 lstrcpy(projectInfo.res.pBitmapResInfo[BitmapInfoNum].IdName,NewIdName); 324 325 tvItem.hItem=projectInfo.res.pBitmapResInfo[BitmapInfoNum].hTreeItem; 203 projectInfo.resourceManager.bitmapResources[BitmapInfoNum].idName = NewIdName; 204 205 tvItem.hItem=projectInfo.resourceManager.bitmapResources[BitmapInfoNum].hTreeItem; 326 206 tvItem.mask=TVIF_TEXT; 327 tvItem.pszText=projectInfo.res.pBitmapResInfo[BitmapInfoNum].IdName; 328 tvItem.cchTextMax=lstrlen(projectInfo.res.pBitmapResInfo[BitmapInfoNum].IdName)+1; 207 lstrcpy( temporary, projectInfo.resourceManager.bitmapResources[BitmapInfoNum].idName.c_str() ); 208 tvItem.pszText = temporary; 209 tvItem.cchTextMax=lstrlen(temporary)+1; 329 210 TreeView_SetItem(hMaterialTreeView,&tvItem); 330 211 … … 332 213 333 214 TreeView_SortChildren(hMaterialTreeView, 334 TreeView_GetParent(hMaterialTreeView,projectInfo.res .pBitmapResInfo[BitmapInfoNum].hTreeItem),215 TreeView_GetParent(hMaterialTreeView,projectInfo.resourceManager.bitmapResources[BitmapInfoNum].hTreeItem), 335 216 0); 336 217 } … … 344 225 if(!GetFilePathDialog(hOwner,temporary,IconFileFilter,STRING_FILEOPENTITLE_ICON,TRUE)) return; 345 226 346 lstrcpy( temporary, projectInfo.GetWorkDir().GetRelationalPath( temporary ).c_str() ); 347 348 projectInfo.res.pIconResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pIconResInfo,(projectInfo.res.NumberOfIconRes+1)*sizeof(RESITEMINFO)); 349 350 projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].path= 351 (char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 352 lstrcpy(projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].path,temporary); 227 ActiveBasic::Common::ResourceItem item; 228 item.filepath = projectInfo.GetWorkDir().GetRelationalPath( temporary ); 353 229 354 230 for(i3=1;;i3++){ 355 231 sprintf(temporary,"IDI_ICON%d",i3); 356 for(i2=0;i2<projectInfo.res.NumberOfIconRes;i2++){ 357 if(lstrcmp(temporary,projectInfo.res.pIconResInfo[i2].IdName)==0) break; 358 } 359 if(i2==projectInfo.res.NumberOfIconRes) break; 360 } 361 362 projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].IdName= 363 (char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1); 364 lstrcpy(projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].IdName,temporary); 232 bool isDuplicate = false; 233 BOOST_FOREACH( const ActiveBasic::Common::ResourceItem &resourceItem, projectInfo.resourceManager.iconResources ) 234 { 235 if( resourceItem.idName == temporary ) 236 { 237 isDuplicate = true; 238 break; 239 } 240 } 241 242 if( !isDuplicate ) 243 { 244 break; 245 } 246 } 247 item.idName = temporary; 365 248 366 249 //ツリービューに追加 … … 371 254 tv.item.iImage=4; 372 255 tv.item.iSelectedImage=4; 373 tv.hParent =projectInfo.res.hIconTreeItem;374 if(projectInfo.res .NumberOfIconRes==0) lstrcat(temporary," (Main)");256 tv.hParent = hIconTreeItemForProjectView; 257 if(projectInfo.resourceManager.iconResources.size()==0) lstrcat(temporary," (Main)"); 375 258 tv.item.pszText=temporary; 376 259 377 projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].hTreeItem=260 item.hTreeItem= 378 261 TreeView_InsertItem(hMaterialTreeView,&tv); 379 262 380 TreeView_SelectItem(hMaterialTreeView,projectInfo.res.pIconResInfo[projectInfo.res.NumberOfIconRes].hTreeItem); 381 382 projectInfo.res.NumberOfIconRes++; 263 TreeView_SelectItem(hMaterialTreeView,item.hTreeItem); 264 265 projectInfo.resourceManager.iconResources.push_back( item ); 266 383 267 projectInfo.ModifuOfResource=1; 384 268 … … 401 285 //ツリービューから削除 402 286 extern HWND hMaterialTreeView; 403 TreeView_DeleteItem(hMaterialTreeView,projectInfo.res .pIconResInfo[IconInfoNum].hTreeItem);287 TreeView_DeleteItem(hMaterialTreeView,projectInfo.resourceManager.iconResources[IconInfoNum].hTreeItem); 404 288 405 289 //projectInfo.pIconInfo構造体から削除 406 HeapDefaultFree(projectInfo.res.pIconResInfo[IconInfoNum].IdName); 407 HeapDefaultFree(projectInfo.res.pIconResInfo[IconInfoNum].path); 408 projectInfo.res.NumberOfIconRes--; 409 for(i2=IconInfoNum;i2<projectInfo.res.NumberOfIconRes;i2++) projectInfo.res.pIconResInfo[i2]=projectInfo.res.pIconResInfo[i2+1]; 410 411 if(IconInfoNum==0&&projectInfo.res.NumberOfIconRes){ 290 Jenga::Common::EraseVectorItem<ActiveBasic::Common::ResourceItems>( projectInfo.resourceManager.iconResources, IconInfoNum ); 291 292 if(IconInfoNum==0&&projectInfo.resourceManager.iconResources.size()){ 412 293 tv.mask=TVIF_TEXT|TVIF_HANDLE; 413 294 tv.pszText=temporary; 414 295 tv.cchTextMax=MAX_PATH; 415 tv.hItem=projectInfo.res .pIconResInfo[0].hTreeItem;296 tv.hItem=projectInfo.resourceManager.iconResources[0].hTreeItem; 416 297 TreeView_GetItem(hMaterialTreeView,&tv); 417 298 lstrcat(tv.pszText," (Main)"); … … 439 320 TVITEM tvItem; 440 321 441 if(!DialogBoxParam(hResInst,MAKEINTRESOURCE(IDD_INPUTID),hOwner,(DLGPROC)DlgProject_ResourceID_Input,(long)projectInfo.res .pIconResInfo[IconInfoNum].IdName)) return;322 if(!DialogBoxParam(hResInst,MAKEINTRESOURCE(IDD_INPUTID),hOwner,(DLGPROC)DlgProject_ResourceID_Input,(long)projectInfo.resourceManager.iconResources[IconInfoNum].idName.c_str())) return; 442 323 443 324 //重複チェック 444 for(i2=0;i2<projectInfo.res .NumberOfIconRes;i2++){325 for(i2=0;i2<projectInfo.resourceManager.iconResources.size();i2++){ 445 326 if(i2==IconInfoNum) continue; 446 if(lstrcmp(NewIdName,projectInfo.res.pIconResInfo[i2].IdName)==0){ 327 if( projectInfo.resourceManager.iconResources[i2].idName == NewIdName ) 328 { 447 329 //"ID \"%s\" は既にプロジェクト内に存在します。" 448 330 sprintf(temporary,STRING_DUPLICATIONERROR_ID_IN_PROJECT,NewIdName); … … 452 334 } 453 335 454 HeapDefaultFree(projectInfo.res.pIconResInfo[IconInfoNum].IdName); 455 projectInfo.res.pIconResInfo[IconInfoNum].IdName=(char *)HeapAlloc(hHeap,0,lstrlen(NewIdName)+1); 456 lstrcpy(projectInfo.res.pIconResInfo[IconInfoNum].IdName,NewIdName); 457 458 tvItem.hItem=projectInfo.res.pIconResInfo[IconInfoNum].hTreeItem; 336 projectInfo.resourceManager.iconResources[IconInfoNum].idName = NewIdName; 337 338 tvItem.hItem=projectInfo.resourceManager.iconResources[IconInfoNum].hTreeItem; 459 339 tvItem.mask=TVIF_TEXT; 460 340 if(IconInfoNum==0){ 461 sprintf(temporary,"%s (Main)",projectInfo.res.pIconResInfo[IconInfoNum].IdName); 462 tvItem.pszText=temporary; 463 } 464 else tvItem.pszText=projectInfo.res.pIconResInfo[IconInfoNum].IdName; 465 tvItem.cchTextMax=lstrlen(projectInfo.res.pIconResInfo[IconInfoNum].IdName)+1; 341 sprintf(temporary,"%s (Main)",projectInfo.resourceManager.iconResources[IconInfoNum].idName.c_str()); 342 } 343 else 344 { 345 sprintf(temporary,"%s",projectInfo.resourceManager.iconResources[IconInfoNum].idName.c_str()); 346 } 347 tvItem.pszText=temporary; 348 tvItem.cchTextMax=lstrlen(temporary)+1; 466 349 TreeView_SetItem(hMaterialTreeView,&tvItem); 467 350 … … 469 352 470 353 TreeView_SortChildren(hMaterialTreeView, 471 TreeView_GetParent(hMaterialTreeView,projectInfo.res .pIconResInfo[IconInfoNum].hTreeItem),354 TreeView_GetParent(hMaterialTreeView,projectInfo.resourceManager.iconResources[IconInfoNum].hTreeItem), 472 355 0); 473 356 }
Note:
See TracChangeset
for help on using the changeset viewer.