Mercurial > vba-linux
diff src/win32/GSACodeSelect.cpp @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/win32/GSACodeSelect.cpp Sat Mar 03 10:31:27 2012 -0600 1.3 @@ -0,0 +1,96 @@ 1.4 +// GSACodeSelect.cpp : implementation file 1.5 +// 1.6 + 1.7 +#include "stdafx.h" 1.8 +#include "resource.h" 1.9 +#include "GSACodeSelect.h" 1.10 + 1.11 +///////////////////////////////////////////////////////////////////////////// 1.12 +// GSACodeSelect dialog 1.13 + 1.14 +GSACodeSelect::GSACodeSelect(FILE *file, CWnd*pParent /*=NULL*/) 1.15 + : CDialog(GSACodeSelect::IDD, pParent) 1.16 +{ 1.17 + //{{AFX_DATA_INIT(GSACodeSelect) 1.18 + // NOTE: the ClassWizard will add member initialization here 1.19 + //}}AFX_DATA_INIT 1.20 + m_file = file; 1.21 +} 1.22 + 1.23 +void GSACodeSelect::DoDataExchange(CDataExchange*pDX) 1.24 +{ 1.25 + CDialog::DoDataExchange(pDX); 1.26 + //{{AFX_DATA_MAP(GSACodeSelect) 1.27 + DDX_Control(pDX, IDC_GAME_LIST, m_games); 1.28 + //}}AFX_DATA_MAP 1.29 +} 1.30 + 1.31 +BEGIN_MESSAGE_MAP(GSACodeSelect, CDialog) 1.32 +//{{AFX_MSG_MAP(GSACodeSelect) 1.33 +ON_BN_CLICKED(ID_OK, OnOk) 1.34 +ON_LBN_SELCHANGE(IDC_GAME_LIST, OnSelchangeGameList) 1.35 +ON_BN_CLICKED(ID_CANCEL, OnCancel) 1.36 +//}}AFX_MSG_MAP 1.37 +END_MESSAGE_MAP() 1.38 + 1.39 +///////////////////////////////////////////////////////////////////////////// 1.40 +// GSACodeSelect message handlers 1.41 + 1.42 +void GSACodeSelect::OnCancel() 1.43 +{ 1.44 + EndDialog(-1); 1.45 +} 1.46 + 1.47 +void GSACodeSelect::OnOk() 1.48 +{ 1.49 + EndDialog(m_games.GetCurSel()); 1.50 +} 1.51 + 1.52 +void GSACodeSelect::OnSelchangeGameList() 1.53 +{ 1.54 + int item = m_games.GetCurSel(); 1.55 + CWnd *ok = GetDlgItem(ID_OK); 1.56 + 1.57 + ok->EnableWindow(item != -1); 1.58 +} 1.59 + 1.60 +BOOL GSACodeSelect::OnInitDialog() 1.61 +{ 1.62 + CDialog::OnInitDialog(); 1.63 + 1.64 + char buffer[1024]; 1.65 + 1.66 + FILE *f = m_file; 1.67 + int games = 0; 1.68 + int len = 0; 1.69 + fseek(f, -4, SEEK_CUR); 1.70 + fread(&games, 1, 4, f); 1.71 + while (games > 0) 1.72 + { 1.73 + fread(&len, 1, 4, f); 1.74 + fread(buffer, 1, len, f); 1.75 + buffer[len] = 0; 1.76 + m_games.AddString(buffer); 1.77 + int codes = 0; 1.78 + fread(&codes, 1, 4, f); 1.79 + 1.80 + while (codes > 0) 1.81 + { 1.82 + fread(&len, 1, 4, f); 1.83 + fseek(f, len, SEEK_CUR); 1.84 + fread(&len, 1, 4, f); 1.85 + fseek(f, len, SEEK_CUR); 1.86 + fseek(f, 4, SEEK_CUR); 1.87 + fread(&len, 1, 4, f); 1.88 + fseek(f, len*12, SEEK_CUR); 1.89 + codes--; 1.90 + } 1.91 + games--; 1.92 + } 1.93 + GetDlgItem(ID_OK)->EnableWindow(FALSE); 1.94 + CenterWindow(); 1.95 + 1.96 + return TRUE; // return TRUE unless you set the focus to a control 1.97 + // EXCEPTION: OCX Property Pages should return FALSE 1.98 +} 1.99 +