/* Copyright (c) 2002-2012 Croteam Ltd. This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation 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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ // DlgPgInfoAttachingSound.cpp : implementation file // #include "stdafx.h" #ifdef _DEBUG #undef new #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDlgPgInfoAttachingSound property page IMPLEMENT_DYNCREATE(CDlgPgInfoAttachingSound, CPropertyPage) CDlgPgInfoAttachingSound::CDlgPgInfoAttachingSound() : CPropertyPage(CDlgPgInfoAttachingSound::IDD) { //{{AFX_DATA_INIT(CDlgPgInfoAttachingSound) m_strAttachedSound = _T(""); m_bLooping = FALSE; m_bPlaying = FALSE; m_fDelay = 0.0f; //}}AFX_DATA_INIT } CDlgPgInfoAttachingSound::~CDlgPgInfoAttachingSound() { } void CDlgPgInfoAttachingSound::DoDataExchange(CDataExchange* pDX) { CPropertyPage::DoDataExchange(pDX); CModelerView *pModelerView = CModelerView::GetActiveView(); if(pModelerView == NULL) return; CModelerDoc* pDoc = pModelerView->GetDocument(); CAttachedSound &asSound = pDoc->m_emEditModel.edm_aasAttachedSounds[pModelerView->m_ModelObject.GetAnim()]; // if transfering data from document to dialog if( !pDX->m_bSaveAndValidate) { m_strAttachedSound = asSound.as_fnAttachedSound; if( m_strAttachedSound == "") m_strAttachedSound = ""; m_bLooping = asSound.as_bLooping; m_bPlaying = asSound.as_bPlaying; m_fDelay = asSound.as_fDelay; // mark that the values have been updated to reflect the state of the view m_udAllValues.MarkUpdated(); } //{{AFX_DATA_MAP(CDlgPgInfoAttachingSound) DDX_Text(pDX, IDC_ATTACHING_SOUND_T, m_strAttachedSound); DDX_Check(pDX, IDC_IS_LOOPING, m_bLooping); DDX_Check(pDX, IDC_IS_PLAYING, m_bPlaying); DDX_SkyFloat(pDX, IDC_SOUND_START_DELAY, m_fDelay); //}}AFX_DATA_MAP // if transfering data from dialog to document if( pDX->m_bSaveAndValidate) { if( m_strAttachedSound != "") { asSound.as_fnAttachedSound = CTString( CStringA(m_strAttachedSound)); asSound.as_bLooping = m_bLooping; asSound.as_bPlaying = m_bPlaying; asSound.as_fDelay = m_fDelay; pDoc->SetModifiedFlag(); pDoc->UpdateAllViews( NULL); } } } BEGIN_MESSAGE_MAP(CDlgPgInfoAttachingSound, CPropertyPage) //{{AFX_MSG_MAP(CDlgPgInfoAttachingSound) ON_BN_CLICKED(IDC_BROWSE_SOUND, OnBrowseSound) ON_BN_CLICKED(IDC_IS_LOOPING, OnIsLooping) ON_BN_CLICKED(IDC_IS_PLAYING, OnIsPlaying) ON_BN_CLICKED(IDC_ATTACHING_SOUND_NONE, OnAttachingSoundNone) ON_EN_CHANGE(IDC_SOUND_START_DELAY, OnChangeSoundStartDelay) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDlgPgInfoAttachingSound message handlers BOOL CDlgPgInfoAttachingSound::OnInitDialog() { CPropertyPage::OnInitDialog(); return TRUE; } BOOL CDlgPgInfoAttachingSound::OnIdle(LONG lCount) { return TRUE; } void CDlgPgInfoAttachingSound::OnBrowseSound() { CModelerView *pModelerView = CModelerView::GetActiveView(); if( pModelerView == NULL) return; CModelerDoc* pDoc = pModelerView->GetDocument(); CAttachedSound &asSound = pDoc->m_emEditModel.edm_aasAttachedSounds[pModelerView->m_ModelObject.GetAnim()]; // request sound CTFileName fnNewSound = _EngineGUI.FileRequester( "Select sound to attach to animation", FILTER_WAV FILTER_END, "Sounds directory", "Sounds", asSound.as_fnAttachedSound.FileName()+asSound.as_fnAttachedSound.FileExt()); if( fnNewSound == "") return; asSound.as_fnAttachedSound = fnNewSound; pDoc->SetModifiedFlag(); pDoc->UpdateAllViews( NULL); UpdateData( FALSE); } void CDlgPgInfoAttachingSound::OnAttachingSoundNone() { CModelerView *pModelerView = CModelerView::GetActiveView(); if( pModelerView == NULL) return; CModelerDoc* pDoc = pModelerView->GetDocument(); CAttachedSound &asSound = pDoc->m_emEditModel.edm_aasAttachedSounds[pModelerView->m_ModelObject.GetAnim()]; asSound.as_fnAttachedSound = CTString(""); pDoc->SetModifiedFlag(); pDoc->UpdateAllViews( NULL); UpdateData( FALSE); } void CDlgPgInfoAttachingSound::OnIsLooping() { UpdateData( TRUE); } void CDlgPgInfoAttachingSound::OnIsPlaying() { UpdateData( TRUE); } void CDlgPgInfoAttachingSound::OnChangeSoundStartDelay() { UpdateData( TRUE); }