/* * Copyright (C) 2021 ~ 2022 Deepin Technology Co., Ltd. * * Author: weizhixiang * * Maintainer: weizhixiang * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #ifndef WINDOWINFOK_H #define WINDOWINFOK_H #include "windowinfobase.h" #include "dbusplasmawindow.h" #include class Entry; class ProcessInfo; // wayland下窗口信息 class WindowInfoK: public WindowInfoBase { public: WindowInfoK(PlasmaWindow *window, XWindow _xid = 0); virtual ~WindowInfoK(); virtual bool shouldSkip(); virtual QString getIcon(); virtual QString getTitle(); virtual bool isDemandingAttention(); virtual bool allowClose(); virtual void close(uint32_t timestamp); virtual void activate(); virtual void minimize(); virtual bool isMinimized(); virtual int64_t getCreatedTime(); virtual QString getDisplayName(); virtual QString getWindowType(); virtual void update(); virtual void killClient(); QString getAppId(); void setAppId(QString _appId); bool changeXid(XWindow _xid); PlasmaWindow *getPlasmaWindow(); bool updateGeometry(); void updateTitle(); void updateDemandingAttention(); void updateIcon(); void updateAppId(); void updateInternalId(); void updateCloseable(); void updateProcessInfo(); DockRect getGeometry(); private: bool updateCalled; QString appId; uint32_t internalId; bool demaningAttention; bool closeable; bool minimized; PlasmaWindow *plasmaWindow; DockRect geometry; }; #endif // WINDOWINFOK_H