File indexing completed on 2024-10-06 04:33:32
0001 // SPDX-FileCopyrightText: 2022 Tobias Fella <tobias.fella@kde.org> 0002 // SPDX-License-Identifier: LGPL-2.0-or-later 0003 0004 #pragma once 0005 0006 #include <Quotient/events/roomevent.h> 0007 0008 namespace Quotient 0009 { 0010 /** 0011 * @class PollStartEvent 0012 * 0013 * Class to define a poll start event. 0014 * 0015 * See MSC3381 for full details on polls in the matrix spec 0016 * https://github.com/matrix-org/matrix-spec-proposals/blob/travis/msc/polls/proposals/3381-polls.md. 0017 * 0018 * @sa Quotient::RoomEvent 0019 */ 0020 class PollStartEvent : public RoomEvent 0021 { 0022 public: 0023 QUO_EVENT(PollStartEvent, "org.matrix.msc3381.poll.start"); 0024 explicit PollStartEvent(const QJsonObject &obj); 0025 0026 /** 0027 * @brief The maximum number of options a user can select in a poll. 0028 */ 0029 int maxSelections() const; 0030 0031 /** 0032 * @brief The question being asked in the poll. 0033 */ 0034 QString question() const; 0035 }; 0036 0037 /** 0038 * @class PollResponseEvent 0039 * 0040 * Class to define a poll response event. 0041 * 0042 * See MSC3381 for full details on polls in the matrix spec 0043 * https://github.com/matrix-org/matrix-spec-proposals/blob/travis/msc/polls/proposals/3381-polls.md. 0044 * 0045 * @sa Quotient::RoomEvent 0046 */ 0047 class PollResponseEvent : public RoomEvent 0048 { 0049 public: 0050 QUO_EVENT(PollResponseEvent, "org.matrix.msc3381.poll.response"); 0051 explicit PollResponseEvent(const QJsonObject &obj); 0052 explicit PollResponseEvent(const QString &pollStartEventId, QStringList responses); 0053 }; 0054 0055 /** 0056 * @class PollEndEvent 0057 * 0058 * Class to define a poll end event. 0059 * 0060 * See MSC3381 for full details on polls in the matrix spec 0061 * https://github.com/matrix-org/matrix-spec-proposals/blob/travis/msc/polls/proposals/3381-polls.md. 0062 * 0063 * @sa Quotient::RoomEvent 0064 */ 0065 class PollEndEvent : public RoomEvent 0066 { 0067 public: 0068 QUO_EVENT(PollEndEvent, "org.matrix.msc3381.poll.end"); 0069 explicit PollEndEvent(const QJsonObject &obj); 0070 }; 0071 }