Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/CTrainGroupTemplate.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Sun Aug 15 01:53:13 2010 UTC (13 years, 9 months ago) by okadu
File MIME type: text/x-chdr
File size: 2596 byte(s)


1 #ifndef CTRAINGROUPTEMPLATE_H_INCLUDED
2 #define CTRAINGROUPTEMPLATE_H_INCLUDED
3
4 #include "CWindowCtrl.h"
5 #include "CListView.h"
6 #include "CPlugin.h"
7
8 class CTrainPlugin;
9 class CTrainGroup;
10
11 /*
12 * 車輌テンプレート
13 *
14 * スイッチ付き車輌プラグインポインタ
15 */
16 class CTrainTemplate{
17 friend class CTrainGroupTemplate;
18 private:
19 bool m_Reverse; // 反転フラグ
20 vector<int> m_SwitchOption; // スイッチ設定値
21 string m_TrainID; // 車輌 ID
22 CTrainPlugin *m_TrainPlugin; // 車輌プラグイン
23 public:
24 CTrainTemplate(){
25 Init(NULL, false, R2L(vector<int>()));
26 }
27 CTrainTemplate(const CTrainTemplate &rhs){
28 Init(rhs.m_TrainPlugin, rhs.m_Reverse, R2L(vector<int>(rhs.m_SwitchOption)));
29 m_TrainID = rhs.m_TrainID;
30 }
31 CTrainTemplate(CTrainPlugin *tpi, bool turn, vector<int> &sopt){
32 Init(tpi, turn, sopt);
33 }
34 void Init(CTrainPlugin *, bool, vector<int> &);
35 char *Read(char *);
36 void Save(FILE *);
37 void LoadTrainPlugin();
38 void AddToGroup(CTrainGroup *);
39 };
40
41 // 反復子
42 typedef list<CTrainTemplate>::iterator ITrainTemplate;
43
44 /*
45 * 編成テンプレート
46 */
47 class CTrainGroupTemplate: public CPlugin{
48 private:
49 list<CTrainTemplate> m_TrainList; // 車輌リスト
50 CTreeFileElement *m_TreeElement; // ツリー要素
51 public:
52 CTrainGroupTemplate(char *);
53 void PushTrain(CTrainTemplate &t){ m_TrainList.push_back(t); }
54 void SetLoaded(){ m_State = 2; }
55 char *DirName(){ return "TrainGroupTemplate"; }
56 char *TextName2(){ return FlashIn("%s.txt", m_Name.c_str()); }
57 char *SaveString(){ return GetName(); }
58 bool PreLoadTGT(FILE *);
59 bool Load();
60 void Save(FILE *);
61 string &GetNameRef(){ return m_Name; }
62 CTreeFileElement *GetTreeElement(){ return m_TreeElement; }
63 void SetTreeElement(CTreeFileElement *);
64 bool IsRenamable(){ return true; }
65 bool ConfirmRename(string &);
66 bool IsDeletable();
67 void DeleteFromTree();
68 bool DeleteFromDisk();
69 bool Rename(string &);
70 void AddToGroup(CTrainGroup *);
71 void SetPreview();
72 };
73
74 // 反復子
75 typedef list<CTrainGroupTemplate>::iterator ITrainGroupTemplate;
76
77 // 関数宣言
78 void LoadTrainGroupTemplateList();
79 ITrainGroupTemplate FindTrainGroupTemplate(CTrainGroupTemplate *);
80 ITrainGroupTemplate FindTrainGroupTemplate(string);
81 void SetTemplateMenu(CPopMenu *, CTrainGroupTemplate *, CListElement *);
82 CMenuCommand *MakeGroupSaver(CTrainGroup *);
83 void AddTrainGroupTemplate();
84 void ListTrainGroupTemplate();
85 void ModalFuncTrainGroupTemplate();
86
87 // 外部グローバル
88 extern CTrainGroupTemplate *g_TrainGroupTemplate;
89 extern list<CTrainGroupTemplate> g_TrainGroupTemplateList;
90
91 #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26