ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/RenegadeMapSelector/RenegadeMapSelector.cpp
Revision: 63
Committed: 2003-03-10T23:38:36-08:00 (22 years, 3 months ago) by douglas
File size: 2136 byte(s)
Log Message:
Initial revision

File Contents

# Content
1 // Renegade Map Selector
2 //
3 // Douglas Thrift
4 //
5 // RenegadeMapSelector.cpp
6
7 #include "RenegadeMapSelector.h"
8 #include "resource.h"
9
10 bool debug = false;
11 string program;
12
13 inline string widetoansi(const wstring& wide)
14 {
15 char* buffer = new char[wide.length() + 1];
16
17 WideCharToMultiByte(CP_ACP, 0, wide.c_str(), -1, buffer, wide.length() + 1,
18 NULL, NULL);
19
20 string ansi = buffer;
21 delete [] buffer;
22
23 return ansi;
24 }
25
26 int CALLBACK selector(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
27
28 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
29 lpCmdLine, int nShowCmd)
30 {
31 int argc;
32 unsigned short** argv = CommandLineToArgvW(GetCommandLineW(), &argc);
33
34 program = widetoansi(argv[0]);
35
36 for (int index = 1; index < argc; index++)
37 {
38 string arg = widetoansi(argv[index]);
39
40 if (arg == "-D")
41 {
42 debug = true;
43 }
44 }
45
46 if (debug) MessageBox(NULL, program.c_str(), "Program", 0);
47
48 DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAP_SELECTOR), NULL, selector);
49
50 GlobalFree(argv);
51 return 0;
52 }
53
54 int CALLBACK selector(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
55 {
56 switch (uMsg)
57 {
58 case WM_INITDIALOG:
59 {
60 RECT rc, rcDlg, rcDesktop;
61
62 GetWindowRect(GetDesktopWindow(), &rcDesktop);
63 GetWindowRect(hwndDlg, &rcDlg);
64 CopyRect(&rc, &rcDesktop);
65
66 OffsetRect(&rcDlg, -rcDlg.left, -rcDlg.top);
67 OffsetRect(&rc, -rc.left, -rc.top);
68 OffsetRect(&rc, -rcDlg.right, -rcDlg.bottom);
69
70 SetWindowPos(hwndDlg, HWND_TOP, rcDesktop.left + (rc.right / 2),
71 rcDesktop.top + (rc.bottom / 2), 0, 0, SWP_NOSIZE);
72 }
73 {
74 char* directory = new char[MAX_PATH + 1];
75 GetCurrentDirectory(MAX_PATH + 1, directory);
76 if (debug) MessageBox(hwndDlg, directory, "Directory", 0);
77
78 char* data = new char[MAX_PATH + 1];
79 sprintf(data, "%s\\data\\*.mix", directory);
80 delete [] directory;
81 if (debug) MessageBox(hwndDlg, data, "Data", 0);
82
83 DlgDirList(hwndDlg, data, IDC_AVAILABLE, 0, DDL_ARCHIVE);
84
85 delete [] data;
86 }
87 break;
88 case WM_COMMAND:
89 switch (LOWORD(wParam))
90 {
91 case IDOK:
92 //
93 case IDCANCEL:
94 EndDialog(hwndDlg, wParam);
95 return true;
96 }
97 break;
98 }
99
100 return false;
101 }