Screen Saver Table of Contents | Screen Saver Index |
Here>s sample code that implements a screen saver that blanks the screen. This is pretty boring, so you>ll probably want to change the Draw() function to do something cute.
/* 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 ); } }
Screen Saver Table of Contents | Screen Saver Index |
Copyright © 2000 Be, Inc. All rights reserved..