/*
* 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 .
*
* Authors:
* Nicholas Dedekind
#include
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