|
//------------------------------------------------------------------------------
// $Workfile: EventMgr.h $
// $Header: /SbjDev/SbjCore/EventMgr.h 4 10/20/08 11:06a Steve $
//
// Copyright � 2008 SbjCat
// All rights reserved.
//
//
// *** Authors ***
// Steve Johnson
//
// $Revision: 4 $
//
//-----------------------------------------------------------------------------
#pragma once
#define DECLARE_EVENT_ID(name, guid) DECLARE_USER_MESSAGE(name, guid)
namespace SbjCore
{
namespace EventMgr
{
class Event;
class EventHandler;
typedef UINT EventID;
///////////////////////////////////////////////////////////
AFX_EXT_API void Fire(EventID nEventID);
AFX_EXT_API void Fire(EventID nEventID);
///////////////////////////////////////////////////////////
struct EventImpl;
class AFX_EXT_CLASS Event
{
public:
Event();
Event(EventID nEventID, bool bAutoFire = true);
virtual ~Event();
public:
void Init(EventID nEventID, bool bAutoFire = true);
void NotifyHandlers();
private:
struct EventImpl* const m_pImpl;
};
/////////////////////////////////////////////////////////////
struct EventHandlerImpl;
class AFX_EXT_CLASS EventHandler
{
public:
EventHandler(EventID nEventID);
virtual ~EventHandler();
public:
void SetBlock(bool bBlock);
bool IsBlocked() const;
void Handle(Event* pEvent);
private:
virtual void OnHandle(Event* pEvent) = 0;
private:
struct EventHandlerImpl* const m_pImpl;
};
/////////////////////////////////////////////////////////////
typedef CUserException AbortException;
}
}
//*** Modification History ***
// $Log: /SbjDev/SbjCore/EventMgr.h $
//
// 4 10/20/08 11:06a Steve
// Removed source parameter from Event and replaced with EventT data
//
// 3 10/14/08 1:12p Steve
// Implemented Deletes
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Real name is Steve Johnson. Programming since 1979. Started on a Heathkit Micro with a DEC LSI-11 and UCSD Pascal. Moved to PCs & DOS as soon as Turbo Pascal became available. Did some Assembly, ISR, TSR etc. All this while working for a Manufacturing Co. for 8 years. Had my own solo Co. doing barcode labeling software for 4 years (terrible business man, all I wanted to do was code). Since then working for various software companies. Moved to Windows around the time of 3.1 with Borland C then C++. Then on to VC++ and MFC, and just about anything I could get my hands on or had to learn for my job, and been at it ever since. Of course recently I've been playing with .NET, ASP, C#, WPF etc.