#pragma once #include "util/helpers.hpp" #include "widgets/basewindow.hpp" #include "widgets/notebook.hpp" //#ifdef USEWINSDK //#include //#endif #include #include namespace chatterino { namespace singletons { class ThemeManager; } // namespace singletons namespace widgets { class Window : public BaseWindow { Q_OBJECT public: enum WindowType { Main, Popup, Attached }; explicit Window(WindowType type); void repaintVisibleChatWidgets(Channel *channel = nullptr); SplitNotebook &getNotebook(); void refreshWindowTitle(const QString &username); pajlada::Signals::NoArgSignal closed; WindowType getType(); protected: void showEvent(QShowEvent *) override; void closeEvent(QCloseEvent *event) override; bool event(QEvent *event) override; private: RippleEffectLabel *userLabel = nullptr; WindowType type; float dpi; void loadGeometry(); SplitNotebook notebook; friend class Notebook; public: void save(); }; } // namespace widgets } // namespace chatterino