#62 graphics layouts
This commit is contained in:
@@ -3,29 +3,21 @@ local util = require("scada-common.util")
|
||||
|
||||
local core = require("graphics.core")
|
||||
|
||||
local displaybox = require("graphics.elements.displaybox")
|
||||
local textbox = require("graphics.elements.textbox")
|
||||
local main_layout = require("coordinator.ui.main_layout")
|
||||
local unit_layout = require("coordinator.ui.unit_layout")
|
||||
|
||||
local renderer = {}
|
||||
|
||||
local gconf = {
|
||||
-- root boxes
|
||||
root = {
|
||||
fgd = colors.black,
|
||||
bkg = colors.lightGray
|
||||
}
|
||||
}
|
||||
|
||||
-- render engine
|
||||
local engine = {
|
||||
monitors = nil,
|
||||
dmesg_window = nil
|
||||
}
|
||||
|
||||
-- UI elements
|
||||
-- UI layouts
|
||||
local ui = {
|
||||
main_box = nil,
|
||||
unit_boxes = {}
|
||||
main_layout = nil,
|
||||
unit_layouts = {}
|
||||
}
|
||||
|
||||
-- reset a display to the "default", but set text scale to 0.5
|
||||
@@ -64,22 +56,18 @@ end
|
||||
|
||||
-- start the coordinator GUI
|
||||
function renderer.start_ui()
|
||||
local palette = core.graphics.cpair(gconf.root.fgd, gconf.root.bkg)
|
||||
ui.main_layout = main_layout(engine.monitors.primary)
|
||||
|
||||
ui.main_box = displaybox{window=engine.monitors.primary,fg_bg=palette}
|
||||
|
||||
textbox{parent=ui.main_box,text="Nuclear Generation Facility SCADA Coordinator",alignment=core.graphics.TEXT_ALIGN.CENTER,height=1,fg_bg=core.graphics.cpair(colors.white,colors.gray)}
|
||||
|
||||
for _, monitor in pairs(engine.monitors.unit_displays) do
|
||||
table.insert(ui.unit_boxes, displaybox{window=monitor,fg_bg=palette})
|
||||
for id, monitor in pairs(engine.monitors.unit_displays) do
|
||||
table.insert(ui.unit_layouts, unit_layout(monitor, id))
|
||||
end
|
||||
end
|
||||
|
||||
-- close out the UI
|
||||
function renderer.close_ui()
|
||||
-- clear root UI elements
|
||||
ui.main_box = nil
|
||||
ui.unit_boxes = {}
|
||||
ui.main_layout = nil
|
||||
ui.unit_layouts = {}
|
||||
|
||||
-- reset displays
|
||||
renderer.reset()
|
||||
|
||||
21
coordinator/ui/main_layout.lua
Normal file
21
coordinator/ui/main_layout.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
--
|
||||
-- Main SCADA Coordinator GUI
|
||||
--
|
||||
|
||||
local core = require("graphics.core")
|
||||
local layout = require("graphics.layout")
|
||||
|
||||
local style = require("coordinator.ui.style")
|
||||
|
||||
local displaybox = require("graphics.elements.displaybox")
|
||||
local textbox = require("graphics.elements.textbox")
|
||||
|
||||
local function init(monitor)
|
||||
local main = layout.create(monitor, displaybox{window=monitor,fg_bg=style.root})
|
||||
|
||||
textbox{parent=main,text="Nuclear Generation Facility SCADA Coordinator",alignment=core.graphics.TEXT_ALIGN.CENTER,height=1,fg_bg=style.header}
|
||||
|
||||
return main
|
||||
end
|
||||
|
||||
return init
|
||||
11
coordinator/ui/style.lua
Normal file
11
coordinator/ui/style.lua
Normal file
@@ -0,0 +1,11 @@
|
||||
|
||||
local core = require("graphics.core")
|
||||
|
||||
local style = {}
|
||||
|
||||
-- MAIN LAYOUT --
|
||||
|
||||
style.root = core.graphics.cpair(colors.black, colors.lightGray)
|
||||
style.header = core.graphics.cpair(colors.white,colors.gray)
|
||||
|
||||
return style
|
||||
21
coordinator/ui/unit_layout.lua
Normal file
21
coordinator/ui/unit_layout.lua
Normal file
@@ -0,0 +1,21 @@
|
||||
--
|
||||
-- Reactor Unit SCADA Coordinator GUI
|
||||
--
|
||||
|
||||
local core = require("graphics.core")
|
||||
local layout = require("graphics.layout")
|
||||
|
||||
local style = require("coordinator.ui.style")
|
||||
|
||||
local displaybox = require("graphics.elements.displaybox")
|
||||
local textbox = require("graphics.elements.textbox")
|
||||
|
||||
local function init(monitor, id)
|
||||
local main = layout.create(monitor, displaybox{window=monitor,fg_bg=style.root})
|
||||
|
||||
textbox{parent=main,text="Reactor Unit #" .. id,alignment=core.graphics.TEXT_ALIGN.CENTER,height=1,fg_bg=style.header}
|
||||
|
||||
return main
|
||||
end
|
||||
|
||||
return init
|
||||
Reference in New Issue
Block a user