File indexing completed on 2024-04-28 05:35:32

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 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuItem &item);
0026 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuItem &item);
0027 
0028 typedef QList<DBusMenuItem> DBusMenuItemList;
0029 
0030 //// DBusMenuItemKeys
0031 /**
0032  * Represents a list of keys for a menu item
0033  */
0034 struct DBusMenuItemKeys {
0035     int id;
0036     QStringList properties;
0037 };
0038 
0039 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuItemKeys &);
0040 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuItemKeys &);
0041 
0042 typedef QList<DBusMenuItemKeys> DBusMenuItemKeysList;
0043 
0044 //// DBusMenuLayoutItem
0045 /**
0046  * Represents an item with its children. GetLayout() returns a
0047  * DBusMenuLayoutItemList.
0048  */
0049 struct DBusMenuLayoutItem;
0050 struct DBusMenuLayoutItem {
0051     int id;
0052     QVariantMap properties;
0053     QList<DBusMenuLayoutItem> children;
0054 };
0055 
0056 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuLayoutItem &);
0057 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuLayoutItem &);
0058 
0059 typedef QList<DBusMenuLayoutItem> DBusMenuLayoutItemList;
0060 
0061 //// DBusMenuShortcut
0062 
0063 class DBusMenuShortcut;
0064 
0065 QDBusArgument &operator<<(QDBusArgument &argument, const DBusMenuShortcut &);
0066 const QDBusArgument &operator>>(const QDBusArgument &argument, DBusMenuShortcut &);
0067 
0068 void DBusMenuTypes_register();