Plasma
appletscript.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef PLASMA_APPLETSCRIPT_H
00021 #define PLASMA_APPLETSCRIPT_H
00022
00023 #include <QtCore/QObject>
00024 #include <QtCore/QRect>
00025 #include <QtCore/QSizeF>
00026
00027 #include <kgenericfactory.h>
00028
00029 #include <plasma/plasma_export.h>
00030 #include <plasma/scripting/scriptengine.h>
00031
00032 class QAction;
00033 class QPainter;
00034 class QStyleOptionGraphicsItem;
00035 class KConfigDialog;
00036
00037 namespace Plasma
00038 {
00039
00040 class AppletScriptPrivate;
00041 class Extender;
00042
00048 class PLASMA_EXPORT AppletScript : public ScriptEngine
00049 {
00050 Q_OBJECT
00051
00052 public:
00061 explicit AppletScript(QObject *parent = 0);
00062 ~AppletScript();
00063
00067 void setApplet(Plasma::Applet *applet);
00068
00072 Plasma::Applet *applet() const;
00073
00082 virtual void paintInterface(QPainter *painter,
00083 const QStyleOptionGraphicsItem *option,
00084 const QRect &contentsRect);
00085
00089 Q_INVOKABLE QSizeF size() const;
00090
00102 virtual void constraintsEvent(Plasma::Constraints constraints);
00103
00110 virtual QList<QAction*> contextualActions();
00111
00115 virtual QPainterPath shape() const;
00116
00122 void setHasConfigurationInterface(bool hasInterface);
00123
00127 void setConfigurationRequired(bool req, const QString &reason = QString());
00128
00132 void setFailedToLaunch(bool failed, const QString &reason = QString());
00133
00137 void configNeedsSaving() const;
00138
00142 Extender *extender() const;
00143
00144 public Q_SLOTS:
00145
00149 virtual void showConfigurationInterface();
00150
00154 virtual void configChanged();
00155
00156 protected:
00161 Q_INVOKABLE DataEngine *dataEngine(const QString &engine) const;
00162
00166 QString mainScript() const;
00167
00173 const Package *package() const;
00174
00181 KConfigDialog *standardConfigurationDialog();
00182
00189 void addStandardConfigurationPages(KConfigDialog *dialog);
00190
00191 private:
00192 AppletScriptPrivate *const d;
00193 };
00194
00195 #define K_EXPORT_PLASMA_APPLETSCRIPTENGINE(libname, classname) \
00196 K_PLUGIN_FACTORY(factory, registerPlugin<classname>();) \
00197 K_EXPORT_PLUGIN(factory("plasma_appletscriptengine_" #libname))
00198
00199 }
00200
00201 #endif