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