File indexing completed on 2024-04-28 16:54:30

0001 /* This file is part of the dbusmenu-qt library
0002     SPDX-FileCopyrightText: 2009 Canonical
0003     SPDX-FileContributor: Aurelien Gateau <aurelien.gateau@canonical.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 #pragma once
0008 
0009 // Qt
0010 #include <QList>
0011 #include <QStringList>
0012 #include <QVariant>
0013 
0014 class QDBusArgument;
0015 
0016 //// DBusMenuItem
0017 /**
0018  * Internal struct used to communicate on DBus
0019  */
0020 struct DBusMenuItem {
0021     int id;
0022     QVariantMap properties;
0023 };
0024 
0025 Q_DECLARE_METATYPE(DBusMenuItem)
0026 
0027 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuItem &item);
0028 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuItem &item);
0029 
0030 typedef QList<DBusMenuItem> DBusMenuItemList;
0031 
0032 Q_DECLARE_METATYPE(DBusMenuItemList)
0033 
0034 //// DBusMenuItemKeys
0035 /**
0036  * Represents a list of keys for a menu item
0037  */
0038 struct DBusMenuItemKeys {
0039     int id;
0040     QStringList properties;
0041 };
0042 
0043 Q_DECLARE_METATYPE(DBusMenuItemKeys)
0044 
0045 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuItemKeys &);
0046 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuItemKeys &);
0047 
0048 typedef QList<DBusMenuItemKeys> DBusMenuItemKeysList;
0049 
0050 Q_DECLARE_METATYPE(DBusMenuItemKeysList)
0051 
0052 //// DBusMenuLayoutItem
0053 /**
0054  * Represents an item with its children. GetLayout() returns a
0055  * DBusMenuLayoutItemList.
0056  */
0057 struct DBusMenuLayoutItem;
0058 struct DBusMenuLayoutItem {
0059     int id;
0060     QVariantMap properties;
0061     QList<DBusMenuLayoutItem> children;
0062 };
0063 
0064 Q_DECLARE_METATYPE(DBusMenuLayoutItem)
0065 
0066 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuLayoutItem &);
0067 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuLayoutItem &);
0068 
0069 typedef QList<DBusMenuLayoutItem> DBusMenuLayoutItemList;
0070 
0071 Q_DECLARE_METATYPE(DBusMenuLayoutItemList)
0072 
0073 //// DBusMenuShortcut
0074 
0075 class DBusMenuShortcut;
0076 
0077 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuShortcut &);
0078 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuShortcut &);
0079 
0080 void DBusMenuTypes_register();