e5fcad3 by Lars Knoll at 2009-03-23 1
/****************************************************************************
2
**
fbc2c44 by Jason McDonald at 2011-01-10 3
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
04e3b30 by Jason McDonald at 2009-09-09 4
** All rights reserved.
858c70f by Jason McDonald at 2009-06-16 5
** Contact: Nokia Corporation (qt-info@nokia.com)
e5fcad3 by Lars Knoll at 2009-03-23 6
**
7
** This file is part of the QtGui module of the Qt Toolkit.
8
**
9
** $QT_BEGIN_LICENSE:LGPL$
10
** No Commercial Usage
11
** This file contains pre-release code and may not be distributed.
12
** You may use this file in accordance with the terms and conditions
309db73 by Jason McDonald at 2009-08-31 13
** contained in the Technology Preview License Agreement accompanying
14
** this package.
e5fcad3 by Lars Knoll at 2009-03-23 15
**
16
** GNU Lesser General Public License Usage
17
** Alternatively, this file may be used under the terms of the GNU Lesser
18
** General Public License version 2.1 as published by the Free Software
19
** Foundation and appearing in the file LICENSE.LGPL included in the
20
** packaging of this file.  Please review the following information to
21
** ensure the GNU Lesser General Public License version 2.1 requirements
22
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23
**
04e3b30 by Jason McDonald at 2009-09-09 24
** In addition, as a special exception, Nokia gives you certain additional
25
** rights.  These rights are described in the Nokia Qt LGPL Exception
26
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
e5fcad3 by Lars Knoll at 2009-03-23 27
**
309db73 by Jason McDonald at 2009-08-31 28
** If you have questions regarding the use of this file, please contact
29
** Nokia at qt-info@nokia.com.
30
**
31
**
32
**
33
**
34
**
35
**
36
**
e5fcad3 by Lars Knoll at 2009-03-23 37
**
38
** $QT_END_LICENSE$
39
**
40
****************************************************************************/
41
42
#include "qiconengineplugin.h"
43
#include "qiconengine.h"
44
45
QT_BEGIN_NAMESPACE
46
47
/*!
48
    \class QIconEnginePlugin
49
    \brief The QIconEnginePlugin class provides an abstract base for custom QIconEngine plugins.
50
51
    \ingroup plugins
52
53
    \bold {Use QIconEnginePluginV2 instead.}
54
55
    The icon engine plugin is a simple plugin interface that makes it easy to
56
    create custom icon engines that can be loaded dynamically into applications
57
    through QIcon. QIcon uses the file or resource name's suffix to determine
58
    what icon engine to use.
59
60
    Writing a icon engine plugin is achieved by subclassing this base class,
61
    reimplementing the pure virtual functions keys() and create(), and
62
    exporting the class with the Q_EXPORT_PLUGIN2() macro.
63
64
    \sa {How to Create Qt Plugins}
65
*/
66
67
/*!
68
    \fn QStringList QIconEnginePlugin::keys() const
69
70
    Returns a list of icon engine keys that this plugin supports. The keys correspond
71
    to the suffix of the file or resource name used when the plugin was created.
72
    Keys are case insensitive.
73
74
    \sa create()
75
*/
76
77
/*!
78
    \fn QIconEngine* QIconEnginePlugin::create(const QString& filename)
79
80
    Creates and returns a QIconEngine object for the icon with the given
81
    \a filename.
82
83
    \sa keys()
84
*/
85
86
/*!
87
    Constructs a icon engine plugin with the given \a parent. This is invoked
88
    automatically by the Q_EXPORT_PLUGIN2() macro.
89
*/
90
QIconEnginePlugin::QIconEnginePlugin(QObject *parent)
91
    : QObject(parent)
92
{
93
}
94
95
/*!
96
    Destroys the icon engine plugin.
97
98
    You never have to call this explicitly. Qt destroys a plugin
99
    automatically when it is no longer used.
100
*/
101
QIconEnginePlugin::~QIconEnginePlugin()
102
{
103
}
104
105
// version 2
106
107
/*!
108
    \class QIconEnginePluginV2
109
    \brief The QIconEnginePluginV2 class provides an abstract base for custom QIconEngineV2 plugins.
110
111
    \ingroup plugins
112
    \since 4.3
113
 
114
    Icon engine plugins produces \l{QIconEngine}s for \l{QIcon}s; an
115
    icon engine is used to render the icon. The keys that identifies
116
    the engines the plugin can create are suffixes of 
117
    icon filenames; they are returned by keys(). The create() function
118
    receives the icon filename to return an engine for; it should
119
    return 0 if it cannot produce an engine for the file.
120
121
    Writing an icon engine plugin is achieved by inheriting
122
    QIconEnginePluginV2, reimplementing keys() and create(), and
123
    adding the Q_EXPORT_PLUGIN2() macro.
124
125
    You should ensure that you do not duplicate keys. Qt will query
126
    the plugins for icon engines in the order in which the plugins are
127
    found during plugin search (see the plugins \l{How to Create Qt
128
    Plugins}{overview document}).
129
130
    \sa {How to Create Qt Plugins}
131
*/
132
133
/*!
134
    \fn QStringList QIconEnginePluginV2::keys() const
135
136
    Returns a list of icon engine keys that this plugin supports. The keys correspond
137
    to the suffix of the file or resource name used when the plugin was created.
138
    Keys are case insensitive.
139
140
    \sa create()
141
*/
142
143
/*!
144
    \fn QIconEngineV2* QIconEnginePluginV2::create(const QString& filename = QString())
145
146
    Creates and returns a QIconEngine object for the icon with the given
147
    \a filename.
148
149
    \sa keys()
150
*/
151
152
/*!
153
    Constructs a icon engine plugin with the given \a parent. This is invoked
154
    automatically by the Q_EXPORT_PLUGIN2() macro.
155
*/
156
QIconEnginePluginV2::QIconEnginePluginV2(QObject *parent)
157
    : QObject(parent)
158
{
159
}
160
161
/*!
162
    Destroys the icon engine plugin.
163
164
    You never have to call this explicitly. Qt destroys a plugin
165
    automatically when it is no longer used.
166
*/
167
QIconEnginePluginV2::~QIconEnginePluginV2()
168
{
169
}
170
171
QT_END_NAMESPACE