Je ne comprends pas comment utiliser le screen manager du tutoriel d'inspired lua :
Show/Hide spoilerAfficher/Masquer le spoiler
- Code: Tout sélectionner
------ Screen Manager
Screen = class()
function Screen:init() end
-- virtual functions to override
function Screen:paint(gc) end
function Screen:timer() end
function Screen:charIn(ch) end
function Screen:arrowKey(key) end
function Screen:escapeKey() end
function Screen:enterKey() end
function Screen:tabKey() end
function Screen:contextMenu() end
function Screen:backtabKey() end
function Screen:backspaceKey() end
function Screen:clearKey() end
function Screen:mouseMove(x, y) end
function Screen:mouseDown(x, y) end
function Screen:mouseUp() end
function Screen:rightMouseDown(x, y) end
function Screen:help() end
local Screens = {}
function PushScreen(screen)
table.insert(Screens, screen)
platform.window:invalidate()
end
function PullScreen()
if #Screens > 0 then
table.remove(Screens)
platform.window:invalidate()
end
end
function activeScreen()
return Screens[#Screens] and Screens[#Screens] or Screen
end
-- Link events to ScreenManager
function on.paint(gc)
for _, screen in pairs(Screens) do
screen:paint(gc)
end
end
function on.timer()
for _, screen in pairs(Screens) do
screen:timer()
end
end
function on.charIn(ch) activeScreen():charIn(ch) end
function on.arrowKey(key) activeScreen():arrowKey(key) end
function on.escapeKey() activeScreen():escapeKey() end
function on.enterKey() activeScreen():enterKey() end
function on.tabKey() activeScreen():tabKey() end
function on.contextMenu() activeScreen():contextMenu() end
function on.backtabKey() activeScreen():backtabKey() end
function on.backspaceKey() activeScreen():backspaceKey() end
function on.clearKey() activeScreen():clearKey() end
function on.mouseDown(x, y) activeScreen():mouseDown(x, y) end
function on.mouseUp() activeScreen():mouseUp() end
function on.mouseMove(x, y) activeScreen():mouseMove(x, y) end
function on.rightMouseDown(x, y) activeScreen():rightMouseDown(x, y) end
function on.help() activeScreen():help() end
function on.create() PushScreen(Menu()) end
function on.resize() end
J'aurais besoin d'un gestionnaire d'environ une quarantaine d'écrans, mais j'apprécierai si on me montrait comment au moins gérer deux écrans (où un texte sera affiché par exemple).
Merci d'avance .
Edit : Je vous joins le genre de programmes que je veux faire, une sorte de menu où on se déplace avec les 4 flèches directionnelles (pour l'instant il y a 3 screens, le troisième dans la catégorie 'loi normale').
Le code va être de plus en plus long si j'augmente le nombre d'écrans, aussi avec un screen manager je pourrais éviter d'utiliser de multiples compteurs qui me servent d'une part à savoir le nombre d'écrans où je suis passé depuis le début, et d'une autre part à connaître la position de la flèche noire dans le menu.