00001 /* 00002 ***************************************************************** 00003 ***************************************************************** 00004 ******* ******** 00005 ******* (C) Copyright 1989-2007 by Tecplot Inc. ******** 00006 ******* All Rights Reserved. ******** 00007 ******* ******** 00008 ***************************************************************** 00009 ***************************************************************** 00010 */ 00011 #ifndef TECPLOT_TOOLBOX_STATECHANGENOTIFIERINTERFACE_H 00012 #define TECPLOT_TOOLBOX_STATECHANGENOTIFIERINTERFACE_H 00013 00014 #if defined MSWIN 00015 #pragma once 00016 #endif 00017 00018 #include "tptoolbox.h" 00019 #include "ToolboxFwd.h" 00020 00021 namespace tecplot 00022 { 00023 namespace toolbox 00024 { 00025 00026 class TPTOOLBOX_DLLAPI StateChangeNotifierInterface 00027 { 00028 public: 00043 virtual void addListener(StateChangeListenerInterface* listener) = 0; 00044 00056 virtual void removeListener(StateChangeListenerInterface* listener) = 0; 00057 00069 virtual bool isListening(StateChangeListenerInterface* listener) = 0; 00070 00084 virtual bool setMode(StateChangeMode_e mode) = 0; 00085 00091 virtual StateChangeMode_e mode() = 0; 00092 00093 virtual ~StateChangeNotifierInterface() {} 00094 private: 00100 virtual void lockStart() = 0; 00101 virtual void lockFinish() = 0; 00102 00103 }; 00104 00105 } 00106 } 00107 00108 #endif