UNPKG

phaser4-rex-plugins

Version:
97 lines (80 loc) 2.63 kB
import Sizer from '../../../sizer/Sizer.js'; import BindingTargetMethods from './BindingTargetMethods.js'; import InputRowTitleWidthMethods from './InputRowTitleWidthMethods.js'; const GetValue = Phaser.Utils.Objects.GetValue; class Columns extends Sizer { constructor(scene, config) { if (config === undefined) { config = {}; } config.orientation = 'y'; super(scene, config); this.type = 'rexTweaker.Columns'; // Add elements var background = GetValue(config, 'background', undefined); var title = GetValue(config, 'title', undefined); if (background) { this.addBackground(background); } if (title) { this.add( title, { expand: true, space: { bottom: GetValue(config, 'space.title', 0) } } ); } var columnsSizer = new Sizer(scene, { orientation: 'x', space: { item: GetValue(config, 'space.column', 0) } }); scene.add.existing(columnsSizer); var columnConfigArray = GetValue(config, 'columns', undefined); var columnConfig; var columnChild; for (var i = 0, cnt = columnConfigArray.length; i < cnt; i++) { columnConfig = columnConfigArray[i]; columnChild = columnConfig.child; columnsSizer.add( columnConfig.child, { proportion: (columnChild.minWidth === 0) ? 1 : 0, expand: GetValue(columnConfig, 'expand', true) } ) } this.add( columnsSizer, { expand: true } ); this.addChildrenMap('title', title); this.addChildrenMap('columnsSizer', columnsSizer); this.addChildrenMap('columns', columnsSizer.childrenMap.items); } setTitle(config) { var title = this.childrenMap.title; if (config.title || config.icon) { title.show().setTitle(config); } else { title.hide(); } return this; } getColumns() { return this.childrenMap.columns; } getColumn(index) { return this.childrenMap.columns[index]; } } Object.assign( Columns.prototype, BindingTargetMethods, InputRowTitleWidthMethods, ) export default Columns;