What it does
desktop_screens
Builds the widget trees for every desktop shell screen — background +
shortcut tiles, taskbar, start menu, context menu, My Computer (file
browser), and the embedded Browser window. Pure builders backed by
zui; each function returns a fresh widget tree from the supplied
state.
Exports
Visibility helpers:
M.isMyComputerVisible(current: DesktopShellState?) -> booleanM.isBrowserVisible(current: DesktopShellState?) -> booleanM.isTextEditorVisible(current: DesktopShellState?) -> boolean
Screen builders:
M.buildDesktopScreen(state: DesktopShellState) -> any— desktop background, header panel, shortcut tile column.M.buildTaskbarScreen(state: DesktopShellState) -> any— Start + Sys Tools + restore buttons + status + clock.M.buildStartMenuScreen(_state: DesktopShellState) -> any— bottom-left anchored panel of launch buttons.M.buildContextMenuScreen(state: DesktopShellState) -> any— background- or shortcut-flavoured context menu, positioned atcontext_x/context_y.M.buildMyComputerScreen(state: DesktopShellState) -> any— file browser window with nav sidebar + grid; minimized/maximized aware.M.buildBrowserScreen(state: DesktopShellState) -> any— browser window with nav toolbar + embeddedZ.viewport.
Types:
DesktopShellState— seedesktop_statefor the canonical shape.
Usage
local DesktopScreens = require("@builtin::modules.desktop_screens")
local desktop = DesktopScreens.buildDesktopScreen(state)
local taskbar = DesktopScreens.buildTaskbarScreen(state)
local start = DesktopScreens.buildStartMenuScreen(state)
if DesktopScreens.isMyComputerVisible(state) then
local window = DesktopScreens.buildMyComputerScreen(state)
end
Notes
- Builders are pure — no
_G, no engine calls beyondzuiwidget construction. Safe to call once per frame inside aZ.apprender. - Visibility helpers and the
minimized/maximizedflags are independent — callers should gate the actual screen build with the visibility helper, then let the builder consume the minimize/maximize state to decide window size and chrome. - The text editor screen is owned by
text_editor_window.modulerather than this module; only the visibility helper lives here. - All sub-widgets are built via
desktop_widgets(shortcutTile,taskbarButton,windowTitlebar) so visual tweaks live in one place.
Discussion
Scoped to this part · feeds back into the world's score.
Sign in to post.sign in
No comments yet. Be the first.