Display message being replied to above input box (#4350)

Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
This commit is contained in:
Daniel Sage
2024-07-14 12:06:42 -07:00
committed by GitHub
parent 9788d0f8f7
commit 6b73bb53ec
7 changed files with 355 additions and 60 deletions
+50
View File
@@ -0,0 +1,50 @@
#pragma once
#include "messages/layouts/MessageLayoutContext.hpp"
#include "messages/Message.hpp"
#include "widgets/BaseWidget.hpp"
#include <QWidget>
namespace chatterino {
class MessageLayout;
/// MessageView is a fixed-width widget that displays a single message.
/// For the message to be rendered, you must call setWidth.
class MessageView : public BaseWidget
{
Q_OBJECT
public:
MessageView();
~MessageView() override;
MessageView(const MessageView &) = delete;
MessageView(MessageView &&) = delete;
MessageView &operator=(const MessageView &) = delete;
MessageView &operator=(MessageView &&) = delete;
void setMessage(const MessagePtr &message);
void clearMessage();
void setWidth(int width);
protected:
void paintEvent(QPaintEvent *event) override;
void themeChangedEvent() override;
void scaleChangedEvent(float newScale) override;
private:
void createMessageLayout();
void layoutMessage();
MessagePtr message_;
std::unique_ptr<MessageLayout> messageLayout_;
MessageColors messageColors_;
MessagePreferences messagePreferences_;
int width_{};
};
} // namespace chatterino