00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef DBUSMENUEXPORTER_H
00022 #define DBUSMENUEXPORTER_H
00023
00024
00025 #include <QtCore/QObject>
00026 #include <QtDBus/QDBusConnection>
00027
00028
00029 #include <dbusmenu_export.h>
00030
00031 class QAction;
00032 class QMenu;
00033
00034 class DBusMenuExporterPrivate;
00035
00039 class DBUSMENU_EXPORT DBusMenuExporter : public QObject
00040 {
00041 Q_OBJECT
00042 public:
00048 DBusMenuExporter(const QString &dbusObjectPath, QMenu *menu, const QDBusConnection &dbusConnection = QDBusConnection::sessionBus());
00049
00050 ~DBusMenuExporter();
00051
00056 void activateAction(QAction *action);
00057
00064 void setStatus(const QString &status);
00065
00070 QString status() const;
00071
00072 protected:
00079 virtual QString iconNameForAction(QAction *action);
00080
00081 private Q_SLOTS:
00082 void doUpdateActions();
00083 void doEmitLayoutUpdated();
00084 void slotActionDestroyed(QObject*);
00085
00086 private:
00087 Q_DISABLE_COPY(DBusMenuExporter)
00088 DBusMenuExporterPrivate *const d;
00089
00090 friend class DBusMenuExporterPrivate;
00091 friend class DBusMenuExporterDBus;
00092 friend class DBusMenu;
00093 };
00094
00095 #endif