mirror-chatterino2/src/widgets/AttachedWindow.hpp
pajlada 032f290767
Sort and force grouping of includes (#4172)
This change enforces strict include grouping using IncludeCategories

In addition to adding this to the .clang-format file and applying it in the tests/src and src directories, I also did the following small changes:

    In ChatterSet.hpp, I changed lrucache to a <>include
    In Irc2.hpp, I change common/SignalVector.hpp to a "project-include"
    In AttachedWindow.cpp, NativeMessaging.cpp, WindowsHelper.hpp, BaseWindow.cpp, and StreamerMode.cpp, I disabled clang-format for the windows-includes
    In WindowDescriptors.hpp, I added the missing vector include. It was previously not needed because the include was handled by another file that was previously included first.
    clang-format minimum version has been bumped, so Ubuntu version used in the check-formatting job has been bumped to 22.04 (which is the latest LTS)
2022-11-27 19:32:53 +01:00

76 lines
1.5 KiB
C++

#pragma once
#include "ForwardDecl.hpp"
#include <QTimer>
#include <QWidget>
#include <memory>
namespace chatterino {
class Split;
class Channel;
using ChannelPtr = std::shared_ptr<Channel>;
class AttachedWindow : public QWidget
{
AttachedWindow(void *_target, int _yOffset);
public:
struct GetArgs {
QString winId;
int yOffset = -1;
double x = -1;
double pixelRatio = -1;
int width = -1;
int height = -1;
bool fullscreen = false;
};
virtual ~AttachedWindow() override;
static AttachedWindow *get(void *target_, const GetArgs &args);
static void detach(const QString &winId);
void setChannel(ChannelPtr channel);
protected:
virtual void showEvent(QShowEvent *) override;
// virtual void nativeEvent(const QByteArray &eventType, void *message,
// long *result) override;
private:
struct {
Split *split;
} ui_;
struct Item {
void *hwnd;
AttachedWindow *window;
QString winId;
};
static std::vector<Item> items;
void attachToHwnd(void *attached);
void updateWindowRect(void *attached);
void *target_;
int yOffset_;
int currentYOffset_;
double x_ = -1;
double pixelRatio_ = -1;
int width_ = 360;
int height_ = -1;
bool fullscreen_ = false;
#ifdef USEWINSDK
bool validProcessName_ = false;
bool attached_ = false;
#endif
QTimer timer_;
QTimer slowTimer_;
};
} // namespace chatterino