rename help files with .txt - overlay.lua creates a terminal compatible window on the overlay glasses - you can now run any program on the glasses overlay

This commit is contained in:
kepler155c@gmail.com
2020-05-02 22:22:30 -06:00
parent 8a9878b8e5
commit 9bf017fe27
13 changed files with 258 additions and 146 deletions

View File

@@ -13,4 +13,7 @@
* and more...
]],
license = 'MIT',
required = {
'core',
},
}

View File

@@ -3,26 +3,26 @@ local Event = require('opus.event')
local UI = require('opus.ui')
local Util = require('opus.util')
local peripheral = _G.peripheral
local device = _G.device
--[[ -- PeripheralsPage -- ]] --
local peripheralsPage = UI.Page {
grid = UI.ScrollingGrid {
ey = -2,
columns = {
--{ heading = 'Name', key = 'name' },
{ heading = 'Type', key = 'type' },
{ heading = 'Side', key = 'side' },
},
sortColumn = 'type',
autospace = true,
enable = function(self)
local sides = peripheral.getNames()
Util.clear(self.values)
for _,side in pairs(sides) do
for _,v in pairs(device) do
table.insert(self.values, {
type = peripheral.getType(side),
side = side
type = v.type,
side = v.side,
name = v.name,
})
end
self:update()
@@ -75,49 +75,50 @@ local methodsPage = UI.Page {
[ 'control-q' ] = 'back',
backspace = 'back',
},
enable = function(self, p)
self.peripheral = p or self.peripheral
p = device[self.peripheral.name]
if p.getDocs then
-- plethora
self.grid.values = { }
for k,v in pairs(p.getDocs()) do
table.insert(self.grid.values, {
name = k,
doc = v,
})
end
elseif not p.getAdvancedMethodsData then
-- computercraft
self.grid.values = { }
for k,v in pairs(p) do
if type(v) == 'function' then
table.insert(self.grid.values, {
name = k,
noext = true,
})
end
end
else
-- open peripherals
self.grid.values = p.getAdvancedMethodsData()
for name,f in pairs(self.grid.values) do
f.name = name
end
end
self.grid:update()
self.grid:setIndex(1)
self.doc:setText(self:getDocumentation())
self.statusBar:setStatus(self.peripheral.type)
UI.Page.enable(self)
self:setFocus(self.grid)
end,
}
function methodsPage:enable(p)
self.peripheral = p or self.peripheral
p = peripheral.wrap(self.peripheral.side)
if p.getDocs then
-- plethora
self.grid.values = { }
for k,v in pairs(p.getDocs()) do
table.insert(self.grid.values, {
name = k,
doc = v,
})
end
elseif not p.getAdvancedMethodsData then
-- computercraft
self.grid.values = { }
for name in pairs(p) do
table.insert(self.grid.values, {
name = name,
noext = true,
})
end
else
-- open peripherals
self.grid.values = p.getAdvancedMethodsData()
for name,f in pairs(self.grid.values) do
f.name = name
end
end
self.grid:update()
self.grid:setIndex(1)
self.doc:setText(self:getDocumentation())
self.statusBar:setStatus(self.peripheral.type)
UI.Page.enable(self)
self:setFocus(self.grid)
end
function methodsPage:eventHandler(event)
if event.type == 'back' then
UI:setPage(peripheralsPage)

View File

@@ -1,11 +1,12 @@
local Util = require('opus.util')
local device = _G.device
local os = _G.os
local peripheral = _G.peripheral
local term = _G.term
local args = { ... }
local mon = args[1] and peripheral.wrap(args[1]) or
local mon = args[1] and device[args[1]] or peripheral.wrap(args[1]) or
peripheral.find('monitor') or
error('Syntax: debug <monitor>')

View File

@@ -306,7 +306,7 @@ local page = UI.Page {
x = 2, y = 2, ey = -4, ex = -2,
columns = {
{ key = 'name', heading = 'Name' },
{ key = 'dir', heading = 'Directory' },
{ key = 'dir', heading = 'Directory', textColor = 'lightGray' },
},
accelerators = {
backspace = 'slide_hide',