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