244 lines
5.6 KiB
C++
Raw Normal View History

/*
** Command & Conquer Generals Zero Hour(tm)
** Copyright 2025 Electronic Arts Inc.
**
** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// ExportDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Babylon.h"
#include "ExportDlg.h"
#include "direct.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
static int max_index;
/////////////////////////////////////////////////////////////////////////////
// CExportDlg dialog
CExportDlg::CExportDlg(CWnd* pParent /*=NULL*/)
: CDialog(CExportDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CExportDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CExportDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CExportDlg)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CExportDlg, CDialog)
//{{AFX_MSG_MAP(CExportDlg)
ON_CBN_SELCHANGE(IDC_COMBOLANG, OnSelchangeCombolang)
ON_CBN_SELENDOK(IDC_COMBOLANG, OnSelendokCombolang)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CExportDlg message handlers
void CExportDlg::OnOK()
{
char buffer[100];
char *ptr;
// TODO: Add extra validation here
CEdit *edit = (CEdit *) GetDlgItem ( IDC_FILENAME );
CButton *all = (CButton *) GetDlgItem ( IDC_RADIOALL );
CButton *button;
CButton *sample = (CButton *) GetDlgItem ( IDC_RADIOSAMPLE );
CButton *dialog = (CButton *) GetDlgItem ( IDC_RADIODIALOG );
CButton *nondialog = (CButton *) GetDlgItem ( IDC_RADIONONDIALOG );
CButton *unverified = (CButton *) GetDlgItem ( IDC_RADIOUNVERIFIED );
CButton *missing = (CButton *) GetDlgItem ( IDC_RADIOMISSING );
CButton *unsent = (CButton *) GetDlgItem ( IDC_RADIOUNSENT );
edit->GetWindowText ( buffer, sizeof ( filename) -1 );
_getcwd ( filename, sizeof (filename ) -1 );
strcat ( filename, "\\" );
if ( ( ptr = strchr ( buffer, '.' )))
{
*ptr = 0;
}
strcat ( filename, buffer );
if ( all->GetCheck ())
{
options.filter = TR_ALL;
}
else if ( dialog->GetCheck ())
{
options.filter = TR_DIALOG;
}
else if ( nondialog->GetCheck ())
{
options.filter = TR_NONDIALOG;
}
else if ( sample->GetCheck ())
{
options.filter = TR_SAMPLE;
}
else if ( unverified->GetCheck ())
{
options.filter = TR_UNVERIFIED;
}
else if ( missing->GetCheck ())
{
options.filter = TR_MISSING_DIALOG;
}
else if ( unsent->GetCheck ())
{
options.filter = TR_UNSENT;
}
else
{
options.filter = TR_CHANGES;
}
options.include_comments = FALSE;
button = (CButton *) GetDlgItem ( IDC_CHECKTRANS );
options.include_translations = button->GetCheck ();
CDialog::OnOK();
}
void CExportDlg::OnCancel()
{
// TODO: Add extra cleanup here
langid = LANGID_UNKNOWN;
CDialog::OnCancel();
}
BOOL CExportDlg::OnInitDialog()
{
int index;
int lang_index;
LANGINFO *info;
CComboBox *combo;
CEdit *edit = (CEdit *) GetDlgItem ( IDC_FILENAME );
CButton *button = (CButton *) GetDlgItem ( IDC_RADIOCHANGES );
CDialog::OnInitDialog();
// TODO: Add extra initialization here
combo = (CComboBox *) GetDlgItem ( IDC_COMBOLANG );
combo->SetItemDataPtr ( 0, NULL );
options.filter = TR_CHANGES;
options.include_comments = FALSE;
options.include_translations = FALSE;
langid = LANGID_UNKNOWN;
filename[0] = 0;
button->SetCheck ( 1 );
index = 0;
lang_index = 0;
got_lang = FALSE;
while ( (info = GetLangInfo ( lang_index )) )
{
if ( TRUE )//info->langid != LANGID_US )
{
combo->InsertString ( index, info->name );
combo->SetItemDataPtr ( index, info );
if ( info->langid == CurrentLanguage )
{
combo->SetCurSel ( index );
got_lang = TRUE;
}
index++;
}
lang_index++;
}
max_index = index;
if ( !got_lang )
{
combo->InsertString ( 0, "Select language" );
combo->SetCurSel ( 0 );
max_index++;
}
edit->SetLimitText ( 8 );
OnSelchangeCombolang ();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CExportDlg::OnSelchangeCombolang()
{
// TODO: Add your control notification handler code here
LANGINFO *info = NULL;
int index;
CButton *export = (CButton *) GetDlgItem ( IDOK );
CComboBox *combo = (CComboBox *) GetDlgItem ( IDC_COMBOLANG );
CEdit *edit = (CEdit *) GetDlgItem ( IDC_FILENAME );
index = combo->GetCurSel ();
if ( index >= 0 && index < max_index )
{
info = (LANGINFO *) combo->GetItemDataPtr ( index );
}
if ( info )
{
char buffer[10];
edit->EnableWindow ( TRUE );
sprintf ( buffer, "Generals_%s", info->initials );
edit->SetWindowText ( buffer );
export->EnableWindow ( TRUE );
langid = info->langid;
if ( !got_lang )
{
combo->DeleteString ( 0 );
max_index--;
got_lang = TRUE;
}
}
else
{
edit->SetWindowText ("");
edit->EnableWindow ( FALSE );
export->EnableWindow ( FALSE );
langid = LANGID_UNKNOWN;
}
}
void CExportDlg::OnSelendokCombolang()
{
// TODO: Add your control notification handler code here
int i = 0;
}