1 /* 2 * Copyright 2012, Haiku, Inc. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Aaron Hill <serac@hillvisions.com> 7 */ 8 #ifndef _GLIFE_GLIFESAVER_H 9 #define _GLIFE_GLIFESAVER_H 10 11 12 #include <OS.h> 13 #include <ScreenSaver.h> 14 #include <View.h> 15 16 #include "GLifeGrid.h" 17 #include "GLifeState.h" 18 #include "GLifeView.h" 19 20 21 // Constants 22 const int32 c_iTickSize = 50000; 23 24 25 // GLifeSaver Class Declaration 26 class GLifeSaver : public BScreenSaver 27 { 28 public: 29 // Constructor 30 GLifeSaver(BMessage*, image_id); 31 32 // State/Preferences Methods 33 status_t SaveState(BMessage*) const; 34 void RestoreState(BMessage*); 35 void StartConfig(BView*); 36 37 // Start/Stop Methods 38 status_t StartSaver(BView*, bool); 39 void StopSaver(void); 40 41 // Graphics Methods 42 void DirectConnected(direct_buffer_info*); 43 void Draw(BView*, int32); 44 45 private: 46 GLifeState fGLifeState; 47 GLifeView* fGLifeViewport; 48 }; 49 50 51 #endif /* _GLIFE_GLIFESAVER_H */ 52