Files
andrew 08e67845a5 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.
2026-08-26 22:26:29 +12:00

43 lines
1023 B
CMake

cmake_minimum_required(VERSION 3.20)
if(NOT TARGET Qt6::Quick)
project(NebulaUI LANGUAGES CXX)
find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)
qt_standard_project_setup(REQUIRES 6.4)
endif()
qt_add_library(NebulaUI STATIC)
set(NEBULA_UI_QML_DIR "${CMAKE_CURRENT_SOURCE_DIR}/qml/Nebula/UI")
set(NEBULA_UI_QML_FILES
Theme.qml
NebulaButton.qml
NebulaCard.qml
NebulaIconButton.qml
NebulaTextField.qml
NebulaToolTip.qml
FocusFrame.qml
NebulaIcon.qml
)
set(NEBULA_UI_QML_PATHS)
foreach(qml_file IN LISTS NEBULA_UI_QML_FILES)
set(qml_path "${NEBULA_UI_QML_DIR}/${qml_file}")
set_source_files_properties("${qml_path}" PROPERTIES
QT_RESOURCE_ALIAS "${qml_file}"
)
list(APPEND NEBULA_UI_QML_PATHS "${qml_path}")
endforeach()
set_source_files_properties("${NEBULA_UI_QML_DIR}/Theme.qml" PROPERTIES
QT_QML_SINGLETON_TYPE TRUE
)
qt_add_qml_module(NebulaUI
URI Nebula.UI
VERSION 1.0
RESOURCE_PREFIX /qt/qml
QML_FILES ${NEBULA_UI_QML_PATHS}
)