Changeset 620 in dev


Ignore:
Timestamp:
May 19, 2008, 6:17:02 PM (16 years ago)
Author:
dai_9181
Message:

Projectクラスをリファクタリング中。

Location:
trunk/ab5.0
Files:
20 edited

Legend:

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

    r618 r620  
    1313void CFileInfo::GetFullPath(char *buffer){
    1414    lstrcpy(buffer,m_path);
    15     ::GetFullPath(buffer,projectInfo.dir);
     15    lstrcpy( buffer, projectInfo.GetWorkDir().GetFullPath( buffer ).c_str() );
    1616}
    1717
  • trunk/ab5.0/abdev/abdev/Common.h

    r619 r620  
    667667_int8 WriteBuffer_NonErrMsg(char *path,char *buffer,int length);
    668668void GetRelationalPath(char *path,char *dir);
    669 void GetFullPath(char *path,char *dir);
     669void GetFullPath(char *path,const char *dir);
    670670void RemoveDirectoryStrong(const char *dirPath);
    671671BOOL GetFilePathDialog(HWND hwnd,char *filename,LPSTR Filter,LPSTR Title,_int8 IsOpen);
    672672BOOL GetFolder(HWND hWnd,char *folder,char *OpenFolderTitle);
    673673int GetFileExtension(char *path);
    674 HWND OpenFileWithExtension(char *OpenFileName);
     674HWND OpenFileWithExtension( const std::string &filePath );
    675675BOOL SaveDocument(HWND hChild,char *SaveFileName);
    676676BOOL ShortPathToLongPath(char ShortPath[MAX_PATH],char *LongPath);
     
    10921092void AddIconType(int WndNum,int IconType);
    10931093void DeleteIconType(int WndNum);
    1094 void NewIconEditWindow(char *filepath);
     1094void NewIconEditWindow(const char *filepath);
    10951095void SaveIconFile(char *filepath,HWND hwnd);
    10961096LRESULT CALLBACK MDIClientWindow_IconEdit(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam);
  • trunk/ab5.0/abdev/abdev/DocumentAdvice.cpp

    r619 r620  
    118118}
    119119
    120 char *reflexive_Include(char *buffer,char ***pppFilePath,int *pFileNum,char *pDefaultDir){
     120char *reflexive_Include(char *buffer,char ***pppFilePath,int *pFileNum,const char *pDefaultDir){
    121121    extern HANDLE hHeap;
    122122    int i,i2,i3,i4,sw1,sw2,FileSize;
     
    255255
    256256    //参照ディレクトリ
    257     char *pDefaultDir;
     257    const char *pDefaultDir;
    258258    if( projectInfo.IsOpened() )
    259         pDefaultDir=projectInfo.dir;
     259        pDefaultDir=projectInfo.GetWorkDir().GetPath().c_str();
    260260    else pDefaultDir=pj_editor_Dir;
    261261
  • trunk/ab5.0/abdev/abdev/DrawWindow.cpp

    r618 r620  
    997997        if(i2!=projectInfo.res.NumberOfBitmapRes){
    998998            lstrcpy(temporary,projectInfo.res.pBitmapResInfo[i2].path);
    999             GetFullPath(temporary,projectInfo.dir);
     999            lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    10001000            hImage=LoadImage(NULL,temporary,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
    10011001
     
    13661366                    lstrcpy(temporary,projectInfo.res.pIconResInfo[i2].path);
    13671367                }
    1368                 GetFullPath(temporary,projectInfo.dir);
     1368                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    13691369                hImage=LoadImage(NULL,temporary,IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
    13701370                if(hImage){
     
    14101410                    lstrcpy(temporary,projectInfo.res.pBitmapResInfo[i2].path);
    14111411                }
    1412                 GetFullPath(temporary,projectInfo.dir);
     1412                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    14131413                hImage=LoadImage(NULL,temporary,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
    14141414                if(hImage){
  • trunk/ab5.0/abdev/abdev/FileOperation.cpp

    r619 r620  
    136136    lstrcpy(path,temp3);
    137137}
    138 void GetFullPath(char *path,char *dir){
     138void GetFullPath(char *path,const char *dir){
    139139    int i,i2,i3,i4;
    140140    char temporary[MAX_PATH];
     
    290290    return FT_OTHER;
    291291}
    292 HWND OpenFileWithExtension(char *OpenFileName){
     292HWND OpenFileWithExtension( const std::string &filePath )
     293{
    293294    int i;
    294295    _int8 DocumentType;
     296
     297    // TODO:
     298    char *OpenFileName = const_cast<char *>(filePath.c_str());
    295299
    296300    i=GetFileExtension(OpenFileName);
     
    348352
    349353        if(projectInfo.ModifyOfMaterial){
    350             sprintf(temporary,"%s%s.wnd",projectInfo.dir,projectInfo.GetName().c_str());
     354            sprintf(temporary,"%s%s.wnd",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.GetName().c_str());
    351355            SaveWindowFile( temporary, projectInfo.windowInfos );
    352356
  • trunk/ab5.0/abdev/abdev/FileTree.cpp

    r618 r620  
    2626            //絶対パス、相対パスを表示
    2727            lstrcpy(temporary,path);
    28             GetFullPath(temporary,projectInfo.dir);
     28            lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    2929            SetDlgItemText(hwnd,IDC_USING_FILE,temporary);
    3030            SetDlgItemText(hwnd,IDC_DEFINED_FILE,path);
     
    110110
    111111                    lstrcpy(temporary,path);
    112                     GetFullPath(temporary,projectInfo.dir);
     112                    lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    113113                    OpenFileWithExtension(temporary);
    114114                    break;
  • trunk/ab5.0/abdev/abdev/IconEditor.cpp

    r613 r620  
    237237    InvalidateRect(MdiInfo[WndNum].MdiIconEditInfo->hColorDlg,NULL,0);
    238238}
    239 void NewIconEditWindow(char *filepath){
     239void NewIconEditWindow(const char *filepath){
    240240    extern HINSTANCE hInst,hResInst;
    241241    extern HANDLE hHeap;
  • trunk/ab5.0/abdev/abdev/MessageCallOperation.cpp

    r618 r620  
    4141    CallBackNameLen=lstrlen(pWindowInfo->CallBackName);
    4242
    43     sprintf(temporary,"%s%s",projectInfo.dir,pWindowInfo->filepath);
    44     buffer=ReadBuffer(temporary);
     43    buffer = ReadBuffer( projectInfo.GetWorkDir().GetPath() + pWindowInfo->filepath );
    4544
    4645    *num=0;
     
    138137    WindowInfo *pWindowInfo = projectInfo.windowInfos[WndInfoNum];
    139138
    140     sprintf(temporary,"%s%s",projectInfo.dir,pWindowInfo->filepath);
    141     hChild=OpenFileWithExtension(temporary);
     139    hChild=OpenFileWithExtension( projectInfo.GetWorkDir().GetPath() + pWindowInfo->filepath );
    142140    if(!hChild) return;
    143141    WndNum=GetWndNum(hChild);
  • trunk/ab5.0/abdev/abdev/ParameterHint.cpp

    r619 r620  
    3636        //プロジェクトが開かれているとき
    3737        lstrcpy(temporary,projectInfo.pobj_DBFileInfo->ppobj_FileInfo[0]->m_path);
    38         GetFullPath(temporary,projectInfo.dir);
     38        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    3939
    4040        extern MDIINFO MdiInfo[MAX_WNDNUM];
  • trunk/ab5.0/abdev/abdev/ProjectControl.cpp

    r619 r620  
    137137                                lstrcpy(temporary,
    138138                                    projectInfo.pobj_DBFileInfo->ppobj_FileInfo[pobj_ClassTreeView->pProcInfo[i].FileNum]->m_path);
    139                                 GetFullPath(temporary,projectInfo.dir);
     139                                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    140140                                hChild=OpenFileWithExtension(temporary);
    141141                            }
     
    194194                        if(projectInfo.res.pIconResInfo[i].hTreeItem==hTreeItem){
    195195                            lstrcpy(temporary,projectInfo.res.pIconResInfo[i].path);
    196                             GetFullPath(temporary,projectInfo.dir);
     196                            lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    197197                            NewIconEditWindow(temporary);
    198198                            break;
     
    649649    char temporary[MAX_PATH],temp2[MAX_PATH];
    650650
    651     GetRelationalPath(path,projectInfo.dir);
     651    lstrcpy( path, projectInfo.GetWorkDir().GetRelationalPath( path ).c_str() );
    652652
    653653    //重複チェック
     
    12731273                                temporary[i3]=temp2[i2];
    12741274                            }
    1275                             GetFullPath(temporary,projectInfo.dir);
     1275                            lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    12761276                            hChild=OpenFileWithExtension(temporary);
    12771277                            WndNum=GetWndNum(hChild);
     
    13551355                            for(i3=0;i3<projectInfo.res.NumberOfIconRes;i3++){
    13561356                                if(lstrcmpi(projectInfo.res.pIconResInfo[i3].path,temp2)==0){
    1357                                     GetFullPath(temp2,projectInfo.dir);
    1358                                     NewIconEditWindow(temp2);
     1357                                    NewIconEditWindow( projectInfo.GetWorkDir().GetFullPath( temp2 ).c_str() );
    13591358                                    break;
    13601359                                }
     
    14481447                            lstrcpy(temporary,temp2+i3+1);
    14491448                            temp2[i3]=0;
    1450                             GetFullPath(temporary,projectInfo.dir);
     1449                            lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    14511450                            sscanf(temp2,"%d",&i3);
    14521451
     
    14771476                            for(i3=0;i3<projectInfo.res.NumberOfIconRes;i3++){
    14781477                                if(lstrcmpi(projectInfo.res.pIconResInfo[i3].path,temp2)==0){
    1479                                     GetFullPath(temp2,projectInfo.dir);
    1480                                     NewIconEditWindow(temp2);
     1478                                    NewIconEditWindow( projectInfo.GetWorkDir().GetFullPath( temp2 ).c_str() );
    14811479                                    break;
    14821480                                }
     
    15911589                for(i=0;i<projectInfo.res.NumberOfIconRes;i++){
    15921590                    lstrcpy(temporary,projectInfo.res.pIconResInfo[i].path);
    1593                     GetFullPath(temporary,projectInfo.dir);
     1591                    lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    15941592                    if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0) sw=1;
    15951593                }
     
    16781676            for(i=0;i<projectInfo.res.NumberOfIconRes;i++){
    16791677                lstrcpy(temporary,projectInfo.res.pIconResInfo[i].path);
    1680                 GetFullPath(temporary,projectInfo.dir);
     1678                lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    16811679                if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
    16821680                    sprintf(buffer+i2,"icon,%s\r\n",projectInfo.res.pIconResInfo[i].path);
     
    17301728
    17311729    //保存
    1732     sprintf(temporary,"%s%s.wrk",projectInfo.dir,projectInfo.GetName().c_str());
     1730    sprintf(temporary,"%s%s.wrk",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.GetName().c_str());
    17331731    WriteBuffer(temporary,buffer,i2);
    17341732}
     
    17631761                for(i=0;i<projectInfo.res.NumberOfIconRes;i++){
    17641762                    lstrcpy(temporary,projectInfo.res.pIconResInfo[i].path);
    1765                     GetFullPath(temporary,projectInfo.dir);
     1763                    lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    17661764                    if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
    17671765                        SaveDocument(hChild,NULL);
     
    18241822
    18251823    //保存
    1826     sprintf(temporary,"%s%s.pj",projectInfo.dir,projectInfo.GetName().c_str());
     1824    sprintf(temporary,"%s%s.pj",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.GetName().c_str());
    18271825    WriteBuffer(temporary,buffer,i2);
    18281826
     
    18541852        //保存(resource.ab)
    18551853        lstrcpy(temporary,"resource.ab");
    1856         GetFullPath(temporary,projectInfo.dir);
     1854        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    18571855        WriteBuffer(temporary,buffer,i2);
    18581856
     
    18861884        //保存
    18871885        lstrcpy(temporary,projectInfo.ResourceFileName);
    1888         GetFullPath(temporary,projectInfo.dir);
     1886        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    18891887        WriteBuffer(temporary,buffer,i2);
    18901888    }
     
    19721970
    19731971    //保存
    1974     sprintf(temporary,"%s%s.idx",projectInfo.dir,projectInfo.GetName().c_str());
     1972    sprintf(temporary,"%s%s.idx",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.GetName().c_str());
    19751973    WriteBuffer(temporary,buffer,i2);
    19761974
     
    19811979        //ウィンドウ関連ファイル(*.wnd)を作成、保存
    19821980        if(projectInfo.ModifyOfMaterial){
    1983             sprintf(temporary,"%s%s.wnd",projectInfo.dir,projectInfo.GetName().c_str());
     1981            sprintf(temporary,"%s%s.wnd",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.GetName().c_str());
    19841982            SaveWindowFile( temporary, projectInfo.windowInfos );
    19851983        }
     
    20352033    if(bDebug) lstrcpy(temporary,projectInfo.lpszOutput_Debug);
    20362034    else lstrcpy(temporary,projectInfo.lpszOutput_Release);
    2037     GetFullPath(temporary,projectInfo.dir);
     2035    lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    20382036
    20392037    hFind=FindFirstFile(temporary,&wfd);
     
    20592057        //CallBack.wbp
    20602058        lstrcpy(temporary,"CallBack.wbp");
    2061         GetFullPath(temporary,projectInfo.dir);
     2059        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    20622060        hFile=CreateFile(temporary,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    20632061        GetFileTime(hFile,NULL,NULL,&SourceTime);
     
    20692067        //MakeWindow.wbp
    20702068        lstrcpy(temporary,"MakeWindow.wbp");
    2071         GetFullPath(temporary,projectInfo.dir);
     2069        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    20722070        hFile=CreateFile(temporary,GENERIC_READ,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
    20732071        GetFileTime(hFile,NULL,NULL,&SourceTime);
  • trunk/ab5.0/abdev/abdev/RadSupport.cpp

    r618 r620  
    114114                    }
    115115                    if(temporary[0]){
    116                         GetFullPath(temporary,projectInfo.dir);
     116                        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    117117                        lphImage[i2]=LoadImage(hInst,temporary,IMAGE_ICON,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
    118118
     
    132132                    }
    133133                    if(temporary[0]){
    134                         GetFullPath(temporary,projectInfo.dir);
     134                        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    135135                        lphImage[i2]=LoadImage(hInst,temporary,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
    136136
  • trunk/ab5.0/abdev/abdev/RadToolsAndPropertyProc.cpp

    r618 r620  
    29532953                                Rad_NoticeChanging(i,RAD_UNDO_IMAGESTATE,MdiInfo[i].MdiRadInfo->SelectingItem[0],(DWORD)&pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[0]]->ImageCtrlInfo);
    29542954
    2955                                 GetRelationalPath(temporary,projectInfo.dir);
     2955                                lstrcpy( temporary, projectInfo.GetWorkDir().GetRelationalPath( temporary ).c_str() );
    29562956                                HeapDefaultFree(pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[0]]->ImageCtrlInfo.path);
    29572957                                pWindowInfo->childWindowInfos[MdiInfo[i].MdiRadInfo->SelectingItem[0]]->ImageCtrlInfo.path=(char *)HeapAlloc(hHeap,0,lstrlen(temporary)+1);
  • trunk/ab5.0/abdev/abdev/Resource.cpp

    r619 r620  
    1818
    1919    lstrcpy(temporary,projectInfo.ResourceFileName);
    20     GetFullPath(temporary,projectInfo.dir);
     20    lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    2121
    2222    hFile=CreateFile(temporary,GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
     
    144144    if(!GetFilePathDialog(hOwner,temporary,CursorFileFilter,STRING_FILEOPENTITLE_CURSOR,TRUE)) return;
    145145
    146     GetRelationalPath(temporary,projectInfo.dir);
     146    lstrcpy( temporary, projectInfo.GetWorkDir().GetRelationalPath( temporary ).c_str() );
    147147
    148148    projectInfo.res.pCursorResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pCursorResInfo,(projectInfo.res.NumberOfCursorRes+1)*sizeof(RESITEMINFO));
     
    248248    if(!GetFilePathDialog(hOwner,temporary,BitmapFileFilter,STRING_FILEOPENTITLE_BITMAP,TRUE)) return;
    249249
    250     GetRelationalPath(temporary,projectInfo.dir);
     250    lstrcpy( temporary, projectInfo.GetWorkDir().GetRelationalPath( temporary ).c_str() );
    251251
    252252    projectInfo.res.pBitmapResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pBitmapResInfo,(projectInfo.res.NumberOfBitmapRes+1)*sizeof(RESITEMINFO));
     
    362362    if(!GetFilePathDialog(hOwner,temporary,IconFileFilter,STRING_FILEOPENTITLE_ICON,TRUE)) return;
    363363
    364     GetRelationalPath(temporary,projectInfo.dir);
     364    lstrcpy( temporary, projectInfo.GetWorkDir().GetRelationalPath( temporary ).c_str() );
    365365
    366366    projectInfo.res.pIconResInfo=(RESITEMINFO *)HeapReAlloc(hHeap,0,projectInfo.res.pIconResInfo,(projectInfo.res.NumberOfIconRes+1)*sizeof(RESITEMINFO));
  • trunk/ab5.0/abdev/abdev/WindowControl.cpp

    r619 r620  
    15131513    ///////////////////////
    15141514    // 保存(Callback.wbp)
    1515     sprintf(temporary,"%sCallback.wbp",projectInfo.dir);
     1515    sprintf(temporary,"%sCallback.wbp",projectInfo.GetWorkDir().GetPath().c_str() );
    15161516    WriteBuffer(temporary,buffer,i2);
    15171517
     
    16001600    /////////////////////////
    16011601    // 保存(MakeWindow.wbp)
    1602     sprintf(temporary,"%sMakeWindow.wbp",projectInfo.dir);
     1602    sprintf(temporary,"%sMakeWindow.wbp",projectInfo.GetWorkDir().GetPath().c_str());
    16031603    WriteBuffer(temporary,buffer,i2);
    16041604    HeapDefaultFree(buffer);
     
    22872287        NewWindow.CallBackName);
    22882288
    2289     sprintf(temporary,"%s%s.ab",projectInfo.dir,projectInfo.windowInfos.back()->GetName().c_str());
     2289    sprintf(temporary,"%s%s.ab",projectInfo.GetWorkDir().GetPath().c_str(),projectInfo.windowInfos.back()->GetName().c_str());
    22902290
    22912291    //書き込み
  • trunk/ab5.0/abdev/abdev/abdev.vcproj

    r615 r620  
    7878            <Tool
    7979                Name="VCLinkerTool"
    80                 AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib"
     80                AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib imagehlp.lib"
    8181                OutputFile="../TheText/TheText.exe"
    8282                LinkIncremental="1"
     
    176176            <Tool
    177177                Name="VCLinkerTool"
    178                 AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib"
     178                AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib imagehlp.lib"
    179179                OutputFile="$(OutDir)\abdev.exe"
    180180                LinkIncremental="2"
     
    275275            <Tool
    276276                Name="VCLinkerTool"
    277                 AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib"
     277                AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib imagehlp.lib"
    278278                OutputFile="$(OutDir)\abdev.exe"
    279279                LinkIncremental="1"
     
    373373            <Tool
    374374                Name="VCLinkerTool"
    375                 AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib"
     375                AdditionalDependencies="odbc32.lib odbccp32.lib comctl32.lib imm32.lib htmlhelp.lib rpcrt4.lib imagehlp.lib"
    376376                OutputFile="../TheText/TheText.exe"
    377377                LinkIncremental="2"
  • trunk/ab5.0/abdev/abdev/include/ProjectManager/ProjectManager.h

    r619 r620  
    88public:
    99
     10    Project()
     11        : workDir( "" )
     12    {
     13    }
     14
    1015    void Open( char *path );
    1116    bool Close();
     
    1419    {
    1520        return name;
     21    }
     22
     23    const Jenga::Common::Directory &GetWorkDir() const
     24    {
     25        return workDir;
    1626    }
    1727
     
    2535        return moduleType;
    2636    }
    27 
    28     char dir[MAX_PATH];
    2937
    3038    DWORD dwVersion;
     
    6371private:
    6472    std::string name;
     73    Jenga::Common::Directory workDir;
    6574    ActiveBasic::Common::TargetModuleType::EnumType moduleType;
    6675};
  • trunk/ab5.0/abdev/abdev/src/MainFrame.cpp

    r619 r620  
    446446        lstrcpy(temporary,NewFileName);
    447447        if(!strstr(temporary,".")) lstrcat(temporary,".ab");
    448         GetFullPath(temporary,projectInfo.dir);
     448
     449        lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    449450    }
    450451    else bAddToProject=0;
     
    521522void MainFrame::OnCmdProjectFolderOpen( UINT uNotifyCode, int nID, CWindow wndCtl )
    522523{
    523     ShellExecute(m_hWnd,"explore",projectInfo.dir,NULL,NULL,SW_SHOWNORMAL);
     524    ShellExecute(m_hWnd,"explore",projectInfo.GetWorkDir().GetPath().c_str(),NULL,NULL,SW_SHOWNORMAL);
    524525}
    525526
     
    952953        //出力ファイル名をtemp3へ
    953954        lstrcpy(temp3,projectInfo.lpszOutput_Debug);
    954         GetFullPath(temp3,projectInfo.dir);
     955        lstrcpy( temp3, projectInfo.GetWorkDir().GetFullPath( temp3 ).c_str() );
    955956
    956957        if(IsNeedCompileForProject(1))
     
    10301031        //出力ファイル名をtemp3へ
    10311032        lstrcpy(temp3,projectInfo.lpszOutput_Debug);
    1032         GetFullPath(temp3,projectInfo.dir);
     1033        lstrcpy( temp3, projectInfo.GetWorkDir().GetFullPath( temp3 ).c_str() );
    10331034
    10341035        sprintf(temporary,"\"%s\" \"%s\" /debug /wnd:%08x",temp2,temp3,m_hWnd);
     
    11441145        //出力ファイル名をtemp3へ
    11451146        lstrcpy(temp3,projectInfo.lpszOutput_Release);
    1146         GetFullPath(temp3,projectInfo.dir);
     1147        lstrcpy( temp3, projectInfo.GetWorkDir().GetFullPath( temp3 ).c_str() );
    11471148
    11481149        sprintf(temporary,"\"%s\" \"%s\" /wnd:%08x",temp2,temp3,m_hWnd);
     
    12081209        else{
    12091210            lstrcpy(temporary,projectInfo.lpszOutput_Debug);
    1210             GetFullPath(temporary,projectInfo.dir);
     1211            lstrcpy( temporary, projectInfo.GetWorkDir().GetFullPath( temporary ).c_str() );
    12111212        }
    12121213    }
  • trunk/ab5.0/abdev/abdev/src/ProjectManager/ProjectManager.cpp

    r619 r620  
    1818
    1919    //プロジェクトの作業ディレクトリを取得
    20     _splitpath(path,this->dir,temporary,0,0);
    21     lstrcat(this->dir,temporary);
     20    _splitpath(path,temporary,temp2,0,0);
     21    lstrcat( temporary, temp2 );
     22    this->workDir = Jenga::Common::Directory( temporary );
    2223
    2324    //ファイルを開く、保存の初期ディレクトリをセット
    24     lstrcpy(pobj_nv->DefSaveDir,this->dir);
     25    lstrcpy(pobj_nv->DefSaveDir,this->GetWorkDir().GetPath().c_str());
    2526
    2627
     
    253254        /////////////////////////////////////////////
    254255        //ウィンドウ定義ファイル(*.wnd)をオープン
    255         sprintf(temp2,"%s%s.wnd",this->dir,this->GetName().c_str());
     256        sprintf(temp2,"%s%s.wnd",this->GetWorkDir().GetPath().c_str(),this->GetName().c_str());
    256257        if(!OpenWindowFile(temp2)) return;
    257258    }
     
    263264    }
    264265
    265     OpenWorkfile( this->dir + this->GetName() + ".wrk" );
     266    OpenWorkfile( this->GetWorkDir().GetPath() + this->GetName() + ".wrk" );
    266267
    267268    this->modify=0;
     
    324325            for(i=0;this->res.NumberOfIconRes;i++){
    325326                lstrcpy(temporary,this->res.pIconResInfo[i].path);
    326                 GetFullPath(temporary,this->dir);
     327                lstrcpy( temporary, this->GetWorkDir().GetFullPath( temporary ).c_str() );
    327328                if(lstrcmpi(MdiInfo[WndNum].path,temporary)==0){
    328329                    SendMessage(hCloseChild,WM_CLOSE,0,0);
  • trunk/ab5.0/jenga/include/common/Directory.h

    r523 r620  
    99public:
    1010    Directory( const std::string &path, bool isMake = false );
     11    Directory( const Directory &dir );
    1112
    12     std::string GetFullPath( const std::string &relationPath );
     13    const std::string &GetPath() const
     14    {
     15        return path;
     16    }
     17
     18    std::string GetFullPath( const std::string &relationPath ) const;
     19    std::string GetRelationalPath( const std::string &fullPath ) const;
    1320};
    1421
  • trunk/ab5.0/jenga/src/common/Directory.cpp

    r523 r620  
    1414    }
    1515}
     16Directory::Directory( const Directory &dir )
     17    : path( dir.path )
     18{
     19}
    1620
    17 std::string Directory::GetFullPath( const std::string &relationPath )
     21std::string Directory::GetFullPath( const std::string &relationPath ) const
    1822{
    1923    std::string resultPath = relationPath;
     
    6165    return temporary;
    6266}
     67
     68void _GetRelationalPath(char *path,const char *dir){
     69    //相対パスを取得
     70    int i,i2,i3,i4,i5;
     71    char temporary[MAX_PATH],temp2[MAX_PATH],temp3[MAX_PATH],temp4[MAX_PATH];
     72
     73    //ドライブ名をチェック
     74    _splitpath(path,temporary,0,0,0);
     75    _splitpath(dir,temp2,0,0,0);
     76    if(lstrcmpi(temporary,temp2)!=0) return;
     77
     78    _splitpath(path,0,temporary,0,0);
     79    _splitpath(dir,0,temp2,0,0);
     80    i=1;i2=1;
     81    while(1){
     82        i4=i;
     83        if(temporary[i-1]=='\\'&&temporary[i]){ //path側
     84            for(i3=0;;i++,i3++){
     85                if(temporary[i]=='\\'){
     86                    temp3[i3]=0;
     87                    i++;
     88                    break;
     89                }
     90                temp3[i3]=temporary[i];
     91            }
     92        }
     93        else temp3[0]=0;
     94
     95        i5=i2;
     96        if(temp2[i2-1]=='\\'&&temp2[i2]){       //dir側
     97            for(i3=0;;i2++,i3++){
     98                if(temp2[i2]=='\\'){
     99                    temp4[i3]=0;
     100                    i2++;
     101                    break;
     102                }
     103                temp4[i3]=temp2[i2];
     104            }
     105        }
     106        else temp4[0]=0;
     107
     108        if(temp3[0]=='\0'&&temp4[0]=='\0'){
     109            lstrcpy(temp3,".\\");
     110            break;
     111        }
     112
     113        if(lstrcmpi(temp3,temp4)!=0){
     114            for(i3=0;;i5++){
     115                if(temp2[i5]=='\0') break;
     116                if(temp2[i5]=='\\') i3++;
     117            }
     118            if(i3==0) lstrcpy(temp3,".\\");
     119            else{
     120                temp3[0]=0;
     121                for(i2=0;i2<i3;i2++) lstrcat(temp3,"..\\");
     122            }
     123            lstrcat(temp3,temporary+i4);
     124            break;
     125        }
     126    }
     127    _splitpath(path,0,0,temporary,temp2);
     128    lstrcat(temp3,temporary);
     129    lstrcat(temp3,temp2);
     130    lstrcpy(path,temp3);
     131}
     132
     133std::string Directory::GetRelationalPath( const std::string &fullPath ) const
     134{
     135    char temp[1024];
     136    lstrcpy( temp, fullPath.c_str() );
     137    _GetRelationalPath( temp, path.c_str() );
     138    return temp;
     139}
Note: See TracChangeset for help on using the changeset viewer.