Files
TNCcat/qml/Main.qml
T
JulianandClaude Opus 5 0f1df75a1d Rename to TNCat, add chip chase, G-codes and a Wayland layout
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>
2026-09-10 22:53:40 +02:00

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
}
}