File indexing completed on 2024-05-12 05:37:25
0001 /* 0002 SPDX-FileCopyrightText: 2018 Kai Uwe Broulik <kde@privat.broulik.de> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include <QDBusSignature> 0010 #include <QList> 0011 #include <QMap> 0012 #include <QVariant> 0013 0014 class QDBusArgument; 0015 0016 // Various 0017 using VariantMapList = QList<QVariantMap>; 0018 0019 using StringBoolMap = QMap<QString, bool>; 0020 0021 // Menu item itself (Start method) 0022 struct GMenuItem { 0023 uint id; 0024 uint section; 0025 VariantMapList items; 0026 }; 0027 0028 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuItem &item); 0029 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuItem &item); 0030 0031 using GMenuItemList = QList<GMenuItem>; 0032 0033 // Information about what section or submenu to use for a particular entry 0034 struct GMenuSection { 0035 uint subscription; 0036 uint menu; 0037 }; 0038 0039 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuSection &item); 0040 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuSection &item); 0041 0042 // Changes of a menu item (Changed signal) 0043 struct GMenuChange { 0044 uint subscription; 0045 uint menu; 0046 0047 uint changePosition; 0048 uint itemsToRemoveCount; 0049 VariantMapList itemsToInsert; 0050 }; 0051 0052 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuChange &item); 0053 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuChange &item); 0054 0055 using GMenuChangeList = QList<GMenuChange>; 0056 0057 // An application action 0058 struct GMenuAction { 0059 bool enabled; 0060 QDBusSignature signature; 0061 QVariantList state; 0062 }; 0063 0064 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuAction &item); 0065 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuAction &item); 0066 0067 using GMenuActionMap = QMap<QString, GMenuAction>; 0068 0069 struct GMenuActionsChange { 0070 QStringList removed; 0071 QMap<QString, bool> enabledChanged; 0072 QVariantMap stateChanged; 0073 GMenuActionMap added; 0074 }; 0075 0076 QDBusArgument &operator<<(QDBusArgument &argument, const GMenuActionsChange &item); 0077 const QDBusArgument &operator>>(const QDBusArgument &argument, GMenuActionsChange &item); 0078 0079 void GDBusMenuTypes_register();