| | /* Minimal screen saver example. */ 
 #include <add-ons/screen_saver/ScreenSaver.h>
 #include <interface/StringView.h>
 #include <BeBuild.h>
 
 extern "C" {
 _EXPORT
 BScreenSaver *instantiate_screen_saver( BMessage *msg, image_id id );
 }
 
 class MinimalSaver : public BScreenSaver
 {
 public:
 MinimalSaver( BMessage *archive, image_id image );
 virtual ~MinimalSaver( void );
 
 virtual void StartConfig( BView *view );
 virtual status_t StartSaver( BView *view, bool preview );
 virtual void Draw( BView *view, int32 frame );
 };
 
 BScreenSaver *instantiate_screen_saver( BMessage *msg, image_id id )
 {
 return new MinimalSaver( msg, id );
 }
 
 MinimalSaver::MinimalSaver( BMessage *archive, image_id image )
 : BScreenSaver( archive, image )
 {
 /* Nothing else to do here... */
 }
 
 MinimalSaver::~MinimalSaver( void )
 {
 /* Nothing else to do here... */
 }
 
 void MinimalSaver::StartConfig( BView *view )
 {
 view->AddChild( new BStringView( BRect( 10, 10, 200, 35 ),
 B_EMPTY_STRING,
 "Minimal Saver" ) );
 }
 
 status_t MinimalSaver::StartSaver( BView *view, bool preview )
 {
 /* We're so minimal, we don't have a preview. */
 if( preview ) return B_ERROR;
 
 return B_OK;
 }
 
 void MinimalSaver::Draw( BView *view, int32 frame )
 {
 if( frame == 0 ) {
 /* Fill the screen with black on the first frame: */
 view->SetLowColor( 0, 0, 0 );
 view->FillRect( view->Bounds(), B_SOLID_LOW );
 }
 }
 
 | 
 |