Table des matières Economiseurs d'écran | Index Economiseurs d'écran |
Voici un exemple de code qui implémente un économiseur d'écran qui efface l'écran. Il n'a pas un grand intérêt en soi et vous pourrez modifier la fonction Draw() pour réaliser quelque chose de plus esthétique.
/* Exemple simpliste d'économiseur d'écran. */ #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 ) { /* On ne fait rien ici... */ } MinimalSaver::~MinimalSaver( void ) { /* On ne fait rien ici... */ } 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 ) { /* Cet exemple est si simple qu'on ne prévoit pas de pré-visualisation. */ if( preview ) return B_ERROR; return B_OK; } void MinimalSaver::Draw( BView *view, int32 frame ) { if( frame == 0 ) { /* On remplit l'écran en noir : */ view->SetLowColor( 0, 0, 0 ); view->FillRect( view->Bounds(), B_SOLID_LOW ); } }
Table des matières Economiseurs d'écran | Index Economiseurs d'écran |
Copyright © 2000 Be, Inc. All rights reserved..