/* ** Command & Conquer Renegade(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 . */ // EmitterUserPropPage.cpp : implementation file // #include "stdafx.h" #include "w3dview.h" #include "EmitterUserPropPage.h" #include "W3D_File.H" #include "Part_Emt.H" #include "EmitterInstanceList.H" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // EmitterUserPropPageClass property page IMPLEMENT_DYNCREATE(EmitterUserPropPageClass, CPropertyPage) ///////////////////////////////////////////////////////////// // // EmitterUserPropPageClass // EmitterUserPropPageClass::EmitterUserPropPageClass (EmitterInstanceListClass *pemitter) : m_pEmitterList (NULL), m_bValid (true), m_iType (EMITTER_TYPEID_DEFAULT), CPropertyPage(EmitterUserPropPageClass::IDD) { //{{AFX_DATA_INIT(EmitterUserPropPageClass) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT Initialize (); return ; } ///////////////////////////////////////////////////////////// // // ~EmitterUserPropPageClass // EmitterUserPropPageClass::~EmitterUserPropPageClass (void) { return; } ///////////////////////////////////////////////////////////// // // DoDataExchange // void EmitterUserPropPageClass::DoDataExchange (CDataExchange* pDX) { // Allow the base class to process this message CPropertyPage::DoDataExchange(pDX); //{{AFX_DATA_MAP(EmitterUserPropPageClass) DDX_Control(pDX, IDC_TYPE_COMBO, m_TypeCombo); //}}AFX_DATA_MAP return ; } BEGIN_MESSAGE_MAP(EmitterUserPropPageClass, CPropertyPage) //{{AFX_MSG_MAP(EmitterUserPropPageClass) ON_EN_CHANGE(IDC_PROGRAMMER_SETTINGS_EDIT, OnChangeProgrammerSettingsEdit) ON_CBN_SELCHANGE(IDC_TYPE_COMBO, OnSelchangeTypeCombo) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////// // // Initialize // void EmitterUserPropPageClass::Initialize (void) { if (m_pEmitterList != NULL) { // Record the user information from the emitter (if it exists) m_iType = m_pEmitterList->Get_User_Type (); m_UserString = m_pEmitterList->Get_User_String (); } return ; } ///////////////////////////////////////////////////////////// // // OnInitDialog // BOOL EmitterUserPropPageClass::OnInitDialog (void) { // Allow the base class to process this message CPropertyPage::OnInitDialog (); // Add the list of user-types to the combobox for (int index = 0; index < EMITTER_TYPEID_COUNT; index ++) { m_TypeCombo.AddString (EMITTER_TYPE_NAMES[index]); } // Select the correct entry in the combobox m_TypeCombo.SetCurSel (m_iType); // Fill in the user-box SetDlgItemText (IDC_PROGRAMMER_SETTINGS_EDIT, m_UserString); return TRUE; } ///////////////////////////////////////////////////////////// // // OnApply // BOOL EmitterUserPropPageClass::OnApply (void) { // Get the settings from the controls m_iType = m_TypeCombo.GetCurSel (); GetDlgItemText (IDC_PROGRAMMER_SETTINGS_EDIT, m_UserString); // // Pass the new settings onto the emitter // m_pEmitterList->Set_User_Type (m_iType); m_pEmitterList->Set_User_String (m_UserString); // Allow the base class to process this message return CPropertyPage::OnApply (); } ///////////////////////////////////////////////////////////// // // OnChangeProgrammerSettingsEdit // void EmitterUserPropPageClass::OnChangeProgrammerSettingsEdit (void) { SetModified (); return ; } ///////////////////////////////////////////////////////////// // // OnSelchangeTypeCombo // void EmitterUserPropPageClass::OnSelchangeTypeCombo (void) { SetModified (); return ; }