summaryrefslogtreecommitdiffstats
path: root/src/resourcemgr.h
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-08-07 18:58:49 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-11-13 20:21:39 (GMT)
commit0fea3d4ca57187f271d7580ff16f32b7ab4657df (patch)
tree867c49d9450eeb9ec85d1ec36a4dd71caa91d007 /src/resourcemgr.h
parent475b0c51847271b04cb0e58254bd7e420445250b (diff)
downloadDoxygen-0fea3d4ca57187f271d7580ff16f32b7ab4657df.zip
Doxygen-0fea3d4ca57187f271d7580ff16f32b7ab4657df.tar.gz
Doxygen-0fea3d4ca57187f271d7580ff16f32b7ab4657df.tar.bz2
Introduced template directory for template and resource files and resource compiler & manager
Diffstat (limited to 'src/resourcemgr.h')
-rw-r--r--src/resourcemgr.h63
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