//---------------------------------------------------------------------------- // $Id: Sim/OrnamentMgr.hpp 2013/10/26 23:10:54 philw $ // Workspace Text/Image Ornament Manager -- created for RiverWare 6.5 [10-2013] // // class OrnamentMgr : Root // class OrnamentMgr::ImageData //---------------------------------------------------------------------------- #pragma once #ifndef OrnamentMgrINCLUDED #define OrnamentMgrINCLUDED #include "UserImageData.hpp" #include "Ornament.hpp" #include "Root.hpp" #include "cwReturnStatus.hpp" #include #include #include #include // OrnamentMgr is a Root so that it can generate callbacks. // class OrnamentMgr : Root { private: static OrnamentMgr* _instance; static void chkInstance(); OrnamentMgr(); QList _ornamentList; QMap _userImageMap; public: static OrnamentMgr* instance() { chkInstance(); return (_instance); } static bool instanceExists() { return (_instance != NULL); } virtual ~OrnamentMgr(); public: void addOrnament (Ornament*); void removeOrnament (Ornament*, bool deleteToo=false); const QList& ornamentListRef() const { return _ornamentList; } bool containsOrnament (const Ornament*) const; void clearOrnaments(); int addUserImage (UserImageData); // returns new imageId void removeUserImage (int imageId); UserImageData userImageData (int imageId) const; UserImageData userImageData (const Ornament*) const; QList userImageIds() const; void clearUserImages(); void clearUnusedUserImages(); public: // called from Ornament::sendCallback (CallbackType); void handleAndForwardCallback (CallbackType, Ornament*); }; #endif //--- (end OrnamentMgr.hpp) ---