Add focused window controls to top bar
Introduces a new `WindowControls` component in the desktop top bar with minimize, maximize/restore, and close actions for the focused window. `WindowService` now exposes focused-window presence/maximized state plus focused-window convenience actions to support this UI. Also extends Nebula UI with a reusable `NebulaToolTip`, keyboard/pressed-state support in `NebulaIconButton`, new window-control glyphs in `NebulaIcon`, and theme tokens for pressed/danger hover states, with CMake and README updates to register/document the new components.
This commit is contained in:
@@ -23,15 +23,19 @@ Item {
|
||||
id: left
|
||||
anchors.left: parent.left
|
||||
anchors.leftMargin: 6
|
||||
anchors.right: right.left
|
||||
anchors.rightMargin: 12
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
spacing: 8
|
||||
|
||||
NebulaButton {
|
||||
id: nebulaButton
|
||||
checked: ShellState.launcherOpen
|
||||
onClicked: ShellState.toggleLauncher()
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: leftDivider
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: 1
|
||||
height: 14
|
||||
@@ -40,7 +44,7 @@ Item {
|
||||
|
||||
Text {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
width: Math.min(implicitWidth, root.width * 0.4)
|
||||
width: Math.min(implicitWidth, Math.max(0, left.width - nebulaButton.width - leftDivider.width - left.spacing * 2))
|
||||
text: ShellState.activeApplication
|
||||
color: Theme.textSecondary
|
||||
font.family: Theme.fontFamily
|
||||
@@ -50,9 +54,28 @@ Item {
|
||||
}
|
||||
}
|
||||
|
||||
SystemArea {
|
||||
Row {
|
||||
id: right
|
||||
anchors.right: parent.right
|
||||
anchors.rightMargin: 10
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
spacing: windowControls.visible ? 8 : 0
|
||||
|
||||
WindowControls {
|
||||
id: windowControls
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
visible: windowControls.visible
|
||||
width: visible ? 1 : 0
|
||||
height: 14
|
||||
color: Theme.borderStrong
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
SystemArea {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user