require("common.class") local ServicePage = require("api.page.servicepage") local ListField = require("titlescreen.common.listfield") local InputButtonField = require("titlescreen.service.inputbuttonfield") local InputKnobField = require("titlescreen.service.inputknobfield") ---@class InputCheckPage: ServicePage local InputCheckPage = { __name = "InputCheckPage", } ---Create a new InputCheckPage instance ---@param params? InputCheckPage # initial parameters ---@return InputCheckPage function InputCheckPage.new(params) params = params or {} params.title = params.title or "INPUT CHECK" params.footer = params.footer or "BACK BUTTON = EXIT" local self = CreateInstance(InputCheckPage, params, ServicePage) local list = ListField.new() list:addField(InputButtonField.new{label="START BUTTON", button=game.BUTTON_STA}) list:addField(InputButtonField.new{label="A BUTTON", button=game.BUTTON_BTA}) list:addField(InputButtonField.new{label="B BUTTON", button=game.BUTTON_BTB}) list:addField(InputButtonField.new{label="C BUTTON", button=game.BUTTON_BTC}) list:addField(InputButtonField.new{label="D BUTTON", button=game.BUTTON_BTD}) list:addField(InputButtonField.new{label="FX L BUTTON", button=game.BUTTON_FXL}) list:addField(InputButtonField.new{label="FX R BUTTON", button=game.BUTTON_FXR}) list:addField(InputKnobField.new{label="ANALOG VOLUME L", knob=0}) list:addField(InputKnobField.new{label="ANALOG VOLUME R", knob=1}) list:refreshFields() self:addField(list) self:refreshFields() return self end ---@param button integer # options are under the `game` table prefixed with `BUTTON` function InputCheckPage:handleButtonInput(button) local field = self.content[self.selectedIndex] if field and field.handleButtonInput then if field:handleButtonInput(button) then return end end -- default behaviour if button == game.BUTTON_BCK then if self.viewHandler then self.viewHandler:back() end return end end return InputCheckPage