#pragma once #include "signallabel.hpp" #include "widgets/basewidget.hpp" #include "widgets/rippleeffectlabel.hpp" #include #include #include #include #include #include #include #include namespace chatterino { class ColorScheme; namespace widgets { class ChatWidget; class ChatWidgetHeader : public BaseWidget { Q_OBJECT public: explicit ChatWidgetHeader(ChatWidget *_chatWidget); // Update channel text from chat widget void updateChannelText(); void checkLive(); protected: virtual void paintEvent(QPaintEvent *) override; virtual void mousePressEvent(QMouseEvent *event) override; virtual void mouseMoveEvent(QMouseEvent *event) override; virtual void mouseDoubleClickEvent(QMouseEvent *event) override; private: ChatWidget *const chatWidget; QPoint dragStart; bool dragging = false; QHBoxLayout hbox; // top left RippleEffectLabel leftLabel; QMenu leftMenu; // center SignalLabel channelNameLabel; // top right RippleEffectLabel rightLabel; QMenu rightMenu; void leftButtonClicked(); void rightButtonClicked(); virtual void refreshTheme() override; public slots: void menuMoveSplit(); void menuReloadChannelEmotes(); void menuManualReconnect(); void menuShowChangelog(); }; } // namespace widgets } // namespace chatterino