File indexing completed on 2025-01-12 03:40:51

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