mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-12-01 22:25:53 +01:00
164 lines
4.8 KiB
C++
164 lines
4.8 KiB
C++
/* 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 = "<No sound>";
|
|
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 != "<No sound>")
|
|
{
|
|
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);
|
|
}
|