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