#ifndef CHATWIDGET_H #define CHATWIDGET_H #include "channel.h" #include "messages/limitedqueuesnapshot.h" #include "messages/messageref.h" #include "messages/word.h" #include "messages/wordpart.h" #include "widgets/chatwidgetheader.h" #include "widgets/chatwidgetinput.h" #include "widgets/chatwidgetview.h" #include #include #include #include #include namespace chatterino { namespace widgets { class ChatWidget : public QWidget { Q_OBJECT public: ChatWidget(QWidget *parent = 0); ~ChatWidget(); ChatWidgetView & getView() { return view; } std::shared_ptr getChannel() const { return channel; } const QString & getChannelName() const { return channelName; } void setChannelName(const QString &name); void showChangeChannelPopup(); messages::LimitedQueueSnapshot> getMessagesSnapshot() { return messages.getSnapshot(); } protected: void paintEvent(QPaintEvent *) override; private: messages::LimitedQueue> messages; std::shared_ptr channel; QString channelName; QFont font; QVBoxLayout vbox; ChatWidgetHeader header; ChatWidgetView view; ChatWidgetInput input; boost::signals2::connection messageAppendedConnection; boost::signals2::connection messageRemovedConnection; public: void load(const boost::property_tree::ptree &tree); boost::property_tree::ptree save(); }; } // namespace widgets } // namespace chatterino #endif // CHATWIDGET_H