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

Comparing trunk/RenegadeMapSelector/RenegadeMapSelector.cpp (file contents):
Revision 68 by douglas, 2003-03-11T17:16:41-08:00 vs.
Revision 69 by douglas, 2003-03-11T18:39:01-08:00

# Line 158 | Line 158 | int CALLBACK selector(HWND hwndDlg, UINT
158  
159                          delete [] data;
160                  }
161 +                {
162 +                        vector<string> maps = config->getMaps();
163 +
164 +                        for (unsigned index = 0; index < maps.size(); index++)
165 +                        {
166 +                                SendMessage(GetDlgItem(hwndDlg, IDC_SELECTED), LB_ADDSTRING, 0,
167 +                                        long(maps[index].c_str()));
168 +                        }
169 +                }
170                  break;
171          case WM_COMMAND:
172                  switch (LOWORD(wParam))
173                  {
174                  case IDOK:
175 +                        if (GetListBoxInfo(GetDlgItem(hwndDlg, IDC_SELECTED)) == 0)
176 +                        {
177 +                                MessageBox(hwndDlg, "You need at least one map.", "No Maps",
178 +                                        MB_ICONEXCLAMATION);
179 +
180 +                                return false;
181 +                        }
182 +                        else
183 +                        {
184 +                                vector<string> maps;
185 +
186 +                                for (unsigned index = 0; index < GetListBoxInfo(GetDlgItem(
187 +                                        hwndDlg, IDC_SELECTED)); index++)
188 +                                {
189 +                                        char* name = new char[SendMessage(GetDlgItem(hwndDlg,
190 +                                                IDC_SELECTED), LB_GETTEXTLEN, index, 0) + 1];
191 +
192 +                                        SendMessage(GetDlgItem(hwndDlg, IDC_SELECTED), LB_GETTEXT,
193 +                                                index, long(name));
194 +                                        maps.push_back(name);
195 +
196 +                                        delete [] name;
197 +                                }
198 +
199 +                                config->setMaps(maps);
200 +                        }
201                          config->save();
202                  case IDCANCEL:
203                          EndDialog(hwndDlg, wParam);
204                          return true;
205 +                case IDC_ADD_MAP:
206 +                        break;
207 +                case IDC_REMOVE_MAP:
208 +                        break;
209 +                case IDC_UP_MAP:
210 +                        break;
211 +                case IDC_DOWN_MAP:
212 +                        break;
213 +                case IDC_AVAILABLE:
214 +                        switch (HIWORD(wParam))
215 +                        {
216 +                        case LBN_SELCHANGE:
217 +                                if (SendMessage(GetDlgItem(hwndDlg, IDC_AVAILABLE),
218 +                                        LB_GETSELCOUNT, 0, 0) > 0)
219 +                                {
220 +                                        EnableWindow(GetDlgItem(hwndDlg, IDC_ADD_MAP), true);
221 +                                }
222 +                                else
223 +                                {
224 +                                        EnableWindow(GetDlgItem(hwndDlg, IDC_ADD_MAP), false);
225 +                                }
226 +                                break;
227 +                        }
228 +                        break;
229 +                case IDC_SELECTED:
230 +                        switch (HIWORD(wParam))
231 +                        {
232 +                        case LBN_SELCHANGE:
233 +                                if (SendMessage(GetDlgItem(hwndDlg, IDC_SELECTED),
234 +                                        LB_GETSELCOUNT, 0, 0) > 0)
235 +                                {
236 +                                        EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_MAP), true);
237 +                                        
238 +                                        if (SendMessage(GetDlgItem(hwndDlg, IDC_SELECTED),
239 +                                                LB_GETSEL, 0, 0) == 0)
240 +                                        {
241 +                                                EnableWindow(GetDlgItem(hwndDlg, IDC_UP_MAP), true);
242 +                                        }
243 +                                        else
244 +                                        {
245 +                                                EnableWindow(GetDlgItem(hwndDlg, IDC_UP_MAP), false);
246 +                                        }
247 +
248 +                                        if (SendMessage(GetDlgItem(hwndDlg, IDC_SELECTED),
249 +                                                LB_GETSEL, SendMessage(GetDlgItem(hwndDlg, IDC_SELECTED
250 +                                                ), LB_GETCOUNT, 0, 0) - 1, 0) == 0)
251 +                                        {
252 +                                                EnableWindow(GetDlgItem(hwndDlg, IDC_DOWN_MAP), true);
253 +                                        }
254 +                                        else
255 +                                        {
256 +                                                EnableWindow(GetDlgItem(hwndDlg, IDC_DOWN_MAP), false);
257 +                                        }
258 +                                }
259 +                                else
260 +                                {
261 +                                        EnableWindow(GetDlgItem(hwndDlg, IDC_REMOVE_MAP), false);
262 +                                        EnableWindow(GetDlgItem(hwndDlg, IDC_UP_MAP), false);
263 +                                        EnableWindow(GetDlgItem(hwndDlg, IDC_DOWN_MAP), false);
264 +                                }
265 +                                break;
266 +                        }
267 +                        break;
268                  }
269                  break;
270          }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines