The project is now TNCat, after HEIDENHAIN's TNC controls. Binary, QML module URI, settings path, bundle id and .desktop entry follow; the environment switches are TNCAT_*. Entertainment: a curled steel chip skitters in every minute or two, the cat runs it down and bats it away a few times before sitting back looking pleased. Mood changes flash the matching machine code above its head, G00 for a sprint, G01 for a stroll, M08 while it washes, G28 for a stretch, M30 for a nap. Window handling was split into two layouts. X11 and macOS keep one small window per object, positioned by the app. Wayland gets a screen-filling overlay whose input region is masked down to the cat, since a Wayland client cannot place its own window. Overlay mode is automatic there and available elsewhere via TNCAT_OVERLAY=1. Also adds a ground-line setting so the cat can walk above a softkey row. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
43 lines
1.1 KiB
QML
43 lines
1.1 KiB
QML
pragma ComponentBehavior: Bound
|
|
import QtQuick
|
|
import TNCat
|
|
|
|
// Root is not a window: which windows exist depends on the platform.
|
|
QtObject {
|
|
id: app
|
|
|
|
required property CatController cat
|
|
required property AppSettings settings
|
|
|
|
function openSettings() {
|
|
settingsWindow.show()
|
|
settingsWindow.raise()
|
|
settingsWindow.requestActivate()
|
|
}
|
|
|
|
readonly property CatWindow catWindow: CatWindow {
|
|
cat: app.cat
|
|
settings: app.settings
|
|
visible: !Platform.overlayMode
|
|
onSettingsRequested: app.openSettings()
|
|
}
|
|
|
|
readonly property ChipWindow chipWindow: ChipWindow {
|
|
cat: app.cat
|
|
settings: app.settings
|
|
visible: !Platform.overlayMode && app.cat.chipVisible
|
|
}
|
|
|
|
readonly property OverlayWindow overlayWindow: OverlayWindow {
|
|
cat: app.cat
|
|
settings: app.settings
|
|
active: Platform.overlayMode
|
|
onSettingsRequested: app.openSettings()
|
|
}
|
|
|
|
readonly property SettingsWindow settingsWindow: SettingsWindow {
|
|
cat: app.cat
|
|
settings: app.settings
|
|
}
|
|
}
|