areaeditor/
/*
** AreaEditor - a program for editing SMAUG and ROM area files.
** Author: Nick Gammon
** http://www.gammon.com.au/
** See Copyright Notice at the end of AreaEditor.h
*/

// PrefsP4.cpp : implementation file
//

#include "stdafx.h"
#include "AreaEditor.h"
#include "PrefsP4.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPrefsP4 property page

IMPLEMENT_DYNCREATE(CPrefsP4, CPropertyPage)

CPrefsP4::CPrefsP4() : CPropertyPage(CPrefsP4::IDD)
{
	//{{AFX_DATA_INIT(CPrefsP4)
	m_bAreaCheck = FALSE;
	m_bEditWindow = FALSE;
	m_bHelp = FALSE;
	m_bEnable = FALSE;
	m_bMobDesc = FALSE;
	m_bMobLong = FALSE;
	m_bMobName = FALSE;
	m_bMobShort = FALSE;
	m_bObjActionDesc = FALSE;
	m_bObjLong = FALSE;
	m_bObjName = FALSE;
	m_bObjShort = FALSE;
	m_bRoomDesc = FALSE;
	m_bRoomName = FALSE;
	m_bAcceptName = FALSE;
	m_bCheckView = FALSE;
	m_bExitDesc = FALSE;
	m_bExtraDesc = FALSE;
	//}}AFX_DATA_INIT
}

CPrefsP4::~CPrefsP4()
{
}

void CPrefsP4::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPrefsP4)
	DDX_Control(pDX, IDC_ENABLE, m_ctlEnable);
	DDX_Check(pDX, IDC_CK_AREA_CHECK, m_bAreaCheck);
	DDX_Check(pDX, IDC_CK_EDIT_WINDOW, m_bEditWindow);
	DDX_Check(pDX, IDC_CK_HELP, m_bHelp);
	DDX_Check(pDX, IDC_ENABLE, m_bEnable);
	DDX_Check(pDX, IDC_MOB_DESC, m_bMobDesc);
	DDX_Check(pDX, IDC_MOB_LONG, m_bMobLong);
	DDX_Check(pDX, IDC_MOB_NAME, m_bMobName);
	DDX_Check(pDX, IDC_MOB_SHORT, m_bMobShort);
	DDX_Check(pDX, IDC_OBJ_ACTION_DESC, m_bObjActionDesc);
	DDX_Check(pDX, IDC_OBJ_LONG, m_bObjLong);
	DDX_Check(pDX, IDC_OBJ_NAME, m_bObjName);
	DDX_Check(pDX, IDC_OBJ_SHORT, m_bObjShort);
	DDX_Check(pDX, IDC_ROOM_DESC, m_bRoomDesc);
	DDX_Check(pDX, IDC_ROOM_NAME, m_bRoomName);
	DDX_Check(pDX, IDC_ACCEPT_NAME, m_bAcceptName);
	DDX_Check(pDX, IDC_CK_VIEW, m_bCheckView);
	DDX_Check(pDX, IDC_CK_EXIT_DESC, m_bExitDesc);
	DDX_Check(pDX, IDC_EXTRA_DESC, m_bExtraDesc);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPrefsP4, CPropertyPage)
	//{{AFX_MSG_MAP(CPrefsP4)
	ON_BN_CLICKED(IDC_ENGINE_PREFS, OnEnginePrefs)
	ON_BN_CLICKED(IDC_ENABLE, OnEnable)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPrefsP4 message handlers

void CPrefsP4::OnEnginePrefs() 
{
#ifdef SPELL_CHECKER

  // re-initialise in case they found the DLL
  App.InitSpellCheck (); 

  if (!App.m_bSpellCheckOK)
    {
    ::AfxMessageBox ("The spell check DLL was not found at program startup.\n\n"
                     "Please place it in your search path and restart Area Editor",
                     MB_ICONSTOP);
    return;
    }

  // show the options dialog  (with our custom dialog box)
  SSCE_OptionsDlgTmplt(m_hWnd, AfxGetResourceHandle (), "OPTIONSDLG");

#endif // SPELL_CHECKER

}

int iControls [] = 
  {
  IDC_CK_AREA_CHECK,
  IDC_CK_EDIT_WINDOW,
  IDC_CK_HELP, 
  IDC_MOB_DESC, 
  IDC_MOB_LONG, 
  IDC_MOB_NAME, 
  IDC_MOB_SHORT, 
  IDC_OBJ_ACTION_DESC,
  IDC_EXTRA_DESC, 
  IDC_OBJ_LONG, 
  IDC_OBJ_NAME, 
  IDC_OBJ_SHORT, 
  IDC_ROOM_DESC, 
  IDC_ROOM_NAME, 
  IDC_ACCEPT_NAME, 
  IDC_CK_VIEW, 
  IDC_ENGINE_PREFS,
  IDC_CK_EXIT_DESC
  };  // list of controls

void CPrefsP4::OnEnable() 
{
BOOL bEnabled = m_ctlEnable.GetCheck ();
CWnd * pWnd;
	
  for (int i = 0; i < NUMITEMS (iControls); i++)
    {
    pWnd = GetDlgItem  (iControls [i]);
    if (pWnd)
      pWnd->EnableWindow (bEnabled);
    }

}

BOOL CPrefsP4::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
  OnEnable ();	    // grey out controls appropriately

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}