2017-01-02 17:05:30 -05:00
/*
2021-05-27 15:01:00 +00:00
SPDX - FileCopyrightText : 2016 Smith AR < audoban @ openmailbox . org >
SPDX - FileCopyrightText : 2016 Michail Vourlakos < mvourlakos @ gmail . com >
SPDX - License - Identifier : GPL - 2.0 - or - later
2017-01-02 17:05:30 -05:00
*/
2016-12-30 02:13:57 -05:00
# ifndef WINDOWINFOWRAP_H
# define WINDOWINFOWRAP_H
2016-12-28 02:55:54 -05:00
2018-12-02 02:05:52 +02:00
// Qt
2017-02-24 21:40:47 -05:00
# include <QWindow>
2019-05-27 18:56:24 +03:00
# include <QIcon>
2016-12-28 02:55:54 -05:00
# include <QRect>
2017-06-08 17:10:49 -05:00
# include <QVariant>
2016-12-28 02:55:54 -05:00
namespace Latte {
2019-05-11 15:43:10 +03:00
namespace WindowSystem {
2016-12-28 02:55:54 -05:00
2017-06-08 17:10:49 -05:00
using WindowId = QVariant ;
2018-07-03 22:15:45 +03:00
class WindowInfoWrap
{
2016-12-28 02:55:54 -05:00
public :
2020-04-07 12:42:41 +03:00
WindowInfoWrap ( ) ;
WindowInfoWrap ( const WindowInfoWrap & o ) ;
WindowInfoWrap ( WindowInfoWrap & & o ) ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
WindowInfoWrap & operator = ( WindowInfoWrap & & rhs ) ;
WindowInfoWrap & operator = ( const WindowInfoWrap & rhs ) ;
2020-01-22 13:02:00 +02:00
2020-04-07 12:42:41 +03:00
bool isValid ( ) const ;
void setIsValid ( bool isValid ) ;
2020-01-22 13:02:00 +02:00
2020-04-07 12:42:41 +03:00
bool isActive ( ) const ;
void setIsActive ( bool isActive ) ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
bool isMinimized ( ) const ;
void setIsMinimized ( bool isMinimized ) ;
2017-02-24 21:40:47 -05:00
2020-04-07 12:42:41 +03:00
bool isMaximized ( ) const ;
2019-05-31 20:50:08 +03:00
2020-04-07 12:42:41 +03:00
bool isMaxVert ( ) const ;
void setIsMaxVert ( bool isMaxVert ) ;
2019-05-27 18:56:24 +03:00
2020-04-07 12:42:41 +03:00
bool isMaxHoriz ( ) const ;
void setIsMaxHoriz ( bool isMaxHoriz ) ;
2019-05-27 18:56:24 +03:00
2020-04-07 12:42:41 +03:00
bool isFullscreen ( ) const ;
void setIsFullscreen ( bool isFullscreen ) ;
2017-01-16 14:07:49 -05:00
2020-04-07 12:42:41 +03:00
bool isShaded ( ) const ;
void setIsShaded ( bool isShaded ) ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
bool isKeepAbove ( ) const ;
void setIsKeepAbove ( bool isKeepAbove ) ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
bool isKeepBelow ( ) const ;
void setIsKeepBelow ( bool isKeepBelow ) ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:51:44 +03:00
bool hasSkipPager ( ) const ;
void setHasSkipPager ( bool skipPager ) ;
bool hasSkipSwitcher ( ) const ;
void setHasSkipSwitcher ( bool skipSwitcher ) ;
2020-04-07 12:42:41 +03:00
bool hasSkipTaskbar ( ) const ;
void setHasSkipTaskbar ( bool skipTaskbar ) ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
bool isOnAllDesktops ( ) const ;
void setIsOnAllDesktops ( bool alldesktops ) ;
2017-03-23 22:06:59 -05:00
2020-04-07 12:42:41 +03:00
bool isOnAllActivities ( ) const ;
void setIsOnAllActivities ( bool allactivities ) ;
2019-05-27 18:56:24 +03:00
2020-01-22 13:02:00 +02:00
//!BEGIN: Window Abilities
2020-04-07 12:42:41 +03:00
bool isCloseable ( ) const ;
void setIsClosable ( bool closable ) ;
2020-01-22 13:02:00 +02:00
2020-04-07 12:42:41 +03:00
bool isFullScreenable ( ) const ;
void setIsFullScreenable ( bool fullscreenable ) ;
2020-01-22 13:02:00 +02:00
2020-04-07 12:42:41 +03:00
bool isGroupable ( ) const ;
void setIsGroupable ( bool groupable ) ;
2020-01-22 13:02:00 +02:00
2020-04-07 12:42:41 +03:00
bool isMaximizable ( ) const ;
void setIsMaximizable ( bool maximizable ) ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
bool isMinimizable ( ) const ;
void setIsMinimizable ( bool minimizable ) ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
bool isMovable ( ) const ;
void setIsMovable ( bool movable ) ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
bool isResizable ( ) const ;
void setIsResizable ( bool resizable ) ;
2019-05-31 20:50:08 +03:00
2020-04-07 12:42:41 +03:00
bool isShadeable ( ) const ;
void setIsShadeable ( bool shadeble ) ;
2019-05-31 20:50:08 +03:00
2020-04-07 12:42:41 +03:00
bool isVirtualDesktopsChangeable ( ) const ;
void setIsVirtualDesktopsChangeable ( bool virtualdesktopchangeable ) ;
//!END: Window Abilities
2019-05-27 18:56:24 +03:00
2020-04-07 12:42:41 +03:00
bool isMainWindow ( ) const ;
bool isChildWindow ( ) const ;
2019-05-27 18:56:24 +03:00
2020-04-07 12:42:41 +03:00
QRect geometry ( ) const ;
void setGeometry ( const QRect & geometry ) ;
2019-05-27 18:56:24 +03:00
2020-04-07 12:42:41 +03:00
QString appName ( ) const ;
void setAppName ( const QString & appName ) ;
2019-05-27 18:56:24 +03:00
2020-04-07 12:42:41 +03:00
QString display ( ) const ;
void setDisplay ( const QString & display ) ;
2017-02-24 21:40:47 -05:00
2020-04-07 12:42:41 +03:00
QIcon icon ( ) const ;
void setIcon ( const QIcon & icon ) ;
2017-02-24 21:40:47 -05:00
2020-04-07 12:42:41 +03:00
WindowId wid ( ) const ;
void setWid ( const WindowId & wid ) ;
2017-02-24 21:40:47 -05:00
2020-04-07 12:42:41 +03:00
WindowId parentId ( ) const ;
void setParentId ( const WindowId & parentId ) ;
2016-12-28 02:55:54 -05:00
2020-04-07 12:42:41 +03:00
QStringList desktops ( ) const ;
void setDesktops ( const QStringList & desktops ) ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
QStringList activities ( ) const ;
void setActivities ( const QStringList & activities ) ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
bool isOnDesktop ( const QString & desktop ) const ;
bool isOnActivity ( const QString & activity ) const ;
2019-07-23 00:05:01 +03:00
2020-04-07 12:42:41 +03:00
private :
WindowId m_wid { 0 } ;
WindowId m_parentId { 0 } ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
QRect m_geometry ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
bool m_isValid { false } ;
bool m_isActive { false } ;
bool m_isMinimized { false } ;
bool m_isMaxVert { false } ;
bool m_isMaxHoriz { false } ;
bool m_isFullscreen { false } ;
bool m_isShaded { false } ;
bool m_isKeepAbove { false } ;
bool m_isKeepBelow { false } ;
2020-04-07 12:51:44 +03:00
bool m_hasSkipPager { false } ;
bool m_hasSkipSwitcher { false } ;
2020-04-07 12:42:41 +03:00
bool m_hasSkipTaskbar { false } ;
bool m_isOnAllDesktops { false } ;
bool m_isOnAllActivities { false } ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
//!BEGIN: Window Abilities
bool m_isClosable { false } ;
bool m_isFullScreenable { false } ;
bool m_isGroupable { false } ;
bool m_isMaximizable { false } ;
bool m_isMinimizable { false } ;
bool m_isMovable { false } ;
bool m_isResizable { false } ;
bool m_isShadeable { false } ;
bool m_isVirtualDesktopsChangeable { false } ;
//!END: Window Abilities
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
QString m_appName ;
QString m_display ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
QIcon m_icon ;
2019-06-07 23:45:42 +03:00
2020-04-07 12:42:41 +03:00
QStringList m_desktops ;
QStringList m_activities ;
} ;
2019-06-07 23:45:42 +03:00
2016-12-28 02:55:54 -05:00
}
2019-05-11 15:43:10 +03:00
}
2016-12-28 02:55:54 -05:00
2016-12-30 02:13:57 -05:00
# endif // WINDOWINFOWRAP_H