1
/* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
3
* Copyright (C) 1997 Josef Wilgen
4
* Copyright (C) 2002 Uwe Rathmann
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the Qwt License, Version 1.0
8
*****************************************************************************/
10
#ifndef QWT_DESIGNER_PLUGIN_H
11
#define QWT_DESIGNER_PLUGIN_H
15
#if QT_VERSION < 0x040000
18
#error This code is Qt4 only
23
#include <QDesignerCustomWidgetInterface>
24
#include <QDesignerTaskMenuExtension>
25
#include <QExtensionFactory>
27
namespace QwtDesignerPlugin
30
class CustomWidgetInterface: public QObject,
31
public QDesignerCustomWidgetInterface
34
Q_INTERFACES(QDesignerCustomWidgetInterface)
37
CustomWidgetInterface(QObject *parent);
39
virtual bool isContainer() const;
40
virtual bool isInitialized() const;
41
virtual QIcon icon() const;
42
virtual QString codeTemplate() const;
43
virtual QString domXml() const;
44
virtual QString group() const;
45
virtual QString includeFile() const;
46
virtual QString name() const;
47
virtual QString toolTip() const;
48
virtual QString whatsThis() const;
49
virtual void initialize(QDesignerFormEditorInterface *);
57
QString d_codeTemplate;
64
class CustomWidgetCollectionInterface: public QObject,
65
public QDesignerCustomWidgetCollectionInterface
68
Q_INTERFACES(QDesignerCustomWidgetCollectionInterface)
71
CustomWidgetCollectionInterface(QObject *parent = NULL);
73
virtual QList<QDesignerCustomWidgetInterface*> customWidgets() const;
76
QList<QDesignerCustomWidgetInterface*> d_plugins;
80
class PlotInterface: public CustomWidgetInterface
83
Q_INTERFACES(QDesignerCustomWidgetInterface)
86
PlotInterface(QObject *parent);
87
virtual QWidget *createWidget(QWidget *parent);
91
#ifndef NO_QWT_WIDGETS
92
class AnalogClockInterface: public CustomWidgetInterface
95
Q_INTERFACES(QDesignerCustomWidgetInterface)
98
AnalogClockInterface(QObject *parent);
99
virtual QWidget *createWidget(QWidget *parent);
103
#ifndef NO_QWT_WIDGETS
104
class CompassInterface: public CustomWidgetInterface
107
Q_INTERFACES(QDesignerCustomWidgetInterface)
110
CompassInterface(QObject *parent);
111
virtual QWidget *createWidget(QWidget *parent);
115
#ifndef NO_QWT_WIDGETS
116
class CounterInterface: public CustomWidgetInterface
119
Q_INTERFACES(QDesignerCustomWidgetInterface)
122
CounterInterface(QObject *parent);
123
virtual QWidget *createWidget(QWidget *parent);
127
#ifndef NO_QWT_WIDGETS
128
class DialInterface: public CustomWidgetInterface
131
Q_INTERFACES(QDesignerCustomWidgetInterface)
134
DialInterface(QObject *parent);
135
virtual QWidget *createWidget(QWidget *parent);
139
#ifndef NO_QWT_WIDGETS
140
class KnobInterface: public CustomWidgetInterface
143
Q_INTERFACES(QDesignerCustomWidgetInterface)
146
KnobInterface(QObject *parent);
147
virtual QWidget *createWidget(QWidget *parent);
152
class ScaleWidgetInterface: public CustomWidgetInterface
155
Q_INTERFACES(QDesignerCustomWidgetInterface)
158
ScaleWidgetInterface(QObject *parent);
159
virtual QWidget *createWidget(QWidget *parent);
163
#ifndef NO_QWT_WIDGETS
164
class SliderInterface: public CustomWidgetInterface
167
Q_INTERFACES(QDesignerCustomWidgetInterface)
170
SliderInterface(QObject *parent);
171
virtual QWidget *createWidget(QWidget *parent);
175
class TextLabelInterface: public CustomWidgetInterface
178
Q_INTERFACES(QDesignerCustomWidgetInterface)
181
TextLabelInterface(QObject *parent);
182
virtual QWidget *createWidget(QWidget *parent);
185
#ifndef NO_QWT_WIDGETS
186
class ThermoInterface: public CustomWidgetInterface
189
Q_INTERFACES(QDesignerCustomWidgetInterface)
192
ThermoInterface(QObject *parent);
193
virtual QWidget *createWidget(QWidget *parent);
197
#ifndef NO_QWT_WIDGETS
198
class WheelInterface: public CustomWidgetInterface
201
Q_INTERFACES(QDesignerCustomWidgetInterface)
204
WheelInterface(QObject *parent);
205
virtual QWidget *createWidget(QWidget *parent);
209
class TaskMenuFactory: public QExtensionFactory
214
TaskMenuFactory(QExtensionManager *parent = 0);
217
QObject *createExtension(QObject *object,
218
const QString &iid, QObject *parent) const;
221
class TaskMenuExtension: public QObject,
222
public QDesignerTaskMenuExtension
225
Q_INTERFACES(QDesignerTaskMenuExtension)
228
TaskMenuExtension(QWidget *widget, QObject *parent);
230
QAction *preferredEditAction() const;
231
QList<QAction *> taskActions() const;
234
void editProperties();
235
void applyProperties(const QString &);
238
QAction *d_editAction;