import "luxe: ui/image" for UIImage import "luxe: world" for UIEvent import "luxe: ui/control" for Control class ImageButton{ static create(ent){ var button = UIImage.create(ent) var data = { "hover": false, "press": false, "state_change": null } Control.set_state_data(button, data) Control.set_events(button) {|event| var change = true var data if(event.type == UIEvent.enter){ data = Control.get_state_data(button) data["hover"] = true } else if(event.type == UIEvent.exit) { data = Control.get_state_data(button) data["hover"] = false } else if(event.type == UIEvent.press) { data = Control.get_state_data(button) data["press"] = true } else if(event.type == UIEvent.release) { data = Control.get_state_data(button) data["press"] = false } else { change = false } if(change){ var func = data["state_change"] if(func){ func.call(data, button) } } } return button } static set_state_change(control, fn){ var data = Control.get_state_data(control) data["state_change"] = fn } static get_data(control){ //System.print(Control.get_state_data(control)) } }