dde-dock/frame/screenspliter/screenspliter.h
tsic404 5f6cacdf2a refactor: Rewrite the calling method of dock settings
Rewrite the calling method of dock settings, using the new dconfig interface instead of AM's dbus interface

log: as title
2023-07-18 07:35:19 +00:00

55 lines
1.4 KiB
C++

// Copyright (C) 2022 ~ 2022 Deepin Technology Co., Ltd.
// SPDX-FileCopyrightText: 2018 - 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#ifndef SCREENSPLITER_H
#define SCREENSPLITER_H
#include "dbusutil.h"
#include <QObject>
class AppItem;
class ScreenSpliter : public QObject
{
Q_OBJECT
public:
enum SplitDirection {
None, // 无操作
Left, // 左分屏
Right, // 右分屏
Top, // 上分屏
Bottom, // 下分屏
LeftTop, // 左上
RightTop, // 右上
LeftBottom, // 左下
RightBottom, // 右下
Full // 全屏
};
public:
virtual void startSplit(const QRect &) = 0; // 触发分屏提示效果
virtual bool split(SplitDirection) = 0; // 开始触发分屏
virtual bool suportSplitScreen() = 0; // 是否支持分屏
virtual bool releaseSplit(); // 释放分屏
protected:
explicit ScreenSpliter(AppItem *appItem, QObject *parent = nullptr);
virtual ~ScreenSpliter();
AppItem *appItem() const;
private:
AppItem *m_appItem;
};
class ScreenSpliterFactory
{
public:
static ScreenSpliter *createScreenSpliter(AppItem *appItem);
};
#endif // SCREENSPLITER_H