0.4 = added delete button

This commit is contained in:
Johnny Bergström 2005-01-27 08:58:01 +00:00
parent e097932ac9
commit 3f2a8ccfc5
4 changed files with 72 additions and 19 deletions

View File

@ -70,6 +70,9 @@ public:
inline int updatePosition( Stats* points ) { inline int updatePosition( Stats* points ) {
return parent->updatePos( this , points ); return parent->updatePos( this , points );
} }
inline void MarkToDelete() {
this->score = (1<<31);
}
}; };
private: private:

View File

@ -17,8 +17,8 @@
#define IDC_BUTTON_ABOUT 1029 #define IDC_BUTTON_ABOUT 1029
#define IDC_ABOUT 1029 #define IDC_ABOUT 1029
#define IDC_BUTTON_SAVECHANGES 1030 #define IDC_BUTTON_SAVECHANGES 1030
#define IDC_BUTTON1 1031
#define IDC_BUTTON_CLEARSTATS 1031 #define IDC_BUTTON_CLEARSTATS 1031
#define IDC_BUTTON_DELETE 1032
#define IDC_EDIT_NAME 1100 #define IDC_EDIT_NAME 1100
#define IDC_EDIT_POSITION 1101 #define IDC_EDIT_POSITION 1101
#define IDC_EDIT_AUTHID 1102 #define IDC_EDIT_AUTHID 1102
@ -44,9 +44,9 @@
#ifdef APSTUDIO_INVOKED #ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS #ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1 #define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 130 #define _APS_NEXT_RESOURCE_VALUE 131
#define _APS_NEXT_COMMAND_VALUE 32775 #define _APS_NEXT_COMMAND_VALUE 32775
#define _APS_NEXT_CONTROL_VALUE 1032 #define _APS_NEXT_CONTROL_VALUE 1033
#define _APS_NEXT_SYMED_VALUE 110 #define _APS_NEXT_SYMED_VALUE 110
#endif #endif
#endif #endif

View File

@ -219,7 +219,9 @@ void ListboxItemSelected(HWND hDlg) {
// Retrieve complete stats record of this position. Position in listbox should be same as rank in our records! // Retrieve complete stats record of this position. Position in listbox should be same as rank in our records!
RankSystem::RankStats* stats = g_rank.findEntryInRankByPos((int)nItem + 1); RankSystem::RankStats* stats = g_rank.findEntryInRankByPos((int)nItem + 1);
if (stats == NULL) { if (stats == NULL) {
MessageBox(hDlg, "Error: Couldn't find the record by position!", "Oh fiddlesticks!", MB_OK); char msg[] = "Error: Couldn't find the record by position! (nItem = %d)";
sprintf(msg, msg, nItem);
MessageBox(hDlg, msg, "Oh fiddlesticks!", MB_OK);
ClearStatsfields(hDlg); ClearStatsfields(hDlg);
return; return;
} }
@ -345,6 +347,50 @@ void ClearStats(HWND hDlg) {
ListboxItemSelected(hDlg); ListboxItemSelected(hDlg);
} }
void DeleteRecord(HWND hDlg) {
if (MessageBox(hDlg, "Are you sure?", "Omg!", MB_OKCANCEL | MB_DEFBUTTON2 | MB_ICONWARNING) != IDOK)
return;
BOOL success;
int position = GetDlgItemInt(hDlg, IDC_EDIT_POSITION, &success, false);
if (!success)
goto BadEnd;
char authid[32]; // "primary key"
GetDlgItemText(hDlg, IDC_EDIT_AUTHID, authid, sizeof(authid));
RankSystem::RankStats* entry = g_rank.findEntryInRankByUnique(authid);
if (!entry) {
char buffer[256];
sprintf(buffer, "Authid %s not found!", authid);
MessageBox(hDlg, buffer, "Update failed", MB_OK);
return;
}
// Mark this record to delete it.
entry->MarkToDelete();
// Save ranks from memory to disk.
g_rank.saveRank(STATS_FILENAME); // Save changes to file
// Clear memory.
g_rank.clear();
// Reload from disk into memory.
LoadRankFromFile(hDlg);
// Update list box.
UpdateListBox(hDlg);
MessageBox(hDlg, "Deleted record", "Delete succeeded", MB_OK);
return;
BadEnd:
MessageBox(hDlg, "Delete failed", "Oh fiddlesticks!", MB_OK);
return;
}
// Message handler for WinCSXBox. // Message handler for WinCSXBox.
LRESULT CALLBACK WinCSXBox(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) LRESULT CALLBACK WinCSXBox(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{ {
@ -381,6 +427,10 @@ LRESULT CALLBACK WinCSXBox(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam
case IDC_BUTTON_CLEARSTATS: case IDC_BUTTON_CLEARSTATS:
ClearStats(hDlg); ClearStats(hDlg);
break; break;
case IDC_BUTTON_DELETE:
DeleteRecord(hDlg);
//DialogBox(hInst, (LPCTSTR)IDD_DELETEBOX, hDlg, (DLGPROC)DeleteBox);
break;
} }
break; break;
} }
@ -408,4 +458,3 @@ LRESULT CALLBACK AboutBox(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
return FALSE; return FALSE;
} }

View File

@ -65,29 +65,29 @@ END
// Dialog // Dialog
// //
IDD_WINCSXBOX DIALOGEX 22, 17, 256, 203 IDD_WINCSXBOX DIALOGEX 22, 17, 253, 204
STYLE DS_ABSALIGN | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | STYLE DS_ABSALIGN | DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION |
WS_SYSMENU WS_SYSMENU
CAPTION "WinCSX" CAPTION "WinCSX"
FONT 8, "System", 0, 0, 0x0 FONT 8, "System", 0, 0, 0x0
BEGIN BEGIN
DEFPUSHBUTTON "Close",IDOK,206,168,39,26,WS_GROUP DEFPUSHBUTTON "Close",IDOK,206,168,39,27,WS_GROUP
LISTBOX IDC_LIST,4,5,94,189,LBS_HASSTRINGS | LISTBOX IDC_LIST,4,5,94,190,LBS_HASSTRINGS |
LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
EDITTEXT IDC_EDIT_NAME,109,18,87,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_NAME,109,18,87,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_POSITION,206,18,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_POSITION,206,18,39,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_AUTHID,109,48,87,12,ES_AUTOHSCROLL | EDITTEXT IDC_EDIT_AUTHID,109,48,87,12,ES_AUTOHSCROLL |
ES_READONLY ES_READONLY
EDITTEXT IDC_EDIT_DAMAGE,206,48,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_DAMAGE,206,48,39,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_FRAGS,109,78,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_FRAGS,109,78,40,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_DEATHS,157,78,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_DEATHS,157,78,40,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_TKS,206,78,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_TKS,206,78,39,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_SHOTS,109,108,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_SHOTS,109,108,40,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_HITS,157,108,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_HITS,157,108,40,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_HS,206,108,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_HS,206,108,39,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_PLANTS,109,138,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_PLANTS,109,138,40,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_EXPLOSIONS,157,137,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_EXPLOSIONS,157,137,40,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_DEFUSIONS,206,137,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_DEFUSIONS,206,137,39,12,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT_DEFUSED,109,168,40,12,ES_AUTOHSCROLL EDITTEXT IDC_EDIT_DEFUSED,109,168,40,12,ES_AUTOHSCROLL
LTEXT "Name (last used)",IDC_STATIC,109,5,56,8 LTEXT "Name (last used)",IDC_STATIC,109,5,56,8
LTEXT "Damage",IDC_STATIC,206,35,28,8 LTEXT "Damage",IDC_STATIC,206,35,28,8
@ -103,10 +103,10 @@ BEGIN
LTEXT "Explosions",IDC_STATIC,157,125,38,8 LTEXT "Explosions",IDC_STATIC,157,125,38,8
LTEXT "Defused",IDC_STATIC,109,155,28,8 LTEXT "Defused",IDC_STATIC,109,155,28,8
LTEXT "Defusions",IDC_STATIC,206,125,34,8 LTEXT "Defusions",IDC_STATIC,206,125,34,8
PUSHBUTTON "About",IDC_ABOUT,109,184,40,10 PUSHBUTTON "About",IDC_ABOUT,109,185,40,10
PUSHBUTTON "Save record changes",IDC_BUTTON_SAVECHANGES,156,155,89, PUSHBUTTON "Save",IDC_BUTTON_SAVECHANGES,157,155,39,8
10 PUSHBUTTON "Clear stats",IDC_BUTTON_CLEARSTATS,157,168,39,27
PUSHBUTTON "Clear stats",IDC_BUTTON_CLEARSTATS,157,168,39,26 PUSHBUTTON "Delete",IDC_BUTTON_DELETE,206,155,39,8
END END
IDD_ABOUTBOX DIALOGEX 0, 0, 186, 95 IDD_ABOUTBOX DIALOGEX 0, 0, 186, 95
@ -162,7 +162,7 @@ BEGIN
IDD_WINCSXBOX, DIALOG IDD_WINCSXBOX, DIALOG
BEGIN BEGIN
LEFTMARGIN, 4 LEFTMARGIN, 4
RIGHTMARGIN, 251 RIGHTMARGIN, 248
VERTGUIDE, 98 VERTGUIDE, 98
VERTGUIDE, 109 VERTGUIDE, 109
VERTGUIDE, 157 VERTGUIDE, 157
@ -170,7 +170,7 @@ BEGIN
VERTGUIDE, 206 VERTGUIDE, 206
VERTGUIDE, 245 VERTGUIDE, 245
TOPMARGIN, 5 TOPMARGIN, 5
BOTTOMMARGIN, 194 BOTTOMMARGIN, 195
HORZGUIDE, 18 HORZGUIDE, 18
HORZGUIDE, 35 HORZGUIDE, 35
HORZGUIDE, 48 HORZGUIDE, 48
@ -181,6 +181,7 @@ BEGIN
HORZGUIDE, 125 HORZGUIDE, 125
HORZGUIDE, 137 HORZGUIDE, 137
HORZGUIDE, 155 HORZGUIDE, 155
HORZGUIDE, 163
HORZGUIDE, 168 HORZGUIDE, 168
END END
END END