Changeset 621 in dev for trunk/ab5.0/abdev/abdev/src
- Timestamp:
- May 19, 2008, 6:22:42 PM (16 years ago)
- Location:
- trunk/ab5.0/abdev/abdev/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/ab5.0/abdev/abdev/src/MainFrame.cpp
r620 r621 507 507 } 508 508 509 projectInfo. Open(temporary);509 projectInfo.Load(temporary); 510 510 } 511 511 512 512 void MainFrame::OnCmdProjectSave( UINT uNotifyCode, int nID, CWindow wndCtl ) 513 513 { 514 SaveProject();514 projectInfo.Save(); 515 515 } 516 516 … … 551 551 if(MdiInfo[i].hwnd) SaveDocument(MdiInfo[i].hwnd,NULL); 552 552 } 553 if( projectInfo.IsOpened() ) SaveProject(); 553 if( projectInfo.IsOpened() ) 554 { 555 projectInfo.Save(); 556 } 554 557 } 555 558 -
trunk/ab5.0/abdev/abdev/src/ProjectManager/ProjectManager.cpp
r620 r621 5 5 void OpenWorkfile( const std::string &path ); 6 6 7 void Project:: Open( char *path )7 void Project::Load( char *path ) 8 8 { 9 9 extern HANDLE hHeap; … … 268 268 this->modify=0; 269 269 this->ModifyOfMaterial=0; 270 this->ModifuOfResource=0; 271 } 272 273 void SetStatusText(char *MenuText); 274 void Project::Save() 275 { 276 extern MDIINFO MdiInfo[MAX_WNDNUM]; 277 int i,i2,i3,WndNum; 278 char temporary[MAX_PATH],buffer[32767]; 279 HWND hChild; 280 281 SetStatusText( "プロジェクトを保存中..." ); 282 283 //プロジェクトファイルのバージョンを設定 284 this->dwVersion=PROJECT_VERSION; 285 286 hChild=GetWindow(hClient,GW_CHILD); 287 while(hChild){ 288 WndNum=GetWndNum(hChild); 289 if(IS_DOCUMENT_TEXT(MdiInfo[WndNum].DocType)){ 290 if( MdiInfo[WndNum].pMdiTextEdit->IsModified() ){ 291 for(i=0;i<this->pobj_DBFileInfo->iNum;i++){ 292 this->pobj_DBFileInfo->ppobj_FileInfo[i]->GetFullPath(temporary); 293 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){ 294 SaveDocument(hChild,NULL); 295 break; 296 } 297 } 298 } 299 } 300 if(MdiInfo[WndNum].DocType==WNDTYPE_ICONEDIT){ 301 if(MdiInfo[WndNum].MdiIconEditInfo->bModify){ 302 for(i=0;i<this->res.NumberOfIconRes;i++){ 303 lstrcpy(temporary,this->res.pIconResInfo[i].path); 304 lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() ); 305 if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){ 306 SaveDocument(hChild,NULL); 307 break; 308 } 309 } 310 } 311 } 312 hChild=GetNextWindow(hChild,GW_HWNDNEXT); 313 } 314 315 316 ////////////////////////////////////// 317 //プロジェクトファイル(*.pj)を作成 318 lstrcpy(buffer,"\' ActiveBasic Project file.\r\n\r\n"); 319 i2=lstrlen(buffer); 320 sprintf(buffer+i2,"#VERSION=%d\r\n\r\n",this->dwVersion); 321 i2+=lstrlen(buffer+i2); 322 sprintf(buffer+i2,"#MODULETYPE=%d\r\n\r\n",(int)this->GetModuleType()); 323 i2+=lstrlen(buffer+i2); 324 sprintf(buffer+i2,"#NAME=%s\r\n\r\n",this->GetName().c_str()); 325 i2+=lstrlen(buffer+i2); 326 extern HWND hSelectCompilerCombo; 327 if(SendMessage(hSelectCompilerCombo,CB_GETCURSEL,0,0)==0){ 328 sprintf(buffer+i2,"#PLATFORM=32\r\n\r\n",this->GetName().c_str()); 329 i2+=lstrlen(buffer+i2); 330 } 331 else{ 332 sprintf(buffer+i2,"#PLATFORM=64\r\n\r\n",this->GetName().c_str()); 333 i2+=lstrlen(buffer+i2); 334 } 335 sprintf(buffer+i2,"#USEWINDOW=%d\r\n\r\n",this->windowInfos.size()); 336 i2+=lstrlen(buffer+i2); 337 sprintf(buffer+i2,"#OPTION=&H%08x\r\n\r\n",this->dwOption); 338 i2+=lstrlen(buffer+i2); 339 sprintf(buffer+i2,"#OUTPUT_RELEASE=%s\r\n\r\n",this->lpszOutput_Release); 340 i2+=lstrlen(buffer+i2); 341 sprintf(buffer+i2,"#OUTPUT_DEBUG=%s\r\n\r\n",this->lpszOutput_Debug); 342 i2+=lstrlen(buffer+i2); 343 sprintf(buffer+i2,"#MANIFEST=%s\r\n\r\n",this->szManifestPath); 344 i2+=lstrlen(buffer+i2); 345 sprintf(buffer+i2,"#DEBUG_CMD_LINE=%s\r\n\r\n",this->szCmdLine); 346 i2+=lstrlen(buffer+i2); 347 sprintf(buffer+i2,"#DEBUG_EXE_PATH=%s\r\n\r\n",this->szExePath); 348 i2+=lstrlen(buffer+i2); 349 if(this->ResourceFileName[0]){ 350 sprintf(buffer+i2,"#RESOURCE=%s\r\n\r\n",this->ResourceFileName); 351 i2+=lstrlen(buffer+i2); 352 } 353 else{ 354 lstrcpy(buffer+i2,"#RESOURCE=0\r\n\r\n"); 355 i2+=lstrlen(buffer+i2); 356 } 357 sprintf(buffer+i2,"#SOURCE\r\n"); 358 i2+=lstrlen(buffer+i2); 359 for(i=0;i<this->pobj_DBFileInfo->iNum;i++){ 360 sprintf(buffer+i2,"%s\r\n",this->pobj_DBFileInfo->ppobj_FileInfo[i]->m_path); 361 i2+=lstrlen(buffer+i2); 362 } 363 364 //保存 365 sprintf(temporary,"%s%s.pj",this->GetWorkDir().GetPath().c_str(),this->GetName().c_str()); 366 WriteBuffer(temporary,buffer,i2); 367 368 369 ////////////////////////////////// 370 // リソースファイル(*.rc、resource.ab)を作成 371 if(this->ResourceFileName[0]){ 372 i2=0; 373 i3=101; 374 for(i=0;i<this->res.NumberOfCursorRes;i++,i3++){ 375 sprintf(buffer+i2,"Const %s=%d\r\n", 376 this->res.pCursorResInfo[i].IdName, 377 i3); 378 i2+=lstrlen(buffer+i2); 379 } 380 for(i=0;i<this->res.NumberOfBitmapRes;i++,i3++){ 381 sprintf(buffer+i2,"Const %s=%d\r\n", 382 this->res.pBitmapResInfo[i].IdName, 383 i3); 384 i2+=lstrlen(buffer+i2); 385 } 386 for(i=0;i<this->res.NumberOfIconRes;i++,i3++){ 387 sprintf(buffer+i2,"Const %s=%d\r\n", 388 this->res.pIconResInfo[i].IdName, 389 i3); 390 i2+=lstrlen(buffer+i2); 391 } 392 393 //保存(resource.ab) 394 lstrcpy(temporary,"resource.ab"); 395 lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() ); 396 WriteBuffer(temporary,buffer,i2); 397 398 i2=0; 399 for(i=0;i<this->res.NumberOfCursorRes;i++){ 400 sprintf(buffer+i2,"%s CURSOR \"%s\"\r\n", 401 this->res.pCursorResInfo[i].IdName, 402 this->res.pCursorResInfo[i].path); 403 i2+=lstrlen(buffer+i2); 404 } 405 for(i=0;i<this->res.NumberOfBitmapRes;i++){ 406 sprintf(buffer+i2,"%s BITMAP \"%s\"\r\n", 407 this->res.pBitmapResInfo[i].IdName, 408 this->res.pBitmapResInfo[i].path); 409 i2+=lstrlen(buffer+i2); 410 } 411 for(i=0;i<this->res.NumberOfIconRes;i++){ 412 sprintf(buffer+i2,"%s ICON \"%s\"\r\n", 413 this->res.pIconResInfo[i].IdName, 414 this->res.pIconResInfo[i].path); 415 i2+=lstrlen(buffer+i2); 416 } 417 418 //マニフェスト 419 if(this->dwOption&PJ_OP_RC_MANIFEST){ 420 sprintf(buffer+i2,"CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST \"%s\"\r\n", 421 this->szManifestPath); 422 i2+=lstrlen(buffer+i2); 423 } 424 425 //保存 426 lstrcpy(temporary,this->ResourceFileName); 427 lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() ); 428 WriteBuffer(temporary,buffer,i2); 429 } 430 431 432 /////////////////////////////////////// 433 //インデックスファイル(*.idx)を作成 434 buffer[0]=0; 435 lstrcpy(buffer,"' インデックス プログラム\r\n"); 436 i2=lstrlen(buffer); 437 if(this->dwOption&PJ_OP_SOURCE_MASK){ 438 if(this->dwOption&PJ_OP_STRICT){ 439 /* #strictディレクティブは今は使われていない 440 lstrcpy(buffer+i2,"\r\n"); 441 i2+=lstrlen(buffer+i2); 442 lstrcpy(buffer+i2,"#strict"); 443 i2+=lstrlen(buffer+i2); 444 lstrcpy(buffer+i2,"\r\n"); 445 i2+=lstrlen(buffer+i2); 446 */ 447 } 448 lstrcpy(buffer+i2,"\r\n"); 449 i2+=lstrlen(buffer+i2); 450 lstrcpy(buffer+i2,"'Win32APIの定義ファイル\r\n"); 451 i2+=lstrlen(buffer+i2); 452 if(this->dwOption&PJ_OP_MMSYSTEM){ 453 lstrcpy(buffer+i2,"#include <api_mmsys.sbp>\r\n"); 454 i2+=lstrlen(buffer+i2); 455 } 456 if(this->dwOption&PJ_OP_COMMCTRL){ 457 lstrcpy(buffer+i2,"#include <api_commctrl.sbp>\r\n"); 458 i2+=lstrlen(buffer+i2); 459 } 460 if(this->dwOption&PJ_OP_RICHEDIT){ 461 lstrcpy(buffer+i2,"#include <api_richedit.sbp>\r\n"); 462 i2+=lstrlen(buffer+i2); 463 } 464 if(this->dwOption&PJ_OP_WINSOCK){ 465 lstrcpy(buffer+i2,"#include <api_winsock2.sbp>\r\n"); 466 i2+=lstrlen(buffer+i2); 467 } 468 } 469 if( !this->windowInfos.empty() ) 470 { 471 lstrcpy(buffer+i2,"\r\n"); 472 i2+=lstrlen(buffer+i2); 473 lstrcpy(buffer+i2,"'RADツールが生成するウィンドウ制御プログラム\r\n"); 474 i2+=lstrlen(buffer+i2); 475 sprintf(buffer+i2,"#include \"Callback.wbp\"\r\n"); 476 i2+=lstrlen(buffer+i2); 477 } 478 if(this->pobj_DBFileInfo->iNum>1){ 479 lstrcpy(buffer+i2,"\r\n"); 480 i2+=lstrlen(buffer+i2); 481 lstrcpy(buffer+i2,"'プロジェクト内のプログラム ファイル\r\n"); 482 i2+=lstrlen(buffer+i2); 483 for(i=1;i<this->pobj_DBFileInfo->iNum;i++){ 484 //メインファイルは含まない 485 sprintf(buffer+i2,"#include \"%s\"\r\n",this->pobj_DBFileInfo->ppobj_FileInfo[i]->m_path); 486 i2+=lstrlen(buffer+i2); 487 lstrcpy(buffer+i2,"_ClearNamespaceImported\r\n"); 488 i2+=lstrlen(buffer+i2); 489 } 490 } 491 if( !this->windowInfos.empty() ) 492 { 493 lstrcpy(buffer+i2,"\r\n"); 494 i2+=lstrlen(buffer+i2); 495 lstrcpy(buffer+i2,"'RADツールが生成するウィンドウ生成プログラム\r\n"); 496 i2+=lstrlen(buffer+i2); 497 sprintf(buffer+i2,"#include \"MakeWindow.wbp\"\r\n"); 498 i2+=lstrlen(buffer+i2); 499 } 500 if(this->ResourceFileName[0]){ 501 //リソースファイルが含まれる場合 502 lstrcpy(buffer+i2,"\r\n"); 503 i2+=lstrlen(buffer+i2); 504 lstrcpy(buffer+i2,"'リソースファイル\r\n"); 505 i2+=lstrlen(buffer+i2); 506 lstrcpy(buffer+i2,"#include \"resource.ab\"\r\n"); 507 i2+=lstrlen(buffer+i2); 508 sprintf(buffer+i2,"#resource \"%s.rc\"\r\n",this->GetName().c_str()); 509 i2+=lstrlen(buffer+i2); 510 } 511 512 //保存 513 sprintf(temporary,"%s%s.idx",this->GetWorkDir().GetPath().c_str(),this->GetName().c_str()); 514 WriteBuffer(temporary,buffer,i2); 515 516 517 if( !this->windowInfos.empty() ) 518 { 519 ///////////////////////////////////////////////////// 520 //ウィンドウ関連ファイル(*.wnd)を作成、保存 521 if(this->ModifyOfMaterial){ 522 sprintf(temporary,"%s%s.wnd",this->GetWorkDir().GetPath().c_str(),this->GetName().c_str()); 523 SaveWindowFile( temporary, this->windowInfos ); 524 } 525 526 //.wbpファイルを生成 527 SaveWindowProgram(); 528 } 529 530 531 MakeWorkFile(); 532 533 SetStatusText(""); 534 535 this->modify=0; 270 536 this->ModifuOfResource=0; 271 537 }
Note:
See TracChangeset
for help on using the changeset viewer.