ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/proj/trunk/VTBFileUtil2/VTBFileUtil2.cxx
(Generate patch)

Comparing trunk/VTBFileUtil2/VTBFileUtil2.cxx (file contents):
Revision 257 by douglas, 2003-08-15T23:44:42-07:00 vs.
Revision 277 by douglas, 2003-08-24T00:31:45-07:00

# Line 2 | Line 2
2   //
3   // Douglas Thrift
4   //
5 < // $Id: VTBFileUtil2.cxx,v 1.3 2003/08/16 06:44:42 douglas Exp $
5 > // $Id: VTBFileUtil2.cxx,v 1.12 2003/08/24 07:31:45 douglas Exp $
6  
7   #include "VTBFileUtil2.h"
8 + #include "Chooser.h"
9 + #include "DiscBrowse.h"
10 + #include "ScanUtility.h"
11  
12   #include <io.h>
13   #include <fcntl.h>
14  
12 #include "resource.h"
13
15   bool debug = false;
16   string program;
17   string programName = "Vance Thrift and Biller File Utility 2";
18   string programVersion = "2.0alpha";
19 <
19 < HICON icon;
20 < Mode choiceMode = none;
21 < bool choiceAlways = false;
19 > Gui gui;
20  
21   INT_PTR CALLBACK usage(HWND dialog, UINT msg, WPARAM w, LPARAM l);
22   INT_PTR CALLBACK version(HWND dialog, UINT msg, WPARAM w, LPARAM l);
25 INT_PTR CALLBACK choice(HWND dialog, UINT msg, WPARAM w, LPARAM l);
23  
24   inline void arguments(vector<string>& args, const string& command)
25   {
# Line 42 | Line 39 | inline void arguments(vector<string>& ar
39                          line.get();
40                  }
41  
42 <                args.push_back(arg);
42 >                if (arg != "")
43 >                {
44 >                        args.push_back(arg);
45 >                }
46          }
47          while (line.good());
48   }
# Line 50 | Line 50 | inline void arguments(vector<string>& ar
50   inline void munge(void)
51   {
52          AllocConsole();
53 <        SetConsoleTitle("Renegade Map Selector");
53 >        SetConsoleTitle(programName.c_str());
54  
55          int hin = _open_osfhandle(long(GetStdHandle(STD_INPUT_HANDLE)), _O_TEXT);
56          int hout = _open_osfhandle(long(GetStdHandle(STD_OUTPUT_HANDLE)), _O_TEXT);
# Line 73 | Line 73 | inline void munge(void)
73          cerr.sync_with_stdio();
74   }
75  
76 < inline void usage(HINSTANCE instance, HWND parent)
76 > inline void usage(HWND parent)
77   {
78 <        DialogBox(instance, MAKEINTRESOURCE(IDD_USAGE), parent, usage);
79 < }
80 <
81 < inline void version(HINSTANCE instance, HWND parent)
82 < {
83 <        DialogBox(instance, MAKEINTRESOURCE(IDD_VERSION), parent, version);
78 >        DialogBox(gui.instance, MAKEINTRESOURCE(IDD_USAGE), parent, usage);
79   }
80  
81 < inline void choice(Mode& mode, HINSTANCE instance, HWND parent)
81 > inline void version(HWND parent)
82   {
83 <        DialogBox(instance, MAKEINTRESOURCE(IDD_CHOICE), parent, choice);
89 <
90 <        mode = choiceMode;
83 >        DialogBox(gui.instance, MAKEINTRESOURCE(IDD_VERSION), parent, version);
84   }
85  
86   int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR
# Line 96 | Line 89 | int WINAPI WinMain(HINSTANCE hInstance,
89          vector<string> args;
90          
91          InitCommonControls();
92 +        CoInitialize(NULL);
93          arguments(args, GetCommandLine());
94  
95          program = args[0];
96  
97          Mode mode = none;
98  
99 <        icon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_VTB_ICON));
99 >        gui.instance = hInstance;
100 >        gui.icon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_VTB_ICON));
101 >        gui.show = nShowCmd;
102  
103          for (unsigned index = 1; index < args.size(); index++)
104          {
105                  if (args[index] == "-help")
106                  {
107 <                        usage(hInstance);
107 >                        usage();
108                          return 0;
109                  }
110                  else if (args[index] == "-version")
111                  {
112 <                        version(hInstance);
112 >                        version();
113                          return 0;
114                  }
115                  else if (args[index] == "-disc")
# Line 130 | Line 126 | int WINAPI WinMain(HINSTANCE hInstance,
126                          {
127                                  debug = true;
128  
133                                munge();
129                                  cerr.setf(ios_base::boolalpha);
130                          }
131                  }
# Line 145 | Line 140 | int WINAPI WinMain(HINSTANCE hInstance,
140  
141          if (debug)
142          {
143 +                munge();
144                  cerr << "mode = ";
145  
146                  switch (mode)
# Line 168 | Line 164 | int WINAPI WinMain(HINSTANCE hInstance,
164  
165          if (mode == none)
166          {
167 <                choice(mode, hInstance);
167 >                Chooser chooser;
168 >
169 >                mode = chooser.choose();
170  
171                  if (debug)
172                  {
# Line 196 | Line 194 | int WINAPI WinMain(HINSTANCE hInstance,
194  
195          if (mode == disc)
196          {
197 <                MessageBox(NULL, "Disc Browse mode", programName.c_str(),
198 <                        MB_ICONINFORMATION);
197 >                DiscBrowse browser;
198 >
199 >                browser.run();
200          }
201          else if (mode == scan)
202          {
203 <                MessageBox(NULL, "Scan Utility mode", programName.c_str(),
204 <                        MB_ICONINFORMATION);
203 >                ScanUtility utility;
204 >
205 >                utility.run();
206          }
207  
208 +        CoUninitialize();
209 +
210          if (debug)
211          {
212                  cout << "Press enter key to exit . . .";
# Line 220 | Line 222 | INT_PTR CALLBACK usage(HWND dialog, UINT
222          {
223          case WM_INITDIALOG:
224                  center(dialog);
225 <                SendMessage(dialog, WM_SETICON, ICON_BIG, LPARAM(icon));
225 >                SendMessage(dialog, WM_SETICON, ICON_BIG, LPARAM(gui.icon));
226                  SendMessage(dialog, WM_SETTEXT, 0, LPARAM(programName.c_str()));
227                  {
228                          ostringstream usage;
# Line 232 | Line 234 | INT_PTR CALLBACK usage(HWND dialog, UINT
234                                  << "  -disc\t\tStart in Disc Browse mode\n"
235                                  << "  -scan\t\tStart in Scan Utility mode\n";
236  
237 <                        SendMessage(GetDlgItem(dialog, IDC_USAGE_TEXT), WM_SETTEXT, 0,
236 <                                LPARAM(usage.str().c_str()));
237 >                        SetDlgItemText(dialog, IDC_USAGE_TEXT, usage.str().c_str());
238                  }
239                  break;
240          case WM_COMMAND:
# Line 258 | Line 259 | INT_PTR CALLBACK version(HWND dialog, UI
259          {
260          case WM_INITDIALOG:
261                  center(dialog);
262 <                SendMessage(dialog, WM_SETICON, ICON_BIG, LPARAM(icon));
262 >                SendMessage(dialog, WM_SETICON, ICON_BIG, LPARAM(gui.icon));
263                  SendMessage(dialog, WM_SETTEXT, 0, LPARAM(programName.c_str()));
264                  {
265                          ostringstream version;
266  
267 <                        version << programName << " ( " << programVersion << " )\n\n"
267 >                        version << programName << " (" << programVersion << ")\n\n"
268                                  << "Copyright © 2003, Douglas Thrift.\n";
269  
270 <                        SendMessage(GetDlgItem(dialog, IDC_VERSION_TEXT), WM_SETTEXT, 0,
270 <                                LPARAM(version.str().c_str()));
270 >                        SetDlgItemText(dialog, IDC_VERSION_TEXT, version.str().c_str());
271                  }
272                  break;
273          case WM_COMMAND:
# Line 278 | Line 278 | INT_PTR CALLBACK version(HWND dialog, UI
278                          EndDialog(dialog, w);
279                          return TRUE;
280                  default:
281                        break;
282                }
283                break;
284        }
285
286        return FALSE;
287 }
288
289 INT_PTR CALLBACK choice(HWND dialog, UINT msg, WPARAM w, LPARAM l)
290 {
291        switch (msg)
292        {
293        case WM_INITDIALOG:
294                center(dialog);
295                SendMessage(dialog, WM_SETICON, ICON_BIG, LPARAM(icon));
296                SendMessage(dialog, WM_SETTEXT, 0, LPARAM(programName.c_str()));
297                break;
298        case WM_COMMAND:
299                switch (LOWORD(w))
300                {
301                case IDC_CHOICE_DISC:
302                        choiceMode = disc;
303                        if (debug) cerr << "choiceMode = disc\n";
304                        EnableWindow(GetDlgItem(dialog, IDC_CHOICE_ALWAYS), TRUE);
305                        EnableWindow(GetDlgItem(dialog, IDOK), TRUE);
306                        break;
307                case IDC_CHOICE_SCAN:
308                        choiceMode = scan;
309                        if (debug) cerr << "choiceMode = scan\n";
310                        EnableWindow(GetDlgItem(dialog, IDC_CHOICE_ALWAYS), TRUE);
311                        EnableWindow(GetDlgItem(dialog, IDOK), TRUE);
312                        break;
313                case IDC_CHOICE_ALWAYS:
314                        choiceAlways = !choiceAlways;
315                        if (debug) cerr << "choiceAlways = " << choiceAlways << "\n";
316                        break;
317                case IDCANCEL:
318                        choiceMode = none;
319                case IDOK:
320                        EndDialog(dialog, w);
321                        return TRUE;
322                default:
281                          break;
282                  }
283                  break;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines