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 */