-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathUTSvrBrowser.hpp
191 lines (160 loc) · 4.45 KB
/
UTSvrBrowser.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
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
/******************************************************************************
** (C) Chris Oldwood
**
** MODULE: UTSVRBROWSER.HPP
** COMPONENT: The Application.
** DESCRIPTION: The CUTSvrBrowser class declaration.
**
*******************************************************************************
*/
// Check for previous inclusion
#ifndef UTSVRBROWSER_HPP
#define UTSVRBROWSER_HPP
#if _MSC_VER > 1000
#pragma once
#endif
#include <WCL/App.hpp>
#include "AppWnd.hpp"
#include "AppCmds.hpp"
#include "Filter.hpp"
#include <WCL/IniFile.hpp>
#include "MasterQueryOpts.hpp"
#include "PingOpts.hpp"
#include "Mods.hpp"
#include "GameTypes.hpp"
#include "Servers.hpp"
#include "FavFiles.hpp"
#include "Favourites.hpp"
#include "Summary.hpp"
#include <MDBL/ResultSet.hpp>
// Template shorthands.
typedef std::vector<int> CIntArray;
typedef std::vector<CFilter*> CFilters;
/******************************************************************************
**
** Global constants.
**
*******************************************************************************
*/
enum
{
FILTER_MENU_POS = 1,
FILTER_MENU_FIXED_ITEMS = 2,
FIRST_FILTER_CMD_POS = FILTER_MENU_FIXED_ITEMS,
ID_FIRST_FILTER_CMD = ID_FILTER_NONE + 1,
ID_LAST_FILTER_CMD = 299,
};
/******************************************************************************
**
** The application class.
**
*******************************************************************************
*/
class CUTSvrBrowser : public CApp
{
public:
//
// Constructors/Destructor.
//
CUTSvrBrowser();
~CUTSvrBrowser();
//
// Members
//
CAppWnd m_AppWnd; // Main window.
CAppCmds m_AppCmds; // Command handler.
CIniFile m_oAppIniFile; // App .INI File
CIniFile m_oModIniFile; // Mods .INI FIle
CRect m_rcLastPos; // Main window position.
CIntArray m_anColWidths; // The last view column widths.
int m_nSortCol; // The last sort column.
int m_nSortDir; // The last sort direction.
CMasterQueryOpts m_oMtrQryOpts; // The master query settings.
CPingOpts m_oPingOpts; // The ping settings.
bool m_bDetectFavs; // Detect favourites files?
CMods m_oMods; // Mods table.
CGameTypes m_oGameTypes; // Game types table.
CServers m_oServers; // Servers table.
CFavFiles m_oFavFiles; // Favourites .ini files table.
CFavourites m_oFavourites; // Favourites table.
CSummary m_oSummary; // Servers summary table.
bool m_bFltEdited; // Filters modified?
CFilters m_aoFilters; // The filters.
CFilter* m_pFilter; // The current filter.
CResultSet m_oRS; // The filtered servers.
CPath m_strCacheFile; // Cached servers filename.
uint m_nPingTimerID; // Ping timer ID.
CString m_strFindText; // Find Server text.
int m_nLastFound; // Last server found.
//
// Ping methods.
//
void StartPingTimer();
void StopPingTimer();
//
// Filter methods.
//
CFilter* FindFilter(const tchar* pszName) const;
int FilterIndex(CFilter* pFilter) const;
void ApplyFilter();
void BuildFilterMenu();
//
// Favourites methods.
//
void CheckFavourites();
//
// Config methods.
//
void LoadModsConfig();
void SaveModsConfig();
void LoadFavsConfig();
void LoadFavourites();
void SaveFavsConfig();
//
// Constants.
//
static const tchar* VERSION;
protected:
//
// Startup and Shutdown template methods.
//
virtual bool OnOpen();
virtual bool OnClose();
//
// Internal methods.
//
void LoadAppConfig();
void SaveAppConfig();
void OnTimer(uint nTimerID);
//
// Constants.
//
static const tchar* APP_INI_FILE_VER;
static const tchar* MOD_INI_FILE_VER;
static const tchar* MOD_INI_FILE;
static const tchar* DEF_MASTER_ADDRESS;
static int DEF_MASTER_PORT;
static int DEF_PING_THREADS;
static int DEF_PING_ATTEMPTS;
static uint DEF_PING_WAIT_TIME;
static bool DEF_AUTO_PING;
static int DEF_PING_INTERVAL;
static const tchar* CACHE_FILENAME;
static const char* CACHE_FILE_MAGIC;
static uint16 CACHE_FILE_VER;
};
/******************************************************************************
**
** Global variables.
**
*******************************************************************************
*/
// The application object.
extern CUTSvrBrowser App;
/******************************************************************************
**
** Implementation of inline functions.
**
*******************************************************************************
*/
#endif //UTSVRBROWSER_HPP