-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathSreditView.h
223 lines (184 loc) · 7.59 KB
/
SreditView.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
/*===========================================================================
*
* File: SReditView.H
* Author: Dave Humphrey ([email protected])
* Created On: 26 November 2011
*
* Interface of the CSrEditView class.
*
*=========================================================================*/
#ifndef __SREDITVIEW_H
#define __SREDITVIEW_H
/*===========================================================================
*
* Begin Required Includes
*
*=========================================================================*/
#include "windows/srrecordlistctrl.h"
#include "windows/srrecordvirtuallistctrl.h"
#include "windows/srrecordtreectrl.h"
#include "modfile/srexport.h"
#include "dialogs/sreditdlghandler.h"
#include "srresourceview.h"
#include "il/il.h"
#include "il/ilu.h"
#include "il/ilut.h"
#include "afxwin.h"
/*===========================================================================
* End of Required Includes
*=========================================================================*/
/*===========================================================================
*
* Begin Definitions
*
*=========================================================================*/
/* File filters for the open/save dialog */
#define SREDIT_CSV_FILTER _T("CSV Files (*.csv)|*.csv|All Files (*.*)|*.*||")
/* Default file extensions */
#define SREDIT_CSV_EXT _T("csv")
/* Number of operations required for a progress dlg to be shown */
#define SREDIT_MINIMUM_PROGRESS_COUNT 100
#define SREDIT_FILTERUPDATE_TIMERID 0x1234
/*===========================================================================
* End of Definitions
*=========================================================================*/
/*===========================================================================
*
* Begin Class CSrEditView Definition
*
*=========================================================================*/
class CSrEditView : public CFormView, public ISrListener {
/*---------- Begin Protected Class Members ----------------------*/
protected:
CSrEditDlgHandler m_DlgHandler; /* Handles all child windows */
bool m_IsInitialized; /* Has the view been initialized yet? */
CSrRecordFilter* m_pCurrentFilter; /* Currently displayed record filter */
CSString m_LastFilterID;
bool m_UpdateFilterCounts;
DWORD m_hFilterUpdateThreadID;
HANDLE m_hFilterUpdateThread;
HANDLE m_ThreadCloseEvent;
/*---------- Begin Protected Class Methods ----------------------*/
protected:
/* Create from serialization only */
CSrEditView();
DECLARE_DYNCREATE(CSrEditView)
public:
enum { IDD = IDD_SREDIT_FORM };
CStatic m_VertEdge;
CSrRecordVirtualListCtrl m_RecordList;
CSrRecordTreeCtrl m_RecordTree;
/*---------- Begin Public Class Methods --------------------------*/
public:
/* Class destructor */
virtual ~CSrEditView();
void ThreadUpdateFilterProc (void);
/* Get the parent document */
CSrEditDoc* GetDocument();
CSrEditDlgHandler& GetDlgHandler (void) { return m_DlgHandler; }
/* Helper export methods */
bool OnCsvExport (srexportinfo_t& ExportInfo, const TCHAR* pDialogTitle);
/* Update events */
void OnEditRecord (CSrRecord* pRecord);
/* Listener events */
virtual int OnListenAddRecord (CSrListenEvent* pEvent);
virtual int OnListenCleanRecord (CSrListenEvent* pEvent);
virtual int OnListenUpdateRecord (CSrListenEvent* pEvent);
virtual int OnListenPreUpdateRecord (CSrListenEvent* pEvent);
virtual int GetListenEvents (void) { return (SR_EVENTMASK_ALL); }
bool OnToggleDeleteRecord (CSrRecord* pRecord);
bool OnToggleIgnoreRecord (CSrRecord* pRecord);
bool OnToggleQuestRecord (CSrRecord* pRecord);
/* Updates the main view content display */
void UpdateContents (void);
/* Diagnostics */
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
public:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual void OnInitialUpdate();
virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSelchangedRecordtree(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnFileImportCsv();
afx_msg void OnFileExportcsvSelecteditems();
afx_msg void OnRecordtreeReload();
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnRecordtreeExporttocsv();
afx_msg void OnViewFilestructure();
afx_msg void OnFileExportCsvexteriorlocations();
afx_msg void OnFileExportCsvExtMapMarkers();
afx_msg void OnHelpTestfieldlookup();
afx_msg void OnFileExportCsvexportexteriorplants();
afx_msg void OnEditFindbinarydata();
afx_msg void OnHelpTestfindformid();
afx_msg void OnTestMemoryspeed();
afx_msg void OnTestTokenscripts();
afx_msg void OnRecordClean();
afx_msg void OnUpdateHasSelectedRecords(CCmdUI* pCmdUI);
afx_msg void OnRecordMoveactive();
afx_msg LRESULT OnEditRecordMsg (WPARAM wParam, LPARAM lParam);
afx_msg void OnDestroy (void);
afx_msg void OnMenuEditrecord();
afx_msg void OnEditNewrecord();
afx_msg void OnRecordTogglequest();
afx_msg void OnRecordToggleignore();
afx_msg void OnRecordToggledelete();
afx_msg void OnEditUndo();
afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);
afx_msg void OnRecordRename();
afx_msg void OnRecordCreatecopy();
afx_msg void OnRecordBatchedit();
afx_msg void OnEditFind();
afx_msg void OnHelpTestoutputeffects();
afx_msg void OnHelpTestrecordsize();
afx_msg void OnTestCleanrecompileall();
afx_msg void OnTestRecompileall();
afx_msg void OnHelpTestcomparescripts();
afx_msg void OnEditSelectall();
DECLARE_MESSAGE_MAP();
public:
afx_msg void OnMenuViewrawdata();
afx_msg void OnHelpTestoutputperks();
CEdit m_FilterText;
CButton m_ActiveCheck;
afx_msg void OnBnClickedActivecheck();
afx_msg void OnEnChangeFiltertext();
afx_msg void OnTimer(UINT_PTR nIDEvent);
afx_msg void OnClose();
afx_msg void OnEditUselocalstrings();
afx_msg void OnUpdateEditUselocalstrings(CCmdUI *pCmdUI);
afx_msg void OnEditSetmodauthor();
afx_msg void OnEditSetmoddescription();
afx_msg void OnMenuViewsummary();
afx_msg void OnUpdateMenuEditrecord(CCmdUI *pCmdUI);
afx_msg void OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu);
afx_msg void OnViewActiveonly();
afx_msg void OnUpdateViewActiveonly(CCmdUI *pCmdUI);
afx_msg void OnMenuChangemodindex();
afx_msg void OnMenuChangeformid();
afx_msg void OnMenuAssignnewformid();
};
/*===========================================================================
* End of Class CSrEditView Definition
*=========================================================================*/
/*===========================================================================
*
* Begin Inline Class Methods
*
*=========================================================================*/
#ifndef _DEBUG
inline CSrEditDoc* CSrEditView::GetDocument() { return (CSrEditDoc*)m_pDocument; }
#endif
/*===========================================================================
* End of Inline Class Methods
*=========================================================================*/
#endif
/*===========================================================================
* End of File SrEditView.H
*=========================================================================*/