#ifndef __ETESTDETAIL_H
#define __ETESTDETAIL_H
/////////////////////////////////////////////////////////////////////
// (C) Copyright 1993-2005 by Autodesk, Inc. 
//
// Permission to use, copy, modify, and distribute this software in
// object code form for any purpose and without fee is hereby granted, 
// provided that the above copyright notice appears in all copies and 
// that both that copyright notice and the limited warranty and
// restricted rights notice below appear in all supporting 
// documentation.
//
// AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS. 
// AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
// MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC. 
// DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
// UNINTERRUPTED OR ERROR FREE.
//
// Use, duplication, or disclosure by the U.S. Government is subject to 
// restrictions set forth in FAR 52.227-19 (Commercial Computer
// Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
// (Rights in Technical Data and Computer Software), as applicable.
//
// eTestDetail.h : header file
// CTestDetail dialog
//
/////////////////////////////////////////////////////////////////////
#include "Detailres.h"

class CTestDetail : public CDialog
{
// Construction
public:
	void RegenSymbols() const;
	CTestDetail(const AcDbObjectId& Id,CWnd* pParent = NULL);   // standard constructor
  virtual ~CTestDetail();

  virtual BOOL ReadDialogData();
  virtual BOOL SaveDialogData();

// Dialog Data
	//{{AFX_DATA(CTestDetail)
	enum { IDD = IDD_TESTDETAIL };
	CButton	m_leader;
	CButton	m_dot;
	//}}AFX_DATA


// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CTestDetail)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
  AcDbObjectId mServerId;

	// Generated message map functions
	//{{AFX_MSG(CTestDetail)
	virtual BOOL OnInitDialog();
	afx_msg void OnButtonApply();
	afx_msg void OnButtonDefault();
	virtual void OnOK();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

class AcmCTestDetailEditExt : public AcmCEditExt
{
public:
  // for AcDbEntity based classes (symbols)
  virtual bool edit(AcDbObject* rObj, INT_PTR GsMarker) const {return false;}
  // for AcDbObject based classes (standards, bom tables, ...)
  virtual bool edit(const AcDbObject* rObj, CWnd* pParentWnd = NULL) const;
  // for symbols
  virtual void addLeaderTo(AcDbObject* pObj) const {}
  virtual bool delLeaderFrom(AcDbObject* pObj, bool silent = false, INT_PTR gsMarker = -1, const AcGePoint3d& pck = (*(const AcGePoint3d*)NULL) ) const {return false;}
  // test of validity to enable add/delete leader
  // (for conditions detectable before action)
  virtual bool addLeaderEnabled(AcDbObject* pObj) const {return false;}
  virtual bool delLeaderEnabled(AcDbObject* pObj) const {return false;}
  // test of validity to enable delete leader
  // (for conditions detectable as far as during action)
  virtual bool abortRemovingLeader(AcDbObject* pObj) const {return false;}
  // this method specifies if the extension is valid and can be used for
  // editing. The default implementation for AcDbObject and AcDbEntity return false;
  virtual bool isValid() const {return true;}
  // For filter
  virtual CPlstFltrDlg* fltrPropertiesDlg(AcDbObject* pObj,CWnd* pParentWnd) const {return NULL;}
  virtual bool placeAndPost(AcDbObject* pObj,AcDbObjectId& newSymId) const {return false;}  
  virtual AcmCLeader* newLeader(AcDbObject* pSym) const {return NULL;}
};

#endif