////////////////////////////////////////////////////////////////////////////////
//
// SpcDocumentEvent  -     
//
////////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "eventsAuto.h"

#ifndef _SPCDOCUMENTEVENT_H
#include "SpcDocumentEvent.h"
#endif

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

////////////////////////////////////////////////////////////////////////////////
//
// SpcDocumentEvent  -     
//
////////////////////////////////////////////////////////////////////////////////

//-------------------------------------------------------------------------------
//
// ---
SpcDocumentEvent::SpcDocumentEvent( LPUNKNOWN pObject, LPDISPATCH doc, bool selfAdvise /*true*/ )
: BaseEvent( pObject, DIID_ksSpcDocumentNotify, doc, -1, NULL, selfAdvise )
{
}


//-------------------------------------------------------------------------------
//
// ---
SpcDocumentEvent::~SpcDocumentEvent()
{
}


//-------------------------------------------------------------------------------
//
// ---
BEGIN_EVENTSINK_MAP(SpcDocumentEvent, BaseEvent)
	ON_EVENT (SpcDocumentEvent, (unsigned int)-1, sdDocumentBeginAdd,    DocumentBeginAdd,    VTS_NONE)
	ON_EVENT (SpcDocumentEvent, (unsigned int)-1, sdDocumentAdd,         DocumentAdd,         VTS_BSTR)
	ON_EVENT (SpcDocumentEvent, (unsigned int)-1, sdDocumentBeginRemove, DocumentBeginRemove, VTS_BSTR)
	ON_EVENT (SpcDocumentEvent, (unsigned int)-1, sdDocumentRemove,      DocumentRemove,      VTS_BSTR)
	ON_EVENT (SpcDocumentEvent, (unsigned int)-1, sdSpcStyleBeginChange, SpcStyleBeginChange, VTS_BSTR VTS_I4)
	ON_EVENT (SpcDocumentEvent, (unsigned int)-1, sdSpcStyleChange,      SpcStyleChange,      VTS_BSTR VTS_I4)
END_EVENTSINK_MAP()


//-------------------------------------------------------------------------------
// sdDocumentBeginAdd -     
// ---
afx_msg VARIANT_BOOL SpcDocumentEvent::DocumentBeginAdd()
{
  if ( IsSelfAdvise() && theApp.m_mes_SPCDOC )
  {
    CString str( m_libName + " --> SpcDocumentEvent::DocumentBeginAdd" );
    str += "\n  = " + GetDocName();
    return !!kompas->ksYesNo( str.GetBuffer(0) );
  }
  return true;
}


//-------------------------------------------------------------------------------
// sdDocumentAdd -    
// ---
afx_msg VARIANT_BOOL SpcDocumentEvent::DocumentAdd( LPCTSTR docName )
{
  if ( IsSelfAdvise() && theApp.m_mes_SPCDOC )
  {
    CString str( m_libName + " --> SpcDocumentEvent::DocumentAdd\ndocName = " + docName );
    str += "\n  = " + GetDocName();
    kompas->ksMessage( str.GetBuffer(0) );
  }
  return true;
}
      

//-------------------------------------------------------------------------------
// sdDocumentBeginRemove -     
// ---
afx_msg VARIANT_BOOL SpcDocumentEvent::DocumentBeginRemove( LPCTSTR docName)
{
  if ( IsSelfAdvise() && theApp.m_mes_SPCDOC )
  {
    CString str( m_libName + " --> SpcDocumentEvent::DocumentBeginRemove\ndocName =" + docName );
    str += "\n  = " + GetDocName();
    return !!kompas->ksYesNo( str.GetBuffer(0) );
  }
  return true;
}


//-------------------------------------------------------------------------------
// sdDocumentRemove -    
// ---
afx_msg VARIANT_BOOL SpcDocumentEvent::DocumentRemove( LPCTSTR docName )
{
  if ( IsSelfAdvise() && theApp.m_mes_SPCDOC )
  {
    CString str( m_libName + " --> SpcDocumentEvent::DocumentRemove\ndocName =" + docName );
    str += "\n  = " + GetDocName();
    kompas->ksMessage( str.GetBuffer(0) );
  }
  return true;
}


//-------------------------------------------------------------------------------
// sdSpcStyleBeginChange -    
// ---
afx_msg VARIANT_BOOL SpcDocumentEvent::SpcStyleBeginChange( LPCTSTR libName, long numb )
{
  if ( IsSelfAdvise() && theApp.m_mes_SPCDOC )
  {
    CString str;
    str.Format( "%s --> SpcDocumentEvent::SpcStyleBeginChange\nlibName = %s\nnumb = %i", m_libName, libName, numb );
    str += "\n  = " + GetDocName();
    return !!kompas->ksYesNo( str.GetBuffer(0) ); 
  }
  return true;
}


//-------------------------------------------------------------------------------
// sdSpcStyleChange -   
// ---
afx_msg VARIANT_BOOL SpcDocumentEvent::SpcStyleChange( LPCTSTR libName, long numb )
{
  if ( IsSelfAdvise() && theApp.m_mes_SPCDOC )
  {
    CString str;
    str.Format( "%s --> SpcDocumentEvent::SpcStyleChange\nlibName = %s\nnumb = %i", m_libName, libName, numb );
    str += "\n  = " + GetDocName();
    kompas->ksMessage( str.GetBuffer(0) );
  }
  return true;
}


