mirror of
https://github.com/electronicarts/CnC_Generals_Zero_Hour.git
synced 2025-12-16 23:51:41 -05:00
Initial commit of Command & Conquer Generals and Command & Conquer Generals Zero Hour source code.
This commit is contained in:
243
GeneralsMD/Code/Tools/Babylon/ExportDlg.cpp
Normal file
243
GeneralsMD/Code/Tools/Babylon/ExportDlg.cpp
Normal file
@@ -0,0 +1,243 @@
|
||||
/*
|
||||
** 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;
|
||||
}
|
||||
Reference in New Issue
Block a user