mirror of
https://github.com/S4mpsa/InfOS.git
synced 2025-08-03 09:56:01 -04:00
Adding logic for navigation buttons
This commit is contained in:
parent
0656b92f77
commit
1965e38a5c
@ -78,14 +78,39 @@ local function drawPanelSection(index, title)
|
||||
Widget.drawBaseWidget(x, y, width, height, title)
|
||||
end
|
||||
|
||||
local function drawNavigationButtons()
|
||||
local function drawNavigationButton(self, index)
|
||||
local width = math.floor(0.3 * Constants.baseWidth)
|
||||
local height = math.floor(0.6 * Constants.baseHeight)
|
||||
local x = math.floor(2.8 * Constants.baseWidth) + math.floor((Constants.baseWidth - width) / 2)
|
||||
local x = math.floor((2.4 + 0.4 * index) * Constants.baseWidth) + math.floor((Constants.baseWidth - width) / 2)
|
||||
local y = 4 * Constants.baseHeight + math.floor((Constants.baseHeight - height) / 2)
|
||||
Widget.drawBaseWidget(x, y, width, height, "<")
|
||||
x = math.floor(3.2 * Constants.baseWidth) + math.floor((Constants.baseWidth - width) / 2)
|
||||
Widget.drawBaseWidget(x, y, width, height, ">")
|
||||
if self.active then
|
||||
Widget.drawBaseWidget(x, y, width, height, self.title)
|
||||
end
|
||||
end
|
||||
|
||||
local function clickNavigationButton(self)
|
||||
if not self.active then
|
||||
return
|
||||
end
|
||||
if self.title == "◀" then
|
||||
elements.machineWidgets.active.index = elements.machineWidgets.active.index - 1
|
||||
else
|
||||
elements.machineWidgets.active.index = elements.machineWidgets.active.index + 1
|
||||
end
|
||||
for i = 1, 9 do
|
||||
elements.machineWidgets.active[i] = elements.machineWidgets[9 * (elements.machineWidgets.active.index - 1) + i]
|
||||
end
|
||||
|
||||
elements[6] = elements.machineWidgets.active[1]
|
||||
elements[7] = elements.machineWidgets.active[2]
|
||||
elements[8] = elements.machineWidgets.active[3]
|
||||
elements[10] = elements.machineWidgets.active[4]
|
||||
elements[11] = elements.machineWidgets.active[5]
|
||||
elements[12] = elements.machineWidgets.active[6]
|
||||
elements[14] = elements.machineWidgets.active[7]
|
||||
elements[15] = elements.machineWidgets.active[8]
|
||||
elements[16] = elements.machineWidgets.active[9]
|
||||
Widget.clear()
|
||||
end
|
||||
|
||||
function page.create(element)
|
||||
@ -105,7 +130,29 @@ function page.create(element)
|
||||
end
|
||||
end
|
||||
|
||||
drawNavigationButtons()
|
||||
elements.machineWidgets.active = {}
|
||||
elements.machineWidgets.active.index = 1
|
||||
for i = 1, 9 do
|
||||
elements.machineWidgets.active[i] = elements.machineWidgets[9 * (elements.machineWidgets.active.index - 1) + i]
|
||||
end
|
||||
elements.navigationButtons[1] = {
|
||||
title = "◀",
|
||||
active = true,
|
||||
update = function(self)
|
||||
self.active = elements.machineWidgets[elements.machineWidgets.active.index * 9 - 10] ~= nil
|
||||
end,
|
||||
onClick = clickNavigationButton,
|
||||
draw = drawNavigationButton
|
||||
}
|
||||
elements.navigationButtons[2] = {
|
||||
title = "▶",
|
||||
active = true,
|
||||
update = function(self)
|
||||
self.active = elements.machineWidgets[elements.machineWidgets.active.index * 9 + 1] ~= nil
|
||||
end,
|
||||
onClick = clickNavigationButton,
|
||||
draw = drawNavigationButton
|
||||
}
|
||||
|
||||
elements[4.5] = {
|
||||
onClick = function()
|
||||
@ -113,15 +160,15 @@ function page.create(element)
|
||||
end
|
||||
}
|
||||
|
||||
elements[6] = elements.machineWidgets[1]
|
||||
elements[7] = elements.machineWidgets[2]
|
||||
elements[8] = elements.machineWidgets[3]
|
||||
elements[10] = elements.machineWidgets[4]
|
||||
elements[11] = elements.machineWidgets[5]
|
||||
elements[12] = elements.machineWidgets[6]
|
||||
elements[14] = elements.machineWidgets[7]
|
||||
elements[15] = elements.machineWidgets[8]
|
||||
elements[16] = elements.machineWidgets[9]
|
||||
elements[6] = elements.machineWidgets.active[1]
|
||||
elements[7] = elements.machineWidgets.active[2]
|
||||
elements[8] = elements.machineWidgets.active[3]
|
||||
elements[10] = elements.machineWidgets.active[4]
|
||||
elements[11] = elements.machineWidgets.active[5]
|
||||
elements[12] = elements.machineWidgets.active[6]
|
||||
elements[14] = elements.machineWidgets.active[7]
|
||||
elements[15] = elements.machineWidgets.active[8]
|
||||
elements[16] = elements.machineWidgets.active[9]
|
||||
|
||||
elements[18] = elements.powerWidgets[1]
|
||||
elements[19] = elements.powerWidgets[1]
|
||||
@ -143,14 +190,21 @@ function page.fake()
|
||||
end
|
||||
|
||||
function page.update()
|
||||
for index, machineWidget in ipairs(elements.machineWidgets) do
|
||||
for _, machineWidget in ipairs(elements.machineWidgets) do
|
||||
machineWidget:update()
|
||||
machineWidget:draw(index)
|
||||
end
|
||||
for index, activeMachineWidget in ipairs(elements.machineWidgets.active) do
|
||||
activeMachineWidget.draw(activeMachineWidget, index)
|
||||
end
|
||||
for index, powerWidget in ipairs(elements.powerWidgets) do
|
||||
powerWidget:update()
|
||||
powerWidget:draw(index)
|
||||
end
|
||||
for index, navigationButton in ipairs(elements.navigationButtons) do
|
||||
navigationButton:update()
|
||||
navigationButton:draw(index)
|
||||
end
|
||||
|
||||
DoubleBuffer.drawChanges()
|
||||
end
|
||||
|
||||
|
@ -94,6 +94,18 @@ local function draw(self, index)
|
||||
end
|
||||
end
|
||||
|
||||
function widget.clear()
|
||||
DoubleBuffer.drawRectangle(
|
||||
Constants.baseWidth,
|
||||
Constants.baseHeight,
|
||||
3 * Constants.baseWidth,
|
||||
4 * Constants.baseHeight,
|
||||
Colors.background,
|
||||
Colors.background,
|
||||
"█"
|
||||
)
|
||||
end
|
||||
|
||||
local fake = {}
|
||||
|
||||
fake.names = {
|
||||
@ -208,7 +220,7 @@ end
|
||||
function widget.fakeWidgets()
|
||||
local fakeWidgets = {}
|
||||
|
||||
for _ = 1, 9 do
|
||||
for _ = 1, math.random(30) do
|
||||
table.insert(fakeWidgets, fake.machineWidget.create())
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user