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

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

#include "AreaEditorDoc.h"

#include "ObjectExtraDescriptionView.h"

void CExtraDescription::ChangeRHview (CAreaEditorView * pLHview, CView * pwhichView)
  {
  CObjectExtraDescriptionView * pView = (CObjectExtraDescriptionView *) pwhichView;

	ASSERT(pView->IsKindOf(RUNTIME_CLASS(CObjectExtraDescriptionView)));

  pView->m_extradescription = this;

  }

CString CExtraDescription::Summary (void)
  {
  return CFormat ("Desc: %s", (LPCTSTR) keyword);
  }


// do a search for this item
BOOL CExtraDescription::Search (const CString strWanted, 
                       const int iFindType,
                       const BOOL bMatchCase)
    {
CString strFound;
    
    // we only care about detailed searches here
    if (iFindType != eFindDetail)
      return CMUDitem::Search (strWanted, iFindType, bMatchCase);
  
    SEARCH (keyword);
    SEARCH (description);
    SEARCH (Summary ());

    return FALSE;

    } // end of CExtraDescription::Search


#define DUPLICATE(arg) arg = RHside->arg

// copy function for duplicating descriptions
void CExtraDescription::Copy (const CExtraDescription * const RHside)
  {
  DUPLICATE (keyword);
  DUPLICATE (description);
  }

// clone this description
void CExtraDescription::Duplicate (CAreaEditorView * pView)
  {

  HTREEITEM hdlItem = m_pTreeCtrl->GetParentItem (m_hdlTreeItem);

  if (!hdlItem)
    return;

  // find associated MUD item, if any
  CMUDitem * pItem = (CMUDitem *) m_pTreeCtrl->GetItemData (hdlItem);
  
  if (!pItem)
    return; 

  CExtraDescription * newdescription = pItem->AddDescription (pView);

  if (newdescription)
    {
    newdescription->Copy (this);    // copy existing description over
    newdescription->m_pTreeCtrl->SetItemText (newdescription->m_hdlTreeItem, 
                                              newdescription->Summary ());
    newdescription->GoTo ();
    }

  } // end of CExtraDescription::Duplicate