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
*/

// HelpView.cpp : implementation file
//

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

#include "AreaEditorDoc.h"

#include "HelpView.h"
#include "EditDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CHelpView

IMPLEMENT_DYNCREATE(CHelpView, CFormView)

CHelpView::CHelpView()
	: CFormView(CHelpView::IDD)
{
	//{{AFX_DATA_INIT(CHelpView)
	m_level = 0;
	m_text = _T("");
	m_keyword = _T("");
	//}}AFX_DATA_INIT

  m_help = NULL;

}

CHelpView::~CHelpView()
{
}

#undef LOAD_VALUE
#define LOAD_VALUE(field, value)  \
  field = m_help->value

#undef UNLOAD_VALUE
#define UNLOAD_VALUE(field, value)  \
  if (field != m_help->value) bChanged = true; \
  m_help->value = field

void CHelpView::DoDataExchange(CDataExchange* pDX)
{
bool bChanged = false;

  if (!pDX->m_bSaveAndValidate && m_help)
    {
	  LOAD_VALUE (m_keyword      , keyword     );
	  LOAD_VALUE (m_level  , level );
	  LOAD_VALUE (m_text   , text);
    }
  else if (pDX->m_bSaveAndValidate && m_help)
    {
#ifdef SPELL_CHECKER

    // spell check the various edit controls
    if (App.m_bSpellCheckOK && 
        CHECK_BIT_NUMBER (App.m_SpellCheckOptions, SK_CHECK_ON_VIEW))
      {
      if (CHECK_BIT_NUMBER (App.m_SpellCheckOptions, SK_HELP_TEXT))
        App.SpellCheck (this, &m_ctlHelp);
      }
#endif // SPELL_CHECKER

    }

	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CHelpView)
	DDX_Control(pDX, IDC_TEXT, m_ctlHelp);
	DDX_Text(pDX, IDC_LEVEL, m_level);
	DDX_Text(pDX, IDC_TEXT, m_text);
	DDX_Text(pDX, IDC_KEYWORDS, m_keyword);
	//}}AFX_DATA_MAP

  if (pDX->m_bSaveAndValidate && m_help)
    {

    CheckForTilde (pDX, IDC_KEYWORDS, m_keyword);
    CheckForTilde (pDX, IDC_TEXT, m_text);

	  UNLOAD_VALUE (m_keyword      , keyword     );
	  UNLOAD_VALUE (m_level  , level );
	  UNLOAD_VALUE (m_text   , text);
     if (bChanged)
       m_help->m_pDoc->SetModifiedFlag ();
    }

  if (m_help)
    m_help->m_pTreeCtrl->SetItemText (m_help->m_hdlTreeItem, m_help->Summary ());
}


BEGIN_MESSAGE_MAP(CHelpView, CFormView)
	//{{AFX_MSG_MAP(CHelpView)
	ON_BN_CLICKED(IDC_EDIT_HELP, OnEditHelp)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHelpView diagnostics

#ifdef _DEBUG
void CHelpView::AssertValid() const
{
	CFormView::AssertValid();
}

void CHelpView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CHelpView message handlers

void CHelpView::OnEditHelp() 
{
CEditDlg dlg;

	m_ctlHelp.GetWindowText (dlg.m_strEditText);

  dlg.m_bEndline = true;
  dlg.m_bSpellCheck = CHECK_BIT_NUMBER (App.m_SpellCheckOptions, SK_HELP_TEXT);

  if (dlg.DoModal () != IDOK)
    return;
  
  m_ctlHelp.SetWindowText (dlg.m_strEditText);
	
}