www.pudn.com > uoth_src.zip > LevelInfoDlg.cpp


//----------------------------------------------------------------------------- 
//  
// @doc 
// 
// @module	LevelInfoDlg.cpp - Level information dialog | 
// 
// This module contains the definition of the Level information dialog. 
// 
// Copyright (c) 2002 - Descartes Systems Sciences, Inc. 
// 
// All rights reserved. 
// 
// Redistribution and use in source and binary forms, with or without  
// modification, are permitted provided that the following conditions are  
// met: 
//  
// 1. Redistributions of source code must retain the above copyright notice,  
//    this list of conditions and the following disclaimer.  
// 2. Neither the name of Descartes Systems Sciences, Inc nor the names of  
//    its contributors may be used to endorse or promote products derived  
//    from this software without specific prior written permission. 
// 
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT  
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR  
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED  
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR  
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING  
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS  
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
// 
// @end 
// 
// $History: LevelInfoDlg.cpp $ 
//       
//----------------------------------------------------------------------------- 
 
#include "stdafx.h" 
#include "resource.h" 
#include "LevelInfoDlg.h" 
#include "uoth.h" 
#include "Level.h" 
 
//----------------------------------------------------------------------------- 
// 
// @mfunc  constructor. 
// 
// @parm int | nLevel | Level number 
// 
// @rdesc None. 
// 
//----------------------------------------------------------------------------- 
 
CLevelInfoDlg::CLevelInfoDlg (int nLevel) 
{ 
	m_nLevel = nLevel; 
} 
 
//----------------------------------------------------------------------------- 
// 
// @mfunc  destructor. 
// 
// @rdesc None. 
// 
//----------------------------------------------------------------------------- 
 
CLevelInfoDlg::~CLevelInfoDlg() 
{ 
} 
 
//----------------------------------------------------------------------------- 
// 
// @mfunc Initialize the dialog 
// 
// @parm UINT | uMsg | Message 
// 
// @parm WPARAM | wParam | Message w-parameter 
// 
// @parm LPARAM | lParam | Message l-parameter 
// 
// @parm BOOL & | bHandled | If handled, set to true 
// 
// @rdesc Routine results 
// 
//----------------------------------------------------------------------------- 
 
LRESULT CLevelInfoDlg::OnInitDialog (UINT uMsg,  
	WPARAM wParam, LPARAM lParam, BOOL &bHandled)  
{ 
 
	// 
	// Subclass the controls 
	// 
 
	m_edit = GetDlgItem (IDC_LEVEL_INFO); 
	m_cbLevel = GetDlgItem (IDC_LEVEL_SELECT); 
 
	// 
	// Center the window 
	// 
 
	CenterWindow (); 
 
	// 
	// Populate the combo box 
	// 
 
	for (int il = 0; il < CLevel::gm_vLevels .GetCount (); ++il) 
	{ 
		CLevel *pLevel = &CLevel::gm_vLevels [il]; 
		if (!pLevel ->IsValid ()) 
			continue; 
		TCHAR szText [256]; 
		_sntprintf (szText, _countof (szText), _T ( "%d - %s"),  
			pLevel ->m_nIndex, (LPCTSTR) pLevel ->m_strName); 
		m_cbLevel .AddString (szText); 
	} 
 
	// 
	// Select a Level 
	// 
 
	if (m_nLevel >= 0) 
		m_cbLevel .SetCurSel (m_nLevel - 1); 
	else 
		m_cbLevel .SetCurSel (0); 
 
	// 
	// Display 
	// 
 
	DisplayLevel (); 
	return TRUE; 
} 
 
//----------------------------------------------------------------------------- 
// 
// @mfunc Display the Level information 
// 
// @rdesc None. 
// 
//----------------------------------------------------------------------------- 
 
void CLevelInfoDlg::DisplayLevel () 
{ 
 
	// 
	// Get the Level number 
	// 
 
	m_nLevel = m_cbLevel .GetCurSel (); 
	CString strLevel; 
	m_cbLevel .GetLBText (m_nLevel, strLevel); 
	m_nLevel = atol (strLevel); 
 
	// 
	// Populate the data 
	// 
 
	CString str = CLevel::gm_vLevels [m_nLevel] .GetInformation (false); 
	m_edit .SetWindowText (str); 
	return; 
}