/* 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 );
}
}
|
|