00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef COSXSCREENSAVER_H
00020 #define COSXSCREENSAVER_H
00021
00022 #include "IScreenSaver.h"
00023 #include <Carbon/Carbon.h>
00024
00026 class COSXScreenSaver : public IScreenSaver {
00027 public:
00028 COSXScreenSaver(void* eventTarget);
00029 virtual ~COSXScreenSaver();
00030
00031
00032 virtual void enable();
00033 virtual void disable();
00034 virtual void activate();
00035 virtual void deactivate();
00036 virtual bool isActive() const;
00037
00038 private:
00039 void processLaunched(ProcessSerialNumber psn);
00040 void processTerminated(ProcessSerialNumber psn);
00041
00042 static pascal OSStatus
00043 launchTerminationCallback(
00044 EventHandlerCallRef nextHandler,
00045 EventRef theEvent, void* userData);
00046
00047 private:
00048
00049 void* m_eventTarget;
00050
00051 bool m_enabled;
00052 void* m_screenSaverController;
00053 void* m_autoReleasePool;
00054 EventHandlerRef m_launchTerminationEventHandlerRef;
00055 ProcessSerialNumber m_screenSaverPSN;
00056 };
00057
00058 #endif