diff options
Diffstat (limited to 'src/resourcemgr.h')
-rw-r--r-- | src/resourcemgr.h | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/resourcemgr.h b/src/resourcemgr.h new file mode 100644 index 0000000..6347e70 --- /dev/null +++ b/src/resourcemgr.h @@ -0,0 +1,63 @@ +/****************************************************************************** + * + * Copyright (C) 1997-2014 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ +#ifndef RESOURCEMGR_H +#define RESOURCEMGR_H + +#include <qcstring.h> + +/** @brief Compiled resource */ +struct Resource +{ + enum Type { Verbatim, Luminance, LumAlpha, CSS }; + const char *category; + const char *name; + const unsigned char *data; + int size; + Type type; +}; + +/** @brief Singleton for managing resources compiled into an executable */ +class ResourceMgr +{ + public: + /** Returns the one and only instance of this class */ + static ResourceMgr &instance(); + + /** Registers an array of resources */ + void registerResources(const Resource resources[],int numResources); + + /** Copies all resource belonging to a given category to a given target directory */ + bool copyCategory(const char *categoryName,const char *targetDir) const; + + /** Copies a registered resource to a given target directory */ + bool copyResource(const char *name,const char *targetDir) const; + + /** Copies a registered resource to a given target directory under a given target name */ + bool copyResourceAs(const char *name,const char *targetDir,const char *targetName) const; + + /** Returns a pointer to the resource object with the given name. */ + const Resource *get(const char *name) const; + + /** Gets the resource data as a C string */ + QCString getAsString(const char *name) const; + + private: + ResourceMgr(); + ~ResourceMgr(); + class Private; + Private *p; +}; + +#endif |