UNPKG

phaser4-rex-plugins

Version:
58 lines (46 loc) 1.82 kB
import CreateRoundRectangle from '../../utils/build/CreateRoundRectangle.js'; import CreateTitleLabel from './CreateTitleLabel.js'; import CreateLabel from '../../utils/build/CreateLabel.js'; import CreateButtonsSizer from '../gameobjects/utils/CreateButtons.js'; import InputRow from '../gameobjects/inputrow/InputRow.js'; const GetValue = Phaser.Utils.Objects.GetValue; var CreateButtons = function (scene, config, style) { // Title var titleStyle = GetValue(style, 'title') || {}; var title = CreateTitleLabel(scene, config, titleStyle); // Buttons var buttonsConfig = config.buttons; var buttonStyle = GetValue(style, 'button') || {}; var buttons = []; for (var i = 0, cnt = buttonsConfig.length; i < cnt; i++) { var button = CreateLabel(scene, buttonStyle); buttons.push(button); var buttonConfig = buttonsConfig[i]; button.resetDisplayContent(buttonConfig.label); button.callback = buttonConfig.callback; } var buttonsSizer = CreateButtonsSizer(scene, { buttons: buttons, expand: true, wrap: GetValue(config, 'wrap', false) }); buttonsSizer.defaultProportion = 1; // Background var backgroundStyle = GetValue(style, 'background') || {}; var background = CreateRoundRectangle(scene, backgroundStyle); // InputRow var inputRow = new InputRow(scene, { ...style, inputTitle: title, inputField: buttonsSizer, background: background, }) scene.add.existing(inputRow); inputRow.setTitle(config); buttonsSizer .on('button.click', function (button) { button.callback(inputRow.bindingTarget); }) return inputRow; } export default CreateButtons;