source: dev/trunk/ab5.0/abdev/abdev/include/ProjectManager.h@ 613

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

"extern PROJECTINFO ProjectInfo;" をすべて除去した。
PROJECTINFO構造体の定義位置を移動した。

File size: 1.6 KB
Line 
1#pragma once
2
3struct PROJECTINFO{
4 DWORD dwModuleType;
5
6 char name[MAX_PATH];
7 char dir[MAX_PATH];
8
9 DWORD dwVersion;
10
11 CDBFileInfo *pobj_DBFileInfo;
12
13 char ResourceFileName[MAX_PATH];
14
15 int NumberOfMenu;
16 MENU_INFO *pMenuInfo;
17 HTREEITEM hMenuTreeItem;
18
19 std::vector<WINDOW_INFO> windowInfos;
20 HTREEITEM hWindowTreeItem;
21
22 RESOURCEINFO res;
23
24 DWORD dwOption;
25 char lpszOutput_Release[MAX_PATH];
26 char lpszOutput_Debug[MAX_PATH];
27
28 //マニフェスト
29 char szManifestPath[MAX_PATH];
30
31 //デバッグ情報
32 char szCmdLine[8192];
33 char szExePath[MAX_PATH];
34
35 //ブレークポイント情報
36 CDBBreakPoint *pobj_DBBreakPoint;
37
38 _int8 ModifyOfMaterial;
39 _int8 ModifuOfResource;
40 _int8 modify;
41};
42
43namespace ActiveBasic{ namespace IDE{
44
45class Project
46{
47 std::string name;
48 ActiveBasic::Common::TargetModuleType::EnumType moduleType;
49public:
50 void Open( const std::string &projectFileName );
51 void Close() const;
52 void Save() const;
53};
54typedef std::vector<Project *> Projects;
55
56class ProjectManager
57{
58 Projects projects;
59 Project *pCurrentProject;
60public:
61 ProjectManager()
62 : pCurrentProject( NULL )
63 {
64 }
65 ~ProjectManager()
66 {
67 if( IsOpenedProject() )
68 {
69 throw;
70 }
71 }
72 const Project &GetCurrentProject() const
73 {
74 return *pCurrentProject;
75 }
76 Project &GetCurrentProject()
77 {
78 return *pCurrentProject;
79 }
80
81 bool IsOpenedProject() const
82 {
83 return !projects.empty();
84 }
85 void OpenProject( const std::string &projectFileName );
86 void CloseProject( const std::string &projectName );
87
88 void CloseAllProjects();
89};
90
91
92}}
93
94extern ActiveBasic::IDE::ProjectManager projectManager;
95extern PROJECTINFO ProjectInfo;
Note: See TracBrowser for help on using the repository browser.