summaryrefslogtreecommitdiff
path: root/noncore/graphics/opie-eye/slave/slaveiface.h
Unidiff
Diffstat (limited to 'noncore/graphics/opie-eye/slave/slaveiface.h') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/graphics/opie-eye/slave/slaveiface.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/noncore/graphics/opie-eye/slave/slaveiface.h b/noncore/graphics/opie-eye/slave/slaveiface.h
new file mode 100644
index 0000000..18656c5
--- a/dev/null
+++ b/noncore/graphics/opie-eye/slave/slaveiface.h
@@ -0,0 +1,53 @@
1/*
2 * GPLv2
3 */
4
5#ifndef P_SLAVE_INTER_FACE_H
6#define P_SLAVE_INTER_FACE_H
7
8#include <qfileinfo.h>
9#include <qstringlist.h>
10#include <qmap.h>
11
12/**
13 * @short The slave worker Interface for generating Preview + Image Info + Full
14 * IMage Info
15 */
16class QPixmap;
17class SlaveInterface {
18public:
19 SlaveInterface(const QStringList& imageformats);
20 virtual ~SlaveInterface();
21
22 QStringList imageFormats()const;
23 bool supports( const QString& )const;
24 virtual QString iconViewName(const QString&) = 0;
25 virtual QString fullImageInfo(const QString& )= 0;
26 virtual QPixmap pixmap( const QString&, int width, int height ) = 0;
27private:
28 QStringList m_list;
29};
30
31inline bool SlaveInterface::supports( const QString& str)const {
32 return m_list.contains( QFileInfo( str ).extension(false) );
33}
34
35typedef SlaveInterface* (*phunkSlaveCreateFunc )();
36typedef QMap<QString,phunkSlaveCreateFunc> SlaveMap;
37
38typedef QMap<QString, SlaveInterface*> SlaveObjects;
39
40SlaveMap* slaveMap();
41SlaveObjects* slaveObjects();
42
43
44
45#define PHUNK_VIEW_INTERFACE( NAME, IMPL ) \
46 static SlaveInterface *create_ ## IMPL() { \
47 return new IMPL(); \
48 } \
49 static SlaveMap::Iterator dummy_ ## IMPL = slaveMap()->insert( NAME, create_ ## IMPL );
50
51
52
53#endif