From e47241a79bce51379d37c728d9d4674ee9086f7e Mon Sep 17 00:00:00 2001 From: chatty Date: Tue, 28 Nov 2000 14:52:15 +0000 Subject: Removed pragma interfaces Added Johnny's criteria --- dnn/Trigger.h | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'dnn') diff --git a/dnn/Trigger.h b/dnn/Trigger.h index 186b62f..744eb3b 100644 --- a/dnn/Trigger.h +++ b/dnn/Trigger.h @@ -3,7 +3,7 @@ * * by Stephane Chatty * - * Copyright 1993-1994 + * Copyright 1993-1995 * Centre d'Etudes de la Navigation Aerienne (CENA) * * Event triggers. @@ -15,28 +15,30 @@ #ifndef DnnTrigger_H_ #define DnnTrigger_H_ -#ifdef __GNUG__ -#pragma interface -#endif - #include "cplus_bugs.h" #include "ccu/List.h" +#include "ccu/bool.h" -class DnnReaction; -class DnnWindow; class DnnEvent; +class DnnBaseCriterion; class DnnTrigger { friend class DnnBaseReaction; +public: +enum REL_PRIORITY { isFirstPriority, isNormalPriority, isLastPriority }; + private: DnnTrigger (const DnnTrigger&); DnnTrigger& operator = (const DnnTrigger&); protected: + CcuListOf FirstSubscribers; CcuListOf Subscribers; + CcuListOf LastSubscribers; CcuListOf Grabs; - void Subscribe (DnnBaseReaction&); + CcuListOf Criteria; + void Subscribe (DnnBaseReaction&, REL_PRIORITY); void Unsubscribe (DnnBaseReaction&); void Grab (DnnBaseReaction&); void Release (DnnBaseReaction&); @@ -44,8 +46,11 @@ protected: public: DnnTrigger (); ~DnnTrigger (); -inline const CcuListOf & GetSubscribers () const { return Subscribers; } +inline bool IsUnused () const { return bool (Subscribers.IsEmpty () && FirstSubscribers.IsEmpty () && LastSubscribers.IsEmpty ()); } void Dispatch (DnnEvent&); + bool Check (DnnEvent&); +inline void AddCriterion (DnnBaseCriterion& c) { Criteria.Append (&c); } +inline void RemoveCriterion (DnnBaseCriterion& c) { Criteria.Remove (&c); } }; #endif /* DnnTrigger_H_ */ -- cgit v1.1