| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- /*
- ** Command & Conquer Generals(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/>.
- */
- // MatchDlg.cpp : implementation file
- //
- #include "stdafx.h"
- #include "noxstring.h"
- #include "MatchDlg.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- NoxText *MatchingNoxText = NULL;
- NoxText *MatchOriginalText;
- NoxLabel *MatchLabel;
- #define MAX_MATCH 256
- static NoxText *current_match = NULL;
- /////////////////////////////////////////////////////////////////////////////
- // CMatchDlg dialog
- CMatchDlg::CMatchDlg(CWnd* pParent /*=NULL*/)
- : CDialog(CMatchDlg::IDD, pParent)
- {
- //{{AFX_DATA_INIT(CMatchDlg)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- }
- void CMatchDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CMatchDlg)
- // NOTE: the ClassWizard will add DDX and DDV calls here
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(CMatchDlg, CDialog)
- //{{AFX_MSG_MAP(CMatchDlg)
- ON_BN_CLICKED(IDC_NOMATCH, OnNomatch)
- ON_BN_CLICKED(IDC_MATCH, OnMatch)
- ON_BN_CLICKED(IDC_SKIP, OnSkip)
- ON_CBN_SELCHANGE(IDC_MATCHCOMBO, OnSelchangeMatchcombo)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CMatchDlg message handlers
- void CMatchDlg::OnCancel()
- {
- // TODO: Add extra cleanup here
-
- MatchingNoxText = NULL;
- CDialog::OnCancel();
- }
- void CMatchDlg::OnNomatch()
- {
- // TODO: Add your control notification handler code here
- MatchingNoxText = NULL;
- CDialog::OnOK ();
- }
- void CMatchDlg::OnMatch()
- {
- // TODO: Add your control notification handler code here
- if ( (MatchingNoxText = current_match ) )
- {
- CButton *check = (CButton *) GetDlgItem ( IDC_CHECKRETRANSLATE );
- current_match->SetRetranslate ( check->GetCheck ());
- }
- CDialog::OnOK ();
- }
- BOOL CMatchDlg::OnInitDialog()
- {
- NoxText *text;
- ListSearch sh;
- int index;
- CStatic *newtext;
- CComboBox *combo;
- static char buffer[4*1024];
- sprintf ( buffer, "Resolve umatched text from \"%s\" on line %d", MatchLabel->NameSB(),
- MatchOriginalText->LineNumber() );
- SetWindowText ( buffer );
- CDialog::OnInitDialog();
- current_match = NULL;
- newtext = (CStatic *) GetDlgItem ( IDC_NEWTEXT );
- newtext->SetWindowText ( MatchOriginalText->GetSB());
- combo = (CComboBox *) GetDlgItem ( IDC_MATCHCOMBO );
- CButton *check = (CButton *) GetDlgItem ( IDC_CHECKRETRANSLATE );
- check->SetCheck ( 1 );
- text = MatchLabel->FirstText ( sh );
- index = 0;
- while ( text )
- {
- if ( !text->Matched ())
- {
- int result;
- result = combo->InsertString ( index, text->GetSB ());
- result = combo->SetItemDataPtr ( index, text );
- if ( result == CB_ERR )
- {
- result = 0;
- }
- if ( result == CB_ERRSPACE )
- {
- result = 0;
- }
- index++;
- }
-
- text = MatchLabel->NextText ( sh );
- }
- combo->SetCurSel ( 0 );
- OnSelchangeMatchcombo();
- MatchingNoxText = NULL;
- // TODO: Add extra initialization here
-
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- void CMatchDlg::OnSelchangeMatchcombo()
- {
- // TODO: Add your control notification handler code here
- int index;
- CComboBox *combo = (CComboBox *) GetDlgItem ( IDC_MATCHCOMBO );
- index = combo->GetCurSel ();
- if ( index >= 0 )
- {
- CStatic *newtext = (CStatic *) GetDlgItem ( IDC_MATCHTEXT );
- current_match = (NoxText *) combo->GetItemDataPtr ( index );
- newtext->SetWindowText ( current_match->GetSB());
- }
- else
- {
- current_match = NULL;
- }
- }
- void CMatchDlg::OnSkip()
- {
- // TODO: Add your control notification handler code here
- EndDialog ( IDSKIP );
- }
|