-
Notifications
You must be signed in to change notification settings - Fork 0
/
ConfigDialog.hpp
68 lines (67 loc) · 2.02 KB
/
ConfigDialog.hpp
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
#ifndef _MY_CONFIG_DIALOG_HPP_
#define _MY_CONFIG_DIALOG_HPP_
#include <wx/dialog.h>
#include <set>
#include <vector>
class MyFrame;
class wxGrid;
class wxGridEvent;
class MyCandidate;
class MyActivity
{
public:
wxString mName;
wxString mDesc;
wxString mPool;
wxString mBitmap;
int mCount;
// 一个奖,可能有多个不同的奖项
// 比如,三等奖,可能是奖品A,也可能是奖品B。
std::vector<MyActivity*> mSubAct;
~MyActivity(){
for (size_t i = 0; i < mSubAct.size(); i++){
MyActivity *pAct = mSubAct[i];
delete pAct; pAct = NULL;
}
}
};
class MyConfigDialog: public wxDialog
{
public:
MyConfigDialog(MyFrame *pFrame);
~MyConfigDialog();
void OnCellRightClick(wxGridEvent &evt);
void OnLabelRightClick(wxGridEvent &evt);
void OnLeftDClick(wxGridEvent &evt);
void OnSelectCell(wxGridEvent &evt);
void OnRightUp(wxMouseEvent &evt);
void OnInsert(wxCommandEvent &evt);
void OnAppend(wxCommandEvent &evt);
void OnDelete(wxCommandEvent &evt);
void OnDeleteAll(wxCommandEvent &evt);
void OnApply(wxCommandEvent &evt);
void OnImport(wxCommandEvent &evt);
void OnExport(wxCommandEvent &evt);
void OnSelect(wxCommandEvent &evt);
bool IsPool(const wxString &strName, const wxString &strDesc, const wxString &strPool);
bool IsIncludeAll(const wxString &strName, const wxString &strDesc);
int GetLeftCount(MyActivity *pAct);
int GetDefaultStep(MyActivity *pAct);
int GetLeftNumber(const wxString &strName, const wxString &strDesc);
void UpdateAllActivity();
bool UpdateActivity(const wxString &strName, const wxString &strDesc, int iNumber);
bool UpdateActivity(MyActivity *pAct, std::vector<MyCandidate *> &candidates);
protected:
void LoadFromFile(const wxString &strFileName);
void SaveToFile(const wxString &strFileName);
void UpdateRow(int iIndex);
int GetCurrentLine();
private:
wxGrid *mpGrid;
MyFrame *mpFrame;
int mCurrentLine;
//int mActiveAct;
std::set<int> mActiveAct;
wxDECLARE_EVENT_TABLE();
};
#endif