Be Book Wygaszacz Ekranu Indeks Wygaszacza Ekranu

Przykład wygaszacza ekranu

Przedstawiono tutaj przykładowy kod implementujący wygaszacz ekranu, który wygasza ekranu. Jest on dość nudny, więc najprawdopodobniej będziesz chciał zmienić funkcję Draw() by robiła coś fajnego.

/* Przykład najprostszego wygaszacza ekranu. */

#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 )
{
   /* Tutaj nic innego nie robi... */
}

MinimalSaver::~MinimalSaver( void )
{
   /* Tutaj nic innego nie robi... */
}

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 )
{
   /* Jest on tak uproszczony, że nie ma podglądu. */
   if( preview ) return B_ERROR;

   return B_OK;
}

void MinimalSaver::Draw( BView *view, int32 frame )
{
   if( frame == 0 ) {
      /* Wypełnij ekran czernią w pierwszej ramce: */
      view->SetLowColor( 0, 0, 0 );
      view->FillRect( view->Bounds(), B_SOLID_LOW );
   }
}


Be Book Wygaszacz Ekranu Indeks Wygaszacza Ekranu

Be Book,
...w ślicznym HTML...
dla BeOS wydanie 5

Copyright © 2000 Be, Inc. Wszelkie prawa zastrzeżone.