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();