mirror of
https://github.com/storytold/texturecraft.git
synced 2026-11-08 07:36:07 +00:00
bdac5a22d2
The top menu strip is now the window's title bar wherever the app draws the frame (crates/ui-egui/src/titlebar.rs), using craft-window for the decision and for the draggable empty area: - Windows: no OS frame. App icon at the very left, the menus, empty space that moves the window (double-click maximizes), the mode label, then minimize, maximize/restore and close (46 pt wide, crisp pixel-snapped glyphs, close turns red on hover, dimmed while inactive). Invisible edge and corner zones resize the window. A per-frame guard ported from VectorCraft keeps the undecorated window borderless and a maximized one clear of the taskbar (winsafe, no unsafe), and the taskbar gets the big app icon. - macOS: the traffic lights over the strip (full-size content view, hidden title), centred on it with eframe's traffic-light API, the app icon after their inset, and AppKit's movable flag synced by craft-window. - Linux and the BSDs: craft-window's probe decides; where the compositor leaves the frame to the app (GNOME) the strip draws the buttons in the desktop's button layout. - Wherever the system draws the frame (and on the web) the strip stays the menu bar, with the app icon at its left. No line under the strip. TEXTURECRAFT_TITLEBAR=app|system overrides the decision. Settings › Interface › System title bar (applies on restart) brings the OS frame back; it is read from the saved settings before the window opens and is settable over the control channel as prefs.system_title_bar. ui.inspect reports titleBar. New strings are translated in every language, and the offscreen snapshots render the app-drawn and macOS variants.