local dirtylarry = require "dirtylarry/dirtylarry" function init(self) msg.post(".", "acquire_input_focus") local logosize = 256 local screen_width = sys.get_config("display.width", 600) local screen_height = sys.get_config("display.height", 800) local scale_width = screen_width / logosize local scale_height = screen_height / logosize local bg = gui.get_node("background") gui.set_position(bg, vmath.vector3(screen_width/2, screen_height/2, 0)) gui.set_size(bg, vmath.vector3(screen_width, screen_height, 0)) local cameranode = gui.get_node("camera") gui.set_position(cameranode, vmath.vector3(screen_width/2, screen_height/2, 0)) gui.set_size(cameranode, vmath.vector3(screen_width/2, screen_height/2, 0)) self.camera_enabled = camera ~= nil if not self.camera_enabled then local labelnode = gui.get_node("scan_bn/larrylabel") local iconnode = gui.get_node("camera_icon") gui.set_color(labelnode, vmath.vector4(0.5,0.5,0.5,1)) gui.set_color(iconnode, vmath.vector4(0.5,0.5,0.5,1)) end local qrcode = gui.get_node("qrcode") gui.set_position(qrcode, vmath.vector3(screen_width/2, screen_height/2, 0)) gui.set_size(qrcode, vmath.vector3(screen_width/2, screen_height/2, 0)) local n = gui.get_node("scan_bn/larrylabel") self.scan_label_pos = gui.get_position(n) n = gui.get_node("generate_bn/larrylabel") self.generate_label_pos = gui.get_position(n) end function final(self) -- Add finalization code here -- Remove this function if not needed end function update(self, dt) -- Add update code here -- Remove this function if not needed end local function set_text(self, text) local n = gui.get_node("text") gui.set_text(n, text) end function on_message(self, message_id, message, sender) if message_id == hash("set_text") then set_text(self, message.text) end end local function isempty(s) return s == nil or s == '' end function on_input(self, action_id, action) if self.camera_enabled then dirtylarry:button("scan_bn", action_id, action, function () msg.post("controller", "click", {mode="SCAN"}) end) end dirtylarry:button("generate_bn", action_id, action, function () local text = sys.get_sys_info().device_ident if isempty(text) then text = "DEFOLD RULES!" end set_text(self, text) msg.post("controller", "click", {mode="GENERATE", text=text}) end) -- for some reason, the text recenters, and I don't want that local n = gui.get_node("scan_bn/larrylabel") gui.set_position(n, self.scan_label_pos) n = gui.get_node("generate_bn/larrylabel") gui.set_position(n, self.generate_label_pos) end