dbusmenu-qt  0.9.2
dbusmenuexporter.h
1 /* This file is part of the dbusmenu-qt library
2  Copyright 2009 Canonical
3  Author: Aurelien Gateau <aurelien.gateau@canonical.com>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License (LGPL) as published by the Free Software Foundation;
8  either version 2 of the License, or (at your option) any later
9  version.
10 
11  This library is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  Library General Public License for more details.
15 
16  You should have received a copy of the GNU Library General Public License
17  along with this library; see the file COPYING.LIB. If not, write to
18  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
19  Boston, MA 02110-1301, USA.
20 */
21 #ifndef DBUSMENUEXPORTER_H
22 #define DBUSMENUEXPORTER_H
23 
24 // Qt
25 #include <QtCore/QObject>
26 #include <QtDBus/QDBusConnection>
27 
28 // Local
29 #include <dbusmenu_export.h>
30 
31 extern QSet<QString> FlagSet;
32 
33 class QAction;
34 class QMenu;
35 
36 class DBusMenuExporterPrivate;
37 
41 class DBUSMENU_EXPORT DBusMenuExporter : public QObject
42 {
43  Q_OBJECT
44 public:
50  DBusMenuExporter(const QString &dbusObjectPath, QMenu *menu, const QDBusConnection &dbusConnection = QDBusConnection::sessionBus());
51 
52  virtual ~DBusMenuExporter();
53 
58  void activateAction(QAction *action);
59 
66  void setStatus(const QString &status);
67 
72  QString status() const;
73 
74  DBusMenuExporterPrivate *const getMenuExporterPrivate();
75 
76 protected:
83  virtual QString iconNameForAction(QAction *action);
84 
85 private Q_SLOTS:
86  void doUpdateActions();
87  void doEmitLayoutUpdated();
88  void slotActionDestroyed(QObject*);
89 
90 private:
91  Q_DISABLE_COPY(DBusMenuExporter)
92  DBusMenuExporterPrivate *const d;
93 
94  friend class DBusMenuExporterPrivate;
95  friend class DBusMenuExporterDBus;
96  friend class DBusMenu;
97 };
98 
99 #endif /* DBUSMENUEXPORTER_H */
DBusMenuExporter
Definition: dbusmenuexporter.h:41