92 lines
2.4 KiB
QML
92 lines
2.4 KiB
QML
/*
|
|
* SPDX-FileCopyrightText: 2024 Anton Kharuzhy <publicantroids@gmail.com>
|
|
*
|
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
|
*/
|
|
|
|
import QtQuick
|
|
|
|
QtObject {
|
|
id: activeWindow
|
|
|
|
enum Action {
|
|
Close,
|
|
Minimize,
|
|
Maximize,
|
|
Move,
|
|
AllDesktops,
|
|
KeepAbove,
|
|
KeepBelow,
|
|
Shade,
|
|
Help,
|
|
Menu,
|
|
AppMenu,
|
|
Activate,
|
|
FullScreen,
|
|
Resize
|
|
}
|
|
|
|
property bool minimizable: false
|
|
property bool maximizable: false
|
|
property bool closable: false
|
|
property bool movable: false
|
|
property bool minimized: false
|
|
property bool maximized: false
|
|
property bool shadeable: false
|
|
property bool shaded: false
|
|
property bool hasAppMenu: false
|
|
property bool onAllVirtualDesktops: false
|
|
property bool keepAbove: false
|
|
property bool keepBelow: false
|
|
property bool fullScreenable: false
|
|
property bool fullScreen: false
|
|
property bool resizable: false
|
|
property bool active: false
|
|
property var appName
|
|
property var genericAppName
|
|
property var decoration
|
|
property var icon
|
|
|
|
signal actionCall(int action)
|
|
|
|
function actionSupported(action) {
|
|
switch (action) {
|
|
case ActiveWindow.Action.Close:
|
|
return closable;
|
|
case ActiveWindow.Action.Minimize:
|
|
return minimizable;
|
|
case ActiveWindow.Action.Maximize:
|
|
return maximizable;
|
|
case ActiveWindow.Action.Move:
|
|
return movable;
|
|
case ActiveWindow.Action.Shade:
|
|
return shadeable;
|
|
case ActiveWindow.Action.AppMenu:
|
|
return hasAppMenu;
|
|
case ActiveWindow.Action.Fullscreen:
|
|
return fullScreenable;
|
|
case ActiveWindow.Action.Resize:
|
|
return resizable;
|
|
default:
|
|
return true;
|
|
}
|
|
}
|
|
|
|
function buttonChecked(windowControlButtonType) {
|
|
switch (windowControlButtonType) {
|
|
case WindowControlButton.Type.MinimizeButton:
|
|
return minimized;
|
|
case WindowControlButton.Type.MaximizeButton:
|
|
return maximized;
|
|
case WindowControlButton.Type.KeepAboveButton:
|
|
return keepAbove;
|
|
case WindowControlButton.Type.KeepBelowButton:
|
|
return keepBelow;
|
|
case WindowControlButton.Type.ShadeButton:
|
|
return shaded;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
}
|