Screen Saver Table of Contents | Screen Saver Index |
Declared in: be/add-ons/screen_saver/ScreenSaver.h
Library: ScreenSaver
A screen saver add-on embodies a single screen saver module. Each module is represented by a BScreenSaver object. To create this object, the add-on implements and exports the function instantiate_screen_saver(). The screen saver system calls the instantiate_screen_saver() function when it's time to create and run the add-on's screen saver module.
When you build your add-on, you need to link against the ScreenSaver preferences application. To do this you...
You install your screen saver add-ons in the Screen Savers directory in B_USER_ADDONS_DIRECTORY; you may need to create the Screen Savers directory first. (See find_directory() in the Storage Kit if you're not familiar with the B_USER_ADDONS_DIRECTORY constant.)
There's also a Screen Savers directory in B_BEOS_ADDONS_DIRECTORY. This is reserved for screen savers that come with BeOS. Don't put your screen savers in this directory.
|
instantiate_screen_saver() must be implemented to create an instance of your BScreenSaver-derived class and return it as a BScreenSaver pointer. msg contains the state provided by a previous saver run (via the SaveState() function). image is the image_id of the add-on. You usually just pass these arguments straight into your BScreenSaver subclass' constructor, like this:
#include <add-ons/screen_saver/ScreenSaver.h> class SpiffySaver : public BScreenSaver { public: SpiffySaver( BMessage *msg, image_id image ); ... }; BScreenSaver *instantiate_screen_saver(BMessage *msg, image_id image) { return new SpiffySaver(msg, id); }
The screen saver system handles bad object allocations for you. This means you don't have to catch bad_alloc exceptions in your own code. (If the system is that low on resources, the user has other things to worry about.)
Screen Saver Table of Contents | Screen Saver Index |
Copyright © 2000 Be, Inc. All rights reserved..