toggleable fullscreen button

This commit is contained in:
2025-10-25 16:10:49 -07:00
parent 06bc628ecf
commit b464270e60
4 changed files with 7 additions and 3 deletions

View File

@@ -3,6 +3,7 @@ local window = require("libs.window")
local x, y = term.getSize() local x, y = term.getSize()
local win = window.create("Worm", x / 1.4, y / 1.4, x / 2 - ((x / 1.4) / 2), y / 2 - ((y / 1.5) / 2)) local win = window.create("Worm", x / 1.4, y / 1.4, x / 2 - ((x / 1.4) / 2), y / 2 - ((y / 1.5) / 2))
win.resizable = false win.resizable = false
win.fullscreenButton = false
sleep() sleep()
compat.runFile("/rom/programs/fun/worm.lua", win) compat.runFile("/rom/programs/fun/worm.lua", win)
win.close() win.close()

View File

@@ -83,6 +83,7 @@ function lib.create(name, w, h, x, y, do_not_add)
decorations = true, decorations = true,
alwaysOnTop = false, alwaysOnTop = false,
alwaysBelow = false, alwaysBelow = false,
fullscreenButton = true,
closing = false, closing = false,
_palette = {}, -- optional local palette store _palette = {}, -- optional local palette store
} }

View File

@@ -50,7 +50,7 @@ while true do
dragging = win dragging = win
resizing = true resizing = true
bringtofront(indx) bringtofront(indx)
elseif ((y - 1 == data[4] and x + 2 <= data[3] and x + w >= data[3] and data[2] == 1 and win.decorations) or (y <= data[4] and x <= data[3] and y + h > data[4] and x + w > data[3] and key[keys["leftAlt"]] and win.draggable)) and not win.isFullscreen then elseif ((y - 1 == data[4] and x + 1 + (win.fullscreenButton and 1 or 0) <= data[3] and x + w >= data[3] and data[2] == 1 and win.decorations) or (y <= data[4] and x <= data[3] and y + h > data[4] and x + w > data[3] and key[keys["leftAlt"]] and win.draggable)) and not win.isFullscreen then
dragging = win dragging = win
offsetX = x - data[3] offsetX = x - data[3]
offsetY = y - data[4] offsetY = y - data[4]
@@ -60,7 +60,7 @@ while true do
threading.addThread(function() win.closeRequested() end) threading.addThread(function() win.closeRequested() end)
bringtofront(indx) bringtofront(indx)
break break
elseif y - 1 == data[4] and x+1 == data[3] and win.decorations then elseif y - 1 == data[4] and x+1 == data[3] and win.decorations and win.fullscreenButton then
threading.addThread(function() win.fullscreen() end) threading.addThread(function() win.fullscreen() end)
bringtofront(indx) bringtofront(indx)
break break

View File

@@ -99,7 +99,9 @@ local function windows()
term.setCursorPos(x, y - 1) term.setCursorPos(x, y - 1)
term.setTextColor(colors.white) term.setTextColor(colors.white)
term.setBackgroundColor(colors.blue) term.setBackgroundColor(colors.blue)
term.write(string.sub("XO " .. win.name .. string.rep(" ", w - #win.name - 3),1,w)) local window_buttons = "X"
if win.fullscreenButton then window_buttons = window_buttons.."O" end
term.write(string.sub(window_buttons.." " .. win.name .. string.rep(" ", w - #win.name -1 -#window_buttons),1,w))
if win.resizable and not win.isFullscreen then if win.resizable and not win.isFullscreen then
term.setCursorPos(x+w-1,y+h-1) term.setCursorPos(x+w-1,y+h-1)
term.write("\127") term.write("\127")