1// IFSSaver.h 2 3#ifndef IFS_SAVER_H 4#define IFS_SAVER_H 5 6#include <Locker.h> 7// on PPC the full path is needed 8#include <add-ons/screen_saver/ScreenSaver.h> 9#include <View.h> 10 11#include "IFS.h" 12 13class BCheckBox; 14class BSlider; 15 16class IFSSaver : public BScreenSaver, public BHandler { 17 public: 18 IFSSaver(BMessage *message, 19 image_id image); 20 virtual ~IFSSaver(); 21 22 // BScreenSaver 23 virtual void StartConfig(BView *view); 24 virtual status_t StartSaver(BView *view, bool preview); 25 virtual void StopSaver(); 26 27 virtual void DirectConnected(direct_buffer_info* info); 28 virtual void Draw(BView* view, int32 frame); 29 virtual void DirectDraw(int32 frame); 30 31 virtual status_t SaveState(BMessage* into) const; 32 33 // BHandler 34 virtual void MessageReceived(BMessage* message); 35 36 private: 37 void _Init(BRect bounds); 38 void _Cleanup(); 39 40 IFS* fIFS; 41 42 bool fIsPreview; 43 BRect fBounds; 44 45 BLocker fLocker; 46 47 BCheckBox* fAdditiveCB; 48 BSlider* fSpeedS; 49 50 buffer_info fDirectInfo; 51 int32 fLastDrawnFrame; 52 53 // config settings 54 bool fAdditive; 55 int32 fSpeed; 56}; 57 58 59#endif // IFS_SAVER_H 60