diff options
author | Nick Dedekind <nicholas.dedekind@gmail.com> | 2013-08-26 14:19:38 +0000 |
---|---|---|
committer | Tarmac <> | 2013-08-26 14:19:38 +0000 |
commit | aaa82529fb8d8601e47ae27b60814c744f1f75a3 (patch) | |
tree | 1c3a8404f9d1d3e4439a63e1d8b204aadc99799c /libqmenumodel/src/qmenumodelevents.h | |
parent | 50563a1ab243436c8c8fa86f88ef4a4b25b9a107 (diff) | |
parent | db47d077dcd9ee6761de828c9194d3fa2331f9ea (diff) | |
download | qmenumodel-aaa82529fb8d8601e47ae27b60814c744f1f75a3.tar.gz qmenumodel-aaa82529fb8d8601e47ae27b60814c744f1f75a3.tar.bz2 qmenumodel-aaa82529fb8d8601e47ae27b60814c744f1f75a3.zip |
Adds qt event spawning to direct glib main loop callbacks. Fixes: https://bugs.launchpad.net/bugs/1183065, https://bugs.launchpad.net/bugs/1206991.
Approved by Lars Uebernickel, PS Jenkins bot.
Diffstat (limited to 'libqmenumodel/src/qmenumodelevents.h')
-rw-r--r-- | libqmenumodel/src/qmenumodelevents.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/libqmenumodel/src/qmenumodelevents.h b/libqmenumodel/src/qmenumodelevents.h new file mode 100644 index 0000000..be8f80d --- /dev/null +++ b/libqmenumodel/src/qmenumodelevents.h @@ -0,0 +1,99 @@ +/* + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * Authors: + * Nicholas Dedekind <nick.dedekind@canonical.com + */ + +#ifndef QMENUMODELEVENTS_H +#define QMENUMODELEVENTS_H + +#include <QEvent> +#include <QVariant> + +class MenuNode; +typedef struct _GDBusConnection GDBusConnection; +typedef struct _GMenuModel GMenuModel; + +/* Event for a connection update for a dbus object */ +class DbusObjectServiceEvent : public QEvent +{ +public: + static const QEvent::Type eventType; + DbusObjectServiceEvent(GDBusConnection* connection, bool visible); + ~DbusObjectServiceEvent(); + + GDBusConnection* connection; + bool visible; +}; + +/* Event for an update to the gmenumodel */ +class MenuModelEvent : public QEvent +{ +public: + static const QEvent::Type eventType; + + MenuModelEvent(GMenuModel *model); + ~MenuModelEvent(); + + GMenuModel *model; +}; + +/* Event for a GAction (base) */ +class DBusActionEvent : public QEvent +{ +public: + QString name; + +protected: + DBusActionEvent(const QString& name, QEvent::Type type); +}; + +/* Event for a GAction add/remove */ +class DBusActionVisiblityEvent : public DBusActionEvent +{ +public: + static const QEvent::Type eventType; + DBusActionVisiblityEvent(const QString& name, bool visible); + + bool visible; +}; + +/* Event for a GAction state value update */ +class DBusActionStateEvent : public DBusActionEvent +{ +public: + static const QEvent::Type eventType; + + DBusActionStateEvent(const QString& name, const QVariant& state); + + QVariant state; +}; + +/* Event for changing gmenumodel entries */ +class MenuNodeItemChangeEvent : public QEvent +{ +public: + static const QEvent::Type eventType; + + MenuNodeItemChangeEvent(MenuNode* node, int position, int removed, int added); + + MenuNode* node; + int position; + int removed; + int added; +}; + +#endif //QMENUMODELEVENTS_H |