source: dev/trunk/ab5.0/abdev/abdev/CFileInfo.cpp@ 629

Last change on this file since 629 was 620, checked in by dai_9181, 16 years ago

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

File size: 2.5 KB
Line 
1#include "stdafx.h"
2
3#include "common.h"
4
5CFileInfo::CFileInfo(char *path,HTREEITEM hTreeItem){
6 m_path=(char *)HeapAlloc(hHeap,0,lstrlen(path)+1);
7 lstrcpy(m_path,path);
8 m_hTreeItem=hTreeItem;
9}
10CFileInfo::~CFileInfo(){
11 HeapDefaultFree(m_path);
12}
13void CFileInfo::GetFullPath(char *buffer){
14 lstrcpy(buffer,m_path);
15 lstrcpy( buffer, projectInfo.GetWorkDir().GetFullPath( buffer ).c_str() );
16}
17
18
19CDBFileInfo::CDBFileInfo(){
20 iNum=0;
21 ppobj_FileInfo=(CFileInfo **)HeapAlloc(hHeap,0,1);
22}
23CDBFileInfo::~CDBFileInfo(){
24 int i;
25 for(i=0;i<iNum;i++){
26 delete ppobj_FileInfo[i];
27 }
28 HeapDefaultFree(ppobj_FileInfo);
29}
30
31void CDBFileInfo::add(char *path,HTREEITEM hTreeItem){
32 ppobj_FileInfo=(CFileInfo **)HeapReAlloc(hHeap,0,ppobj_FileInfo,(iNum+1)*sizeof(CFileInfo *));
33 ppobj_FileInfo[iNum]=new CFileInfo(path,hTreeItem);
34 iNum++;
35}
36void CDBFileInfo::del(HTREEITEM hTreeItem){
37 int i;
38 for(i=0;i<iNum;i++){
39 if(ppobj_FileInfo[i]->m_hTreeItem==hTreeItem) break;
40 }
41 if(i==iNum) return;
42
43 delete ppobj_FileInfo[i];
44
45 iNum--;
46 for(;i<iNum;i++) ppobj_FileInfo[i]=ppobj_FileInfo[i+1];
47}
48char *CDBFileInfo::GetPath(HTREEITEM hTreeItem){
49 int i;
50 for(i=0;i<iNum;i++){
51 if(ppobj_FileInfo[i]->m_hTreeItem==hTreeItem) break;
52 }
53 if(i==iNum) return 0;
54 return ppobj_FileInfo[i]->m_path;
55}
56BOOL CDBFileInfo::IsMainFile(HTREEITEM hTreeItem){
57 int i;
58 for(i=0;i<iNum;i++){
59 if(ppobj_FileInfo[i]->m_hTreeItem==hTreeItem) break;
60 }
61 if(i==0) return 1;
62 return 0;
63}
64void CDBFileInfo::SetTreeItem(int index,HTREEITEM hTreeItem){
65 ppobj_FileInfo[index]->m_hTreeItem=hTreeItem;
66}
67void CDBFileInfo::ResetTree(void){
68 TV_INSERTSTRUCT tv;
69
70 TreeView_DeleteAllItems(pobj_FileTree->hTree);
71
72 tv.hInsertAfter=TVI_SORT;
73 tv.item.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE;
74
75 tv.hParent=TVI_ROOT;
76 tv.item.iImage=0;
77 tv.item.iSelectedImage=0;
78 tv.item.pszText="Source Files";
79 tv.hParent=TreeView_InsertItem(pobj_FileTree->hTree,&tv);
80
81 int i;
82 char temporary[MAX_PATH],temp2[MAX_PATH];
83 for(i=0;i<iNum;i++){
84 _splitpath(ppobj_FileInfo[i]->m_path,0,0,temporary,temp2);
85 lstrcat(temporary,temp2);
86 tv.item.iImage=2;
87 tv.item.iSelectedImage=2;
88 tv.item.pszText=temporary;
89 ppobj_FileInfo[i]->m_hTreeItem=TreeView_InsertItem(pobj_FileTree->hTree,&tv);
90 }
91}
92BOOL CDBFileInfo::dupli_check(char *path){
93 //重複チェック
94 int i;
95 for(i=0;i<iNum;i++){
96 if(lstrcmpi(ppobj_FileInfo[i]->m_path,path)==0){
97 return 1;
98 }
99 }
100 return 0;
101}
Note: See TracBrowser for help on using the repository browser.